PREME/G/MU554011
093901124542762290577744422913033849479531466519639764746896150837296820141677929629680850325720030626205506530886196003888259876881253729204537903044018587801137040738044495703765309481138107764062876391985174480628512961764847117235468662816465639697731149586769833103882844599480139417776237987791840375699340624544823612674978537498762812814703444725184583841521748512272478072062792606087574943173014998768592852830751715635451859130468936009617883025792856299968215391288641595630948537305660347620424882044207604691942894718315359499927129038602527951342057947667516496451756438953755605999872778470717079468492953356975075107782036372809879300482349154885658480746048897353433100432833949691178295534148367209022827482534338170052935765114840508780749509658113732301359606957421972990857550820543863455714898904402078281332012068338210088316724671862792524929471992797324811345590323934846209511724120468333363943711727928723581507872978566719975926783246073131432910281804949345130151016791645927501888378556795112490455006386131226880232418597282441664545644472125489854923113921322651186736736992360574974459929692530773666111774713073793580437128657701141587507072942337716354275789424874847751170333993885188532815916564498601441636730393552674183943521108767159579844271091494929524674179037025173793842462600113648076763796401405558527044554073276505692270512874376754824947825590483410653381112203414449799533807665775713602248505465712532952291774791586598496033639965897477078192179525686853656157998782737283316060024715007644919699585751335836129910205056607577430367168221030932614923810574182062593493755693652939704973963848769342974698200687779251580199150769298759596710614465128673692213549754693336402218078640785589561771920399435417431760195758881689989528575028172328709954667071719590469215784213690100302135656671479143814299529259088494707089834318579045493137089369902193857338654066064193026914879551877939538268774657743402629057570540611588951376375934137774379967062149074520565414444118999805222593193415973881887883077879066536056981899051370674860900202374314137230642203801981190781860609815999465596675935339538412751032813010099482212197667035711708019184647769775174193001932340432522537347480709106271535867716241643378861592277831415430626027218753671198336104591544387933959618961786788503446591409038358948086738043548469371577264732893822740684710276956609807987462739453479283513746355877885341345389185128524769914788851808628242180512812478558656187810504406689312709075995470815190040932136315104542306633651470710829964298213046463218554975175180606329079043071617841649855081663935582982201864777437058358752145526553025483249057748708244111684467567150392329528731157397519358865630699569499762673589710770701405659070204990686210624549709016303141295030673835790684300452746548974327496326784949360992350161345468319312657455123634348395121561072126088797856972969977673282663728087256010816145858870356392521941386776129390657110996229634671177815602654158036398082013455163695954256213772934068935565944734657886185781937017104495022353084657667436750583845444233294210218705749385464476473989810334763465026860054427489977217068541826095032749715971528113469609612078734377693294680469989765912199740248679582273571138396536031520906111396678756371600105477898949050897063335900925005400102621371013364245798457052696611996288211456434080312619900802474837240259347381526132970592175360401258476903013731936461172680801229640882489328045295923012900775121620413457519818527247735029783693196611450653292218342274930342098023554555445307992593182203003133614484317181325511150703149749615519530154141720714073849763174278460558243251998485425099275892252999186649322134581161197647358297135129044104161027651719023580086716303311977261459382822287940594720753576341628265389005201481120666657952484455577818149301446552977954723196457361052682503509406297922131168264839113917610995406774482185235972201488336176600744212559344243790443203135750588769859264111146480636501055811479440735237473088644350290632484662184383423442522176392711895433656404006943481776257899467140095388552109910900910211577756890039805837068575824017755968437022941789726706575937220020319191669992427818097757963239003297954322977160711507915562959166881880817933011439543363485627123855061695354435907064017514288474833689988627858578769971760693940601843379554716751453309147305833807125575510877339702895104756285845914012673391514540000922981749705967642461613421569499032551554497625978859000628130522813982199643758626264294784374153445289928757726987478032301533880257018023234330407652724283199306322791013082308965507674704785232873776232781949357916314569625989930463260753617103236355065854851342287503103027726001213060034874830638692011451999750797514345325655822838362855742694195384670364096874664296189258238799340857414723479709289137876922207658294727351846354821718758025455113599662968037246797198480968383787749110515642883089596659157449863783553140560688010892390699182891837888826123477922744869028099393814555751411699132469084723216589081051149876798607235952214235023708394441710589499262774717412620262633337961337029830265066726395681963938347050323373448794187796264390871082381539053125771780245660731729438375434157955301662643984420370117963899564590968483213937196735187026968200671804714683806381070963382236650672754125327578475861974521753104375852216550277960590133713356042815823796415924883725851275053150305906801661448079518739886543548944163145228098542267369550756259981708202297700840567290936300718473065277870273610295896277835772382174003848574007565162973604517889722505689725828736985490044814277541077675395564925084251633606815966162607981592867417323144394197239565791609219898741518304531099392936733411414426332837939351884667621471907165762285401173647814932342391183363573946926578954025197144407430866584142705049711945238141071767231054116588700756466950034651608862690362227405561060503440750934047326287866927373622757870162232198418459096122668703899407808602689442059191387100215466324979521722245185164307895902502406633412558326976816951559178774828395287003773708941827361649862776923293798050786988371807508143587972077297892844322608899670166438469330190574727361953736542026296225382879368748269728992648628779416648899440744639103681751669481446682569559804757276611502646223540360375562283060799412175069487063498658171139989567339543831901318902340880992153422548118937285462326160870001297400608098931415169364371335907709317479022697586836427383023522905700023345021675723890812425756944882765868236550870732530185539837226775568987799273053413133796351050868109260832209263311093003413013381203199930219825294840666215516528559754290035762611184960664523256206731866901092845502886867095080322828030360115376999222162857695679297854904869338658126031704786673277789101157499419504340385361501654704056033387244916933390201280533475826445028778156091244495195901304727247341491692637051351961866369883019098640279036278721342203238536102218038428284646957072584706149023881286827821550570165249912648228257556387070576131646243967716728388089275629281042082513922989497973533245038799830365630223789931282369633455487400443862618494440579960636363501511241868828697299037446112409223178708825234805302879957090994207405714482968406164434687174672174041646844491542345573354229846206320795805965398363993441086762165090584780697866743317732825340151847335541585843693947707352575097805108466021562887178201053113198028778023981464377653321687412615821595739999653836976912866652652579272644046985977123948087221251777971575141544435687989872362147758767874763685278618694474235589349008572657438732016650055018112931647313638861965897174336567484289156596879361633885002207198210528102620957546064584460849869026173640849267839893245279402931255745767646134228106305922829564040923018679860282325428775791043717466503945641169209865943982128059500653831554585395051429567598311367407348761111763150444173619895485548165090833028436684975566863250498213753575653497909701027280373347040206207698331547258030794573906779964558605118578507724936019088315645502201914177274556593660600158753730274056492310934259363238708179483568267980318949806258610465382144689114724390897376528616120199004194545554448085282639727016447262514669816609088398693573635398435697795705876075229835369880436350220543224831185981938293421744247107257310762097219979510372629470421081141286424309844677088856834166175765319190383450585822883090627089257334295908468434540896629246417578774887843951139854279442285512227048391097132109072769953393719288251035300009667857561961331353598732549485683475654181874980268652697918754961632427809236702271340493533351301148985524254730418003036173538487052212661520652825863266354078130140775104859771891391420303969856012642438691688332019550835099421382675616167256138035317466805886710279845432837886778053292402294067106327891406068199590534194198251857276516059209325556637474397999557144037144773876454937815138786333273665594395568141614074119471136386852590784225646787550645061937131536937356157246157440316078008603901695439154870723292449870354636279771306869603140827743049257397221058228033330869442653255323961128293172060480296529052908329824708101980552413942653580915279329247979482207031531598330722883581116527846098342272852998854744800601903906934916384874208110477134423166337627012615965652859008569586151213882937773538411298038204964606847736554655751397479086243668137347527931942984071919455670811873829428984774041376396762070171339363445664640859791756630868508702678123931568914941612193606831174983405439703196885174824590312109537536517448453769748744092468211411586728091909940844509767381008058656932243172784067523759163258604649028780267678330657846958010324014103670740748762032568392192648132376678360427162464291635140751723980986681431950593061598463859408706149987535130425972661811306126870227175075603980955517622299622802102943985235305705249365996047322697707544419377094239479268118987226556842877343108308358030300580904176321008875163667606425070003916416344406751150501579015618801032091618717622522005774643658742537832321987612735188512760012194159288008658531316620374375870610166891049086147299913201827619646400939483172082973161000364584273507931305272682387902855860177952716913092083660906405618071256796472392973145917360700209944176268109536477803449600784828191522894453763052347230870408188935651286574280643778524346027438968274615752736282743133055281924962597002031448223474122905994777087824912637174863757218701563247926309712726947320290625692172388385553873350217427836453047406092322378482027619913910008644315708074746368686176103914651749356339076255977548302801275768799771376224013364903501913045666198938597153867287372727992015380266185212941268353206761035796806615296628146896616004501704496344430681648304363139781723764505170271172359738590175060865523713587802398739705456417951059035657259878006692822105525738860373240293203610594791772206660067946751248544453797385286322530823153887543826000826203211583586253900003848710244999765582799282544636363461437968735135380877060304234226326246096631228739127309691999736280210617584574226396896657937973230048383847973138243081022179930784113834161774051024366910551272569505544358492328557763901646833225847866165873748856324995847430548759113142431411899180097598945483436817637631542029380868623464315375381873442406189830641023091198748596313312649976866981784058820613917344769250021362374299551561069051344725999763613940936565897631852795126833251305078738312334716942494826174387797825829329914638699089389357613587864354110564383753562249207128167556238200840595005210567133549535746963680770529705577255034265603038765954624796807476548380082328713462590775718488824628419723423361338087775489197221110965865358069385360418298436287518402383050327121877335414718811539679454303057677103939398193719911085272904477182494347946320126352363414104899322014954464972691416041282193499169082852961103658090700028446249858316366265869575843826704972685331732599295276326850607793124107101544620410109103584323982519808659087038555821080900126194204525488637766709997386556780467706504840902883704307956599318242689693680625550374585482620855095934256595355850495934198015721933717279371727202102404222276554232174672053813806040539338976624353768251809121963526123265286180805056423441578738988873741659913418156818354822556655918578491384270801670553602507830807190205627712501454596622714993154108702553060055759309772288053291052530452316890657701229620614714207124947790810567212532272982521491624972059466952518223518818950395719338053255491867163081045847048661164347238353503512732683624578832238453537533248500586052556023940312772605391990304247411907382594875596837822899413683077335299200889715764192933683385751032505004113279258102026309242541015756674024875202190586408149122828217231431730750934893742589172966598572653413518751138969586455886801176573566299976548037844151129852037515737004855287392938353845597848887496741401160081898055043763837631716415114578743977691398415518394208195878590424244079400426847368987313262871546522953997181006424593327806028640961159515830438001511306777337559175213650108914951276846048234734414865628278010612787819103084903672308684173379660280323604229768368638519844912028085492534691758752281130796835384797959139007163209321000318087976440071526029619208866913381355438559311994014760889238059370386790041736014262341718781976179363201107905025077257624067514097544561976032823727909367370019810514110876730272682554771828215575393660610959248723889780876675971616104709052102936012022736956411032425909751659086696541981770439889149144468840282650102305922891641170533903941709525223549197021886887553132104335808598309836153466778765839370916746490155608533996431907955399646841190361025621538829269701474453522277921360541417917025175094487024768758726187614387304599998188656191100358666242207789350553483980520901845991235774447319672935129715354613349730225318043244902390619828929382581822003343995297415650526352009560334104170046197515804450159139055827597986378263726015919754165555142534820541302362942097201989496738450519459360059213020584734625053405509382204765079543929278568777311445970736946689324550775844602776515015880376416325836034782865087432357007887241677801192390526752936564230292075395049061755737942393015664978517541714979263023621133182225811548067551022060475570581806234593625942216443416664538639493116590792034103471561672875362920464585726243785321640178406617144954505172351898041474756629932072859881028779163566419473713796501951188766061804156823437804715934748776916819494892727795898950018776065330426297215120710645072884805999793972862908595014076432831723438922553715844054488831792633869083346734665886850284639155906859960156334779301254117853655410656654849622664482727800681555327921174715294315563830357906044574877619198305868721470319055624886954052329162528037104076318177224421977766290134596099607410256340432947793202271552579841087550848652946373911917516931403816611594595193436516381248001887852979826070606081276296219415656837936618615695640128921435976404441827629471577719041140903306954438224682537323584196432603853934062994943459653037397357921073603899886822372487833950032314017707494203903665817043751908484539130125085053696787501105507954371827199395233816739855387344836563594174546142349519068506599921531402672337001490766783569777373053033711433336852801151234287816819408974357575891756074610884052624929244524573844222274458765979814927053375459682580514208492799450914459948970797802086069071769931762242491752461026629366514254287084709139865113642898161039041281821548318359317593819940177974631183526850828500501151570311783316330531478150332296754329371115435698532847496297690161160070326018192203956991409304865585021053543553055661512705540758892093286045098916898856236182391882128183820252915344994687316632142507044400474057448991463560125870360567516001976851990303465663815260181988521687679008902891055940814214300399427355761977574290169712285698424141816530762165255180397542964848497430160123755767574788078909692499570468176897172528465823747305534596723135528244176542189267505192490316280348878413557843950995298876486195421068443112358225649747703741298648592136200745412647068759996072210299022729554075084360358247758786597223666621584817738086876073762609779008521110159795187314747206573644715465278904908175410470876556914568198146753826931841131690452844010831846172529326399181292977141558265839576831517083885981622187006851538641325797023892993334171072992091694900830957409009507481299404107119950697737871054722873414344014763069131627198474075762006035644712556924513562412384115133795104660980256597166343804026453712685526047781276352073289912366345187601437765556514049042720712638377326640859584097454197710392923806657302937265930743361930661147600682209209824339181688931335555424709729644769437768270515811168617493028099720276252225765275001647273773578579359046987528116394246886820735703810518642836326729026169483355789963766826290986210562970529938883539600099888609960573732017329728214573996345417574005067765323368426150770574589837833003451738705522613908951247185694432030684900843618010047401540730545452239423522026092029610590129021704404187797322603407013109008306979177889009234439754147182796743329233897743724339440996601947373907752377596969210314071841771828704478793508917085909590780836399224907319539423232030151949899331134122957205321039113818604759398986055953304287439449699888894061776508474886664878362239740412831928585782386621669119699515393411734446109148008477069920091322424790153507694626841126731895955403996462139225983199257321899632841478072477578311863498037319262922969418295162516493610572868960320970703683931274021561457311290767836937099029686228258661143514440058857109861970857526567825747499944623321148412196406305007093750142402381584160318744808029974147124985583382739825241195754422700915541044266090245374035544222981102496825364217140772283490653761710197248549849256123831179102995746207583799527180849379408265102184056868789302886953973090795735758653492693606436479483403566116235181090181746682732154133384041598673775253467653796661052095369802790367271781276155022995126872983498216918376235603433742401872025982343992199843802717420601411033989421951425613964978827822764480773256754212018101801052696358416474496821278642968507499489573959204346336515946391072825772052092161220412259782334144535627966823612696244411168144233968656077067031774861020755941687495612130213923804709118908079433824275021416093311685702247356965127114927729961679959887212282132890269350050086892349029893841320025312072997503662469273295149977383131936511837595036987219398754121045745068935892359058274956285142504318169817212782607199779472598360477598975593899825425398548359363443766085141601962557828720485823907285850174009368454724237733733473936828699495989124627612180917028935429789239678976478684549724362806730234836278528925102222625192256534212218706406899862405817179778639355392420967525079722904792313650313314388614281715283580323270655986411360016313523803988536632163490337925852976166445598311189722361419786807923123992786109368292437502035108321436224343751257913334310910116877828888588405978180301291905149829705566610565875331464306329943199462714634117479593637488527436576722814379877462069736388495248920792619429846089884451652485185660382326949208504919570766544995233000200397868874801141506948521820478335109902145198273760467101855444867697168043436664921457448637743885429608670450819684409727704728368491134510650329848556173824184095427590150943484961136987513339673284924125408180673561414881719240619768348365897424193687563038636576711478889242681211827229961587224928193480949579497481688643601563979492538210425134976275636307510629508856444296354326544970590421465287336072694967340799256751428589978793728780428070913005715815907628395645714018314562668172169766519340763583688370588970957263983774041645084991178919337834682378599760966546995650013636061165908134964866490704130006303971803653104581935671917061340220801360901073400139442854104497691534229770548867220378227442161614085779031678457273311725108856285021384698977370545726285585438240739708667869586937376355056016934226810716872519007054459445414550537773330325455788923468795897000420500458000973883135274789840650113994603395596814308683434409134213412227936322114667868249569839834251438392610311930852297721365404990942384436618744492833163413225380029051403264149250231787028327531259537024079356397911802818094514915652810428644515962720747709497187170455213775605326706364509593543968656507338419584988265123071594397132000957801192928656657893245253218445128690495950367848506144738416747166415883415957823052124858863688118282676798175274844150803352657076662196345489373635206377616230091636762973905950447721908832274735573740422954736912057825653036455554101107313673442869317418137373000288784881843334652118997823316962263793956258144066689734113181770341003868395620813990866402976688863148178640290777064029192931446857277656593466905736464784860178789755517889234149883171216165761327791118803511796393861143088333048962948055464814684950361643449174404273945167738216549067320014670772510798300861822678031358982674564205384255125702886130346160084670718762404588004485803230700845913362481549331391482531872241972605290238612673976119675244168201945402550709557069982519819245919729844079202999853955666938770068521825296560847549650737049072958141961400773424123027574347734225095367444230697976422609033354394638303383508591878165768855631462627454306620253353975602511543128956014851462179943462962823562987673496354780108535446696540199342781173229527588414997964656552813854978917869853617733607219161226262215035465572917034722212275925698720871394607977804216201770238335024490532007853554793689392480694431722002012114835025679064085008217187696113272379102803644130537793172380739637746916309947197334800513740754687661170075490102936781808467109445147019639564944454278593996876135322172640911361778237692452966711993624413966497226699301979249634343709481037861045905259816808197065777669348421228826666042100194198594571644664059100090665729824378237510203238797671845993945420650646217109429548134098044301704238926704094034190228718497404174821657465987203029086280419676288016281496387803143954512328974770844382979461951058064276292345710836323502104849500871780797668864459024212062736054470814659022117416543888167642316528143754698092567229938911235422613330735762197270714983669777853058885960733853247870585999666355351930025916903095187080419539135934860515554010326883163849553005830594326765994083132508536519816001134941547089693501157395205263800264171986135127197260933829685576184610938292418446979724364558636457877026329184081243105439664760024440124573466732920393985526897439882466769885646108724274785793295925437717145750189310076823724229865374433698204114092385276944288756624557858289033355521509417834175619616100407216409312245222730002309867045666790658097237880957373904293141229547406716816154860875321801115644718148531075688848118704335985952949041572933156182112728754681733791446035774541218806474402962867491221460517378056095013273514300415561361789850608401407747642373912786665409850736521779734826856880773250088771520231505914975970580996365060771923741955161500143444462245310605978451412685838122448312877916851796981759497627869186848405266965620378788993386077520248518131820252521762113921925021345739141166710090970940058244099158713136944143613382517072585737461234876634056381541228069336515069068148139019057141574885608613952122790896143544058443170243351792827858884837262012644759146098340605369026928134999842309975616548009214213611998450723715223279132697403911828433775346756350474181225331817276581714501132325069444332354152080686290748412976277655177862251411780735164716065760394262741304392743881638490096851714435713432590520754086928805576168097205934357261914121414049778268602978725456871872534188211584509352527644409746195772610621767435899835325680104557222231037103123326893211648949223050354492563890888921438706233329627424632901947452252545249982413843845868314258499151300412447061691011447536191645726575511716764435314758364802536149917187831000719553515809823118353278222958734458728350868819495594711858042099353588409351696474103844903333430437230519539424762265361608659305922855861351717746230663059038423438726809151250176604400047242581790254583910148051006414640905347504388471088506491814865947779327769153656325612091598877734562385148835947552748889866685562855307008254878444884747043573358214970380388701674246888018919749105245739905174464097008041861947562722439397899538152579583920720193102914291822841082197553758239619636184622161389589386883129188333473492838846171511202247820504578483500629353349645868794043069375548234469387745251545334152315570123076402697314553286942195826492462812772175044880757159907048904034818976442874150490758838756323459058229624301688287490011263278402493811455698941712326959697709930905372549535995690837613505485602667055623007031431993683927062109286678797361889639688901323899221490484056067139441859888974189504393511605316368895626413203314378907911536633308367712545485869709444454301744667048047055461158593262655289919678380374226342508830376553405587392949392733506402634563456684576546861114657074608897250824372023474944238633366172706934416715788129969646712976792808718197596077257692330593791808872730240164700763546810787241055072172185551212914037416406894837476498297875478503020404644445588404708301880879993088072116774765994006049604057766962756855489636274287170665218830116982182150352266926421055885682677363221977658142177400256183561830352904467264687769454626177564873488495294008660257021377805345373614780220844780062759606274473268390113244760066996889754062678189902408586055964957181569882462128949077423655486919133394727836088814281078053281162309056370127927643716291618964111968495826605212791610439365782546202531405401158603206374060852881526597905715109492005612281931495922682064991702799785318000305365701734983767093174405977928520789709458063453368101133475593976906569160245081386548230033156638132572196838085527319780211020382180410834475840763693227223749719465062047484517451510698602717237180964322274747790706429048288989408068123225559165584712549034566357071963561418832689914136750173443600003353994762250768303616851638157147369445407790462019261832089483652149898186431791738340485596510705854294131777465310362744958702968695064285311632459060643290335566031783485418116375698717522917318813582112122486941472299241413924293307964833622139296963910543918882764163758713201149155912848713808413045673746768090029668027545382936177743448444844241051675347600540078207862415189346559911450132096208938414712857338839106316476340609486202026569283294626428680444253784920291435734233036460858297044772832633987546292544968441126626494934557733823412748608720091344548574752965930305949934754293934163707703792318185393035635998948573950277552947161382102119896806907174829663644731416392870262256926729317353217951023652351200905634254190131519109946264969270969366572100684158413207686494835429061624128651288397749476869468983901729965420539442534976503690928273114367195414364212495723572609665390994341772915949037982837695360357313918325080160911975763081308340334187265441996718794674283269903960878935675997286400720758484475509619251836285949175486312010601434158645080624159526759911451059117502361330789363318484933329532304929225167530467762852730659796189568008107964728676494875022168001594619370860648631257228763395443292590492318239872083550050566781742011728695039022620306832367778890533303721080939389502470190231608301399907869326668521784508346665810354292641825717527377867339048435542447435162117147695667910497963559076933221123944469442803485237521713322534210616726258755529622395108135388794294412328443406755074018191908883715326557049101921761921372070643014612203274076916008341599276795053650658610113364927411296267225012304104453754824553242191688879623200356104026047064414939091152184248222184468763615622124208502715045756809681641954775506003057949018944251187204709195353103889619713036552041167863089628435289318434956753272686439893687591500072095459666217941134017281006953492373997000683584092840462561926265267453646126592777018002919024729432949826220369402957522609050481196224657503898104937780036124020766634765787347582150922380546450290218205805503575382195750780406818250758014736108038417076256189107869154190172380598934348798421825260748290797032190977932966984355367386083585689166952603964919110818299412109449455238246721676300230488294385932624281782201748695443059185013585085301002258723049202384619016954198636020148612403050898480437770127726368452133873227128520248296195733991994406764864679428913063037314664018455888595978840931595408017473288889005859938350666440355794001999978126042237380106706735794768435496108642394947518643278076035132769939309399121934763407275046411531261842532961760096009364626142129115132398424985870597740753487462743631869397036083516297975212305167600516113425850425816870687432500524886047027639659975291951919425879277781540972013384140605827595293828011938139788973494078199189634083807595514731753687866511364086815562959532070638257272694791090074998028982546870055924251785226024000544766487620988020681002437985463925068610153892470495079103229786670064338055022509112306108776768174596592758025867387118320270940176853182760880260824946744076918443477419631558418827176787495737834640920902171321527853605368777933604267952995346452833356025525706932933297118816894325650882434256585630201867462238834844358640319615078519662436867559990768819527800792751949853055262803268259665647158402788458050683844918376023192725752915682439805691477250332824437314936368576157657634778914748535338030827457604075550844639981140490877547427303889373868956873496214272267352024773360123217781114229369595483879318853549983525658837353502364083255795856061188376058632753501854043846775147221945085130892580410729902435208371800405068013946077545763212662458666598903482041289817428997807410979271937830982306540931050361060438245579264572351623366807108209718020231720256465980195228241936108752693137007056559697814454528796434855074258260439494051549111595620265734495775372196816881970898186734847632302707956192807516947271286371622920865900058391827690263396613539329378869459396764599679456754728289320720936639007806915566038186545714845064044293162986859311213089439775697834350982349942513254610060976639022196693670980836220392563313840312077779379110098382071197639282143039581536733016177063211564418440860277232768681527065885612008933444239941493052258697053199573425604437514831452602532974634875515391560096133127120006927325318521103483317200528648601677401903169905690749736561067751053149197114750893049664174206508234693263290705041469144428296567981949444618800818627574897639705244123573402973951306176852598065261293534882616980678985954971229761984633934586735884731484178772543177406944912950292344555628329678383253447912520023989706917518267765923678516583614299359260868437495994683487549877912749043941322501525308456176293242424814300463758742172950209199721095286756406200523982821946070356573780567548341408097250351994869642513196810338143133554822316633329593665492924969261764832290369877797338767420233828931327146420863452730358470884562164157875654654592589166705841087770719089984681162659166679157607374095130369996548211187858300893324495887182974599727214634531163096295483229934046895321617847310738672034133681107165593192993698279139241156565920633523833502251927838965101609330985723963399711124605318878531066517426228960953246484559474383936953067356922768484855222757899637485987562465273135238794934924061460935380695121889515595525273009848752806673568187464171286384502051571000097787417040890912118858020303637203402341029168565077664857605645701479335875154766249237153465373078525667008693594242262717327428062342639459501670814637300164791818907312919345779596982738244587616130735142716035645465701603847098755091480391287633526374959329292918483564241962359083585851301661064193684396893849361320685402379696888850585681264742612548129656073011663729238229794275992363942869054612727556895143915660258052914097891947602392175668253891885524392208364558413099632183176453885002038021420485821158528846757647560584808425771138844462473158725385008741613120222574954244599802241416059037844769774186539150500260229031361433126819669560919007327563170482969875612775631147493464042658089033059111466602986587765546455689824901852497362952986900333900674801867986001988558436194699469775792685521292375109544680318716008978104397344516134164386835322055673279015346460690855238589844088352265505648011074432832550764112226628689398504082418274368747710476407895988057469156466795427885988266487271115223573551611052769125200617315972808637474629179302927691721661659397668085030272326240870640499242518957948881535237959532861321258981665909430192104089151543656856850949831865099426522686474701691019515087205418683112556727289466265735089566607104067739263663908946740285879936786960729071723518113582603073061514401971145768371179910910685157644842675063502381705669873717953489902024008621356418181872958195402242982435195187069543143472175962444688166097428978113486418711935531143382578610040987967174231111725920372913949516587774127691400580349244351301197234957745968639302113102483404248362434083330923025546099516144607333170726334931646895809229731043616201113758286606700648478715857993473369837644769328539621709112918260015843056961767064607989479196583728419279241256265813399181960018664031855177089224463810314216498384781720773269517720422390197228516488695848600028553569174821923336483838158559996689953454319518008063989629802801816454929600852359625429997543750314681958905602377952476515258762295694063360299072569159532516579494584648439571291995857159983253736002443103312044374289023237255269167842539993998283785000134606109527332041369951357796314221236846864315071252347406182161652517210733577761640379882569285563251128853773147689826466996872598214155195154077948271867780153519674231621588124080358772286075851224904328391088195986105384983463129261178352884331855626085865680883424822937557981576621632355331728315000852014104377526158032238167565472822212830401135750607675633277226628262074656507308834870728856841036507225132329067164822753684514234072553308345810520598173669680924154113259272240531826599301968413814460283883026350419243584620548593933289057093562658369224198240291878386886168588511689811083557118488022347325249785197416865631028652504138854090106418370137778553066194932989391214895572303573882383895134020982010636233984290058122525713084418678337134757507400470988927814820221916299411414411226231728467597437866408241337819121067158179780228114346559271080655100128307177178042761701589626193356941466971547125252331626484085377715489289311102961850572744344288774549225846110740770631162497338472203182866327264197178037746988466181036087334900508049507555322019194905565195260933890302348357412312033644665772704382027704113178066519222245931247041029772952854578979166211662928871644260280024354314947405196200328221229878466495275666361061076657429308970389850957559724705620740866436450527996205306868832154825617475430022742174357287586963927339931606899617790462135351790319276477075195395097188094884181535686278088999760194631057248229145801801105699641231915221402483403080448902224631992458761594758084547844816974970656286649879307042022652613901007922092111619733385701382984913459128351876102807315096350586498205586861258726209287242362773410802094481360848871916386894503590608403729492121137190951170219483850747583807676505989601276843122977581990713919368367213035408602868290817458172205861761675206009991804955375459981327997233255475271868288194957827845682312161320939354537653777597020155984822478978272110466344101698635557395668799662677206365413257902624940037457539089448334658938445279436842091814215587023429082871017840418174824905087437443429118226304000268256680855982828592104320193858775170039871345520901141318264105464722074627014093466062919713277428716058515551134392646223578828135887757413127446644504521387130088613952354046823738477508531136358674170636501768553801329664671548995244723008407689209595379427126886346405764725291187073840149927793317850215916804942595546141983323859397543501855261764384669917191474692638723631027864550588316158381346886836000933517222406678946162836831137744339786055544065440440824842378574108702745259967074734488688347609177866704021696068965892188956706764492200759993266807696079360598462650287308036753643473357661465345379293138684535424522684823926984151176582850751900561358618593697762765170194468693604106639485027955689532024532332107917508180120435418564492386236940819495952817275002607341655579965160831696949527833563765160914101376798655106871389251022629328597786901580784327994970465536797212682377141655225604183016571131786966427486137232342250127506112491349071579893621091799783612083285796396632183724970982072618668985423195351997621579328796756797468079918404905709818935614389229523435177078281960823465561196098436421188348322182011313969340203081597151346948446709312278017878957675323850097175769327645599455589239291261483933825981405015345597602697080878468493247142376924000319058580076188583309389444958219795748810162555985349973060915207855347541903865975094714846818081810410053656683499792880975106354587692878982919892038964468881504906024845155955100059363445874350596737207262313980161236834368251772604443622288583838994966022489172408052656830029391033840230748741678250016021268782261080448218299400454691629564296060779686480803401590482173644516731721816269414693079848416992723989473830700098038628493195078945810783220525238856770222700815231365764890795160001005738287720698285906066742344540933830811128681993904414838362292986212170723350631569214136584981806176424144647933427868234861532376338517565757910088465823139779563221566933167164481923875018335750190645850417029703222523526578052360845213746172952798125522508645757918878560661907124804815882262051020200088977284833495881173601074241796281150156993833969221482677384160510865788439867874856472415350894746140632687986240247845272700620638520460663047266437406651991391522045036549337726108299699837133234408793035055507006858600659317704798819927055386254727746201361024211601331202752804193037399855302170321776160534912635651433128758287935458751359880128037328958524602931064039666977943271908713454745135372733155130833886277505932157307927070656966884421440981597260618506475489871602628368768654228055465217117131998390863994739770837254234870342752650680379174025142011203776984922424295829471691086367964756947412217833875650978149627579451107464609401681248682235016640164272475346862224726253808277653308393672358918929239482868533977439990581558662916626008684258854393992496306169065118702952308971661721132244618157099341169850036030427555586438600010234715144011488353988359883597613579220395416823632158651933207093703755440500443131287775450336695811807737101499185597485827872002169617816887629197733477894785585230483439222149277287664286847045365065936881204408352922733512323463819998466077411910647760314162875566309956478907834767753476606918576774775128078550759609917853993694182809789592551089163809142374771876110233365764423614904201509690183777791663518129352044212624788831848974518465003386601489168316234127817406059504564826879427043217095353425453422863853293458152743363476549827939534392903350446676651203571091145518732888345824174407282517393588267606990662246002951533888770170890715213879728247134056659887162061215742314288769963949204370873867807551898033086311249844985355999079472968636314822610827626676633672447766667874479660474639631723447778077268063161134988401453361758797387654738499987037481532519022279924312374724415932423152895589305719896711704829911194710229705524156139935316900493857061237461755645248946523341725497844551885929108093654325434598648254371344208270446269826770371941897367506158401076755384055493273506688245352261271192295332127185160666276549463236388337017306261380092703510710343505534916030425153789042536474732213691484815271235517105965271719697683900287779676768575442170313142458821794326921503935136555783778900257412546243792475034311615090414365777746866119472208983751881931964320993027562093269980911125823540595734097175266306823882243605918876583941483919953565373735997381914259372014684165454929487001402832686741078525801775624639758429269140309639699194974231372441803790148038545536052936194412877762264588779598582935633449456796258332459488764777969760432110167381968623122001760164863210720996852603809069221721011813030239501172076305035945622844636942458958790631436836444356464282959734058756881967403447039172767268186204158465883865831241411991584359323106202741356014115391659610505685963123885848628400834396993942911215101927016952695642451351078128932755092263335723486813288680977894141642188327863436447787944157007633342724293908439383545106135703892915490677688194735639982489033470811203583991547972602361204615843222434097999386371302467421652418245019937079073310126499168914180214047289298366241875472586965694965600087878181804064357797609750897795167081783022325264615318725750308253631801855048145581656884677173598226912610647960948255065494041658212462857480960489311751580943429380373745477998794589109513886559509615210340815649310863137604664171745927503357167862032522380831099860369035432511763475398961808766046776527817423797750722176324157472333049511617878548831192350522385608255972422184133790788694847409494315699567122636289908927809682449298111083903168731008639428423890160019801226748877576522806045274758215277077623216336426712157703631605992107380837506144760619114814877956477326058082828881141481061712789104434670224996134459753211918595531321144690645587515943103958511582780617496505630328824031503239698910022712312712061561806067088309418385542800682414996728174463986248566339860273355671424387443260142955876650228646017168951430692432371427252310535896922669575913676054223742628888658046889782349333944994624008013262719869670773572219019416853391144569834552877031555060099585357533857345116123195972576348995275037837497489881300556453866805865126875374571483391925036911395438833352068182436213531479590739416859473937026819821386001332864599977734828286075014429984819138404259542342408153719266216087720710082213130351460474384305957168440933073444632800736978247857763202899431910811435437800875222663593529880200499854918888020004629999592335495454593839452377469683233881852384369705609134717087767447952577502907286193690086617253104289742062434565058433916558374824382633884530215299253649597903964180243413259701782450725447281148492131844371621820028456963883013976889098455136580678793724895073360179569840556064479870550294598277713791099258742944400501931366630476342775225322640030185149345360171300232305921115776111893537873671397448271858131173392382521600343193864686728801930716264098270546948947173571704656251425137160615484483667342080626991837571354027580652538717078903716922279988393611314884862883008166120592888081224815859342694076005139043619615377973998825506476329213006700184967420204103332781393712126438187699472999577669985503348685334296456173797484506609433598044212812591381541771502895407495767733491283253402637634116023344608727969890145053486645987263796456285613970590353690456719546269466664763578877137991397223337915684013849405627677740501684945665725245040334648594438500486942053000485095376323999875391739959628287836659484065153016189806928318948765797835676974616366268649583421089821455925699884103231065527171242865259865958369393853853288731725440565306372273063908739752581059306460808528440570795476471511745321672113350576805586343572562885577253221267075561433121422198533244812615253463261843168665345726486362146866304392429471249396842326638534432580179672954354512738561190960288205565989674100160398846304149285085981509237870445577582566863071534972708057299826378578332828900408948700038383843520363622222532909049323806639604356069574850886127341836409260412846969838038854552715901693296507821010490762205943219525473730029696620836643604158161192554990024132489523171373997940724997827596172706347971907361865677159816481671811463810745781760764590436122242530973642722435353044130654679026250775428227123626791694082215995874795693437914908089178499948230239172033955248556702296507952144627623575694829978195123673120198781594337314480615643673026420354239901672360741796142576476837292501023571889257443000210535841814826583164108435251500827499077545975397236303906421458231982652448087781399846334645533835931410790951691882573539874860507060402510998465916337596695437035386634911109379755229121271513423758153669736233305452004780713789744188888644691429496624099158611414022023268855557839707283745586283142501947710500045794843020109192754013697284842410410551205190161791972960481774372474169798767468258934246132248551358887798710261305285558696607861381973328578639801543150590310210649745553185419632495318357897524686012911177360733812608539827481543139622436674505501546488435331335428269916668528515210267702872131116091526513769552060103113781303118932398659069583230892825790884248000415452553837881739561339438875553121988582892213873598876355303057906478126880989174178053332197301944691698446235541887846768003703161015899647645726102775788821501062869717632958387385497298277065524605467224377544304529047945409234622454734372762015293649329151847328065650012836616919993177527579421384810046110557742269068013488379756897489541441840843861664991777385934492178743773180605269669672587097126730748596831548313783554937471178271525092720029489963209342600912823073421536277900522461553572601730468236727303876460128862477442519452682798800651644132951607813711385550210685464333759727661258751785794251612776253640745197954931878160171028748765111078605128977501368795954332932443088383458408895320109916691277361555023661760962123118159323678165377664135178385955234743994889967135697569403600279579573947326177402400711425631958180195206778631188046746359350084701328073026427595691396784408209465563831355765587641641583808534056067622297326880723385892775075209234848878406620155652345450277508378262999502719790640770477385323561068228216859251577121790591465257907260495688357969113677687774870490824409802639440250018471297767622303804688832749705101447065624819594017263834683624366498630193827238306303851222697396148078118481889785824278663672008062845592669057738638240979538489527957790118593669765874082251941846027958663951527070777299123267965776124436015831058220391767591288681441177846528886678882004029708225631981724315801423705819980935080294709751214557994553870081224463515082957661705088773939602571434739293173579227810161109669465196432741464761898354711507956201583892659706287282961213041047952404622780641107570624575787518949837838328640278045474737544736718684035086584663209816988030044475727512519084498057805518232607367433851999327929972247833485558156609390804381511334021711118414874933234879993548971242848189329853096712888775010544195375469232654143561443841375714072594470166555147480922144474434871829894468594080952652013192930460332586798660638617775536212321179530521513388606757393447163891958743666637658869723689157914000055718896960914315173935214237595816047635570916060451831118287664280038681692407253490639421012598647571280635414100983204710540461217315045034323574919313180254712042695857605696462350409070520191899866001519007052461082968667729166805342751012475847789852551976362194972421408516827099747471259013464959318152045341060789074235590708848738002444885672538325635951844385223854517048904491639014322574391478825428140203049590648651854026462852751142411402993960544810430256320929928948970935619698779675016430251306292806929221937840972683053536640889561877597986731425671086752150018894695962560615356794139771969183783721890578949249987912626923651995207189978424187547417097692981469888894643095324911293450667115949981757897668183674842198834940631067493767052885203693019840220963923781821609459799507159422984738512396408723778046740521743918159140136301275545098092173413842194852030242718681191150203084471387394189582666442719433552126324866176236990811576928910588306223549983732017040223738416606118780495195390117688262301042537397297523469595591062821809835025195981351607333604492612408840865181664650751765140801594476793192060329066232753446478242785788599417781219076926367957935166370700602910272329760271972707100600038152435565500517165517042259700485293571769367797706465119930962670891440625984249617865083524561077509570247699527313675774453060540364549792669623545575461289862615362019642300218209453882060704356748097097841430627748617619468295256133767510048192653949641778891057829220391567732086283551598654721814559860181217407721207060789367687077948105918227781844402876158950185986517088994685858811425743084249945685171010221517521056233893286074683627530583232280248798419429832702217161643912937562814779696548912474204044910038487115031454028869955475385238220019658072921867074418961650962201621611463722401552623264222790713862862987315434699567326828780058112675153785841829753438689051733263740717280571079719725304753007908265377155645340693620399430129823055427775235335702864395478266014972394728563814107478626847486329664537256431132729182094491320432746199338203739653023255932385780142543096158051073160271322145013830671868871382139659671924283786019565576611032166395580437524299153945372067420462567802955107673119859531510964653094729567315007671720293872865823995842966553375319500938214866299468656272151511336922214815414059425623984303140955460529681602270253075398452209197406519719824727499378042949915968865285472760676743395323497987600390904421581647792317891414945027334788337852190580698661972823291988873464357437195705455300979567826956860850373839650220391992427365934375426859897019003799376846968718929631224841378257593947409315018302236434718440001764387869247520765882293432402507511435745587576543297056797157056284144117477146829004036559184614008231599782550882778035000814579611934919826454487237164363432503534425912287593925280214784154804884507188924475109336294731279323223086355062156696480381911480621406299202751149064874464311726369837490153249261803512835511475737854082773672376048650399618894342986361211799783163225414116188916029321693820625171844120337603234039963789768886131769129346177023852476780376305282234950627635551509563415562939936347120233470649211125214793335550298140455940460390770033184639641047254049010817123121997470800807575246569388689199797234573315273680854395262012270646159802631590852880549253947296023991925727635200001537782597897107285855751081429592597074708353616196268945584826297160213371230149474108593190908970712972780561590300956862297644017798655040756901208674850444781932391513863081179958214060995610001431367652865841724352201716093791409904939517340112465551267639625900201774592146256540502514852151273242185645145102704583377638557161357993833500483266053248913663579276077532365397305877416997864806173484450786465812079555993476837659396144538300831796004048477023834218609073019488361817511591527461665784984568212530104865661323666915114094328300811121934574584219518433072310782635689573071505304050144094766449620163138219875929401719614480871169445105296195245549164244080278331635542527394992363576903465467813368515334678801919245064032883801488172072008550103639340915244322055554712531531860400261467490839238837343946992061330981471980864993163899075492405786849287594293658690197890633440929157102139372178355852649895777687840868394086915326829464090165079101961163997420042616422660094972536564185881330120415030460623764282052304837277103925315604806801382004862320886053271676168413530097386825188034073276790204475186098620276542825221584707678675170068457241376251399901406274771339549623028949918372863867536912482126503361855829011940091891943866490961862134480797444605711251343557989613191747683840611156640485248930493642507266766653408614717902314065521286045244715065803239785169199404886730242427939762719821046657822537616939415628142517275995043814625746976829707962925081072750928752250511669671855629829924152781181454137705498051612072738144832315492769250904882443966613248629620797694453296503785142710016825801222964362865628672954125032373383724793775065425489422793038873089265102649037429171639846995191461659855808413626901749880629213751312938079877985872419710166588053924915474085393738675573629987910653950443110209615482796877875620817051226551270214936281556515921796817748754620099148652176083457200789711622676255852223790347342805480140059479598116949445532244072114226785892531261567937811934043028886946233287753889568924534049803299331127220967303831190457587306750952597441442682707671865462247222901932237439671169880314568532714450867839644143182737409432633692845617541975354178470421364602348898602868032398721105393437776772418586620196401123431859884475725780444332850881375837497360613017989932161288452979688811672109395874430562612328424542371384141810843553998961587530317186602523994988985916842660787993756976781445728525748822420892815981725899508762531544052884649441444872782545838254009749160724124759731086627131007153466042279740412923449419586921099782290743679442050044530604778722145675137805460053246595872118224949910981450428741705106444270410984767937855079114238423362796606989821558917411662306722192784029560501691175813637932712771630154677520386786406232851399598324803437225326086824697756684960936581766320410053769186170521463759812562847809268673088921641117584765699195276249346143756022365033097139025721171725629838502048808858140279592956758724657124779105328890757810598690209737088396251284320166765287614351608075922004677885079764750359234595532316473845866207890184319942963666234904014665286575485390815049586400099779255016920920752180459752574194982039364700102841486833864555583166902181334634216897697088643043548406537846031534148007323282619101105767551511751586173358900842366491022551591413850791557159511558947295544870639467821888598214368723354167713203059717861743571189258309702527615076938773378700723286268961837138242085224207744372663862827044492816410197812733695314673280196590325504614455231754965787922312992320075140161956566412153031850064001299605563169167270969151284535326438463106242344644533328285182971958919130071801733844250233854505604496159801160766403292916295343639375199244366155408084404048607133945995615512128085203147352557078966267474027828448611132713266170124043090531750639365182352989951146307394588316321600303597927951572443045771322163591543537717773517083410142021026434264758215099671659782716321504686690704560514245516313844728585039214429345319245851223291461387270307515104542329917675304931039942564676794580498433282763951541214656645594557416269186176115018144844699958968674509512163261119030382485868662207406089513108474125446613764460150556182762768548497439137341956778723233997747890852918288929107894116708277320735235392788738629305371444291416500429966492296493660598825505864992194272283717283910741447308773742472627895766592821291201290262100717363230799259197560850198795513084233411368506776472712970160351568210023411624606960445412527632006112656025730755542747938879727466096509500534065342254590399055423139789319608846442021457829905757521710529856704072997481263340100335599666991023906435754883572165505612378334215079436797268532250262065409734897524664075759748419804748343998167035454569954914017667921251856269128082745529831308094536694997812473200044895027428024388883800514699789121663641198360809882079192282245583060321820604285125014334506118507421115178523906965411293132423414622243870715432099583089377647206599986851523733629253585644425115933894523274992883576817639986593103432978693230131577116119641256486439777788796550727264477936441742641302726293104699408302420384774911812531475785424842489715057796980357269865766105510877502213220141590368474283338870883793749497166157752529414291520999499517279793663706166234850572885563176836636832012994167454226098241588455387384874764770117290272730705419865141694737456730413105548535011375369056368816462113181212752551868882411636438130926865750259724350765206963917344084226838051720950626095044525634556079044336950210385033918698749556169374409703466910207971034281204404004377212385112822683631786888846567313169014778624826072897131910940393633931460424483698035469837531976224705844817053904275096549338043067701638822130387886567113032304070297141913758712062623093379661093469926655328036728427340906915470193875578573831045601434612536034882492532722847325465830518230910264062143988988485414083846835659148568248350294968347833419802200523550827769880587305481588963642001787179045147957061140986946433856869899936125254177381314259393028258969034746260291260314610168510925047748023625881545226108763320154813146985571757052120437293840930467745365376756189372068561356750389223772530014955169973938823722727395023254820227457248598367997147731601228194942168785322078408319611760162182129241971673508522333291891109147935228851962136036535255966724018102941127694952652145779332948929544348386598257759717858573907262669956719043061590784862481427857482008900424738291845896164147849910857611441160283491399779361288675669186953290802346116904129857378220217827705477275253347391417663816085511395722154502481023772338940877236754137811494442777610059766558501287800430314712706008951838693195243807730228976977997133176939697061971486626149689255670503199104904773070193488408166634994695414358498226734934095157264927192849793058798440798849788792659242430739289859256382911150471874485856354826424938536458913661647744922937240749017319309068905800190550041291760399482376086722001722717082824757013347021821462628520403430183848426865937662660809352084876407804560688844008612211651290070638078462179667914107933279526067409457295240796940201466592981281140784981115374511623162649203895395740652757992546159166997962222286924416920572925739510164485903396707273777818763820607028398972250873333902173773754606361907832109113065447970817178443418326981588632845686940273619696886936648209493776476613268900940704864196788885377078549956767350441139688000985364851073165627062006282286614264985977272716710215663682477458760633633388586716391528899100582570226857073847081603347029818820208017283217507369233521622638638776480946870075481233658756127902785225127573912995052490168906198106269125189455878568031410338144249195681510232939994854832561046705080915605779324057495261208468325904786316232952175831410311255012759276859180404745766489304543730098674611579559702387248370291466990443012767201327889968900989965808151204909248441066006963152911237176659103541999646682445266393602818971304285223596265809403619949440641338669144600606071800578674413146037470848641338615461277429677964880557126622077621607889898266532000651960636457489232713028158956796239109914116264051952329797965092477747365070770379463826563827558687463417166256765033796502296742453253346679008684893289429461042637062707503256733015110567741332489412287384389716588358243669826216424737662826109664535022916763526751729121744931417848849794100453548180029792541023390607552092668186984799566246207429367545380546868386230217649520831962040078293461184339668750795107953560298155987935741281475357336051966279085615545385341923769040164048178143917034966360698788669591295343536764866467982237401615819301809168700059544201332974451342198150533675363812673396730786906195888656671109689741295383453875685744765186973461665025244101079733736870765728604494849966018638719572629487996709961702418218912576289654857562493027605673013817574535051950031845622720667665530841973971072900239021082814927029572315412354344992794794613562953039251117436518500047606483381960276575021095057225663918280293888948024941895577408228692899242082332102572487933612962900594971240948074994352243811331359476481073564379780570371489864588675513633344779263482046725467657602609175722508000258606551547887649263090384747752746756041386261863554474633472814372963078903664559115354756462227976334983317416142021125481462912319431716435943396760960194750529677456415438851768694361517951291549675020293042346443383972517491961855993644948272621642755508371586893776132199838248333128749626246306065104062848184814122180972424873849463058855262653764124684783324260442409053537691924847695307748616477326828627187877150020869106940117060006902478856087671656738724210567782581869295801949272772234360370777285672021897675346968801329150651286874561014636893296037992071349854119612309387041490020489324852646563031758654802650467097997981435643433353217616493655774902567188124806567591797144768660504602758373589082392545900610719504504689506425133368684770677613930674877132700628360594049029395469067609294999856342177353862881818765736169336966968277611430771140160315795622006800334254605644978384091687301682222505828252179798542678878240884839339851283080248420758262779455928360944921330380086062656127857613387219892572166522448788513813233228352058553583142695965371670670415701978831447819705027434581219767632230442241737776048246295684739392387951363952344987207506910242158872369698342412971975510993192563543290094268573863137327532375367157291596446890104744135182094783283954188957810685017799686188265152550738963523380773093630090482259470435406113607762554055000663643677237681940844237856126494472002028997256618717448542110559360136730287999099840787939518029384809986269608399618570466159545138661420865401963578110154666594042584800919493934142989907559671727026515814806827807409732139371095705239970972011553750841892185744651099200110704312351586885534813791690980783370628718641666114594205444529931936753013280183143844559128227932319434526232903301900917890800315119212296004134194311194034093300922042549626059342064928104845293355565923860576809934582078068675448052082182265057046297863325511085684230943325555789676917336129772096368911878023748611697738549805730974428498368956947171891968735637478127534669266259081679828856769393162922390414417491024851429915238327685460905996675067650943401484014831205897297874003852393668441138870344632816568039211428914980540470256906274495963746374221900363332018225840800024122880322318234653263211867186432418436704632529747265852612174252070257809269563367783998563109712581003830945999445833670439767087134654669106324646655553701544979464579965591761831922447874929196422972396457884023352259070268681425913070277704551228378490745954488252694121986270164357566354829227341338283929168891008070903316371864692703315438971583836484388412733288450099125579047987451041956447342461897858008719086983253923934637450144255732685375204275515110712789137037702439205939043089604592728502156311600753157666808470746571909253492841014300610202712990904105548174657173062448005561903257654292429137336022919232507136461482051773220133453928498425686952858677747986963366272132366077174906200037268101633861963681015710151853688780289246323548012378934862700819291243379665633039419930339766562629612129127501526767297958947778736741024182828410000382380863625745873657722043382333077488514916836268840015768745265081635720279817440485621812461207977382641908123582059802239094484183483843941084320676198791175071000013583460582441919861644042166298056527859708021302664407478360922969746262810652015558876198417250581333019692002125103575601435432286402949017019500554606099085289688288918880447161591548985260788405435891037690749022283167455222001742814735904113858515548126969769256137943879419339645277916739098748269205112783858293976812227951009097544227742704417150855901664653278280599087719561230473324016926403015122020514329862426748786589060850727387084582367960017098205257067820575552151589894247724798925156833247038653621722074146126514932881425023593802349810667178948298303126104333294159127440503760319838168707421338921672593383087993918605095345026832421087639174281811572404333113668554662305017409487303916710821953238391936392425346038000566161434808836268043330769156222432580610750155906061787885224081860666508354105581988959333964498498481635654560943014078433568542830529479352766898324884964204091668618897813239454395028125324463612391411393754246602481882479126486632952511532167262182916167812520779310978313755812477178081474704495881605517184223527304391422544805015365983163506599782195538546114565601567376199369338081466679307837811097783134347640835680441482596384210267399743914171335576393010923606551153066396869059469269554953898511452913059025111084603210679759059844798055101883374775212107291963265491781651987618528563523335607163368793702756774306174728657853349499033868100320299979298076733710070056703458438967072561740743449445624425143705618996501151001644928676380415076531445806093097226300502400738781951832997215922187671343080782594727841734769005119929978344687950351795358406895905130003418504117220300002439355915512431475535525585564271984975255383939219712474490727747768970001335556177511091226895591077052212797409501170652100070902578768923095562118336139605464582770154758822017678137277810325199896634837430273991904070810473016804430936725515443825760489180381341546617087659643603169410607042164063738574057217153127045380645894992406928933726501097504843194555897640500723323386588682378478418327372166961815016607214378717243610288567227840359409073640636284790841257544366120765346757789602095022232966815663167437103091538158135963340783251419343178157924036075347095441690158301251352266001058423221896168969674055364379709649750159233632212391826467403650795879020758198353326600205482246031274720119173618939802739372463223715510774143354968428534760943740749335249683111403627151272561657426692558538113169901292687345234632581121450880548633365698675777747398255313753982562923532550396295446587597524675943563374293049704289267663594742346857356949407659356105011896177551238232215778078419202381504320784307633469737101483365484777066464093756182220580157701577953241125981592945924898447016438126184628964193374251477581912295753155820594755546937260595990849603026865615352748103961193835529389569037871632175026639081850587532927068640087427250246941801166141610070593210311175966529980504241926967303114884350068228599477802424617243237250920636260999523122184651779336519660077915433021525394380820489411915469067928363974401052897607044869595989858770100387978184507328581989293029467442184157427535028404392046811231919911795565672403576108141775165343966227393231512489631092523965080635873455864654714770056922806003700310045086725744986372800867379467478627123083764731653523391599112916794286817708493138366109768680640844917977686079613643593053489837132551022221073766206320176238218961902319938421602856024970358722643775059955250603414710409362368612237214974474405245570834293358572325653542034866446170500391676229487949056032364687542259473307516918038916735766562120630375009192125685271703133380131037957974928818018752590646155781370632099953178761152663159543550950883732998465477506493652173782621980349915513035154304497249086061907664585956210398342693427809959567043456168646637888749640433563209984071490884610670882684454977899288756478791271070975878543872322419215990161294554978053240400370296637735114270718981945694781274388223419156816831507395091068636732142091857707253558250683936781186835951371394910811026496705902819140627757236389216006969543966923861304266699451267885467767548008410355802533618195216522097652499721592351425259646789179724873266300257555840558579382892541553163201989022008810950328180593790366939385596106923219230109006091900776798519270313140203649287774551648815403286559163767003887120106217426883382626517540694249760415385384708473600746134563359360871464239554381939745495468865267705892047221095469180495115851717311671241977782243809582865113785631383853967940054001121435924731681446517842571518155478078994372316551494726259138666685154610021972066017736656285534619624130799370378740208525466151535650812037172357651824709701838286406914929179409787265930252288217664252849003526677319721204511728578191256955121494663258998478219859838998045465035656535304735099967640293131702322606185392616392058798420375702759746525712992576550161547706287400284992947206050216577129579770347747924576791581654175836898975142375672537218761443951390239810488631106337637418235732856017187389195079576543286409113945340512349815538745821917565328636924718066770569318048085560143687984389067598999348866005512219924006055733329275548442283053594676179413900261757697456252766491177444900419086940026993776408924881138337724674474689952926196214899389411082575145417417472102807990023342238448536989061730783050290943034522118639598972133678060668266605231833851253331556711222642619003620054224310933170943842663608232395165931241136539139566764307546156268202761799981482291830826816470257725288121024908913042672762185292160151075312551034417274568094976494796416333808324029479275128494248804008687380936031800366034335325841811790680144588579819016549226752756318616586755369519014472080287901878273034032728376445716415619569722507629840999795169828926336726858926251316250985935833855108899438270303419648003575213223380249621090471051283119855631219380777629833949805492484693663963378114549865524101104423672774632530756311633216855437038287003614636856776488700870393928120526719263932372391209073941116146924344845122249884461360918034949239462398485358254624404267821042649815309209752386293045032207716437555621470881579310854488858553211097891836738714870123606897159482074568333703417360736566885811337556920662582363026335177053873148616893235149374574573602289853098671487686937061240339642932265401880102582684060577245330564681217226607762792287397417449899927856341039465271510074511646361701462356190709037543617367161554471178416823401303818174370038333431542296615440911523569084872924005425744078235133791970901278285304352259441014775166173730365252747852036145363403592045010228533418364701399060443424368953824760018077014675440548990160705621173984393060777586480039977939218092737721191231249301915206525595709431350954163254425926884886097840659968675032387467992419370237292325985166794972866779168486012648588558649010763270982475277793338102923142680210958515366225320908711628049187270717170016109919023765563335075878827509393410507816562818278792497722024274383450779132335681644864418867425664013245654740501915944024862537630091700191824910018267826598618680806762902085507000543530540216087290965578519017652587877976518013162374761558083070864536957540984384093463754793953523317256564076431287105508423219868481011148041536444306926650274800993252455663888785494065160824526462397112784625953008309569090528014501219922735035527722095146406783964905389141554666275802893106654556010709227519320749860360001246260493829692580452717123366461921762265104970674207937864646836226998343029049771924905419954672032819057030859103614463705466138206126746539265911500903568087528631124062307125183527887018354702356102818152452241513685957228790659703032652770114848060233501850016356405675985959663419715160376048655880467446222036263305815258601361486434279459364840489714917972045013849988986267638087323500336574741451108551142302818134334887526075584987586379233626618644182616089813488235760892414925703574878248798207430410597403824433358458808328999655447258417983107605393559390903530743112765110919794819907176820106250409989025912385956660625813380808920983411862319893443063843903412808212387500799859849905988081376275987744389595009005133471925963757975054314581133971200773358349832408746713102436731194332901273386619096455521831014380843989770237523291254753169108739086162221903987138344925214109603564867880299509673377691004250741376626821316558663638577521416299365116331719566612210457647892155015450403462892684035517126118645081718109089008618611826348551589437009887063586589909104552884673647783578472017835422293444920344380518943301450897137125436683068385890992054631891091722321383819996149164509476303757469711273295375118220292851070933425125602553486243673973628563136130113764559414997498419453917906137036340156396829890002599503177668188939114113071850829518369958983007022760024660638158702528439129584782793243994722966647529105136622040292273549025845524273554245798614758276699416083147833753892531832540742665218186996718982567335506851265608437431989245816047953265184049955237154612828520058293104369678054707958002553165628338100300849811974595913196482793266469285303586567657785558951872269186488591061663986123149816268345385443669242569005317374120390192784849129288645682704761259886824290996268468488210897078904702980564786142422676176056390393709894642377748309418002715082192515012310876469774141655493542760129093044448947881082161094230460255329807128023069340666084829291013359908045000748428472501079259345933695296994706730727111346270348539042764552605682952969327143379161869682074560839291917977225676591967031253550385833819057623525513000811225750288420617306554290421910067461781663816277794863456138403077313938467095943563997848619641885613917540583537313670394879970761319459094937262536543817723858670466320903087091172996874884075760631900928582536348008901550340120487685044941038192347880791608792098400484207305241035107476295466395213709499106311236256620973668696614517496991555499406627239153283195622106622680607841609603366162602179226020189903650300155561436123243672531886294436929307893421064686905923954619425782219529765317536322057768217087587011963175795701678919805691883262466006353227207692904167369891938255701457697780896322545195158074481631799551275903371509981485406310487988051378339741508223852487311322882801875242461660829825542701866813665535817141805969205717095482059937145131191863397591658078597683293959754428700491306840548529050596039727899959393842401027051074929030661883265555020861710929091756984746950581808386332076484144491713769184199853233955769845192164679332658026696710868338436893407906999651344711713060870520862931375008332964518847916994346127577299960687983049584568542250928773568616730941055737401426489307841684391150990445751606531658656263390799928597788199225336926434843299957994149167902189288153612052213484114024583773606914894191573931262276013448484255967729795317684690463460726239429790828204203885544164769258668359415268379222316957998935024153809336977054114174539316429190363802220883808376798029950413842359060384050472313722669489241263041292593895281704472643766924539428502469514895724421999755292684631880167297540528821243497999151269882571463022408702460683636423797475260867396594632467671940616774188720830013521903918125340912339301704501589263644515786732026266852326109849417251674880990877863177337523972493459347720534177437140365805420014545425495161733384339346002935846776872808106464187264608291549537441455492681878022949448509135924307412320468344481577765645446732396011704223304294867794598316991557820962928918377185440278427041382662509866967566814066987800972564003744751198450934107146410002080510419611297958369429799780238911194320510555855964056482342836354152551563711897005407661676911831233240087191972372294127878933549283383299915916740409445957433828003325826884762827533273310318646996449152963782084852749941061473075591889511743428041609318859547449664115096791647739432770474582048261208980473580994018461808547742187442740168538866769895035831682384043013219937603484784444006730556135376943415252170365081868043357739413246916373284229656757573783803746878229478653561130538507188308851769392257966368450609193829772373943982895234445187292906751642399929711517038882332887198535796275630181019564639019706087915666045442066017071869879059221835310255395882978835524775818003549621690107713510337232361390772745642223181432986569559373047237576026757665287242925647468939805750074616638257233329365533992749666415008506922109669719568559928539357796340456576143300715694488767057623851592714693278432760868735849369638054782450618809688725606562511361625165866808134790322824607738391255977158575198812394362497913728070188012072991790473460069940311792033598827143368654208879665861197225038583961221687989890908369110108481399854707882081360141001782414112049396142296469533121250635120170455001508104061100272933839698343124577247749291280686948134799075513436682184841460492477767928414933180176479163389427688398553229745778253362039833863255878578107483905198012490035432793354232449017901975599301971994875821836259433264033940430313350452534297478693950344522722823141136008968342061515665572470531064318026855455541166949305747354002681927249689160968171547162043037617888418148893541409105423722617501501166780893805753660731405907442336582444285309195209022759858606826944977161763766805646057814434806467988625985241827418997144791200085082157635345341654889313086668588801439176155476099673007535577232002905305291747484865935643944539047982388582673484695716153168404171417034290334798211882947308924865271921154629438906900044272439327924214431633668162531847303549570870208116462631743381540844198635220596160487078236290793671713797736257801132040559392875890000790308304030029551527407811577069002381339374900216692546477839490140984098000040033011423835851527840255675564691804745321592369535012625794573067469280332102504694034353731542884705740535776715836515645483332761692013734234599137677224277034429299555229082934817134920135224530609645283311370032590526283623121036041451733039345359050277766884047296802446187058806668154129259389282130124212916250165019483526723214430232523307848634024393626156288792058460059708725275868984271093506634302198412134255902677694553387301739222159805487963248386814722404678546656156427407237081406201823270894577746819523467252059275061660763994875184156478216923870302530101711644653827439000915951329385441592703593169953885118576923928191010130983124179838960069280061806972684878822620309114720294904139385769311257430005386923481869277687271845585099278368624106947060705790655464139438253239123755537420575282253960996431406565222958198166326790774047984023027319765097501964661911957222814651860453984490083109128363580628859487219951278875370623284174553240941242307464457607128734171019648075270539547888837059712052103602872060301173323502624058453475983452282756699240164776112635943844290631529363245540671024760072669002678771162961789300892900119913474006541115619737959316147426677484426801701059138418268318271544325587503314390314256052701194178801791242367250856438811575508999244588239327525853893694203283838922293493188603422581358582829606732963302653865430947799532659286044730230412750269056713405911313846197072276033439318066634281544876850441919678517915074449544001360456177928811731318722632400602376725249511911882898646365867858469675772429375905140137277282776817289852677945340589286043873809086979777413480062862300831965776055750456368756526030515387889219124494125486662396807612941521065006703026971485591093885769057270915946428592915629288743154857329876973912114900932846817007307553745068400859115495337667320277016360865883700159105524360682624839763945371688411275718346109405379275580766079375233154751589257382341599941084226005157963488384272383895409900811435926210852241247991419172490016085232140857507985347819326256113144932897593186074014587348497218598138570306339504831488195881664215879439601120476561324771379217903126788913805306452576614445625843044849788226198569975423001295232372774611580830044257136804087886255532449204924491659007713768896403867402667046586842119956682976965009340837327808006155353705858321842521857516742654430091709558678923911151322029500634526166338527989796038250586080800665258858070698112745877476960309539608346010653282037445631068700775497536978657328612333123119710848468409138256046447204086041804852779933044795346940504749345486292155514931131604781485170110637817544573629845603998260720176126840407072531086261716515123085621137630700690203648782769401503676117292325938284929276500582308257776701487111387621302498288039085334016566369782519064271005274895773097558324721063389529304110761392724414828473587321925744913013543695615564876947015249963111805078000630778796334946808926363284668999083335030807292950899956116872648195249251936726061111932733449755570065779310866585173559857770699524095555143401638416765914951480332407757497159480651458141927104541914795326766099838607228910327633181436213472769690790484238490248589585581452725740385739056628586605620363251886220028569882137602184409892692022608853086819512004211374984796594010085769692305263257982695949174529238990252679665635173647888952902861905545209507418313991850660762932460822129281149880886818892786992641166461555625743146078385017843763733881066601394112708337081185923772771096201939192449443667760549838188261014628063917194083597173982140232467005202210054309295913367370965356117198553291733161132847083168834455743063840831085715496821677453330791366895598715027263544029763504995847958370989403244095289165274846001331740970179500788315202228980074146646354437592765134104871585565102317920531220513575521794698915240404583783640975003121383331812497052922142647670676734923236136219750395236972855049683140309610662609744614208361683928301671823594331143288209987499096622619768917595531816784971347157229697901761567476231081323833778536941069945822546976682311904902261326305885086030502963187781916518921929076652950127448227322347974515257214683456425784659643297488321078995193660791976357612482899419444073092862582921423242101179457062984131067340357942700263091120112435700205719962856449268490511776417446838899722050166683400691520039223112702997151454498131758148341119793450914580551380965882227408350443113422666436405647367823421806016541636049430017415279396702930937010154789853916764542357948444821920328115858112714649899662694318991279312924086630271704885404413472460230040818572900015018933618650359435522572510094593831239562759410879724068187405227875946316180565968310986311949261831501471193227060979680222508373060905351854900795405975838657581698692415185497366551733274652567957550928377744313175006186930833985838502591559244523703930300966355154427624997681271747741842499173142322799112325669252171542031583140835786812779883085504948356928257649727178561728775848616119248779122521486946376502994777402981012889183605953579433660000790400469591494287504677910512188358987347738029791855749443617782617739858549865374039782469555448693899608974160350274045575117157704582814987767813308655086766206628236637937338724286566331016158301071043822592844544968243544734137861964548073765964791215436501486271822754775330156629255685697008032897956945780153634467259493868787104721295280044216746115455404637749946774363174751196117364364225587870556283729730772493815297230496061053290108264790729976520840587703214661183801002886490120704022278788305527967745145063791052395539225897962469275142202759202602560390698805913482018262914821467354219163820149408201316951348594732909213201865630158332588060261836998676413358454230152606429603744777014066612361566946731210548281532390297190996722945421118818577441958006362332667068884135227258702047941229389806479172947825469512166078362565448318682639500396351760632051965927704123701242714587250235547661253920575663852943443554981050669721645802561251341616100805931447270267452285699541854917502098593802812256552815071758240156706327167859554257617397536366646903966654541964678455472044902305227416336539099498327362189579664515528102590884612583611483109822842733230982531253111705842492230119700631524575913492973682950333153111174195826835655849901457500713822237908883639057085727662668250523772884979743321286957348956104331590699370251761977552430935789156575881823845724398721971863299384070774278061120348518546176228249467020183549196989729638042397295286445252770630192756574185926063990007711640907951163098301846221643358980517668881079121676858486445553096690317974188809857572435591619890101575745018489256968644276974723854609910740157315118052510368695613631428115999697230518023529165454898291601285601124690972788557503647104036235550366424526775338871224203765217120363314837289383510324962915532741565193607313886949640764454461986373155479198560591627884279048957442751183212720588178371823712697928193836032448120284866045523887325330073395593858951650085696461771129802043146800708028618881011734240980588673189980593850869168311450422079912573065372634833521513580551914981038900475267321278993941276656641540578647430538802209224495429085132305146788366037531803852817297697507051025891507313283379547778374822011120767501067520412246372775322087362982635324281615792465798650286388598697557764662849050269683356046995159646075659732312925710863304895352619490508410710855168383671957945323165516386386821885287206608002795532713885132174527297377470560996844634470640205873197915450437156710564651492384362396767885065019695121946011245417476201277523563237387604215417110874732050369348855312189865397769301885685167869125733002625447950415810393785337808970076869207806899028933282013559335230344342555609705576614793448427509024193526956063747531750984095714064576046317323276381381300903083370828047655645951870790567367063657516428276392599909223691699031205328148003303184061203079154181970652739927833404095774148836229583688256217846419659515041629800705503914859738215699960614265034002415975659317940237397331259781573286807821084738709286922229201215809050747810358354313065913506305413903007296215908007503496696488556791981825991875837242588793756280605952656579640699004196958711331586520954910315378267344053800613753175707888089554692482160321172232269912207591449741234544752077848121270457518071420253663418859895139023889508496795355379059522459480191030954049839928250266381000311658591085572549504051814819305570609353287229963521088644199101789684013013712299560531250763923945771982232034467089127414446665086124020816577354335373650545826562952517531285647706776312009537685768154013247590324646973471871497621165865291625847054735072658852003828932613427453364572798324429303213437588941179430602696797790448937353605019028673944974704946247238724824213314200686690497980655002877600311835460964249247172320493403447405559895517029176741153104724326172495034250555897620256044293802287552724425128101166438897881193438278320736592614744278476374997354395701070080440825245091447484805054313223777797096366426025495363074277529206587552734379354094313436549692039882806567912586974031742772444934241716079524482498194405619845137151378998582600874415416705929092965664882351867469724346384808769528337389031290326950713150927942008068338155949619477189404581875352323964977865599336163100869456522405936575873770516153005671063510188164093391898073545668389172203131529683505982833819739564368049618611206462151041401902879869665822597712484164250196325307994341921942634609278899911609186312462907406794871148613967916980558452908968734112438159133690766110603502137355756711623087439728103240276491041426623690727771219033793186686057380240299256876444342160157790926598484063481259480667114998784668680842109777004056017528714379802098033528758150994696005170463248074934408466885197832753065615309687709259032613082711938633669428049590708487870885607294076657314287527288522099253291066569527637933079146425296343386502169135349284122504979210866027865197512539630947960102618043937659049047877508288943731673166484289028482630869052149229815249760632323725030609722144081502699200878739896029460727992305220171504953133509510771786461243399071433195676090346767184618663171493014240946180338074657754789990156017461240047943178045075004837655551627191215710286560579663384785972855013322839702978451653515322798314791512913791459843445242704991563586637776913014247681292388229063519968081273161821488874347720611772881861615279468676599403901492224539543959350572279818183187757748565571275898027462330851014363793609593822161627411269127892689565837438916620736336745642164051922677602601314572275844165313544563528403476700536927979618721067713842008422585118007287914742059964017283926367765229420146129082035546886624090980438807370688716415630097002343563370230303375404936093023740986233679756973826379539706104213277609321516842406679148208919243492896708939076988177701057853429484850842566796220261113936743603350895372423518173693354775422359563141262820745854429306330823120112504862101681675210309447846211807732907023279471463342239066314218980777917010963878066107558975824992801687821029182688390935221125403744883652465486730924784799350498705018636026654612687637132568103471367917102076318058545122841318920981619068385187339469584697088927788817661602207847068182949635586258075872066209158196856212575478170288825608814278341067788697812098153172610198470155148811248352492231868478733622775880518393330754003195908412076651683157105547228848907087345239804942528268306013968842434902811612947134006058383456639296862590219619398191420017069980506263467445204244805273938627162474283785468351719452113071461797272552099991523007527433742281776723454685509065129274290167813011256719116637992461506350838953170798075524479777837620347246054033956527110066546322262723495307373922245068929999565886566373173288341468149850479630937971168559619450501598792465858983581635728864855748125709548472691306623190271264966508481183489732635302022180886510362159854357553332522660901547222161028241816389129417123310988246694535201219059644996914438063970736098460865153684986147761143707744726105749057163739545649132979207844462493455482486631868615728817469830562425105127679803079398951510471389696992685780278830188654235696783426798911060273938012685544319691730190999080371667873604684298983128311071571879483029151779289991221504731433218272666252628605959817274139157101316070233372914423496436866759757441500145165314189178996703609736777874673642857083457251405263760292407358678820618948170258726296980062891941806899081099436643324758954097854175194428374436654668457942642840320273560069212575364202618358343551725149177302037012452199371207671238110692045296038442637668532954098942341636495784741008293599644576723990151922182954715848409534929083081625097052377114833953989960618193419104611613146664011673471640242418035968408270318773734943720481597563894478996211571102010476437883178995551527695755798629974638085718042090365525084679289233338587509933764408637213944425988360850661338689573915621749682037456462328859642890970496709839880144665572750797377067260672274256201843149477082601379257519480080871716983688380702497213057057506007581416055067814180615795933080861919807448133413392753787560924542546721607633091735585839554747298488432105451884877605721970929733812374860377639390473302805362131004394801681296720286603535326436854107336894865378550212375204205746975215793523003488145648384444148364861798808993440334229375376438249164081999688882794559373743862032506812296823982223026589454630631079059749216718079995246020375792272262831962689168314021930373149490351038679320318905365428791408633303914224846317508604844912424626607711775472543000295601886931999681697881453886049247510869836724419684645903005906408164191980557441436285822134554831594259895552295325685568705062099391389230285957250674390409068548496152904943733479560407214628904770533496242491113730435224913155624449080187967341361514268976305294466086420368584798976036496012305185578795410848605990719475067329066899150252048037423456908731794974794079033083943549183536649949268263767690422652076860256053122330601581876226394307823566420814526648817011333957990470845014239495220780930755159621069192246421611883000683010054241550145384976373446936915829710242963813046305879031348861582799608782215264257409668983795573521261624949533435085930945611932974599176467852718465779945437678632722174866058059588533273018850802552185442061033388516513816638363587136895895833507713612555293947680347327865387468334953222373530558987598413293348264777444862208179072214457330490032982645657964666620002981467209568999223037493361858062357644351773972814803500636979847643943754836607250281794977399180382679746898324766283677083813152121283697379715509130826519858282455715454527586910039878023247428272017737542897653010158944866959865387582898223302014499023159777652238020258815743012192639973479591615439945221589351326862046694204204140512746705452233987910078606569493166785017408975395904598804799380256427662883668769977216150728275984776926971736299986640154853135168757301082201578353517479850262795422874611646929053919506403795418387364542999847093806218028537005343897885131704778787633128895220652947236863079389972752897507611795191427582001659991737250419797707597481308273652761388550037356509432916595825256076218119809104617423160768835398829386967004375342339487471774755931735779931242954748035647180937097826663690673538022980576641663132966253206647672824837752065236856882651459904650143861932768760075046980731550109744120347022721395804963733270052376816081960855611413682768154696623128308825181299889127816739072651287042985597973228968097439284120531779748671284818331472625402623638152143358590991391740465705698146315781440140365395263448105774738320648163643857288494535949745780340476785835763789167982821866028197421254338992081476224347982495113692851116674757582890758630893129942670450583250786906657518521751818875433924371406582794947336784627028130594768992745502607379847973466758226645398503817833216628930367217211694190964985627177435606389268685478411599959374226680821509762446528320022827355551227143078236707952422892717458274206825814176732076435858564533327045451036842485056743977964549462077258303795981043647205649916499558344960985712733489345905890284485888334660945994511224314121756119037114273360523705756864295588567460267105920436485824276762343494589751111261915186616902082305896452548976986869598396211604788534253631563275477064748891565436852167388458986329328889839480538954657267011601231010719544230447951307166264792907048842579650033823042571574522505406602800010988361018073488636014085106009948059960104141553973971337971718625761229104792357211765250663931304044317041596901512291238052562798299139991106174481994264634346415844335424770170402993123689277820615784013117463634301598760057009704109316526921094429473403122537753958096302202651191350242310172667222748795163628464084198970260905729405330657171257827321067400523797777691818845165108340149725855543411364935176231127772209602653627510236116754293020129333752651366689204628363046804696750554093692574127009140495793683756460924378381501187014785083869949614546737121699377236787445930875948718313496262931079989479921147350417534239120908708437296852981079965455741628841252810786457928502413123752314496474885154146612308530273850901868012281935730456066378192140713303333981402279898347757033959573849728930963768571105881292451437347883191267958971910571481749598723998875307532163596491733557244503836568379191307948567466190916158370174454750197740413275590779774331826079500958770522039845584836775624402480057185656868094654308947344541532566376288462192137615631031982625801977609839212854224731003568786134088680259449428289212498187908744762905560715464454215885786244535594720619615093712469366051337752608940852448351158237321122691172772858551444151542123467186829979588182465103939841966896618050130799091554234710329248374381586495548883540740609109521198559870244749629245323713193839189924670560006153023640423315296817574688992458072968957736075640998649463966317003586971362831994840308953728434173907700000179079140254136390010051541043935609725525933856542650317113960801108097546387322460095962008207740449536682578492234013695613358715211833145467913974159650447510698470222835470149560360364834514270757127789815860149093109876752307757774795885161643885234428502477437063782909368828666019710977058920256714755963863221513417996249200194492494590288959810821872523880689200885870666890868610855469271311773651556998614409610835330334884998747722987397670197201875105231895070159109722865192265302418464619235363543095502849513391746216697317021035050040916597988042723459383433040829621355057037440074978448318213309370447815348053990833407917622480256386782141222875516151979343230375447340601509104299837890437790682242551701846037424083609481145941783008653305794993016155359649998721469191127455575771714415481295521312405614866840713035675762057797257406697452628343848947917574181695503756691018607765444763053191556138249414152728099807636766042446745905000898993984248498909182941649892982331041507692720429642963451294556179299054559458011337423635522904199323510886721318751756448543231027955503472281714002239633958782353986148670575746244112292735336933862876027339327536857756710837343754154561596064036085383723553531110552995865388353018807797365640413127499363103352179342841790318603891279879560517880875266258535206117947958857694524490572127952465252024448832966881870004500462067581529781574939865118455508582418420805185417747978236724059638240281266860952490680253234582777887602363203090045245677517682225852473281936355924116614255022379908787600380652071653938981430276892281866669811611632009235000168487968011153640055006125821329350714286356006319283006648026977081808431358189918656887540287784914425777719360313816346916924431285155529110317973259431047889061943354852547209050397433636209910545867354044113434051359556225387703908994651937537668660851640225556778292983615932845006866417433899339095640675812468035266992881832280028275934412808079804165565413597512501921437229415558412322955301804151015973531894212146133211855574586681786205424091353394409268242932744966776482301683069080093424958119080136402698386338830794121207722626743491596645801740155891982269095922855450689781484369076479940449937888448580007889539665701844209721081904462724800330054127417080969581211125402716605155980479856972784440277929906042889308012665853509125496534972534132898665357599096746419971276140500032567071267453948656171162808382934277599155502236602152267442960001794839317298669668618590898182719749120397190154763266200395132164615447457917754865126426755653555512816911031887460479427289574047676337706441307178668878002588575660652300304581614073377125675311621102406080645423144794017076000407965341575683297121957762208583957564295590395261211165906413701743641849145036056959072511636885478312616737806666739443262512854158999546949283379083706275448368053425014470621253559097703916186510387611384893617452986367599359996767307048234129107725809553096378594730328284963142081853863659265468172365726028802283272364212416861207376568408739049047530569981267139347164579392171210088201455237367724833606834928199209363784101242306068097493280818042736072378173191945763651107179987147609727285031052187730075087722162108571540136917378093093529479744627977890041764151387505413235763583118553852572160242360683199686798702550421171417956560785575750766827300439024541208244544354211665656742001413203798837486385761749214888687212623986330430851767860449625794925260935117384912129758124886631907926565783868062478350161402770417865418422715692806762850774728634260926606564557719808389873756563909787184622697855880523616851555793326424905625088844618738965945906174704447230369970752774470353300243850777285996684290093404975813372911703780995411586506567035996892449965129293006819549549039214407658974775313261432945278684389119312482846441260038802953617107052414430982991009397120407273575802598900861523956525432654799623247166100627619670244259346605337748851707923954339377490399656107042182495275998700807277171770198795296655396160803750151834753710934683494757495409920369020267366762219354835770763750868769738874791580064122019008100334448264575952084474337336420314063728049298578483117240629667343971887442522511085345073698696150879313931369057229920713920539044173044123773866128181345956908351184758973843266245274909998125322274725164770202956279240184983064115512557621923531018839513663689570903475785939609801524946726649795108906590929405006763621165510557317103141973300090044845615146403092913518190561805726254039306396759455576283373783968180200423109438118016431741639607756393079420451001035517213278885091709139606999167641934045622360725814943835692077683883121990722949801409268344933253976485262253443943792573386151110917738225272767604080579736382776177945013372266434761529874808340143660715492156661865699713947308422921836250498942429481495507657460217092284696333374039858258183731861185662259394666945738477287991457008138313138788205397017988958313484358414914562244033754986208063670217591447335395358924664674493277964412507817266710652198582770213425848655675032937300273426563196258302446777279606374025094998728348011004405728053479155143471506908622092958975967259699157051504604392175064657869520157583353861379049665483893018742421110809033329751048150699027686571907101868860046481833850643736234722444937459871836796700122043511160476680115075714602025652920329243650943753224322046617752228963549365676544199240382402242798042252022731608091053330386006720187774622516563809905720473462298854905218071341826712722254539136834363156268201208378717872808496517144990577294727968247046442894857673565425129555754587250555525559950293925460647846228438379790342670523045855113916806894831639386063234645703748185446963731710993316130302431929394654306083775671464350662632711081692503540296307718303189910030205039361503459031188754861677661939805218206650346502362804286108611982534038150644968747650513635171155173922455872933174072772797683809712486249354941553207088543880619524185014916363910458643228682453609973380426920854783843371716359768301352795189826337565744233759559732963511116949082702989711345782584761129949352879234291191129932641220749809562198744649872738782433250704967759927918653070297015100839218105388566230289389961940441583581146242652953180210122817196525400541225196378209598815632097707980137462016861624559466002185854745691610399514190124221411831506975024657362959897631533630026231236701871427720926488304094766202511309605103774300782553278127500999728209944730083589429380008575847679207389437501101123114260371838582263281925664114849707817190607270348877505791138201853656954141293061291335544748708778810602071259646733330860474047266719927335214551087353646643398535551362830540768967231673997370966435686167682693559776234879260365403663764665058432998564435783332796275880903093529221349360528081845811905881627265633941939386220437864259137230694396164968663089577283479921475232108693329835120203609664260818077439922967119283732526222102030380678869699438533133370762381648675433988297451380835280043482291801402021725331618039976815059016946961930639377733341794162661861771930336884921110244046664158762115370658884573327514338760955424584200631757848812533706782617240508579776945876359379038244475455699576404666810577535582521777044410806913704193718458317581220712522128628150070116737409913185342589545581857179311689697630197254668870902758112227977930575805678267641340154037351095677789068724529989413439517754912224807281455614181520392250659934407133982460062217688791415254334824337561068143653867757873765125437351726199681817237176235491107394624172677000828323047880138921013375832689042194254892031790252265722348281268690132979801186717832454939205094325669997859164876460555326641441242785341479981808940039005645981496393029667740769408733540325654355662992494351165468624435265390058484071509034341486933920691724120783515467612999939203620741685363529191203744375531365006414568042270157744678017174770440444762951364988151326191839273055890115687577711714759885508052192464384807142316284533526458321468869563896466316216395030227060061801310730320924566843303082562809656667094189692275012661422944690658520567017747255865867331446413716730312607922589759099862712303839948639497511338168978246152888697240496584522339166069963383598285803070751687616003720768290556066417349822057115011419361067525907970412511075649908890809809237314063519814487671965304298039642915749019754829211213825227928341851259321393855645710299760311570370169080465683924012253619331314232764353020229145621352615913508999462276782707618953809243137939823674590685088586892532956718444866980783526429756150409552978265476045864031423594619905985010943281840035770961629327562009446177104190410570217396596946346575134035130667797506861451368889063994034779740934926657958254341311544463973544808572462863424667901571483516646405819489080248004118162211655237958032009714033508989909966081177674974345205858180358074689748087995776665889496520953505806661106631921499269642039031198448123082063094470175987847702307418337926613348579518414105250506053099971101582925197322359249397414680676667770993909044199951278138264410540559419608732095866744368633474621099282954348443519631599150372022857172329750053137290035508605303065816847488932957784495532778596294169187904341456855637929460786562375902989753052946203067173266047282280899205379073204816232183306825642650602874967188043951151548607632893040730140719988593267104631494489459766787901682695862444566196518105977961882756004706404583808461664001370436068758751895786139737957315046273416608274635790875914909999358956276311567434164604917409034558470571004894975173243780153535091505403937225515686786579658646508431243689320472243905997231501747539109023260286173242070220247024872368203421057040154966278981619279120398329132012885362972349867979169820549466519480975461014884742866423908714151586630071826775011111004236191711064784764118046542127628124116780981266913456971566017614411674229069584428397369105558905465342070997357091627880800164209624260047601319509340155390961342691799503128097962396913273037673184952528757686327800864638147640179885373665338183214493998169564913907514247590961490089753396970837715438262409380171387497563204422666493538474838272160065263387508597798841248447306192411871942599596643012065791604190772548461608486765758431732933655569276211895308063757472820649433979094749363300420047421022982562810372279550460852872425395740869073150397190090859920968765414284721472073407493828201832933349673188662223692556164146417822439529772002377542179809967254903334155425807909413884078448729792720376657293864047755094107292458569904672423110290525970968250218348895258482477512793586673921310100219223428975798178046021577756350037469827910392622725292654818628963817541912573495343992035143506528168378965036719331006203559372014394225953764330365808345068520501329874784861319247370143067645979836100932153287913266834641877179159955388363694671922255278474527352175993339303578964872047396777785413050873812028983725570259671722429433763828335914870380598341540417992234371297674019075360291995478798001635961406602927998803581982312860970440311395035667920639529970104612715729011953514259043935647286496006124257496133077948313724994057897601097825142021108696088826983615443186162910247515871566003595981387278191712959055222974487167124922389249088870708196574255068791077113318791873961636066542026390993968877796544063582582085357694101266330968236596026798610850848343123473596342433129368142572333280919336445901234727586519046720970014727861460844258842144667723046159588911803487670439345151732746238426427923843272001772046746459859545704808092832192125567042273832156799353767250360912645295244380060607493687244293945189552763800619177354761147345443599233343921461793943702352746685530603082035202863579752496440692945812989652130504046372107330501044338516664680473866278255613795941092063913106321772790321273148710415189103977778985601975695932755665302745753005030100581064617336269613024601432925524489147794942842497054882759362388638548525575739663998072175969612502190493125433697127847237004505862823070235585426815531077211346530689315340057582620360114270503784912591521676022456313429960471189551873572015169939693324490099705354330525532813253218329803763913281144001508932319866873028560467883723508429715499430971657048879166185468843696223460635356173724885724594708070368759452228167556794327918354929485963580164543999328514589408782622905746701667958586902757543312701794275406542166382353037301686219894685587603187658475649248832341124307416106098428114984382895348258854017010767106034442711983911768905671897351767909655626402219015408727115189784674198484082148483023196640176384846791693144832184501992849137679259613632149535143838805560689482639197817571136335072483595658071966490615665002308963577649280629926612270913908476045298908053985227522767256865108585607595274354361674666446659878523853707657821535714621791275603980139944861215975365668267847139330453954309964111720234059053990708680032947868837621905124514173963417337404124282072324589767866005094136000463132418175613980179702928320922301733858237200332881525932396042645754993047368034727050978620890044805075132300965227838635130652268253315588683030120188351276789248296144218891283699778493478400499254636041366204992757581771224485152606408275310453554875501296046454892350989303879292290464956939173433972825214423076080378988166756289514061784272991783648703241884353071708887985533687032825025135899448557365540667349746511817855251434209751267218667369946856828680740241936656849354818407355548768820229956316407416879048575262943989204472048547086130906388604968452489846424260206647227434245183010646440216770149764196173207033387290964162562221964486393864484101090992239695370847906650548485280654114526005053556283048892580732818143828785734276297728109607526120907956326301626720573129039704881716407011830979147212464114883657489453552935064163589651244348160900208441060102700087328812486564713902204207295944286942553010524558512441013539267055800384289446741070647816914157440857896982217578940075620821246300960787986814559950342582086316210990633647021783504782514591200526710128192948444492445430858928976840083802507189288483409926774267682878793482338755339538983055583135551931202605418379020491806497685572181840422901812115713838033621208030552664907500284773593918499882349161106663153726710809133642585405137868233830056815865282856533839443958859379416571038028479991008714134844133274690956981719003590586119213717453912144800244787239214781849956295221285062478318163783493364607312052425000841925462343420348637138840116182275717016435017671795459564849252439485996799425513245724745222832016544669407777883643674248169483689717263332464380552872098586504683828069501760706578522912796367721264080662947750820114111851073164797286020893485615960569747546914406354676182015894129215508385000488655310287887319870792034503128058543508313987336104946448192289592224216606285852739584603331722294936528103194991961721899941196118574986092794778533613663926813342078829290578230692960225250014533845605250521156106147282827842072046443186610408127503296931816988885519165612137711601024987939226292284726534976639447646493537847459582294793856687326567645023198971199125978286036080439187884312813671930044706007517253898871791201282722862657915130771006920281122290865849017472365194263178339347096714729997103014716954759992966068194438493705556541888687234852819053944780536319595465558872689974784787485797462785156164895974822703993114588298295321601008213706609286689036163505804963325022880343669635211759679050078164722536724357462049009430212029470057036923243374027572478782370442734565014474225031931435381071955926599372504099969549102597015802181501131386439569902511721122121568957180681029500168028947576153177452772476918994018874981382936991890572706276852969258791128498802191187325250063702935650611371349973756294589647917961635337088283284818619180076483666092915969493310221230740001851209437354425602933263417553477480669573368105728272966478827913840558764954712313681114875841514387254807303322623399498524713448086560313229090858549305453923587235415692075111570985398646831442240759141774418272102324120724039043642992848519119260760645451432227479028485855989366250895665652942391787918969354784160498116635199588452168751076878807687429268323492731977791057699108059745360979312150988498594245445820557283895550002149707717939880891307640180614457680983744636238411177335683982361143231265904775611245480224727563406332705278043873645097186327442193447260702982229250764260096201336653271247712382334457199605008382339765819607029383415657150418243956586802533444859440334553300448687393772190154990065703579044797326414993021552548941726746335087276167011845225061127627011575590981564559204007325197996677772060119656816582787251098601640638644798515101876647521995498138629130898971908293966091130159433000708363582586367661319019284242722677442462143491217979569270895035504801714062391336112689156945959591640370867519276910749224514544138161616717004576112711178663923903866474311130829484410428940253459982974525440186879273122299732690426331241084471805617674933191500347218335686231267890115463947333328679289818383761057212001977869858569445257169793919649991960386306561706467951092736539950299659519509865397664953072219779063802028003787682049293861469048381636831359371039062276564855255105436401451250427699625955180229372129862026688514285344504994287136269511380060376353173619877829396541967769576651928680698827898787247697800117801526395434534527937858193878370023354053697239146098227599464090769062992231102091162699468850767079813372279574960065092652890166825616627567337600228935534850612173886954320148741201478749998011530913593022372046068022755441379833900053203672104243717879339629081992405714623657489937596436392984706995666646939275958600791001340203929030537345433680213697300081861059338195188785910118844366102238513461977192867282451175312464565853382233740122454031589204714182392971271196671943310307733771136061919535719921080182099596679486095334830330047059941048502772530902808899463010603372684578211952485521163729788670091063147598394838118241298657929424672416831943791698309062447539900885200748659259681822338024846138888863795168882420097527530377673832123699700858890822768502046662023383550436915914681081235435433783606313837830261767744340918596924832246697835541824552499139463218649227563230915772577525667318344275821461423845549183480659775962839959592009296065511450924125112738265375759883023278814942571894952146107333200388071948155744983782333842345685370124371695229577446871293760446206233005349623995836823544866188125400163409135958330183637862144937530728485951653244594388179925921504853659636218565561164196728662585374789033015491234755015567594696448364748284911960680687915433966334162689108638093287194407732717133865730183008998799184398744218666136238470260285723382706542012581737787237138864618380537079166057284017824503405803506776218180212538832298617807894192329879823896899573877317391156040563938654521557465658661482763007995579168587549510947816952768604687476321454973429455668289599319340234663775628954256099534976111672263644248838124279852832760695155372371981145247280238708417623836824264281413327055687978735899406916921106024593440204383612497292508256369960272328566840349854160853367460768878824727857747517965524620137675882460232010134022621815217864003684212052884005492397071663712191619441360224883405452297592223597845200370382679684615040174898051939921921399902968478129680360937589284344321986707636921404468375139282333166260294795295079637602632882092163486602667424887513665495725995112360949314334664953085922456445836321142130529822466765479587113993507906382127758109679092011437196894001344725627420674119862003675234578042453762677631565822836160483047012276498297543297157389576112418987238608637926729029067275758943044557801767145059326613897248036051731705535878526232304821451521714707395864245020718080829819501866247637562127727594910924270913740140776250596367411485044720418486086136038509339102188472086935687760600259658643099015271915234602177889014627761369352153921204467023504957575748089103315278073545093136454433655450292072746831321682822844807384538144708727085914170842278780618373926524006479876978736204238341917042779870179564384735498587392331878025764566376968970381268592168013589752592489336555925976855802170030812671985695310788832597071874488819544520057999798858917070500962252135742417720096129153986406104526819129895320856196229510141496909132702352766019125791072775123071095026199692634371103663926630405269262248514614289364377662011624329348897022574609063177291767354113662306832681791204084458815595974371820337682014804810831958686204134980650685280548203536701742891333215017609845121535943316522098777310037737403104936525601920969100901370749854659610326419724059794598181575039259331579987049252756624641024639577214158123642788138372687550030151890455584228000971349224408028623626787329691581354659109062014724866751037655441358038098444373441762970483532385186418376697291752736914476211352120401636921045335043919259491937836011253060333813557433442395804575879322554470216739867316238009134186544443515709596706827155662239633647168083554020977047483744091098208725192267012288134433508146039630687660036999383679921856427034843527288568318823826949066695660212501661971961331048268875743990960999691626914460905681240311619724339911318470665653848473949081208742278519977065635235723161886331479548924694671423809459003104084996780489275238344201197787510283999696087928656357066774791622294645590939379201553502763615144122076479617022325826919577782180050789857961481957032830819071345924638330201607788663804214979408275961373341377267796384951265249192374378875878001753664908440326433520785326816341533338441565813323651996585540513610399861562678561037664362323446421510314486413538902619189660394333746856129975176781270156322394822053333234198163606355964356581667759765074936852508098027618086080907564657880193341744685896952651959988574659373465096499671364523868245104631438192209129800234476995442631058199656884549636274747262862365198593940146055884217107050851912682811899354834426148407127730327528258911520469647182817750573012205703389808324195017145933830401679126731159897438576462519655648969054360054974194940171158815205125964823987785766363151109195067883018881516233992593327705268444346907518911279874438429699804017243747339648644078561533178837534925205892117233268584128387643150422765738699579634759867263073358498339189791078440622988953489315704623163954768950024717428237064725407277786067712689033465998367082031580268231956414221423133448184565882475126215697703737875914144898102853450914907927354580715719348832566128196095596373446517127910837370052712811298173236918191089569326832990044408362967520449914697633348869072019113180329525296494064648349725251614697948976610922771111769726057067421705601169978945363451012692194700993866569146859454300361008675887831822481171244655668961628462522461966566414229696412557417108470569889832454782419807942359540608738317906005637831606886306027257678165972468084391533202380981612297582929899070569318860121210183598067030942184403958682868947215674124376387292758268522651242266386625283242098292710502576996958077510589949795464643638606428422550022429993719404342610581706788673501108516407566963362579417775028016699957823759069991749495673717370351826294189068699927801005705505198505424334510708773393172620526007560199684982362572389334096137434562603404374534258567893710117794122626528665161352616948696514923462645854110092050261710470291515616918411966138363443010983219869846316565178408297216202246260827408341539240894374810734120821043372431126965659582488997954262707251726465702757348833543858608767330736969992475861866427206414952770324920695190394326131249819740025243009406038604586682289229611595825435952473266675302730145267763929817884198274461044256483754895598126421072729770410018183995321429609970768125567432782434870083883720544763271085256873354465192421671400505158671536940486933038321741996280703537632601730173293932875120846842244857238819557158086692622626952378205576074924283034441016321592751939369075525444267110525576058070348436519898969530826288216982194084417907897067720067345982339313120012658883359921171126769090339519789749946779839012698541665488774781651935322313380835293478154920022093381978144844581694519975600007564761584214346393673418883051768207830546904455570328200177257173748551287840931901561340528705973270868609206498466720581134867492999625780231870098600459100406716955785327626576642547172919250219263428945237683142531985027573556208884637757207101662310332709607943468321844528889479405257632016479305335290316561585225783345785516697760323067157171703435979498466284713846473426053859333401816847547238066166234626670886120517820481878381060537596559099614353450648020612360544457078323309869626120572466151317134963066080075338578996163391481972807714324549705124849551385838073368776280350532061192693647737213529135039710768084492428948211566200685513066088688155886174254772053618364463878744174920023321946413871011823510032634692572087642307472145246093076864996487163928424111121995941193955887833219817350676605063625011126051527690724632295824671038334132019161167497753055002527065784864320093252762245231311572412764768543842910094624163621657288393340960129087982595140966266659823952149957603694813376914159401880080993764165600717433137115790838851571103553329920507856841234702383401645455775876223122631320224824945165399910401714003297562125227154784895308449136943193868808562231313731456639063909259885546620136593973486073896130177926612863745082766718654559650789838754600854885731683625652698418469922545229626242385627592321159921717268886346329384042932187423307453411451157240984753155443089295822006108330454489690896227707540970524207303104716801750899087323136205782393957159965836037286959764494306833986143288031190508503135185802838531765172036408804743120010002040465929033286624567216827981984402361627404411159785365860739392167935940551165788974019471776228288623975997204893764747698632793833807225520289446918175623234772051359812490315133145743784208150061052037830710503139012357913921081739288782212474509299284138353374313265176495364315128144936817597966127312618703765813800322644000730833188858964817964554846710105479417916972434474589181559401169648862463272499827546426329240323367678441378156323458546445713288029384728302231279298600999038365684893711945863762149807924172374859753271749072501550678400190310652536350489454496302940241287988246420903865202902674215392309169183885840302673247078838027131862306999135677361039348812292904337295818511679306156819392545360995913426206040210940320708264625666703064170935170682425950069312694936215988706132322891153379278668064581051491305733070555548480581474747706773844513586685764285704544905199139811687814699535931720643154806437564140667446816905624348085241352072811062493798356229993478272536617710106895249981113889777520943045180251055146893666964686848020640987251175409498824814609033073997401627345973769620061894717194499451844911766031694784694662832161404641478738606111924682291780885483151240828211583359741494804550394690767736022557617890614162798989532476687575298195616107899133057495767141855135384141532529922273635259450429238831040699825276101422650266670572056228696799527916585769600376183352160318893388575688123416611530034156626608131830212010693843062967702312983210396053605477916940798804666401894997771684783125710614498384875013341766720269014499386773175537455473836235972937370624981886077633154825788276835671586720309439389182471449858438392557951903572754081755392665404729262964926863533816888288805862454170250091610358215786564681316588801067213435028974013343145424458854205414662148698834934188925994016331436860584546037270627350296331016653961403438206099119167837619457781467722085664027981414357754679084028171430726501397110535048483768913540132563860350867342468167748291114563917179926033927580118432660738171267389811094733408565670717692434487338192537772301045201834869813284923772002861912799503043473349106710875181267995615827493353270569112459954066335201730630928154811412315646789717917033065543990540413131015335888865093319959885459634701906520459805811065823027946389888842871115184178527243568429555977839944856325890854150686683097937339672390576930281684840780892547954579559698793352193395366156166623058425208168956891745031684008591907940825846164239384887651262912339159615188162400810654576111086526946482670818127973738936338626138735793814672952762298205551301872904198716149360062715255099236070374304792314993135177144311215145010821205013482848175390537798191789010231878043220423134494410909536257826809120498585997900761744387563492419367432106916069215483090100313174374105254929628782904054102309791230814325159020982834565839277061306149504459143258712860922640577775522389235411556887402676148231471153005423924986950114367040790566008982479069239394467502056843627777612672658110156754541549345984869758995229350892911911938007543643010433673141344378467726624218145107878465181402936550450774097305086927813130111861898147086252869032289489686759633881309850200225981458561483644577743490528815201192544953318871928331773210323424993990913421557004775846540593708436993309287928579248230055950726114112169161704087133584407717670336654110579503707405994533110144104005561706370489644363558519850254389368865174161981162312549425779825980808257927458904637864549326385690926056665142115972769855104515126778346184400862940736778270723820448406047082079746746107723207042984995736735217328677304922021060987151129995323762331222442207869686025183090430503570661122018550450860400586398269343139563986739781650829939869358598216942283685724658970952635212012880473364164831601388900086260224567618712055685773344825521275090116714538022419888060476423407683215761325643890597963109587342320989209185417582823556998553913626525746304654346763757224412893572143214869181177892000050245953403975091897688613761500968543401794098400080699563670082537031533368299595001962862594519053638059355790746291590469563284911252679118575557610425329504530613010682140779285326646101600767099557855159332566085042616462964242867573325940113087417934277052925199783048890919531097910678612617960822750804505835668966738054308970865186696189791641197057809294344077326200815606267753525573426232436869026795935742573295288396336166842379827409685569278739994083569007735102688450642921792146243119324593513031035102039480519889175379451165348537550923435351513763175074983602479502202073181215590281860337979092049415953638540852697756130338437725669107192593534563099200685843104539910835949275147440029765937209714905159673866109659337504881096583264912506314429839421237130948316498734312920668157321643060117027121773324713946516043863075864127578746826928445769730445727681283737197460163325754979378980885040561410646803482219077423728871538063877956591526329002833816367827169065619422203423050026562423199168531493811962456721012853442856886371755176429782322195763846438431058995957816487099682902277813212945720883321464818182002282657323046660276224977013346388035560834070646357694130212405090887657673880670013962468873878425943280839021468677954646307336213792094897968701931157966410116782554964335895479799635343778440590494087566787998452113180495792895301943995666081188800405668241059817157005280464467163963633453363200682126374041492451023201538517706674032604018583826839236999450426014129835424730106495953266830701983488433376113787323211912622037175340840667239285621439101804881532663304081445937550950310589256035445589731051078577929891979876263378061683949547647701430112315971255658580337912543133462006422505872429643514953714704612159175233349887466201321856195493629937865948516998596256664307578024425159854467541245234463525923233215657838475391974187748559991162314868770263691270837522707401644360406129860464056540023696549651233193378625915173478472647698929929663278382690027834712897228500100135076124275931296357031586759136832500200211668161661132587932325541148504199895706241208232513090002640963212335573565593967972753460520153288472391715041535904879358730161227212909015723925916304865482938286895940962205424383090582918873781852538878704006981779731214539873994925671288351244169886244187222654026797897572214178339620950919489341324006345179308958289309662105590654369277056394482693767764918604180741126589883578263275126162657863405373787063170429237271779939285878203635385977647827946313000680925954961854734915807959870510563382596854498160484496998683372606055875664762457027764365107446903849665957774026352737618012138565346819589831376415812669617893730477014097232928768363099954003644223780686108176136059032749972877879356167552005007196985357743079510992010183062019215143098880517060265208220066495319661637272704324962410519675897808067210374724289875326632088102226823879039799491535068697630969496121608058668344376942950823291431101660341226048163549002687049858782943843356250326840885668747528077228577581132287510738253810925323498686761010956645815856214970904365942916356625273898280708649696904259174127296989409704897084913069735454534037404834465091841865799469900611689815349150341090157737458544656072247470246510049396733658083903388533496953727390189974987741967437531339091910791984907247446322497653563685779995839178187186533481554062729481533504487597022090155266817552328202241654112068094272180726424742349628376382977926052830900538387974425855233362962629161748432020462004931592914320037810017401430330804598873580581031461634071947672066585728448790748513913696089277999307891914174307475670537260431486624841555150009328674365316583959291599556257654474131928940192406107537519427669019244404796848648796905925515377165776689619405287041571807732648095739479341887948903220530148419979990661405117930302508234707053729176557851966025502328834112442635283217488958494117699404536115911534347158725029828372278425177005675240167225856932122654885385074952049256211312206655898992270119686397409499318782202021573744278114948666038469792237440610949378119814089729219509738404820527262150084565386418777423507293656106756209587425801553600187290459615130767495386512357058504253481727582929898014802279724885981857134777922670935843344274669553979684852207554653048788341905788657331069747943300917436970382190048124084671141183645969383489750671477532113013779543072456449518619006254562969827345128430396363935791009523553182140476446051485231376818995612432080329267543580525767466532037538199628146070299441778408425498436879878571286680192180701570635386471148660325637636247305417520160787496827717453832829776535924494709108616435420179328258038104448565778440778843804580717542124393788676667335685810306305536337828951430452648061114454656411566460744525947986286700619352473792299069778415623096093971435814762843215880262475524686202461976429326173804123453647229993351938658528762847734347423730225181203775697960716768420011425809143951300840869247280818057184699711701391394130247557144393817089909878165367208534592950653838363677623827700008821343947406525976942501266802359977522733559382090460471370072915293751974634420284580900427468036742911723864224255223476052488862354755937940020192055143112730447629170489859044837744645649011471624045532838895284755973797441640836682570262045359023067541681434345271620008503409475790606752745393143700004326109613920571393251785553456405635796272652576971186662345969863040865240059432095559894035570751342930469152490331372576121082479686260482999779977241612540783733526703465030229482831810266940546825795711602143528133086741787419435660033357967468069819669473044027789072118619861203697053598815893670683599213843448578100481280929954607598233322158210895050164249038138032375051938959961990221295957301860925878987178650111325723671257089484515367493338708192718303235348150677725355607179035182926256010116562426804505858396486829565657780412159600125087091539852715132660995214732530634751410082952350271402861501465679593816041101092535591863157574057536745587393273279237088725658124661513973307200637691852537247351523020132488069978360089063688221039714297359705942502508157950076949153796374369776788297536114633246239055855431994245168356581127892521168324570650316315410006739553685277045239930853237133979951964291102890245617255158349065854940575899682340637391219254700576192788838801433458739985926944682323801098685672094734285668319343646056862572377358226486011573647171154727621260663061693432399295782988527237138806679707355181054362943497742461050422877485068628670629938422014479264452366561074798177311217975113396428960020044612768617279045687111148968468279256281625623442542642267313225272903151581343603695004965703202031007527878873422128022700361288314749913450417185542724779461888895193232557099324404107004279183925324453916206207428476140118408170141535435704820626136680807291065393527339739202418249805699201702422371171178601358792613401844965912978982619212707395629566085806473669892340210777832964460598529554823460375235388452895223901251496252373828189719119552342983630508363667770028753074929713803834685558278206917780418063109901695110184577606755290379580730526108664978628615838409177804639406768142771080966656165608184046160437532160464706913394962249297411662619584127515136875148045727581944260060988379696316730363405151851406474989435075663267011656892091856632064153896043443274934133975054855999196765714946465640191919589096802479111571203451240300325367252259003196325265784602786469024685864377589392654277107845060995431840648256518071239424204454500511361959299976164814875154018981130986045323783018748484034254388378975122575651340477156668934162196246134279062760006208885212395510610168276470624858556836543936965356138927806858166101020291747875486927652026069092736492992745525345080969165488516085911508052622752862030892452121065742249655599229560353113108275296734933078356450540561277829588486715074214421490430243714624138994043542448746745172611019564541980261015637512810952559531322119348894069467854437904998896551524381318570097633311707813708468179303354455227170359351739041595926078274998215415346591501020917729394419059748393357376410800830563635660793722410807473547048908742946208009329274946277971670947715958645949243963046469778513163676732739030762837613013632629243586869727927198840457983095373368873548781837315879382919456511175724833105331368817319600450292318828814967681901721284482230843568463071499152371296498912982455378178122875436783077339268181024148081615916780895080566423549483574761279283495120957509481704375436116764919808822637901203112885492292830363142484729703109341146122857126331552128138111538693191878627125320547054190224247328973411178064956055840163884879093676850065848314258359027708785685953085326432530996244500460550094651973680066300131554326615876011384865760901391170988186613259070761620709518298987098930372199579457363490483845008135225430815589684533461412056907468877835161583936497888286426770350601275399155625134561139856142011333746679160340754848051869436223291249211564149693120370840865296065950532005369388379197407602219489351107646470039754909741157177146424154156758339327613773712653399945535197549811015399686819360323023276547024787696558670061394166536033336395188591934732134176689155602343593041489842421624681187692511357716892646582388586805315470104823592127270736265097749516989676625352552165638214829211368850979056033189130419209598940783199047418333195609186326876288647679786100647559941944151303958526900499240398300388366667773865217582325502051511743234720833590552423594721929137032272251085506374195036014094737090813019521697234548164376897278180783882066629150618999663219048166972184600815636887905137006127916844817540973714202657163123174868146745723674418059549171805255066683304821959349683506628748502618047271783154177697460558542880834402584341608019309822107250939631266687934989852762866321567852298363618463416891903746276156751510211950629670972115701593202694899199141126659230483592642817877882747162048526554362293029331691028275623458913704092067403314749823407119488761706558610497783266800791930787651350988385316428218788555496459084599502837238102972061060315898710505553399259873171947872581160965138607421372178721283584471234646454052436292515341840795775944779889119996750297844415618171716391241268853693635023801929138522786093798637540986477425755180308870882192105753691831816932137100865185781939239168703807925103799020207162097002480999360845115538645859228329318314622433336989594884108636763829788451846994342895476857093049429327203773355252820873328288027538890740668720971776831649926587546176863700654893026120262696100211604336464636237777020821327895380999063324508423533237397951106027296963905474438741349721296768451191170218360958462650794064353936716387404182970655046911816322402836500107318597924795310637278429098182174534684757792805948306620753895998514374193750954701047307409888840150932330140794775996448550072465592024986661676082392858028124022654794194795314558766142153475496480418176056419965786977877679602362139161307284114613065639153267987097645896030161688527456220341602332900262542725663448194272235943740902075576880589294161741703026849288470093782193769529913749958216822762236680595495521852960944560133106777514992971590706509507256565515032800116554022789022355924622137599133207861889042539883461640741588915973624579015604807563264053223334794523314284974135882539049551412053718967395444831261545086421223832764373027009690266183469902579336477535149926904386722514202127275675700148661267926163182528413618757625199598448694161770810999850028979407752389120508049769671933560328165467712727397733601758688730867567545574848160058465681018224222878585628848309060074986208287884275120103795685754421604737264453450067393233181646178203753364488045913882868034742622760280748036940376440226475011358025350400678987417236115703925518218792041996091988741573342682123926720291635538722797641970824520820984766031961171162267112386640785589361004116396175635033215428504977050897151476552535263261244436993348081935952543517612972407476877674818198601483917767444054714877114133077158545185830839942615140889873051898315363076334299079740828995766274171094597291718976324917560427398505288893568873302794517563721219011286921497498752986440643872040437918077402340335167628078011908697892777221642721576706427273248531460384366689554580053094539015935936056893441787194138609901624620048756728338010160720734268350160852061982475174095293158233713221714987006856928068667628586117348216157199210660609670003314592229827376533161235851719474866145905926185787865046170058201002696794819398988965961204923446899551954858635684001559680819287977151120615056890451385653521962381943282431484188000888229325564689221121714075595523121045146439036431690420489887749007806360224505601972862737993081983875632858276959051005954726922917473379574137192386448240275249432081535410100502682480646233135215005529210961914749095690832258495685647300999062478856627373512150055019188160352032204324043158869487120530514763864475736316744214008341469141828373701970181152226963261467044581087936030115987327113099030911394061367416191189493231813015540830587206034564884841665841790415752494167466727805031203523290535145291763352835463159209814833732758123191220681362859705302856464468961116659649225965633762330440621053392205450255044621855953191046198589846189314802947006865748834900673647282830755515207781653534367277173499016914612667147491336245218090634745108103307550603570625313267106359096709036906123028287100426955471145362452182897405804795424403477824293317854372439070717632108671796706353249433282143547812468000000791851015885999479918619164466982106442423702461490790010093048651697103786114922043888979060944291589643567719328773413552032692265462102576033134837420911996736637938540658066639603285221802924606446383031211158991390232393246746220906955127951897217960582866099037119056870585425302075285833892843671695694407734653157326454587266611494109280277807351545573837570775244555961828493144385896042893949191246637037893791912551860838992938616092198832104286114726996448017030623865771382169652262095200990631851503254561125131583240878559196551756727205335249954532396784238440965953826800007019211657457913513013378443507939765188326836528460288598740489148603100177906980049728880469572396643394580477494127689614390203657408967624818038507160573224318641650112638286357916385567799277411805292718866509941317562511079420270897654957762600758558279868540653099139305903815232165829996082273958734119348542410046557174089467979220922143021996676298626224953922142722404055050831572907813231430317672972711415662291041932571652788118483526189982131230009542125171403948670934445665634498174482431570660181009460010294726774660345608873511507371988592951854197632417895226988895921173504367233721495843320498507978757414994553119091014083379368511507492976229470508655166685087477511985215949697692758976892364797227501322113035365047350797776075823304138546990545807826487553902179294963403862906669613886138754015747711317668952759209537377454151147510511751551515482846889883049095765518032338073978589745386350941660602295946540937205480394737432612628446558549107878442101616759920116242902054218009408405574759600850905603988461519677157478032943146971737009888998425441880884320085326742717520227265645930001108027850381731650417082847967321482764340006382872448981922623388222791656985301077192630562398258351997370715430212146026732238017626957292979888091589758156164629640783984732508085831256487785144601569638750834860787554064778029648948741856405770292316052141111830144120527779063959011838625347957854864821852890845991474938270602399323478538491309685125994821792660492077143305643739026417329404341961234118869957328584146824199798961514114056756021304254013249991151114116158667077273719902223212970529433110693530387401117064453904424974158443942046644336756428120705028005416070459117802761438376359985204745830926106611134919121417539770129429972016499477878773943526120311833480593650736664384500977245358492842693599223773722315764425978601161905679253742232621239634398314814890548920342305293972294172770993712917724486664527976056103502995960591320010195756585141090552471603035920976009861942253310050771409058749473077602085572087504168935146444561523342488365914338996438879264722430426035787036158488897724111248337579549115307413872845743824556922860826903245035021219146600622998973321823281589985621785361839785385339532092177685058302867569546111349129731167045008949051843249807354507986009067521022265977163653457459567295775460083739380128269804801114113498735237550798143054416643430967081549578312195237548998275445573067263201829452222732389589012382361660074314549314081830336463134930842419309905434313585459732726929419551622567698378451942348633259401871082948701722325841185878390563766173410951908848042435849381103827083630075397085866746132839723143971090809537728563292288208363951683619002050547032528560673796508535553124552617952611344411901282563759989070173320466456076283181032913518041624107586921709116510292978898386540249317053019223839561534715619380131320735463087870170460119600343017183538518469733081448556583493900410778015551073640136025300374117943187891516214329179739360979380165765599499166961874751698520383172701082088449832243737853664657908528486393195110646014688261881113378437458133114500719924583842859654833430766931860742150395414088620973435955533768491201299447913531790436769445744937136341436371852888443628846854884938377234518763165568026815638017967918456540971431335244567071601885158501639303292641737682096444664172308136670845987312625730919661590258515555136434041755390899694710011988283175993702065900400424921287700434773168609646178198662858164197002292249307664532573614517718249116262577812456060218768307700499827718260131263095497932526141415806207960033015945175244538592306267296116065967765039957378372844773470726658323696281672787756472436557940890916833779041042689588481325559391839217766516576590493853131111853388755456397915283157211778223612131319787990997649507676940003216485416934038855167782752045354093063691840112409874539090253572180693753671602548456966094716397748893623624850942161617932651694403960108336294739779718841525157875746789071820634154705815733580929152666544268735578073357016821227790980559507508273163789113345214936684501416449331328402297820846660623659564418061917668744533133645705783401198780219941063746479968206458507600728036225578033470256066729542013416435154396468929408004641662298197746248566168228852784640881492402590277375010316657141572526987889369604769869113937584159383306924122736852370682654522999541036010087016180408054884938739178302784099608889244192731882885399888862271205526692018812075019615343402027848130772110122749097987276385474487330851157766443296029841859009659476472516704610719403062176595290564255561482863044023381803592428791609534796973122661494638137506847074804720887874546647863625323761131981145397407927900918803507155290629789988269857236901257196939546482571780056433944517527735511798686184442208388181990207947717507173713758889184616714636815343206986775963108247839613964905411493202407121487754024099482884809193226312369891166676716176799439644715166189356146546849421055537713816645531135984727336090649935329787860145283590587726102312295373561627236432401970934205715437037744809248024949061429878632974311252255800269998554724430967618382364917319602584162870365364793015207779656265177251004341590256995458978688112274073097683281890315349154501248056065257941303626843687065849047465696970487798629816809313705430013977569926165842772262112217315320275180507712779827944768413603649411704120032403919552083475696528750916906022731935454992811557903796219149565208812716440478896790963246115919904468179118786423994856326416397726318127345158581483109789398422842325465065496548385519098558002684340025213215511769555542385851897867105577061813563371827844614797910466936370955300906590685412935636471216421843412808615785338501150603680103014475727843602156120580155901220532988279579244810993107309918826391170410775574460275277476915837249931808100386139376514177771886285987979592988273118608829511969999415891199254217992298921339075571683714040989129731679472215262677936863634047406465802443774017814838338224930554881127754394594759481857937654011399315134015727885024704608354239799586679296071622874130114931896138728825373336527430743694467411387058206525820994327635702339814552159587796280980733061580159510242664863086538725748943394888763877876263344917409262961495036994950387175788090133256136741649026542121588424854377913116463749958432821664592929654949475376838612585132540873835057327387741017216590278763485204326085334814771044289825045402012495681043500198294693145250485413186794641474955514816466712793808391258288093095901368612524392003001995046328994526212481022994470678876767552313619204939801941435885126262830185483846653568291475015439215837365868489094447989514907658585654265731190546123118702136652134739150373770124106587969400283521525865438849143565305053864165260520664280517219921610336250390267771716227964904584793138029243234683948634966851492093215891981466759937140140138677891057451636654983423757637180720913092671354970910171981024893126649832391402146839983777386274269058426150604828885765036082019321077382540239006010636310360286128479194789289003973484760872939684221775676244344803837038736270979003056041052155646903487092694568318273747632242535755079293277717100688657756988558119741832731949832437777359710354520890948272345403395496763785646470891745820938886082958490053111992553171203857804072973252657861451090382089000782461577894954755158320629270417001784483119642303826156102779509008739804217128015813454500383556391302970122814056783622218391889540682366554698355839602622042055795809160986408600015711237566462720519560330244688163991437799874931198919480734416495290754798856843184658410807443140761741083810144106769991464407989226695907539889523278249344329978653307171595110398733910643676405638162996642584421089605176801926436963247120361627762040374635145382571449889484524348966604475170826569873361029325661708508271544711600265477715304517986831045782084499355184643790444812694815382185064874503915202809013629132265752382496993671555903579897095953785562217459262614624927320102581075873006261511378028989216851595033908500133035282530294955257015181984115333966388511720572681006800283162200880667449153517034794060166095832438914507079081589273693085715754770016534807358416631619657662438236423861363036596528775861110869803296479248477328781926506427161255633365516081185325896372875586574965241671290550386128055336149389688103498899113528362595843271679333199207946492516974755961843971954916814836577980700470508380468339665080689945353606054835262667645055853473926153023240317089437856804924893977933666101985158976384205994552211416151596464493525914513278927968579921082078822022885242551654634548199734951990865919175181822394542915431485340757073052359542856098818024558397651315165144157741739531723507085283173876114193540308285978593716531217235347522628364950400629822155156145364057568869982713205439081362934621684588733090344102798466052656086156640168130492806059967488801256661158590364760592720575454643146729314152309788061341558085781365328437136236615772561431206225909085137188857958660464735136636826222798881467660006040816957502749231437213598764852565382958215094561260755888882442401904385495839953059053198543635542634054845072817693447457525356775785839916659869787023814704410453976240912121870717539560250314408724230000622933330898582135701575528648702011240606114576539512632455540977545533448951813203093920385078206397832467168483191210695383069766025774636859659891167672152767743126032256428472198830299715048273751391140896561889218146361805554284563946224827362325018397922037493236096175379536644214068270035716372741410744256984214499339385225056687234886564227684069196367482252691480999395070712418113814970097732289214829404141722972245453250594016497214131094246580545788102724803464925548286858481800479895555509005420348713887234866057138065263352400331697173620963532246321982966894385647862397225821291284767225967387840418990732478140606253583417879793969055395566893034129566670808531132627273874826434961310836529186454657910374324702535359362536034463860818390125743471944183392477722526049222549000751564049701164180577808315673959371046635305259984225248541764538997809225721930275563532298276828520503664133699645781198440703062535567461961068347961553489262656017103625743027319149365509106106752778362215097935951081175992200993605487681758354034792279798473130558224104051953022356628705750580211837960723242885585828204967718756356947910720936556140641969330977334904365326928013967728199762779188376284428847104193383784450975125990230974749355452964633041330148767301829509581431904680904512898097525820545235519391212990613742404376263406317032716471062328792360383704459434049413958212184686597724526417686421696460736920663529438129362208987017403814333486496366918372842098712135940735308490435965258722532905831742881371865488632287538790005035987683910623732046155149914751319103917625591394126261732848700188716327240622601999741094691612602067576824331429879470240807778188724114947510302250635727627485524680724301248785428252097328729031487840761072418778699391724423334699813126540185155047277671396027470575902222538216685130233442159737122587637682477020410282257382611335024549330053290027104125412640041310577213314578954645112106866230130676432857440256402119585579000055891328178344807825032379377902268237391860674696638531266305942323407517254823247908460199945813265340973631284648004439697013802100271748524079657348697173037767766790827847321086834592933863040174630005252242324012031364145140459755046600558096147219864940889850064650368950863134644137992481608595120613438544512787197030097153663356200423468027706587148166369784020462521833756657921794510477969310691043612495878163779361585005793985163167101012992288322667985259507495463294580453643613044884592373799112870527916739686666459569134509540586186613513953383062891586134134096535224749536345659514104564915165156356132771480578225153563848399042588553087985309697842604628918213358198357345786077648344536347573644543675007258415881529789981228110850468021686011376234806871427018171104300539806809839514094996150011025570590282688481068749822968737212293551715568590351595539574220053119496688962244934365896327601931693759768021072302286433832225478232427042052470802050399663328344502336502982207334216875267165199428276855768842763395380991741417772020356971093422288828511531934032854965559558707240291758846267058653679149545233790526395932175730086505195770639498958757111265182342480677810957795673170361678003929246143293705498626809285755271448128647962694470596448792663100688045053930360470361207599028830292322313479640621827877677820484743752775895180040468216820314080511345033619891087593355209868028336937275767566530276059703495967576825553714532685319202122267263069067166015319640982927966147739404856206275500642784939399126731477060173672847370713984143297697978877065821436711106144206116743943895269646985038401681142348133824890841493334506503928308084341622559841529710824635952437497068588030364431993188546516220571733577404401771147620165030565373983568872996470442942790118655132538830011901211233417347230885930779607564932934986017198047754760958521441243577418470565760618555474035751824685382468815971688014261834790220444273221289391087323842400211242898767161315356354521705573485727410734885487531238710278918735518416945694224023556540994413748121296989086439665751511144377201348580632201445321033976417242690109404143811612368233548125777984340375143878460403580375203618703970245883798192914353267123505534989223931630806220461399452342478484834070615639763712033264661997166973046435207334674843090688534592355475476401376304629361771941091586032264923499053084786870274982073759009824485376640136577132250757280744956084213274644155801463596104289468569646570769942067510040066709501463652162836914866906048758946325182342366316235867633385632349705131869364699179191048603454030669513087778593450320446151321853351899273449186204703413172734470560302107183896860618239193810546547717497399950692900754992627068760018642863682247808632357942166370427239703257580136048618735751597290394835468289844152268463880868517223121764783214258388821379056643558678213288221999375966861102320589193818688673290913128442676948423651708796241505702470660254907721479367255204990036000170638612543832611298017550571080730001310399914738635600198749013366945364796506250182739738806632475131899010179043061729628887406516996586081845232360319968654951214248713884741355513577357381516506688369325786614002845312991680430544741159807656304600610983807955627234640606986154900722128199614590650621322599949341583959160770515437692060284993643432737523541288989291888837267640526509402926793170790274035440027274507175979436605845957517499706807905452914072882298604074982464929037642338024363068174182670539041684520818936996285615055960970702491445480089624293261667135771579115378095020942673291954092077222616840955273036118738651318169759721339931813335442883632291754790001688203406148027523162749872952696755559597753478945742769825272040771456977295875314591550346732997498486200035936449246258828883189937273520729174748904024156405367845194707814607966555858344828052952093866234416641464962249683384979590853886553448592159188455079889171986416063372739039672056859336698314717572412651184634879693796521105748776357325432701507051796550650045937715603650811135736195342539268944656080788020059341725717069562300343524561101567605689315674854765450011801986241715264255565868723946772702995807361700617584837226466837496230858219455232155385737260684421069392732908527516313142379126223457383791472584377371384972952984491348490696648615472745093587894796989084391455542446320230649539077409114409943738009239256568763697103195762027753704289781589155940213879263547541509943767800183605189664969203349369745289506679122154853105331525408194191219584491655132539459037667349854285646196426167682568204399368298602534931081226375936591539968941435699828774025201270200787995786549982448652705461536711945265732739386921627413412600468319192267470495297933534144725361601994898525624115268054642812616278036217869893482862011681603364104373923363536774357740685180164362374843910593404153877990986766038580178611827077228424297227434753585633225030283235355605271003768041742855118266066327563646257425283074375528927515947729568162838472447586716230985927885811952588366221777317121394015356369174555822156869616455106570396919373361804607756966656847124101236504168299095113604946796724760103188714988825907732992168237711372229216813600170432758224323500933034382570152135443921880521514345619025878804408960701170164538037072134394438636384441347311574158502303196358549205634521508976529130772963684091672903576564286814469628334417396527546765764728099316166834373236174823719440441570144464686681714788703670683108346632683747609541882805948822347789609338606318177346807724304328864653502525781059681044105130514418219887831921313578178852731447334996481061153475471804882447890196197867448520447911430085528944256226179918304171561501209104034992231692682881440955325887901019884131740122436944420596789968719414844596965099207940245714395285245123745732435515087047215159811080750087296795321815000933706359755163951691816717881906613786980274270203992496122938167471957695777350992180691058173705860532088430737063173108612550788783736098622397876903023163292678060001732373649745347792766524926755040865753653937167074476241713014641723155882088783221245937075021258615832509253420261683129163741065232923249630089085305811537557564766778845536627276974834127792104937424108183934681839611228437740449892264686830931736275396043252957337603669027141330021763524227917229565341662128649170776917641799035996635333416455389210191952018782237426809248012256082288360847517760973588319195460049905355532281090079336401421445381232328232371998056679197260035868540053745991227670036862135664838278039067460880138334032608348556393722968446400367839141557523648939312741354541195268928030296576304018771806009096389093241700926402315674962368032490671546811050731664231574096436124986926735882415817523728656354842859272492606793907177986629292588384457301730597237387419350492342490708768377025120703209776754558865941705138037757608134108194738672180322729102448194568429670386974609110510042124487201235868949334160958082076887323801159023960986629714853679968988786753823112553736698689675192871528378271002265262478299272553970446940861252058586100033332161181646102292636627745601233909082307073955865495512901585148353298060547506844664832648627261790613318690108371920216429322037135702833353542289292039647468860686743354726001809526634277791872113480552104029280408823351255740189659688392283448278599508417845799000310621295879185151023825191254769464787093617843240871736974797278906264290463203817745767173349646386304670967346148505821544421661135408665530097040437968970623209317778013814014064281475291957784725078075506354225665156659753325104345652010108876365195031540591897154232256109566500111146365997410573435035060036419241387332356571620886800533335910516462404451839760327746771087802423041709442630821507113426963166912681147059859161305879389830480917289643642206317448801343326996633767729288041034353021229169780639822677235013116552945761544410038188444749380726412622399202608111833383617057316082116291444366612699244677297277977221057088189510797814389889937183571845573743456856638240932897278514634916963546985235319745888667900283265381825626421940832610229870699077738958317540214118432275142018246067526458331535624147425344147660689699064059997355471071326651685208227528937932788192650833873130652280456530158268491303188403730023367086254987570764645774575553192947428436490399965186482995081713741397464099699376796498422714545445114975315418779052134524405771692721434748802256915226000514481166756155087274934583985233885807861993747267411880479073787774255605544628331706060643369535423241960947114572106029859796013708613994610730535484058468608545625102402591606937063290662645614572376738997699814344962702541316867940432058278040863926444651617637307310901498368022907455760925079258281972438931828311828153619445915016620054417295811431600864079147421820413820462306092383054984245048155678842064997388550719999061899903179000479273702835357297339821897809220341374874726914580720660964664000827654998059591885110056615041192306744594370761927600451768018092546296550590272782459886619426773474252516049776283550679316548190428747307356972824787413390859933804921442128833915464657623331683207808960850037770862388652636628440751088240446664084187639564982625112859795015199887837211050795993017470453855039630132041312176706226414639885734552910191865934309769826212700155458544111115942115459026279189842017657925856579930689930550079588330205564693264314914193593652293955033150576624104392632972157931752920145935238061073802771167687374826824180441025762133134517873331401003351796548788398683532999655838265215790444754125952688158070889013436673530555800340145811816429313573880571051348790131558292011319808807614237402186443598866329556175868220579388924116382839346660369183126975459792938667821429098152048102091196345030744855229260681929167483800859303884824347329336671573106299055938097519524207972515380937031286860649024430268856637704102186345556055735145213561957525861470390303747955277159899136411146070232874795124748140643106909207514345324279788733697496412084364893654551110960546639401822638554086144010658919410837275234647406519392671879001462567929223331862001601873603180593170227581271589747299562808144556469047565486375099876318511602917560385153705602742627714079053607659300475042243218809507651976753080554108150278583567120723332140381344492076253674037988009466455772442964049494494117690621232693125326278852432635409407337900054484415546026816768744277706535240445090898630044668838158980207321998433298940019865840701712695709898203308288204286393540748485451035086485871598824339803489648577926011605064873916840393170540531720822630274998655719519335170607796311384383606996489259379252147361897477622243342040190911872259870599275458820298294197908505837187869210346158991697014725829900838274357369084429015389005431010246936082920415148925073001531669566446228835727993047653282654803290759054065573238419096367111252357159432214394076000827470963742863507205949163976674329538463271878159028473325809136212935790492174287058491189560613981576379312978613482333348181604252942011142441779203644666599102357045657321324242796181223089313823982496528971353914406637368506727023725953247254006449526008494618832284913209997216639262375997940549388927159793690536508523885737673337288667865012716786286650191391182748734670114412624616451008013104364511070232949225863761323598218301159042314812431994305657468561269489748613006862888209000641663677043916951060291592373762945021609692202215547537067015686663752478928092828300393928013476323695170429309523338771922280086845108289665202000493860752594040027227402626272088634507616162505500978840778599740349019886945626295433406151260832422036154903318620741090847142044983162404221206116532883772520352939053265337387661370009416681329608064114613063536522089431110100960992967646516029222688614845809916610100729173443146539694970705465074916230661570074103070768720307705861577491808112916759382259960039800433006200998794262544892480826861998528647164566710756884852604741401383329600175804393129773735587707732337320671001235800703548857483601051774967133532820327624569215188509002006556482112195419377892635595197891849250897549966733020573515149725834628258281488379492147461805178438648701889697073837816479663676652018185343033569773404182525965172390027267709970826817955399711990817429491915206430817268853309890408772300334842298647077582899717431673174277789993267941143594633676801900457919568655275028874509979686851483230494070626534585830167099631157047042942147612945780376221926225425464299235183539165014191103896179429070457524298318037561358473855575170174521507288651489060100294946478928836684730916122239248736749945226715955532017783776939254292091222778919950119910916496179754996663537148793943341140702578677704084448004568797663032196706521348886360605506264436032424427941476375153211007371748993593989168764100038064420028896878388284757294827164721760265195715940352832206806929791433371353669468333374479060821787002306887996757740913333116903357531492463152656337196971597963468856351215096451468055653421212407264854924533858098745213664692613868071013942230159733713988008392028321365567877062424453974785501901050514485863345237031870376237973361705626174035957402148143743483734216412496346677726462220379819202308590624467964740604053138662311566656207983560253302054507693058895152114653429590006147068561526507334660772698467514111223653527149688657500439793154193668609755281231583339922676776020143008973440492329116843771322268914928376672277659721788543669921407939633940403751453141686134532700067941811887852869294685678231671605293621405564262050551943336958883947822058673978561614454924904538984236970556923620299372148749259967766941604566942416276955096443889780528782732272226057294288545827924617256609857418079708808701580828550769346311130809028631280308949536606604312002472680831113656183414336653811158157718953961270309765653403686597341925287056415265316353501323017138341727853582984724587442956992859857739192585317877839247345626018194450872741760230321152005277056933448741653248919072549508500467603160825530004027889164199123361253898368325746972542986022300976363082828365195711954145759121428618122590936113328697266115350316287215996829377758114129985500082626866541190888036023271249888507440382874901361478439754703410733723840469011695062915779860320598498596858010341651391547856851301847404863595715350919817171082235752000483989068721433858128545686411339911608495114783586474530783696319934519579688553941685895204565918306927995414540989605269959851507890896087647663681949524136907902873586381251627721385473299206319581791429240343267188495089626480525052450113128711412712780531855233879837550271912073873928878214177863348586122683171224095928648519932404328870893019571321377631014631436027608183037583871186652578127612771469000037526122791476855271984357264929249422336536177487553883044691642560401471914756712000828584297334049218151929559532599609744383123225628833827068054186691560209600381520829370093525393752376029915869529661268527561579996444974978413067771876949744211069006846962164715125274658117682839707494442830237035540413059184462450767087975934121601608936051819960646193915583440088971576679781511886571341636695402305323610741521503407115529486914291351116521473967999410927514045122074203680879784134117161916083357069869743724006552746029266789296487586153773188306802329855417794206202638173620502761531308617716259949868519038359798446735014752949723392617964458783868925421669401815919185221149608659716863572723858008926037171739835959332529682229461957553768461223979873201989013089907846526798578100750228724038413976312810711706700782087348667280324900636071094043093065696961342365896720869466565307726647288750030102844912403848736140857330347717966976012216146356980885404472853504254880327460118587403238897790444687106062941365387848781203491916388016553382981386477098201955315955366936352952204553378311678948659325523659307913469512699632959621327069425720644932783922452473380745530945766919983904214903416810521853729364877368255842015974766714374051363877647608283629749796368797393907742592027703543705924642596371418957739272689461523830132929406458047242405308558664814336753962960473600113286275670980276136828243278858790460162013486081519354193241138453716143660853230195451661066972825933820037376470447264357200158703052708036428924392478441801437089724276556604345738583651286426790120846697476569168974367452422160542904064229499878948579174585995025020506157420277295394015542084394958282212286522306045557615561929663061017338858280149854769443680730267081858744334579183464489271501995783913809910248419667126572446583669827176762284690794174587011440236630590658139668515623373072537731875653494100558829417140477472020872297613744079431492993514195287348482786496313618316047666529027902324186215708712781523128726721611231341596391306504935192721328295787066493796088506228185462659966404760503206042085956490333844803002598405592040836528041350632151559562450632676925387340369534260169913774862918660666037704489251277658206802255223525996359592858054740010728074907264342713204583195150776834197815920445533462850066919753535833545573993427471455278265551726709144550607398184620851824536058159476162236134019623925217327837440369046748875546798506517062231751241305553154775435543321616718035080728040801308137456845629115433693868491997656933306602730839553310337093727533017661812487853527823559519342343773746580302692320528260616570212557612477562119534899118996579793428960837072901695760885461675909902673816109437327588518240068719649808698514633355825289820824385873786441431973404398227397347263246428163441526089215238544671979544794633891626873887011935997405303918051789576455307963217047829138717790975012419723842016462475361764528364778088044470049931745691213785751248302851845460684489281763631642098307121445400586081788711421916437599928092085554916263092218584892763524322863369553473801606312524059669388404594820685161040082484904978574737296733575605961724324398068060969772077276980574856357804295789746181317000026643370435613247392779499820781155130701944427583836912185199553276384194500379412556295338388009617565204671243703672469746474507545218036496848595621875688110633215377486937173627321585249096300693877301719634800359606551934259255157181016255908273398915292892825788736687465599675869586103463522621793577347175146955523822116103500419915670243465551484240821083031339284052186183817006209168329767723437276051946737970505193406808178176134074256360888511130647862805162871313989963128869889864159229355370460650079016782806211001923050654784831497059806603720395345145190572979004983315372809725140050445274817114265736466403330763144056225315074799664295788173312205048125061842521515545623540349259570367083972462094390679111356395543903020977068746453635588638109178462223309864688130877367636857473639939744585934742592093285115030079347004179653131549714691511845273837381868047779656372189568028218267017127002223841570174285330552510595694881716285220789854989900872446410288975510001539135872452982794590333957945522582664432654659856517687285982401960594334958825935404486208987056075446865733584909283516008385965435777307500411663200506371422615328243050133483717815594647242253953732085676437391865055082177451404203604584455800631941860530945764553322054852555817856544761604450805882661301114060768732414915976759393734760332133017696295040472651792436708706036095804124349826203752622294834170307673886342753074721061135849669581716620846262967074497811220952072800771277066185451500613566485306139777981272060189108946226309015135018934559593458071540751652452559451624337144970565309167837129115065242322414304631067035248731285188133355902851488698527762934198578298652665834270116842137093041321563921060824206743457292444882022300651291874268184629260939923057553003954858102906507298419155531752944152242541278635227106437073251470108393116310379980644056224797655753386937431805218606660959351973567711610527347462653954390891931884075485097897316000594153633681981785522327871347756129358179734463713981167790712811416944486435614647700501896735408133089701449197115808526434715634857087271964054352467323721186160823710752897305112852666404729665024403664470671122947496219410946400560493455037979458929174040372644853204933812166610291995029111264020380896312110757390110127037518040670029302999967732020904304909650145637345470160527591750248336185522249680966044396989405593358746472335410932030020436896129655269911199319827123910903032926128390421624022784709385083854880868591234951353797976520872041374563424863357285636735092852688722311806379752264964513661951406880979467506477212756421944486803683671167964861324949367611463410835672515705430357258731304729004009063960515838431073244388221612373376341237380930776793743949366978697652118718103688475450826412422155043697320307880106756297637142073529747254856437873222292898923967096859411460477841253274656403541260045194626014370295310641259096037223335137177423090487832469206217881259005649051800469810080721251823570272563293867401271383237753833269345266622606115934232446885736702497410692450631825790592372294511730283877732244770495115754744123204320771601568110021917027279138351241363604392543964576952606513386432969413564895211489310787180311929622818585669499372504892477166183027881830722286923650422718484900219374946260471386729669521087597891738792841428575851389494796572025881252398160712926284697299347379517880127998962234713017092504251424941916686063661051882179066053220571752083634307942728402268978778410648872734729515050147315389747384741695142342378820740746051316946977690289057626676488273140486159627598760246813289751960289592308937864066181124983239586944198667440389429643385473454411480261600098276886097416819876720734668235898848166123920248523974216951636729509836311743423641951505847357110040818586943798135970427220052461935164622187834103136330128898157748161948024097660647600611456880993024505639340373857827888494910041090264874253997533180135124242191813419025113006265602741018544961146087438599799953592217744812366322212017182655374603627461081095028390685924290507532733095589472726787806158320300179314907847076820836611515201866759327456416213960057864024147078875890261921176747285318670703412438066212352896220922348908935510489245449249952573725324841786568173139765560504667154420943738173324110208261674241463244522348484184511702677497369890402212489520843149646815805508961000457623544321592342709566599650634866956865366522114668209981780016307961063793353059591238556592848448628723146009167637883414092527701172058511921684355518351343464680547898957419225127263133084408240682339473107420127151333543632590362939565292687197846513628158937552161479502322289686847339348829912098541856317455800912703487980554839319248997479546263362382168742131216132234113354987508720489239995176367167104561451288608622736386123500856200553403072603454331761954975877428816179768538052407802117667117052794101862437592361911905553641262975701075965651581915509388966701008265950680158678003414031174795017593494105022902061101623830443556399671989553596508133011939824505934647769095873809705886934956876669274829052277682816768040983668702264818494304409158377499772965084508593698539007624327332232513765251952627091802188755382422892322061334357822649704740892319520766883166869268069402192538715121906703258280611903954244014995805659419236422419564867030575049297879069129935648146695601768037559993203533386529776985197199127198298828209576384435917030359613756152484322093814761125124716465476148325538072111617454182571248230635307161450464410177007135170917921972933208446400111202174320683334915360226998718976538117773255800173173487405536618525600389045622283990824757951027822098469870323558872681089397338904141685987456833230304897057867857678578848818214853000373160260295446248971302351525348347424306078362772575810791413188767348684833590021894441553147898702708196580875278217949671572583843046991411477733893345811979962066132037623217029431928330345834465503372124426434816193083390409610961310276102951062398745325478929732139785407256731372769861705298032059771797788383083397013348998449234704713186638351370709153392845605616726864018220178680702767523121403998192977013310874140819273746639961323849442687636972448832512493977171395708866321968775875958829513558762155161672799634048122659862363192636557641331023705712941244481244858702135649920081001885000452061078918935953569287933424511147646009931377412845433786013792269679607322929648460211040430321139557175957134864735971944737431520352426047426408463969443205223662389908037772871124201515518875144941290154433922606594056775938501476113181052426106492875399148872472550729437093789250432226910037944793269881157418077781249264097604846091956431161571206276935914856036039065449357147392651257177767786767570337451293844824151022756224261155553060657266772082657838011617650969373526702817812544337046208826274620232552039326152026056963257038141267940869085274350368414040087643234895634381440836245919373185247845780424216090140728462990230181347978279327837511432268338964666487702744899189179951453978666452219681475963363641436128257688219574676825391690188797437278598587170680170386981003744028462466378334071924379067192473360781200963312145311387793988759879175867093434314416452325008810033045179012462610926679414669179186783318440617923840825880302921457643908435031133771975746737158798470856631678477658340848448727708584896560277029283028256055590320589008931218517981022386665315318199797943286616577289927236496701738572560149775061422919438283762645113699702709481134311828047175441680282769139218203588033866132384179897810812568635110089367894769774009490294353836870174555468884926661475039329858374681120844598837382058267257181734398547501440548875768765998887886797236480761606093879775722061136509960256329950728060008382628454008519566624215693986627757509152913460928412474598160580103251298746171345658709979624437321840231898109512785702069982229510815607274945649920784787799157498378199423319802122320004780273418251154641565616861185674462478369655573798204548438541820704441022820124261013130645989655604988570922815099508895746917820626835694860105406225971603064726875440812048711038429330970600120112834205820079974123502250914971822226565644990830864527364444746112940501954731567701869685045977370637707589785040181123905150533321102491564730923788207842508740121885627214192980490475973914661822167163560563351663491037412561245165322852322636395381606644108241129979070069209405042207028613475949610915481211991071863218323024656706253689723951685470111777042386811683749130141591977321287072629374227485044714622976578759870395629512539066704848390737248593581617373622330534300522843858519355769452961398102446966238925771331523011170311660048203245511710083907833878631160058677857842518782141072852124470997063999698478084212341632074152595410611105986909683198587165304917954785448662665998133075449111278770821591445315548956807115768147859452714825579738630924670683249038935669679227262721327877934407807621556949182678585635006399748805819431220649638679252577513199049715675809391776852319932329228852631620690318371698625469547385167854783620680029109942522638334280786785703201729972478948340025260193524122989640654368633799055875755801816294444884791674682803004233757311865041304596087373026163714689935345995265122496349004052409233749865526914969776632376795370674468413018631073627922303751522658123202335428122037583015779234065902268149602121507394980272213258502854040137774271327414336851794241223261456551343189465997586176197239876179210725004313507598581337281083918049449441150276649419661129259104632707050256950877340255156533566430596530342004304698367313245658466362119052419879023812945612272010736027353996083998638463061782164677508123194855025848238158649770080596694906922482296135944646142874351110927387206709233758000318920855047563453849182002925149064417169938820928038446114905230501916715344129373942265923331296419054510354681793133982296608111562985277814902710066679639254134441806581324172077017750819537339793517272054768206826417199770374779116162589711116589435921281431734896578314666974015533097155383672686641600676171279303161519908564606118712346018417746140509584959031939558146300868287017384158831253754195269342509479884535727270895254493152630898393360394879251390872788788575563474221884780790068133612235435158482879760702981371125147980144482091854348639251636136941473197922621101949638228510468733029923797371549026866704744520757939171678865342276366894314781047175512157397224558565943138556640291559777464664043184598723453334182214709691460840025020916471171676414339451419165626492283195874930576646686183053379723675783376281059396747243428990339502482180029470518492782390602173360967467954392703758057120898272105449167101357226431794719494397511515911037636586040175028338110428616070765462410144573408314337023917590255668105247665323080593205747082658035087671779152202515408963447616927030712405923572624078682510157748557452116901167247267054392621271530748816224138904977548780550644326563603244387387678954275023749393617530591344101861316906531778477992341525421044525633325467534648079606351041774460666315573542712107360773674305193706045442622997205316353099022794903670575029141840708343482457165381160057314979743920146927159734297120945132138443402084894873396822829681693048439929267305978195427295392878833892152371279016929299110345233457224384713602900269553926138150693279682957073430511341457164834368467928978132610608064551473978659582553391898535629045175725528727519682188124079968117510431271845770549915342266629986510095780693460357513679883996289575318114441112432743896324052475368149832612823829734408468654534254658322261469850385977336861461744760205074300347662939710829988205665255572746560384329683030626078920339774578026483418032372232660247257615085703546321946140615904916657908408320828556278664728464167287091655528507998327610917028115708655211376617045279607057658602785422231409149638651014650252301745095578463907426401971053052184381899660612249683655456553808222134358523430717177557435013852185665576056144433475974749671493379449002024010422353361775963329038229681800348540531742055553965232753218247477016573831530204167214067810880736638535726747781278121104779563477779750521457940184534701920881354490177845488875116868599253357827482707562102358738463148618557824635584499015716699252583715751323876752273885310566719303503245133901872609346844051080508855893856363562937288960951366334796923309696096856080747667678293653188166122249023094585666507170143993760174677093647189525111968043114470578278086886323263988252832978630341782589812727567787355396400402201578965726828617405008871045984537271481715878102863072287293560117888627414819908815068543878021488992963614544749973549925193162635621690459208580121798181838048432684478316308845569513065758383685333370907582907937970784597507355017397075398865785813959462848574916597581824540829214753509250218082504288542844836523759717560936591051453937705132157720238177519941757148605809289256672387706502107782042237179770939634504859591376838330885222282869998306118765089829737321636854790397040745597331535152332504735115965248361576881768473452363196784836223475313547940860402022127813138965002666106897563161502160388318831100380315719641026041704906844953660255030794054343014198508924469183531140368192461472716220814676707829458701255556176196867760974286549191512611475710221485583644366868605485258029038639095532640382264929850729075021989842813024768012301672243242389708250408513353462052826397747572990275179256630393592447817672077857645992882021332718842761990277599583189982395498040990764983442755988137897819209604196704659348908612671367809341669668159277429396530885991461619932798598047860680396093170582660295880702629226817579308985626537123973486817201605757714115704763774112203193651516703083202235812625139176735845585035879340522536271683391029645203725735620665117736464282164362569943712561655883744524458843035601408819303159767183898244096955105719506798757375195720841099223588534353199546559266384262587359064842257885999582493094855425971418720059248625494990533121844022916919458433473414438809653108223443735750459739244365123258548524618917484898678681915629830429419582381497413692125705560945852557134726198626702783675023178315599080825224148914411248711755790865530985299095048269282256609742348275729004611708338345740849650989913781734964866950449115621010155354112278936211560950168521104287594633507785065685175862008408628049780698298897070305602854667725810399390381557155506958030500230960306489369927076160267936706561547851955644680470224129776886178601388648673717949802782681647334378853157284118687407452577420448378635070605163671667083781827521375087186869575459368605769364955813802208774395418733821633531621341876491873911824711434571744576999091412504211790086015028538247992540109565353145266756585661283579902474770523584932321940866169551770161717707825087300286030427731273829563459108429529121597777472852459189807262362527208792372819795749441293736858701113340980819949293638403295633115335610766616379900079201104319783238493584238683256430369587118419444964996994826255244566300000187304005921761882939851382583396593760633291566498291598455326379640023212664973268860923471918733648497324740168830589627794003396348816092247964424197532509330448201807674380353215893357856623697185065283506415248846444975782149545628094273498035575576818434645325178199284109667166798517161197439840820426318149579257521380182888678500393000045302305940977969611793707389753116218188061526269902986677432493713437895100876120771013730103883226914072271498184968443343877136437016818500325279832940684431194879657902258241950079322082361414046301237167778126673467132900059112406419312962694443326504361423221021005575612773985217028190128464474257972131360130074563158456716759590414555948992007188473745615573954944753329557774558697352769911777267299743749502344410106439216830142445209341715225593961354050404566039854131978665473893067413733783603248610266854604514403165720595726234793655574935901454888693827192990719363868369795903972617016979918035944056192504220794944399881716431007525769579848490623979459149314551027536572223860423272304705933030379460650621865343594150911641951552287580737415099406021575396427467747268953504773806360284722778546838457195763285173916329273512028684927312408647223854007883398201129788621490758117984532601488057926628967092988933320094411709455418404824713093542190212469267758016207950144050349675313813859299324230288522269360280771982078373371107306680015781344828245084785752192078662682867132695437163002971173743220579526207314712837649397580908814150481296940761712602378375146233926174331797602197507277826062820633301787675131295116719261614451245127924371039779672507690291593346967975132904318899130033085444860536235332859679395712571879575112424321928348258657440331549746758583248969155190732662351594336270760259840262397487558701189053230968715491280691190854335279152055035963304344420720202954816185865818683343993236857520834690293967196710883477313518208805746487767745402820133805093046036191581468144102322911247183358644081782442532330786862302007433521241461035377443837588968062865758528066544915040450493275392657493215920171745065385027365623290787673627541953985186968985791964603407132916920318695886186796396075353160342150302215670974384228536572950417801306249755657050289566625802116862076910113921393141447351258307865117839794246224070693907149572747512890430451187926954889689785123131055991797324951331330253744651573708464050919851725545460601449997020942588823540450774837574176728912646550840985862355709466226943866060268435357489387263264974063706237484403392771988903002412780555154798384145950039496313665397041820900428151343371882726824294448133888743977433231798508445359737642622544111894405944523500393645996288918005907806302646535030217710321214467330426581127964994847275913314055289303443864618086259115503105033719862201360585567270001746065452937380390444995620334934213699501877764634119048254155282640571077506822610284117988142509818616953071285980156599491937147777637797164482357525025323771245354670341979190384874865659767838889682340896284527786328679431401144052080344694029516918891355345828910496748048456488794382838475102877421044515656513579132644500604014204681691940510625234783268571193873328186306777615810594310248689651164960079451036908537391057540915029553011270278545642541432578422775810031584179312468115655776703710881430415399096368857534694199869426020878859331086418242384958367250677335768993020159018307389504572191743501135002897864955365441732343224301015728453377273697993083147776193985669907561335436440063807421253346375693234063848592198466454854847697719991850482927516913573373649158399018846965039579430099460402029884852420888572271863363200973466782391998099414509759264417357047733679295462986357430207088721833647087564841269665873642843037210286824639654592961777064928812552711836069827074244654546823130834004358707960819112139331233674172668722292157657957043953824424399492905708676415834739409289704437621239279804781058798310484269639071773737206239168475886493187914824154771457737719471537243573752898062633302759017871280529919092440795693638971851949077447679579789295052856934682490154211736728321694557744295632472159197553014478316816497049697474240383289533284126078427452319535709924785249010669202242945809021389960447983220552664837345215803703502332230497962179955645810525075369241509962128536415445927649351100702910659539341439098325071852638775071266526527083116117108756530449628971406366870434099764163746440911743488434121068671052980075584883767097938339863579598213783903823884875141816775347981601078076007538495456878032459979466151611333752968069387799643055164950685105649919355965496678449439818663424476699262610817653610464892127924272215780544280109871502218567385770053126159250696933091051201160697802004225845542901759463911228622609780260503067622836902083323498600592103266897643385993673605154110238592160908310102479817458400958671756627762253746192823450068636337993283064796955128151383121070802957928270784646286671936780498528041344720530730338330201968167524812094875950319678203976987895925361377994865837972403760465388702670393289447862159574063459086382789419598281309546172371463713195676821211047118021432579483523132689255801589985562745525868100587406107633433891042191783074139501425530152311649560254905424791303371359672880886944501406711819342097744249971476331534965130836204476574789913212744903217593016267812542868897558660192794263297032971336371167827079328522166515021293938696045923660103136742725080495565683399650644360335850027206519708190061862181337315796331461133167182545325526715496902952008535926897985377526537813174405318974958933992286373105087044641446709151826754243630955573551277813485342972314571709039018905670660159185518987790678226318700493689803169805130499441382264028286394324987870226296164802328759456314494259022561743876417085503383744082117607297494924597847833670456415966992618791091154480765623857533151094019115905645223172131438959956270922832124319941987208046830144592278548086616366125584014182156802367986021489162687946252723628475310230871569756889868058662496663693497885523440911469651620922857507474152142648428256164935347355570131210066679720502877484048154512969536798674675434020886297722269888889981239715583098143005085490242830558648610235184617640937376087188526915007109433907581780439908577629440051023274042482462688168013308654611243566202153979825814483432280131123759971273256431891526034814391400306229392192682154329823504905294510173612569633570075963622736951758631609750574568677462172377687034016343232401436937787166584777791169473002749044580334546155732866414036128062694457915522617811743189524926585372638102341694023071765397668849814225146168904185860870401560750594075499238809850242024956696093578469386232690956410945334525928442537777419609812168174362256962601360918489808535201640103504887113089760248474215114757790313772407910918750104032246995455341004914387605257141594462853952127210536271189251975957289489928129722688528443732013173226605722217599497875710479880542918660414461463589644028352632645914791686517996639209725598256159864756506733606611336917482208540802393669851640593720638409973461363570198772722462246922164601082104008405524141544409668726036244306688127878826698043758591287676062708523396659644492023376806709488227249849815118729870287832990406140603102161990360683832315615518158763535468320422583808411715093542397100531392187547647221037803082304183141788586151151941619993665719445677674963601783657026261090989630845395422714438202352508106633746586328642888383698613475915118745902996132004685226860520046077562933600648886896597972028619053434903636549802666126661581222879276436678125794082412729514149313361085546839954818348401938973533846244855759018007944824558171898834153112886727571553303636134612568739283646714667944950874920279657128060964201173891332952533239780125524091623904871802934279189520867057924124041670140364152027424445042487673267671634865885115440498071862018956496064335855325770246111334667920889812221175168332565603232655004673464830108483150438637935783371943886983618437195214783435825548266049134958718276698066458380455163475216334780770509901369535378739219440253144424708048042876854964187038038635352601180824690506397385663026749141851878617935614573158951356745581488811176857271719433196405042634274055979167670668412863638262900609902042761232706681535653962048153128482315552187611552020995640469679322758934225036015626153162313447249857065414388437529415929259652166025092034922394343010599818546588566851446148642834829647650344742269737062648140113756604918717633458017715074906188565826656917420350527356641677022392699070320056326764393565820857559246188422962722684742091701109147785513373435146293336067259417651964102487116983756067359665374594731918629940689378501883749597667724056962639781322492499301504523835575851196781447201157058494566869670383033106832576254364237305686019166827913003620068540326341581938645314553840830444953449232677084757219418775947074755579895013601942330220096297543819183897718856994454639178479437117429248459994203224809168262359807217962029991672866225818397412128896156335827123999704983411227077045500408905909616614676954287937491594764778006082055372215698555889661198970209509195561795070758632496045856327204691633260076357132025408894344652290162840522910306723115206290445488099924357102616222729077649783351257324106174837658682031954652299696666000790492072386801325186631444428805133505987170372667127668585655403574309746343656795461727158891040774262397945144429828256730934774979162677772902061725531193823770085847803425610616213314259621440399704151946587168676538800275322584263964759865919702123182126104515008038835884717012023120775371753603160534582791498238700773565554747818575733634445260994177128050892551078705837292329336453842478604456888202247462320119354477311329246577348272911630368883146219497617614376446536357530365461533156667020662538086465594586615651182277613578664628220674813460562533860919923444827194138724809172835398891251976672679115343271580095903545111097030441277710395970263781881437422197368853260317911510590154668938090104400496911652061439761100342973316880312970700268152736949043347670691391961240648681123783074778885209815552682086238500961228797800905729352570805093508152885625801312786039434623675998961091794985161002944003844131445292813612778113766550970197094384463423267022921966619314777553212543524898873571064093826952292377427198353010053932828411023315464562695708238275526713464200294390739726962130476966858643044756426183741529413189199414955461677663232160900600694112937414688860177840641521328929303479715754383504318895260144565937846596143966433495696406839243133273152527691129728777475398131275387711085071331688554781810435055578203553777398683699876578367189519469207242532826038747628115138713942975251132731226646244738271309001917345050879945406843294036854584200337896170138988706906590839047441643882583163317241360636432030688719752878429463787252569313559589161702610860549843991903529301305295557390891134265708053735252409783577472845454472586269779566904252762338625653040922061889549744660955282843022047969992923403499070605375971961637658591294959810363347003489255173566613382335264752750537056629744409972613870020050436250356519810712201980231484686573382851999215534111923282937627893772281213770666309001534807538478162354615973621382392281225062137486682520533244988804562514036064700877485435458448922081467658187657610519477254786610053527157048580198847021526739092025297293608553362734783525238893343708220445894010561686340595755531053910747041771211208991554513798727214576363662853340401171164499017905881656091220638936911132806728222297078265562078556747259016901097512484442123877835152931888924571308924447417821080956530644084228894398109789456828562243242751204660549647399414027294391905793518575684041225219647160619777227358717248956271474586856366723779101112401468834258084634817502264654099946160125091046739596142119919335641212747340768316237591306436795471277761766279410855388820805973373272392423549242294202707235068621405524503621140008852413489408803629535876687502178521324668113310163708814406829691255741435901444244759822747282473983777685460683016981720216428480199509081323439230385992713882025024924429690766998163703404852992370836532412598143596800500631618799404239643809666461112480894356264491581206517616876602790742715772559142267945738282028407928333357643841595732510292899333132718717777283491532348598157708818195310976739086502656860527415110120718679567948427727183773113294029287265378051038829972170689841196876703445430484806227040980598794115396786454642299199653540657922231311712484442230761825970477023397933689179412221674558408052480260744665959242337137102093395023575535849277556554868130116284595030480816840209756395329451044520013614629187472077497533114238326928843366219992821435230425989419559992114614948109848782809969208108949011900069080583690901230807797643416943846886212280764857040888439386538359043050463894407764192917441943289888242852038836200008258548107040071365582430112701541598454873737807128481478731481438292825870662627693999290610441398490034383218594952508435690713276092684954828915324248697912756845789403257525285106275218237022430525315597551955652477292043306946061034589027675079976046577541795156633805580554095612433430235890613676945785597924247946319179386153140572860513653484937636080366941743124604819808464382146656492704254348894983130483654904352698535709327843029926833570358039367366270629649681849064057292019370506182902794820744048786793961755645601688243657408246495872344274965743711677465503700203365087776936490505459900257028486491439283114418764618265774362653377038405159333073176039427491070557058166144792078456635707933569027655372908767123588097647777592051516900074990432543494952693446776062971268019421068013498232276533828897043583298906366266524317058801424111427714607632121475389491979199161928765342255969707327333820701875865467917211489736249427159220795777764879584123467851807268176861700112235023998280958741117967200372748983111128377376778657242994902144322398852322370898604984480121204234936320508197196043320539410738366975017435006093418553754953903448619996499600110247779505622724170245193072180598035256310828550155085059366775523154785180211192216147372012582477607777801697626450696905568107833276422617056159354271369962345485381139894855987427674659117985467904481946999899723386085905502101797445767733824343612129589916408296059902812774915562692761923590741753530266156552158882070827021722064535657035852791892329498434672808242136765954817209804441032843212481070070348904137038836029611572665395204592390873102515944758766708146655384469996787403973967923981966911956198597122089364663651949704406229427903836495843302030359408623027188540854483050881223477056313075038645562969626887262916919505284930291785798023299792689623571745679161368473308523908058552043462990805881719086793381890927716174666938362634519949024758015272642084671142779376288677839325072812770339516658634094678918624407956965400621326006612524296247264549098669298425450281443439011059588465650364248059583035394367537382490967693912759163891813437081439933093972767523289836169206331674294230818060277872413760042707376246776302691258491659933005200316244781137535138786609254766821320382956615143688316028546416425276665978039530523500000259269804599296482606917981872033116012507095776682345071266620253981458559487749688356640429071738440259781495098154737656977552223515435382063553917268997650648775868419988626064416893239033482290966942098269765452486651455348486963667979407447394417663856190092287756677692220983047786593849219733409776824645936379636984724962955680854434243588032415842127859564252070582274128322366265436160670884899461276047065052963588214309604063001641877218007053007676807228925445048941447022617032652488070223885640032596555873269424476422499986454681487006594262310978558255115191128545410465204597076064340885030306631136028255268949578915635960319389369135080809634386638106794726308880010188239158949792477927612159911147699391145488713284167187551753384687169129388443064364132481227377092922577825289669607005802055471361732082642223381975289308092924218860546529464412365378122142272181613817013940041679241453909946514930570011224159531402389084455485692696380021426551334063138217633417858631431743190765858555743730970861920460682790459151432006479494085757378278840594450213678136824486508196732424265259987073007689831296866987024270898790663395358534039415591407812843431128175803000805625415802352475582057153129538043019832434764941259030145849963965072418434114519584994553765140760852025696492425479749270085638668446749029184872680170210875234899880199623073680914037457130079934749263855454475349326202483318154137902439981513798541052804022285534330307666537556980270294859539502031421224195202007063951321862542596029651859718251013216657872705238982351023484338916774189055967465317277311952514436318237917877748781341373485543876266156253857767093403957066363240518392627274561262409777213457440654028102335645747308418880300881443266095551531086892827860022662307958370439009228288842466855257799809772512709872860122117090755930216649038568395397355807220075666484589583137157030569441913997572164549901854076531191203538211841010470125781481283359970364923260761900746412007980695617354279503652967869832780324075701222999270853215329799303655499749058851618086219578137596465158261596894282639398229763392637188960150127837478227251499548201949554647546890954649285350613092168650953383122419557534339068758008599465475894585463405921199074418029542291002526040640447348750257709257018467213935573619663942951234391149740066652262915513360081294801478935571660659612333523900038358376256371001408211112438889966631010168333922835244992214824640071612814556736654665802883699718987724698191282625530015888177569133639480071774479248525572027627013090960337949986827289724213841894084813837277789922211951859308102991198916411824517275827207157922157289324239750975276428710225754690676140657877038893776508103768959654300095445517217809264023512391020716009939652344698350652686442748717050854287180605894146435454651609143001011662155055599532919731894577187019042740582560468163923638298661351900537952615954987643685785247964139936883903969128020444066012682789750965291508036150021580184659010386942031680321059310629140575890040146709860722763013196002925357971206523729823268998102722796590455581148381907481345051366498626122112514397685137215955930438193244717555316168313158636899545927943116855266457687109330262905869136213130734932363341853397673488993087572400085458077005210234328422204123601762575960111985025685162245080770580104031140349052741864907648845608775136522260957471085302176581493052189386154226666182764243109701907761385147527854921362729504439574672401851484365638694218141214097956299821161789399302108057152992898176969597321492206617676488692799324326809851292739267965755266101979862345119641962108468394666083011668936117426880030838451937203419112339764412058075437997877942103879070759707928725567694238183094261783391152756535902797036214887312583690795870872376100174431508598937491057621463647951402379354184957645842001916972633824916395544124156446555414860909410605185700440568371653465109614344594583736469270651884902733875278190023032909747208194225550849301830313032754545730149037047843175461197140575627007541609316841709667847453052786810311820031895948448185194496786832472783717013664769153601345800708422443291430688524596934262565820966402155872159366197739912455249099970180098169827510194346756720534371250714012862832389752501287322182206031407177861029688274315216879456387272123168811202018386290875034505987798177828177260004316123862331132674328805713476401135679565333222731649107343659162135382072605977082384313602634491686167298944870575252283595176829265072051877409377506184814119440166162393721067880688920472730027768172963863018161530814773041720360582549058146234057969781153309247001287424363172514051816458678430249488161702529045735186280808048239505241851928092320506819536894759151771339762058409531856440327024769594027801130122808685401437532589079237744126294828974448553057384713125003115960400838789980770047594665181381804763482562025782084604219540193498210928683150647828822630889625980982937575223322160560588317068250648230312399705115924837708372946061401358588748882826452246161178464913084033570912847611213491304080626550476496273602782689549346746972289180037681927369156058856797710970908100412087106302280244653624589123984245073023062265677029899922873122950958596747924821669393621424863055084155655011340970051932003093156582683858704068515498748026513204087190372435560879374014600068491952525101068196416088533615119487203592710961401248912157992183572250578330048888911192318708849706239769823234610212168143040902973873843299724216574899611409004202296567902729125801750707441661642501999286948666434802629909648146429336025931026732250093231135340755922852494621593343658942215192931824061759332917544046936069826872038066629093566826188606715038904730043916739693207024577359180488429349991381618670348513521221448421777779336351999188852395570142903083325711356247207366306509320277296395504864801992648515803062150937264717825590717691804128704504222328773863733981903089793061851848757213703040851019419310698495411267215813956850839798091584555723401872223084370207557108125141181346539510473643438163029143667860010206938780516384765025619431044239847984859141902605130227952768802908489150163023885994459766334050890579954675529578752895391867074617779558863776783726633918094977073854172616837260424408905030143760321912490173131118196847554752813465528916598146857169578024396338599694895901532874674953735210812788463557291162538987179723635912771625382506243453949680589926640956791736507214888790476568773983608056712944481185022626983844107195875157137043003488523828585709742545341589086320880962687728952628291557424474255169062752115315572435632704567089533868195041990574339603506679301861376106458640461174617992369827622187304393116344022201243182129415553739854673622536313156085116743663856028081605520377971313828833962224572368067465889843066122036669434070372571431345893606952908665931164785730574311282145611989172754759308600748995364152735013717770363308542515397884650501417140060848539287112911162566279002764086767224471518744744629621055657499615745629628225955014857387733919563605172766305880727104973515458498751305772793908678264573572864758940308001603121218365117419041905237796457704810280292370432398601845442762123806911983007145904438928529140617919609002045562674825237879183971719145841066059484173164111859535503999592963027589028589308156538947263817506804056461027265278217034911791157163985885715387822425455534816617489111410058459674474477016218824770728870198249150766453064202091698697359210417611556162076333915310659515941598698254917225552094882802832524403859694241873128548087861682726754102304983280118766740932526176249266891800387008239847965185792004867818521098227246298223965421557818928201263340060571654502041956259160483404861196656311077965145359591058534839237287232827568735868352146981173861998106726811908233635636050011469294226377917349900964687841810032840357619756011442808825446160032750677451019870466827100222664450462796284240711545131231356942711098863795775668996399868857639537365261093910829582593024343149748665263468599833885880414577568285534295006557774263055823593389317032009455373409629500425382539648031205815952037609184725885188837580909225510087236591841057597100069086154139741382649986189901298701360537640412394843897443501205938698468715666603742187717395379998218213920662142300848577422504848095934414935390061266921763066301278574069096180796362339569638747923054607886891393526140798050749053801132291442108087329572905953120530665136222760546975426239885908796674928947444471055490144819985904111377982704865727556754817092157061377240747268697428052787324443030192547943272292754299518816795978918134454448605313231944044112815718660305000597197784386504562877113788765690644216081919918303648997366641745828191336826553144787361767904094329346344042766476869123664979468717665828623150645769455522106777556187843615078053054367110809809574301596956383181316636834184021995382816513615684404053182492257411609066254978279549377946434070042071928382574466561899812501794154067997672387554992098636075498803666082179890018189548762056902533620250517926861845288971308905310929627327085701839299806072194430671591832862357783490272770661388973370633619670018689517997092785538267827118758027673203004557374926586334700185250919918254269116503052423488102590198536926425768345897777356322782670954450623230765706274601752599485417650479176417841306184281570812424774702958794077220517740011737971416137080929995980711844166073117807816459442136223321186128051748472645852149370266389463214297242299023750474885000060019854989460501816179011027887320090405247160564105639554741870056207797197829117832650744316624790929794118013506024198601938583387616451985570283023674171578396759666679659453841372834610633259186786566810053218401084403678537788646531693728706154689435798048799637905541440119102992297064201757600445868194418706122898211417189474126981996058622281101255559538570945497604396347203733991328744451550369540926056307144754712101387251932168939258194098365267759322373853767363402651704710479137758608188531581376718900297794652081978126475705025509492078636294644578342488752537421719347205690041890249643188269087502850711858575969966459177186115051069852648564096970020385758689857378368288112215850633862311218460797837729754782989240753962179554172903605670255581488530352098453914213287178552614464201339390861302689959472891787239656202378746691633346698969805388284166443649096068902327352599471231891836546120176479818134966671251486163184399342077258082471935575738172045328579774258582502320720358621917093786910645684799210378074249358272981356946089993907255900569834943462255209595829898562040537624002137271052718685860482994782335751669184329637581145738960047883916911037259026142405148675247602962058271625148622018249605430815243563383796399224304703120476905656119694953579922305333474427694911254058595331896980121621079952180986796121868847185825768715700214062572726911210853840527371096343394781557652538367120418872540738091820731046768580976062596319923243509479754655575945392204588564422178288713020532363897602318853617555680897403802510590414179453841216789388162202402335755236261583214951036397443420717138161065075147911366409599044008676362757030898402178260059810633261323753346400346888190862994966591516077640631470224038824355579436051244518038053891638122987642334026012712871082119306554797031856105800250354047826820558089669970982626630770797269825517244508209744491716723675176237808485431027223233204048409540778881915355050960479196790432718205972716346490517188474863138823317663473398510406705186090811914188543476199253593775576641993253778543373838548525104447074927477274958908365399517129884255407745133668699597744213979539022356325626402659038545912096503965428699723177684467828214763081485903175735141726012548126720522565370695568434724760348027301499676128709912246585774012732227937159336594375152768080977556075303171698520365931171586732319306618355798740020517103978252900997828702796405045796270689986995355712091901220895625370479096154567264129317555926993025840627766172852305184331039187323202517101513056302877203080011553142463964071234062812788006836563978228137001009832740648921420376526628297516756820359423944424456261915761843948875555570786498987463809310450318653497685780497363244596289385146655957470346191764837426278249718292712432041836974103905239213965026650474495887541368763111202275034765328918012422492614754514267459826908621330552924818335355007201266057787488221498538506495004291554740464023480845533491227282631491216961248142664402144518659747718296974412026342260742345268815284507867903229440477175534376076664288031502694969213268640241928106014237858299331025033328317043425285874414745708916862570306224353026959909480274607741402207823737435608626341298643416188454188936999671366699166235819226277666223183122017199627600327831446913645362734800241128546672954140976477208764414943136671190254174805625372971879151519944031437154170016817642276654037747783111575625829702915165642075312587076365418123055244621794732671926075327649874634750387267774431748982635917741520597774753811191342509276511956507905945358252828890215905697230967657833099943669044051241911194646076942239898966382341403212672963412361881196810878680958007705630951623577039760165335914895841227394086494720616577181167281336227139715159513898330033582014494157779877180996146416813415712257627672964044457472300350707579837766924095094851833866804832906780016705302303150003654245293544432984686061695066260076007614382004602881314632711837654035925826081157286590877115390494137686635798899967200489556400605311566434284218702376609482199408949651742582962106802171579101202576110792195285004878555197119518201923021039305363756846189511044649775624039538184811368806830652436403661386422665543486887064249944700468138867511549067430009843400553344887617825773803961235397274294792821293131626803325342574491893577213627962700458217738205530749828842422474625627031541228729876135779722517530456873228511119010936389020241922740984777197003865449935472513064555371604815498950987490929372093539166433065933471274716813897394840410759669331323438921300732225354279072897155003972154513009350448667818712253960753230781323173415480981632851477810147994928204382245688070053548788899443883679800734020783347198640319046082193174359044690516381801922867587734782159898353577124137357583145618448818994760311088456585503005788647701513132044350137505411312583902253783501252011121286156242038962333006388137310279003160861854495579281792096538718276040856392393122860088467773439443350144036135362646839416168709662600766402002228792990410317520975618393812903592126517111481077601533361491349213762124475268650553905253266480573616265834722760145004173845417481265886102842422678264671723428913930606746975323741215987307460619517274342338903578475847283931454199490546563010623612370179914930809866895999960241067923687883384427491224971522480618939810032812487870835462167187030099192075448479392438002157326212425503256601949307085982871095146342730792304003759556625528285371077098305421597722402275371666826416933363486424079887387205939364430591310942797227464928849607735429475770763961298866554401660712840228845958640989883620626214513783079681474944142863361059595906439651689242002798220109139785477524589402413688734353531355707332291970646301935316192456692104560615943952520500449234890967938854203688285492033307537357347953158000208880541928048661450578600460791440744419264692539341970356351782044866088050938919774657662853396880956199536048472049049020541349457353825110780820378011318998907557229060580818845379719828467874813240671025955949671836344597893840364529958585579866662702521773813286826611642727125437055242150222423934932237229798542705573366607611845498856285641014887978619243196316409023580557551176727466577733914116379280382283794785470310848212600092654079266003287776851289071053599319932088640143094685547793948925234959962438732300672200070238423130323279947210649335848182997961821781980816817214544335442315112545254659687119021673724325046192759978308690826222053171842565546335252029103994127705414851555977692162513226291203157869864754455343566230112109708618548214007000407112472575884435146146449482576663764168676674041901469859456182580393537401072593159127260929357809917824748368267342590620502210452615408914599839440933125853823654527030115748569844011152075098762032000324965295560589666280372568750229530904736633586999812962050327898653591869024525317080054500865027990448780383822540311313472251696970914636319748326627490098640140491485926563015361204548590240242514590218330320794720278794422308341580441151165188327328971020903410465010323139091395936458880075527295197205893664516416377266992764072736462279636337856575090195360504259900983527303297674964012576633327163090135757697980462692426529044258196880816711674470474586080658635883426156816952407447733824208128097063634213171743643780564473341584466540833262968196026201508580631007716487409442802667708918948532728970466873200277671184990383740740897288321821772456549207653323361033516136846707960280857376303266389648537553640151827587424468236112406483261901674025988037575125582669403888402821844900773684244802323884249346585422897235189743667972832592526880214570394011650344557430624950746561869337644857513194821356948653796451815863662560686862336195216338686575991132984133193300835417548964751617058644927502162629978002111194867351041958140310377400181415253549525375408973184566657186326373268211041780649128133829919226300062131811345770963135972295623772342220084941994016698474983186264544075564346135043014380845029802175056360954331831085729705224274830023641226126071851326006988654300882342564401982763695593647032466567500560811758668732283920661415416656529636728664326725740980412274919425409916519749472319866434665173207540157686805068201718306516085365987503545445253953191855281061865624490374892703016604975372353703939718945265827939309684464101894954783404578169442183488024370262439223076436749179334124970288866220712874698166540754546302816725518907546621031596713972331484576662910674125416473856158281203673063080813087961582339440249161284521150887792973351104986822048355831603275366296311377018071364331400742404438152749811472855372833950700721907407197142460426696710438029301778489569020495467013520361633873563824882142448274195989080071290376790028443280075951949100420112107753026907915332253856090941616944393010346745930842931083876222344811008988864676054157731858958102044191448729763976757669118530318580725605336754366289461444589708554789931776487989216281052470285314139713314597035450927070309228210500475691994995375121628561092300383050299563054976729391196116571299821956876550085078970516688916808231792797625020250938738906350967861477974542155050765499263131517217933549070121426632531386433129459409760845606106560584395304979168428311721653348081712764674276619721373627775933647915638429828528766031983114859257902139994443571755612610918583467885582818911363201355432064288504527287278766082560336055839868266446044968990591519617888111404456472266151724237152491892796197517122013868987899003201490870532658258181400936474687417089531562587292380933479772595387680057294885967633948831757619600141161469085625375719291878851380700334230746984510898574807796210326575275096452032331209351757225442379359253012655932376608576452955563254332150363792419601783075450618543028347598734148058562256177407736125136854122127885285145056693695763174000519439888297516958572019042000688236670587374510512832850348871838818996735747873918806861805508961485894012075748075509360512832746765916143908921938311653231720471330275455186700364329568178271945530170979044729774458177545001291918549227697433602181086116993164448121929157166089652870424046073660345559583954060082571166438332395208462367855821873192074635710662387676132151647659250875694296313377003965239330533727665445019985016603324380079229099526421976183448645176934966907274075322071459438517465679516382703770558672007000552666207746724488997130425395570515168305416860579073448685397563228907212030786455759553550983305785275054980662050139525335599848669915765402279186871192371284702814467573381242757152783111716141762419631860276648341107630479217648458855485244321684307751805235783656139954461731922286118473213621846952725118687317613501353697457192942336938707080967363111768072350901300866564865916095067255304530446038776611623463128848164691311801446008871461095934857396942997705581951991066365528590324063012534393520973215346415029104263640880693884713312306783222511328360594124432751840072412772992773921138553035766775360903021981579991130192625681368488215600169676700161312617896265666975900760887770040250013130182468394217106458991833334302601303965997092086459524569591806149642592154421877718057071057244674976322898573657294797477870450989704852998541661907450422073813942613420172966376417364972344650303316836564932747990950700036300338193029594541546186141263177409834481826315729188059735560068875493368074367319874922700824264225891902163951839415736834013995998615803559727368360975713886140506691742910710140493037757821570372250199366813038204957739413356207062372467603840313876422314888630615232334462738581781362209545341778446497549730424021228222562075543252063696142442933611631487082565914623215512790286300718171139879676827517152039952667054855477851755317894541597017043916165553453419183227201988231069614403371270888413325133120712234257024098502861978392129634533490668830078413594344546689689955760829759565107272534654684349249201408858617513076763735857100105125642489390549842016765570624611353429031245998661732538553729349278549508464174409510587978233403480907805769915760181592502969225970725776719036490064091695955911753133897920214471459377247418850149600113706380218882513569963735851808865501798471797737129213988506554720384123659579821885632653799302489183209691573384390349826586554391007430145459060104549002437284145049491425492623274462558562983409814763343974625298553165532014666678741381179316026673337287608221311558151228984997059508590357964865445412666910141990505954584092515924549393563444395630337669459081048037270753901667669028994763607571709947018569264437723172970673875133899089935716509596636826558972239454992757191269307970145271669793264493053818563523710634558247627173448612392295725339496696369152613308675652992553866486853626328206032963304193951673709476354168442384912940046047063804293201562275015790009078104501023516325634312083851940292444529679284794336470571365923469138931221721450337087700014598451118417168498331573696527923042942606501210330489362959938928384895455028915359212077534056787667242656541349414325708156794686544726509469657009692230379578646923672887428735041465740380106308156054848612326335715033775598353878950641878308802911331751417020290227028576854124428084896555509954494555488461151727787767403830394336043202793651737954129789604002067722680765459763964205169655335425957983826766636926728448626330136669509364228157058851786843153012102425533512688845704326808003052731369785105304925076932189961178715049105357212503003120583728833532434688055575086538485415489108406220913388693283256973761597585861453961245405356679082857758356331180101022991602392715024536093945164131273139828856536853054516038311466583687661562573145107634651048693177489092748814408210171170071116185039550833067816971919356125382573927633998411660569350068052321311293188796808056302424765770257605372651405051110668800825750828407472420960133895677914282005929642522141548558228239903240273353987813334079962368897395591430687605610029044997480664202314829236937544215401083465138332266783884264467357477774791709366918780946083064121835715483750314410069819694689232786752844064282056526362994560480808239628611457691459220538675058875301720361875702350103836442126415422842988295976868809284207623688297008520458944232519038647305010993205431991466252849145837642258854656344288176548011561657539642154625882812376814250157862829953313546023643948101601093973083998895601545526702478170472554553469141172008434337871889686789823085185812874935214742920727268681422254335837147335652004624718810233166932149027806126865818297068301001363849194176080114369548589070912890021834756295882727922964878471545230590973618873394912306429662208943423728287756529637655287682871431038698398262769623383162626894410049358990265793827520700496908184273809931822425779377071769234181697144237787775000557239500015326053929327870064914390014721679550473485239368133771221977245174111623065310337008291544355219537085550975904359159668227077151628464553436367593196902847349347935746117824870760689272288029618866867166978408084795314158257115070355285826343343256425663712954066230689469414656673383424443059123273536337466796800131042025608066883251951349365247234368588460471660540153228974185236438898224883108029196541513627273295739885448622316929231333375487681625256764940688470668570454235352002987666599906871404086330416091116565063509528238621205331702224292439705190046594140672366338870172217703447037990918238623598042227409130351903959279781812749300710454392501053364740881505531341984862261280556916346524708319625360865494854029734176889339277097386709431352067174851688926534521059155495117296519807941864179362492277116894240348271330626853352326529439666395608250221311249232991011807805154983323177095098087116781575519705269992293546787233212550728143826137316239020723926195464717602453806865593004488384316751146650871534095058476025898297141513000357767363659518794057747465632411455112636046555853297541232328737597480337968669018565136724735740513987612849847467847672176680259803143290868812758832284753353243654301333086942154323948540400078309936014048787565170547398603808359495812745877975424278760041123375262999979659983329898665003608073711406392290436665085443963692944978016248052441724201953456537395427398468819277450089491107279319336916190905471872364435282481321731862781689489167978572125167560233710185127992597780277221233031844687610256558251388467590267149878917834284882552255398731698993079876876169810009844196077399732003292219063719739262350162965952239642036840578292089907000799450139829897208266564222710500216467805919473793220277183931253523479877047427417206103181643763959682736481384737665166502181409670583562739451491947482798152750349230405615988737158043986612561854570131104439953511101035431646892605199668752415932130183131305387928079307781798292210057918084576223001219572521849414643468599541335883435296999239450447056433944810437765808471547710278639664537278700279989646499710581906485314317354045156890093250335136191546801103255502079073580408980264482067222307203110497314826605203655540346835722274178592992791544280040836921529254512856705071536173664412431600375873279192356768564779085428482771514152309022447412134790751069488909596146485108777616569641869645508462070974028822871861121398516697317711875443254364675961654256767735445764334688369734231984075593851151521610468340534310348726653832206851355398781087279927595916716035512956409942551530343945637107460309061466131335479479852191315161261758070411408058157795753751131726474246939043803191056381617199408247160845882217983353253610257090395407622249063644443815137336080407176120466919756060342793812363800104443956391482433562623627057357788780790743728070029155746370817642339387260155381005200275845635969811834041169615477754383422419341086216583396878212590639340268222370260750460147085804276779395659283892502285277160413073539690318837581539799966500991112973255286253461837911350157615101497116154178894961707427842801638041234897668212225541526605575303144745951614368749147737070570973559985784934710248999141663455964319672135313918223340428347195659373496833726734308331242766108832407081346149991249659691142343382330742791615442571278277199116598375545345583008899322575273133396596740112018314636419430873756521399833075772849975331029638671505401166926990063887731883635291124381182883549596340301012158526599969865815771037882096251587687286047699913756352033220664351840338407770811612104901908537205158619314363194102731355596371019217713443241341751512735590567150018657325850808628784989505522412395085803460930233143986586442413237259808194946484458392344481548726523564308759622559384193083399104460533676933558445005475760837186105719649404391484618658976580295015046159677145854245844995916346718389671784490871521322503653464226938750569844343961344017497951703178135054245646202216362991223024161161757469212986445815440362356011683530433831381887641399251409152197508013736073210411595965383131447622949900350923335559611963426210721911454124883388613333905315806244663672340342333539550371347012141584782350986194994600017877979479507872921219028957142919002649591527080551158733122247988913059776411685148634083068542166532506105381926497451465704018999250234183325043504783306029245267841693538724109601138547738367105390362541610253645266347063809956671000946138462409836692624860230791790460647402654169597314302967884489992592529817244603831295813217507964172453133348624271175586434814314287516067167706104317382481376595141401081301186419936669911120211147330223713212768206575533622142831684036099386708387655926407481053505427236276955881995952536763339005081971067952247894383062812812538237839627910218059276007439470568456630919287846071713925222180696379690306742159065812253096554203655603616046755169760969381277927517158502920428858261742912648546743725813545281387212683927226010896012824066369511395570563009113804367920382119507760970332699522970296711036306200031010035751536228878050583023313326460632041585244977364589574368654394803660870792248145090861839417073473374024794044769072699500349285781329089553761045709423862830173003238768465693543515760384477131420787792637819401737617436708476772825046736535403406628903589300716609720498180710762852083634706863406400704842033709617232691421428882476310813317608793865972737636784915481994277807456892224726524469596113725970808100541786095993075646826936737787043544932883910078261072106782083227415568843949153672783504309099552666832725926145512028303642375609187122713609651774464260918930243934793733349234053126961278157552902674621736950651051724085292837991985317347273014664445544180024381583051544269739207143181011344594384851144021609058814055205125084500872266892333225930717803316066342928264859357244294499660915210424784672033231710668591128009914668367334476497368379151238788351282602772785656680825315264951307324275060254751731342618364266575629387537620045976157463360069439109151721055069894387036974587581505709423880806149333180382382191530783859050732731038156924161178973172630354771387233647908993397327311139328611514945214366275126598476698982400241438795027707058601268633305723891160702415299608777200809178075158711250417203095945736416484146174546771368921035681405753502828068720161707626675152140826501313060518938625832960434404551734743187274826296230696900320817043447115868887040677435705031788524482050331732409791351076458050921700658154895545147058173118224219287427702456435142969847059424375534294522841422133259121215746990544866537927547159098840530811265593463469247643511561565696992764431859799762982677443847362086813997009155783649324541679080962031337207120346275779818920356569111104717913962373113122744186022388439481095568697724836586366735076560457328369817106524384735811808430821522839607296265292408333401315263292626316419342188059938067762043577203502553372019888000038950369028877277889347477463085639642941394730965780504074883568566741847959369935294634478384287671585290911583425990719511772130303166927157525855407065231293713448617736292746855600671196272378868507673456924796990959623960440833373604618476209063387377618093410295353857246422442361572111048741140656063104512197798770426847079452319827707388612027728273710180892001663686067246032381037367743386533676519353567645266315393950452459363528487185835435082029136187477009854509121426666003661506340882925813175148590311034776643680856566438300853920486785975280571776967709038682857455425890189329921789779743547071928995921635983070501133776258635251859572794633081472604070143997137716530897055064893874334874116840538438371278787960761849911390317860797619518416779725393037767171381274841731126133081600085186609411484143511344541774781555284481078299379887291679211364564638607773506808095457027771257450760057808424919596878226029453624564678524789818775903949126029680305013552682244699443497019078489325814752658349027101638311552100608698136735137687122467621366644204772010462350015031315410434698531302507788620654468011206515812756567300716160110364793029582359261129211760154787171649745636402474136795653743336662175259938895022224357327074612163474985741472072347366582392526509879432116875530256266907360151222236565810734147112642127944690876920663086816435667969222578004414465790161436518860353886254865662460136916616936565357055199903044557483901068463775229310115848516202898112044946597507947076367830624231764633632275782502394265863708456621878248159343604553369156715126798566268455277660670974969874387539216647706672029565133193456100488348361990436358930343472528020105558714860989566313546832816819179713965515801190920894965677852715421446187888472244564244719709977586214449999826212018307697822443477367999378657161070129584064726367713602932848979527080762966559445838561449852041681679798214403070674713973325140670514398176606262994090139478632943552127335207789573856432439808867723853754238728250920951396273390209436033377376310252196746389307440811120734962551565504565523953234143232532579506086356045131339793308157390640124359335654206671259049622108564961293235358714300357217837451341486601316615435769777467012874414115475728963401906939979620905119772047462064654459794396266231263916589544875047424219728155436677206281878426855064206823900798500398507674231666607791180345806655228117130832328660612829630799880938563583892033589859339015368608786999214319747596304652529218827974947206855722525612026073731217086437575185301751236095055724065081554645180406218252168518384562463517388919530035101887456841377282982811784487083575963842209873180969962795298444362656115127669970267411451590952589792334181261516271178210352992782073756300953649388165663782260726461275166425761408245797538577323965230079873341069751402886167759703010065875706872431537135616874837965611614046015132852865387416062780994053308828459095067324458375155676877460127490075906164465656488320053388155373795943827063934143748329268552911747099763436913651587902696451641753270360724092401384369430509376735264929042525269688179416702515383570880005012493101504197706454107873920715091480565093312054533966235700646549199533571830837351789525773117173890770671736084616503017332537578603625781119739438810609502890117069626419679743947414561755492503712941060208545327818318385395420150049272595638859073076207068436096541686880974340232600972706640190266921713986216159865138732655030742586902799018082299519509368214769105004060517073718829833393923811879622709824498374346638635280492202617407204632051859337392855255632690851714700275531990290148020500019985567248786461231172100109238178518558837806694799258531975089512425725848475258951410330484608959386103772918146309941730386222102707078233743881651570801497737000525264807134029644089551896413844242414291748836447801967602962123354119640776810989482593620344331453762263235267684709233510953902150641529075626778420695271920099665990449283305854666950436043716406936863602538696445667805264384333786123715340373104541364292796994584017735849406636097665103080816716260022029519536999935303325469048742673955068139363874547024375408852911279724020611806310420283805697321599465267841769121174914015903032497361459417700258060443294309855125809848849696685339407736031832313746486119840792865595275475406363315284457460897444255524458331144736902170337189159283534266756349088369341982939344898918986456683135227920154163729963123542113050897394934691290785258758858756960316503909930606633502264519344091744204412979253050765458107561916164896434716388978260550240208911795684642806145736286883014952353115639215145011688767037299013462000724980099167270352917081789833216553847709844613802130851740447780460599565868917389514631797196852014660453321676869185080961531898535323436556167151733628858917058026859059669556031903074431602019084326109477704652806392092333010124754497314018591509701509059057743265014495037424712615279600182916597354095587510913582978867048915587271444467808992037373748072067099680399236953173652795748386721060383269289230817419720540689539807281101094940094435529701443804113899418786174682806110132758683778074800557084111914940495940970601189640426341108672856908711942023235802320583788091233225387771274778695344132211277434156224596948226983632833605887136981210753509734769542171183333138697485300438396245543658480956819117347963951830139351080889242440318865630475515444546623357393726958870947523991194281831203363173637144667425818457266538223274068330200932338469022677186447181366402669958268264129361221943252674781295865792105941595059862726199436037263053059300300029479477287307443240188337923088558245325438986333817196490762166613107409512392334247173935479231394401050682712030222497698864229911114818821492745009783228780462732890161663503743591574150293505766712496401005194873048871896085940159965632192445010689767471753080089826836894657161583123804646016297815558396996425398009589652812385955602780846359637622580952480198388078199356437314297193027792555968917256300615483660588064672424846585988125644954746434780196117904455318560291323337940542490716139951320508428600253972691415198558449249793700342158474337996481831751177666593916180886470781689018925582321331376320225977504658881233404151211453780034478276001296493303528701077247127606355424816785838688034989144397476487989572567137038931040633723352478693035116072323679978338938486592597895815868168912990685169171408181215278040219856804214856512185653395554095903396141113636440255936798483034379931677212602526855328291315843105902957974988085799518899307315905442467006779336834162274841200542311135274828828136692410307457746739565483410850789236539753819510458481743231245339954090364745716776623047455115622304241176769257934549479878874731587161237895402681956468546431485586982391394758568566679720500461601152223580026583460085501053930430153739503469391585068299513775495822833146145464178595095193516032137565279693123982625352945490702320585923315954098225986697575937851045428045482790820599436720921354080019057899647437682045117840836019783716840594887339138406527298991768118322505626429427783797987232242795890313740831551305004275618753768577725863088011623433636120889349048487826162577189639059120422866653656425285274415246569023036394568466647851741992328476862096270066039894205448745523519195855733457662389522164039909967489137472357394041806465844305581701309667737749288075942021053581881718769222135416117124795754168711641722352486304438633695386379404858766884602992450154005805279435445295422069548112196416705630305815519149380719429668411570188313429084480963540007218393017902722452784402219784707553399907131993315552632299177952561872809094760870091659078968007193580947225857173155117633178229312514128854112784988372696431942839282801254678768590698552027911402984039831685960503058213459858981155004045492390624231585003351483555561214236266893674734696633454571677461604490223313546193822151707206891567587116119868332289259491113368427662544691720273024769666672703643727181296289865596422470086297611557356746675379300378946551783778656861761313703207651386391042300429394765490094760257729913322136182983579181856523981412163529014384632975182017769902868559197337530090351405647440850003509861380064748959819704662031696972247281056385460895945468194279604680640702919010124745085610609534442624201848423349426286451362781494469405873656964456422466767813158359777903388921554419346168185637349124635349163360417862567711890173425212440391292673542168647428434420547412028383219095248109098093332946501351059224690954641242115074549728876383599155955158736480785724971490098151717811054271282220971236590602269591788675227033164661219568121177048015253370318790135788130901149514234710076444337196552506576463615304989011583094834549036482761565416714679622063405480679452008588471337945889432072095668731096456240721394168500326234544608976742125881970161055093096334636133497308477931100310046573971302948218442272185306953942679086841636720559299822414892564032632046130623598568531173818916449881596053337792078909875816191888424457835162851037885124966667929083788058707993939151545380898307581459855296509129744945575385670316200625578161027930638678320364100005901052154327542638527558272525058199881749054761342370847798752676802555008500349754102651031797804693159954161015614352531084161080119195019656690782686153281997257689035407534423142047868973494349779704864387996729073111028285951731825115800653605655729141428097540558592776226415126625041454211866226159672520094455212325767749238031166689910308136484662671212674484563848880684237562827566188163853339284438834785903878530775154460399156158599628755303244626301866955638102864371401067734992535442674650196934710276751041460632864206098690468101094152815358051476596792241536891249162278074737976405889209238273350824112573822241754117742005670633687835715974004150544876650565531270220229250645513102664609734773970881409134352880590465555605522984922169021113490547357086150422477202601108250094103416210990024429156727695921627937753855185167458476935955410417713956284018446321319564635367802892171398342903691528750104507550208471789581341695799655233932680660715254971253301374993995670783451129886799264273863722751708440668049246050574050262760209506610489678465836917075858476070090134504726297114745378941468282098937161306357501295266405079765575842047221036234287355111431528769406578890278864178913675342858344971588869216110864149032215088860114806915024467869264634522350642795626028542324978516892769537767088825172627234304048615225273651934895897524054596559097428859909080670559543753051964559401396205244958739747400921916636675581349244778853823362126902818089818661149047567174255884238857896768756333535552370733097634452122719902028244302724360958740224474291973059834449731921675295340895102673478540559755929910291548961502712277520785975582736951108465139703538821058679742489265832263986646543718541384608756607428989515938834115186337838557015075128990976319753726916029593845669313120531365247013965819238688918856022733826294114692178598438365257507172831964478361786871215665696725081636508510345697390288618500504800535723523347873921019854955789148963479054157096878096419809576659446263716149563963233481053225238018959988087519546951606542616441470078186488545189128417325322460350074120509660946623383903128761650382312952139519999176541050415628007281836282239545115233295410094926686917790309311062194106152766992191277224748306288501971821555067759447299786671984826510307413139105900538893100284253445065682676252933495253274782748057792044257957121870978072593336430964096215314099592081287264664470444610048400972719898700869017954188361566397426380532863373872095747221762626673091599223920855121338054796068326437806495149743878191130495070390594443116538826538681811566461204928247506799595478878466900198924305735454599049558497952949900631488825017877375736451385814640677873470812103655976002924684603251172555342341607428001944055141945082013483959358113588989438371074118703943888522607675316957876315544985553135419605874183324355907907112189903618311754892180165351533246049950879479774702708605284703422547635072644854349391703152837294678168555264455302630694769665257708819144556850928077536303259057811042185476023648543452606514912328463466651825621045964421188299853348924404717532730079129017023979645211707863746607196041782079820033370337413799133741430780477122221160089422028435491874308842262214888940984897302242399087663555017170611036735160728703220659869378294978296591338225390807446490257790932038986891694077181661666511827286852713349932180229565614177453130032953586593896131622547292438274892183503971647046837867850823876018745406761762464258287798737766387256283157606768985934338980983974857058520965221975798657186494881468492687901609181329959840653742906566323866095090609155699270704012552732575194884359383305229656771936379814764904320536444857034118375366301283462921100510894824091874890324556897728834606422620713845965469427481790609211661124275395024685086292331594219609288069522051907800512556190621238425471605350141017682053537773413457204079824942844586867753001652324835991899321099931740470458814420650652281944392783074756234656980274954260938192274725777844334976175902881685720325450859228208078884234342370061951269641002101098997987485186184045975467042249954541056076488934723270550749011848156714569551250179414668758736435747578043813608639610812074782238434304656389306727062340362375493474943802752110291530056782058130795930322312578697918012030399382641035801966943463558314761733314260489598574661826315780682829271093154448207037096010964097214681965104484604612886797514661684533647123224349455448505118399492522376178983898886169006989304081901618431814887806340576492607654727039591719584970762159763333886847810376848167407196309207929546695598130681202062924775815341738429858560994112727903592968651534505165044487085674690976449780729647191505204428517887042937045804138401367801440928219661987084745404769656173302740386992594024011331777822651456736249938197510933213764741255691824922476757480434574224472783321928034891434533871233312875405484329620830462411934557164653959812257290400653668083751236511048286203459539148666630829776898336431968947154630287132183117787981010799543737685591388022023739734981961638222322527284394385862130337954727841084890325556816444840894515232411407374864658267265789259004723147942297733290993072347953888229073974934565887635306289839520915235842587857331109019187244070574067118035932467881480295650680420622824730975142672334574226522244565042108984679021689564323132038027810925652278991471929052960690351437960675901354906169695234147941889331945034485986457314048329535805308871575535518981090927573981874074210733864604764087860223182354746937688754412929567993282735091139064287893786478024245231928240518701439278411330654068964752212977744620429291158494612798732996641346798720637111237623812226939542352669397833643995176327534540587242687253219924674033695202879368289014541525735820461363146366669443924619875246172629263194716712093230481392420716835508851089486701704759585218452834936286847234026248251294166589548401497778774106193167864647232164239561456125902841790630130539651184898878941608477995505927882312212372838409954578505789365618937620243777582249802959434388355955793892776113450214094859585278246877780404227211065899253340320950595871268193024829346741262392125366166903246563660603787018392254802659632573538494124138069115756433178608092660991637375975463160408512921681524886009795703449172349190523994457151474245891364926598002974707042439526499003048720277308070277892232640070848861186023598213646160617895873884334944508533312588311133418748309990631024158762913256866900539704651729073314414663851824397534692954859629537413964838846222742487075017762992714207136678570441665514968276533539563386501114238393197599869022731243788494474691959915655705219585032628374143468279991455209051356919343982600363470820486630604087546170159065206582559195504435205191499603251227982139813061807676544833844806754645876067585288140803986256151549043875567302081654131440542735998622227256904682488581393472920415697750885043870588399280765962002102484543086990656676583953048588657934582373015525684242080438899808235746501348875634956687830684650525767841076803674769770122272394651366332376525720426640016653337041403689113202305890972572718149180331841286580126858854878980343558882180697579688555406949321394886682451400801649814606197117341951707842171233619917103919739092250433722946121758510779257079934044061394704426806479695797771511389432038811170212445715469525631060621312455481253486971113727076477002279737439954073461335991959254176217183259459391052205931949808046713305251460920727318463512449669660607115926873634670461968599759893683592690402220190113853511658423598930832195538418192042520865833323497747398379328042468544053021267691048470644268930481898404582419811842269821133597964254663805690244220185867769358052629943661151321632941026055634868602511058457551020640382700281243868276436205267385646694686462988972705450531495809867032119177022694202819247748217148585094332290044478179507963700550238006956008586056925570488722168754238427671247478600298444980623962145473651393466959547055272997573511196034004990183625781040240262047767192731580108051442552812721052834647217487160459008842847245863848925884440655243028264504047757938469425899001521528408406788714844648848798979204634414870297980860674733951772046117763914859087250845645393934590419123192161123130219365281756442678796969345219970878289795036243432873776694130543912165036221556362497752605758497464704008635222617705324216397371147799270930720417741765676283600456902960263477751491475868291616565564274859910264523012532034979239807740544073055587931755112508878563982108220695650687294721180136633577069045502829624068829690155664534655759775115243677407839317372861277482215087812458284903444277861400712635857623611675526142887137587625321932779697959719533362874712998950512740493277782116375473385272996786966553281907275763079815835433959985244097572441302936907017805220586565114201001116416290673892795205280905233512867588160382602658843898557591460799566255284440893221008036514597927669974445383821639017626539703335394615176769859456830032812450452741582413594203496117891612631880586096193890124595192489781479062250337656011254072447114499874983286696256342076376943743596096862054150029755744865278865172053762036512429206392892583349773864818643860605990120456710127478786236473633410771799720624290344440331512646409573393314209056845904987054867051007416290372096460357262595651548253322829594837654552754866049857521928829719121283811382533516078521530792240478860950030182692530303119623187341389920697066830989613168810559696030886591254926393608096188956429299603477345936859542609039478997965092585680067507796174750330467582657788142659479226477372576551962197260427986442307252521520471504549790149112396205702007423823783985320293609575637423830551133702458412664925063204817674660459175900828062360975851531714685507632438556739055174825726291600461058305487718877875585235663938217683776250544231264491716561416246894605382530520831003886597629793176217170470943408729300098721249478996572703535488629950512216273888513018303306818729143827332860629078494155614970809506412769852627988938016525678587596780510080192894202960482776969183582949447061844340995542799512653264747592363513235072741216479711344806137174979986917944515491159670109738218435897924516222408084899698767712871932858211958716407780530871973573081099706713281441907876079510677511328101372477303924167678564911404414060686338259852382677861919099766027118866531998423095663276696414451657284578346225254384462884536589152923833845061462998412761791988071144681832946711376699143857948658537995931608877267344694909303002575673225471691398969359947710781501668874540264514771765854436524045814861172245304432379608293249515156262394590128706281240770471368767494815345772254017707106097849643451475801869296760205736589506254899141588920390400665957985139315391227592415787351255836609789870131856197923524057450351112396008528044269726195205347151661160716121018301720991999623607128715099265956194874127580948246291881231782538798813448683264841889012149360522082879412940705784566050063368349977714391330711566558048903566070026884153309592557270556845972897477937373173922706467073248812121959255468949981303846115664515179715563116503239588178853761359740917165026131597120525464806223819284833772423868017768717027249827607834871444214278406962490880980138164018760136901133862359222764860997164786682274419235099984987478578132732796054016087163416073462357435156370674433977654230800515585858232652392324487305364760373444988301443350413644055540495801558135705857362013502603717263132860260252759262081469448255767941199417532501614630115910173416303293038074327302171031256567954852630443408345860088059480728050951804453612182712632328291223801973946197626868510848579328916919385151926426442513368161633719722431803620304905411599054553575606800018581415655779757098506956834657124820209898946025991706577970216689084751602968751764880640302202137983554847788349571439517108769409312849288509334250514254564810992612642892059544500075375360850568311858704316722050306202871093552459615895331477097110663738969876331839823459862448399465029568630793034199462863719939388380363894123857876865624400744303671186959755144230692997505073458850042460967199036359662199493037839734441793168578910709923655478958775275504246564079511196326795505172911788262961421878346399517497104865925445780023786491849727802826608641100040742553710886928002094823309707579783426339371937375489315916286085965726675201803221015840149641233670938035589339568596992138896137082711060532491690333422692946546220392710288869133444740628376386660602881792496361702042036543354713324164312788006444856649681293987355067610431481969150638069427917191126049553801889681604449591732962179105435685377963521531865137389172404670921621507617457254294960667046098674947166296559088153052765104744747632159634061395704194455864703774991678137985589845999759460581141093758576943509166719867738672301855380263514300556464091029986516068547987905855931207337163647183026253231079618118283948242801250019509237935766612151863758807913318001169693731899631987947303831958194043621166595220565340710531351044767880304402665238326128177993596946274432624094563211993264712003960233972059154828646883021558248537554284779027895493978172252017270745759272021585120983200023202003902028692454104864740584734314343779304894816383239610708761859797728502944772875380562238826763210898374919788431033138927317722485056654797138852005906930221623492691561764535419329321320368298511430816636098150691518729278826785872917827584070976185769145033838569116368344637111594370723004797335762687532583393386139061730875301955484197371681858621174587824881700805461039309776868293245692793813150968387038843877609199902916646007266176403044361746215389520226192152636048749224546069845948734806836494320594056054503663232832508833949463959087267633401226306579671103407377434490372454877773815887102153853217817140098023720599914452883478841465771078262154720287424356015038195643172625999708354439801727578209489161425371121954875429983917988620206068665536626529152153102041798599439319351607275882413392599618443123153826805819087003611440005074300409936685858024492295105809925954556049836085292954443314908186912862991738044875215828658586258914748560086937660716197400969766152445505296891785675431134820929624209589935054416576685677654788827031333567278613736328095700139496178504608295121812434153917509900934897381714346288821850485291170323898740743792273098378544866625939192333189521098970453779086613845224166892345599244907115258383996371804559729561710626702989933375952924998426061418429428702336516960724041127913587432619430856689757169065716937906704723119555407158462590581488620708281369567074993387282512188845953825090883918970471576912028640615991487526130392805666061241828136869787458917664084781498746113828442442408831333151138945990190228183318604950500190342288549098329375393835125949629109326922600475547868395956802360422907637548900103319511640152205203071564567092191268750384214354080320876410648940349129371344950866418501757927381899560638027478997845602080823714404826734314584651759812492759959260114379151650844448575962116734197394621164699743812638522074081501700897472171580346745094641015226870653743755550994034824561723834912445306779336045308501522158761608863594001346351755194087366921447636306755692661431441415813416721799641851337291630910851741871003210627150182559932049137430771439880570329628089082279328788541799808269378050465835049475306471850598239457653117802116214342366246698422719093855842958365510431710507373158582437051868384154253646680838224364101033389743541165897173343092282432615739724116242221963116858602915739959651860218978087032993299672842973981727091138575143521959084344141808632661066015639047287761772220329791522842406226797722092751545408877976015465344989965182393665507425719008768829736660971490051393471797423441537101316083251178468706556005987671003936080706088036280002741712037230871551365086954908068429333933892634858956570540577315126259489652947802624356017520679886147696398531140166552985707464556981989172235909845864219396107653210734270238272472230939541042358878102020199534667965028184309387818650693688507198615136200440307672122263331351645548622281378373710926463887774662985839398368049724529513057920785150301419987313530870101271734974998112781526415655511742079570198248274755693820719165235195553533320569847366010890190156738028572286620543143807295926442091955855811259272932473742723539553003074879112475947235919268074432878834491674550440515482495782621750334119420396441207969313330263682797142410581543669013218056545119578630605017541763940497310623075539929188105459068541166766502658904274617332308142858519617783586631619381723913284309597140938496948086470214501158920829146224050719297018476027387457936818138868532871185293312520557307242547256889224490226282970218113989685971886313561838765240796591447491488732656219027815120140941117557998268641553933636079478459197673469428552852386765321987965523385142906542807444661048677904019029358426301965127346036024109013924021637320112712407640852769561716939470469856311773826794402252866362874837789446496481196786962861855979643732359804413598388256176975931340520801322020466410586908972325501863509750236521825024456869202217590690074439301061324039488693572089676538493948451225893516305614420265194140882575285032307178357187041005707483761745875320736449240923388040670273664667601332898934601021943190656668214508943907839504196376732326117555901631294834535341024102764236159598960707255723454445921147044548822100924924282344475266741991804945117064981194474687703671823523538931630586688156107241333436224305482868380940382806416691346222305789836205169463037521511083192029252372988390582730339000428535306369076027749817512126245831133840394915141273368618213000090659543888898843581009423368991131292243607179516784429551962480869387344906934242775321576990403484090864601973524677731643344168455987411286345578215237276032151179675299019778849834057725717582513649027069849551124962804397082055500138818111004422474100929427722606093987681747031607346708289862572304458722181669739464939735261236549768662187124254889215757898206082950962539615904392027599937933972642409527245894101839156849466821382655158145023074183868037753190938673436110217103566340692107564988381010602506360950090357258236234258708350670339908179230011179266500346717955462999206161385893253129590647859689564692698316213035692396556470119166501726501378635223438902223608532494428133033546421611467776111440886401555703590032845535374268538824024733283218106146656424851072542981337550960875364819319413458048401585804008438783666189431033797874135907181900439949684656890768914368700452403414534734935079964390643715247379872634208640785679992705063146360412736717972923806123754558717260355171256859529027804132484511068458808351800866101757241403230545714762520699671981426677203906954989617160502244705560071658033782620762756580805454090598417700202561580109895998970772113591408379827514304222258494659375025176713507093730211176495907093916764531561683820275740965342547765281070200848541339904359089757008228200647994579855640593964658870525771573312909699697530369436215149894591815717163220085586919674422657304503804182447408311573801286360020008198134037301745385206686925811240500747494771592691420348142356917235836018380310088663917848803921577280754032642677310253277054629976185756227189069201951976070984338954216417295080920148686180755489362824349553233910809883375783283231779952896223188215737816030522080948146468954409398939652932772871908092588758708350819709114022071680772427134146238713046398648344050541455657441361872784546567022555447387696952746288834835819771929304719231181782326617679394630063207188807078857880657961564136487036135209714752644731235840563848897678544872237359555729047080388675569717779565661686352358000138052078719734540188106087657727548680911384441952065784064842035525314147420284491297423102717933650029949762904402481554371212912603520779956783753848482218814942069215918885530954658149805385352871691417356970566928632109744434954657861047137988799458478187189840741055188660685473588111067470525986956548953736893229501598557239549838876249780926102189894715967586240916589351490177099938321126997130656386237244492940866396774369988381025650848666085408416562318861499205550173777901598086649814428874848507550775494144052661157203704719143839206341250846776856909124954269941630535283526790625398551597036657074834446784447195175605392373817767780110400096565943532725296926342154076670993885864196204399179804875190098375836479800825335946768546473131744605153596287820580876109997409522125429593283854938451857855624865364023121428153768675150515573465583486190484238133693483871697207240411544589013502627469926391919358859284462882167966930015164852427155841585179928700250033252507739028011324886374477710413139158163757492867155086596320057903929670750905787321135828113987312417971540929264667910329894751967836386258615025840208023837387231003435220730445059358980960988874385882798487212650485424154224001462176922081191983538464925567802386434460178806191906854052008553408423231480632914001737507312078437421989625252495612490606849826030887796170872402108991407902721904429140449825815231360982543922565786536696289113771235422175429523282816913066263195108254551334078263072081575355449365576217518178374890801507761192829604137209327967583512657871292201060613356872822961380642394980608322584071875217146427996870090688131758158804684120309882952880738439702229747347070751257463167671148134974568669609321788709622298037037487752151448597390288967305984975877949730396925114412086538004642739813152875305983247313590817990195275818852589041712463184052476044048570500471697838910431740984545046050647388102120520871417413274762921020728530284550661845604064837068302806744772460524952629924563933104734402808397355541496922477717960377952906794960393614955252446145138111571391935811544627820248441672140766110996819882733790081642965561905415331079728743631737898006173277435927961460575490852100530867766542437635544838175565523000041231054137337248325959770452476255486302916804875905668309702983408078622813955961166832391818432352132324535241837492868201978093368795334793766822202039966999718203860402150600902461676278080683908416307837822931044565233724751076490720483331936556744954199477110581048701867703434624951320614828685332974075004863864824210232356886914785618639182878825315939097347966532887283525945310739455348005727501013366405088502915332331159508048047507863732086808085640047244724585685882898566325619774296079706881511502969778701337801623026755700928665911769412153813640201886361593642981401248432819269681558470949649027640053977779667725948254373755605569918056150395337767091665984774994038148659112070985889776746209400912673086032920521982399355335367320805980909036726556858375233576944102446544134765227597580263864552227680136850899595030157970236234385861578470650518292837947160770073479171539779908665323290646026632066269686699452476700863939271485629724363252278552405002344875606598814173806558921380304359799905327838374043548203599812510124347100629564955619173638321355669159271707016453207888960300903924978947757526391537084632078959601412332256579557980215940930416299761216623640772176952476901434384540073847651308754319381776381016634018318520724212299407576216564029144413734151562652575072452101286066309166815441409830591951944027955956315701260605756091422651517364010504131051065730245378432370952779440976399400785401900932594828110812679508330303714488203854699338183067688450710962894835370093554855500407027087214216704953442914566651732835054254809991413401381179295431258499260171561444717487781265043529865584537098949060308371834734432579956397511404063703609759316459487191104106578140222870429340544128196290550806910114165163252348112887226328977465110248041866552189460970306467635630204510843523393335581092612972104340116523364985550777246674478264744562101905662343596244902156741178160442708752957619018772763253373400235979031092271783998281388670587291578414263487541297216564224627506096004005310177351468648396452739660533350238620218345820306676158640612589237709990704153550647781340510248628424680443452583018550597179391644633796813504601923486389480008528075491337464951304040627532398886866385892314374817444274088793488235958444927446782107348523890761065485811667510023520883514750949581915278616350370676170161751436642594859150881923370114373775540084370671961684008345720004146745230935166623498293585251763311953725259227276731653219539956094835602787274179351872479588337475397497584030382717613721119538347379369875478988886346328106891388441931587777413969599781737946706023640614260063705185896594386574839157421885790280613091542226463539067118511476624908671876245581547954625926244604579852556643511041191418976895958704121737157159236751646718438207543469542730386390607369085964088890180943815445921552881488206167078788488711569887557841553454167737754544920064701493539821659507572586149762187746496138242280307516418552404747475456372433738682782676787806376588424689229059681133447819628207764096949050849404228575968466034124960635206528438152422832488886863110703711079411646648835387531135165053762130905686462786720460531619525493074288724130676365206398220389043007085163172312907270805645116245711641997349946358153146145454354512538327204498776478049244365613020793145936767105308506136083368884854326073069827216121997100853996167496636586380153995631420222726629959430866725025612823390819495559728117713389499976091156081549739175594890667024358251679584012167382376960983995101337747201630849044025562151924336950437866134978442500104990923095868241563407695090835671415310432440972200743667658509761029972323993570398662570429009321609476988619146487096735167803559519744456799435583006861450410867891480862608810841998429532742430777987413674560688433214228855237792938189223538102532187158606145951656071146883152536137964096507479654621123393430933584893650619746657449672559733061351624857153385046184803912390423447111569581050825934750633280635894196521071336844548405548342505765986777613269304837953078162376935519837917747823208894844087432090935524770692698029053518578254861586192667606561158709621815129825345484014026901057974509285094197860258826658565217697361664636089807267389205457262776801455847235924053442588155015068235762308096857093110427187249668480598104167547689942819715500817803991164307058071675778412305884938907795788930165274813221494185036191235411106781060139432179131658140497400518283057715298355879580970535321822272914180550024845268795661715119794876111227689094298769454663861360067424232190169141386601715359419892193897169954014251172393228714843887318060104254762579411249983639581855877009398364020624019331697647397723562756220107591546428966647325250150992863650087934760097558492747757822099823427113819718017767006071572064105457116011633716596646844158940744942757293789306237860361673656194758851289795987800285411869246813785960791614520125547585846051539623448586396049392880052564179270781219564713622239464167124697946982294346282549828407603051595586697965965196113599858363058455274434586707079436296362133351904216419344597180359031490951132453169549031041917799179626693099277294446971845767361580359436386281408789163118646092529327531740384154402006831271517663537600318675633581302872272920049032171986261271718404923777874346995880201192211240856225216650921134235916713123461837424878076563775652159871119546243375476985181664832369141246110746492678213354234248537572600688898156331337256736272706123618471056776051176461507237447098802130016076472716315950625773892040804171878846855141825142045149944951619342062078439870919085084062180288568661110349488460945534201292389786888876239961732152966007524666235741280824956760678780215431293668019684735868804299242271721300613441945511609095467122072384827046072885672652834452297604214451622760607663992918581704178768485027012989995316031862835077707410880121418112129484543661430643348965440840834467088416459237899717997507333033447401332004458877651826272173623048183981139591678320489697392013012654560253033085379758858212392366393864628305250470712855522147046931630366348776847010165352468774099386743267671009297332113722534373474733765930473322054715158518701437017124012885634101103174913116406299064247926790154981523244633573076127015304331502653592656118759618722550288246825776762698169658582164556721360100104917482999554582920767021061488195506538698161948118545546288610964532517029779474200777793755040562149333358015819034244870253648181224617403714110324451084469836042374400500512385612386292434274164345246936639659286371577479288272963046833360721189671710274039030123712794678515059196358293476152587422915459849367823838486772715578679001918634210466437224691709806862746586204743156767619996862680086013556652388396561838986155293357038289123504502696199234168013408737752975746796963536820680553021198719504734369083766994663960686665900806129819969185157834417938709744303846656842870403311674312237888818907560051243867203535861644231919397894970614475682250149461302257265595407029175861088966539473490432330308555121996931415944183289219034462749088643831825637877251913712633614818591313904299394678221798020118140825264329772269156971076823431937051589322505636847790091739128417921690528145445189739339224156375013490922409622405865100333701889982223664535165937486395174839784388925559417249690349950582671888094473156996011226705116889889228404877850923530535473575341353487520276973439264735061846148014404742425833110448209125939821125127852282204038734290262512981876860891007844316532909448821530892806478235369045453139356467103729164899173882703591608778202321193815721166121622106278168467789675641234773439927306668898156958255429451084546216446751315917092224818561247794982300317848853280174188287055357381497877224728496765161680497908520271099729960682031791758765035653624575275400051210434633453187446346374018785975785103244749844959399311476151159929282625315775346488542381791013305907337164180109600737862510968125726471489383693589337543706863984452500291340931081136255621408206982387126136756982459685303639472324807931737387476411371468024531130134549892956412161812640907164528356208368533723223184431182227620576022339788272133379162979022895613758996899986268060659093761229007031451608931823120815021264463231932050693812635524884634428119761278936385249843204651058160783309296207397319535304079107928000007114001427628483730336376569692641467596505408600597232533873936864690850729877549563777433872975148328942301880792123252118561828532280991052851488621997040302038679595503393062073080832434807005915532531792705292563565522378855227141909122178554684824187586212585998152471104419505581756662219597924147186722469624195334531861799870858600427758386242840739781067279193523651923889636878937531457606837751267905066686963660489809524867515611433563465162890177376957725447983896418310838668819056316002513638879989042704800033876420527687700929212968245058653139940775083183760160262190067866009776732298046191205054318770392135242590193019462376277873266756748544530845587565363111350788890612448346815266404729595649625982486633173350540127446088824311534683466010670052092327038285072169529588672709673191766773875980097029493557131552331065294534804264159456576233433879711892190538325596266274826200007408299631060606815756557487799630765708610084387191156736955185942354314915637130328022008966833120537808162608330109708635232573803829332539719350140794815681517906584547808416390508251526767141127301590200590812499323857931654590958544372420153659636093799827846921716670003930625528349462487958501905320644280963014386845918593822702384848202432405007726244231692302239593756054130790858395918292686947599478653479551583965047222714265102690645747482476439124538193905670040278359333050860653104532618033748365238684064954238522428633381954708678761583721160271711191535802886876756242548122458802159216993544994566968294800674047352993287040759203356216862950483261679499451187882886872410133514540666089631595263050959942676879146253427617069453789112429775619637709254849735445221776693327681517805251873830665727503653631932859854296617162596837719102289393525055545395982128647290733959358016535491311104257807945031914233246387644492164186653068898530292824322873198004672164609632698591067217238023469001395223944883597401999271673347429284525474894640770233530808616812691916561968922930312580422088374852051838126825053240621873099397226006855734154925580133633709946606616021787785599139350084579457386493346987730752160468954453560253576952408969404287541649634294592083522062085408087535850998926542394793758565704027150825863005157931969491577064783002782099308579215449312651480041772942750374689468446909223967447074479109928570169118033576469486053633581145365539619942007302870640210970989027299939671388686121826321607846100672753486250712078552155224035069248855963029493415078327027407661197077575676792547430835406273738513561539279992783292290304227071202418754944238368563311448717318024772355568597545815906387440545158384769719961362472820755729186448112183846831922766732997519599048641434812430119613642260928748928185970156118555504492197508603358103883809131220155263187319262114912905491237861571564653180187589175602058251557399332156446037045127472790414159800770189281587883680388378348632951949267966420068607818658356353524541243883353870505696560518330404290915729575711631948262356644809220507699425045978732970025489771741293211762339765134127044972095160355997344980384623611269740121168782200390254465451824973665737556694562415793055333301056271623588749972038494186506207335784975172070278196586893960651165988210345312426551701140559553867624161129438866630699280306433206851214241109407051224193079730421944853084738515853906247514306749685503347246557157904596622664835662820813514051833559724572379211158579713993110688370653452839459505331768199695339909214806188287513762756534475639597351256065452788023457889042316809657184587524284805664645876476917722742666162057683333321562355842878999942721226812319747909070788128404121618185735006372965131892588507695516012838405894090436946069456377794458581378195749475580872087379724481178927681565903005617777037669045716615746528360364625090849268754714506941850156766435307895306979335140615875772517027077126225657924954899895074708435977538297435717178778917941085036267420447132693902891238028911346162731972125410782642074156349995940555470400951810631775167396725926685808632246541737836665896806256350270959039840560377611534435179710115433591555140300836333837791174796642006395423672599836294849704528808011055926902851433762284765222407350889130890564185843999692125744066965118790325620637950019420547086477502956692262103376383240437941675318045503759177201037868561081688106039645114945611477712453265864477733833490175984939172322499097363593876649518923468862278027007471972282276701543816512991085611709325616176718093733961102665585541350149251457341632916098263422095417525562369703893236017391351841942676829055454385158304805408044114135321938579494792964329946663142130697465229067963930684975620919429138896150961226898012430377705715455967391243988132432927064443519918648843729040635614129649890374473731476161898914250559955484780242913868879215317804306449049373841884632757744520045086708887767591837110732935041055779529068934680859580741459241211247564412335272754699955840256916823173710773625475603744812693454681764461809829687282437039656267542107579289912969018131196121109349719836961522650876273606348890904563199477003625384336495547376040414676317663340148692582922146102722293315721566413105891731698354273146471661735742317665673131467578585575708104225103658936652233124290097338228119166186390842890518515177095298429015573942794464022873942654752599062359738483506648048296629537348491641255422652705469000919074246915954547091980678152578669069046015541831537274303584518475324248479747972968916494246489988525013339615563320675855309203885016139329741547315654298930711886559477083960200549540550716074240324638107553872268561173578495250804964681407715315854262191142819601173244318979254606166477304885557433987566662810953164296276025909070731044098677820010605576491114439351537448595802234369191803837305545640845614728957446859996117776674871259480211743177212287884838093932500725317904309285630847719069858776490064212485562033211682684010181575779967125912368823729383815976908574754366194175744905925789604143088752675132648739151744370457833122813524038089470562610512651555430715098209884659822481832396007122351802229722938392524187503908727306579214837095246090689739366778137695547779970882922125732029707510127039227912346157512301064049203095563031084106650297836381389909048580643381789132587533373925812345916591994669931628469829686390905000095604397257605059004392485859357526315300660999694008553960655134124170142518101175010201658883650834794856450938685932405892702884277503998810441804884224163265355494329040967014292669203305808117835216329789092324951329602820943592099211335138065992295953418926972530230493822364222297509032795654935175560722718948794067694530442389906280262288277255768359906912584917840898314421060033939224147827556812086466157153338401601173349828712211113571576405776215494762739172810016083933917177663259543334863000943559538984296206152617569805012659646944220296205407944023012503139305852313043200275766538936875786610519410516251869278317485220749206235294494692061268494007878419379039595588112314688194154653930742837451591891727080772385356966927181436388850373487497629595728057638471588618889911685159063249006758075969815387546877308567960381275595018253305100321398946933230768652936167023007990510622386606654680082313641617050737180177643217904351002794626985548973246254165923718820173641123440502108289379365165867231582607850941262226072383550772602533473263476325612246005139304232095016533271594325935259912677371049397761828730243398024947430874457609464546630026355210086400639762558174361731805608759369812405382966486007151329059939903045860740991299944863550257987700246559322851236612662691887712788934811395554973356882121814252623931488083012883699049919560879775781095278922104176642016673741579645622932917012628126822293038014965323759557664160540139455166367460706726635715191277862243897227438966183173424006011314034541072924353684816146286811277195629485204644251589934182886539498388171069303859256030251016679609198657700671566935822493134627674296811347879940221179058964843133379918628710327183337490648656775300914587590616441147579745882321168224035114166235953038392636521947574060714290979661912035974166981935797328648470001033017298897419342200777677986723516620029166765372695263265601913989856094366757652658842701608513400943390066064533510745829497890142399307302977179574689506236769432465752019330378327333951748778184066494473624063341543336623241409783398651435262978820377236772025915788599911227628406055357597688118632926209489133651133216789217410579793176262189573143242568276856247784215503760595523355611744318700723304851906795633085887561445698377441891777973770695068407546595245015012329497708048742981476860146557695441107930691518206317854825991520450358218523667091078058357114308998502761613350876449846429263930568549436143092101371422997737963938197933289201566288347247459591778777955153286795163644789654250015300617927645009675018350243818208863090915572574017994417921341177608898757927364520048253641564937979937962348197835368182413152981862522196391338150191672349825667168882413715551493550573452670007478950004479669440886400271901495094857570562330453569759052869278946637792898329669188751368199357451117378967717982537970681533619620706469891996398764775036147543893907600988291902829513284180450131138142557829183504201312980472204542747975723099265295128477029280100532786886184434303384434794443133889969555844293325981184646338445016917845561700802474343653021689190620202761851962580640711229854432407103324700936955779390606024387845967060436736931938605298909877086875077049125330997243576613621041091450913434871548061491588447656323671358579194990694104366651981546362654318437338096829084477640466486132656734298506296176588861155451769553221815786701220904567207893462823917333450707417693180735655655167949387951696844079568090057582678400887739245331270465048430226514836362386640348233876469582581934236663523544541626065615073755383514494805804397413634134229565940930075802255268300188977493541415181923565898360303242368251586172484929106743839910574335364071879420421889442366717041048172455165153011639994084288988444369019520826040989411256814593806658450173424565892126034813004277260508587576221055068583930428447864834530107944566705565933747742686912490086315253232586581930349870454794922707193925081878363762076580040651042789903193358802785492348127040044043176131753576934362605128168782882111374922431630650487290605716867343795556105600195922183876715298812835332478320296850098091538154386607475689335722775098296362859310173065240615482021999020514579454931901081521767769383463649938688797717278742739807431924774218257195313333408720496971191136714048030135958864259892379161190476786813096290447507557711697850642777184239477986171484060893213032384870446152495314554413710796860852654943806161122758372333947857587161552425017223076032083818496390247038488895937573903013542482656892470102425962643154924720594393304715535228563187046224808307251887856576713540151415473765277828004269404036987438932931469438237487208776274950843942841148941524474236920624445548601756032669360859379938688811593686565709008042719371402675041710623290676758892204461437551294216394631773676921136516503545654097484790793021441000132993001162133136940275917448104565400447225520367298296550718826025779296884138292765525568174377295934227548396008752818333321904921285664126445143358612048420553817105586350973861366245753638511230523441934927987904683754311515343050003400166390159551806570108627010919429099186033648911085294088953897852179601887320872235554787733126019051912387294724375365787795159386018624569699500299123990732789857901947250988458786073270042914663019495988819575644252739114782121324001058485476803434749958203307936698037500469035034793740671980841589574490907637453358098181020328867511287638678400976173979942914381964900935654240897760101063889239833015971934914199175438524501353727951770765803306782721888697247770281201186404374957188015741576148393365334417182519839557068873189937567989220300632391831929185942825238659812861756542155980647543976345563033870646068252996720601430877315061831555554532641898583241437248026723537866019982613197027678181991659414526278816767279765480666576152515927141400636395324333719689119170114001162602625130668402473556257217399580983903437818115564879116224914086775889012703139450091907728659548079429309082822344384122837890263680759083928434050399561113241421873132666210407799742967048552630409781495428479837809598862764709009066816101460887065026967229754356390673783257926605344385650499564173004089664317303584328979224212138441979272049632569254842924486949850511352015371787355780113866638930971610733539647639693292964727438196444188842503168936113415752479480000421584601237564794431882671116432905650490145609932703968828399807161078640668674912117404440812422376948633716950919111353205051090571806466024663041374932396539116488562958242704222510738425025536203163678970741638665842340946258366097444100180139625886058706459560587541309437799476787137824218561581719945458370930031086461624633470845615451982277366327617585591893483424525469731865323282964967843698262335985217252409699593920825358447527929492408321990530757409773631774470976657437097395626029628333329989574536643582194760440978639577474006629042015899053132712962782944394917114841532841593660380469610606782557381825505412171347260383176826279763402391904727999143701234791499765341923750758652694041023369222644732009022020218212904026503312767246627191610515433843353385468917510698708647183122041158444228469195174479728283318126892473256197421085638144163781443961305947572860415386263690937747709855041787463046086265672082928135323205165083473755078874807992292056551608441566198649927200415666265774798567226380878314609906231999226785436899587827547968533456823215380678254118611549727416487897510059842621488391840659589109611269843222534631455113899139534642651167672496243013131139647083865401556604356678022494477235907839624212632986141484121941194431617241185910355552211746925590701273136002662258147724242631685097760877916900349113698158785635655343782692178561332645553651060898820023793274357994794023051013023829011446491447919492107757772335659730533576549033293236929678977112565127603104869360449392886405987262497408022048660785741881850802201715728015173275585381376434759059933476859571688881736572901972597797150613324268557092097759637575222415024113808989952966869081433845782732386071667021320797558157189056394413494375948745206215570121666076554068283776009663187355183700641205502386376187844896242903078300350223140151570846096139853002461567245354126961234061884894367004388003680694348247162712727784382511727286980821274472096925180435540116341339623311986409066464965923594385295018617293328432548080184380661687730938180154069132367576576514244981657913138128103065719006086265404802651097927263534138434074401448062086921272863923041782547478103251433169752330247721238889123176797805691447279843774847389291273312836233674993080950796137014186718682349760475179978518187290394025330729717942108582270414296514553766478044648993254251957134992298442856272170072609550854159943387255644376089948038668523771983242691738316720811234817728982232895954606217432443380367146528061223820535344807773633597719496950661524650846216982432146459979287972212952841732302017801128980255721296898921504849960099839654548592092430937821069565325896835882122389417094461444583090284776127545619928403533171352862041548316826932697062778440189714117684678494065573916818871422393022221552189423264749125494975066250038591607142932378215360062496641385258990216592095385200060343826718984230254999942411721461692645591708395418886756576904658893486785003940926914942086218602456800017807089703356230319750364190404605655419806281215722221073419459114664216706667296308930210253067753928754570601813415120079353779087335828255318674054493962729741923923696310738646698169241106090945931552354960314397868554784699593189281863897220043466467817705024595303682763685811158270634366734507767886075921927485529766102113141510391448366760761638762531184006202996936161310848508284919787529259865586319869620293242670729709444562069103024456671397596080733233211929185531636986108364986058301093202866746609140473098540445743595414000363731960235927289599351046507183785956298524341975820754253763680822025538163507353889915544901420422214371242167641017501765703044665492489836475984903744198172189336155020825653547267898555109359658295238734641457849982568074072868319791855907908138212555949873113311800236628129978222548531068998854395761491088670333903307295593004636080450049200109092727269935596703389359074258910054606894474461046505602596584227854604999018051782170075715307506158341219311043602549356953120123176730078347493090925871437309955156358073423528162889415528354156999841362410160956614354478912954157983964730184640405597218738021332793309520245385782963611067993915573194645668010133971644730039626515440567271998724722354407751833071168640614392001162639830653698742514215128173828039583845573785346842215378980634287741823001433155409841954352419273577618145472427803305332870471390384221858240356216294489216906113709159811680738600757228643215229444839125553813015659144649788585728930873091874318193351549302494736880244705719984015176326469617444250187398407121158821061655711578681122673837008328480507374519096096381292798118758009398990055732041887663894166788210950659931566176601236123919746760113928380217687669378857282542507648847098470494141140753516188926873283846596379242457775579843629220045281501625278174408258662047687781855320438748069506162430737233314160774939541684368384576770400708349893559941656908198904360833386502585186521515097360647974671784638598253477681100711847248073795598216045101918629075234132227511244947086312355012130390174451176176582307238511823080674456748180539364736650445878295053492213972943535209460563596055585511013486916697639461125869899933755741651024886578483158152279119609771412571008378353693148707089780959210771092099191630648509659143059351829381141716228576633766023891534365428425890666623178189607494766762541026105039686618185405183887714376394317745988519963956707508881168067798501528758534304946187569459956207220163984204414152100624802862412316367103867060460661914653819982342018430677624546319686923755990951405005799827916696543812377599138753909334033212718887982015343658904817198074398361474912159891726003419853766612090654319147412982244573777934503843858794585309866372388291310566131294288969135250993399410048674123228200910846516516613966820739368618125777397573374043567638942590853792078192472739653550682279774642741909831172911131248175043770420586278491499166547133552385687773136285789868115288544919739044279284570533237661178405200216855460346747308526317309225514585230349647437357228762199315434448813095722106311815352259613547378843722556227351974236783358839481264605511548148736872024862934053959426500487617535864131840611884532182401502489702622995006687617261345266520476770502037253577566337099560304708120701709895206622317479709478378234925977200093063873048910173846319813044920098830012211757325621484156639165210008368019206007199217028866708624991795899674413730974694811276292116226886535881936222650910968948839672564436646163359793427825598916053142727569877184167631558055400188394726379034168427161753740074438968201949414361417829620953266717492493681891357657035469988564433188302799181089438263846354171795620256272282978683981704267759225605836940851394015387587205417699292360102068734545780993527568018232321316558490605711471616622157212147029317278618964496287303693690964386746074903878645966298135202401140892304903218573125840318639929860033996463723495418857345795092168841580824801080086134920616152458038663883999729018563296479960002661249664609800850390805636679407702562072053988773484244150388437043291897222023922899504400868588492437932407927855488696426585045070465756638425157614194120765139001853400651394915313765980420306051678972015074493735348174172223428725487194592475094036563265176739187918715293534617172192574920037035632947123514916980605854529092359624054305134056645290259039133956999204331938350394803808887235885584190001397767297470668181902490681004994300640143953516791738744200066758835889144550230738647980481084166565578004987054172352215180529046184150507843184405858288856733948792943220363995658838994009720330990540537269874727267431853347769904166631211805993182139138202369803797958828927702198117556380205929919898364463134211977335317933522706231423756044937155193412753917651520568404917039842863856676652838974747383232196054893613768529294521312384644249196702765324774132289500378894241473799268767576029633046436629814738845239810259390091682072341776519386136053707607259027004349968761083574866554180720015841108448508541804302242955639559767859853002284702751847655219224541593631021692051693965068946733481258886815315800822576895084207465816028411024582142187933264681068318591381883549566578209715480132532342084028946209555778496185125637456024356896177257699175355002541843181638360987638612487796181622107077540228542529720615635668882129152599808067094552206784784879597625448460491121147618625048547073699753443690748180683026621101018123757966857443002422639520147966561009989093729941509901133587437536866754591920615272887231871561596624216394807945013424682441549645946643168603487603289589835982324981726361029493445968303463517180189824418057195032701947898411398028644095076174867028327727580547636473415960864585432865539828054681643586255770139239751013972357426903102404451859654944654985860988535685244295178966896151371008163957587597403478400743769736427953284882184233266574859500808258788816898025968273451556209728033837348772347585444266957405922989914299317061751974227674258671567775179260128288670612635003580749868197808839353171252608341981030941673344796407497897865484364393959850706074142593387754568889181130712663872685155890017230256846241710219599291069886872449130817341498474287983536677509219838738535079140312389282091241223567123265752711687837198047114092379241896316723439687653036222804265916718769752071529314521045272410507126770285032102987679929865462241303296200078447699727471476880490494372369535327158605602720821109290213557938844508126058742974473323098856715402961100279084021407096907786902826071441824532853618880721770598553045890171272666016927527292309927768066806825363377443805556894643942407430334339846832428776333914106553121161264423416595289297474571343384999672392769910183886439007368114603277380446945045099049240863682957669842477535105066625802811412121107314978357015291808532723812651990053883414192673595947562066699042329524256286756704307029898297630808568746332773798517034117667736546195640493804520989651108183745280760938065547999847858368623170237814913995032656447802758268638688842361703335104102846409283174492278848897909675940464535306094441084866684185995453988336987744897064388354318749837288651391687265952801085780480050312203092330969848807493198584670387433770284576571542035198940938321690373492591491984986833654452196970003407748897490207330326084033860927474358582451843914428762121065667466553351984511164504178251884706575174917141514065846711027357118362937032241690493868548813218227680940540027489695626605762987877929624800192743247447483596198546701658994164523994543507277106515433329317085613367062018553192226824930027768320582506474125482348851946222658221742611230002007880941734100579220496342238049370079656877970756712489992985184630346753099403842018692349108062427029353767262803267519082091655536038584261266082353463167665269126427658618186070710796118440899480291903304614347260813918906688994769231795003882158435737647180453761343764050064244210723669394171642217967525517167325673758726983704278876345985789584665098334455801156717660222133546082773926241400997386570000951486808917028080388793053765534647156993880193944382037981943817387568493007362114834174947970231981840093453962905881177960780573670995119429410045799427180350895884649712947673420143544827182358287983251484436647657533219054440581128299600255449127494312448414372199032611162977403439421366972191671545280781785071249360697653515986155157541566441428020119196058483364604039767356971607795899147245938911307517736849820290677094290676998481322407321519716346998654982346100290190692430820976324025989180949745775872997967914088696795657602475071475458959444602275648761218692053554043617803715670434041327581030573242524167559159565824695146199699246138743485806365999334573501185220961930938770701989990517254873818585208456069701229485732806584466278928838599849055098909973346929643383363032248326313150636138641968044380738003793770775812091039223837080124495945079604938489412732448738669727366552295056058947723631989114400965052858308456218193480900352092039370814766751084895394183718090309018115816150287492977794579178348257630431860330533864491430089004500997181724179130066998388934358652527472264050188130792103130616731996282318250872039424399625349982494931926139908613776732421274176698102016016641065173942079301641834479400810178842126915087472016919167984846922175766586069663662384026617453509365570720461529254403528077764221788077758830230225257563910336344376147959258316823415495150273485318668839413330704509271770605831376200878555136427623050500850847381340158461540887614018383836201007859067244697261192818805688509912601880310036790383279069847653981932526175058100024621111276333356659794781913722911622221573657086748188264942711385450430389830646541332790619501573779802216900821196877141020183155865128592510427478725196188379539092979041756205351517952904241383296173648418988007233444953139906506398092550733994953641581763294204326512330724918034066804985534810103904090984783012149067623158027936214759505793114541768801750384775111233205690730713417051531875250070170134027473419781978718131954735637465596662120947692271236123130945594408472422903415236696922317303592029746277308988004258106440138411023000487952180637970008700275064146384771899502944741073179358020389966941067750073136033945870313625526416697918066315511885981697485388452789949736783762200639118139207837038534424517245400785869574850136017213168023703693041629614858737614444742226431631718519445838855815240502239772641953840079333765918661260376741397347458506012572328990303608817947671820533296120274015200164910146657867597760016519393512950793228862238239100438532494234439327236984040759471935448034463097580697252848124277505672566290988874441423397106782363587740677711928469144882533570836691278825938543655095261145042401576388869642503019287108248166131719500704736395440672731733718566244635975958521807611105739765754359913433251140702143361239166292111282615751008076288669577813353520588480988233101093808718808205868619364002184513864189569584282109002516833647490926180548328861881169298303165551030453766365210863882920416260324812842388283063490222416718410199622983600966386779197667469644867640486352348023325848413273139186202997285232604977607539852987280992099199261708018962681523583922444077624953321423996819518067591884022712077012137319891068557859643709848356027167904938154120686322174595513518129612267278827840994259623900294417269121333309368098511289494831387462942463967894933684019184757800362532918859057922517296608422966264442104413235630525245874567274668270895418106278091896179378110164323758118216417490526803532330834807857299266193492146393864891383865117936067977218974867508921145609602028081248822564482612994157641335984166490178158832527678312933761243358194212519612104498336053668126045121872107956186722494689206733131647682150290980515608985129840298994097150380825906532189939164417839207987569279963479743648708238031761623469646814752550812091269930905156615350274093884399244145259010092577839148863889421963054428712242374932629724193911501509148014875393973189364733064763848473931089320820628575404223488366489206959078297894610254912056786677653556930295151285249466266648281120781501155825593805252347624070584030630928858959355420658041479256668287056122797681263219364014098467416174454966363669898564342628307510948097953015463932659614357300212458187470123488992916329835916607753624538412791544979451632346444194204122747410204439851607404986643233153859499119510080915413612557202626322489212582474324487903047167620652724980951077988735022141099468059775348409258782563580585158073709193648949942343531732743359403330742137918678355946857397827481796193034169593130050981459251038221970876526371545855044250896292955929687251885062864285272859638659040294067078518576015088176509921145111384020466368949698404859159372794926328988412428672578805294169903456308207054312708582441173767981263964388288686428016958142676053038620426136170035913879654455969543514269840911339405124185298649647860503301265697405698432614918681393615854662709816460477905462739927289845597461147986292607734466086845142792459053011013880734627364843205654661026144815356122077747223809783710868727445171344330873219489646759449625688022333579391095252453132135717261767373729358099062781381816872062449652952158736567049104855094004527812999884552693989348339575412065608516229347119241407867924268646261115399939546294624654310477020996872976969818397324905090383779630636517703140995570473340196006901897121479382333337200294930233107101354745418966245487304392416822805054094998922557270000431521294056663520300238022452596392545164249297083557540842001362052888480523695189806152603831502770493044582567295957555059838859929770548279597287474209857148989753067544312073122103227436077417329250990294803933258123791727476297129078702301530443235851058493290590572968238033203320792475907719755658265571245888269073210258350608119392986110295093090312121954738962874441157356181525702313271186561061732293041248553602625189349772933954046483811315649474186797860320817887630594405222141978561561121652936724745435972739423680367189085835079035894346912303882908607205327329138749727294858005936720816040298165897415831471307280928768392852545516967653842774802271956119541100818426131267295555115535206601314876193510291824396563078961206483943965106462543419037032892271065230474493149320475624264963610672917226795410037375506576112719874970893996433810484954076959264776094258999328171179336216525643819048634606976016896600145338513653777364285138239573773105879955681144737501874793371302175624447448502132972495654286075124093499018416695516655949923323036888532634442864114557477261283332209856478304985052839508139019938866969597696244161304801940251037169351537480101281778820300870612945201431213502891300120185325826022684893063149502223513061942908428381050228333399208243583852208845767216857212645467286923882966433320651669160469136433820781945845102314963403985170167102136462948744106696661083529815087766188902829897982010725004806914279754905109839908675067260420206802764005189238032401039776851424322768158969541487625964182170030875203239002566042728361996123228271645370034945161741576630079565755381367617940617610768992697655040549459981189209824192715212227641394414218037114187572382036066106465320676885659673200818501580926762212213046950589999983023549015047089647199837215309657133546538250703837690461805288141886154598271792814979026284672535174554352468474128503676940936976935833998661200271931110595465193865607475073991879913729088846778208277419942630792432508167798151360200118779924990237735510122033087455539252839322471972319711927162427387538076820300195708846043385613867128819974316091232329264776731980691663986916927105058823982659232404354402226813304720708549171864560091027678494400532286053874709736019893691437869356521134498440412180929693990213409243029458343688077067803493605625050955711786640868700129938224933573959425046992084527670253207476983430836599943409281491961622451759979335736296899285782614561315806828938461402633989552102216446803809353297873874926190475214058777930264214080641089224720419077318685625479858017679349689440689346337948933192187276378454784314820266917161041311808727244913594689017742171561808164684929231227546282406746678199041741587952773858530025968661430547047356266424772925048683551344617916267946745995844703132240425615461777063037237849536616209850335313851360412320455646776118796577147806441193636152538400272070849501940594313502150329035167031865861000223226263375894183671326845689893624541005348066151279869278513816638783197828986486977767842307642735585089117672710036577122039786987549777671893221646396679948994402007036248533846339254790923462475347936748399691348278231505024057306392741577477581204295680833762735765852809734292115641171700035425621715397654463470074808653681389336134577844150903089736270872302721104271617002594315747182359458100205888466701157670525207795450832051961934296938432227487330017438267783483645113765873478140743860491515416632506603730906535920880767584604791989432022636275897863217057814682237852944288877072061128107484525899428207306960715126368151201992312604984564474618427181646539911474633371054889278991422502886452418743587991891358400149955883461885937774841961266124878307946807127980593410949816659442560572771529213342508725709465346706475985378819999432022800403481626643641206848804193445065239553171391448033596576587566791808401988337234311431073156846121649595318944623602680644791512256359024353010972943436673806184995721301243396699753346233756840265429837956529551315958881782874501640340861684056593448855440160960252565542798490220641060226950561827872792916734584420694364011868600841026395613226565126506460586874123769190754534255634087463515130727090436359315398554272820641002261196645444563204599814201842930701351866673150488274182329232854953685482050010728159291465918887094415927753820896665920442212824954205322852632253866300233639273067089012615479127308155504964221764617399755901108687291993431014313580644403089216470925094786477309246628981647241026688553989941501678241427745225247021638067575366333400909392466974654449872453711091051787780158634028742424281791548765434725996031749343642367507963841223615120270118392370441020683308453601938436469959781138553797245752301082090238086086086952454341312956007154414366406026322566475782686817799481796100047646653862733512538359969084394105835011181922463630719251892987302139712956964713077116149765330789043957070051758624661303972551754013341480299585124875678524531977501722030002817122216124264028835744176128057590594655845179685487599861488138090506672641225397850339107324610942243594531167018967207815972065667959189999789300548772088356838350435190680520570219616704639019245872643989872616676357370047306674873028709741731839691056932645132074925779340881565153933111845017712706613933848797734688869105938705422664612038972710557799181134610357769389395550265264054646591777964409524404416630944213607970215195878205218097654297043763616834201200824816498217841090124055277553005874014759684943956666611266911810494234534817735596364252176463760357494180519802931352958041679836203015123177486119426014013983101383242328481838757008367225285665512743972895597846935776760789987970921657734666403752821173829119194967522638520710788681036440294768757428294617616588959881326517030627718813808757844994174907708696859101804137711467152219813239351596335007733111162003463448829810438415576025164981632766399289093202577185198118834416676991603733908156542807833116221644947905898843767783496037859928850712768873824994826572281021015334346595285689546911930605892854928460949568183568564962275764308787211635228829215056303881941636312787709518363049098173994362905992123791254036680052542427955239157266742024319156884242866554948778513583920360683165391951174678921691519536439617104075001695800749521256158443582541540912853450202912338141979702185141827524932170766743608441098471921250505600871012132832518537642837261508397360525368554933694587874817223549278452813909850688564150318781700079911650921263793815391406676436314914219523109865609365053443167633328646026252210565608804369055954135159467747163344582040436347125929504361836321795625690142590464050727738188891990616674720627247595727794981262435450630826840602933110275972404238676406386025780563653469074000573506966355428963972456087667436789574384331084333300157927372388484766318184735628735867702227368208524439888701204597391830883192607859220157437248015187470288534954235859245103194846980311751303866596768719521385997744609081419430332138495104554525643508629101602387091691548006966692475238818540793864433494111085454264650013155970485842103991161025560660856920955413275919698000957194516143872372578634993985236230168895481072137886533532687127487557521625237431624323159774459678007138250422119935164219638120840264785169599118892742040742318309707136133308821368178076440979636368532645096321576815624414019681259872951064836272281715434975280077324371403065951681653111895173518235810880904685941262562342842635888594789778001597132476442703757623308350748605768371876773704043805128660267125068961042047791651095932727090602550530176077898482660656202466341165148832578720475647850540768810434849003683247119396331289692019184924949763502521435035063143089011938392347943205822273077392800700052884723234719463466534692475281699857632139318506059057801966018062253196948935844653452611115216486591602186107836883180507726425878129615826124470985808104074953110315679229315259543379747284848328879045863184632912027214079391354106692289859539630025896148444247467711082095966777906842505168159280331217814522059257861809237626733551876149884313373785801938531385608099668720056754257716995316353500975997118515469762173120200614870941257420742249403919526390806782528927570098619484066888851874911459657134473837408310328539941788503220597635588079826874380608140152147965008534362111996907254033240442851813699596089155507841768619063373146086991023085085083868546235842163741842617146568418400880055517198197387552134610390102401160739517254926493716837526680213773801351854593318222928785874375862350443233813153566974763232265216655346075249121560200108388988097313403218824992968021699578116649473284293685665757868547043601586474937287500624891446550210711635838119991463136868673641903891087434988698295754263351497915120104953827047923440170203270359073854435120906040156913597949291048947889023388742293534465938324153893901850569354153120433859180285077319654055190439503309577508224288947157411327558972867252754318056076424649338464305256258425128789696854773514502258132021143670328600265534785991516505592652089428289162558993872486727494352725252061767026870060269200508314910767733622624234502802403244017370657746322571306162358132591539312349158701554206819526196587969194053181594524086248014391174476377286286594477705471645838626957128303933544192145662128335224071231118863174283959640077073521163002183449765861954629826672919457474641433451723071322275837681398903289655363221037124142616503660906559228510057036887422664117900331380093207780279204967413262609537595760382158983606454486741682329550120014033467430561848079802456521239001159522164206845147622292693031412055178485442323989908436765980484015738033403918139087066204195347286624233479464242433138912780417732877248715533206328237418495274139519151728739538734377603155894066908114418628249007586827326393296210402255829847736053093482958357985601012334269264987368843675687603068335845652752349968838505296224250972712194642791337296680759154875390608251267044507748024012810984134111009412117202690488010438321891782792337750234533447015163257093029663968203956787944339617933345829653245667957787875595794012987786676884030139738964552823297199318963578140362088171411137789216406063023172423857647581072180302838455205626608386366303926011747449871262915760062089503431378328149647036213486896813304616372423973969870742023807376254903085688898698305546365958747953490627888411472780849536759133874257853107461026142499163969530784395992807551990776372448572452046930881989413629797530798260154616446268830126006648650405326245135639834980916074480910556028173726065045595918966379563527282423532688476715738772581182429054596351642987123556303969712810886251784685417078983416479861723690869353051109494679349205663295959805570101662057476407328913505110811174145375218494224032581589757284928341988057029165400713063543228819701665241101365706802165255184471364255030276042332492988499377088240252407970206142552853557038247083361481484454668549949371721229572008945478200644231255526368186894603715427138883427731318302057502566473457663065885011582891210394674818181443222487340772820731230807914160874690273696215204237226138754398330316587806354802372192757064981441607887957870940800959523547574681490884355246897679634218151995214562571790363694299696772214305030020832248010863451014518969606988247147681014878967175170087332069940640504345834087082768064575241345756170895402600888757111459196686950729158017913074492372610891518965917250061506130648338798216416855681785023152879481357563209051660835022522031114463594596959544275106622744900418735257778113454723433284774682797126879535029732785017665595639595020190669534134277279085377861967027451828794593358822542076680823690274613121257261757915985764138682411034775269562632787694630427194715965607391810351605483630783985027034362960224823370691269758281775158857689830261476874186342071985757885023742966206070246384216869657560963963986957495365433783554648248148439762751742101638570242054977021138359795802761135681649230212317265346096334045638013141709769127275962693828949293999402466051159877443521120956500512685478376955591196425954139624961841320380596163247989096799976252617233708607959032038502443979533006665429351726754430312092313860940230119854792371270784135674632400281727698959690337610633536987746400580531120300266146988311586329886291537644006985739935264488751485690954453833058279626773572942621041115105197437230305477149035828093419223416128248383479054978239240427641121925663133367551244861918694995511990168574278310083388804297603688344723206857785850294886148573518885038875395291882543947821849267468212407430509445471935080606253703561215973271566325762097170881592397000173077699489694045186496641823408088459091057989883349647885948545582716525396234480441373343683201855399973415586519477104462842371085863034335590828799805539844895390080902332136244049499363891732513157203300938014208500115977558829871838868157868992978925209591173317154740349125193070699842048728030522296643491060370738777990556376317330215862016532043174782520839179631715939296568930208294409427660444144077809750882352228666353252034943899347993290456924685492471953310472355631437561312403730970955197419456056379576390900935796332862991125057418965530165771993135298700477193033394274791235026383347578222164816389291120832620260291971732875643257441385190768988016672094938734402984135776440551356917367213580656694693951218973427239567056536685484875320453951625073056646855313396431262265165725932928558187873793003661194206992789465224919444585391601735536171750582026808487829418889237904905705969777389218547353626314275779076990892964365460281549600218159081998773457545493090823219408495437963405218624212587550793751199308188819784685110869096298813829810713747530008234603988537839068941771739278688289948069931986697299014013687370454687176860526058697870466592875521487372317817205873947927336909444886038804358159444181050537631710176002319135049312024134397783277161947800177942893177148143094168754742733914920317023399181842836316130673690886264354957789941051599710032324712745859314410601866260069296259962615600905907062947739423093210455605415352604954792064059689435591337073107004586297222276431072350001929554481681541614090221343931346878363884811042690603447910336197330107282153516030780254616143474650369680996789646659892449819855373418238225776568515061795936191401657869099634680972241477104609956456683194320137549094483318250571209153825239813162275538932750968567124362344564947943791943049352610943127419072131663147745985183049450685451671677003026629377482196891246290612778724569665154203789784944652372385986926035326660845998404089394970947494094541445363187228275618969449026581906484027951850160972455659448341366494707458104656926182128823752951738028568772840271215479503487410611527024333620546474406155076718221041881167576537721582785208739628978268939220231037728635489714738559549907838667731896762810781002002438077298505025155563346735111656193484216206678005343754337668381363919563983438716392159672135604946827838681382470295305059427101015398392273785428796449764501421914946145943921465731542629850812972194959419559298356842001963391708712400055286975474752256115483334993478294942308525945470065652972055930561600816618172116414402155262871080770830943788115177554085786389893743882638594854728725501151568574428401224340438646721720626473376895560191412929308009993740410325509124587957125943721903140476850684120455121858833146020617093301343218884756460587770655499380238706921563013401999790048141429569978363046572512791439798133406265821343861514001923061661246406378567717905845575382573087467953421248929369563639536360459381848319120466394193160151731129450562971435893446650588994607987469594345281529104182429812448035605419617288109232883764006203048709466524338388704385423146653656197144357455848330153283810713361060944757248404582232446350609809506704217261129493153130665417725938616308766529059745420324900221196651883978896641641751583888554697441794709883964385213542270506974572901008586467246091273142890525614945001322381783987027243890414909960052373174619199390492163748025819040747755606152436295558095573875499957098220104738145189843141081372998042742997423594754575138943778039558636274561181397648072818781405526112183598082289178463576631341569111844455633440404625582486386862492541832437632321301938280152019206151328495997968052324409672310054760177655156823328586867072100808713197964632165168795337373344100272803336590123361711371960592244065585616021684065460281413477778824213525252457877554757096052102245711924030974495480785359070576041456706400611876230178874045151418163002334800878004051465031904270625763614844292250085775883437926270577250195947688324919763109506733746753483708229003464226630308336536901509302866016199548290466808622691762218359080939453942500785945625527591187657144182717259481599072777867440513474441886333701020793574952905393733965554130767203363735024139544961839679996440430209136891798291897349317544343260319552324513408595152672915555440427206398644832672390010641476610816101952058078476708396767878757400637532445228851804561169087819387148396700486990423625592366964812141785299224667941568549187385605163759071472905956378903899665610528858818271972891228389295296554913649731849939385402429946404539723374938698161888664420873758177834715841940259279033323105984641501580856749449888306230837264742339399889847787349496610706215560824598982162108172714297685918595547472612501996256448409178618229513730126265280928639448402767590059941728694628540269804010937737959041583222351552044019888361743184846934860608287356531016855239587102341724835236112249554000611568626108850681760503517942763826294651504495283897839048509582278534772678977861990960760197410801695701660112876060307705788054390971397103252091102328403083420806902542083344406507108495005638930111551810677064014641230020901417751119362544636364114782935366021837330519638275376405102098003776205507672650410904358977855195931809452078811127091625374929573910391913549104537218506976791694749037526877967269226834194880511127070394402764104944372611299994542527806815554040169949913489292986605916930524933726907207647235000756846795232561217435817024388825306669604079405210090288423195822895427808023851647714916560267285605058475608461984094754258997519524160598127704712892974043723370579460375730572662365917552582200706951040150136782552993968956454551009696868999402766503270560072217732949385520815320874273206545517012079222786683811303474073345047306464132452712694578189797894199773277112936606212035619925066637391856573214338914026776169505995548151447047354271990507447770493644045936305911122112838691636212640762914318707210665691367764649640439716063765461780999314118419452708162197198241459175256649772078158069395823566544888760421699789121551285289897383268334744213657973687204047004005251054611595989573441614016408373707915617204649918084765594155765740402789986642782157207832220171283045482641154761642282212559064521738868286536341241520508619878419787821473029373788004803082368332158532135887237009074044168789530185657535478134140383071378819784056221697629613729047925942277204426022627485320284150844025901979388038890451928646301934076126705791203845023650202373867275813759895084967497095660661400631226446927298090024589600325934977014126247034743359442912320348799532462489335724302965012221858133150904279964651426786636726676006582838284633878753961533282225381770827743005355695721339830515859864198347803069007765078886799465659847453032911525377069098735666083217498016890615499955660420521827862394000008280867436389975245630315429120938837054293389675706743162211239564311247850294790717409054394570423139636792478912870429240367323115484572139877244271973305433593305192528345392837135150329869798392162291981103636278355985280682736655034424874411478300161471018850441542726486746755774027537063328116271900618644723879397974315854459376267283148502673116951072640378619925547880810522940178179988339543868163648077103196806998667686674798047971027592821360452400500257310400137937493444856082192821487907884750493245058750814549222074790168795324887846343211401458435534162149376887742966233180827125421518130295979752669358576632535150885875739955505576412087358057411261540779009574134913384412469660885043180485469693050859410981584068629776970978905374083119425185370555594545851088897406397758375457187797170845368271104197673004418769574991898695985319944124728943917536491267644740604919993256482330306735468708359286633634753110420992315319507328050033230112135797926886426052050586709129191743687694192068642953602354637799710135198741618728518075501472106039897189785239968095620790629216306542650856811355051693843965255325631389942178637620316515037655325152424921905821657570414687177755572542380829054291940087410776004068299378646594900309942894232543725971321449897356992785841296473909741250519478532479786306658673554251746265789633715475831000577926008656322010004085882394536721625374157702831729408263539134612617291158315073585352736629182891024440937553716778178532008266842326913866065863485062727156645333340944751360315215526768008464550556785329169407771399292579477289313798468409291402731151213776686663358118959251635211543053398918073481423932710720974374025752221836309439556179720028903665072737812214863642465235520749198400727265537181836031451847081884415719218115118573912626365308021669673632603288658534700701970601559068725371946348334519559349167091630336619225570800702370087038198571171359805369099838312693847108549736926685248087403566833471239798511530270278537580022625518528061458016204597823650781136979977940543353170706233975764026547684498278847253956388276093831869569418564691942499641941142459213181115330525742623639644693901454583087232915410414569868254516890350426704136278114804458053373906461853391073477089969247500274633436373834531434685276907603915409775857337049661877632441337047018465194145295310865021898622139216780050420945091662408248836830622990554089293969751979044387962382974758006062536235286201716131201905174820551647807762660980814770718410787860527197226754214795393552499754554666556053114777095732681425568110786752203895646594426679441035368443905658749922508522249508813027623296521703975659441447694317890877307089785815088350411734440595487390427369809368305978182968354725913898484216138437772747311037600576490047781162925905755328663701761853506102597279565110703970622871425397524793729928199602508773794408031260462748698423463628917905106458712528338855331180228307485197635535368551471932224102644210922532758457990009520035701681680277514801139091809536025391381855222672971072701082137587394696311722652506670713581386901823835216341456168937543639543806354216408669624546083414682375900987892867224011135379608846703073470512179298572872240177327565892867202685515266027269218345766857796503667427506735904117541099668361658496699634782051295970623834908132536417197773470838660329899111453747931708896610938036641586989488813086579759159109140625643220873897933259306956710011861713725285192300123001432318580206570792568263100110259267657032825549566213975393304267750790936600542031648887494890579085304956625299743180919939033847319041915068346890323048707511598615151460307609658336772701710499857529583660729277238145686173119338552665591382394725818362788507470514007342381974459852289662583426908092751462737026596142454747712430524700339894949618181927613929531432840956908451455665466345352449354236261736523303185563754860037625472991629040386300544724709646493797324637366860251084936174580741951727130252655858543331489126280341487642222704967687848870230093902073206918750160822693376891417722595806477976585203321619308146029551858569491414221917070410529762771588753258863184741777680514612958996049326619007464519914027438177609249089934002658790209578764353858523488950646994853671248954044796921875870341442345636335374502885318730992437614851661053903868386650456051557608772107945470856818642762936332538975887649003931501149845965190444844384336643780982697333355565708884796436591516739942780579522959480481613845559468259851971940427563248798211729361417578021436980017771442751835817481941851246250423399135723419427760001537742316288420092461816099551996838827000048817651509938393305250127824622405412089254566921989571346132286178031723273658372672713303615771316086098578894196768199411607836913857197998023905000041690280948196852855497937355190036599394241468923315212273359069088352566594867164976583962558748613254710955227567458705623705562899221567495037716742022456619139073379691319805246667291756036707810630994951714888315291514461404280394873710418134299422981148456560289014813312661146178681332121326218259014273276817244803601942539962063048681949354953364460472500072471684340052413687332302608605428628396621457692196056839322192768924188265659288602268331746340068369636642451773594993226519031770873086124359460667628704368201082333999689251487360797304930012729058888951845498729147759123281110791378001030778882956424238507933276219538727627631406702274052151348635901601039804939961680018536840401969902747226152708531480491624500828085174316809677645674690515287076532284109310451001410849422316478019653711712747880291781258095793718670261500017285166357290245771045098406949872551937671171431007708434116162113327412135275988002349064275913896845045978464271074795413687504941007463644414666543850015756072384215834379848487089525478542348591972097511355510404319448529940648864751769002118592894624048283607719126806612481103482624004574463194742727694661544378588120304627519541503184125985112212028536900413941998828721006152404618410500595629319772029532473159777718828309471035786134220610884837850871751077800818186416768816480636908183730284474720886995141640750018801245051460451222051094731953636977882413597927377702291029919791553018846945613497653950808948334162386847500865301904623065667934873388238486048046981787024397256440291533311195736727769021818792236441815882640554622017779653981978956297170413468396926097322282638458748186076469606775889290750707171702116990717929747671153240445906779947871491070853334725413125479625816705665413618460634844514905140503499183235906403755180030687734993607888448843168541784087562980417686648381210339644322973341319440688940116865932994501837000005539363380941049739199779432819263303106680255090405842176387877107905447282211125063476483190120068477408616934770101667444143755699534823615459580926400768195085815324105788624948181325653651663322281167298158760890840998507233891793773748145663982736896313779347517575085457730466421404511007413320796597319481400172055089815456772497501845100522326257357501511063905587401280378343585262096069180687536715510817228739968291588965886898934586357501677478037933417015453023206510293529130529639175744557443165676378868287523565418837946143162313483390729811396116363429056652863055307647345286200982044654442585103121271434962209158935162705299154682857262788765058692316345110763682402925383675790801908660385770774598622818846476235686968614757436600438859182991584966568240528458485567697579367915447256105733635892558040266285203768151350875377564601782554618770731709924775981456550899269049660200695709730248863415556814253936149190026165067647584108560524227302550815515725475155411271554913083734816245572311236254618848028322230481741871515810569539775857237757681063401272127633638190715576691096689778747841268490880432823132725532880069295939791122689228321898243994946834096186507536711851719164943199762996858350798787271962923890165425001144226058595026853635005597843935597575185116607041560399682754238986667158724186753329794900286247057526821959683373109219882777445958018164679273469832333649105294350986278252687435423236358038789950165380928538601588981700053770722542180311488373903560319077632600823784389832352603930965077688502169830480160834028925948490171613003497355516708650749880304105273531097239562028407368939288425233899515560332257024139484163085030522957160118175803797612477334473280753740411640873935994515123321111764208452346697673925906237035401372530421222468482114385676693430806404240687883117994870231715976093168418844480566258418419251253422658592173235979770635424343423307493739923270831512372686556240854095590576243472770070150970151407575979742159606995243761040826699330919282110988804726110994600535692635913835111870280249644333942209862335121083794152374517631312002359618334890334753168184692332638583347739548141646696008576526926517430521351045934193940153779271985953808956334716680444279232308965262801546786767859174656888340824927940201674730141992154422412876818391168917310618735087544215129464475219073442574830790701071459910978408637122745416360665284274105867399383485319686133452448615400582236583265737257167555805695296037035589992241841681467195938172487053163834980506967331781682536790490942424267571952056520702560975708078149850306998364689524680801304125068754077558116716567339933372013981140893785290203432941401787962850713080590715208962481874300948255884007026922312072691050465005112807860503292770242561302570663239498150247863483649906181345369782272771962243869155043137944529863322365892936288663458480393522797070887060391127865114777223754513320188385861916971208678377867965115917342016675278216260874950844331356226524555923966492206856709067842931436703176262554931091891249800702662795227636198521829731917714341659752725627674366366778106520446828366910975803144184021758270001747365373094625801601909437823545706700305976552386921274004351513989095436526990239854167592034122923958360092106466414715775547592048941966809300061971569673016544182632898704383228882873046209568202909389476239978986339231203223276862493339184343051316173428857944419208279750477495231744819451392828283791101926270354221974493941287003307225418027710850101936281561509181527553243282435344541952954047451539882919900646336447343300097193843064614973383341270701073323848078635368442568872784530699542151525588581831685043420184031180748823704970478891799628944766511460731627978751870501230861748226210077324363251900010015217526316764472470102406010197252138738813276041240706667081091055199463445640796788194324550468721862632526054651538016267198793126735244031799706793344217575762124542096889977475729581191683230684422877058382924405693707568779824851482744576319663030711485538126213871649498189369042630985958214103464470874366404744184351236971525153738941030320995094331285808923661995326688122838320694837160717449886777979344935266922817448732711104754700703939933017650547728400006846996928072234499090844071774263511901916865511545878352296673612777984186821194905677122037943393637797080021579226610841491105106668827911894129995950694127084149823945798460018195013456419622991226902590550450721393466511185857006545836164348153635817331666777294572658208084828180422574234684832872135229622096524713755747267548312310867166741271653750571197669410405659930217909392742363699436817796776997016772370025130110166867198640395581820718440043746013808295279693419045604456988338536356135449519817084599271596095136399238224465300703980095375413074219342106822018293380819121619936447371515434694384602445349440072626968115908866533074385320698459994951618812177109039948823307197392332558536046275784042264609365044858446930169101938985059877830665338327914876218189948943714756610918784042552736279226449999283580948134760770638839426058331444358732868919135404914097413139699254061992588871076913844799596445238082507923406689652218133646671882025913030916641704912683068503704505608289387290900507688245550214763658701748904008345762764115528739535129426360407528447928951066596191259982171638328829209797028720284356162164779768860289514627478693082807383450702920196862805733528030982363381933377982653277819770293564452831051663463614447558905603526683449982167527929152281860672931652045711385419723402936337019599613530267798023627873182493701193351398134542218532616653831289336996974351718736302765177694307655556752481383101930160684574046920179232145100253368128240990640573705886973273501518795911975828158657363104251062210599507661306219805070901066340791788050768849781641471344293875602656413397285340690451535007454398126056930087342925387649084400120621397517856994641159446271088457274032714984346441590935200564533882828211809610166688028781932436602577430498554682360473615228154760345301676028246427825007734050260435751756879594423065768803806104678689631574681298203722040991166252697058461281040891391759103782822000831998993702951677382610198782418345554433795914176176532569760900610436929010791038063023259218678102314309957768924431880351477952532997294379736857101685307219964131246462549027993602243994069224824263979554014827251556383311840184449463537777451895978553859553237263903466502137010855958814829648276270632686705916428371287531705972935301678413362324232756497329541111995350945697215901135590536533320338570565940649437692531088600382918991871722344556193497521780787819370424559746790780960640361079551066613158175314611900174961279060834958145791424121975311581390459238793362446244204189881212903694841356858150789003281048288621740331086330423842844242025571940866297327790885129438775600563271134616317487235179624753543493191624695295284146301449598077777243863218514657390307332058483936926441061916076469675898349671197347013023567233351455440708256796764838703147419934991900883781176657284196271262814637282582471833623791267833736167286679282408449151344203748487961507326196835583740246506857797760204182500728744535051545894816886407495217679219269961602146677911210563666660108688752249398355004078051729837948835962716689947872907250627073194150335226014759659697429588722222596476555322774716313740811471214536486441225645685061461659787059301317938423468255893558415204983821896036474159934325297075791259768284361705145746911610980776406475287947764588737001326672988971200285903549031754502608556951815658289733158209709586936517059957158708770232676434188098224571565660550126362443513108465143945521340331292635191343178682707344115774002599425619871923277845437474965597916912862815730277894455182900635402843422920974432772045593117882870069844128545776225547868686819344125960309840061411816293742700383331030756025837364652070568914239462637572918184088663921959227485951633273209583236146741671248501912762240282515619321493155908592507116300789448336088887226252055970546533099850075946840439499779545141826753032609565808747951806433874085428999279222103458509142285773070069913834541011222059439052745163952299910167419837320884594274662240583020971468154785046317936301042861783112894630469122330034530729990756516985425257911142511864860185271908981643569312809134215950406124729788743664951393234533566975489362570161640104063647305062198201864793322964574703011899668581061608503727684461668809667649333307249543748397898094553827932108624079074238041491309460506919722592249540038405122172097740214339184623720206410972629546595314807754543305015949005470283676170945798868323423704298452340151603998533086706444465410961324835783345173859009941416122034831348180610730693426017478800893458586174926400275548398205908397937124546477799713941946757387608967074953202298809378787211499685514861079544025941857470594176267415293726614596860422562676243888345978203487891587446915010792930361273592835267038651238135358842466795621393570521621968092577926138180938069306752916843837392252444371889162923808009519749854042676167234219012193678625522486118059608777170471218906133204262176232478086128288159407082322426438264758819570273036466989705822845537021954447145890235750697818930714936584101742933378598556411722034121999331542969162843606058039062221842847875257368369682543930817987646712981880170348765939217586439188295782877783527719559204099218431705672517611871852709831467976196674906006672012358624290620134591110013743820819237919043092257256966868319537212008421532138845470326859537356243632084344165824659771193303999355783500386734474433103696250505219056195533294200028264678455430644574880545521641795751096389916594322318547776251486753584828279699052721395485380761491479397090599301631149182230409831462846789445591563915470990092785916827189091637344024544794981345874237111216094005289232868366431487973260830359443527807615446367692271227854464148148019581695288049981915677484739744331812147701596461389871822524427455063667289375094999597220598852791426696381067753027864708120164983920535448916605680101727569735989447076267627111283752418267214862400635756790033052329771135001888869315463959426101878023331913096383065523758994074908629230304557528102449167491253816348222709115381691685115170994919760411881595223113939998432567986658744021794838141132827826496211745194598921897458194447094380507733569901489485806196842159351622822201767200009482303037046399771536079615258281049995002089587352259018258157360358816886164560512858746779061071393377589740870706520702668479959796350173221486188130107909008858801928519573580695335607222292149257203179475940360078426519211937608350137464103441839293437123238891138695323580225692453651202128844669841610399720792130251538843300913512594112259656652128596438932968577471292641942751644848836466418016061029685533243758545213564951262314223470315043649393801291023688123365714181865171695903388401014842479146836203028998599394562518131405351937224090789715588236172789092206946689112486867834956993666653419267835891981929428350050312638291839714838041028051501435827178841611318062877204369411510768955070692480436518705506220552058027478121841787061146179277746766973751311300854678924603608169240884005619242645139480013070671060154617739938230782625444897867866570868368697118959915823990786333354983664186283126814031315364705635467080045014237044420260322972513473469557359588681127381806837778596795003318603678666438857904516408880497062866553215355532050585891569043385457293675952234575272534058813862187884113641086894252554831426048984432740158702029207323244788996469113684282103161378961973903070393598822787850643823087276442696296549331889096975503364343551257965192010456898156315751420251947384359294895763917991970159823794977686184323940410520389496153141219112881280814021802312638664287597383532543936059826779573964286765675741001539398823446512338796629434673591533335999095152596975743803331349101639987998996012974292660104990408697662732315586569153897618083895496226267184741030407195950664976398853794712336434111106212461674236774021728392384938121961607678324353578057223359403470834079067964981191675023617090543818752951440495215932665806265707008110127567852548905869909128600562859016241183124019076892401716754560722994932324828653031040473325667257469910144055958352086189095974804241324041082291111978868781609552691711018358506231685641049069412518236620812824464773659093761335792524825328036669843547865315829733253651704114133783563233414794564345992592116625015321044378448418644513429606137564495128487119753168791638287969383372734010932423142805075657094997483990876228887308980981899934411919704558170390780136200972846901113702349217702932047898456414370505867805596632634119250501288175651104344787208324231909412943179989264809246621138203733066390055295729347197771079056152287605341192188929099535094534658692388465816811967300002143776069043134905701770963271827018630764437425042749011086068498824140544783287249792813303267794575116017991130447584385940217644768737784128030385990182876925909973894752190200573418130609993742001556858740358877436464741508383377763036887570992844466180763440278689803492416566269055423472253042809404251776444507741794847502940581578307105674153980301048059940315995391456375336114883022983374658217998375669957754187091279650800744689774663746661402782408583555312657435245328898292292443720721713707416890223965621728518360102683255327745558589097031774686619573333131188933309461870699442413759309742027171990386106473198346922859181377967943479655086100126855284757275608130344091305497412643736573643977300249032727080953403413484455521125350255530960824829634941569998631356840184243722688847363815021481465046842152804666304207912414541074055818142541967526635089313063786140573522950163878987782125393559598064086484895925240682591540164307930341394478572479112918032092007760786301925100821921227103789064694824213337852519869988417796707864114290123068368222293920531961808974970166467400789143058734017431242104571259289223217524619139386834571107063773023097424754136273652935958120875295858025088319872379954247804538891365841713105703189559792097642561957474281560376015628005041641101142248090653166153447298833111499693413467391206368895036125973439264631002327440723495593307798160302478812812702396170996748512908927589373202735722462920119151597614040970318496743503703668896387131750220728260738427393917671861977472158261832913559387288750473703719670367725446734545943827656354378528494854742421052752471601799247646571462612997389440665184486610354113481819372915863753312432861372197012658262724080292795462609190214939661203113655330099355529892785260529231573935061805938663580473454874741744333875601191508652790319919909644304561991072793758002203988663484593633781776840073588335522936232438073653810941054866947140833870646015978308534734324246960078317708436242897358932393332870796390317854420248422554799203744737835873536414504120642263042625929812838905389825402482543890986074385024625793856918960929634593483489317433169024852556787027927012418201112693913123947034542143980783024958620907689700815488370138002787075847665544678106997007725316316456177156655140778228647456653247741616243247401912857540080819055449645981841334924831684730658998230893402248128038200223763733535512021171454230126228077845170351922595473150370529904878350947318732387501960640929987701088082612156741916105073584705301373505032419533203610343156388623298939653279749850296827606016675449913413135587442787840016537469550352274998299418962276281438378762872116484406073831023757323931654161246745091269359330728519073435864150252464236180957008357781355272250148640098285680000863742860808152593837586103880203154924614919194605659816069074037619406996227659609692732993676511842193814775908963907971756785397220648136306463582630376626999321491852487695237172228173014003121501603436888413445936598953828633252306732353386588066930666018909497530651832005590741993597702473305428776262304657140032776162463982250356137701534532051600591129287205352679227567021935909206027170256566396642392993893476889588729467759279122481593676176889121893424598510141656559207565441803214465094254153875867565373924570919816340657958424251211672115313573280970838033400540720870810489572208682554892449027522058915926403631615201154450437838546665445304658316322107027572017999742125591822340719985065199809627958414669791664149575110035450914969126279006753330254202706404612197826288789844578250998125622572862471427293685374773277604149289538471337640170313428597963208448636402059224697566811028225035004940503116086869418009228250515182212548759050251561124570680739537101140041011250937933255559014727924328058492022180711023577523407509308119137136146230335463437191376550307441704525053659992479194707061835678325875190881222676276016601132122993838674445898988256506379204885250007058391416213237036221458282474508871967436586719351244680406202375044495868188168805074011803780323957675664646839794123740084742540669544431522963741972987445029641998983924521448647570401744577414525100206273268927955126784339985669807794267702512606059933881885156280039419328670160264000008891970591628804953013094267179419995258210007894020826192539034446878595910134154448452450405948119607581034821291788167813525416593009447576519420975976042127182622381210639223321408599316986427992276284475765330613870566369212250662810222078251635219445168297699026496272528496776994551772883858093652738947718344232103792662779444642648124472061758321378640040912951950882602235951172558479520349309472485509337698126384027928108867214336334951668613083199839845232051671481353448408941685600738218256772980975716589830443491741016397239700911074051411466392513327539276030793123345045522334941698169205159448654010692666426102298652232983962581249754550791679463512771170399318155118408326701694497046738882630980471169980497612611630041347232363445586364132864800620395568251199886922733153159274187468453968513481545758706629725919931145443654120025784266814547044006679272235428467694351580894214147770750619057845397427584153105121608246404460250984155468136357886074379968459058120116068399555859698195223564848577665992996115186134934132045919112408404973053797882838459417491775732119360548159706528313653637955731072899826659119310713776443054400450803533901327136509511336387865350164691636712964685185447428698610843924298658591966416655358901630340689771376761200654202636758478137813881925782560769347373566099841740114387150610776826421389088448344588705660820386334924612721075510303247654555377094269535408516967609445050056586678583353237384096790867726414309949002012362311781937558050449782741277127146043841306749829038916946534818052282040088426079258795702176997610528047093408696927461953196278459794092693942734454259986009733089632926812589015023936643139490919665064434341601082746362682509941981414505758468349386447086243822059553137017425561731532354452588698259069573848823536953171238386453207454550961748847630862097955260240194857375892677731943167434729655786149763999911839256957263223491038834255481808701248192391378305952130445729374621660517768678216449490346373013596029507872386643578358745554207242233500045280969536107465198990346328867300324270278097072935172040965094014536966135614498290703233540190397708695218028256283764028026993350948444967792958018581918928418338649150054017204113653668671221826117216774048338487461896913829975203839410514247153738449708286516983747964003656054729969289267758902879356668140108480791250850951371041668522222763676207267810686183795474050471173925204144282682162685177585109578747891490067668214797508834275355407565402218427938665395113841669859158826738868450896439321186952255922510978345750030476243906852152179898994923820821376082748279141063445460362656746155847246488489848489717071969572424794190153593674985629332279581341358874171128939673650676480563266987774070023846684734649590493857575947004423631599019765853276588679527043914452514751922620078369720404998567699138769943697961065655167875818483280968070504985144850023404792649964203402657451706359710465474629389096650470633793326193378782371041673175267812052521617139824027422723287032299010757560240399697934452799461220372585660840269633643750214855719624210099402008018812131496506984140807468326886067575439114505173381928197861166937529993613707645613868901682208093595224086518714727961702155790202129986930821254845332710558926334185528862002425557396123639525021505220912286953636967841744703002586327534953208059260386044727121984034700475689810155869048232348825152983134362353760649980639943352947123758581877948026474150308785975472497802320233898345531911228470719794601740737379822369625181977092204814639291862117101156089253131407441137654753405069405641098018310600258140591490719592531212135572366454416690016864247389387366334337980576166144567060287022106508420643544949219109983292523746300031451202175733247141571898963260594596156057957986151751188564441945730744901715961968542440700440775524881056409624840108163503033800908673943502778135344409225590479579583297629930612583362081030854464785459394040821256075046513689335279214033946577011060823419307503800648189873220433163415729951808032799523289051898225771345343732990233301562242214337937742977454279800549840927735719402636888094795806170316777550974911470315998219599021583822980852786665246016059373386370731179243053288914475107527098880715164862976681213220636896570146644986048187773139166916903809567207755478451870710158234514616626971565458637180527889609537121214705970614151540096044845371926673521123674086252971235795984326649971185635795361598077475588680783205182319792619065800120558087925575966093472815046930315968482530942606217563603314983516818966581863438672904629334101900422255768475491564529426943088085436524574287394018283121346840286789448073862762759417643108194282086128709548680305958866986715729840404386172419415382868960797577360845904954008396503453854726222625410949607905048413715318346470659955949076271647008223938221972137570383922592555240654709294259647346656975398396462599631935512866668915177379130114200676991016401190814690337177698901423396558033487938772371014839999249160188872611927440883458507132099935446934527721978435956131134225709375768790838623260140372963825232116629784779274099475201978464736601799192767572381209097795453775798091049013984271266787538521110761721437880657061173296896599815631138202288817086087230350875237289181092719923265505925696014580456400114163900127769982489966096291255197366510305765438997487210442446428750652678477667954431339128548369561638347972776464596243325142007071604720683467729563370275617302539468872133353888787522893962418604282277152741413287210320651224718183153456350086754354518702215472293670565863373478012229917903473800804298280283556758345522533560046887809553426747754393967797325383333288025836291308263789467016039251963274414091861648846165903363070004018324126680247730702417306483658975740714798888700358968975235248929216899352254049248354711971427098777159278948968687542585416893680926184411050782326737195318856757360952227544030442883813418600686693320760286425501721789924029610726926431676110920777374609756806571360702061822256506238590710567674422746994546660365509246753014291736291150282336505622567801222091141005953116640569265913097408384135893720289640845585018851594482393219981637619332276722057538160806618706883054717035810063046327393607747649938806761813745375124208389960730223941052161532536476208954291841635859623613083086828217732912576075180734414248560899676042491506837612198221252593670449942625203876860102926540750774446987238651982221822344182822450773697089203009704986713172596876274892156038374983265117902335437028538921249770505203861132375908171833711211657624700857713216668344132414253738515915935213718115047747586578043894332785259492871635110505801598423028708539703986683344988036863318775632744144457226183113659497851132306589717079493705741947525509833697503865641112901597581803256600389722469729538777368278822117244443545475390082054344785220533958459845412727259131029043270002999904146253648235088995411008237002601285148161161332669860848658053772574135231149719256329470081788234694041672321323058973553679203712075259443921641936826969765018738375919445149363064421861207521506535394026311488888184470336312584459332300182421222866128187765733047956141997068479745077908935272769197865764746885845800691437226870724417041951296938299379629557833337035207843437084717752121164450309770674220999656072485507297937058965411510490072234794350051578399942540666712563855535769407202550578298810103956416463851767897947292809878288271088435174404616715436496096186089857793710331874181819420914671439768429499967453330047670103298666629394530554084138718114089017361765774545591178878707223069964855212357459865817547741986885081364310086450743354863997412366305234435709149516059206020379811594606709849029609824655337522563750706425193287771218979030846187056021581299816088241182700865940977161555475319643502483315947359854966040268022626707794407884005264095091261501983643283498928511559966342420275088520304932094119591663142379778256675652666454567159863010696574462401484941007941064702211008952948205087188411199902686799974640785303357701672967171331411332220428742106898782080250776349573724749460114181693568948382279080541594209162667106955852916961403798796664763543602545079226265864663434345248270270633855374926011806750249623650644065957535231425935256895296867253620542546291472673293376325125689009427201326392079857490232458807507367740547846603360194782933047609597725170748817127258153693612679585161061699247145238124257376982637984967657376240075845214867122961917585823078979088364768452741381635879042184282681708031049524294213675608041593726693906358408893363705766650536878763246144367460642213407839872260717483629433326279113719975684532162552591855388715994242909902204147776797499729370544774263154858699367450262878925546109637001874908209250137307485861892017297480600562808861829593227033986986801807233933163702171525625041788165629715125381399993073552721442365461065509036115878326746773461891469014050476982546635553134546701763763802479265563384176441485467410870124008620424880490515562392185297168278644360633561263701729804491929563129212062918232276342718222058800111464510032747856957621801489837167821799552072051367149563837279405728258880764916945042819051329976090785990816017370429524485413971734321622700168233493489619655486820604491557768493272918361731282448385467787232597760460770190033496356326008407742314106142503487863510155767447042564935007015999707492281034646030426829040760844760652189582902214776924074447694420039091254130832658550925360665972227515449259226669718171751600828797267022120181611746974665859837622929837061469917739327835887296911836328794851808528380163563078684466874970046754850546729102672082208753557465656829159448488200974817221195614171337738488030717455815867384077564378510911702839122239271358713832040453119977499474272422172926001563496461582122645684490926417825664885563781751804884538924290635681571898158418934252867197924734853541467879185838105875311034116376883366159498030183776564410317872038183920762674133603505638285014298588530910273143575010397111805627330223314927330698654921683747584926013945553954910087654491665828222151247962984901846607130252994848964409800275854439099092996872922186320414974817540922902074238107223448368359130099108409163210167365677094749715580323818785137867350152509004303737816628169053902005030051405020671439622604691738612721267011635699656586686527344600576084181719221155678655764185031407766318925254885008271594732834693714757293614890683387282061893389097124701437923846994920778923439530681285721655647949697555730632212579419065112901171828696623745727438053910055464097292357158751378149938411002079047185624208347361344761741860137456905582484690969406622452295567720583807687030394649441930025449295062719309716140357630109526477625463316044208793363440297149185527452655870078521375929773546460970942973945263597460338029098847005112958772404359031068318235142522027251468711723330678367963403088544900892862883344435784659365269511202066432192525045785755159009353970974689462692149311403074963999536047610061717459760607244718699799755540166091405862000008486305303768961162429025536290345846491450715681394022892396933257066989718585212683043195185399437374868877741478800902948241823305712114450127953725698416752458239484362877717683227967471099745621614024260725261307416219180056535820864134632137131679783811011269386226856620327336686465801020822828035808874347726665602000973432157922898298782233427935303847460740863472557382135459182516548011169095985252150835869020181003125633331302252249381490861450764608801733230066654956725394651115927851700138735483880992935748627390793702919046486914560613782985423387975663314137186042692758410345907479671131722060652188294218239081862537045628968471259695862748482224377101670600338918585033001113879135543232949216129312117125464748216541687278143269256615910974323417708591197255423170449915205645911825794657429608247439542572321413652953672580192429954102578632194325777542199707400988488890205839362230517646666114945562476390168401086470770778799098295109362329078093199856943740897283489880710359647245576009098403138189277700483769060379284586151447442527046642692973688448737278199040361597823635340442729479799765950782317403297384720965243014289704813582841786823242947582886723554180258168252499486110417835203766523577850266438177636821561572258142993383610881641882779605656951258200811621887190883781949489057534728146061652581662678283004741392884955502093503445218302586166021482155844678376011727382304205236697102415946460049373611049654092126006963958074631566569845695521980619080661099405305816968848453262566979765278641208259402990183773451814274185921529685077941314606542809411319594064485305814205874918696293627349732416648357603627914173027557178331920122997471398843274114979650617914083529247853171286570096602339260710108686769009807606863965017763747760861227983737339601914474246186233997643976466758654444828591536793449963417567126605275385937451322478369360384746462945895819992863276060662804056063191061398267664338677314866956759140000338814924132339790919687647345111223041708861668510779578185308658768455121224824838656018219077168154520003654824357525619739199957289385411584311804509947008783339189824838465203467012527570653828129911631710215696109720098437344073616195448692026483513764579721872407516558362405027279456752223795673895144784682065510389349054030944496870313730539503962304832582002363788348806674470035887811784099225184327794399748042481620077755918952496348293398564230707737095583236874977493943585925641089792819833521503134719870114913487111828180213938222271965740165574637294378621208925933676446762917739299783401253431517063878749522033273965168867919054976884800814133086432406489227223588695853074805391350977298311688536431146586536882162314743277896869537465437243783026871559153776473554510449467763530944661158164534655043840442065269708626877543485592655920956739764184768519394204379566229851330132230950659036457103453319283009968290456231245992398068549416948795064786793291589018691734546246444066802021603314777153833395735438924349838285270930371820533078786573506692876008611119302122536383681541535222776903472834872606538836732839831463762587682872686187475439911841855926465398859449451939844640234092215818990149313515929598691578007154901915398896902388484224215744921190462554075788966426948846712944599927112629064172118736000000684491314037524990845212174511134126004160673771990259193873261589383888823676549486129008776549110315897432779353011203246107824523141006122039674048548942471074239437856895070812244960227221619359505775897043236565431172164603952052419039191184769483328886758288582752774201822439605222875649894063829418728585611268796942539514947278784180471425250782867365013112673545194760836390526831411457985591103934570312105610616315278585949216287952961145430934603864233754790900721776005188931543657868943627825096230869426054705277314540900732073702006755671791320042017585505630491623201827814159661935440259674150628206976579277916690380872511878465127198600618878213076652166571115300706292421712853814778576927041647675903033099468403564479363752714587366240952649122770612393224764270989952539518192279949861021284375807419321676419425141864327643023924063061112542837922075542970110498327670009036720922623810532725620157126913584365129566156299780368803590860446147755970363599129989506037570407894017522896798337372323161108737328744381535423579876416952653869443455711698408621989536666428571586076587513787625586847711392594926480260223643675929346926714770679032508517709855877099720849448387545236109439526568985293627556974687329165042810857776086176508073454869084623600448406261222536866541499999501021008661429435962898437987552054241102693258432119919969882348642594151781430682913131999576600660620539689761903945737535950904024403238880458671304897179634867434922977388549719225365327798554694637588948525794341560179866861602818924145169689080302856032798194871398128397023790533721357440809257904316565637907150213108676022494782638921659218502385515613045227634363925144681893194145887700473981853384534919785414168117161671550549970794344071478150203759913810542490832861627413454465369729139876253725570428762958500715439026101579606168314204106198935354327772473006524891887983033750980869958800598371311425903678117989311884825787769611144632707884933769876768719458325298728620724345798865621308685695890391697775273950847115011846096602163935851086767154962992941457646614471129230096943426580981219107347227936089845044354461531548357415499928055299083463708398506651969151210969741831354490863279494915665694300710304327812120605276526173685856012948163502684504288708640055689309027294215516488769531287318672365031481642917130079309502227460889934335637876746365922438404424061344371788981325093225328564859423709544991479727544809648954274136266928528311351363606339979163420600386257203658444901327339161813724458861480043310198956629415325605721235906533569798331721446911510822507904340118612839574876017771796977624927631875261466559249421104279510761579042054632865989682312662642173335053792835225935460668406573104541788399839204603942123359112086429767150831623154011537589287630109083698133601368209108258542907582162817454763254643539138443746912528986035409708849061177094233929809858363126238327191831758299324475710140576203365820479692175943390638785925510317850748819307481567509041529552570573459303338088811349151524081341759653434887410267433170005814281697692727491910021798025162372377003342937793002125097780915787639217836100743984333001371224293582081944091919883312418724705155147688690212404918081923101516455677366624880920040574814796511507776065030199479388614127996145534023183129267171884435783754986635795104829476935742229614620913169605802216534802913193448005916053839979650808462094757730072399509671190275391635427007464798822886496893240158787997943462448190605871905670539704952433435061861502110377354189274871359920347030641948967559606753417384350371303583735302732622908190085777649973931135567344473576060886873650170016080176469901738859807624139362319529665388900067877718429183958584959843492427411383987191858627287106291492633745517051895061430512207373572013886225215190460908444525933085585693622562521803649744603904102560633636070092730343030828073408960412298414317278928647853949042417190302287669566319394512666483293026308768559862362289057603686865902458069647095310580259777592603826838593433416805378636231799443083747329733822894474335314514153547149315331364993859564126327954306075986900250681992631954223324863336251276552733529960003222758990970432290826562208234559229406355616094514207995402505054479156263770209813470395133782115867059690483386590722035743241418368967370943197490029687647218322451485482161935739685254954296464336779923323937279632961662431088229093335478464571661580220625049813400333607317248221470931585401237192143965859636100864737187775962786373237893405642724772288737210715077321613845423525842399527175671308562509252036215342767978062826318350222886390572010389823546687688214904119616474754704951486653453206538818601559658541900416291751137017344707086922144823715895080311624066775905388714468951357299638359256593742037923031692606833374877808071475403718872078350224236585441660968315785534849300380588656739874249880787330339610467940358504786781937195823836048068448554463128563710895346483491642551808835815484482956816759136521837032013791736156055939918014181953203714338150168158036269002835926426478077802917760400115585956491807368614216439478650342241615558055392406816236148070306008781408762039808416744014407539677594359644064873301878348433492004942216002864140431626449430667159340516828083951156083905397476891069267870319694272450528220282529220291603119969344690108411014277644049654926030388739094225025694863294707962383244305911605087654342028032510936077549393741959900038139649483164600815106335260831636941375487280711461010926623565695246413034959618372998661435058972455630853210252127945777168635211777689667291965654295023868122648639240787956081743401057588877691283131808339858261824110602687930368152425931107061845394622238059126960715795295797635796734323734644166145346638407596925373419871512798825589483456718586331669559194526167537888584830517962150903142924288541058163837198770651470647985562228122564501380214212163902429032993133924263603261488941901817887370180051133816157693701158079608152634200044732107680426797624611790486563924717629659962964005790614993916456618007083602891256260029260909762967500850484103836973628099698753105579241861935732763403168317708528974454060573870666496952268737083658598201665590297178030349879284382152385517953523929062568138525439188861982009058089593456545950083224447004061085503864339094918524809289728365152465967172855909943902268720186362073641945950197055977215047603203870331239341595595535490386162217780806395851268205635969172971010761370240836430677088284398337047758094306888473161926998517770462232954583606611112975531180382645976570153904422599174909071825305067009777399963718879552423733499902636936871992414549643106215355959400643645788443240120147334847584310979184681093787526992663044932829788405470476452941446308305465421479055622053229962373431745122880600044123829929853426960894574907105363002056803571969404846816888361872144185820922061188390326434776264001446629363492248749638938557102257755685248651193975286212994679092562741615447844132541509420866704017844770975408594168155016535346574517493243096084028815608759539033470743936959086092618059357768573319274561052767304240727579781003459256179017985753500579961567788633434652675199327920638597041663589756526234718432353332528949172630181078570719940143118810072325169278223546316966262127960120288845029384668346953801063575832789276309317615677171043369484926565078737977426644413823286079217052173534578278584369352602793929595585358310408971336166507662952475011658648524502934893965470657759797410907900648774206395114649698459454864845272824107155758318977435939612087825017358758364388987735170957101868495573591390207042062483662910361084897238779176374392563943229225908408515150333637343386587920554495549005715044173264461791085720925925909595204227095898460231983933739900972813910984736631701666718763208304565557845531629111590708205217811679206802988595228547142510803848959939162368287377392280525601361699619323471356885252646383366144296524142899077352735504046857169759405635554981847636272925571636321057695022505909079648706957754652104687292240330921168585697537749887596218144063320222812745396243980495516488781239649131904334521072609390555307725930587008431912355916639471245260218600149895581531022793197450111282085955070194785507165311542512117109425210075741498809057661909948081548429192830296389700971903783258894648556612893694030738387563141480298995491284171747869353576471614190947808670945844651030384455245308219662994494052174857758958774968654155827318486199516350554671641961547304388444157894515962866992484949847674399001104632271012322947229603141707096151094432605251248159282976717521951142116948454030186151254464930527817669100654479711900971241693527678957549469096934994056965255512086484418881872332522582601366555795133178727878337767894557437119452073714551345470361196465207880359041142112733648983858429679390234820110272899916592265329059870437310876473493624651415018521651664397098143412274020551801063174559162518054951131965768300252235021746773834759419945980345750057088075916967923126968476898575771049386379665543345151964728377417168193522547276638547679341545631736682799747341968876640701125689359014532189481977224277029226779987308837704988317163294281244041796447824139071105953852854104175367528130289538708895906233191575493459864715649861268973610387102841969573622080009415466930444536048796647042219451343297402928429440864519130771605700713952460389215664574355360300809662379375125329999163850519318727809817539382672710581340042949857015214477201003532925223914417735374232403467746253088015598208789805793449772042878714515418901721866728192120621675271873845423671988507127479656735736193163954457651249340921461525364894896039821417757934833205464183597898796843804270270946031879763258392869816245352043854313229980676404003854297386483344960444858472548303195538647127125586158035412578766293573970763630809632887011185181116602684693449671292954590551256852869773291012856667865411034253738136292874424129679938195781267670171162543780549065832475748804758031435388456385839606362234287425714480265000308900703885448288334864530132417321090770601481158165150895619522544259720162661305905429990734859222773234322675595030187796321946227272612104917901268038380574330593285082452557122738141849856175661269138583488480776078362467943259641001680270828803624418347232603683161768717266039859487874111781128950728595473721310698911051280249361943714579102851627043711397035721588161997880304290445180512480726659299313317016502481113647176088766472400232140443337973013236717737541331908028319109418954321289850360168405929219145782796395795339847165240537959277630571032780744606140237138097831798960211405612924056596393882881466845722095272683795246345970771681464767389662025319826638804708274914262119412371945014378471770828753609577012371055135835943936311947122499584481018523130044734486493868636641607164015493810872223343491668387125201551485944399217755734127206547598166443320554564389402022878376955181934524993351734737152823814484103825171050163932925325123376411289421432656238934760779590303286169552261515365116597327895401830542206489100645841807298181202395895008940383764505051067161982197987244540027249949169084568573403567187102976559946721102745904327259948795890195356338131441560219310300287019877007889506574596696427413910369529553404421245015277714416059928321171659381424962064906593243930851648560174001670812816294664670195765241865353273887030323575873627551631058677044564082255167713828578018162457874560701209565795135486365611460029722341332904197987218058239723558789507423776767518827403368239047135613898165791664652407184841390809550044171175384860606091075052168462256912182580657926494266792164848813654047737776310050053711351113737658140742531413282346360170947051361412616372235220209307899026477864315449264354533357074245584860510115329136928125166681351581015960390473782896175947464455849894911780162697428773114480206288355990499718954044102204104191019350797298053992795035818054874984022698607336709682003210442109605236169638491268649126797772748031362452994091964193409231998351145572290790267974740596916745944367869547981569171472442936453834019938482598453134050204174025024413143141291273482235956811348284234972866008529535410654574479650252059631255560823067438280483471322032388878482098730286502566825629149982433686457168480343369727451643624984610640689571532559920354417761913005537142699014048493252035964229409180050023819262853757933390266344760459530056685560831697596929366392058581176618983981971471283055154084937406304018552002068484712011768724231446942276323790419253648118946546690112714855090190000587144577747995086694903313841963925378898461719841783567161509924953838791071283142025465794238114809637333357746341146317077250108955259547206451362043354099818812276132553455718530411928463197158146861387564862174668840412607793288779372164731091115534982461831147442241172623472404822348384877679182116159251803013784997371417199408433237985553158901059363698673526782861800407478512901269647478973184780348261128372718907980218969720774201945388730033221795869642782664147443252465025408064684265330188001160104510978147247420659170620584997897755379244327770453789825499958527684750836245257533820992423147180248656622962192593935737952530668371736920206268633713851257707463480423400839273609181768910202642438086984397387482926446620003108624732846532381880273411934063916255870479112486803371799177182581622358189650990934931769738865718449628366853209999259130524742243306547764969824607744493441380239226336069469300752084333939374380198795168186414414363718277330767321947511867450013180475349850896126876406364493917934513700479645293491786479081612575556185126898300233928901739588750046683702562028722577384249997675624741053883092242990969945857488744800330322008198764979682064355758615976589884105742494884853944303608432217509951804232416065741399975836823564944365969612648652707752872515000685923748487283902887725647738972845751779399603024641233080594713432723716935483270453391297137874912095662592077560130885540346250742366867970925906409283309468874524346739179650123332110043692137984508159353180888277003105738765341387950633209934418494229594386474164169500341508974268573356492358589832088983827495498557237302949567262283084421107758139144170443324697108872267002995752173336437981577091087315525582360606156911408754941503688643707000505420109201904454490652928679149915274082381512421844465319621938527396579435832893629401140990033119945962368277453536508218012431981687919035117393208429875179533248200491648452615577096855663836679350712644359482765858695124431984986658957351665230369924319443740268622377251364394140441831612842631405664679634084965678841197878148212091666375880324265641188422828057073458648144879311088635235424462630376146595640757960947912763270661064261068539334355939051412934759653477129689343160512767459199525851921564405964134401312482131586175465483195793557105748969359677051860746841349634617142386507966461583745358894659783929747904486319365959624442975793339512812973980330496275880287295299225558963881152613827832262857909157331654578279199272446709190450380869077367341603129645876349603063478095328447077454663533459418535702251902063280638002482836519693482330910810569368535916917836054921737147230629330150672241265619241654871413048554983158202414130496833629513032919189371974049152662074952277485947652502570213585635180520270931539572289075697736731084849811003613184411955068251983635550348838202316411271182590132350185058394572205870166789884989675254230176550855259377691226705926822363885230797170311877304421812790333035182918261134113180114276156262660996344437644588501509166472305282269502827027872861465210908811738760807344524927009960259526151426283413108110206859753596624355376672248697391704456030289099681783590101711490003071247161526820298464206205475779429865421357484226501874995585506043403516315781026794999620691377231561784374437533139749489095789015298376852898562695130842933506305968989885728228470631346980384710515549170611387561812724265365091892187277574908374479532898907556896583675779558120630659362054018335966438293628567187977269845691777246138049019225973541906001020559393670414498190756742139601874394516288935305708019568515184829129997972470390381948843150731742437889360139060445846128742653055400304177743591390088102303560182617281903318046940224614336295571262840205080451941106734861031678934144177827631985817153278387564717454585700661902591341910452873261763626035095048527245252957232953631190782696951955495113642206835796748619515569523744281815361295391939097591947093956848038472516372513571666079302803901430545727213251338582989329875198375221884390814561933773495374303925924740653165751283640913833366526419724279294177646750112802610816499646454398465293363382715691301293229574957527743003523092885099162477756525865143988175535276719346137709466100262108929049301178725904073979320015393607815923874407303307559063456489004492770821174390269349445107301998576578263781293445374547025631749940500871054462742806169898663774050584244875176442933809702455244644677006332801390711670743692940997467663235000579958176707208896744915238629722397295272302272303673928981290734521203833620536862320320234765970151738195471415652227683698857253593258320274623613799881298525488290967601221132320228030593842532100719533234867703990427403013901234620321653563500916937324873241209357370657303635449927158848209096897779546369039637328109120212845577564568999469538203351121692416265109881776551458933786816282763412256879416870225038632451316636566562557587056349879215212210375887766316764924111880901396344740044161288167960889461612941677992492742796420844423151589144386641301422695015662813272892511955854095867735985443486900175701771854469506236188640005824722867308124561904008650876547280765651161691270699198739210182781408982517862534578512180440784692551579116477017150932956555679066185323503956716312165459515897604477181982033745852401597070277791798069673909847784070182339176869051808175617240652779921481271018465598342068182542518786836475800643834582877849097186875665745480830669576557801148270070485463459114045739475696668070192631920790756883820845976019376997611485196915867187985043235146220298248153387962702388427362276534504268899733125874165055839795909512902598020008866340245420969514860327689887523025556603969809987705750535036843237589137775007459004105543122338356863509155864993815757143389583469002727778573840246744932647814765834520007115815196962730199379930311179948854799193260859615145849014825543975224862044603377276634204014341608792684163051429054462537134804509892478534869254698776455205843669003983856327003898213135726820161214097451460316087691268463996361324565571774890883690191598363753713356298192908057731544156565554061427359634882350922527770880160252731529071909023434500233900326135451405667058641146563313460755473761423494025288811777465396813623927551250770742766718589315324672308698605392005453391106496190684884998662612155263930785079687946879772358920413654920292662351630843850223825581211131931443784752264122166375859740242478426508644035147549482640676189042596093467480362393749615239692334528984674848479582773014917946059164484451299605553744302304563939341387931854797323921770013386623823543791965029577655822559809448140279254691353219612282415559738466624323260846151430614467515687973358020836300216952354945219296697689934052600468587397533745409668345292158611334914218675699071279738562702387152253873327034279572429765541220965215744266860653408946981272335510877724458457795189525545554394995862677584763652321212630788090743336760183626304840805133291345148216789290080611038722046835408838356411686854455475396607703363610265403343604816168875730357325070857973439192173688866931453935031428250488048564151174636446403805237950333076808507659586811697301180593057402750433125992872453686660159788165675555713241168587826168770446996213010995999779370230544021947897336601194330986250626710366420248828776843253843090407923673446721987369735501750025881364431000261350803203345837112269038615821654256445013770870463048005957058597324271936693452032550573459801226438814998091500820383629586782008216982665541583580582383372524907967369283061131103268799247831914678107213256179523145275083055394385068030949299951858650720083929064463053955656112992061285466424449547924121346097932103711150841709137055257434025693062040776117395826606206241724265378892442496952831015935137894311155975392072775200435115277732485458683809045174019561904006912453145606553680968094654542319067296569852423067500229731728631687388231554753499250246595990611628340876307256822324515532091955846527179354865175502105640432136075813796918720151774012638226983805447514831299701196893335777713067228553327908328786758683771354108554901986774428736850434770621758327885108182216369908491282843230648416193728346856956414951056042840193011318156901123334458362687663675011442626213106439950832618990050689111102388525389576511311452100140866586795074789925082586513151755213461842077508852764931844837397853553542102988531192933774787326921297780672258793090822208950526031461057395596229058938924004415106015279784362650248279902532455201876911311783837956331032971280731470470559485963244956090216861778041370327969276680859243076914712764688590405115160836304700146326634563685496572362417992390077274359327649320813292056919999862813339644736208981243669547319467783695693750096438381828790613329207097737488117517246084608481326238536010136243532395118367729741231199671982046429147911825396684984763429554905680667631319260281015511554077038006145112010601412611418576735891063095045646621820285804512409545857439690285919020864336165727506792398530053289017562042002733166441236958893921652518908612366590261474386998750420921493277416065329010609308372115806486086985573493633111041272684035931154351976286133341669897968283712980489437155326792203960226673092828130875351567840769689579451892003827852709893316774021705377941561753649542923901970794053011106382272720763566960943225175708248772007703134877029828012428614020265372703060932915926523657631156712154674146031488684230141037329217018656841845312495492931235933842186379800991153739321473849524407980200981391520887501198449160528404200828630389047472277551909625568635647775247137414224324319209566687243906481618870512320222208207019987962337367133173586726547882108962790264043882810834480844646570764625346996748499176379918276436039547975709589403562768491291010245594446510953465934742542192467276881564318561079572903377017945943684921778100707080994346936957686378527124911777842594945184756607557586135721181899999388073142429997045725512468141597127022106114140936235033969217995546535464156604650439122894194408957730340803154878551494893473815755218072394919886678842286689967728500050727153815739992817520840024448400123157466734555624192846474876830469100985151486263355898482864350493654025806762956841676095991413984478227295977732476634119335434634746232938849434216629912054296363394823937550837577589940141270212949970958524953388398948491596748587015471364091390828097858102435162212983475198535484590537972401161149302974128116211784885712477165595136930150577633796068143261786589811554206979231462997779385860532191933023178032460528059356122551286839916813369264054802904439919519843760356466895893247489434173002519701803238669080967093320787248232827771927762281460584590390402838900037502569510886268421266066830211044039267171175239527313846641528527526580710783495887520605511458901930943610183445098236847262318839336687024675808046192136737165863477265239321601863802889068606548160873473789614397157926796144860194991185741960163821560423813161222558838692887353059965034383539846109749269485838139034518420526791965611372600350841137975534070880649930863132845664596014271579556506744133691086636030528675669445984456437460200904307509376126848301295068025529314220514424976777963558782426477121918090877885513431191212451413745625265684209430888700267124913239359458859783269357940745661834800696763782751717464201050215689932276457987238957209089486068171785162695214302506330829039700476235677562159670369694033296287440986868029675985632010649172448443173216607775764029989250826097640012869737748531223236213662859134699981801403566120688714788503710039337482845417985121406685851899654182312712931961952194821426139502724336593922822713308251013181685753321396388672556908526748516814181118977933406117258444143677331306837928545842678532922465786450368342153047195356299416467154290149318657403050565178575930551061564232181122067548506589726398128978398676374816560344051007925252992859004324777784878687443587801061940762721043381504226984401695297709603244606668035053141335094079945460856260515401499008712054524179582408268288000411395381683778846422392598185042240507209404014903021395021846292026355709245849976469202526759070037592562072925064721929712383683580036978615800707431071132200262546249912199500925804160289177296239968610779169787458741394451754091056928314584639086477811375479467006157745894688136911273524902556555738111284704534158416698241899811603681498093421236963831971181688810504328941311947434102117680552977365255118443654340423185475399990870612403840359991776777050785881330766625214770351048133174250844543613025136272967365808484093261171267441534471327089871345376710455759051211669862891844741114579231466906772633792758903828364122878932729137744601777226467356767606868692339275518309186064665931532867697519984581758275465717313531365800447652623031963477948028642493788402086019518706614718439631575238206357198693296095256770905480552363461939798903587954777089360905645815572330387596677338347212730006160392495935562001300085721339605044688274212843950476930729018292035007087637066481346573977063709319405914862809177218503486771547939209694494559676226062930839106510523647418519233317140257095814836810083531808484660772811624316330442111090600528152608805283507118120220258253986320477108582015351967391376074574458579302431301528069081225941600884022572196334760836205066995446251708551021006538335941007629967955744107415744548819219800868114777346017262673316957333115834342641789300375298905491165506232927240427862768282072394349704515237563025755793497205405446972878535538727465154677436376169111146255094446694132767174492500172274054160006336248814961871691729089685715537868399079645027891424601501443338854748219036114302414672253574845332127731914197666408568599905462832038731878913656018163764202781339846591259540438275650728183263348047221649359655643459765757890449025806885794519418503831960827590339216543352629922240169897393661078432091201690575442160538547827603637560491466911118220123019304360460107184018439873343849663759288649192060591301482922405405988299043079278982300122813778305202106798094331024594649231077161497417431570657496321881938171097020673190364537938150541662067356819784672052518334562513527668898672744580522754210553869238187305809340556080797140665400023170762544895742333835610263261335913001957246970109957309682833921426720248321454351499486550266910195387773830126995073577038976094946723879452807942004517514914258853323519880703688120939210134997560582156043524306318781096386500705510636368809779158623128379324395173744260389529143673898872247702999729975948042029266905430469836183633925130142410621359157668461698873037462168264801781818834828597390012707763202783217841443329244958667003323289310710922583370333575248860296915191925227719359059966772007330972121714899422541742711792777955154144420052640099398747186143816107125451791338982489045320307349850364977801146684538899379695438190554579928753950123393898753100436076370856434514095987161306621204484066105584790324732461221441650469445986274087613588380236196780577933839778734503977489757628480361326310024044989521086818342692391422199747767955174979057579547038419760641653241802119876529214326852717426613218166164131644674769796924286256075989667166973699244294013528337734080685972924647916118981961252377956954399844116753508367604254480746000232690439919610212798574630146982584158856563619268385288710440435453015415021229050710373440140709470346524352945813741723836654553046078354587357100963824488072702368048845592844339065870063541323959348046534877132593725546816267467600493019912992163735228714411500530046446354889217900276014047166976259392215406426951362292584437391246653743032715824480939373777579927523195463415089609927956434829919629238720715959572242779598751549911434376635485221735113959595727965666441079189534290903900165087560010250084019216315948435926215702732750717220055385498918250991352113953892447195844399180392526245986862743441935853246700006474130268723857595413195423892998723724066583385007278106569948241243388164421500868332557781445882380813918187106905389479543093523126314557208220779481585748684481455721958024300270159139662159348744998485407451844567160402281804651981336920848105802276690719624361392873040222505346812395578448085559385238379337096815353463398930893382445472197290167991549021487001539524666084877724632835876552011196010259903412456532193551506609626987387956463220577174890909454812768091069215206042600861595712384348218109785358647061060388478862388778668650519618604461096973032935555300389107363883162819531529119114688629827836048906612062720804485856625796975909447665389630950367182855636821372122896217140944635188677126222989894079653410752021330679208494712122515363911021061736144374726249686015328921017054896704607798398182347154927372725834332402431432237654208617084317285454876285094359477189983652741804735388463734939636226184455522540595032144574352734865038981954580575919611642145491303369998208101036381695166653169491690246474444243525357177966785855802284609955362022755769446550490383935566200677573929885962456899087923764496932027856732760792742025864176798367309754412124145821885322803864118154050967882894260789093170944218603718251796087279850272101899098320876746349022373121947183776824116960969281531086298555676290124972860133066192241979224133992815689300553174593731958718893598907606806556605536297276896963281610699198881073605473290199436588945154194428461662977957672282750644328547472438677843668390286248389637099365104990493645595988818879988429856070806070615409785546154652167826068894689913053357070302355575007343550016971023907849191987995018894650592041842572229585495917578797797942380917043629819212177359181496215463457293940385741470357866492607033829606603981728822865323819272672630499093156776506615567050307041397610224016484715194920662624584816276970342296491383485035243598021668242291754642711508138830728974161132926726803931661783744150556821237215272816116506338907991796930398719816247668493143725122628472339023076288636519541249023125400321188844702910796242087807987243186195608616531347004935850991941684238121690900458548383433583697854420551420576333675414836638294962049702909690096462815524745203933852204046360733232680700547532294081074892854600934354749842515558945348603543209438428793167746882687811575203276975814981796806563078290061613379874943617790619341958129565876796482875922845666806071046090978585299260708724073456323587877119548106203585561760640656548067782897277406572310151312943280763832041484607706774940111186435384681071328984430097915321648144342910849409770141393887704617990689294467699748533190077777252683838728665045100586611041351830708135936117623542825557944334682347692687452702549013268095296493722722397391177716450962670225333923233235320211681943191354354242447625047171455640333986943604158895915221640597644112135736735085491749859861158907499661346230067232746932045589568237066364874554651008673027517759153844972650174465665446076954549561854455619440465654198533000877077608478211387728962207907506292588171945513518502963758351451353132054278739363226126380622500431983030463184921024137374661533606035871974232810589952413971437439658217606214267824952804010213512101900144992013477625740433035991707894628953327079959902967677404142395381442817850103823521094114709816094774384795694155111093228556181904154467293174101149537141450419037214919626268131544711944104560702185908292233170504655860295998893670940845277884057384281467938630466257640695017802080458059493422236598285699023353900143368282367922036409477041043959515861665911636695814560164988181651588259094135897100423666789305593870462021615408181099264286581603169803682815158226824784861871023657097969348824034162689728120261891809914238602869987777617104538425575295939451672064542345059051479060538182092456769875602524117334818895177837593590756790866945672187138384961016035208965233798103450420034429731930947631415868971713184896528837471597007477417548905018842723346777715414106357589178772564348509758531137528621051151256585959227567484166848777501796264019012034234579377479044222710685023626163689681223146403857195542519307670186046798436195099181851358479897271518484371508883253812930855656467203546642028139813759587739119525041436954306531501540052699537707758654531461702619621629613792260812341186120166378390946204280876466430118397217782020791838173791987116560067751461019234979946136570472737097765167759447022255039186301075697753203469533534449059435054993337940593595415423461356988201855090639295886273860341173348603856254242412741223769319362803209255171560560692894504348713298248971885021851528389184353502029779567775551170372894672938482472734749270878761132346675238327666177828780032349556794047768640795707992179194000237549762128422595677745917764332114719486997254322782563782422234733999934173234724128752416741778918056999235997789788284200599515551377343973024376153643405614960932950066523958284681158647612562435584090437203374569168286994688220483668298060292909944313927807107867484310701403671075368577870357948554282329701005247387019760396142737676674319182753771468086865478824419794493009649283750423137240683247105119168142240173215285825829244233132119770264179436390463539568805469783968791291636820472055486384235025011613875747743111617759454523586204174020091769341062557183174035101111735473646816599870550772287494359660400936988288821834257486747798299088614494002063142500320521688926441928526919856272890098560461995553920339335818624039074344386165816058850242605547511668626975843642107497419343880188128561771825973185178965009117885857614758611423689762967036036355816727368441782137922451584633390282529506113357713801981689871673191491544697790302049667291364894901523400574297340457400862232211307144893059035985633612786689404401056574733995320780743429411168877064421716222600324462138586112962386554686875618793780233549718829018437108941059287801186680981655961372605945930089393263181924924231218198664976464323745262800347168656016208164921602286394836328949697671318326743064587440082723669557711240037928010317178236974963015213762165632625567900973129625044384584134370755510980535346051029954242595323179455808994663829860532827111292440807545639212774832469699922288546590365408179596600244995128362420775976734514369571082678826687641781462316510113853296801050538161918304150636597758053803198041790275823789924460034047102135022904480812595789590239316052404773363905984991364870065720855468616328822093276217092356502723848446549064853221028346685056508510564897309885929532129287229614935031664002823309858943778094874667755683337628862923945854885060449509862029153801453947760570845682486724358281066742231135470769333528136453833352351113099702393231804810541100278477106190562154623940713796108597626451962055383322229906069531468859086614912435832069765767349288042614018217637017303508680249281560608965304522895509326786332809256899538904429347876007326322817751139713766554485885130400131783296275135847963687539972584203571409614226380533072983143706427980756516382664682991042581722080140975620744647036156173449753410459024835518543707257483381686174104491660926618457433340457887982427849904202112557105087008981829008052148551476447367760160984526699644086777854693998067718820231555057775802456654747444354821692496517993935429815940925194676738816583429819602218074576427313874229835443804690618555065119053352603841757559520794123533540203944675161180494330046752417231162196700101269043180911463334001885768991371529815309782771834370780974074882553783727605673727544469473776748468841860305304417646286278491332216732389495173972828943592107162730817020608438437653804249432929980538120341714587228384594718854731631022437742925410766765401182689273067658808178801044186082836031161552308056835278741699408007981026618176084952343697053012334927670469904713559908263651545315965612426374297302726024243276633938709408519826523737156186650431094037924622538787338442870982040920096313442446898320511927269053384701903961797146813426323845638915553168349848613007841726366627943155344131510450065867486633347996949752477959340749548675849064125949680693928364297693961562164384098417899161029590183890995604067031972225819950506529013612154116135797597404598165213433172239064318780329824959742910598875046284706703299969935623527343437105891218320981523057444253744214489709569771927722966360657049095257741294393813141880093181547600567463586272310686731963810238781455092587937604750735200326208127945440383849520405586914093364465036032294314145304565628921558291987866882510242134739466071733719157193923795276490207286948363680002309442318399167118050078383063396689660737864574498276693858044363425679297089110023883252004954232044488465162011542806325233316810763089273511565988174805197590369737196460429940478555275226756359486621836565150258540718339327347594375809541061456326245444154979794003655184112897199493206471151956281975343762186614020822942098878382436999139497161330977086581199343102328350936719860124685208358895053444144841186608606648884920655554260170143937051498513136162054189576559664048922139235732363748320059483658665811617535397938182790969694723790798855741614346433247470306600098221179499583529208944649499963027821129750866766443759153062502784113945504111933167192116003362733422979266926691169905095058504964281165469052906582286008358939972254590205103660948800099437746029396679679301380391935482993671427667244337681519098923854826530949905625489975708058188529252313984227171115255387581475298744968378301121047150057240265969240172753001760785475792604434709840923973275835757732966257731513918800903163747557040948197128103309359415772661400306964724466074058291674140312981201588902320902483211927510468861353519658177393825561150687063109581471800230775761359695178714058801348047175687655770633457060335030314281211310552792561875675426112485184970444420541787624023377314063915305056383502343435765334856025966290039943974152448220714292429032254746095434557120345508054083957683255272717488464208359146800888195122320615988657402928745315031111259358877011423942898995049803596180364284997721260664807960184539936996058568194697714236378301713240625180281322407481429111638442657327969091573659135898105358721049576820002949990332401921593895768757428094366046275802572308368564288741819423236790093315265308704631325822681194539201085647851595626358906045439086972738502605059911047320213473702369359658464649221569300728708951150765322149142255906297373591437750633743629571798027005704976634648582744491005551076859218813240162365210872555720475490707055010009061939522825893587324401174300133821680719708596062130682844983561447212352636037410097647857028580615206912038365931890830222248939497514612945386459526171545963643432099986653282365642661697434248267957287882724702976856720600818019401240043439592451824278816796642993450134186092347405015097049842863823042230791379897651912980209114264651437483376712670853416704590534357450614139570520778502841061218596796386412037553546656754442941951009038220142198457864431737197529793021344129596680357619730486906760029304094334812350887139272306305044280907729771447024078967578251616771697092913323707122738060242806609441771568876235593698456796384636643551669471880723997981795475984316483972253697480015216136074289792839685920297800660339672265909097405953216612946184294336484478667445422655097959771833976696654999394910807590016278236907631039464972201325779729805127067611367018027124866828494287643923481695207664469676233039257842444013390489424534851112775365254396345550114237935726015769219315092445085412424544840173055990046531282989485526794768107454705175505398084056190797570190816877288727367773110262082552064811484050548870032015433639183561009107987860751197107807096805097728049442975454472057648659780324062357285994521420964852937594515534083872686886989594787783675392834781441439586638923542933099661163044235181317641343176522167936725656327771405742491893141826862214082490758151531253464074562075140453966746126150442487988371651092828965025124154729523974197972439610887997463485154820272954468874409341510569194298288720366794186105807095339672308306990538216511926917503597012957707582027180151976544884251677754345051694881760696153895179793023206993805689638424484106732985335248787337986714022377101513435735596064683019512084717643012953668422551598112112878196772818488237183489616650482322428468406327906183517300450345933956558997311412840150879104934232560086834504086973525169967960359151814624784000679010059451760450870720722693634639357363011986661514587190800338224798360852746646098100632756211273494692483428199026731581222221154206335311163492524205097912322646185636362905520862767916587882986461990131046523409518454893568636948795847868246039153465215852183402739521418710048486713529141649756534062104502979605650217260065247915260291085941170726149791212179061261448498313618513821803004548883220178069407797473124607036189140483732386132036664659905803829115049514355063273882835615951678436655727236439882709994786029796622896534784825381767036186629264711801608342414122959685425686761085731945449484566786240978413227865236936495624086418139660657947296108838957334056943928894802783083881333299042754666623797404203562220053308590688709098114750894495916958083327687592030573946110206696797553725912904676287738590482055818604252801612391251736123516159459815122690576214533313223134128236541016672580534843562664208252529640067783743690338484775610313884352209995848247549545835120915674195861440846104030539555906109877092012856780084645498043300470670368790185588044873363472337596949629498754160311133621306354516465653397840481404622792307090250608520410494582814692791395600433978792144064768596569453189443546181703626148026051400399559178178238944011946747626750099218973750709802382195527709238061445765876981961397839262366029317970912775855219854872102302252685278183241342364737871734051019000908310890235175864597109571437868513467940686426470175826434708876839314559439950309181804280806878937240055421363238952204486415029448546980526517568155808035200655511748357805324980087948210506167746300888411247197679445937611795484787279267129356086377182271536929975756583658155982324890161639064492706132116676883196588842390101204179660377531725419539606594925233562570335318056311485033003392909659049223292118233152588468307581192597454370966066901544927732949580757980946343427835078804559623148320516625772458078022830025813151527022930104851516205888843911213717583766772451976211525041689669835603851777774623363622406415748009108707590419731656180206075911450438150142532869974842637675617792103374764958986030535836204834973359399718593444045392968821906487389060363708792498271826627040057518259058756227466063840683420212443018583597262073911137204655235369740244494065541549708814363936116847848114149252246856660744024614904932357705168700685128807086068907731126335032006821987777341680181060974030212633345792683266833752011650405285693436328891402811306407465241292813344605523020739476821333782765187371552573582447312228085209930875964244165748783241107463379827251855415158204035349615488184539069062059329040327880177434615490308425691031102021727859318479371059713065684116839729735766119169935473904166469889647159699287039577096769623978240944203260262987043189514415150006536601299146947731398292816744773908693413721177745643728104037445640144540182776068074656954147155418728166549595583594971849380666840904629865541457349477221266333280333300586568670886057952492042132216200115179635897732882707000959761856453127143986211057390137477749615718674746595807423938260608601808112701167889648952243584045380861456752185627331312266784575147780400252584010961173551571521986539187778403368245355202750596463317873816350151769536794694728149707775709515311338553905684167181405205773013291410916937834536192173264733498130432472885288077755046474814699279968802764050750468971664047288515805489793715043723881480049784545528046392503919564863379371609081776282790227488687679658482693253107559282571604801240863734814823977283525251295454318121303104834000262206876432333452773021568051501907163529633519240677523719376203939152354019482013396093007656558180850218236283003076902193435677022684548340846977757586513241858845607314353918068304560449351197395283361540209470993137506351977275083194306007270017056360113638711997159288230427234168409043561045367608222243923887260454169929764881947551784624400330157352418878862033774419820285702707344901409491659346994726817247841990315269392792366031221325214889931046179052143551698734451562926854224270096398219620448309628364664400955942798256939355614808577189409955030693021978432252698548544801896541088937753743122593163097975375582583104310707557924373425767235194710028273322923842850086420512705864613176780442651418647274756942230373471712027853173771073208880963586017961627245441825564418881324221432546601713573643170634901880264736727544231846511678623851839412105751587392763572199977442363260731158857649508295141162250126021454527136923415210392625039023741231890761274315281206766523819820948289273072075899117582049169832946268534198389967939764961931151242449182032901363335695578376531312047135890282654026267168751667351090590401813046002320770247476128295612030990598726959676085223950429691243300781345294748247648063788009069980886556228732715785509800584082446818287574511896480603433425918717330493233190531441871429730022989402946445692866816774169976898304556662158173128976068507033404183083869300475899580771388646932212205987824456529725629247322591014880386386752580331570531599058375085229698838019132362756122049209369492963528591169121016085252406982874115517532339706761681020818844452914874552229228146772981802385664786682100473243388052380254798524367564823816423129728697387457925151715156105282812255622008081358407252723559787022969511417536810433624879888051809043255933911121960279818793169321919627005014655591460831123156138029245736526840543926460715629698490982848211610499399026559343638694084123511124813999668855030156948783266966077891931368815349666024932270804296387544655252169190872675523054999969025853154394807186750819844127051036191717513003400031275297872181820709326693685427558479194091911088557742391992735842824950782912845460155419501255063644725264286674039319328458308528775784151450965498901576881300641410865133553342129920978882500182601551131171338914603706257300647024249871625664641664576952071434442008286977416918066843015688240864289278487740966465220384240277606619666021338433734769147611740179884307390155246080041811119162825441678705769975958164699531723305089319481430962311105193261404531141397008647141321416591012087022787623828659740177149744245860088276302035598491060434429168572472022524522759704414205681290157556531150798685900660763603841824638338796628812554733062312008469169424184450480510654380010971061109401391859990427099601558973811214793967256490135156295345412387127259465396320474281047358637129847844949582007168308077166629590743659984619213981045360120012441318356996066622094436778264738492207960308404293142316782838846642669009066634467917448156845828439790466579469800491565145914706884706924816139755774734759319325754369613322658575290021094068057312991648441003454089886997775503445489208650280011170278169788083698069624837238161908086116355440436811812308053392541262575893772936825310697605998709025944459361116949861114257876700303891147983719299418241836957514223410803464362183130465881363949891289488797787495145607062673019896532814692523246573402384220109391932877850519093975032841422924520193153062889901577842417012792008498709463618752569857883918070534775670601241184766769564665646722410687388206802397821058807672970793915931866462457694857611070165564741776102465984959009274879025704847202730915101989602220385765041960609969508759514569733870638365897274543217735797597272795636313305841197543126252824219124181854233202194312545379526000411854923438127367849286942274445712700563360428881261524308346785718699894186579747962631217573447652218009593707196028895292535161678013934391051474911873728210379667207480274923554981213794463547169139459551443001488718308695323216229500666670840546499959281149951388492068882356091870152399160746301748585588243932265335144930908225108780796382998469090165216950144382077416915238428520625523957518032902106638253621810759414893423214360431515836224960456859524923276601077020896641514288910918495411648550974047222256699515648640253645502716598711125544685781019387477599552111943791470497961541709039941315486106330329032719278379019409725729158059375710408217700832489426557383493352890598423127408729627425433493817171624163291443013196914709736190922680970276795763389805200395245451022024569784587924953861051224201558338029187055182524410780788852958814351107847743119949203685961832049884027471520212826212456486866564502039236896040933549171719329380430540340054937036960547697436867917421324934250453628527746974370581120409548097954139429928437960015419191378153568973302566263490779645349642842940824878737969410074423941001521812478702800251815558505469289437648229086193755223589459930440086587995043700831274458229331318929168747767270613078082307607380788463554225184018093397060767480529074624965288026414353841730556156572594447990260721652460770151319813872191864898033276231847105107465619168191234178624758589039222283813119237677603691692118570117786065802868606731367693015077531158072762284444311078927370863493033273302423502671161776802786850473227239278616305291765137229269620798312401133164510650685400787089253640773610798174921803145832592614442295409975923521351662103392549669527440221977428060432131130664739182077614170799105651907457211200622885800072087021267707503774814577066316756410243357504710985009987996038510582033089283699481350475027828758360215460361577593837618713165170942093638980041233840348918721129558485915559997430560020595080585985836637417671890408797103479528693123507922635654825609008652939325359709198376776852078756843789899582012624437740820454312563264479234189768990072387472805416244164815382296121281749895055787278973586665915813270683381852716262672495310221252392828669556571632241697677842105188163814484526520885192857401630751547582882899798288948146944505467431016197598703334064166365595174979546245094153691105679960433590758245077373265739585380874808795490683059363049459879403215404824005442126689383575431197807513080404195835962637274653408452877397957481026719553450522150894761949700012100386744742106579297044577481575335993163028496652562388982877230916375303486953410463979120727968718892453671163675707169433936027316610555044202963711410603439464575092820310925935514086011687325819418672112390377690318386735584832876450310141407696474980830902605250040198511466833958583303646086708679649447961032501040707723710848170654823820796805754505592854040229162867670935159928109120443839922973801493184875960036713959509261221441097489735832792825605429558373319842139162769957774803115571155412506056346678986834704492071175709072470697546526688743575092150665693462292227353629214278604609816756534690668051265533959151235946595650577094601588567490736339782040059638579372640097061012683630861493442158067662184118945951763494569648377173441713977186127100404379752124716793869334024715605093469966301814388343478116390130024129802103277760144512131075232204555804891084444084847545154796921455704445282340714583076557199268435520959745718942262492182274183193337888041311465687273817512951835941336236806726819048662061150825099984694984479367918390643793818887813733811408155005033496085870946819374915275186412760324983637595524082343328747176485744964234826873449406054870983458467897368047408644822291614669176085607009018140460759538892137222827167887018915743145135900193587975068418551300994948659757079469648333268956133770971029015943912176350887552024766015328885383085932787808691263101954315771748318208355418813834710164760688040564915543431090011324344313931324372072327608726883400334124497447499439989060485273043822070949578088219048378278998952314521126881071203073828097265815163423405657080503508679256655270631787850607517654691925818023100704905871989635528237017280588403890946041055569676386453668810433515241642435308966607193129393891881976836454699470896320337309023850088019406131057075710407256899793622207194961909496655415722750262310035152598855263034578003012729478568664147586920148088197261081543009994968473240694911534345459111175039560006391974361642753491156543802121528010415133699022149807696221328877287459647318584032393164769484618569221892841850340699155714222626212294038421071366597268894919056339279013533590679915153771582979632716795853511850347764398659249209806721822536056180988873212612381371838638135883828459176630224889966764173555098732316121424907023812587109682704508046341727191108686776732452942252007900860557441815114565709932667577325967030202455355756724130523550749009842977354715410228029113174694832202682455338206463198837744984314314992630008705313853173151159049114018713272662547373041448052706204867709599002721604106189455423201429624503003017757172234395345434543424376236865700867976237362049838966826298015918315235429354628508250966033015282697577953805423051017470808745336300897409472139163980343813480768462969341702678946993643077055093513754636192723166963295746080337487106252951308870249714746623597367153412482960282929794397181967615767916648375835791554637294845793872600027880054230606903276983364356333653802432343126601360351420363203533108886084292534847153360730946008847521946478068600422620554796990406657746249515449072270579842085504996173753574531879981687069416431244599444991938757283097276388979165347162191687060460502485323688328184814835242380527658859394159082257248025633854167291823957439996105304564086642920438251113352177747527759543481730353334899685737974098935724602215341504700954807396366852171198071072624738188189803781910868588765504887324839557649631549857309623909995129473292143356003426035778072156831088429929231119634444051789498714362546493376833368182529997146874030442650115377572547434638227970267526023570631495172562583297953377677678542641362939527597971392601430273220436768037074732603192136922539251297885512349725239778134722680230239209072929821942804962092370525909617215357540950914363834452372902573642388449525336345275846883522220031687335169295783050669359807456497383479129515946947696019192411320275353318385624462115005619842670344974227773572288571240098211668414780720951637027281144267741442167116373036236780272583910695925619483567600441326029732347018787038963040606652718772215335325709529505928387953345095311461635197877920032594791706696143758650664989387312657085185855971069578607031921040381567472924578748316301817267366762789627591280728510450341932475180221811942336733366045138743980180832909857349235943651774234970351788616731619713788789630178011763274750038398684046161190248393887343066858367059484179562256630890140776021342755740933874642230116949288351509964742339958386017802243753046225369053884659986906874811998629861266969436619601246257105071009390953156351588108935487992039913758325634650105943505580491537694368718138313209156685108488173539263929488186459671227153201091844724845626215991792711408738208699626716848384149801568899355472038747142597958211764799853782280684677934748563325036171206740121456205412081993088564042958823172275579991866259848505529704953801229107603886967602372103627934386379111260233955217641268977775677038304095267733282678320562016805354034083979609176956772723691309201196540695743353602374515830995106466872553565519631396779033384657607777808696504905472671393159556033296512033662996624234377726304794234623543877346616777738170621758890107944046655219637133470285163761351849876432083422860139353083190563202473755428787255844561645142366658884504174758818638066758434578736030119330285824328822345231116973231142120783008208630715549332025469600446151444554770040211964736415128306971355557310556441821785040908020090105397711451165134375681076047891941434719893713556023412194172009498024757505264503080958881976723010033946050721727667178869295421696432706994735230625281261678485569220173698373594265524822069693516462436554764022774999370596386933359892644628146559199462510466969874992314810335036841136464044746662848835854508403753293701534345536358938515329176313838572756655351201864054004584124199303288100941680151829548695849432539108202950581267826319567334421586258143032284057231378025417537697304676666381346950974111267919019772357484019581420846746195677420180472630731349157178182267287509622520816176668359275650282064113489219195847908216670851553488764134771718252999839158007899320638436747517598765279903144125690882918190599969563549484840543376029379831147990052508054332859921017981555390525775625537908430827511828824781777191419124009711183331807504271965832845478935242703256547906693599320783539912478333123511067434814934135474112381409549755121864056257066763144438162422685825215137216139021104359247476947560866227232567083442206087260655321955009680543099498850854480645367320775071372729316358881561444135430850752962369736800745022556374845477901142966607082406778774132477988167120276191521024610828667497425518523538140450925093723994971926801578944964166696049957610573265065416549427178016063895957596040492618835320984685726571374234754150343729000406348745470717774000789360776754021970103604917517941333098888777086044919422597616888351437995185266148659951379100742644971164727288170273485095052170155822233617936987605952952456759201828449807389976310951190755173336382568961980487533886896125850456548740699419440743791586678081611930790820116918866153224095105572161164150762046207606274144818573460848582024654362461202668195210421810094481722469700764706001020693852090121657900829781766370920995749839241042844035298684378897395330776609652358039116721539308147275376210813182653776447816086932650713973273484528359594571369502246863772190575224994424765621813068074814278133293894245505451620002518953763907152935131990235396311896332303761220160874034200137843746498491601592027878630162977604903652782393071212358728194659958039778809102893561755938356676491753892285114633675326359754275719831284896478603378031833087816575464533514835086562608816552069420998808938726878058478664044641005262227498164195973036909519795124918320368865653715127029349535622534545651204114105207468478664138916001308185537350087959309483890332347210753208008516930932820397596190723507293472490133232400729891667204851846358428296193947746473318202262579088991374382359616538737930510035911938005736010861917883614377980134789134621934281905509515910197473012140918698502000543933365004394823035578909514373302525526212131189683903193372151693757051402645176659787161395394994832119685516560549824473506081657074313037643720104691910973275489940304975429760484275311460595305619948925671160305140034697225805411696982359975726731160289495553058378735990850195413526083785886888787266133732133439911984426139130401897322918580095709313303733119625191279634608544875722811668219551947031673847476102537907494777878443556209423550237173544280156957036625258203896898400007503958790718765407879851425360742098063842603408365011551411261818933264030354252069982949386240445927118537446720327175616552909548973649131150510878498229989867894240022093240480579255637546395377207341118212884706937979158575941571316547295332668956297956376996223806788304146774155718912122241781134329960518628555600459101466443264259402815793180257536714327948964232208017744997391444010209660801153105048516713297570518688315823823878284496996272665619776830196171002140099670403505790641399936827685791951576944704010753283958680534485210263775619328107808652583559025499152106312883225307737370849840666329493108200170132672073478815853518747900838600715365016461528449012448698848382118299868459033834741934452660540133515994648302898543277105951810103194982181721355928652480095295519635312048016638772514467014554665637394183916153098067676828028638077099934813895772494590417720731949937838988867051380014034363973374438543341989644570570786459949560317370485388790329143065711891001757583191417751267533190739730286743556889841792437570369060315551014183208951259839991009971839226461270186468070201628560695460548840130654582196324764786650029418672987830528106656012261880508353283074828979645323308938063461076564107658378419454349122708650926618922285402540404459455162741210864667333990019959504940572571501636595051529539439198561664246812686467563361299178818730761082096427357984617078061369895086772042542469323887084585077057782236294315460866451413098970842594925537526125691757241756878251235569580437227487442814332664717277624247031677727957165948016374519857714520099184151930663821199969966286092182916153073380904900333254285999159999174548938541352664991838788401421017980798777509261221908198452194947074823765416445601742105202989668196981048431502452774897485101919596816207199692739369068926994366017498703177781227772040707236645083790457328840489856575895118226979752114998675608006839426854831672845412401102418790081747063575341653517021487051145099625300849611952142713014610872319833735755487218053618569994654654949086193920552398223739797504960584370103289292602177986097713507917123849255420595099024340005078783368660703424907202158339824427699966012767274280522900012500204777990292246182986742578859147209314351773743100602245765089493382100014703175577589269011966696613367078111325207719406869516511173545028934801728321576506298318723591407551176302876830409436948537377709435284319058426556944420957348538844522948657554472356597863651760780686292146712997404018368615803383260771460921342375401315459884887465923622480865424748639040449023112074030116708628494875009205119858194625958079764993625456844358958196272770482643840178167092050871393298493362880422975334253482195151412881644306787112157612940009664123003985245290317734334559970732038605009677605017200589263283507827829906099461369522000841824820152827334342609997955284704708491006901486678673135446167886999705863401758371256084892242405761214499523898158901346768410481329584978734110904173754689825031543612688524539122406137171297181375287962779274058535985088398288511191588945700584839811809793984903561202943352681318972864706680969173000219336481277060736469477904280646930258855987427952744831863983213171409070205271086943250464022862063427050620644088259381209944733898130014093881550538570340086638182799501510353022474591204504481638809777157596921303472917249922201841464438990706367057272599093347987475840077698966816428103415282805120544516187470139720290180482831055825324494298637723785755140646195339899938408707500787975082413122287722029122232475215636665435391789346710585507237715622857371619978933863654398408725712863466641245095232913082059346485044881316522990154795687537285285817753002403530091720892749813192829422504421888076558066223814433812653088131648563013824005444582677190726234689220769486357991896842215907019756360321987295290310811487820299638260264874506604570621429814385040815379639033216158046684752222030157642491655383714369136195070763355643236181725453985931507688953726071087993527763197578283474089277313590171783454210177804628502596772145989514778340710882276678625852081181665829840098395715734023159759019254138239318726303393240719786970547111939688010036705218899385940718449146027218991783343110033873926956668372631515429955553080864902422301573132731847216255793642084522109438934452724784338712172599164390981722892469086425416981402245499393621001295235197080003977886928475974397603513966859730270192479045928852991707054573259955192102701300643442215824779206045037072175688657378855784385613924005451515032170849787985949356370054136445088748707424510056678555309719745267103737423726048978727315826105513293806862326308350522241889168714242444956980378231892029919281938395139242480644678227790167394205631790728554330781982011509170661718372032754953622616227602006459070655772918162892264318225258317970467109491049406105823920609477958421886659706788529769369096443025504125399464956541969145940007859442380235850609440395438642922456629603512630566324649069145481648679401300460442887746711749514739719502126321328751140657619992730630936282946997540607393057701509708651849985757053687077629681350018321373526252865371742268569247225648356036471745193567116883817967031330448793432446752482501003712267033962133311990297473693443940046441011258836313322557739197267433696364330735792063424097920604679484922441667641506952697723233882419860606836491556347041556400693046104455863603944057437077059070675207251751721118159988124627938333375973120396871834979395966488346087858895711033921570930088769514828360133477524058316596021190264106436482830530491558025108581214189216324816558807645391254499294919953200857138019655294168864869075147800566536382010435942446733711629561334860036908714934571745959565682204587718741603888672377406560898686889581146076380652619549510400852145200893349872155574214479434364353732805117803459407618143792906915832002228669570590685431252502045971401386177626998301005709797553929403132809329045500632861280618630494513342791956619963535793603311291760425624769252824890245771081507249709375746003237411550863313954336610200884728118583084628494981757439081969777029545864233513281306202632888955482925306667108632017308340850597863769820200287997285635803345297821769331668171169496824499779491306998118732519659240674972358303983562653859855248038818710495229152959269046238962117074315340173983422216582437370412204314703037375251430239801573432854513285821786876660388871528249108274004259351102505712116990945868770327161831974314905267013995649990401509936498103866216627682187181133221075015295520175569488343817992284235062540033911181671544302755513058508650219901138837785027280571432859528390546126860701656989596377489213977794219066853465749952625162191213595477843712945748215935557435987323456150028955424815881766773035017550305432698336174545986931361159120673803250511234547111787591443445554642985657666928119562369753928618182284314091796764826115529556351854638120833527624128365040048898901931532999387987229417786205151292023423592690566403870409398627048476336206895193621655904076588835337175211149039846531226629030947855175257349872252607373684018328430790539547091381979975513696571767530283339029883258147345865068163635584306526110965732032634747441611241798328934145656222484268058893011809519164931472252726776511854521650643439816737551780514461018275874136025651961030054084234414658610476149677464104538662375660342177062622645283212813023714437073764346198250608500779264639261402432942464818819359261302783831559076083614613746529253271020079658049728651859838222533612281371984504008844533647754135261579132004252651563389034380477985611742825375504987980933074650677414477686918185837819433333415668083913758051065889372709292940213522306908616966316767115636971702713879270546303870606057163102606871344714954718330268869375368339564526545317308119121906054533145063301616896195863849710367473882205645369345968177388694186422993609831583435551224904260096645933746560435986757747393158213494536941173001785248586896988772075644969567110316168787049468894251653069638552564035860846310039906778160753751368817351628938530843161163856099437491683502036024237102034623219934965293464875879537796688979169613468102321495826493496698112311985414889686286463682732860028549915249549064574303728405964001599424370337782092574695329304783524001321644494310888970257209195619179771378515892877590093835102279194865507143545011933699499949557513875293955273152078242389488646142243087395772783740643831969800358488200103665432380566447662273151979809418279572028758900691699952385150517235129680766761218591547454784008358500869087225667703420950214000933883692708179966674138060068542906890880674952507383114702288876311463500218055353106237079852523853337372775002461574359963015307483170634764096460117773098406664415106609846704920423191230879234944753015118046578350234482205726937044464994369692342651787240607283901490297229411074154701786940112419567373508848351565964231539955183340148621537809097661388439753926299028426730089659056427138847706278767101915570960818813209179596643213048031136962590157864489916717375964943483030944625712877150748270592120529521944941398956569616964801287503245186682942524022153273393944058216924833444729798466841251944131441541543326854004504207731784168698199293442910240022795301882172461057099328649336857371242436415433670059284440363435051823630221545819052728823114121259079848343550078704088097473520836659531631107079773010824627064304048300847765872666560477612675303759792301174178387139919748809978036658146731593515088013448052089117340394496125615010631426713092352305761810452116568780228646107845343721559378845828379315520014301825435735640375110293923650943564698420822208860533865864599482203672935678750617913248301037058830939405489020258605928540756521307961440892866137893354334135868648502074652859829053058054303624228227040011783153645718962799190024603000801626874900331505636319118689354618636350728977238679960044671484045371128721014727346706730213144398368096406329094378205641560292033552439076915050474351348768450012134453142901064783713614160622122039685960493705174212799989115990581773274194328605016593878703417518613419967795914427370305069294460294342159365129520247473320189597638890568762666157086100202657609841365630812280116500245789180998214475142464480692520895447523855478492798870283398384557008457564045274598841579376315471835781332043412950473802279920681864848387900742629974283727631703033645492894081219883764818520126160473051937476057719851673845976624369585422758110168929135597489768329548222775582703183246554884355402916903035097245986063023120232017108543436165764710715779609255510467769489820647701201171600746253792742470016371952612930415351201515263845708990058895465594635579755087287113101944290139480660582163983141965401445668573873738641090587048688683582765286800707843155298815672334650668491972352942452517123864106666334983604946225895598173723323760306453974335095057630378924940497446033581381014124148355602509031599378731821264240103560386279714993509851453552206634667150627154017340571506338316546971705154252877557802700319193501192102684472223733782381912898766666918050349185929503728327775057486548982659146288737527590038177160179183103127106403976944497004548650488054560498154036436929964923491126834874999127455601104479070461628930912793446797269785597500896401938580169792881358471723161993505417127883166521578861767135132221427860314430954616998698548798671654179044697625034649614291868453607903682842534611278867554152150100526374900131962145814808875042469729277672301373589735963572770229422064552812466437820824159005931034563699682987412744802781843984607803831260687388044580011844350555431243035862498474272591361807234300625788217147002538438940164762073153239746922947584487866940982670326086244586950010381773407375482482878222780500547260083850049979870601027479289446763431547115936518776314691073331517292544869038894633165605458760034507984367380025312615153315064047722690380170776423734268898195981721601649724332014672879881994875405321546152428019888247079829264764104362574799381027959241761562708616769903411681411913127860309265982784453679621653365549343114374713503968350881682256329390586475811145651495011444815895120257235657477644586409310607894731383755835604533114030497969627755885139302913968169092471092366738100571246318380981633737716811892221767909514589969309093465241994401172364537707419487147145154064588494243472297603464036929701283658663774633025984812136194666656307161059289472078566402240657850782822177690142157814985624419702915820705971530411518074463454886661194124787357619778885270158456080726884957913261082562326403592069532574166580795831015726166608850305225889362323151259374061249172945953465395396554111733146248351077787532164968369134178620280387329555680279939688225240649697220173637021459689925435042882232361721264915180883706355415084022153160005512366008442507639702976160843960858122217463911774101027653480259011526730122934988678805147445216706834951172034724443570563748635729048357621408179365397657522538143930959165534922468031506573685253272393250601735251643921411474388540433478155640521259478235360804167436514629929648598260655961653926425186397448613983994229142450600383024153849597876610136322689522786511794197286481616604386972990992765420020106675569750212832622495388172558658910208447493556483801067185672494691315121843644745648728793790584689848930272984390276643814641154798050307689448726778674347623826318697155135285117324509159825736957415407154329522214515690998479736363688182819034658976277803811919264732048010886698700566535684878594223616194744945057990334237289807350824089689986155000683112971245026170597991748226017373556653336900824273590103179327116752037342935930145031505051289091587682859370334463951685113663325539319390068379841149108492885004159467432249298158781301193413923922015598730980730426082200957605247847860080784459883167372180698471495772106858592429577307928667835718119148940235831558790948704994554457264644365619023022683816027933621073921265154925770995957736527469881228031941080837658609650702931493062984604988029328401200976852189918947354750612069532838000465978911596023412532020592819448887160087995902673830051818329794125148213432719299320007798892398825442665826839820648111176859946140639215597571711658828605622032843586634811167399493744791389908615613327359444573814486218681995205268661707406091363745064391264473785632893764359237959311382596280376386450990975172568492746599926983258516738061120789480494364009249130237759182938981016454001638338277870373918926239190098885246384321838170368953790601467208692522539949562620141444048255323843085631671386613463877453251891047061890870375626964624797966893478135496953075454013387180515890427816904486604692549619732021897795295959479919441296719529528491574885165932630084217599750639443242209872488612084269040268545632027435846149082168154740191561905517392715229213576574507916481729460748624085760294446161949081377535763368908541454041624658212155573043059124795705044325521699447578255561957219656425299660136054762550138877209786756896155432567212172512360968640936996920816948442591518995612411088695244807357059734670414506073589768683842707615462580686567062264920094032982423193762528358806756793897110106827573086145925637331956384061151474238887180814070005034064801486125991712252439970982380829424414689994313377919960906430386474101638648019127155785574855915909158781426589405208094350436245073763203271362577499279906152069606818745076443011031417531515652754809268056145457272544271566152816432191208573477940806172126208668347099580963521563728074545765445279913124318312699851096610652893283588974381559674461494829227134175582859305356444017693854159469991888233462362583032756964419499973673933274477644939474993131940808510727248262242919298185128316745381270289756905394250876744807605225856056160095047684987864477659560038704847541913329102267995936098881622047920504327554749496836825033674652194564838761044444778622255070423361732744912516105922889766486918713363441149169370383582468747875176912182181985478647727056841388363341340707474298791283779486430851475288246539413936368173489900805549671651099321188231057201687666454479984112470695163223016497804331830279708736391182602462974315880554878366460231555278213314463762017445039123635880749543082998199034369778180586225778630873242656920271331731288318841788687078648176198604251810353838604966296972233553719772912238068671182459321934656781557274943313909382796639280810112382551539681374217271571248039202952032577950093878242039810361127483386524159064232864920340519474095847641438834568101417787903446821838807226899912298313904412456560582681579862802026206947210009563256809128895179985804879788552380623896425749665743762318379221088354399106973069223249404231921931015216865496434229683801216233619928649928223585404659946052942731987246752293805394067310428608351388056640803792868146028206226790100698737185890096848676848692179736982831586308176378482191964595382827855129942963624160634073223055515592017289344303030466108150911060397371509277609524830506809806288861625536646338802441359912772101163953741432980558700561317692650759380131055063211334513057552327009377255803779310872820032754453084380875012283515159209024876824129201092674095854319451506665987292165887365639853465533012932090850917029760505468350471570053435945025559568545427508215318656535788304665731759080006533986015164623896606794808357474150065068646180401331615104258952915235039147799221184210868325521209261474778967955375713714597965626892257250955551870833033709756323668746827486842070276523971835864535672972402549875033543182857061014321870257635055551026757769197401424149021065742119386710252438949782970807625104873962584626660699348780888878925819880007067878537468669084814032620490542459868062338881126327828822925697220166301615416980596776267188161866342419641745118876448220707998287538787151863367444570328930250023744119574409680432916117749200197012996398723785316338219110421576262041145713306693518992556063702372270863253595160679921490893900510480525609112952082768525566320273219068806537043080849329525936373879632158261590073843260711051973907192382465809282850586139909568583512025798823782299672989607255074375985029939773951124946152066919463578912415691766425595305981231962919090535053786597484586363558500501607498137503523370092909550336690595876211093894128336494088329549652214063634518526617285322222234825147365070042716730039009982606064969244500136412373974089412768957803145432078428937350856956971525178434843021029730737336884615747443842686820709850143106458993840107815490785233181282873404061357028896950272440066669654615040354428606244118050837478353440601319751597772590831864636426234356944551897042717589057322332770202718272500782386640938594389177371325941081138572705774829834604163777098502529483880262147035465394361896095541617263522006372085002928169279010052948030735207528636861843534874621064895826963386380400018049354818951517031077311927866824790026016178358493426192277334259888943714989460530756266160465358232772791231760284937491621879748735689303759753863798540292699723646016434248398169423143427954377613405543319313788976003562515518869600102562815994029535718025781688499045995894232727888924776961226687298845602868913348827884468928056681663379510758847409155561058339072003136845987390441555030610618701111021825590648073208273075289652815284045293250789657565718729068651484261833045187355584385721283513411492607046178449274114366052232504330488899664223359150826110031853780309589306106511574637377835394894220862036013376585502980410776183405225211556672076252767019801344030355553985146993881689262523874781944130439339613051114890768606536617318978873056166194280628042959200511344147260125761432633875425648340885453136048950045716284045991969520039170800105972572722725264922017672365704830356775786739982395001254001666468828601976798626965342630502133044040934620604843050588768173010680504281453111403192890058091606813764706251940166187462825052428738237343621858709164536224510154468545036120644350975222524892540133765512645260057752696027717197152071858887101047381414046006241221722017260005425874760531920527798867448193329538058681458644916357214104904598358099142479249617838623563153045671022074530253104329985436525024762708529441980715993870224531637681855149080990927186174434526521080967648547830651177980266259612019430720183053427107313138300812746217403649357501400474202608236980955692982338937084420539982813502293458009793249217057132520498271022072316703509791197041838898688170976292008633845639635352534905730976051225440408014620076085880014517099676994968211683620681141224440657665292064453727490423272277134148058970466137375562882172391040618774244327550240459565712709380233037582201627163386437859671755529785342292619999025686294167846712088577627976680778637418126781098691326189290781042104759749373751614017228805247610880400757720362145301218649285824375493330340157865707599290201503903953259346065807365519114539112857251464374738669350986073359616023727054895631969531171957755774148996110776473729136410931177605073477352129829056069134022182719013249354294884026726163430049707765684163756255589801051049464516393781035240420073406279473794347918149915060668094706738607642535057203824794102403896356896609088064096868625373926961511464921926331581175952829625132566964168639810835073415013616468957869124552959821408467598646021461258302886650585236437431261638127194578103995589432696601907990394225527834081499248477244522762777621189636069353471187404793088036440962984466379395856138894745776387213747704662270350433762278659830845793098882678357328608515436749132644984890120266499453724094030988858284977624524788350338336562269594235422275031131657445917595492681862001019105433673377917078239105138474121164678712521535026229754924678400821288648151151840815929001022261390974440173763196257091893947797293573444953801335218547973372842594906946289131604740361742036496462152759713441226371156510119423960108950917837272616983005166437867594582253515778911096725986912469089768254369318905409664799388508437070129880502088918431726290973012910256757062466700476722914135091915145420097596890672498237245236914670187713254543616260933409277663725094673426151200507883496090931356988197787923854627462465290955216794265833892428905367471139095654175761358986567967527170638519863112666740992135941134885591134324214292730515752854203064227673985392697658207960974163722113130597861321062908405355869400115617518697589920218039714564015960628189192954889532473645978807310926379487095277994562417484961842399576293225173165572735337719886774076513200515009675603365859223596017516413565500258095277761206018458794136532669876440993826705663933797084930746745701342769372783102114671957847843443631597217371206752884023480899485343068641764067371402904713629740349295959265990574102174161802269466472448104382635383308742374855437563160758661971993644546847412543570076303775079123421368680957132464825086474132131763580521662087831900084712811550822163161868663597350247347771161147880049910185435254998091785754487854688979315917248218904362742385740103782686078640724128175260211505766469718588431631510486491040324642277547535664705413972777244989553454932944786078806691935111803327480687068920730566077325247062405931724496782692070498637541432179247631631391573052429661477307676948082642396424155843611876163552211112429504063250657311175309193036330023328149245072428193001616316647982101133860967201714527797753239532077656250538610904911245994371682877350080632611595349481612693604111643430627569449311080445468089238152095106351639170534272211228738161969595795380113421113558429270764478389249176287278804795217022949270125714599172477685143067167363534464184053326652812464183665751882449707402462521629740826993286278985301268320675019420180291457885444305482569141846289794114964800513426475704574343791938425006827458460214126606461345455017239023467448143930941427376768240002338249737725282195510686845862930834986408578534473328168893781519625336909888478546142164543337186514796129543071368761757823083741040600117353567316214418583986677264527806209595258614892154440482316412889424440258540036690495695764521757116057902808712668887526540280728170214269340616917315816734985357333941694927780582763271724586928503969760805192247395318703575827164285697159030715056515426564383585034325440498521590459160321426143642885538236675816556083577221397368286251920335845785333694695333502900323477830484354465922706130901915369346073811878404358701912345466530112032706909755931592934580228141086709058989612500442408492387293290842365443208820842867427365837733836254065762920454792668969476408776721678175626413623168627688775306996723275326085059925083730932182784173955457042386507232021136066390239300874818332996740609106691116007981819112410864927123861669511150894847840056773003324323099225729771755444696529328867737081828452275442460586109241623638549164726559054024065428541472172089524825234183278893111587661338069022829623975160687840070738904530525978708487650135426244564820214839675841044512878834659800176811289214251527238657610490443117682762269633927840139178447313378814012366466601296484644162506926672545146770874350056730679851291066868921849929169972378335499726389820287491612850663677016366097630351562863110647981261325213841685126633756786370595901107214668055380712331862817683593581482381844163997832680274462807102976290584463320449288538981392427107226025377056107763627382226117067865441972343260074423878995531570572211546936551683137219430550497724364504162514911579045602193226167718528884437855573295735643091420810041654693938896931522446876036841369511419062353282319328626527788713706342499900719653388132426827797490144029017221541407238502105142164795339124967189716812948199396097168694116209688554048547954880913992356450450311225295890173963291318643375245853951495754064571996430842395293051609911741201657718901978866341092449697727686465888881554349030138067421121096528996838441392053271678378737097033451668687601083135971300605300427407880851518414413992322357165193249116882478242510901483385811096482840393665049275910234508611233098627070947612828474067388926428851799396306829210858195978110578583749953508381130397304649128980588710341174478511828954974784085628076918883272472733243840640813308772307290115951299840468619605596652838045827511477935948110870376014367182120127252287215688660042726343872243618519563605326010095143680858495331948616146724419341711433203497695708282070697144739760417091790897085908657666614416375654773557907277072022035438782086280849785190586990622538216930045900009422998619976249713091138325338613255304020640644529022702268971435106896714552289914347263868794968491172295779377755659931962537038555539667310703602047878356080402225054953464915680000183089627130005413991650820475822090862468206235620742117389312198420768945090859697444690419607336477199974145722374563914931736587971800970211930440887431001132543562644069621447553946944516875296949885011102497752725048239883261171805360382329936971064142663735972369359238903761681669069470505815308053167414983762890317022970207706149342071039811671475737368727126796408070183845933594290657281600138346259585949231093300626036683261124341371957672000204218820942358153088352623098011774650882576413756598419444335101723034973286450892359929124806624344274047009065625515170494828065096144569510928339380107136661102451174342243526430643957098705143910858553177745876006722533292424318729283463587424616350539452919294348282605236179124501930755155280865042473015790651235462639090416717603971041910101427440870147199546920051295832276250324113359829279219297538874984064105604252346254071061782758005965794960431347714785921983438359543789076315674051791913954939966511065078241296834229862496523599418113051075950669598210644555838184047004264149475484194615645160207820697710972343746735745203624628342773041172661006862399651912686506541839438458920077950675035101031304139623231986032813139037420895759989145599060113259127031646172728265737814615414481043354208630160120020276780876131558255090529740693888714140789504828430477209709181726680991844085489344778890390867071508107603725320283512199216984514021428141522717035092071309250676987445922312651894478357702238783323458017910687776935156210111344373308634433267062751215584850553935424761443768506103058600390427579628301994750328568141308727708981414397956244915872659514087717006161941945378710135694181135448362731688578630415568230172733615094161549652557039306127781023746511675518290667284207898276408873317798880400533548906852825218896376108848043659726457155512107372334661138362153504722535045741826886396404914687837163340032957725100981289092334102177876235348145311748757332246138064135987503520023152528187482497256740540139163810330670411007332358797758635320741643671059788030749089199465076909035669923974012579627351272491075770894862225289717674159472935130042397201941894244785681863269236352903976070028698757714183357644972850716538976962226223239695711305216644473624535939866058146846800718693684723415260190611750128695872935716523162424278041590045362938094967621354946642951891153154957465591743672675243956255890406555634795940740824751200207143744046863779490052047436141474508069803049959941397174862392124220434781871428199936442735846900797353816826178016753125573036881502385546266647368476921468410935293164005971832009513371977209474223040592796062348579065937666254415765066530544574374449854374108597900918558794277795743359300320641186401101320557079680847713260504325476036716086183730092741780815138361832232587150892353293943493687957318201377892025690188517388463814734509609607685734921399853455725346444580349572498864382314947039868528696940675250832244370672163459374073209072725636114621321402815992077581801759656772165479753835745898148127857523896102799999377584620448722273680204592874753982362882873758244638710577884526248564643045108403524650141134647413478122811455614697060790439271026823402211766080451029806844563261063717273167992619916440123227809043707256222430507727501898710832455396730418439114380313428853579068814821220549208248766872557231250441805435062372080205972412874225420635470481632902885244357071469832483570110091886281993932448156657777585646300495116253539365499336197402366031950051166255715573271488250660344661702341199621650143241424833250334630461445241109105328054722807319115567702764507853377663268870587706946045211723838852661641258361074273203471509642671717406514343039053697926201105474496547306648071867582656645039334507529925199021204717464562987818953599621722411906007449063862015746283127200583088907972024449765096405998661907074722350194156074981093226633542891194270711300592634390466986025210415282417691975287676445793087656458375101549469761252413201744419563635153164360133447413962710535004717409626173048423500437688493924336291127035834937010116330025957684581506646847451633035738321232500661635498695758708390175650096940003845204134836765685822709743831535554990693664500651830372051903973950844444709096330140316457016063042282894312461553548926602973496605949900196742929144336650730870446597082122291027662551463022324509955971273043814243409945159744036906373042237781588994802345627388232493168399741182038388418439427357799157323267731305555716848707013376300586543430934148265150587325312274189873059026881818942834959332401675501568876718429995773596482901466928361440119562516260910288797922233768053239645800983782803939202050626109907865805116132096528855972884950155407477379033194529265798423498131531799072491018896031464604986139291272826102437116884072589675904624208896573847504113217133485114662179004942447629551116334627243662658057880246953697430009946473068689390349037802289998576698067337127645543780609807427574975339820162987716006332589686011016195084530865636389374563311073246670866953889125262516998418320366796999930641176257195454087792631955081778629529269797383591911469448359544315262602818361497658477727917906160696555709649727277917239490050390370945426332474297364153898864415620989679205404261520899114362945452109992807135191098845099910515261413704880237650321008431330627675680082283110958725089561318877960988876187408964763077946945867065220857105012696765235200041237944217156309979689853323657052301514985298752215639691263363520231573486989449418121894355960981111129144037654594736828953601235971238477343157376697562652662725416976627304993853614989675385961583689835106597742314799903892504922422368413978060166470044209183660286393226871032340998001838853746925361772009848760360456125317422090675778068913412955948423647593576316079514337770315113320383804566863696481983041289693952881089340094693829332730883735779937635479807606117026775765312245885367103712512301899910855154294232070856507208693377487894825282271892825876918914349569670906130281962623150107845288627542450342483098920973793067979683480105091236311130059081043401414221217982808581740611872696880684258187101025651818806622182390430935599299727877764162864154714814773213048861500599014956777013160867051488482449137100386792647776571228210395323452892445033859104935055228623096109703546107712461612009341152170335373833837919315269113242141076604976943169677951017403736813004647180729738161656225052509699295788819251289645933998587167327719206196801968762747302640229856384626789556673892328810935724911206767845762737725721479938787516403880873127990096183912164714362337546250664627560105743732642856459361937941805686732690594093181005816436044034127988976511776300245091260636677633775007159043813541744575429580857129580154850506217753913428520881468379836229523944675428685816716812887541750583655032607985221110867364559881333379449362285746131530643181824738405821140835617050347893021932086439827353394663213252950157350794110004185919912616845448174106105054553856285790458130049558758687539427116044574610498389677083238684231405930020319696872986422681527427277147974793657250181051306832289264183807540146898621218944124030412902459658647046719367513835381820846602716050241904178767214508680747852466889011371863404125067333669661756222305396947899860290428976121173706562052085271452761796157213643839418459475137238696038365797279785033264938873425239581154151861592343029833576790157704220993820433400768885517035293651827374450384628851805300233413035920548423620865612246481493507219100268678523872623812646359987718300487763422171613667958674372987862698772570986997569605965931314654592797324965255569378976765191086197910103084633263069376155241681447173864863007062802057335544146538076099873307092263609463276667625844971543048466696745928616722491084439381228876845757937925765037843687841793884348423848625137734195191906071036456086372784592654579722201016216742221668247697308153759279884931305391522122612641381064920191922283610765112360398843346895394280146029883700589713317591149236255302256996857175594942433691127752595104198159987442220431432180302989272452725303082472525597366487734564519095756956928245983021978127469338538808718762863761115156392461699813958374567876415796442838857796521005521323087704280617338849638942619102578549673365182711012796931954024777819194991178001678848710160579110352374547414938656505674845608387479383364873669118936916237811365611433518236494066538019440913352515413496375345473681932034999540687181709388507270291567672708982928609057767872615535249901507600300799428290173548790097327977772758054126994647407582663954198491102950123779498523799942947859621648221714520568957832826422166310018746729724025342614498255480829878160292918810577851037121601704649396689839449096653157304705152362945965794909104938271036330348904664720578652604498872879767559909561415752977183037430917960478141250559040266452336322960638661501796645582267957735074098747071294310292232302707055041972514250270709140970786372127307682700054627630513267753084210090015099982832026823161028590389877243231677113184616427984236836923488509456452927122888680598424284901574165806790133648878895227502821314277140736066193823302134621643855697849016649170853376350575042885315712633152222524020994241664892079715400293743515200367387870416421948924800509039476130409314434383224563061947491945719673637895428343926209346499213246216584972198191061546233087376431342743228563268454464164003041936476157023138893989205205711488516154512585350440037471593237769586910312716449202947879403595113479096462133953428357216945060880126844313420804772710857461718619118781285944065859569724108381345165878696798119720245850210514760554537818207910557530879397236454177237855619084212346612274371036851286883948537208822535105120347039489837106403850872997015864707243494780241061247514634069972652829703466132553575655876880995369120965153438577318052033310434867625317929088330887787318377969835430559942489537927904179191124515167099856454428555164724020944597727198604413721580337091946426383960481361556756481314172880943522874963327535387935879402397011094560954211536841717459725952763068186874550435690381030343353070216601410730377592594671277099940557274281171987467507874380086627409826755861389228315023695361462540445077309475629450110887798385625901345784128851057770773253749597327825338035911072474139320623903194594242743476603635062624194095274665202560623395023375670878502776605299721616721051443880120361322980713283743769999969552316230880228833094998946750837240959316952391835262449291688450079273969805683871592944135635185014358444172898523308888114843588839215989399485583949723534291834581530984793632351880202643237950670376173521137980265422343810904747688108276413616489638153811089227122303077146375113706147562366776628248923632644712102653678874941340083384270926240540055316454770483808396847015645593748812198117715369636359478655503978650517413286069219376915059129550832023383753382131024810716542292396750516289140705995975562462662708821189883304400086972572388415472416352107769748628506198852260801866234035938395412561799583777225569951326825179668681212763373348364265391302135033220089322608597070527474461484896544647739190017956844253548281117382511266389172238642015532459226382889198412055056164984090348619171424730228708677209438883015030105145933354732863658833481048850131467959913358315199865787742255020770697089183533157937521165485369800207460283828104122615081895548446273401077611655529139742207670978510219592547078835422755486015612919600247182331289565035761307073100662612604026578314877754046981600591654214165733389202613925034706565617112851219709973424976478947723263853705823939385668986596589017065348978726092777073219395532120160696211385175612135046253848587562134823513561492476027979617326131795483482749925078390962558493331605330535704899033624624500284642199033760574150591244315064495993356942094335069350051502531100323493883784889873592991407327664199868280642004452270048821834264356942910243417162290319204473082284721495760971307845553804930907686490651706515159899826097343341522978070270509812029963568449962610799736478341677566027340213596942348194940551860589787713896750632291167054691100422692050558281170837971685902949926614277357583035021328174305515762234281639988957649166435543539597923995628719343415760330163152785485588589602249323803197271552457706379483232927184216657646043536843421855611445949385935476058046139680595751796203621738952730646972764820606785272862585623200993363383214431547174656755502291777582025027275091526810110975077163383635520744185540386423305540196145977118843721213127257411822237371726524580110304930531663979504357105590392287973562297817932385098032059817711038561603583090303987644447338763040417625747028147447932076820606590643078364486724132350149358854077401633996544495810378719867635711657031699843688161897335146843602296718454886285757025535341299608774091503434004565284059111127526344879410389288311402235136440486765853593507290010485781563909201026552824932362778803694040678706361673741867645737983104068681109665389861398003837049761482516252011636986185391097753399284177792234220562084576994570272033304906011720748356237493494118916297992542877608009836748487220492512980648560745688532202469175123775295011194660455044175801899422741976365965597445050849376215708687707265923848767842401699247769642027097374558168397665250928429241912447213327821171053113571730382346180146356890877641591244306904533473356214508947965705929347898967731860631277518088866915591949165619287412520230718909207573629898080003254849291281289173840331807582420572726224001710218211063653750780887027143608031366378714535100071778121795767201593122837051621007600884902786883203624859499778142192105384897953314280829964800437731747867909788771203597169451866737686528552516999714776651505919623789693015008178676527262338188504127227866802974262678660313559568645262950672452150508472872561396338432446007025977090670630266792043274933772476676338357516543095832846505446299099080758651278806384153259183180075333176547056690580016702877758028869452590731749273249474932486789341584964673557439086852379073530353479563096317019751558111773328972979756147726288445950326730398122113942753759463152963340843958768652819124901814635820201664456419172174335880395729286314660260355766262557218116101541240415726854776214835884807042146508015280534919708758833521500117355535922830028065484265290353489368259018977429422608833239367313143566832943154231788437951283916529394567046471817271262211433629155068161439063191690814295630158063010370961606702838093807437558137168503903740924333995093881871403383671543819961962336977282881322949441591346671197937039748433458385566512827195056738613835446349056600303168568291715659097224159901411514137694313138139138416641714779887208003427081257859723895413796924093541298358250889410626658264528300775956916394108472325337502352872308504775588411897445768822784938255792379872906063904947097358467236107651503296831275641983157571953478831437222438208461687699803122946863226863051501776640416089628542439439502739489834424836724292420336891420342155025288835811802148995465620179248275475229484425023301223833366241373323172911731895717742853420945419276244528600198048810956057317114478961690763754073333961282183378391253731553455999819799585354820893106611792043386540073335486324036883031336484918012520763450887745974764658915744754240481271375146303522250186920032197597805550983782383017738008558386977923476783562214510242935593743788667880838142508150741670767571852232976701938170934201708751715538615480906598715596329631621075898021164319128555763659201714602467441164828899333737092225417589206470974430493922737743761675130666213606511950291007475754804531017201857273753426522366416500795577247055074990124158235555288385938603801670989769264116485772377149309495329289389147466591385305467588888260230551417715331287040185690721313637016183387708171544929560537339118337130633259987436216204803794202959865991675460020984571548928259641813510763519196618582414648728489081779127512023440719261865915492406436088119547310493900598107130157639694712494851020703620954368179876805480074713628079677892656812157786185736859219587425285957246573828264862239079478982913884080412003534551857155816509970871216456753034253054995919711724492657770978838707953627668238136819610703634947513827659282040574504235299490577919165647939521014880218837679302450454219042158939979520137324744520651327122133912478784811275552952113093986017691475761080094656189570772202885953942641900206910295855375946268851983237436328026986956101031269468635606612337848984274939104683713442402281525755843048780560156992913392606940033689421551142117111474706397432405102154462998075693813708100996002350465552300999591971703159333502047129861395329930312884232799521204720717357597035596616734773660906700192794373001061177452884027421880934874616554603851732817226926708537368114354602214463898202558583358163472243009548708114441274956052088402083301066413589926687678087141432295643151132610742465721678305582257713919289219837133939010506828075268397109331653215642780815875046479731355184680813948020134650656214155298351988215778760210446188986110387275004751588380122751511414642281492117752616891807844623819973077355077892607356952997023149515412577429510449542030215540242415706454402362274951292589014571812400362786388013129322320741447076652431081100853880264573559817744042558234012744317802709338026392173007825120775944542247520281006339626018455068194879957016335649557987422586873148643172837729673372147627593520494110418901894254748416235233561251765237117541177086685778113426788607308169991473519062245833150165486688530639920636051900736988338447217449461674565472495490544084139811217597032050480616838501076508495502075272142943285052697797511576108194386833463610905181444252598561016260739248670758838403002054577934264130138693363494930757294523882506624723437642183011134094167883461898310126684953236604550205982875467219264148115309761301960103713705309850438875896486354399782555218351232720267731035451445306775162757346643539938655500878425360680216686248321007483646781907279508231401169895604203189112444312005232145542135187954660196424702884572911103654789849060996892488866896056235408071325358904034305144524476517796703676947982207555595370976638520871027528452426132518980833775648933737302132308890698326876127204798589202203213045775967541327427365241491636969484705537072359213629739289759713558624944309006051846227717445312844773614423780482617240926994148466796207685915132083745279968740005280617526196694046045405789992377032009090724670316763790839645053033156830558557754182439464877769820015192998417813158480269233674798024613525262441785980855606081957411263872453565890158541824270461816337157569181106735940686727781483598897398538747752457744460791864526475303641359090271795178720210190909710988011188558690773721429994251846511145611224978175626144299419606247983332786647130586696765818406021082768567989775319069349391873681309767445554117528638440293820057888894871439866045895712899243887634863566764257867528755780908563404259296521381793505112708889480557181602310667403413394437084792256722567927739972382543958537400426109637413995657545513660137576941748324558397916649385164333838122714679711708896168793613973971849126444965662288629804726157397076086794153898659555652026657713930306947814226336621559608195313873507311647194009103947849477295770059643492587597413294639741574675479142329073008515430060164458243986370388805294575671127684971881077112087477331731870080209512721608236691650327459288906077155565545974801199148439637878583326111477252045823431934315237474741689802703708927429366501198305043066865399664322646499493484223120570303142526271816930048896907077172810941184743015988708250096059908571772744303283288976393616207292549562430708253639979665337338735065330228623933123077745894092218664816624820275708076757856602647202245931364909633206227121994274469552939198669687583482540484866678199248743524780581173087978576965602283703901011327360408936168575495922324122546558621522152869800085859968549233143415892940065317794806070660688923772879351432143395518017916618942856123836514423721100787386583837577477937175982812181447768636323359756728615632222117242594589867670805499544369105684110368833709106507249961642329344826096680488551406850916225992171906514062107347687305908866510408944615999222003418905018108479707582905356641064696252550918712084832046562327637371635934575991124181504354873066768850907458123060978022440549361723299619012656986766355602996560447938970063295482525391702519518078691469483010329085258999771021880575142637097711789455382537932694576550053197453930724336655862819484356855290827179844110778312882283639430432353009223461365159252680990756363258956822757010876312880893526475365547731622019720214147135750031861183706066143824892155542144314445993160218967564224326377935106434975002452642698266854290330267782339692854033991825215410855786578835095231455102070623363275582073792312772818167024449972189541115095947594095789687781718613292865384437461701624387452143844979576061267279430929867682341867397090305812293675045816298382417476482871839194453421307452387350643375030420909271989104205643231800161107875029446876117436063849589155192714637299067720163117402422126528767560604800363911170911329602099312819855763100415998068187621194562338711150193496713961451282406792559577684266803971356764846765855963890918857844922206941280579004591420107751578981331715768512950867130610661308214371893243630553012750506733487902739068766574919061244828502660587967053864471824274875411751770371448881848093725425550833295715365344442266308986570204507874134872299351470798595624096328702603650620540869149067324742998447014435371158727083737548362049459545905359430331979370077174766192777131024697335563318518827661945690062069870240711561592593731479044477397336004298775719495403092196888708100881641131841551850710447762353964601278405182150078412478474915658418120725265703479792914118717445270085134998621489061385736218485353657328724198829022517184462380737820192590543710326137829897652070033269508988121058245458476827123999130838749922740130041005464584512795071574584484183632942652223009313854721558509710431908220609059337812987338458471421721023864221597530258047751729924098770991614641926694900536813379554770908875173492589886916215793023645100621014244538093293351399787162666980267896414238480003673975043769021986008679244109182620362390252111867413415864473652796234723473336815225968890994713261634206264769235279663926372778043602065378403065625669725599002956497695057729107390579137737444080538891151346379765989145062156462399854221062300173344660776988114809152960170042536527785163147783054775708963285723025093872361877470406859408725677109992245333658452948430432404066696381031232015816909977084605126662007484920798130724552861023524791503391165559713179846528333657948970874489142166975171395193894890046486050190830846872325221345147760970016561648122155009742115104957792583025191043106944444490062922728685233777765003579773403313204883475493260603924629918605663603255744300970720121503475179761259043166149816452689378139624407720003956269565927534900862096780049601488656977636553374830397409133185389757439126809527016101834454035135366157830086134980661368950623129922729356316362255755498349612705159475136669989086773852448231964965264959876485488030316649139077978399654613673253182530610963651561132098296371756066750065201062521099732190858375417008631233059567339792323486012420595952904267007482557968075240812457625003703920470558723963669057560828233981787171095865197706437110457871305022636468469506607778083642736443903335956508490968535256332074335255933724412554299708046156823548421121760295119151211451353079456574913422250010853312057195810400737389580167433181688036600080507508755933057497968812072963667262979281009873016768698290300145570416546993922518879864609321506076375823496484918001711793266256104820269414127774695447231230894175096875967427184127188102169282096166796911419016099970278461580602930779637978653084228842654219865566096503292087674060525310681356315421836009588432172001213496096500947578387504837666839602122422696000943232440636180655313784739220655812272697180386778499061355373712345182632351263943693346248679955175756270613748382213181447486469640843604190374444902832595093620583765073124811877859553021617361950812953218531401715368812311781765348340083139471075783933762260903701280673575402378363394988458539825922364653910407342174692170293893413480581266869184478707265142614421195912285615809863803750861624180041065134363886454521268101188083648193804631065006011644950822175266024561488044660670024063560249308985108013400915613068708896021258587291488742936533924566181722551423545290173834584182648022957722039539822114350729520037382172469674476863862131993642281915523141426140652752639212851594346429297822025844980640711059075289771397695605010041198634225088235117607557626977028551954829914518727474328598828735193171125390262951055180567025023113296453421640482592920131043013431335561211297536881609242822401935368703804962887731327424221250716286565013499293038186667777354478988451727438184863520462042172296989291243552702203663931376358359783579648344686026676470512217461934223033455183337841512521574207481751699344615061266377906463562737704272702241775658299749104814618599350854588292292887930360944879021938245341590991561234453210209258213966313453385885360035882670320518369694785426588974630160430935063660073058374249650039941508771874367435408838656491372215329655259752922015394077728839170270591500570305059306034781805116409762238723105543683213838477365160429250468811425991913802803499406683936173841425829996810175661893717989899161580624415873170634548415348540589616026909307492504798850371489986473208396365229983460796417259139289935290395156746383708954633723720070401246064928028609474494005465792394862382962924737424555372031989226082660482027803869143401230797257311716526687132774642467518922180565350422293160286631089351420324170001874079894856789680074534259799316635181182868898592476724415396634017631575373718263729391145741260519331581753476148709663010427397425569240494526440285702379767798451131715888445778330463995374191247995948914148519968830097878978709874521584948931422599634458488850545071518414294262567297527923870544759794580015671301292216001762681440861047558805351302051366461925707417079057647241980534790074443298631122559580124911463818912979939128394355070913861310675600260842768710749115828201415046612254121896442736316404102215249149216138533350427680321146654365852623055269755109020596985094727032163002030730899914858541768999111075740079546865443494900791067237803308475282150357943907199367641518362503552177797524178987968049464700835840406804146170908821908682492673000885458470608419481050178196829118548569676912575985430667702066874562369943176765975011306181280952674228618992311824181742168031265729452427708339260718796913225024350792631748617568819296376792010554573834138326512675125170445273841589437853517767512603285301623705454812195191196906175461414689329359639301715189490952702970674123657732880441086763427460964352179163936546385002269455481193525838871716898934243217253728103948671930084379313536261842638218277741111675349776772197673725011188502438392150619000971188713585188049648443274222303491939256006554564831434245342435958512414900624880685470541457684890669488983292868543005919894010073214879782844652299753181093365179240699635501451344247222352047129828797168205305242985629796807100325066718746363047790663372528928283700980598737359416170782282466302624980330801430594448770547937302413211417479767272931108425058788498716808731110633711575512010336504808574096948022998759211712882795039642066837232301289558391337004788248656938712082021693895753505565890745434521640009145182489489101218928605218634721663125326910818977975729322524362649151160979038697145660190959093913460164762898931272150923867101635424687518745452203017557607421674108651784201175277149646904957248819501999097125225794394757406588723507588617290724133382906579976114501981081369160247034732263113907766984574574110307897514590253542369406203608471530337051109153560515244941345871723943388699314015068779108433974956352132758389379397013237285165525696168097163113062956233459007915803863406124392919744748389571422300273576207536440442608287415546604431283672536088411952827075980336741220302282151810483588712582933738110671582387391966358688027552243034963918637821399905788665986282102776282790383628560221149697331575551089199419179141503883900761288420384030214979359948530256613322342420946795132441623889853029275919603097611515057518923151580817987643909088787902849879015911631306389729757677678436339410411247273341920177837974238422831323108998356021529401059050711673425877636078663049278552624745237588247242045785228524041386577274474828633752759726082133464162439045673853956744342998350728641046890056857037601506070286148457103387077762110975408864418332939331379997985504923828157025208295830786921957432982708084392633670687324957150320890554049520606041160712490822906799876221815022346036267966998045574638622648763582423864556958188124486667589269371529492707570199618379342708579215176546716519040684530424000294466600705203683574727966677912580635561584826290617155443705770331985344229781005523845046204499570350441896682721397711727149098100541757288631458731062906581239526712534155744204859623236600916194988005932697868250113559371048182680542598928040642956233021985423403195589079288315121822253884515183313414820644348294589725474362543378265865888271295423629467956835380071306999984838189830340805169681529842815438865991107439610307346737420670518620830947519837219104381318855932016319221978821623422248446568689685518243810390482045036068249079309799310801166716894259919385427603184749962270988411044616044896984465947676510798454083010673955994783134805955042864441653577990953720929633311363775260251927029230616185467758522907012643373064244141546633641152258367137475628253611869608549226489761805537907001874030138240787554030726679162300655662256573751882984330936170218659156266265537575192369636547446646025309595043203458726708380725624895529382923441616880200768089815589370184433947692890779174638843387195708914240862646426571184740137273258698357354836472497140115311809399410128738945697201185718107630303375801667461293761440497048572992701174715568537521683146044002434074058737441426632726768407604219845642633908238908810460316474421696150397242326657700633647803284709226582853357353968558773883714145787377843861655363736250150256688249623526033493935876407193228281148750403378546198077970097791664461910291439843037133239773352766008473173160672822412895424906185394486269297234229882811716186016254245885105245987606923082445800416150257358410818737156356381796232120943602306913311834142176617698349933831925942786162571138568911935085798539487280619434445334433650366385939595293999531982839478443379997584515643915268700855092357618205335149024364166003383846875877571362733805531611074211737336070585500485344124887843900196112721583977131657055049876161056751069592123742982038647140599607660040041503973372322626681355756332684500410327723656433746308961291850729279815175832206484733438079268534109704516007940564957385352435864897940814922189821889292661446082238177574006005077709317382468834592352947744599983071502332784053385725595389903177388580125947440806881872230615298967826154119916270876250858321294937022145249976507065035351915374964865809253252151983932384983465925544563095521769821960349933224773362027474468693681843944869012206637398464483006592446411076818025476810991536876279487223800719779685800652682245280649125275704911479098376557278309530488426238698063910291025348677464136159487063902578398156838624461358401144736162429361274867360910579405453424515331154777616913879226702312066509933778572255586547219683369422537876333368382663986281690884576832079959399991313180522013348561979072975483937340193973136502055684171938766621667743885313746292425675580131983944124382940556098173140937251130225430420353672999540492503165149069294121785788182747482371305815290599829312385932241325532406395643423556447739262394536965496674178055855960957492110940527675854367211503310749398063675609297577733410579400726191669264325673764383042382486904136676069694910389964296342657815582783042395573645677459768883110190792328249612085562094524562340889359643705459940730053821404390242400438192497445660657701571660436124622231196481301224859792508309449903520496701074239972854847893989851745165230919108529736980675212494749414461633573290466929444652938570011004868786744028846148078261840925223334856215414033537891891317860731842942029337682608631405137618653207000028552761898586684741108108888474212216053113550243997426585359512888176206926633211233134081228751427196583332060936544020793249651920990127767282498837773567702820259727652948374788146621114516981366657683346991541332876852778663337348457315737149209098561244011942929981453475998695982297411334923345325665590687891459401623122945791980702671541667204232947967008814605842644476175494903105222204694295395139936820387836970437373340802187980082285922033365528747479056568284236886883831181726896282300200538495250744137644224271633150500414491978284364636302246368209642319978193799512089251325955783363278817677898202174972441722670832361362072714200892656331133804800951574020851039472819955335097129827007176071706381228868404049979159353415593587223028057970422104799731994675692553714887585041502587012165578448302616125693249177733015319301528894062539080361746616878281533737151650378024935262552723509353419455881621562936257774099248042299479998284519416068238669025730662955346099783414890495192041038022014900812257968684625679254744739136894843732956540595416333501903010850087014547744267500425865664606851404894166281060636399030733729268940063482159577415793092859867553248611742501951569451736205861864730653356421388242956810334362553844517102798099064304222260477838757866808809547502719144628994526618913609046329394011633824297622447337082571959881782095051420302681438021712556997818141774553732023265542318420539340807045723537442992663889873870647088254932735400249161982690817708996742292062441978434028355381397573401299182971203877884890881604896672155826798713573940555936463205992277592935048692726861955893442250698048243549327551537611467452182530983970842635857999426473514007121386352501037495416177084545595844618724387345394456012286033324433708916619428883114837950598941312698466378235978388014157506297601218467690202716717229105331831987066873198317766640725865363972694625050310266392755668838284659748550374123661629894038587536019419964349664608796641563878471916196214594865207525383325839135019273156170229847356499549462424949513135230921057394037422224391671394586943859554283304700273462113503265495087677841019996622477517998965447911159090885579319392018431710481848157325953397835987242648605204750281125687742699121901850790573494817821808406880002348034367723372473539235139587493794232217461185028836203980483918592422526278810451509773943760353759948276116855328976008860269359201297313871836348795707633752908167980416519215786568165147046306945412205600781562983399569857460090230835032166076350883875431158926342477052129130989520412354802528707971841977995905137873316148635595651431671748599362739037381133455144223664454035980944590902721250487988308658822384988241997133007088798373654844751181617189322698333422335649056763164110264965858242730040937196754496857675261260602364129186178099656444085279828087483611324820344256071959774319971465999986808223350407274267403526161117151198288234134053566878485241949087651811730668693445136848146638625918672260221449660457889447892132920648844925332429142268500858802974182251804068649585936447052744378061312711791222239765581734859262360394033072090674016522585717898992606130806326824667225826609274888070696936483525335663610762278519115918841475088551243729198942442321842232701847384348444175526958997172119252725104468277800223820418382487533896854042037118595289287295725690564976513468273528536716426114758157309533941846998443182723304652821579583921754135884249323648227492388655826779770843421057199304931142197981265066677575579094477523382487553235804501832226848456199702499561683724943326317757298401627681046663206363241648142930080331778010290738954601498030457130167556465521842863173988221424745305849760367086568394656142205447612479517414394918395928676857834369001784346808753539066428485101444257008744509276768114148579005530478109042675749866660404386758960045986293336243242958517414727371812894424724547471828853825720579870741636796814499649370324827063722848231928183621912241396021016602037124501787711542364320668925051722087667045700199825142563417502814520953651696493871188097436838428581332078984854743050351097894031009255753756344577634454875860989962318617752255305075784985037557835342946041660703435875851275325635583290843114023592307143391711493619740928721762513148051954072416697824502736807819771115136248331775728228542531116004712983711345041559685232513203333715236990669727675050228126081334694684326682049822028289751464176208460511155053133136067394179478706064730848332847642020904059350131338139045930382951130197144142908092571141903058421669725804166098756745968602930660516168394421228610313188466750150539748776584703092074951274027934619633320167840788980807954477375724561895949818019439422920281790950925189942360624429769474354795817016501022944173547724285450576584677783849712313834686704375343184847390307166748349635709451496813146291544396914201688401079091236659370735561820583466221308743738204669855884454954207927738805022636848930966643959386135280020535542313611096678503887288913804412635270028591336095963810871163699254660167702261734055402451046042500418331649276168089553298767126371759481092327819353198154385321712229180540979964483914014609198681098124669841602653968310429754482308815192229402150640084528017736429426314298876159081193817419563611175533185731994350427752458141149717059037477852599819319678743927017020613206688521871364414359356147878290840883179649045340402629043699503204916631805212758244134767490413740241983780212208554914097095162170602909126624169755744679175306732846708527845641260699037976739610514429043202832628550977221197828249318058980750887810658181700894130224127831565413456515200523207753607106441747037214174805010761541694529424117973207040371866181165894235162623594121286140640301793145373329113185458934711096170406245012510706421106709608246827082265218244622129797134925297165909400031234754398266205723399501175407083778532757955480793595265300960251803843449989538894100985303904410561453184815880755118073235033623824831527567055915539952111643371247852312325463714558771336742112470606286050937786295133371113547341503270404385675765510377234365458986819963455189159463693775754413713353200014050551724275405881091153154118152649546645894110268877821546802469264575972522415763547618800559863647953457726423058545929310994665993489764778992116633120585194146898167751867582092341939231437614104199983980071284853750275294297433259337505814552305529070771585471666473631345587690082539718152661468702933381465262688861692134104395463630279071059194958996402050147431245778745851443805945985468246559253443134382706821751496569899071353300483273899054131372020646059219174104194290629224477212578249926177006671238047670102500354876564251583963241903601681580410468566226159254234672946207532924942781339864237609224074895743926264758339894355105630976540291784335383284690063749790185344292361780515930010586211594005418487620723005978173752131522500398779736831803973257695660433157774827537285053657969708624943275159549388579835980452847676288118866227965816567250972824045586616151557068819205893375051569962996656692765307458473374431376325261370249091404590093223139479738657497210528800404518449742842675544811988182766045128786132922109657967685108161126959828109343946768321025654905672982215771320089019100078964336758616390407860812044070796969349257043326969511856641296797424916252587445492569212405833608529870210699594679590242634976850028164191289939540242319078969765234889006890925704905798763506110357227625182178835750292257802544478756950726361728958441151035549864002707849010920351455462719472469837628829014015125464125931264719777271865588365415767086030547990965375586838539600601800171957416823458758436183952577317142450659446802662782218756927874884602086175584443973916516826334884340484235326651823577594964870777784479623211649191689901663182751564559757802269858198522651849158924728249157475379466131909164810251259973758761128094189982688786928007836957010448036771511067506683085523176974980182154752721678619265456357618527134069601504719673945654109277418339445876647988044288824484115049739853434619720507811953298475429182200115408011662370836342687393622836717706828062628647711908278434929081377327802913365691895104202797134852904548772121500457570776032531359618873162658740970873661629505831097324510805015109147703697857071841503773924756937237696746511361944828726628434450473337252864653269055778297655831223616386868352244718814093316416879279365610950494915762946999547590424813764035314191530858348681302210934990310627280357656099028667705449301669257448218537528619659230192074978179689386854603340433909250793828783705443693972805822820541128151740177376584994126391418783987523960090158460321770034301718120853790068452257295250186747604510079827652008532620130471651118862656201777107314958320487537539481085939280993399259711204213357156173546774202877859049002791652226296325273591847067207422698612729741176120292649794002606015530935775402989699578801764793519528576404085796909516232589353422471872853097593881007140773532010626164029922639561045802463748449394834586465530184032994342183850094512766220047351878655563458509873366959916812028069411208536368685609176365770197151877558167114734032468895869352286854177329928923301737330537249312352510016217453267723670415109250988697066511435121358969500278635486719570830166448671401403318938960264804708357969502557049333766219923066722381884449191507235114511931957985131904999048832773910419643436505827051746141916420303771899956130863866730969059050828580582450911301845257598655259071710556343770490395911069346567681450543498564108406377848631571233735234650809659830683876845257665979930757119921890298238501717992258815491128324982645355847848608821962932893474578649208040333395777510514054015438138091355559142598330141175780721387695712686583798546937798367762870122348637779534988511507925060927789314332169068055200257524477780444533066492917744642633440052745597219438767110473079798298828702578624939379665529887796344727319786140102461362018534005101511954324105710079859515393329952688714534351612228336704814766115256786576548818011688676289212703104247525712409702680223483938393862277528447786371222791437042792531971199324639838890829917474260448094927273255717652793225843608881156331533732953240417491001532250679245223432154502046269272935437574749710134073822851128083536748171381058675625249973476218557703341358440660473006063224108791377313007592519777158511097443961772430327314849354300387953641211849857913745003070143660976479370701268384835006505883143043376518901025582079574467961621398735294912881405015654884151631133308970940728754315750923373665864615696653460570167279124161372197231556988599953019276147151796291944957768527128084959124918979639541770982499701792993808637723629363094753973902972095857828801646235241839618573948740571383360029230719972943353190993086926941525991496148217728768460667347357416587444299253568843185562842544947408880826685114187390936960694076254583215726790345900267036884614720572869770725763102186383806562171628554064800290541287616687231597050712524115341416035173987877802695408636338063571323404262512655254417517726367047663411693765184346474001112434464202938452380836467037915910012514503615055784327359652604970338381538652036531609451147569273354077621204575894213228398164670698159569995442698821356596999003167244581161594594438744382562600909314422444572608006695816866793147366501436478355447080173619402635947332450314178867442716979575851651452974234204842133683803140930524695204387835542382642413634198149267700569343623263908424990998902755969914089544693224323432938610835982562334213995474180530852995801765462652022051419459658500604085841718151459690449182435108084089517837699263753468900190067218187026007356463593662863236349481046593110430330626171165996518826620484190734875553658895034947054936175648656589098655353162639515612260042660850319332264615598798734701453166743003857217887899533655944996548731135579950664205785591008213203297852692726482572455889860078676490552937336809700239871672363127178819928788820111511412161744483190580899093473680403096278495858650117690823478340888498171692345463103878319321435790466710590246127172832587008920157946719983356753917367058915405255606490867880075252957026577331748216362811198997054049728994508796559033883342508831677364007761023529048952002333607761761401684279184020210756269194849482487606152153554258701678331489568658357241226906543674352344165237684572166944148663539652903276825692825243601270221497403571896532002951483569742908422345861821302712445319446221935419980955448159566856938109087738212133835257058047486764995614372810769503473072863087560699205498536526694311095839828434435225078231184908525541511355922124217467655440752860787549339770389518803628155518394076743352901023966059638665445938821685907241373586765176124358782938962680538789096399252259134624573014164528946451573433402308977482062038197913563759243675180129800103813595788893620437754914989141323507951426802059292306622057380435117032344581882816288136667524798894879769476908251106629854460752962834903102760664316867131768828026005388378147950280903666163020668198042012347844790415183918034288818337966073273131084001883730617792236309979478889453595637727289505027115554302188751443794325827777995631214372812581569642326910040699310892586674734009338037499145952015574335626687718142974935579564275092151535692343352155162198348717931053473729990539423119334831850284235807314962209552325621114434506475929251399827003344603380012376839528525215002901966595856285761774458865473664052570662677917036196810303495737087269229164356782296612629716396139651693736882687772860580142621132374202394834839634767699275953031825198601688446851878200415275760485249103687073927933755552299419640776754779591278355700071823961113159061086751104232677382946433931521111058011004478423290693205002633194256184879579095419198221282654274944182027599216080143533323193204092250922905425158840517592793186676215302156169458591082399010114891649449211724687859063626239727337537061565863701535414503052121593856107266716487667122906166069982774698303121444328747952716592405746109136785067094795749983099842775138014515732027925686199650079594900726148089163623203030858306363477760535169010501793054507751432370020768594325626648910435144337458166955307451343693917562605987052995560677180709672232564542100123300084361445489460094482996267907644637003182936163790641495056669070522907998858378631379157093638147305642517681628647727377277073540538631903125866531362226141404366589316408761487140627934195400651834733015272936739793834421995599643476464692465677284809923078432633598521889876395642620223499140566811205087808178644136691970476994062366725687194408998461049122525931302398772987360547005123115570101417155648044607043524947431972599698651037064445080713548413637128942215816978131075439439756709492604538494229970972570215488149472216058522983700598159899867025789876413256379374682163257779692333932438976437547977157235748653817807440349205876031513138039503861045858421237032063342894256731969254265796008590677564694156010051649179872472829502127902018360677004411577448706506678957024424566315245333409915148180419280594222550085561118831134057005769696083016892320466902309964492599275324055510026530310710903260892418515971685005034013400763496903174947631853560217858493019788594877751629427757012906007928041917919662199592036630350833743450886412938923928931574942962257229532272131520338860765361373396758990707898283352584919135574747675630795877200993653280078100862207524510769341292685613695544011189605138330575093674315481234636007402612451911543298073762204939449463501632230089775195319154521057467429862857727605788566206122536810995721713187638607256166778090391931022908225059710692492336261085440963413053698487534149887758762897139239050817677397556611389337855783534299243324358431238554665564247969993744444254113913794035358686300694227654823778162038468980390885253894543054859908145760605711054759111765333056712287114065065613313344390970448124758060197008803086015028137665516507292623584522431743234619844102929916952224661355837279979505569281326451928813667870622886174254849703394412442127706594643681743329417962530312699645712642742286848774412277300710880679798748706898659460534280245768150961175921658780963773194773551775016973627267002657051198908071597881027421715722907233003349043768648974380991197462566474500846501822985957703119594528878129989829766460559495014629546920241623123557151517051396258600404248717345223016018970626645572058287409919430965966280959158449437373236021716660614934773366605247317188706905345468154130620734813194695149110467515553746736344863151905138046629965250812978858194778584968482014085431361860633288615153092696638418084038399805741412266645833803209138598364565113867297800026849448728226981742491336895204024316280887957707647472739792910206958796928633644253455034447757306722887971291878002176907087151219884071160198791867604777802479578658973455549654428437945635304086236730139681090557213176855626161475668181685345804641057996384055916689520591810099195418396752833764068406013796628012916015251116189135135101466483149089950802916611728706156361763813671564821777544922963979734900343500656964098221547283943760453654217957784821675781997562845221686174329972849479357028719954357251392605321545537289568128658156754274490907884598742088152352963569178406330121218679237749559622593610955417307511952025791320766062947033082805380127826286937438477742215572472865882241281927207759184990171834115684217241011416984123814973310881429640556532468493685814129867531320900665054539554388419505516118768007122456959692028894485982817241668712424615266853188687969466768054833373250066342237142754135923352335765376640700507368636303799708580413541388052570258911301880842480827198235438516824725916634336687973306275912536084164610273135277592289094747088900677156786390703728059998654258551776181372982908482602880922478783688623561229868757712811100541832960202921813536624612515864285872161413975995963356704942336230908194663437831992928267878349200060729722078209820071327193051341370581437629918352381091657889488857509532907344331996100561544470019342701926987745041421979168413374869460442192489042336318989573972468111869237102069414573454193749637677176231314173825217515794978003937969304484814249100235836285355444046405373058114029438306218144591087980293583392079826394630328331347669255688359677099888130737016372208842252637544962234418320313613549793028421427168579266705034223248201203089756972106121468178306268636744915232954457750108571933893388040726683544456865018759884982207440236159086459233142235022051385137963281340991308652069252883079040312294036267441907635710557733157940954027151530228539033112515810670020965058414750888487463764508556431007953844508150953171811220474845119070603234831372345440204176442096086811773750591967961247335775094556467991501688279373899507977430666823126993360134971748626860633041907205646580252672764077515008660218423947247496931575808342992920987050770255255495239565410404254559458713970423329979247652864435414829919304833754445347304915142714658991419667181301905281288294381709296838020057090237999641975551110112717683038667212792687444390236035525095760682667674593004527353993574721688352702537231120305211436031348005549098328000218808853891449925641250081366706791274909186866240047591903798145006200561631633743477048730876784522974946853691996528846409494629054389997664564200041040756425482874338818410771180207376033961562251015133502872324461328614504845507919051802001623486202017077254115764790871026516445148787552094544184442744588931597589372142431356646471793790574774591855174400425423276352812907919207839145925161584250690316964137124653239319516646838768355893106138423067326146991407532954939978833535109529454213782187318214628310802176843552151161914128898795698373128411602071010869948991883626177428795567648078368479677635490540558275414534320539754029635669352030768480775924469623025166706632147271141737711662823440702199760067382696784277451591829742244273091623769976095439604635648907895480415360864050003101282620949380748791013883146529532068081086748322851871951673192576721692866044075984151528152300375655393089750603408336195859102137132285800779570331137334340785058504912331390691402980732692844645012451348752637540586104380978087393740282628882469125162651544148565989555529994636600922584431636093297148006059726969104081881310073610282099645223727705226723675929620221679951337286779006829549868405996108759705540971829648504426602797480806646377022938127992793078480918944447430703729786581758624217881965046267572791993290113778892905411802661836862696685491139432612852079141883288221999250936792366565607813826555060155605092698750815223995093049440370319994502609485556046000525810132976606929443917642987306806805950066755863863318666764914507886284567962451513245098642437765543490051892099635703762713634649529328445937935979475745104461242244500992742590492747349057741040566299492385677557072033868076689176214126565177690809865003516050808492068668796561658505998123462767026541717817045341280419764680472837046240812672277978470638378355181915664800662752301015073994256460851494148294318745111704182358102362283889269332517271819105466472239900665685127486750967990599080180982342269983805160223044491921236357500157441797271376454189556852630515068855539438888297284844421288474774276235309385691465421728813701789507595495172306230006406544533375715219253379586726555496683166097067236819957050507903181604005096931596880998505630566222929401925365472169814830841197603052736036292661685712298538915795329586873629745178615441414832719803616576855717321682171966782208277948000235295423704909242019390137702293693496575441755800925751253657812201846647496700123972882021323813902075198889371922224356933360381384804265472512996648487022808135369506217694907437264917526459102387940377358627671704855246129917338231549236074883614435960825719487296878979336006232529388241094112466473248190408095158767776183978437961815561485838871386559472897269170510527624425564622029877699061466426154612190319927129049002860565643499439590394685572888733290110213239190973429382621898394457074656146927355632887271714906583420757989299517598321362574391991268115894857907142155946236993661349393158447626387660842023584376168812330008264628718328644240430220603794734771989047885315649286099274140305904404388334874246619484408044295124136074204709480077494637366172008092915043141955282702244603204851200677820938234546839582624929059216393110156026747902919480845502939212629117437811505537800337676777225578712866582602277270769237296159610631333019660452503946509455919872985610364781528442809824966908375752487571466177909787771725119934130501365495123222743158865085873546910906486584569021073020060382052005620064668173873374219859134542685188878596667394718668423158018573980684424024160643710130723117127001004850490203392048223684762183860476210097763283191892473761207605406772816930299533895839185368360985322240304550835375862392658370907737200220540216817972660771181296027160408356986441951597660362289413942961139778205587374380631111281499887847374749990172444384653661380547535663704285844828648831893504593066899767626608393520308330419218704841212158822961713861832665524831567466573816489136931097111933254118894871219903160858816208631314377001235401943975162513412919990610423683045921853694804676209569854909539901464729061005603566445482292334169746961184688126869480620785525713209521424111140346520189474469439454824574736051657028534368478911972089978247302798936435862569221995921769028529799124996659677208129870656601762052351278537783844434239112124700167228888399930628790637276754760642415889565781569021753486117563581191144811218770713200109914096613648610357137703503349289609397354568251557288491016304263757397809933125428890479886911109698982893665922729517862917458979838964279818377849952159057812960932001505952223621323288810699024408284718244959983319521765299129263175743223538800633144049517348236520814664343685869330215361776263745341926011019743419985782316571400758396038928687423935475803203975165129673471065533898840540761366081357594813194470240453626651400966467574905235699828660384764439770901658448179723615968912996408795035082424195854782520004764262273400927928378384342040143550135087952686672289331543455301223747653353243724595448150426759560334208101985121653631998752446864393578371686415511941703784717093510205763359946893513079237190226295745651255160008429069272165649007410041614375141909705043790023568578218495336886008122818970424076763732557253161869300586390784974861639184671486264773667681342116684989281294691362625100663315644469822802436511168862634925590912934097860709624845551161379141269511324281540958286025125421583467469521782396920647442970811560667195176685374986370060024155681974012555643893820874225868012846515131632794958988418488668114136304791539424043876914223918022517814699271407538547946153868202819030794658596843097939205465097473552613870249187509287237806053269122997041670187831993752802560673393052306183241778854024237717984411201537645935235281660922422660393196868431367014647942599550029057076238358022925593155472486401890800744096003445188740096701148480066220855202348021854485441628467162689266235456417504785016765400878364836172573587582131145530478107763997733891532445164933356799360947333342407639599264195146624666324462106209094849275134029152770085789557605960908135177159751314112202086845904736046028827496000070683063707315139668369481688840709648546500958324966693733702835443642588675083589448439857483002870814948659821573270277124171942165999599563776381859336956176763759531001244305857057964805820774408073396509731307602887088933930497647199923870900250079972102679768555200191882228681002492431257509361475144273940483033312196385009227607039476491891418456916636394390688534000607931088496313082277775082230711368062283347782172049411704154659637487150042126664969868717288990279694066890513056254615466702134942276911340248854409562625563646327316499672064441176847705035414750006053409825241598795248836408498890301306619555277783887081875718014274421687220406143794322979244576481233768336924845455972040112158733859815490013179907000873065626361920124080086463629480614116279334764077507667401928633502325979562237110227000873822235204341592526855612743158999188339875338505008365362857686286846795501779527178927012014310005290022201677032225060461852715494011036941693005770867935528807187559456919535772008610604452679739842241040388772228728202943806703568020898996392163519384164568223962003498820454967357824467621125831440487721468676307369989388729320397283403607635784127125868686587646402574970627167027558823920311142334619080785564888099195716466117001687305149538183192216636779446311165096751115224396856319064144174157341016589642603200083719449255383181181592668140288143509292380440398874153095062689500004511444596799435658390802191751936992395848286108874774471782343067229419151942562289922998343628152796918287160585807286857706159383043020949791807389338388494325542608773148895720219932513949942039952529414816284105496316670734232848669612577951243622737744418148148842964253079303489378508533418221658985611426504291780678121831906397214456223746761900636612350168474653676554226214700413666742161778470430663494338517921130432688117308577784423115996886014354385178734260878781004669993411494287823039826457751277352682633283402401689028412915286447392715126889740571500207476099649797009522278385706730240207522868258183103939007053888636202637693280727354298817686490051949129392396249712738764515023803002963897761290443728491497873219186591933192226786981203382536436917903416087528399632530285583653550220737651643071518069783750548192834292863621763077486924367440904064045933644431460087087418407670807294727436167282976212070208512258083516408712473812002794960633298639141517808998236128242028993284385232691939357798732868630851005179396383978740947661912381766715290040477089938954379919128783076105808125268466429463884093901020619418905943058556644464732233405327362807551438208770956015681909603553882849770918186014479187760257473225900496104599220620777081867358627901279380872736049439249321139686544552664042649338004920880051951052444958218579577934168791039564475369190557048377965293760095517676086403759703239247072017927179001756830057066192829128609732596938334268456181177817726613465024152644758218430926033001961751870254557129091831908843114607166486542520401998333252725087293817408287872609858150100631965421001786683442324894694519728803301102889660868708580393414243636240825483853368634364690290007611585465932795211998641041147657316621323829017184109873565612865198786189727874739106503320597940676696877822294901824249820243414699202830556693045690763819930298542245551100110208218736541804817842150816913677722067569914013348247351509566686936527071331893325853385861969147718663937990953236011721694340940761763093530516948864821953251866531311589898418559487142768604251591607080713225111843661485073449844073543802718226105890478256233889156394960857127189574372198242818603118334004206079950165450025200493095930990337251001267048603653296973555805105552879611750342602335333041924290895319347351324334135398209253908167536017178460912968213200442740392404094004652854513308528814912179305572821594174320084765533679171941428487722937632508846910203040699934733394331501560506263789657854796511869159132801763196367578182357437940751172941895584109535716980168439980407306174444079112309654613587920543986820220697761497555884419341925388745318201058498509696132346303653264378707906006620768473294062752050975364188463957787055181895919851126174066078491594416013456867501960627179376134028341220029973241354051204434439375074271857349803574920801647631160242435540761129672890517504809972698181532097951270116271229753361588740498278298213656084741561204026980211702958562721241199791991254568871428250787273476897425480225316166267171977269893288658988376979751300074333438398728048086604563290337895785177726652432715249567636182448347300506876514355750467035556339110101369546878635314243952989590812081638305327941552026815007035360640905527008516314291524329252458503149627589030294553986981388509253645383048006833194317130236218691171438440101568902882301571427438759629257642728802756572535350052153429407825375092154720903211800171116406200552541972738159663236666467215068529506866524530894070858867374664585039754764800734876106600692341710035403022502910491044937296792839050745930593278798889580777923834480606006762860213138258073689280948798574878497448607151336201438024111214326569281488875275951041528636655156529820017376762964226547312092483052053056930097791833138774148817676121451292465840634032906722865153258260033624857797111099689223629501564436549376729679919225318754969526885174153388651193484385385069269094603877146980371755762288391579496322169799236710978855499562087893730568273308182631976481687401403754338598884860793385902834508986740831719799494643384184567049904381055310095975105728575827769881367819608709885257400928965557283750332176226786879593355635679748794631135981963350471377179993460138776991546227253045521873372141562466357952520078522168939380482211834408104539275941578016102926763171901612031543873455919506115763481606913934111206191761863442983126041465638191109036176271562125593746618255812888293324826518191408628316276096352828420776483119897475929532178693104704913657945034100602782405737325272046605697470681073935975815662339168831182320551273407156050995511048993607623139758239157687180049147759623930623780312618502673928721182160595016700961202990993295770196409979357915777762193923807084239401366846957568651551317826419440645484591114767375279210541346984864313783221112575519064699863072969043859015562654651748432495280987698879068620123241493357094178409495000816050146937833032106692517864604986893036079220929115731628274837832544565289205573843066219751919217868606350045869853811282779703387889942647470809683079009916928217325353948893544347717478117209853241055870674368355307753647370431785912461218966018552052525976615581216436525117208609294591845146437175321792721931320598337526894319627414692763737011611659658460411459266746792455745761551839743694479267274101037649958361144008757444507299165147748873162064139014532494586330043030932202148717621739640042053281611904150947552739658189228369095690440809554616654096945580892456510383766754336895866196943367737826375210069208240647384085475716029741599611434666829059175721303231114573357009108716607180159429468885467625829787283546101147214277861669352817865573651551456688800547079542480972334421904010490116110942941456174669100867458089191152266090155257129329369101944408200128270484975973921038597989201072870859606426239189071046241407317275336277141059763008391871940502308738034590685523192797384373001432135727039058820394210960207351385541039528804931258213120155407760507601254829784372512245147616649116498345930806615074405738042454433824518441804911287974763502555398742908643154503075597743022949680783514567596292794833199539125509308307979473406378769374803922603892495162802475697685124169659814132719090289374877622142704617622714035879383293352410310676310443519037748365382158920892077689014499983657032400238695177859706868013424473652387918696411802556228617903138164961004218159798580897038842531895463892991593836008688884188797813247449578618675706350873197077629624928533213584639648400663611230918614133207551829044323261994952831751433546658234815864728215565240488906967050837865062364586015850715674850158723799205780431666217936383373776151952468671654377064471410772030344644238500414818141115507234772472118172585129425306495594783539894632315688669381314049544350525595080116244340064248082350738633637344881885230627380199303045141933084002093852419146514491405570542276547303390310325405887203449070033661172413599475583996804222268410152116135653600488621633138702265656929204354183297931709064547424817719853103377107563963502488813072368978184853628332827323830177306179192762137991973755114220013948846622492443796183304324383393862285978084583542465692289639352032525077971876245666398490207082171609790180768032018504320579055964272564604419634140629582921308993903526527414332560972376561838603701355549337679161971672676516913263279535688405386126088840558771904107167489956239808544428247806132413850895298472113544941737245367046741932185669933766545343223221121383965537960567164993424570888033510603611441215505266065129881308990229555865859422710706068277568611016598124149818599809140928062558073572103564291244250802189377065439128380468237511135056000139368722995310278016866086547519570079438041876223759314606949802616316506997843011452624037438103555166909761991309285219226945428234767561915435817951020281612694650728445325977313330778798392216992587244532050306983051771090467761678586691671691771923217043587635265401399672800563510727272860736573659602430070916242985022207245625321503130949390262278673852890175441529959143001722888404314484015907771952767261178236498009465242028383007347936703280834375984942861687382973390097474257157327170973815001128133136633548215681255351663000068317212934089088755097407321721260896343824032968393891822189840593241706862924055683364589250084043831111696063332707447107608910926405989070092277964993113309416617857239047188190130640437751910670601126066903359173000480509852777548646896242099124345957509058590024270142239582852454275683172300009744611893609027771985460636098578809619868991380854364497039793631214971669325838282034918842960047254807381616074456273844393048380977645221619077318876595036338511193744004348307907813810899175533734841936145926073614888236489590677301809804190191873245974765030554495666445813974166999913313500238666632747680068506468096844073418553810959865543992598166916754901502938278371228775173796695515776780169211906802181715588777044419271273491710990297840687502052625752381579897728458638538808004111440189053865474614528653118671841366736386161415583010453699313989758280883949920577715120587857216962411355833284155170944907269206409546473688961814035179472648334594849277786363605109939899484853116533252543580054198082471432285551272222433718200142774389700069744515914674496230946093863131096878104179953190051172553019190768594141251446444994690980039511861875970084312482813997549676260552018962250400635106428368657315066400984474206953934167008975994206900033794277214425482810075719911342860265923070017946534859526435851197661361707535200194743407988063242035360327419176723834082810358469641890243860787075475411788658077275443033112309957868672947384934830174977136825930740586694232360077599673717943801766171313704426698818945779680759447002210583013713894421433029976533272913549071616186183539121414451031667580117536476980123478402911687807142227676016354331080352006045283952252386614613314880632736920235374407141899521580558528532144399416381278511875993393997763926367855521663105462758488783535574804713358333975520067331976922959340434903349423321880699950349359347780486173817493546122762434984474246364316646611177781069719772845567806143740092865789825936365657413001607922560409005116110761770351971677648743035960473825925515089110434296650192393865262071221660339933756260848131464346546906763569401995070667398354547431594237522675792967026031728748538271325306622681764289919099741984081269626720084432959937607773503915555712781718719528221008147184245692434423631913366814957200989316029211692926357050678649575461523759551096302347608757471704224069541033595049520901113646215493877378189256538928735844023134155888945555328508443555621261696399854652025938663011070321869485153707589058792988414306247370920200212086289848972288453844495339084791932826499837518244720626732001209616890914151137650032807042546236918031979749738094923690709254736151709858444936840601552063444723723054620086181651138459535418105243861481742705016133216499646219619465273488696146003090061208198068614482647047226978947161809440432433692003319247313736932731634428435453046102474239038133408826243931005569591024799223572461356859467828415031574443186174014664753457151972379859644875262589453573591974037618871365884078372672096840433282957891144895690404589220594808617784982817999568721482318909118920660090166356328348308308047961579550082403124163729674884681386163859497578856274990572423509006751493625549235276747674525399404979908800403916824861118822863681615584176751910504683310559389904081660701696488129965950949607048337656426830495262476567051862090680929108205133963290221590163206258100304551851852890260714581371533781941846805230095556733789655801089601679096913806370443104908412953481769417438649836978573633397805787307827759153929549827594518093241767857834421451747232738112011461521341985750716358365115602657641316095295414845494774267020683287003220853484455158827592186733547139983303782366164077117490449625713510023025683489241912689344634806551748084291112625579423260064676973654821255645057985000200134143055914397538276706323318717059499205290483407813422040132025441927072300950448664546204598832536362389137751381890677967417163355984024860669799114105021699312423202279794802543018776194723563612658206576277833316949539499804209756815070861001306358551059718417514189626881812643465516625188901062029556608501886577304057993428014114961290865440744890500825721162895929596256879007578507646759022290576359773454989318884509734749285556892717739411232336070113502788720326271488995664104250757976760792162326172577150704929949208187492259465765377606630019143193495435933462599300461782196124692928340827156307119961944419270503332295554548192298101432182950458856935781189584993124124740584018819262520265910119910275564924536130222422277344905633836410263342872269127852023140592168427240590599649682548003158759831279655693939017937949983799043027119812942664555893476333452198222347806185357406803059836963676605115719139606772164761633503976838309798607915211490668562168319319006937689399208154305625474006239882938089470412441327664714423209857424038319176076526083873378516515140270926249558558528840376314638319508322641761500082208627530040348426090043798138631913284235348274101068651848933641984519917894255295880112671554182399993949353857846475147011944961977855308375089030916344836874707712385501480633732057715939954779847291500904374790984504611051650151042743024943333459970852556172203122249820659465491874767110320371911077797735285604586297311908539268666842369347739658324010982778872291716821862000533760407478047261957937620303702928433200727255512624582345144624024226779410568039843781230277980285448520791533711415534537260950532575284396607713037882206868076671265584301370065809759209606391518795097818515361590391201938412796138160209724244935736889255585280767165931160483985801254418428824235034059741890349082840371576781129883281955065014162589796684404637552034297116894087063721887144061742634983258660001305223261476535628629327998503222623372225412398915151539614934565966391171034021131434568855932410458409469297462053236414098840111137569361811242620974255902720153452462662900273431668062094170975595484053031911899186987431414546934341732797976129587736303427249972928507346898049413278345082810198485242157434306926649801028664322213312803775544969640152119613746820926572171208509091476463701668646364652661895287591422800700610885331229984269803589026753336994320067018812660632790762496303933711476542329360607358107298239465254061798978883004327881811275879525693551996510815846958101433419054120502052450964129898940314088453605058924640507107127006540844563905681194468686482822860454340613217954878663469080859899743942711877601073136474316162075098916709591910866067047697561783680170178912605771945397769995083067564433151941356873600698133281822454587701034256743488182732238293024621449356921091931095275138455529235680365809724574597903590357843110768623819196723380957002034122357444033341301280989029345876902598823696489150046220956933673475724845556952135313344699839718750260111176475801214834118169144264659119015648000800512460022471810445731061163080153942815881624612255929115822133333764571321708347041504958288418214881557873288964664922303905820387326911515350670411505635140446313703721569710365771116417165036346982679951402057561597137946477638134778670704533940054995519214196631163503221920706993070531627365015131329947242631047264675520527274920617973290069337328107475378113952528015439355417989590936006990161571655094699181454200491099295895951916410249415676003492716214484068211413660422666128701767623449472798981889694777968863256942561261095571091428966373188704400994763764616674835003080881146987795162289925850121245251179243985591776926572089423716871705675631105658563273604374650891215669829670205505747650623556241270741754647100503928171726623796949103718631974454257970849498608644602951814493112766840158406411371645031621252729266738041024871091253939133658328440212373116759061338900543414615357597644084918046677006704963692694309301019458217579593965138222491207433183247064874270992108486839394513672232601956161743451800797508251451221629597147525422884106377766271925158817545844063436034908905825540204865179683208849977563988902807463223920018971475469568423096935801717922144120696884445456112878814332617978074022593938047361434549973725695226903123406082479232504492994575071336587374313904076559843703319736500967427395419085392864311063283879491082887528139740615166179307550294439928844877691558049258127192903587206097459079134870463203967252101246728475139487349144785955636925157243174311343987506908355198449026381283609851459275840750596736710867024446743623168318306339980024653996944007063654526947890771560154783191354625555157955554617402570766054528606647205028132417780492371279081865202075930323030851627751675995656698183697050596465291361515599017224775942620186431669172307070382790772992211420940103305239096800593503008733192225397986882587322828144698512668310358033097154841745592654586906105367820395127723334198470641210686072980632604282622543518377529788241759175454686218070795431336182947005961487726534119182932926362384226480093769574799712790669462630753608180655411568624107972725069827686144572990421617992100666942395343366259810020680198741170350898269269422763517234365491658010129718858583586543142139437784200738680446669294379452906812748478689150037237094355548942403634985935733320382259817870885328456051759210870373298528533219062995403750059372448977163945425574559620326110734246461179002706952871349282401072245561445833309732679615346107902097496077662094539843233186428454996419765025972611928506864436869471787754251599511700438851677457107102844773691332006650067302807818589738763218684705188177731493477078929977595265455967631385812904086890603529538351992582612796080174994992830885207376240694273407401092563947183849462836508603340939221068288508520587166516871008483652522436974224298573595625145946790032079621102341629999286336847787620176074151238457531009107382298797250466598823509296735836108021597907920353967157273645699350842455364511128306767409991798050264327697437532664434031526263483138006740401856405381637846185766941999254686246655867777258927698474612950320473701523803253096129371905465489099361026321648822542451666289325556241070948674063111477663992103067331417010015767461627520959626390847765739074015111929645655289473383363565798044681711786116893708904193555165744162516538946424438081263605751215001774947206526474868635529930028951225239921627752658550388661256538021118653223732874429224534323427058874470957043187655778230414612456696472176225604013340614645215476864399454759932998002023718301297549802169468068678843939147895068568560392946393926676479973682696563672470410716473289113653560533575655439269155249813745240227456288847767007100473024904214643670330988540509973718174637091830615521215153861137616518475503987677343843964055896909510439208166329132500189750597353930738528950852459416253098001033449254303790738073147002580340242739735214826182368764634042728142510924039472464997407830163593909100505350374305049506517737912953630349869790523784318026727519384284889569455569799954980713909749401581879381626499161429583885438436617830553659096988810177793352854375628135245095021354520590274568140857158798379821050357516799496680121986043493481103751883514767154608035297444926097206286124910214356876764749917920782607706993545993415729891693710091602198105313658018101838149637106985212352995469415467965336060984685615974613547648090578726053350797230242323701784502678132612524718655010273779683363433438796245553681056990648304098458355291385455173918024939902644584206122853634268115793888730469972023965577893098985851816552582671500699464066838683439344222096014192507090716799540273549596313525043728668184449579904219257304657817958878036692854965486209552463909730343504259064644692843554081527280014805952064202841329737410569232832259375798807875647639965876098057569379599575985993053197676077689256876958739367204321577901538493813076552910754856379173266267384980669707518325523392622417364021623847161156627144403670252481505001454641343105553208960148343859076474340468964758266497552481965319012586289490372974772506517070177165316578717724287617930589572480109382655479909436081506325823753667364803413961342521766028436020778208201381253376595715129542519739986229828422017157352757398406526756246837731947195083012404407584842774946928176134450661087027657735770752240198452621630303437309344709722116290163086656907154222831841825557122541861105398926181093662583261586409721136142604521416868032863713340160721155932185004076145647249243686914734018217113141372006296706357298759059038176149143269680431442192540364521332198429416179317725066895218690137466854186334159431058440715433115587202841113281692906289787138007818000194770124840085084864180704548255668722826235096482415478056932249701205918344585710616831113033641064494373474780001993903408659211103311697723415591378132007535132216546661656826559575145620824891855611200327436478067851612996021749935011100305738593524739201547432835082813697692113228786493964408021588560967795478570763921710280531454987692760125590146274796066218766905406210245401384914290586614469748731275110973052436475291334219492209990373007775123432160114114641531065603578627394731433928202055579605846749099569964241677341798985853010363417214149725651522709676639106020227125168524206319707845647454543437804658852421689073503082201035707419941733945993770223654341777492689500794320872241604358404682025653775740318518616388422220707095665598018028618752151803508495905357437333744726494741051001348714991211154832135324432476168152277403153020653348136837952719642349454986912031849871075435285005819824773625480645004458266736417003255427052781630827231131235888813408818691494259125279782272632270634564354420398035937032943151142164989725238807740703342884568015553902856094565931664183990159019974451649016414036133306857533854083099209030578076153168256455861286042654782428355888119902534089022527008688448167388834531853669519614319926782734027087668101033995326681251367596617540786069586229868315498655445387692704808239760833417934928141369721775706171826865942546015853060345604370981230738270357945645810743099527390818596622792901650864463108248525942307797777427444192814007257398141951901717745635469659975077840147634526097857440481628101116074946735000212038759528099407630833431560758481326725561448363864510837125740652370949590347562024533749435470532376563391832453945749335611792906498512405338170799376216099479858539713800909360920709358605913390050008284931523154430038757484505439435995751593924599700434603535973492563345205654827230335197409720535494225680109727766430924249752199127854012646404507227345575414299643046445620370256496047277838939347356177248184204295615587757244825756849256242970580906080084845736496540159830172564079662442140071006500541710431525149006187147537666097039960263052609846914887441213498916933241697753613875784503249118642412809122955863115366827591583608654854741162733478397127730909477897587911613201845724361802871948414232119775864082251489797699889437882399334368704136568824455756831627580145809412541177437364791833110969018877659590725579725451371356540079948794319465856216503718516303423370726903191331141727260570880513123433319212187171362086152120661188317324740940137223344147928671845652402614449818746012719072914458487965758679336677210615355739387979177966355039529583840651705800290834148435078450824403738149233992756234888514275913178381593860887542181500391294432672390914852137115037490323244559087132491567515301448820475630427944616033476953498072171119828246918891657520164085664477264747792950351464043799767242638926796807496658440793909038077847689797283493055174731059245347604818700029607910263881414401365133075110876770734973026143253812415819653955475153942096135080337818933674168642613569379955410487653354860068483266290869309241399234602927574091589596333285196712581481907799160107975147641352700406627032990401993938314099561350966610612967203334517252821118478874341514196458064222548941797603164973418531474376305501642314407945243500860259992629412858142102984748410025410191840861868943101928266271183323488588915682849996237049389581929291402506613815278144198162006443661999788425070838208727502898946665055846379015366656795668250382440331891974208787054964021734708694574307388990800417763523653796991043398401729816825104344672603334476754760179795980187002791519886124494731297590869395805755577505805090285253013900340068742454116264350737830495710192807358586975168440654481857989955423963692708734509181219388875371857274168120694401472306522657558252650055047885977529247965160085475083822757025078044949183406810932098277682244721067806172894229150463675225166908226722316522787117677404648426716193744031242599475222962228873547564980750303287821596994735563874861222733064241733899080662830166173338853148207742695676514740152673158752799264334596188098049426789515651814333798421020634378263656243828682733303721382567509305313941562711271742011461836688654409148557265066247309159921440389331220698944306138554022340060878599235230728260751201456139335456722462325795754849709671256137662273325177756609969328828938563149268911782394736082413006043408923594821006136731370831002290347668140885903192181899399218413067090224359328932220702493830700503337022125949711537540485218236720225071083640335211956649312528586724699788642985103396416049334221755208293817007297242668903007801273246922877285509199943234503831116161512146662924156990845434911045758185934731525471719932780354006510554364577006008547613832174665726656392864343890153374372083224702034535105180879161074003434675061221467281779030715846357663088059684427703274432450124004443211161647491145480835802810659357601588906266993337562693961029204560331858617480247411927271892953781761199737083418330543228346212303545853115334057810211710692771518669900478495450150219544656398882104571881862073681989777273275113646547566115802367730542981011855566714687600381079947546318419735768473954479223546071575989941623587629213260399859110784297221889330219642568640426593372319547916732824736768330670039278787353888876759143508570904031052180761303067211706043167731042923298583722290368799999817683765988003571134491693458329938025380248096266174634263933781690617875654283348455944962691514105106721304667862057159323737119757982169391742324653134216857127432042220484950572926224324021550051157629767054448911322634247096894668194756205450755199384363819516026300811332330592642480690839114552739374836655446182314995398221217526330749003856225779420792137801505886109270287499966853214922786024949107697834043946780745717159766046664710630528299653016587368326432238898714382601507823712025248889021492713684277404206345700878369920034222287812230565093307676230029638648197504129023700724643948353832323961380090448965459051517808477767899090614342589224523430479496491793642604560045251222677004317296136041772321502541278164333952041826551912719572955935294015767552214122753631505206349520388116534206495164937540408846870619795256996110794945102786858998426634756843125663186788797600285675172330023585758591744906145238796527865470979456761813812444709651943031990828329792465824584016087892993147289902042883775634785607373208026444527360564902404865765691341223956715629471046297404493899246973424777725721229194837995843097105233142069998131843849989052553725478945729949274544419333811651137795617576183337612729014932119385693562168611627153255329167913028093166997021335223532195730670786303714609799181327034228438094274165859280914079451590807433828779147604416529731692654442903347231749084409548799698731959173387051139411258859017871290782966850616512536800185872228174172841948448377042848175341442721560683947995633180260641490492148346962650227367521297589395165729915237945674114084231912344221302715979358934703758316095187993778494387900857431007371133580911440733943711682943471513010328324895931047880930011214302503187066089933696788671111860563612574174231583992809190696412773149952568301640332202379573817970334403773249636123460549600531728316214751986972310598193295515019607054775627653553544502903029483227498379821289003778927411729799106740302336009799558695720261192432561410689280367970359456936318947561650310638839465735606417956932555930874593067503681276839109270194601972881216681817896132164305050908913784335150211355503410284682530372794698551080815923227496049772762488884067854507782204852682856271835236602788988506716034913265930860106532117256904337865641802466282880370339729154161012533331531420515943695523878694893554401259875134302422976880539743453777624081843557872331823370128419601746358015961192436718021006536728500698883653549252924905694556982610785520550027195434172910911814007777153111209010490842815973125645984619934425597664484120674218182613215861814168421686834660683497045588098419227611087860832987468637034562253362949614108336079539955176693284833480439215621529810972133552771895387450037146798890880651861982208849918203820672570046178390909604984827563323847506380743009710900313928043196641411543062558067418949488560788639233091605592394489917011938546011778721976527769873706990396796750773163373726174941939769867956887526505590805520986047894225944414389090465174591410710577235216649450753434618365561631822289856432173033525758824002809824437009906846332103727851061640187365418327915749615849531432133497044481867268944099767656359226898974887692014171037448254078283449755204743021428496582114207136282041856686992776880195949471015776664330759534996250475717790128593038548509573370108532075028670950892221039794769895567994499535752869291887302891029432060081229907181048944086636986841561667850618238834312953002692663545770450897208774154680270658025077257018516350199998210581209953336707741257352525402896108475623695503487605088967315392661417274867144350368332862593871518896100787091527159267477825977858439181661814664800390152946525776056733600245571625421977927103049246522052802115939658094580452425308081202468016467306203211985564769421825644403407028253218289802323553806936500130109118554462354626978318607688373825800061569792644011599051690642843734386182074928187819147450291821779913384094650881537758750915153714675482871184374313864831900101661602505519427789236150915688925798935034247699993314514364573881062788759111416588940718402069767523915748329715713730141078433440690979582378941731676862878236861168555199199004856044925181764823216865304712233467062088760156408041530321592806807896250294602685344322315416683219731166353263728941440818570407779274644927644603391410966019632403183280882350609323049894423167949349005006587692431203502287784947780657506674664017195977917361650060926298891282390131680979910145645670775128438498636883442667036399415069617516744266708889921972129240178271874116884177597225990166991209501831564856068569427674064311291689557557958325064987437724153047815108408844551913446630520358532682925877391330535920278768159243115266382035064652398618785173093826576616888677304689621682011811377095874015498429240275778279759339570141215996196229847898613404867775698714499477909177203745459702647143697419612914247487306331148263474446320962584895197386178985026506605547772707027238099632578941483477558381582789680661538794512406796840141010001030224433766832462449563267229608184487284069072927958805680127562029440325612685176429125021125071470338261675708891598117652765056113454623494335016397550233441558701476582292182694033751798317448800972174350928680806293922774748293489902837651332528622618243778339152031359718352357448432083161108762442027781359643777924402058095645729927222123061266822760573609611840878269043495054763844695395626593280406324881988274415854774529632550279990509443677622014508123477479056435161983796016588537478538459755056842139092460017566100457167993849631779275401935901385296011206506259417785027103931928385547986940850178037512926172400802161853519709283931295499221666345770781355061914586580883674728042476815797367754476496790846657757692125517484886473827654946440050026729371202494170967468173879382682709663674623616231036851008031955211577345941933888080002538034378591694858929880971230377348585820072190656541677905551535566478176682547245987683335129324034309904757958390198446528681644160145295316009074661682564302441333631458863191900634767451415214889275638604743619368329608636708359838162240630474018860633544837974059221619075758844545908261895317545008187218043823582476466177282837985787434084874087803622335637001688592339029015462252654694505900012243055887595832252142956473778498758021646683605225406837757021082731993054044000995117439466926402338005976553564910711692175416253520681149174613357345913614349345729536436100736320717662122086117960530962851186062769902913588800305088341052186952284435214880678510221412522614887768350283296283936124852031735465075018562412507498502769886744586499933348745946823416865770046361318265124213545223601985039417695848446259743821869357889075779593550161408630328233065688845826306057975426166405792073845675227350368225546721230995208003871399549804939318836031914584418299511788651079673429121285059331199918276031720438299440918514726586521014169721453511466386541135161660243395909102979581050454861834675526685026951965939849612135543463848392167601626451320978508675278830409203156493133461422889485928407390061181971194862676890739613111049628353301660281747774405828895072885747129972803974204124275982462763350460724876058600274463575961962614027649795325545660390935943469938235791590773909929199110431895322634051683033172098203617902570159079476988916544151157948415080126532999633755944072291023906760300293634192112176234821417728982309824690257779174898896237628207521092165374350191546065217169214459920700101852885546971298075470191122568999679639442067232663532263904783315353734850930704111537784597862919365980382401048870873632723677301154215706345771904028083119652213491301914263611625714166102985621774240093412128588267575131046524207087231552746956824257561457168142188411203227198892237048059480925736346958290241526955229469448150904203043518961204687893012558578683629213178809498996626998693685743802164644897744120874658405748896112648995559998458942394115764453296516944997394274521436673703427386996603250056300810551641224921512511828693065147240321774628808075461819279640767668196154183461577367383304292279667111392438726808290385763583282740359649861288481490303818140458488381202873508603472490964770691593679700189357903157760131323941145040292860962959822616701807824295951362169567646540193978486236570349777166008321599903548533655164174087487589630011649614653010063175319628267637530724450152168897753640484457258973873958923668169025230501169362612457384326369616410258008382148255744980062101667542084033701775172542123135579233664338137519896596168557929894440523957019604290605190366949717238778670876211915121386594202951819208497724951098967569654953139176875536237553766482898196348313875883776701608417983524263708829598838297001966339877885237980855055062011334965462758853656706234587994550186523844918970606832228446916161007800345295576284951531289949240658521903248144921022296416189863475259287246098594445683745483538831406769759438822860310580816162973818017735268948905379776220049801979073703599308392196669369339792272821925953379286581712044251021263149130834027896855808940845982015142170949019855168594174232374104761112037405712460986092595692530640724540027342387676222533042811943100605905195444421844982594723767779169166366767840321667630237021208153454216764076522990567300189273621614329051962869202063620628913869086355386783597854610424954225140037491959651660786617985537796724498246341255427040670552132965906688336508372830640180826643349875968584487142156982953798949757677007503838150596719360289905274342721493279668417015523575923508026466723847253393702314583893105553432622215664164306625148995999094945840370195237524486193227117383109649769887541571043734273733423211739996052567190578668696858903928529088815139372994137042352105397614837099299991832010850730533714111807186968904374874103302792477668438897484189672821418438985698576994283327280031387715403918756304344509933532084327109306036421869638064429523721810119039523772427910746067349518575532309306192558896757732434435391714170022258026716210329255849910539659565554799728105164173915539605978147602969916230975942405244984744801322896894829159552064160778420062144993783863453700681803329553685279674364644918775264670901302746399289018363687546947773116292941108773617453753359918019750930749449682370950928598231752895620160815358190952248552104142961784159201544457031706873853066484921842033111213914648589083294470675771459114233294059380827537063085924431527038523272042092796000581371542200953532437082445210418218555776146803226449962909794721177410219313747071761257035243221605238850989543379709270715523273126410808487370492515463112772063580688404776139921942876777410651437995071203774304628321471936668847293586604524644530792128881920086592986668071090440169222701489141997657377663986405093396938038895652088031033808588523017639325346471001138925442287885382029220657049472131622177076587977709875533237135922226838480479103505389446049904748196333686358083627885740255424402455935979065840914560049048259521500029523021077605426641278821735293923282663584498931744467479851976951617603450611593288082688890771270253110090804288384485345644195877704491674475045974100971155590054640087801537058092347393523975904255460738087796700909503659155515135115045710887094740355311601594148616888677260955886422970314800059871578906167768366143346873650390980201846548509838101525597935346648446758471560870555282376830227150221329324268109616048891919415931225611395318377394097730641819113661792636285565667821094649566562919548180354339830902625661957846559223643821706172806683478724931940305892569976804856532078771549930087182975511299644927360937697353455502685246420075113811006093543172136620458275320624165985113189306981755213653042168213995101038669016756778565945456177081611378953307649376444858954872699187252768944085228057909641953258381323996019075834275149637406057705388113636307071225333457977338531960167520714655829105662173146791728973014710792804276890342911963182770964331140857560996861242207276688592564170448776921388784050697338768502069774018397036188033391341555187812525850259033127414090284854080329285566071260892970998358884767797779044558934571948249721503742393086883830759773712680988082336387163611165373090288398014094347619094807390775350695639334672289141325680140607120567246737411236615876099236797977817278520695059584820012850951382907439623304257394620847997269497026792800283183317953332955543948928347728330604871832114327579809546275976040381164547169966371094152681106999547747758102239204343435231087153499741692446142048384402091772149596150577591943819168817027197836310265774248752165047360903199081271240712565276872953588960608942068669598595440526545056276461974323347636093682641989191646870914110804794626724662392012166037537970903408114959874439803741240535842637645468330601012388771206811860956808141413736155930445165595429533521189438850063748184041802471225191289873569420210489447103888851939390682231974029408518884564127684719004241221157909195918921923117970049653062158799080568085187758627035867608478250406148633444594077035568416742984920384036846985228038404463395090668955416534154523417585954039599811583282970562772096565860278227558878515397062330575937336076945269620184823302159617606152268223679916887862126840270671872972672056073689368249499584248863791699740019228513145026728550360130674791472493212298191477894647522839687397373219853049693158405283421297369283753745941400968391575647667683510122146685504703657605930810032232884460783747275590689524912896846915315227667188064065663567652033017856043362196613677149672047874202055304846619880885519579306418808454389149117179629616075959737355709027217425611635436489974558544275848545711324369308915194017467912911373813361720830011528734615038151122983834372331287017106247108113620026421374262859722210656977350722791539588849188134314156370598152536045278192234147017093353536286832041933285888879148579876656170645787521721798267911198640994982538960471401100064655999701512334639499123485496149725739246117771916419155191799383553276165746831127308238554939896618848650273856266567484227451846108895666484257454232010783853304819461934000819098422816051186362171864090102524972584500367708046330004551540362968537893575344787188016194546269394653159775173564486984714663650748987916605647497477527760545081725173347401282805628533340215825971687099413547524233273630772784121221004470456110935126054871479461795918977005986249583048647907103309377290135779356993489648216803346094312594080465972319016549932812503786479755769163530347098288378836567890176485361435014467920271191219569345148699385257821033769496689284867997214803476542444902910076471637014681480650158341341416189854274973253472576168974246363378066614358920340300085997066636806039978453176538987244705198172307425539845142390972023305935186149254628116122421853835257805999527017797087482744118574880961615480055454207659198096170602911500897504183806239647108101636342493967017391212930417405129898280514127928996135998175474645426953477914455645565451049330357925212232115832701702150810063145369283884713893822840284637297457240756132801374772089027020770642027014408723813685725361166444105523817300176323503995772386804401262789124339421078993143405490234094860465248918641340505006067396788373101959568861016322378179920956185352474122679900882036886765318313778252460236637470804187233091097477160993309364328996034673054777709233503687618506570688306613065750553600898589094353702461391824817089319289768184981945986424788627152604128805316777468558785348401183922194715231802433764910818005419764709770940338826213211737121359955884263871082015484472705966604718481207515318481140754799411145365399966153068982176925514845853469860039604680947313936574392508481498567422832154877594387100503224096537741376342788588691030428550988106666992456003419795810499963785017614715949921840963983127911965686633382915828928127042886770870724986653529916955295679976911621982844590555629046054331150080336943863213348823223688467495193822126825571143551924500193647944102705375024372844590372085932290927389600461233645843616552872342377124396888680337460536919931374617856319360069853449132489260445653938904204739300841918722633825393349689584981034313058867889138772288113553331313074637436881804717593461947515561931761359331612590538833400055027002896445615188831341747557524684910987205331592169943429993916876659435922174421880124490042132059453265242224129882709777978557204612464160959790138323444144086573905434160709184728711096446381109050102677581240367352886589877265655120003203655305276723311729126474364188685283270621432883107149644110494156854661800614119873201666748312545247711044483684857881252776747270967451886672646932736177749065567835540198829948092782675275606829441792498532475303994143382024786454149432594406835841855579759725908740440659992234353142111378389798059681731594404502876483283883943778129309324354774934913451103805461520128593407889114453789797358955339837302343404551206359743763354130713123380201494968715798136197660241919140807490175510824375533704899491338024181846794802138234921477412809448901560364085050536764632621966191629013816537461263675144083539954284720396911503598806949744576936593965481148128274559199911336961275100816406617859196730813301372342525178410555396278595837411675210268584765381969011449483541828328259111709147054560360950085440367518652403892903935376474061949809835302109565982031963952829322035073071258719911343515090114330611815783310645946251997393482603521821359528693865213209126019532484173201350207301372483928474983741387873094484534832212064208723180552687094198079638093567842719568554256939781703994164691449412737275568310996885197234746708781816767104552104323818882622784569218992551564137367337931214645219642570200139483012554456253337222055590375287954337396541703188034200509266061505796861509324665652053402653701823426692870581990920787717230759415022123232894081525672506421216684737061389786476501291398891963795694358298285602128498499809028846194623319293650572380636343562878136312947174377620592218563326579523522963036259175902956354669587152063816596751811822086934985592337988676835966359207750488787824284291202527551527545429525555025892501725231805839122977557975481536714165666123768756303346807187104873781903732649010844067597277643734187921761440240206697926230195086108950369361183416299173640304594836939663057649937278080500012450651617907093301106048853931434593242935709814855741894816667401423291348155802914880043036639058795565780226575055933834267041876335628447730663202771902496016847386986031062270394691803187770562729691167876561956877592534045978863301999827953454715813546827302399827279054038394076118046758057517955951403450974759922383715169205194918210771649876140197918112531870024347841898020212708203694301517820013431466590286154231033573498194498627865836527153865088600101230536528109651596169112316415455636146126506499495462886930204493886716780755614214535498522341808353579478248352599385303408178387294248791884671624944069979464788062714899403081219909013548335595061217185026600098728429465695906759041850134906435992876769627107162800229550377465968144994303051732630110040448149565761830952778621885448664725613073620113733892735797027334326399381695670762344111526693840259772408631302762484216750032592801017258810556896753755693274185824469699547924809694537571881903787735686881807600882007370328153030469327341527818419580751321161971750892749238638759286413350427933539456429240761805684209246015229938784797200459579764744830483411332071686209134919249109436808239372281213574576304535080096883895185722055499698734608802614654486202466068863495379982400816187784890441841538570315158030538975706050527699219166540444023298863033067088426197093075584434063862544409486828632390524807232023345404479184887524485251285341076757855823864953600640451359182929803084843083645546824006549208923475718127655772958549943646209218622134112139564942257699815657650864008423335547489676019993224378033509199597152131027423227856573813575986577179845402148075533957527064382749941903738336760539926542858127213807421000277034997614489432704904954247566269398616125748832868249286918350951021989990451736252821806918306489322702476388400545180498510543649173887662912706959720439559428657647499090462204167970776030659916678000609773131483234021055886936955342855849108349586839940910737924152158319425014655262476827845703877219436396502752620908283408790975447109122999604514354055519775832081399302199453531081280716177124039410571096348772307733608931317125147162451111655738650846591445634212006115435606706451341884183868091470509498585097941085797469543527436832442134862371348946672652210292466952426937748671819516975699801338582891253433112044558945611375024752181228121474839716784585100622400362428359887287939207119869149342062712361019691994749586857774882179644992802825545946911894150414372271068744870549529141342884972121320302536961307883332622644674739858600521041170620601966894274470620712148359086113940632710907580731921568875803788912621606862275119175434179547418369297633169451584138201799452332382933930487779466762082672957813580756983872617686314017514617094647058007681333063980658767092043910545788105088463156613429786835004824133241643641087993637315773611575813253284708693662386759039387072881964065166200556808754367413514647271624201357817092927452307229349702364960268771577120958841616124188970592138063123889734386632753747619819679280581938956687056030789875190486659531704925599664959577984716995938848700833928428251586302155096909864146264084687473452304592108362894659979161438652615542406519823523585802938017681621695774712759782537366018243777260742504995306138960074358374034624360733262737279635624160464648236469779638221277260378941359350202605328500733383415402950766291164325066804197117206115905426321435237566151341678448868935470620616388154080773355314471869509708563077684527803184763666264270894038823921615862775694505573398252437250961085045789697601529264749685200541214514690856482731976449507488559278293676995719824220652042132791250884004477245849656229962989320328229955551778165678005547264746652573762732922727159662279993061154547859429738942071438961282550386680514917952455950506775008736593830271703237056408251665089778230802372379885917013917980332850978440141737173680745097510225797326747686464589651849757247988233287282847023231559510896895013756325886808182824692846922853533270119528175357229523932889451860315919402186793545529287215649909351199631038970460231290102376547921276164174629581109807169497636577891109402554024604795728401762578747811099718972891824939859209931184331871130753655183027130633792216292742493478284647402036267158030862830501635404594191683287580301389039251244225882355166063981888616746656335940579923819953812157877248366780941342984122708121074701965687918205016835702468119941838864894087345490019776835704799715955573522782238905175545657828952797247054334865857911983344219562640610688025526581554988358146019890461900355193194004466907982698926191806115059770650008584722036872328853094651530233389587717663314412859785756120982120005787033372630717765570205237110142202601333399319510635114270723248826547853994662444268624016074648840467786383144409762504643810271107861645858643670096374233962648512436212578428669322597200669077113754605883873475121612041312430739594077747737823442361648361047014632374599064245642966491813692934630902873590539874270141235217827186506895790085925816598240203678409399030679614618044609937598264716245491449543791318023118570108864264970798127760659640941390698126141916267896744339873004747132327697814949345030365649078647955217183982813221797579617769385886729293438012588393801212387191300898379171617894887689489879298628519070244877780471928118895761764677864624423022662647022932501933445995852008685292210899156757376213481975416996396855861486572976984835735063532434390599581950765032999539212643081832819994883071257842538542307292394019627264384805679139302381427374325125271566328333208707113919738403855013599963229465069930962322896417761504859678847319083054270514473764826492584888986121404434897644771553547324342949171696171232911197566563866880319991868467030819228216746062460118893431391862304238352381054859055755765437524354639278459234863294408009605253895217067385057901103747924961378259698966139433534066533773783249020300046322561977251855216903268463601453894944134774487923943429962242773097202273431577315615568255452512390382239257776000284006217737705869057756972870783951225065806261350698922464357161179097381388827461787700643044305303192152248489213394402112633831935637259568738877458977426652654718731293102506347209024395519375709684905804207573371454030663674958837284518792049499114474590582519183339651892503173152340864775090924689108888725429786142739776379158064219606122662415160705242169536795876851171588694839999189140655630364626251509115360068107489196393134720438554264831728198565447532186218550816816500580361568055098393766840546488506723676078438280841503279625807738068273627368431867405933704182514279149750756979920772790731598306212258463770667853161225451358938178150978044028828739786988619555351272025193332106613936170318150812748270479212034645191852325926449884038926543905638573244724087350630211607935968985975878248328732583052402104288316259194102307658190540208666383642278583440759651933528977550728565384720351378486185802626592564582295790214900616685622628798657040521309062046172760454954561680082305576602620998114501471143471746045684389700733740992187988523101786342465637869169373077930002879958481404298721958830254067014286551674739768580153149605892939509284905578078622147092677147166237066946819614273521634653601604042323082230127869935225514654255719343411519569237011469338064203568097998228350120496402925568715330337061298683935227697502601787316060540460666801440502508669957938845097488793800344156125452025798447890483294540532869084332160693900261188510783435131646227433165084089187647534957627894163037839233793343958349932025943630549242511497902373278573608728603612185359825888552333504264887300460909387270468064256250900572950459155723301709629999323517170794036008788719515812281022964000309344245504372489985083358626390273915549234017718314748469194001685473356157317922088607988571256030728456571075457998698243190732277450146670501139793630050235955272995391750237216012870496637173703539296360477798503764587816433443811678468711667150969961254755730904610193874518238008574162843254120443189296153972257937527880545252860446203053888116551120992930025452928223684161850235549353320118983310405400782934911154258006389791722509043390761972713590759126904117275463730530747188486187103199033708480117579834260982694497860565333427194122852502348988366516683441730190170989774344556813633617325376390954787339294803595476651295743150043869076289107105268385289340279067169586154053433750569522249231823579510171428079977580821450553261412604077774498461623581364154523167938438842116248662895751391134099418260173720369023781360530521528933695755333374753782163401000518310068559634414530014275573324157368714321034333748119543179261291757288247574820903961025056565401914315480510309403263970376586300197248523008769282586942137062999865270556165439745147308511696201553279968085447981088391352237474691610938613337636134040150910096498474182960633351768698016177878390619735580289761048868481468148580639293060654967616349066164427874626083119012692976214870673612073056164527953509611020021308655045889447884457048784190850494246453851495579236425046043662202051607732134473595915468340583510052350191717366819994664684423442888262990203141761304569628847184806592355524535820601397799296474797848108508193665191362582032327487826732818442463153815957883277946220153835719092128876111982159059939608028198351686293401910698156348193755402005100880079003050478898684375836927104866539536204496936609910513490883740062888974055688196160365016676883474019687255473019191026665329130570705663704582903748381009583987834045201925098022211631615523896587153744750155828916501251823239057768746982045392823964661404195202466058385234014495875892854100350443953359209928717102725120430651833809680340977073130460404929298869748506826950954645831058972661219155150064761864830581300562527373066471648732779247598060406675428245479496262239009952165307538766946490523977150969836055069725361928708855766546402126414369337468123566722923771044679114387590499934181948258666692108966545709242374069795804416781948805257626673685027382375961520697179046885537187986294367157833688062351826255612527868252870873288557807866751261037056284683998484126369121442078378796301862064439934955079097091669412200522066762394633806727956321578981457654434966389286736268221709669027145428597548138222835705650671331673081167619742940115078225321721620826988536286264441096833567681674779096290289214239487907999207957387541080663189162476482189089206803234845899599718176515982140910606659930080078765988555499862032457911711236358880064621343254455322147438426105129631149264986122250586560778606119127458943267397484664004886729546706687370493945499014135851077242436156575068263434698735393643239868391291140203075728733212623146615019833051227319043512840848136389322824293526291278671723589801039644991254591092412868409633889566692061602005722705902795548160215501491260872789558987623660222537483990577999468374371668301821996833739937411971008409912258585554861428349355002111433095430968601270885994238188120849475126052659799350287732258131674401508518946186723393531405169202092957397656468299256197567394842638513024767077745219898120836354894251918428035040295099053144769159720721515955942932555112450824215972048588777511788599047391441420410727307229786975507172874149395696216287652117388050307542740405166368464876260292324208837668138746322243220656687804804944817940394809900708544361115633328959229695604325484275704487496917360183491627980409203631033905674893036282135410697337247819207572611538227851230746084559501067348767609667473211290319674559016803738737375446774792272618579620847110138453352844222579594019848761783196186888656626708891915796588390792270047808256444013023006719699199954695013214990638082166324691977906739255140056246515574424732895594873554208253848022164265145116743719187618812214069406460174241382707379542979096424853783922140010175680958467748057544803380579134138141330420463331595780072565176562560111365118505367299965773865634229727538932117584685914657872392247023230012816874307905562771222814098662504960705229279767769633207704658294908734587190699686587851278052790794500099477314957841391116715771730004283130952455661034321088116476274609542654149488917796446767225385300828285879714401188957329443960021017719618055236200846048569857334413879210905674898941203890811261819779088275962793943971710495927191145942413770948870180489674314635012199411405745334758956533176396325402265887292285777409520253858158787945674228329453195032698206165686231553722302674019130549822363429240076792748531602691986228405286988384640621856618454589564421625468267695986258446476667440306588794709854469071532296319782242142956761774755684346216768526432797753802790746149285491707948960463550324553971740588994500978472026158189206227010518392164315143326701579704569814220822802117123684413947844861823338813403208665874557854401437655475568852104696815162704117248525322936602235953335354937386694695763488664475211612895464137922251703921138252642671982788162765915766841002719355132617225991854897157986107611723167451771416082686184812018709852529270535595061386230833540350249696843626809391642871440293292945997489190690664664076311892649244569227402832570559749006389958989236176876769633133965027293703555663979870543636692834063437598539160539791337239016923287133306349761085094671601041827219885019119241535557758989141583158603934720889671771196425026648489559440949148664074673098307174021696712186967436164363010216414424196467707822076255347225070468798152952252820339598092777136363300833934456369004970832899560635203957377113675104407529083585851408010112919390613532828191665777183510620101840100089488704911656453484182268920707034015726481384460665332933745318106411792802461405956445900974794840081122528818111450457328014083708433565074521904815113439561281716519846981067021228313895116805720521953063334655766532454484985514922651455883026817708377269276158995236512090579995082734956932304326642711782856445034572756005345045415665297418175694271958457442501569826869769055306450540555094231052051026773557999721930627342014748292268680742346443974934843111657422741803531365745398149854521288086040101783298222281947061893108545729604576085909411095199832706315966335877986377049078564885861099720569926421352271577885619668037243473009863965578509050197582270469104730094510642492595655690538208971135156538122615127999152545297024834033523873875745541635740365812805059579603714144222510810591346308034723331349703558389402039864714852371761335889851866741953076527456952608281752959564106082523718630208324429305827854618015453588101546007115932166459413437632467035013404977903339406337489294093635771932525049476540929031380182186266865116049745225782654010757235774081305280749479733275084783428938918966060095764830553851587540909519986098117154825044105865461286856371589449576303882417971293450315205075008726853207516912283261816201734041990538018864352080311121979720283357760585092390401165623711062650064388746847393678104092290756924797574009118008505733150959081702712539337796858756281231257362876967500230249436113481146983543628192662074105794807224967674721233152366656326045563334989551937175483046534212527101327616682506426480101417964935241678382089435537190167348609435470613363488319434299158844561093015252510178747012991736506676339218214848048317698262828091263479838172724230436242438503239725591867665149652212755904730441833091875443027878559183059457924857879826289373325921574499425824123372200997214984896239945998173252881772693293229672433225239566476966590439431916756866457308072244622356894467381566874954013160041239676729591280689338941149200617793999629754541607311095951657769065778276661597147649755292115293756655194908542745573905044943602523324534001712433388930444404057660095490672309538624230418843674606925383440209378122840576398825404137916217908894306588102459780537051393817750884950943063226670136290458520658191875520403282707559104791828485294450058194976589897953723237315075494041936903733781528358022041287407680108356495580132938195208581035321178098692601362676080065657314809359327860832824724924427328966517945467405528915521245977114401780831489631722352742333018987813222241920464270004294229037128466446108717095624443170380093329442281890045009705625158211744546020823378687841702888746810028294281281884156383558111323732310063065488721732697417808953550208760660664632687899056530633201505907494752626079023106647188164596317582202834762905692881804658323411172123875147737098098916098226262417712988656848469597182906252766218841869209710949444353954522852888569912188437675443440020704782626942834731110414134477736795442603078817909427078415634966783511711341093595530567045946793667415400875124268775772157999911929275092781901583680149599643082121346262350900045829570196459288331691175702270156892468214973502460457311709435795844463032109695945686211343753407906028656404314229932518402445187003548276501479428787371453770004763835496759996286441562502571947722263035481118297069672152347942985782315725639619605607451659872483020647526082008430073899142006872149071146884017591670561139541167781681532468650370077931981624654045473889131137828798476365502029453710417635796555374362325380334894202291202269690932547918287243752004316665072986224356762168270833772026334810750043279116187351472796508914527545297719916671853236159095461032359236056344201085117198420889847482085096795484964083777858576876055701789767005130036967725499496912679523516778475987595087345092855170625219453645682519998637134917515195859722608733863343054281073755719251211337006580704331890066191571871185267521636690440996261258971968007829257075796464894001317908676550144220170687702624625973318558432292195043430459204219554948270994785713011391215023950754046795780215052639363107308893506843997948369124950373922936430762293923604836713965594556381895633287429846685234136048167533337482469005046253686694902640315258112511540625180175391321079801914469262666437578020620682686193129150140256807103811882628256461273335371609235257213622597084035122048537364653295011126809731978848777980780179810204920469578977769941041430210294679355896890927528570945932279360516433098930336297726472235804924360437190871969284333235571021165823027657316521523331848719778477015351405246548075765770220426248240639521107155874358771633121212410076745732784048879332362576655560016111565309800080546592121259854409864776523521568757492068293498192946374049026261940023109892285967525702188884239593526105526458365100252884496557223946965014350003586169525464207266547855252166645405712949370135207147665827600421403580271603264008820824317222623917867139993884826704210405357881062185582248379592338731805628583283942265586156908510078441716305014513998100669125664561907020924404307807194166975248235227774861685068763453708748158412699241415839081003979706670149323595110132628101185828380152010802572988000031077310594428758100562695040362897196018116824415112407808398052308649021191538568429747417864608882737266028638675776450670539388973809529084582722124736077573300719437828999068318908221397587566181172153044433004766930448180565360808567345236555048166474775939676689577909247950039084908357697781528015534101970318668154215716378093662839167151678885024803246630526714122252151113525659138335774468488620202807548323853563294420803225692860876068385308347759829228954599704849218413109208939587901546457513692792036521558013155907613229630746244246832388731899887458597695820522551706825118384752434828466742901066264295393661599681140388768987930787892604762206165530137097112470057750646684433515474110471741243287817357855471124013658745949340330386862715473695589947825106444459156657321283844339538727560914961722019356879338379123387733804717971322189684253338291051505775434005586701583786411737174357970028713834698225097559850699004857130461056406917886285741538647113402756058000320446434221498697093167019162011696459598526145034834429903284041979589064342222107909562035542654946875262064345546552880190440221644613297165789092015272461144010612954969319397499096141894245655218868589637320652904870361735119178434674583318668452062313918714722461414328205431787336196415802661264938639726183758332157149033893938432530272347641414217830490433480239199735734007022166819890137680148585823381202358473540766999617590417444703508085196617561227213947876238881793881948759645195766031018029545166925081315045210465873261590857104248797290187285639415654355343245408021653921497437332477559311163732051198092055396783859832290520367985131648431922331630260987461280461962191411760458242202460574587836983025892526345123901917857497890196238713988448313736498386388795796983645828246077372809154063823445895495853946161243741018181060054231077403091126658768609244607923679975450373040109485746318050019267767312472770091322329575984462594062835788913000111823992284374312367868030204894997411894748253363046516572669512707721829563623072281323490376017964173415070701686224424130919080407927638594607304209261667127885642010380092086746255310347960251438663224008785707306320384408168751262583664411848417369373301782768106285473163212582316001044862317383662811453866741098434668976485927051689365819847566589852227048144649705624270145655886772722552309654517164067218067051264203711015514856216804253507919870383791433545341042546367285374372155565022434067287197665835055860716782064644204244289159507012860433041163120812320061761879855374314598310967830956462502729434827458961008445963732105805538251632283726727751999023367996241531838209887949921881163090641985728083161127720129888122899293451207005386786730481773936151941311011086197470654296532945908025306076602971761950168529545202431659585453845340375029747494661196974390655079512992749904197448808573104238908586272913573251527598812447375258613774100562529916620135182683091037510869989361420601814381545252388228177127247673683591112307276295608236377345373449170105729014949092932410047489178379703881977112917655939621266797348656131894938260213846700870437812199718713178879562379785361602930947883808559476239358262196947629723783600979129036372669733615789593688710111608794448864382923331486590772932804559922172032855593001344076122599592757841360286786540915262395492255181126388281037199905661822612116487236158312435814110832567853420130090000445506109369895863305253811052601927063306057310975339209893207318648420707285433468734437600581812554323907863046783317043914817214922705237451469046908524330539784851468374895728254053677249205112372240890363360291833628862610809899833624622254819947304932132565662390768538864037801012498193446616774386362416898062238908043830556014143539177929980896394225328107789982334645848540541553420840996057735660656730226495065265834936437764596103925429090412117033494190442438944111506439544922666591145014010086448314696056451662487421639628905002280926187580422029927386408317163473559066159924158135288366691922246766788147842340697188290139037350706051792541489392953130682258697398376338324559633273083356949908645893749868374766301148986864417801597216086096306623440423952903681933565658226076159384006455543865160838303943754208005412504231813507827561017575089493727289438557257118696523658266593422313702021054013501842720226796542481864139105210938247694527042404681475470555741316906264205049682894974810533429337939018771599514747241580950752969265660123097912908782076899205259243339861293513960396551094302870349702241273539029778873624588588666661330820939621993801141519663652187756370542156384923543743792880837971917532070840780031256313879913614979065450094418294978732570101708941350774945555251418376974659553642839825032029072920510895711259025971164644244453121624509971207560733598391492570831030112587782182212285522542142921558452367361641803283024526000528111945491251746401634722763148110582768737818477264692433886861213614612615897262409044595449728439117643845897529315687355821885075932397836271360566301734089907828837915640115434514860801193388530191754087978845405799776653607543622591057048315309189648246815187003703046770391824113747896921166976546343223125141016470447686536228061326585210403165141602436177682766777055540566279701525852220476553365234430021127271930872299033059367375321869583031598277471011179551844444953057852397754662812184946893897189637939921090699335706891969454152663207232271001708487755907305117082866328565178279886799667310874303402308214468312703981689067871820355301829389580013704413585280108275999663844521175648336695932506180470455574739943659236878706088020507829050620549583928622866960338628876161544258953467957990290911877590098961140694780101116472887132787289456861023112447461331674897225875450426367130102560738109415417853639584412649918776766185995544020750324260070943692712819949371560752753202101126127472143684343172852856757459641781709023914704312178599539151188383534564924631453234055059779027757096874936398676155758348227789045535532290806057298683942097616437932346185742755923657949364511243649823751562003467386545361339644544201739000547058374615928108460524424992300478676942115016680963502617820862632187992524663802414199293566973104107148666278762930481012201355110528530609903529207624913154187624636613197764775639819286231244760361908260303422020942064573125215381313165148583300147622231776824947802336163932412318957440881913188059561547837481746285778530997242303034733161730636581276513376754630720276344981696707557240964789344597098013550871017345560745977447942669003206660446376295961228497915470465674870709945640264751345688562828547604921075080369251785977594945785899302382265264088147978160778827501717633343294630005967601809563257956417353234878120955739197399125478679524649035644662437099425820301680732507948643744953419220646507591068299722078299780733815105234111110512793879117639762681664386144188231912100328617491387756523774877080270936390675706007946992954274385101148859676700274379208005582250401020048446229092049164639879800005736340185537194756294280191959108744172607859752879939474767992544056977527753798278658995109840175451319418087516926786515496688314583528151152022319950580362947142872834341978448657726652214559437135491158064023935167367715966809738721783855818261583998463305284266549060296289169110097920003972810422352753406860297217300983214669145611291552596538950819943819659041311976305509580572319949409553038056429788752468905553593490853307236582061602900076928882634797868318716332282892581314951950683489335350822796596941216824942251161667088667456208873680001089658398446515420447749589585694259221428600755378092851814725671416489127846169746365089197412475024814822185682813863328563438863812232552783560493344096848955286214326789725979396359667275068797401281794564628188414807359032652145702942967218229009590982511350291245278675458768959068260412688049896777016300247474000496459070197004683984473723149351046479870716023815442190021369594368471727081379307905571631295216256773892595024323146063758785428664620736604972361143729268223439050917150526008562629992356361315358124959161584793032350762444298605905293109836904856983063331122249392437135032717353381454690913895513429084127024789204521549270923085248419711045418413073414948594771993286133685563821314661506667964629084589817385149912326817299168200767694400308466030227403918032224634773491802347049175000822380887600847202413789097913508608473517555513939154132955470043908154507414088707548764852822472053029681900181102467541920427424487299174645309232774334953289448929797986352147915276684653203435205212807367774811853700502354359297319552149351178171553645083770585020723356885675887783470574384150384277444511173733732182862394345069574877946406315272505363662637876810353193882736940940219165338079775878111808172492295273019426739263534304026388885752167807658090618559432799586048058730244764723206857904414455849766691084147328413130476301605696668608262625257543731290030792077433636748152407811423295159375264297593323464235486949735917448399429618067495773493968255104152894837420646467325085028374144833136345938542138299996547018742013563275212590308931200289423070675255837713601221908848476580177378820479911108865453716238735620680203048019570195901790318848377000259561127887370347148665769626855151348590572990669564411276302137228010486090163442757212590114498062656809168383013535419538418120575382126994994041767076324425185490427845929433348985572663540769673613670788897042267353799382142695720728704557832398103658071178203935142988875322942229904416933973078567524295481313464694399175057819429116662669545372284580680284069145006885521919409349452655770923222462305548371326743663894054668606911068830095230955913451659595745008661338247973834943941113678508602289211354938761824900118248247305282632865614681723840238335477459093544489049760223300588469192492373101319190449378021014174355359903796215967173444809982366010814186721435238420367063295166090638614245604918283527964071994651249648172168124271037041377220439839708416566780894230319962246184085451341446966241459955412456810343697065854183662422737982760596059449410684973181992265431193870724576245918773174500092148775370796670091903739926356382016813792725764901889823804350776785550098932121276284352849453321395614017508214275196526019051613897090209000945376270732392746745114835592687483751502282371824980565806049409505056998011469591500592047417068330923165504872404458874208928123709989725897827199430699171426881879631120912602854850269163627270557714077369663499694283039332881639795075157663223579804235499655092752060838512437779939521430964061745423154889286263045473795496547506985107859102779008757473296451382093367723113484812745824701666191778752891302716270177220353924013679686630068737920293076531243758120482417915548800630398002397714621568520179703750856136363135560239101511963228151860983745444650065109724075658663474304033653241799899729400750835810260723430862705531453678091313236335206625720168887090995335549604942941918164663971726332304854519514132532185703376479078037065041609870364662493022648734293703122044636243938906378316548222017226797980144925611849991559712831497819952104645224670502107396369850934149693275868891432037839339432692318105577247924674071811133553162625710742850890681134496295279979655164145846639480382526370059329668559318116618410025039177903722281582686326463445750250176338440413057707446891286820611953383124487841213217773443603445954886309614186479319505687431945578423413541232134760686225455222901992727826598848663637588255339622573027547727729555132382669271050101500273440091374772054300250778618067454793869163066292172251281526065025745456551306413621010914981337247734064274732974082864163792299465398305884540374384255718357927902305119197501149002053595705172758963258814901577924622980417940438141651901813931373721532498986351048350478255924260471239146480844653800893650674657806033463164368157511348689168759820349234998471808764115565743586002940132562251568130746113444157097220114308923521208294302908062390818398861936644780001313416614766558695993127405647140641906353532860974596021314351154650203611911844588094749103161815555625564104776236835217461113526102919491557949691156533157093442018826027888356080696658592950897694851722059622629487935315837188305202528680745150548041211405134484337443828776841416310064894039557483570825836361446226561864184020715784977903960537066488588695217103866302409578341709965402274333943412993205388820367320892430875627653491050409212097581767838707385411920663682387337921987268780354750053492073928802687931570021999924472437745558512689378820638588650603653318323028299312665877586389864843604275029575231543517888727370862423645378810485915308808883754682162881338695546218469350058946469741676637682924395558220605991583063548466530114464681286739545014290028223102384253293907524445966675952216718176793496529389442019003673071265388206608651989790061290037221057573373219013567365053965622298688894510911919275522833540438656792447395854999397018019857951192885340324996678622545601983817764053704791124258176160028032761506978564433816648706640867774309106828976993749082630802725316995094780724923735705899794463269620237508321917908012228542244581412066312853612139488392918378999470702173006391962654952301712682191725824135773635384953967162639864452396919442210557271364663268458897696811129262214799708693736855478701117765367582211378066331129968811265215316989036245315096754068895734159542553731490602727373755472866314800573853526176415173867766502128508213359532083467873486285740652377103942584652980246594995379485114968981747599482822012278181800124504479527218538789612638073298854153337956169682003451211382239678846252700806242782137318539040101043832624189133711891100354674461896812545820665280370241748900821661254214872043517657739468103763886708782702267720615516231747025966795530954755033759614483315697998987855468931910613471226283858857845315510235619241728892864939057382942919731527433803178199469548000581939934665319376162714759219682561316843811170754720111373744493877064861255232705996420325726447711029594564266721715647729658349278278918160011228819440405569081880820849125863006289748896383446810150518081105987051273071771895198757662894979061695426190447070434321744099491771368541717580526361602594126459346487944404951554190287919800666937656753166714654369483328434994523405940039645650619433772704375716782643303086953634438812058388334655498984308693542609688952682776971836859115659361726667533970004850639421624816817434604923303467762938176808365328265615602956613177334664944207531995011746744593832240443808597668427349405202680121333351157270274714327254173939023427633774406135475877531257877186362207869891122417325033160102029545600146299903548605140025618181573368630911906761081693950947947894475267293202959788570356203546995416317423368098207400825453379455934427453999305542478886966223855056966300270816020499559460424167977181725735698645095331409561182983745999083325201363710708041239205321789931917202451325678169199348464175061763901097049286150547198347864034470985947992921333521501859679613175491881051741898736323125208373544280172830870521681957285954848029218036502241129458290160295401141276527081191620154725870407598612735149810678802227106496772697259454113263286330962429265567189824579671807835239265197891503894433294246894301663835682077477767997330755144727812516357050782982374074413149167566256803805279481236871946061904644763723215139223876205173083813690393849422904626919668509128282119152436964814238582036153733395122643474983089193401584275700624749889702627889607832901156291735445153716095539874379698890278154223331731732363179060977794305250684250778964081292114923114219189598041953646467786079426451888885206791917498419625313259869922834677359647011355914831819984715877048422085086124960366377171847494186664735051337588469370901901357862736228349070322298440420348423776551042567397642962439268571382570336641074927829314274207216874692643711613418224109388467975007363218459260235726702713710444335294681997129959704185909045118532464034835340247705428588761775516178347101849423533323893567577123280719679911937167036048726674696225094376240071906800263421371990642945015897959891744160951656221016309185114734007074557829092965910475102653777268554986876221205379446678585646847934915829186522693963950207837648883892702211155312971166473689323246808961096668820017270867229196843073670138273584716589544910815747396846368840848749644819384051158330441939279608531558470483862834392544894937580469350307230788985626771125873013144724476536119250428797434528585491240009860429009858618726673668607640341916391422473876825608709222458845653541965324965453502248272774543923261880016731937220915962977281113070084526625998827221724857399658102741552378791782736059781208088780198696934283561918880587106481019669452204277025213229841636654154048171895701298345423164978314643222727490482664338298481894163305142772978531981326893681603748836700583905075683608571493856436275655666415904828319898952959831567844026696993234181648813689613584170661587485457715789078597047998726214532778631170866221006834532087680191121049452936500408909320717454710385159769461322644296978982263508887849822517244593045896040716363609346473276364378661477509538391000778379088840370913745733197239229481604383940131921878691536920610285778697587688361532086921708939157999703932975861797340657189387668582842611125749172265027149814336230567940593530204331013462922971625116761574162144284112277535603003022492322775829105193079764819414743038726594664718447826354279012486172256606265055407141288384865364304236263598155011778925675103604904840455562322763456169157988236037172380000872426234875385969274333376507275850710380198209646956770001760354081192812071708397922154838382543466923605666637357656260585306119881959734163703192238380339063331126387017920709365709648841201672369931588800578408134455565968373038164830490081998513582968133733987037549404421762059236095864637705684017500857226875944311226376702058588986505605687866421820309158739746134368415728836075333640311115777066188668697583956506179680430553202208996569313687087912333297559080892336918372841779064214845683568507170608247148932339616490063035420772046693170197859316585318014910967235728661483238366289050811472836717886732594336947340209242979578158639580130556407535972773153695298571449390278253302899886703984557754117379847561067524102088448168589824060941080286904094838260555212949131901903621542346730547937414951485697659046178538140382442644238773838300658583740643048844714716485005747647896739157157345337097745316595072437169804954062254260887848723301811662956493809167352093689469644888584549924986578908687520660977076317569170235072442817121414586076529796663592392458620668676247424360483772840268738859787612606008234124007019298936825432830566603813804327368681390996196598938765875858353116649030521703211831507592692811248328085338199329319882240295292645601068736773140481053874813507710376712317845015831259493287006347466662261743317652111641343128943107003714808951527203253155701077167525222342192631658635936893293835189596305692712356762075039989525052633129632266453822135382231859349067667336403227995595387507807442948332630643709145570050119920940912971702410937426063571778723828773596734142736955728048664049834159275734546817712997970282477164098489769413813871903899990871087151618364544414781256255449120164088110860382970433532242717109520874670322898539565473156877509686143824164915904977049346710800572151016830833614424220051106746002637585206606281425078099668576191346598848078567888303454136505649529653952499455309363596109184628193736849605611782415486285451286259201119908552047556374090316793943084755880571274790312549245177651393301566798134660192976722241814720774918063242487475096403887888109147469091560690572707474719286128485020143646282604761813932315984201931075764969399876436323307290057993923357147123273057365876276823457688735205147560395292620371553665667832490781187661238060954186691132807819300824335244734576583923903971739062401930129281973069134095055432902549457920927867930852523909971755194406716843817427392317239787528109747759940393714130030619146962454692882940143771742131156489234403782423483973494554599984219230313007193276071142130243177558906370626212918465394319050534003095920584878868374191188624771609436034117334891622225372921991614126237176713561802737314030192940625205191700423884719078239796118905778430598767906444207800558457903458304117890569646466289449790966015945459206982136382463190716646281426676673864916539185048864889376313819309419465670028017590812423718261344361266653305267806506242884084125619886067351121004331177286144691619068937208443819406313218844682470670079733808626057045735799196700670505430468089639174072783392093044967329956628791645020300258693115298491035143786342490926446612950535782153849624710374872344675408574404438453125989645415179885238911680482497540350683283565947247192189814913919627217857070066163170308544775602519833932861975622310129729286631535222938135837669804067689170968143944682205905633796815585477452576513777104433785080643382934202876645626988732402502548670291972512854901684773405131606622453382674363951880552804086196602183011450683989592379216832118359551118179639106444713468309796256797689212392805118791913724474717269061038614227308544483706856049949085453410044477834003713249680782288787487975376318067268340120574029074495713233194695568304979996496729777774256689061951280207150020764703619827236483172273575280088003094974130607393744335416390977508030515676958089663305519222361368208641133776602287242362643007250129489840489013540408548601595997663475007171348787699416783349571712502586340397015865544808057886198657096885134979510100364189125651939403989125657661201997387024255155922882364260948545712687562719646266831177252619778995646741377910943299874315920734694984065277610202737439000555434576221067491594023092669862286184887303616618898691501205592466022285239552487644415801163823802639221528552106856493003382666297844927104605909324305876689190226047831210090142025644412929549635412055112906508415298721460534734892655719258973455227955574466825132666807397420307823592511549838921405606799172876817734333899965918037316205474895532379810289416174797633534592322059754659036475950202837035806567469293824397736025829010438095024359654858411692400935016577118017730084936805236043948045086983054458945248599361836142774202721927519644406461153082421246126238696414284400656385188683731728874146613377133539433613726179732967114318357636281910459958958069799728877451400476360004687451270046131116664198513280119458491051991141318111734950392472853235778303385135336664885561731809564720171516371760478720277007893979499366960432309444779521186373138908857597084361710890194260459529033762341276773305069986607960276030853294092455864302411046376340215683639048005642080466210647883720721206881210293399453756329342731143907116693154191564688877374490306364692883345830885033276869961733517481283613434054667524677047644902833136240932163681159464489506586935824757131652031531601681159588938437099884419118930780370840342102415819494957249722786429495088724284824698563111158815578970674712887974203777131818951322810553774875997552427094456523283417197288947139341728974542514962707472359019264371974881532195185662359611768872367176512621518301577347916528225986320066545460947168706522467169682359945448730661916657725776626393842669387355571801862033284220248354682793645857239720949548914821457910875921001113750048914487549388023818228118075128984299391003513241509173275031338722490200998735069736886578452754541915752649874399145398889427367391338116199196367208413353187235512457401931095852104663168919426687716000620348774130037058124458822094502802226329482328842243623699948975100143350209264394105822479286901201501590969580833815030836193179216518929421179172566217234978129107708973536345621079478623316540105381135024532968776143287737490118487423541896582800586743709797197717004781699735231030914966297081717750497992254386163325269311022267345097121549857441662693140891513194276556985803349678665200314073673481295806610752458214977576488593861753915170141077542584207995445322189617712035774987631888961084788862168382359962398198593567334578735057021339949028699236910265383438422436984073155392306250462583223426682604985214603840349230985290860515677343323530971539485964885925697647929001366171190076093071017414795599796841625265165335814710376329996252910591461871307259317117468778431706561131847328232519821580198317622530975223603791504045308112634598490909644576967703353890730709848431285435011422178934571276325088919341753694601951698911713023326865803909586934624374206373905275631276860283268327859256718391123233405386846951936300177891593598160914082115432756388004418960064598527562658644721209451882975972483206405967196583519249687863523345629273344932608124063719494358017105225357431037950690143935359479579388476665510577698929234480674110064432274188846840538090469715985147032010525676675181403341719855183993580147417815695070697421396032341266955490104784671934505062970901916994220368483642827152703773721128607010620628048674645666146213470271113002150270967740449500782574432839201788930316059150985579885789007753478993654214244444447075122427235866840795482761324060453354560595049711037412706391986650046727051157614174139388694736544039883689869179663947632318972118385276260644112837062004700727473586765891587259874350029704021787702275863902214406626203836710746924261138119090217769665047976697460076568171923522304574719484780563563642385495781725852014531454323728377697111881123553522267046360904221070193249440040735265900009795273921013503155889570011159203298179442665129098859573875334964090531215190817306414513876148582893567084860491974467805095583956433287664585020230162483260887985114586149957758415567172340448732176087460835880501779746262925575773140744517449078123876696507418219430565291506543387939943916505080687570548951743677958436599604419331076239948055822157193361763361255163283993746487141613849959827852465540604704141831237071452499638328359046196474617707593949628198754269628970410867395683826320716686166330428719118796084694269432663817993228348550929982705656185301295213860071032899400003429279482232092183980419125926677307523842299091166540499458451873448923387364330266304002215506181161347686831160797200669154348213232917555832391593090142371747563142906061996073281696765192378201536867101247655555318670445878845855252581437073978043072993610633316546322202075051837118342667761608811324511782280335118180041320241208116951093768507067133889958497873024219678409524332385560632420785582057098991215730753895629379517482672003643738304440488664702078694247581201998274096048257339286442045121360093001864706861728057026964490429473329794670681500869224606780209697945132777670278888504068658932546353588000132600343901759437765951088263891992763394578164989668855064184216570603795316343509728429288650157405282757667894503892815575823675765828016815963310691595520224958290399385840670778940985030179211479185119660918765320768644759455628970614612761065058035906467001768791073157901644150265081018145771422434316764170004661118126771560540971201124355079386209320212173219925533943654482431636432910921265008090836482018379519724524161579384601637606273505265523453897105230871290797946468188807701850735838627516807111472375967332456179096842906047977481256764048514653327194159436161013670017121551471584727339846936196345640647851925873384404231101913325937800001907643547233424951845369129186623194478142169855855997408111868621481012835592239035121657020973499802255529358496506455416291131758552228464857374305615053788641061047204401748502070272370217614691216216655206464692394673579696344306073245001346520483391700189668113700682797755177453369160307679675719762087892712617936350919326946410849631216115750033710651804779256910869210434312178893797900796174579827454090884859029182780011580695673797425595256784717185325808716927181268436055861017757447892989590285287987744759967265063461641214043136721305376643848906212105043597433592879802093852304232310201804597688893165095714592344045024784026527093372604109487742258369514832147613939241287461333368389952313235860410670185726744794255585703124111476155866846600679793465356041144367042546547638506257609100884458765851316758733555470430050474358726922509662112980153251657639319464382639367532202239738468296128239122377957339472905546289143996942132208078915445177097523357479362184993713266566069371667750085681725805273632902418961703195528307688759071712832272418022473060490753516431323218553924531989335661406444909724916002923707417393605318900851732517076635738926235873891454380579557717200328005816248100437559745613967019619743393351870444798110947347037431056508006966001634078751020724655276975687215657736800561966441426326038426958801751311213433698428351080554922238374916720521046626465280130620450436690180268235788692066109589748176827101784960948210015229720623970271995081865342436414869546641297206025143373086967516416234577624737090821685356697955150017146740937364165756205419084624771561592538380070932263881733759418503394493313696317591527632868442546406992289733871930925443264085445952926419544760816632753954269134366566424435746644574256219707532403515410436415292028547900059985281428885784018417570995137745654642760080095350921660805812804764224506247282196502908356266244665521458429576728364588247092873450019294799524099252367953695650201386577841856754798879432382960056621068192592077673632061955323258235640290523080772617912567404671682638401075770164687287168007016863734559447933292441532155562793554641483007068684314848687240842447616171679117449688845818429956419517161980923112368784384994896041423934589032880748303767871168992171522554733671267346979915667204242165135746273420674776740076286077014786407521444322169052709573383798601620595228828993210286012360579093201837346119984180903172940959959304054058398608272836008252071728304853285820232457578859751726695786304440215015954790815216463495978664013246069017191464385705448858354186887845550582267711758002814309644573385841598600954325333828246852773958791538051597669363011814776773941747455238523191761062884037453182805043812458313673246050439464778463126126391706752592590202045889285837007306407269919054225713819184745375601453704718529441457638681596990466127825344045247852647160650044018726526878813270768596212385436551530066451661308574314419361803821275873487867014843325059746973290679635092003338510680280582847266064596709540938283202749310007876605244377775705903382946702352422286218470475113173169826149846926930960066947850059108515474426009402299553826365630521816869470256868300573059872343559568264569769140439153264683634823669610414667867637568399185456084039468455819918822347278574927654499415034656294519720956105239187103122053175680391736982121876815405247277789067285593125297880480461186079924125194702184937518026798315308159588968149885404914939446519942339944052089554934973868273361318481970185431720096206872922703678968736892477982502594468495364224946191909717095449956014871642390259760756469224233062832632170636447517576075854016222405966472202031578867803889764769576982913095881817968563752066753600620676556550440806220434219870669134508564344379399770662869940857411414348232359113652833474761600733623788140231084868717058602502785997799848479064983996168003942479382391524286463646624446960267350036296502684513647912790410844399283601982399027410170462568248358201757632092814406692435151445307417591538563589455923675291748660414895461217410641307282770912230400467205074283093365036605461702646302943193048170190538662327551442896888821997013749657432675017468465078807266965072332943475691677398979915271417238719824243228862495621134218419587411141663604250351506677937094400952437363256637057119074124679067812400811946653280965254778971769060652783726448245790522764570516445165739829704750819261642606490044828421358551882830931796773391642822918707230191635637812307430461834284506539179086499880095830565488206393757686402168760672933483078098714051504716609823800532999889873213779423894017520819192810302509971342154453223248633818326392691718617991860514539051416143342580688754432103172022182635186175440051013669047266500721611423907245854540002731365301910646564780630221221854389356652485122786057551872251877400485734401233016670062628580175628729677473065611638703891215179979142496020731521734413772496288977561258323453524997149030982103893859053189928694737453329470017980022754601989266074305710908780230815243142742595088085260885601262719264545971832553492429064187649968838825393263334212717543019911470441675209297524521830513955087762520763350490725682513698526906320362172734333962083449196593734069135927509255715773595568816252370166352443500080031852164497977689013796905737055815707997629535073166077343758087318085253399903927362351499122757061579469883137365323650969137491559362088550988073670668757517248622946926287699868366928461865003426001994451418033545652602432295195773662200158754870980457509463198490904456381718911626918699888805365565288509555989313493927219923136222091318368494629516514031100408728493093540684756018813641958182914212606073347970147077115642466925921772321480252427536748478023667176362677452941501461221344303179372250522424734892295633600790831762095108395489144650566887520488318655970670196749497628493820056521167787450032827457252438521087641288975443467229977928539578036685126259388262401028656538532565409155622675785613076459794055200718029211112718906761465439048430738343915752365409361315619328489354995500601218777922907866106534372919459108230929807413688068879069221336880046539665035215078065265739556618270025354583455141026745588219971912530182369749420440587089032588831055837109980563843224350715371451629358450618697125068189314103801627722391063606545202155178764356070895540290659017154547493610850507550098160252059203360855990163553593239838203218494531340618456987550471969387448635737172252197501855894479557512188508402654877506262283969236190601513340214012494046149749626669719986033795606557333204677531806291589986566267610916950159947268938901999194231518288284911265797856442189448103917830196472562684949888834270881454108366537692817159922792693560635997796467636233446380822769754962683150115614752583590666517413255742432962915833693342793416857863645336659672273897125521783398357706416319817592325429853062253109302587059869653972236241291423090498662883649710626990114113156309212729968878808536461815018954177529862913142825054505897564165491902027386521187118267430064366224639561354027838967844015590812913792595439155501073770806370747947042761562732796071295992488316079031037705686881968186274033937672310048094237612495698510092984754678167854931978792701096114998766485622480372919737012097321880334732621120733796149769332682186649202121890299769684264284076366971604829860047377057850493077474286384480805564913027035366786187892466046079280713887005725344361067290467565430151300012314703822377676778647345049625455027818931488380746828880639775410175998372013980665023460602091373362751528092352340645556337583285835263640817423046078259814879052701861646852838675111655937083835408313685250619506764226000435993435957461441315893083909803578248266285552733573474571734497777437234542774010069665874053885967435734405862156223921808652214448148949308117730553568966250448619843388379362085897390041569515145962193631508362217034800333487847874527317584596197110271403253370612354139811262998588820634582967415908835145579506723673716134673522609730909906426372605475469387967459115663223325105643715077364880959816044400330861483394501779227618303505267766420522711325219628746320413302519982078841532072228938825085512760983259258057579223227475608361864551186178889241761749811387398093078754640004544429905782070361572212718582029558119634647614668306970466562854782512394815433614240540230898469996575135304818535147273691761871345613804429003610210823449432895669815845782210607438480942500239781845811874456119340678128499501805943170844479665952865494661537982305767793808423577808757858356647134036337331367340319562055622248997817985369381015683439389672998198500135909196160957715157403840228280948386213080241311086689893496766007375191189167074391498678877232684428979466824313201840050360334097536418848797849292951742117933139059343626261234057649589343155820286918430555610187766941767809271410157483284645958485442309748579231932607117371099804213353468705552630395084303452824563779805354366869467137013343387636737915224509798431729681860283927055351077562774943081745612098839993294739379342238779773444466196659839614091200020630238198363967164403736117118525099153055934732157505933540731592461067761465900125824075432500373752937562021254785011570481060984419566254994722702373480537232318238408911032449354050825025173677864185226641463886836085910804044288745118975796989230224509231286296726157172391622141681589096327467998431814699071069625116361123487495261082282721041304784396854390614075178552463929201585477034328614524432653769633012098807260756326600866309727151393375576844174753841681130441367381235091548929006791504567700006644524565990933222754110409728784495436299579629968224445235463499663597305460084762933984084597362533882541329123290968333513059583225058269266521154682322272608617254023694579413689642805432729932552627260153418598931999122234894463846953764993488180341597623365304361123772110293151986947934058532172768875793835715586653804150728265470580617246836568344220385869569717363587002300878095029864103633113867425399355741780645942209804833449130477695815051330988675674859441876971246511104021916935687464936792795881068254201456368825554459653109758368719005055363544346005873255147795446585499247843740861680415597986926629185252333254728819784158030768263725766921366851834578751180946057513107504902751871122679506336683127665699428537274151827391369686508589319727726142676748523627584491673291397997842058744614648913779373546443939923949531274742922301302308365178455095598792554905822438399526229688070486987130964588736831524486678438894682517261900733266636099291380096161563152371605754954268175062798488048242756800282080174941657193643525293986333501663855329260187182592812998194610359098281844638716753158625850850803329956600693129344713126750247429770639933962849322522497022991482708895405639606481059813640805222568146405133075756922034313212995244753337673313324484149441502857317954287728590294609977917141931179341936049960741700825267961016830945037248406194845776899109314265432246285393434527429878273191302298692541318081168379712399664412394325273593256259393776326596221272642236356821129769827167631045628219738882740409143269887886559386229241704400305274877427889300366252544347545565153786221194619134075376933390775983874080333090819437745750665596448270269402992006902423372585665235970209229647864624505757360282220876319110937803234059667302526320810215979373992349325168339993676611213159117393743001672076368677663211088217033074535711967514639115804537139845743016369369079632387546943694052979805284607673152175456537997358358594560629383389480515112758303693027562735563862297049153671121227278605154808444969610955914763621756508163935177781940316212570495153558684000366078878872761699179145144207194674468832700706066171510166917756017473878748991433249295795517575113561567879134939957297272115006143974534430275732375317728685097420837634471720697123765487994108861893288701357419127444010623570557640511154086784092116535129142969990356742555505650354198307952226225937013002427445421018570448263094867816975363348907682191369158475650825006524714730826845384912028258081386128617217907056030588134690990660444735993685398583438285301032499595107671704685988351557819332034188443478531146486857070144906905343179690218801199098433827311013022977244506026960120104094250347997416257180045438708710197831966471074443257837929390300898444948137918059144037836746612285442536473128998758139124406608043117413925202286471828877191594495269964138473062752448905853984043214026323766041828466004585498596398911486802549309304848937682877851153137845750068970420920559445917209006330693679905078239544830659951763510175957685520742792695370503053180621619002666745494619864096627449707157428877017881145866605826492430617345506397657724034870587180454626295625774777726037841309280298726095680992153054374219223191637162889049732901985953645527665334088976769385257241866568776253149109846796755231126450407242724790922565914019715454330470015064561486287701712609791209818745172781196279775975114609003641600585142082769508387209792051022552044165584662903362341119413344825398888565773193440009726273702760758868058286101875021511853384721168159866577537702114249570326775543420316630674397562839546412306668962469949211964414845830828259052442585728494313484707227609331725623225630649690837607833852725362703378681281883625133005431953593397263565988430123441881105934131814035256522403736321250355783283677298919481753177126854206995359664834957148154076422124025511204808271906751100709230458131543242507158287728069582874029119306953143036157738960531110384347184835148016671394214225105042710808291998055217781456951936008881439322215507577486653291411895735256124167020226041010396554189478265998914762195165342917012618571008323802028270729407372286348694320089479030277809890653947430693451253600550845149279530002211562092526671032496921088606643768468854896603217692439388211599499851800164990740251552350934158806317315496436660747832459932797731503416363350059211242539179085269270864353369824458663375436626568420867170549768371140112042974331039766511946896685057756205864346037974683973184446475343482990088756650151012855342478977180070010415956672015238795288004038074803658189949465489306891032402021040397575072656112346203239296035457223022792022724457872556215324082475912996648210610565355909948986200743779162905322397737381962468051158164564908469771506067419723555183248497046406897483015827430129513032072607783387369189416596809987171113112716893380874856711017169890127890518785884661364586204965020644090983085185975323860933396119632880707895345324150565097540510367467334604274073853684688853711598208711868967332586301713714702498834249274022180793176326484071412473901169705189972113723369747642500680930583724907913878823445681634602434605497114405415448406405330772301497712519340795513888162166897117462946441105848613237054801854806807417388257533290234447279311804094779258636439029594930505796239212617538425036516483347338807480536254127544422790092462892065657580360049810990375637233479955025709639101182227679748826528300504638634856103267129039880811064178108406795760251026283062105021291280431756565646345991033836887757781297993153906672837889603208234729015670440211908549682774200535618119251344788026642275288675940366857556019100711880446669736155069420413187697179814045078287775009603323474561321696598330562599862604642091776399882727788098709630454098113139141875673163780724962289125029342293665149924778716997761395052973830161141134363126229676508022562124923680271714807069491420322219190073050757179200447155491040455484194152712440541812893536316613168603231252912488916971403269611198202235189195840057630438537786321047842285522896346870397956640595484422569375545229705896529798311325268039204989292966904917224489075746577599443830856518599383886297345028604908942735039235656888452420249061764532114917458608204533508055909216764021129138206089501865744738201350361583482921705880743923972652649569535614347041059169816468335790026109424863643315151260062661484990442046719742544779462187590426443626849466395515721083146166327181904922326917313293639868245358280028087449105788019752743211236803125876908189412457898428488729343750625065019656928089666856581352763978766876792206697228320570845158060866954746901010035790975764803385376520766484632985072286951065496979773353908227759207164826281911056754366383183012336460808034650376220108820990757991628300828291016955724777873380976847285498295518757455772281640396362514906954597178804361130005663989767568156942185455388666771800245206524287269686644239257850402148892153534446242491430898052257052342557437222712948837916151287135590262449397527071847281455387469942912433931360046039286999843728654217039662719024298641115019761939056558666196835198588605165493248884367018489437134774132369727725087578516508012703916848925076345137260139188592466133219725870031502285714623445618391490499213706267341902593626009188523266131213765676779628477261904037511810618164963473123316231115130116489156536600591839844089412997256673833788084363809737519770080264724566533347866354895653824400586393189562496750599121161234912464647107263667279184711329845090054787304260573860739555675285990828818280544415925012915651536232305166517520272999712526525451620877412182643061824943168593250747945192267068867584581672963468137338411226786681893998356214110186139998526266922240090942732409273832542924145455223273933411142250125273182228356652240731242412480038401342101711936061116343862530188612673081343368152145249582371991163408583147249346041622741100649750954685305604203330095893219912861620701394838755205681207898266166368571632781186131163600715759960669847697318387373903221465451776951027637354815100123149537542018418268225507100215349533394625762957705497400063476260910456001448569551437476036143053755763601258160009385671032352082126788645039155427875942364523660619557272814591873149139016911296470705998809936276576207016633079766066704722873730729501345509960181505334717919492839953889593633673655378682510256967571920118240875749745578449991683287480644066557340884589116724240200567847903274564314352443690852631974051344231488113606236029633919823834097168959412665426587307099203355748234856911822638575717125115713735129486445993007762817440180627416761422219980177345556745361559770005986437345721690568689088463117759713105722026126553458282918985214347562874667514444782580034681332715128040334047446904106677577972588240718267412619937403285829650587264878419540066374719434145245194182386412365142611424483794852323098972774191177160946572970588231659150002880986300013023517046685135649338126700387716784389504774241092358830639600003778262771645018523529372815760661262806834092276124958797425136382811238362991979505256457735356886720891374974704852353424584372118917391348635028340072303425886296466294923027922522666055240682853311903995794866471525203670300034727715538734661325945961988935036554797927386994896538719504807562264416255041171686417834136012979988931142099089871944133680918418599971250718449919204830040053515952022032877103666540634618491231081403529020759428369273912118398088541111029919616489587612145310569927724424485303167011372889024650446280059460772001712868496536537787463892501136780493942344253657854789314802626857470588577169274146702221519640682066498288388566120265587534077847544437433927552596635313726332167764148393897250506571862028885719276873581743416139347390775680297377086093081926466780089684383512777817050684076214020813913102525891255017351085603143261686140109191612322808511280342245011981277529053127729160860708232893287703803659089542358741816126217495250828765577006945243528837148673923089132013499843949957489522052054875673540725000253064341841641087751798438445499707450962848347708694116062465882472360511169182617527344113847826240463943699573155792728587183174522990042921866697530099196311992687128396689599592281469731067123792400351557590142574169505459286623115305076778843156316423155131815684226648309557946283949090073951384561312008215546781037539984472914297987238346379416643853677812266843598524365545420566245559424167897069466713514323824525453575604213834831653679611689727418532859177505598252849709659627153719467758790149412160737200107994739009436116685456797865987509392338282681009979359939857235073413202955917784349022850132160731212387264429577846847228571836102598249288746314986334305265676059733433627423826133205446019433147477223902091455832097224531652578767817429837055967491348327980258835929562788252028994419483045196377874206590378386923076297164489228402251447116293928467475099906213907194430844686670200870645619341528216145721416160858412017547397090375294230930567294842012037816507536146044275123880782841284717295323751934296740691510415774777371882454134169168740266899372196993730544690546741815873404269696329444975077991227883859980523125231694074507754749877590309089003785033468941704677651754893832793525481023258694686132485427534447041279068759353102342660355444247784039889463182039259260339055242686798415893440680669153437672623280421727296768836877427656529746429392226306896681559357697767913738996241465481555414282776027327190153363972622162702005586754827992083587739720442190940809137582763553486228316797928849847913114436101487778601443279859661259789640848594075033498800434455451609634505838028763457347709688711408918880028968858329503816547648986023280366605328145343512136881012601155459282114493342080469947786067435524893705555357673413571500460089584519902366472826518039592633359051253333926583192960582885872113396048022507285723100983598636648707216271664652461078114735478952383864799128637751763163280698700940078892030385109034521725859914489645410046053182290198627367291944064030505462664018720905496026111739289902730019645390607108535774481403879873120982848708120902476347568170557554750433608728126272686627115207520430311915965371803554827525754168515685897010751641658571816801252267841770128900304719585320429845708340671211159654417974479700869718303849965549750227699716223417230280040788764767096546056398419098791526111902190966268994682307264723065287104355597526328930951384891890216586885080034851923956977827111532599116837312583981272607781809582999555891393464121491921670657025763150837011836417994781999443755882977562928787253103439309036675030768737456880945832538120910505898326526815569382895684088622680324296793382146591898214144876794346025194984774645299348765903452203188831691412801401380148383311003389413301103202863257293316360357211205566925845124817023491907511057066722014019352955381420989043049154716147349086975173558767991730015147515928985412500801636915277704896461934363482750897588871886710226338842847442922630393317035996248404229083021847715739504672721879970064965837267478669585302176209724916525024603125083193530397554999687774253785036021044641890604585614623310621611242392181482189146722428604102019070438805875188332416740002091418455999350785119437126420435477040354364678401968464939565141528040099599355112618628945200424779680912087524209237808493254875523376842410742043502841144730097990305561170472126385585919345064193039837649481562514030632849554810882271550471023768125327402242357508310919956845619033701604502811896359604712404297316241958701176401398584723776914352846812947345232729041656566653496846688035178075831542612650621399587750224547013858128667329899198271340426131591946129759500812744565532485448316773509599958184992978177511300217322831809279429774317543219102178888503659688930850791389870160496672958108344264010190820361997350972120799127056074095382688376206111549525451705918739434073514629725020477515641964573038122845000288735843981185901222286086410904748602133735519244452664441612323904628428116426484623236874083072768243431735331176658674260327781073705097705406134778030503828070144048218693745482340681146394957420307409725628494544824691741382604540963772149767831839435662271181120833982641939651695675534657357285253189500337919476647530776122684991346412940438357884353764719044089170274598992657587989251184279788722342849244447492664796221661786752842038308839728678519007074394233198025983646997279944238553517863421175361898880660431512834919938203099333355873824016111166528583004718138169565080511955850666617425252619046381565773494549816069190346637183924649898027381860157064439787992626112747367799692067039818045301307878728931840782016387292244724191950843512475344764371274539385769301813711553566955716906988941989647678470004431159859567238654774512855161947297568728372249499714352066069506679035483859032361186321152404728740901563711418617020122022976290718946470191360555836474131876239209197279822459918412954827202682071726187302834437394428418057785720560621457713411992352128003922432546462619956653503260261949351515369256789910688878154716069759190004747074831413244243234432236503813217540514639737760656964890264684472005022195247966661020932627856611603772994283701323241005777783106837442408052339377402499297623607530983731478651428738988178409109313933224016785224210354281868931785689023491947283884245289440521441207167975019230064344411142113072437439598259431138922767670596751167628970845643311766386053869173627694093705064189050524330627492403681720440063683029205371245651354339742172195125794563522839432811501842927837099559689061543854503352192967224441540642881287491976249202316956169401945873716744956360102191398468407205385499466369879079789678885834136899412329803255696287106870554662654111702442813950535239391318894015786852640005413391465668643361426505350616480935648079921915138868915759309499545121235519693618226459900938298094110637570054549801883399156979589181618319435303454490330092805963138174369062209498740506629800221907183123987067256446628925387118269675897076272731411085134079968287052628533926632063854196493003468759130050103062699969191105563602783829989204583353635289970202422150524946270526251165086760948898219997721327705286666896973957243080665031477021588050106470496394798315362338908327311487786547677214083874527290905034646119945055367740189151502508535875637894151038881557346413384789885169722041019555646383424808119469431707877439735182999185331772212505781242991523483387039943666042495600296879980695911418745802295970160315686860786935534692638832733360804913322864403369546068064955854555469746675608417584127525030495485746458045824330499259075121251356294186212923954730598098888801734049738728312468446793062971149905038387870415848080139598867898262605721522179510740980912155875760401974992340875579357918478380903988384318147834092145857591895003479093745583391594293826553488363545317848884229397721879377667622696773512691832576615086369660056598476746929576624351833224796808434331522709914852072146080795781962264887804680203903601800368949054345365262385277332506488257210660246314765591603742914712792705884666469048534767790766701868766956104271540394038221760736455384809221511034687796610330223390818962167356473007455859176570025910099941562742301514824422650917707664731590141400779875829474686281316296216358599943984255774477164968405781816490818056572070825335778456268487765757881468362866149478315064907958518839228438272403544051818682858589279751011964356387655383181748045518536334155329061666821465301724317921768044834391778622772057284613275153798516237519300964770854660834949982520271271657875122540691785595684564685804725501760105479489870667664189506390429469017750469025331234258106778946012565451282676474228764255037195593692825348097640536017480358610524230259145972493169687088656010019657019625440089764803016561367212385566857338880258009196166817887827340419867615451128974433084749386843621396080881134258402835636616103763370057725162043822866285001377852413853857047119683180463147382895956517298435550892216818711856485266435934107376509290196664675161058002856168552268686690298418949597390636978640784736530196461878527495453497975781837080324625451259758872596592976522669749241939887628298374677889288090484462163997969877987389177492401629996548296202274698102794408031663891284674847768575760004379162756890007123218953655647936411828226761173017168319496264145964347199467858391508241919456489613054903783879517369609097850153579212444360092655128019184963891572578180440990330456727277325936311391172096424070581004970759743226601859577758773737867328423734963803054823082164031088494983181021507161144524603348198920979694426111039619032330298512861885365761032740433339068758232343557577135734903066612166177665868993955309509965471181957429787158473768891055714438311491973858193010742057277626212708896343726294674013453951892439664593921446956333450015832024910360964730014087102389622084330493049495968787943176527793910795135471840897426674068832473893989221901112831661243418879894054009397349489902084551084480459299948435659593152323762074182762027265204121249539031603034869765301575345870464004030438851608128639381476624896251671788859719780232646828938298845823642155431576285647911008842517108693086448335423920411092043770277891156851538055425876097762014943686361854715174320301098290273740060069245656416488784473736416085560656523212093299524093493989538420527995980225021300174017899531622828101217390605955576902515678490483966635694317943373975669221008740171691109351901935068140996348120741971961177182305970278169109129862597696449139594552010788757781970978025177427243345294350764921295523772007641203238250948153267338934023182986424271845822643320194183309340412797304123512634456994137674416302015880710515532552695992333801399057113910575479663373597226328054248231483539107294623923339047401740938368484810237530464266300202449901419891932458843988480168178488779408631922945264368920113178146230131535348942575553081009754064439200800342967480006989226533406547131511546456930453464722302936604020873312280996014541192069524470797346821249148628877560829234374816491080695872377454319904473110446611163958259028494980782439591886556304634383605569184246213093041943305712634701873545516072197222405883793639877557238703780402397797182140658420471210878079844212577005439753852300897424983068099965030714854250195862005557551833204334925643146133058464959909803254436447876309561891330131484928711828146986554028258590015482990829934445810163149679767143563093267417683550338134600034202564939438104590905466723042055644443528832701765724423660901433637133234653941085560989202364766239572572810909649124760786049419809011597104667279379046300389800158659912887791252908982705586950243103689402022375153668802602222239173821347173670044731320660397914542550812944664488387225231407994331568656341245197293650514113692454577030454175209054550111313238853328622399445056155490066666376788134060325823463637704628633886813537379090248446100160686215932683641529166330832420062102874488870525552399920792592212794236856695032536220918096430928192019151089428797126468386398108065990115334551093441512672033059956239328595801479392520898026248559966691772838167466128882779238106711768338035138449904974236150205660484719819240927582690381120203482308041160127033759540989436777041825519706046083107666549932914625631218870941391713745008644805676933526535854406089058368310423465362279373097195772096948005904501650579978049429573625188390847774484791013736362772438517033030686446550415414426383224746123763196467707263159923439539232002230455269387921844459846991782204516449756802024196758553673378365514310127169298375131191632741044290794122536103487398762864127562903806043621355798257691380529316848161285412559293809238715185644366188799777452529570149765137224314873952294422319533529708108911778655457881856363202855999134061521431189474312177220632081200105448447054478018237623292413708326188763449519825207923894928814166565758299498446213645321658310998858221031629521800832028889518142712882174013261036438178852693919171226731013855815000157527548172313349607354068911549553552656888439428823287510970453348017910891242865396095377649038098810091577220713104118560018787086480648864778973594160641956238457649264804621409051354249702037235829034530864567108100394699968479260828521639347418508954509569970928864683606348359410031198285573845689693495780007264473581935246005377811780515501315484311341827113049200939790530808580620940982565693443469410226735480894768012657727982729589004223479424687726331703539110949271835628842426509837673192081988758194875209038676164634240999487685494610681542414549261154999074969333050710107720301247966587340269104229710713727156831561822472871194842167994296805069714491982353482722686262783522457250209052389484934336369799453454732366002135527866359428593890566582549045279768273595355882724035791645919464410490082987069172458682370451581690014105927682110493191547023199188162601191156310008942574250412954949114809840345514587141336356640473277598751598075239402512183258705681107594044380749422529553590720316966371460472265393561598662331879492915961018720864283169491743323085075169308346514204839367334408953610810144552964946629330348873857731775368788182243723088928453563439345541301922668448442011932825091374329542675633774660825531700397811929250516969749329019091531752455143489928702745333428005013248198885697257760381533621114431413741001320003032674960202555753554223355593164398644532487795441856260016367008020462894715440416430758121266644105551731823844872083589789107073060369439422189226416849710194055269687824638313040955848350067701363273895753019115626402055801758253126587756362398715906468107709340970796615369468597613930121210446336613318842680223946951188370989174488812606060859627217977442977210066644587407790261123450565205473993781466252748820891543477149421174866053912105175348650821746595223582131475751400292561849413246611564738614525406572025073364020096903415402769771225786129129258253604289992787095581130595252452571794773857430635179803314310930093614049329034891741261860184359070733564757954633434594156305439695868695151119508014725041829042032498151702063167931078643858599487414367353914203164680910851719115574198910354420460153500064230974959152876964153913496485628836834239375617184051730808029672153740990467039614058263766272017309239434996317013357951786380098698302988965202604266526800502497247374036755377156389461557156283465611450777677417532222872152367544180743957657046769892068585053270486259513640484420814048355916500349932376535188101619112588222386668234637370053325757843026763872459845289570469419096191269057990816987729926988295123858997143548203378031078914619764704704738548463037755641575134027551686211201187660563244874606185778795723824433227477437330105307815312025322777818826670048910319917306885931453536658179307252040300851071489068247180296076858014611252710827219452777750378299552507742218291791313109804189802181959973928435832542031575704769724059978842256208597263238725973421030506811558137957213535360065524012190280407259596821137544080341421141461200198970244377279448208776525410039212948023175144292663352133190374371894404991679712904325981595233430669540152875765288968974617483107618593165630145213452418794550160833900574397822810688576346022297099959110058165182161651157914503027697946208689265610139392502858112682087476754327234573668188822921998174678171798122637083148919467607491598405895590200588827960826796820254920316820189912866923170123584035928377887025119249725160608209965300093506256097222542682585967300703653432286443362704298458158081048397281753585996557670989583541240728077642306815926326055595486867785474747388057810825613819852138860610110522194110597706102366019069886951341396732726680556261925697559776220934371270225865256542088696291629122800888657726394979977016258103029162161093400205390000065227205710452649349024919961619769292881921232457361549273256652233347978791182412714091274059291501820883988977518745264407578288696739951122450341753918851707087308939401170405417991235924271645122465528371017372337482470916533976649699616679462934791992156238069231753146792093218226073554439786896264698060234289920202607931335015762590196879282103083111944630127475200486385481571137112392377183616801864289413570117400083543925904844388463995590717433565960170442945539050275817587723667696862879340276459351726265214626817786548076689486775334903168203695096469527788891204190051085401243022898903236244230347445319823801885593993554551722413467759070885478465165447912369166015645832766586088136401204443000414208628983317791362905354123638632213068133775975071557792962607749667728066770698601555002505567114269653867056302686754014794803251793397284281979878678681066101810069464789914515258167826464601190297369336130407968043987298432667138947935262852035609710619386224239955414150630745159024244735161450598074883188760388834426000394814608424700540214629619289253609617314228370561528929485680979866549664261536673308879691119265729134279381804663570732626477210683118471067096591513263328597181668335365408852961993414810455415542071475810923598634302011807529126909506161423410732494892485348610903349047145385379798993401369841585182683361115562494236130169479282072012113797064332380091525599484281970418873762286197231200086186666857309142345281050243154185824766865232189910029551977237978208477333974421885483341309538347423371100162218360356200531900333544788651910265907840318386683461186861880464977580778060082230667205447782343221376354291715809186905761064569963581848639557923438559501963808876078532628159130060028393211003924200282404576608202420427267647462468943279815145891297661800899171121692469105338207196113705520972062800636679658899439370379129078839449321179169265207584326589141529052988289959406032089407599318795105289931413707206307477519085056024198470469045195856778053109127922596587190401025522644319434539067356077880228456380014847276605992399207997510392499639548779190519176035569737833074457119980953741027487826736342249896632099988254648509669152213803830186549214949335671473165954375352485840258303559414510227157536530779530383361589220081421589405172947979661373340523388662587807745730511145084211120807937408465511941472752131421247727929690884093749049389188838794725068195734963297320598349006691247953469558413331075198620197524646537974872118091848648741815342462308749944955822113017110857230414902781991448493703208288671504148472435921152274227321624778752425526872828900698358722097158464010403239087793178018265312874498443428509527003007515044429989709827733885181576935275243128407509720861786801380887757291145021126249844382900273821341955325492345149748998737962389574714358135688011848021241996755457000463652348842544661695356936873915637794729989173420736552563840702906163844792679344112560815070517511280188301456017729663176780824994320707355013016162112974388581069992156461747558668301259305642935803304905257965508179621465375949385554698247405435781056187658768107311144858947680891093882479554086055581742930932639598481767229867658451784256909507551406584759611328403475047082657557204406794747740104623013415528315795636611353074236287980285422209479640876093438109279143771552003955731159790350089405323093840910430196739181225142644319920437526042441958927274122875275514204650426051046601006520075213478856160180958729564763887923657708979930767441430261344932649940615152214182322892142040671475083337899753080526963499127552672353331401083675140781578234437483695730998037227998904957881654282040541145046558716613889176402805384512830393310237754787915164380025463913171210342835908107852953376026438509538354463396586365090724736429105267049433857137189545025422559578661033072232244455351928035922918458253353832045861115812717914101517850658103400615731307173999579291888839092772586619430553003421344979451172694536402840125891347477793357371324788221203355347450030622267113406709097428851235571083370788995846729225429631765005115194251892324346012607092147472900563146049623668612446492467043292953155572100925557470326567744557862662665106849151824873781968837746155084443513208045871816215942219473576258234728799377341310186678599688826144673210900136552930724955509159918084093432784914214081108445867990038962836708899962805685041271607345958121744659536564046512143155005344886284177504611862258515281535029798219423998828430448185626900333848403064490271999652509729353410272177816120151663762716497860003905930446121544799212754375946383567011674323022581491461522406462809967134402204138841942488668174807961627815103675734295871484969303331427320790749771830196300225121238469112642793187358097556386702506293104162133919805256897044397231408634464311600730692287628999942184539707596683752694891402723134645808556114532240587939574536760545580654358265711358288768996435334778763311944954432862405293816244353414285204804134974536520055236342968819326559276650895201254740377582723568090668054103101700491403013714747388477483588479157073347779514300973354985782783570240586320914320438254059159480919130231753934015080291012294290726226495494799006071562251333141269383120065174921634704477894573540840428115746537361869940806572322679259228650287792831868146140726603340531926993969417846265320207755040145925167544140312495951320349270367304851893090361029927988520193007017823724901105036924377475704329327316602612470737452610470978167604450795184073116987356939670808959885666837875233443429633443261478723019154458905673744852554818946938063327205232827261347138017440237269475411105793374424835941794782384646863418627694561169410912232929664476673772268712650486737829631812927372009537964775334723542340956243959270717730674352030306609205658709701931896754261396203297924484926746803892042186934210218325336119424377902653014182061219672382058965826022239882951792885994481544895419483502265431499313102868121418714909759428484970261524493383804115310350838787953016543047095193948594079544081705663406710600500211690696041256157968845711168156900769696240307593526809899790663429024403373682413470137681920803740780008685426759113523646698883607394459850852352081208844473616448626520688873498884722041280250503480606619771553605391113344523727602015946867041188537569666443938053544569660183609805727940995469286715821332832655680877404959117629140415135267629790057481831877362745571444765319953154405520301466949976754454628576859548628760056377620171269012062227462623719576642456619916151833802161027387023392651602231318875501017063782462107113458996321458168496516969677948608405867338855813021297298686070690178035930233575646462923765366743787981316324023277078078026241855978852085170789391155655670384012058317667639864357482888907001198079008747703544432578390029529526685599249934375456120098508876155564627566582188738620169131696587620367017846029265410495751346768161634305056277857716416456711232665552325446058263153529091208462354988303642066583544450158634249245432839087967592583878931956956865204740182073402409460220266614069825858240191082631640782815704224969657736489406542681618298391936729348376423826049670241764445641681774449020272594067993950856447897985066181198606676395855486084585257520746043830137308840126699792125609604298513893918202712912975883986140488175445956523199418973468141147554667486289015295261860005227742235762590751642679546758187471072294237474231046016056281436263677608635718191320004623069603151508026811248272773962022893771763827168617577364125298456739949656466566905669813284536800016449650720304347725787806427575000330618057233678564170518573687184196967780239184803826140699397538022231302706964135748249060847701024887223551684359675079995402423738836704921720558463079601818780418977694609332007571914435129486295942756228807101128747055010731543506548996622343470022035883694865589075899383529846446340498723552923273519661262429396213219757039566145303543354163624293299861025119271779905933116766580383090498234526266762035795382234718947887070541939631795163232478880065379391748936975146734811534294977428159630052103376777792068555774777055878146886178947210511474095910446635887594242578295439213221292826636792115285268308700889878787109926082999763082314103456908430139943139478709444642200766036455679914841300245803963341804719614413899011062826187518303944749523489580097611304437243327251077454584998059471642207209046307889467578536920417622854563863521510921100083542438741522649127257655587553151180720208402404726906443409194783607493915497293612362546037844532503604305678834950030215006768171434913658364444956659688449971440183562401990723047750602965139739769063857860357297863591834019045454076233000051999862276552307773095351185936458234467507754758139605406433611465842906085975451039705005740539392419770224014341939055984149601207219619281963858900668629451652076836601798071904270918325107820324404131003875513387121866567735311139916339458576270116451502459215141607957562757177407857173980092403580788614630480838839641659397565596286971924187460003563005937077352093930530828768445146080241758775106857580317122491523231017769989078668409234508383473073370532575615808767123721179980191878136662804657185039892496407862633683743450359446629610593301453802880642882594119603691885190552427304303936652842651982929572308225337802362314332188903847458902822120653220257886573493221971347586962460299288085984824054811948037571270757633541120919871462485889377126159839458584603338163629901417209581187150407239851927125712893338444943124513105143542312520064695623836942585821639697614844763061032650484762358324265386035039271527948171820539085045974930507247894361688037795985806254529311776745947818959008734350324805366320033344149573121051043859244480822983626379269884530582339334479249497133837628566273859874676912236646394749041991044065714588370648525585994727816302894055937549844263498985406545333580686736531209311943634524861584885963651060513355117934584688027235020709673719365144139231964671304005914380756684111741641645466094829119457823290337858183324184481640182644990057490823289005626448085508954490612203964523497671779075509242974819373637741398359307622453957079124298674774427478860194842009708314268773612248068581645809117159158746953181897113415814449642899334990991262028054250257209231822689473410868603506459949920127721548010073488057979052756292662593273675750606942819810041941097218554385424668837731357084038530986916358147293790270334816983283804810090002105977118550838381919801444957110915130208880734347253411633224380807268808200533547370615007402169795492168912843142647779412198070725226395645860048699887456742854491188511288548618010215804634788855293968018022287770140053773656874448970397225803577148721038632773856061827700571941418020227760226497715365733549059760284807147578127115527695478384850590341129735516972551511407341035158889495843068678609347077901286712331841979743462044323907778231640559350438834425033038038662292222177985771281023014549842170698432603959053850164162554203001895310150929719929426969288727228554267069442044677605714723811369650208376996302187205228035935407935212168774418444882706341292748392983997246686387735634501048411342808669134941218291633536833835562046920540854752853627174278020106513663562655740211865052286916998137589748252819498214185375616011637336529765696927161950768833547615677509212668162769069749160217305054449859653969192872529151458494109054003183533423447091670952653464066433378991443142560763293901813766908494568140308098711283031013889899860504049917076614254476840909645371420603075339650718471781557679589500893217645014014909607766961967865582416145729574037710894896603532545955090744240709432639194366444833602678570973875810783890224704060479079913944494642706940291611318040701528913834372331011726197760457570976315834672509626543208361775498051519272566865098592271423405632563637168621284824577127433559365787113375728083289083395869050796276188263927217607047673851542350943064056294003231081995399860172162602417793726392647365795400399460251029774210988183179135689380183146683210118739291715744294690456289035058165029845866633720728489869461722954160139970549720275774443775485497896347351075341033897815278498699495241238687281821976103190033300938369136965191191930055295106879674019039438032744694732447167662544043624551723188460145233085422811187492500009978453358452639297600586449312343051153922416419793681696100248607646799887301166835565866914820871295978197116815598635692864392141570389697102267928688812550056033703642709649935502363273143897743961786755477464991261632623236386209659153150279975377196353682141742656982547878367110040351766700512161839944280975653541173028929392646886419630001241368388622717367102988072473989955542368525264817050344903254407964430918721242439963918761361378444350164838137715545602092845020743502452240258926552120973593902127002740744654845350893871094273611879793634268074808464373475986013400773865123290114805007999187090706757401073139131516506622846902725102277734228511177777366085847253042433791212180623752047074548554839831905739810236960176640952144298563678111315710172374272545508538420431834522512087684517321014966002301626120462784785415675103175459836486959573887450848332760654455196395875279603658167502295884804950270286957621381697353166514768714528558336241986467278952689118141002248621345161629759164752089016628066195952512209919577427617518766047034252049430953814521119695804399828873229409413754649298446915886812599344064324211765326504203468096651780273310521234297032728478830175926168983242311785349705121139399165653106176135974628734274926464406751766847459165227335789389952562469720158437160211095405235255163727332266427790403065193458547407387860874165008802665588649521962476996750073183547774329161503423740997118125682241195534355366957476417382222176090664872066881787856261017217518690619182048284277075110957010118741645818181961330727228635635505939986721008235690235703577760534378256269042428454250597447174220818111492012902249625043170547003589044141247858413659182710971766582385205071600518357754314875709712095166453385696759258146024757424916118751852884849740309238602703241009127034749305035697953127700957317193280209750952426833958143562811914240146916614029740861581760926313107423044787996841448488476118710518014971114217702258968019531024612658064541379805175375422176633431046535128180319704166864968613017379712679930292280532942358323314135829145175208968900774456783236443857680674852721640774301496895128446230400486817105779804021394214099529679668880692289375104955858473433399276624340065301371591253982072419097364087153234480064194917346562302813088066774532078894624630849677971269553590906442741646799447034408724716144920051948751900611653341871244762719994162763960787218381059661453428549385928897876448550783797103847431346317433851451423847536164681337217146510035402107028078082060622367776177925056335366867413669532565865756399994548509474550162676754450419775134833687562645502003744027720082297511808926511219191356334088442978626647685873383202174244266155419539837729607899863184662877267026859815534823719358344952715071333891960510797933672308457931824101343550509189664856694917420771122864652054194350557725677775677886129396736044123155619996673769021258633475877559855793915721755369401020908495011393553977753798013807051327951582601752179914324021728926919172737843414664310340032331326172226340892938662954087643676356212195927997023159431837704450136240036538769191209091992575415709603966642517551954371245606006089084443522238975492552297599401534323977305562957442477963140629973917291294126423947420955830502664709848083145326877581199269084412512966175205707669855995644950661444993254228538439215949457989238807113510150209617911770205032725851924116491818075083860824582100062569836873431300209786179646550649925613738378838356331047492367344297779619153747074357279151470699223997141018756767721426178178010909052530441890826990100560967915191016024242776369147888262259377656999903446075495667113504693008367441438764705544703252329238000303009120324922863828695753037872522453793685685240976394714511371129799128727064483587899094309297439920155228437342393201406995760915617820044409402489923195160299300740546693877261522193714974814247467518867048373193702943176331181957842297211127212963025805872369145494855037867358504578540344414173395816130571990978892329114762653187125444534260754999794739300202170393430873875635302546720254619430909171551976979454521642488917695618244482611766299639466210147236162329982329785180154651863391087765138699978865288314816423048824168201636704408885187908273246688786854915962109686066656406134088463199239244130814170128578125877685350530422954680156445268820059546264395189549469690666537778214622150522384908020952954613030488244939876571239293338323170442196047550652447111459094352131260231828043595582429263311672783360577575174748078427737458564179956876349143693793462080852802341760359657581511434131326345812111869199628421948543840915161630995214097465183822432081656062627216224104626210152576808928411243879224797292131252589905850762272193686984546468763623141980905305819200305548836793885573975743082684916083332617055056996413040240825142211689003245507675868702310270218407027733749692408550500688805857319981573794739677564639760963133998104657256006288787162544386057278501501087789149620837715012815266734991360229463106977041875668229611074575889968030763059408987618309104875613001773090668945798546508399515862236146684250950291482871450443216525640310095308879729681653456552278104567601452920930712337860178970466814130537601200390677318456570818577979843772463952625655871053887876824588142688301679562323472327507822295361611376949983220513248990382707925156447517584915312193024768469723543105014022077476017188117157654509206786207832081266750936011577547008326862578838881031324621814441859583900443847573618729617450755121042093816251816865791012441554742675705832720690660970928827034576919637744853429136187604785695966542821133314414997022655074418325596849305102072536503247307557804329623651217213581444018238211926709551711755124905720869954130362979743203045468545616988219772714993656051546691696287350011343002181032743385061171943261812330004557050226539270277459404821938689701058554464730309589072689358075900513010932692176201866065142197445646199228115177755112138389726086190636428528050330362809928878209593986290656029227851804602194298881151575651371794748300876333179956096668615094978957400146679411367488819348678876992131384368611531481211302323048962882963518800339464198758373853321363524787319804610523302872392282188257419744448586344416925874076582398543943966507448429755966039969802205282205942115050583461036385285632638115883057304351690721496748095894885196538011902496902466868323017699683208908723445905473045942141540123033882590217396196872671872985658670636976070187390574222297134767396967334732848827975650938637569716243558940524322156178148232453621549307136994806849218224612598163142058227793480134837452193247325288456819966028468586727284344449447806169515204134577671735102110457219119822104992070744378557363874996312362081347362000481057780937801250770520191991431870668333299537406959895446192577345553874763508954709170239618468515895202604484907537870653983109859371786756421660428430063077154905155026687261023771857044463786518428462724183607270172602912066695511524655610896811601771542220753688512298169540909159463376702049987478836857952431304392967929543484043573663310314780778267754796451422103176034896453378298661422594702612534676128102068870107437703087050188654770110333633292540321682889414113409486311326777528526071431216681185323075072533174390819395906620316366081388094727436610697751678043672845549256544926233234681924142993543002449270170947487504280752561986514900135624139317241145443137162911283321543213709516131458461743798784877364188169080659562038765018271501199360744426483953453478265955952636846107179685127516232583931735657202910315867872986046148275028202383836454083112023161430130395816986584201666338132660436977176049496810751824092460944515799359220242487984656391005559343489943264914986177384329572483094116694301337506354935172372703596189775135002705771319678667759653285410287276774406802048552371534121496279381184900462614875681090606197708981016187076646151860919975520104357154162171217714998507287418179316772265858322694208429249152193262526475872762920163114704620108838482125570232794177310035945499756401098532338669006361839520247817479110098553535993598791945091400254283631137275900533262096532981855054469496822986046876817861286037443270206120557474257095449723756958129883618031923907354170112360472003092806695776296263004665915047760065363085765575033808711447557329311832934694302508741696352754698454058257642761635317405677043352901559758930802941306923000002248165524718574586115802153541612270526187968105333961416289934571442702869553167158068924882743377837579795519512331432034715647407386892297276809703345733491043719670206022395621725147014932791097307840727070605927315774548785470202110040980404226716673454852606349213697233576525232062081418488297215605222283605127220590530104495533169750194050186972195801311466110557316278829859462770953850182106700295865849646102022400427912886314378148791622868189130216644070031534939493333905003119347795562999523395339676648386360171487726459732560138733679568298930888987831664813016609556985673991944300385795059863278315649904530425503683347416340883875368102528883524924714536041137528551705447193589139168586065517546798236635457367638652876867373735956371189558577541803781947866842985762969908421744955943313876207520782980686357489686846991183548434496174206563501412000142191106862866887145076811615761413668686200789262168601316369590958486032815529285715059391739618183057471406593209297581421942650892453173653883997023056317469746705625202588771669016607745057919242610844918366923924169324641431642349083507198560682489738459366376601422509398679843777527214406058958678498399529734927077190214397569412486601659105204446118792033000228876041395805117561521048553484429760679013310129265229301045704950482033546720170912423308045799227245979265307347786207514713183568901205056190000237877392504747424009519499217135272012815585610723750110494349156215008457546449888334664500245202721763696734365639219526708124296316974584220469976632318266824624429186514279911758799632472466798067816240910303640409333539652009795213591973865929839438679092203095718255516609659120875223569481942294358273903386030955763880821926971285096528202546819577853898706174727622024039530736601529326409070622031519086096584249670263250807779319160239734075339507409901893626691444039269904446113196856539544531281669015153927747030396356449757146289463144693241792963669351615575673993373732431993406478059330825627200017255862448173476311454465752815491725291799134885573907535624882539582192874536537814637151467633435182671381708684141340235483777729667015117468696603105175433576112734258632925032220143370614068862827799311208364874167135320339928910744946794361641222856621568275555625066225472639075400103121988893349628559400601701303842048631069063885177684491978768607087969343769611516130956205453067976931313346639019581559896633362045412369077023178130888854012778434404928199629814382651615058022028626344416493731890821846469778111266259033975128356689144788815816132537871000798683909310171940597774638093669136066066099184065332477140179101875982879232532795770671751457269544647952686252857141849788058825189731156337492118095453740269957869471317683194846998646429359545043265933211221752330066396684722824095092527587502632737082359783537089907996487217585334219298740205031222138727898700811132378576017057321583989524924254695157085702307413391462305683308969459790366297821857943437109070662106985494120663246699849168855464058226961676224118486685672135531906249373361624793685047866691213470734497261938027978404786988689294291216271187252000924513868646657989495494811057885347875084731472636011238399667562621671179796056644738033052166428669426749151334848600232228670001418322056948586405815466944756456166213710705889603923642309227804742953099396102751986099667178076872101517390726691675840692352578655969380762069871969223799835646728951981593445347426093838698152083924863096937763586735982776658870055146875486828108805847875170550145511320779710391691624032105553515143592195754033829327953027427343660789932335806498437995203005703930099441985632431188043336002760200559774843922746080597569884229057028556481945787767750735200836045212809178721552852118693211061766023001121836011970091272853651502864311702255906020345835477785272072594955125215305544137835719153960961739074790593046235431766160295563713073394102962560244983840780145208916298773824971986535675746803254664874711220499191679522881805616339369253676720321663706946324798303793271229561647548101177671401011188580301039107920424712711608142672325806164334416046909947290466196302852422993247802491762708636143769429654069058093925447004075998433424679973518116861353875210268363984358875985395672120533582041549691424325239921230192459735665656248933505561376176966330069516463411818850783250189780642192530072344543855288865979531261892162935220902661805041228871090787022381454135031550718485493065521944107433900593935414680100961124968852971090660480484564433828604859894735272884730698919298262684863985100465130816032073324459369687830894136639145864514622407486400845378165547572588476640045388600129081927514218836783922153027804043035541740025508398726288492631640720584927139213195831759398413302110001736229289811096391915444057454098822337954015084719503394589373431178667057220077102030285535950531947028637975077750671713143623530539041881071214924430056995634384986892896115204031437557030783241167332853695778005179231926875186085271628989360581329625875137308862512514826921877472090735423439533542588662053072842738259255883292636055099440703077479162553562562311485851251332211209410149041927844172534746371119281650413337129172408257697847377872214888241151174826801103405103759283652763406196434429147863395372550851954408650215333366064642813054491195435006612096924066318132470704555105882214327662670811573367028793033897255740158160215386860891317329417037183598220374018204836159578954754128935382196678604550809209557661009571935259668701905958859492177880460418919702372855107044240081610118236325677286324167574594600990556359181392532528991840176000760052105681219640936393673931664997292740115599551870245221548923155629253263202188474395585072274044529919817282597247303971705528932592864057413254288532133747073423310579178865331096326217540996862390662734636482894614164001663322363558366818629327554046330254329457483869817837716919989511575502367759961649664599214435939164559295307482973774461790202690472667996340215942115141506760959571256297872039854535574792037696696499229206244604765569994846840456606930216404617879621976612198635401536336498020456438108833316989446911047063329317216485372806396713402359221646137025380014561847103563060796173769545630084051415756896192328182541419103824693771252792986069797892545119361058463856344931785467333910601368119261354846956981189612086178858644229694832465277267350315033830878280169415404696673655679434883838820737016138013238036235585392702593911988652757513189743711873742770053014646694371158480255415844767685425608866870549529556170613798118437462646506210684514852937709367476043218205833707368272798702987071831308943269538215019396206325666007539958660466810186647336528295077837963645974578263919702260020384392319358552608463428022552664849340903479537964345159235012154802534210757068643253033167856129880418082124762344645976607147954991963641336042212087415587931916642093690219018770807528829759745057811478396154109270356563243870404568776715685284252013170110284329921441906427729382963405557628620584717336432729972240491628307634705888186228337369942730017049669198216200696317773181764298203024109005141246391763129879943660610103664899806294849137223491904590373023142540805247316420243062275189943226598121266158483559436904484144904410481707912208700881123382663982236122252010246434702165230641520305844222879435866300846360867863014655675309050521390207812237109256502758182567877320175365935004455362253622249249450877309204198240045871747745727533801570440534166329403471562602359928717387108825426593548384629796071117196175902672787335765449294334199001707097413107089421588121892363549065528577969250377890143769184763999248833480279238402859965066790954888511698507441580741082503320061840937268246844698906308153165947278476909392374421030657960258300498905703329938973543768083383119688854469166199831259998469969621123951901882207451984573315100913715737486652312659757842748473892538689374820735435542560120871643276464240760269527473101746097645767557205490413701282548551463213500942614253477236527354872775378665931158834441488828628619227150625628932170316746234981841614684689032868877581105987178690278222170679008561975910953489417522683166886655152430949362476794558183627736904292021896534088097895116783482577634167780380989242909125660233176179864440553088411919628288322497426559538462491636664995011825299167273133665659890269780854287020866796757561855910736401195305837007311714881130486260346161125288256963046250112745087809940606561992656732000420361156868826534240938391693119573260749193691848060241849632265967958810111816259511959473629714665460057800796237197679777484779068557061384091512019074460183668169034265693882604463648069688420800809917828505664263245226845327454868218528477770386083123155182161960970100248761108937399250467999920575086255039517753637791299629131433192222649123079301606346664677013895146991012484266146854264343890465820243727790230442543790523664346092944184317308218189161874218690978643922302172026151667945410013359221637248926016916351323823784273214177908297414147687125494959202805691333648485531088642143296037067845734121091811847496347818001956636458785663969392903501103688254812926223064411405811075476424296347298634001448835147066480378443971111155095723683480855081201009842092409630976138138477878993822378541475090479225399488223833908150681228217372670796293599469348589578669358523758430585091308761042946247581386950235817087303799340715908830946536267145719874020001075356936605592866228834159536635116022974026256517221730329836757302930344830567960850379055997076641904983274893614477699399823588846660750655776526945587485633653857904591548480101195574494377031546754009233186669905106346889028295388640087747212508925716099723019368614919857501854800598005873560848573680645252323467827233203769932218092995133207280721824164871620686355650857405513958356646790048481120863476290401533685099053404653970169835543634938320153311805569792403494482857541363141095807761106077802618079443067001020060271247261798654472591562531532577608940320007280969818430920375118155999671707329472091636919565113047713358847199000085324466991081634959099312332274439490945807912311452703795532275347378368055826826225348578029064797273108642217750724196128602896546480678347696580401567065839271046772943943290340533374848629283256600638069533646120261193314985619298215649638761255126994515295993108724907504577613898070388449087808055161306586773250598256049074595263413920829564190769140225000343768676693588112336161300774916078063614680047627901801176792793464155153425714799796023450725759377992661120255030706017722006051996750313584365044785144959260743801743772115047534500431560066717851602292835895764827013526170434819206086386127858612553551653232804710158243768077064343838328027989735455147005887315479341498186434497552823556418652208161102506563253055582668868476805882155099875395071575453178079525558030955352797925192338718752266419309956883080372035174295411493250351385400641534068942861688524260879558564079655432853529560560944999251144781124935992081778053469307165307589708825619750569577858847339684471916934094481641008862773990050645657805121255758249303752267003451056904880524578174176633710770977406844682549871688898007591823495544494645556008141220563453444708236542152602106372546784506168944624147937478763691457001635201849414695603632088895303395235362803024525705751211942585901820322235490538220982497026628698619253847119890344939885316500114902813690471108208989541019719118467518901653066879892687352411833926861159395777644594906678031714067834379535952857054297479316297375762117373215062555782277832509694155386132355322442890694230647786332968691749391029410951667180830377335297921541769680172321804207643929524103057259037000898839092916814697386993360505298292115889491541117325164260227623859230499872674384152736300809872782728078076228256020270254637385448961286936915029145542958777065581723227461158804682319000695514621756266022138774389478945256639500573398866765533737727309402002050577607593466645394745058346306226257173293060236548956593266891022556673243913523767395907942204354120180512581980382879187436399832370411957407877162695211530772765245761336741868800184119666376383627024804519709014258580302912108861746544154487630572763723516569464318052317270703689674679352647393053376902733191574018207421898676172889923363082024390973567384987107733065135315515421110314730743935059596510282728592408373664217751447060173273373465733212378284225659828061887181846976425486584142384830042730227093692954456454604859953398116371912193267266780599582674157722314209855252563769744782834067557845933241743427566045365524512490876747653958230709958103346864366997822932687713122655777466673670763676733806792700384302819918379094607300664630027770215756189594891122806108357838857950964932589605079105774666563131242923276699678035371720190825578147766189255690933395114702141333299780866282977391540387835838539811385672827709500622086166540216414448911408791037789245221779634056276602416743344104582757293581033290730276825596865499146925880724164130787289032907058691280854922918332924625382400871653541008021710102858094205346888102648060093507578725682531178896587447708587244121522994170317052278457690617033349568723871451201122731229346238904319088422744134822591447683139484024344096767211659056934736217084095115964118875277906096256302579944849704808019821453691670379425800391357691005473747289375495215178118879472997804391729421152444333695081012834280925696155707373439866434093997131448440000398632972425008541779373489220802558130354956959841496309266219334264523240748831739018358138673215726240959362859670372685128966172379128790551914960525269317309107544853309675666937439709831968318899825351893269127490714935825410938163977150199062254749255801904838661194982361378000085753375560208613344780027047133947873588506958242614110740317877565471467816881614664725771581577696807647937253752259609195379597765645512239576208506377579731611688216444308170352080602952529381028485381668957439308527068534008252539389324450563454993634904471959580034446541696003532262021857092267961790443478495639209320206416370384285007701803389098669965204180168383694833177590328398071176993859012996995810049797010611080888164611442914972477692212779485399880321717648520435304659698387356291565761761835273512328931085320250069898638909056928033024273829910856661899584650931484377058459313917731081200238799525138789814885286909289460541836168929945033182597130773025919982969977253795801253395240272372987262040642762482652609381084893320556182745281261362292603279642999910620952907092716959440220585613319268256238898581645349383748570763794535511204391795156873058588601389869608044047110587257919827524434934285943054524188172490316123700018819581440481228561057022447257660329129090218953919112982506037336826609571318500367882115857733547641527088880296503540594694592177769264440196990081952125968840713901810118620516368421093693798321111973833847974641773599366629589485329073088907835830210529803543607298366250793743585391586132159042708573335033669222674208820194724784446244929955111025910135913511661378735909735467452992011239333169607027860248469573925713917624741157466018292270919594891879152084135502373047916703356365913220726253111198714365496838827251204220926956688238492303066693165507976325506867592718295322947197493212163811100204190256738771740303846430005535108078121350349986354828658752658395631874070338993467832705757885760461411582211888130818989060517630305738022007325578238704181914456612303898817297493552128362782261367911326973497452127392004519081305453115978974566728493060294132376509156163094438362723818778959156974580660703647056329733816515293865740486557911761670565776359745375125802657827735293964180142179868747296193717004893209582098179441446779584317236609627034338893943052147223080289303635284721322553842023698504751305863323451014487885221781708234968438837892633631189686598473456796678248059407001587709166277848565024181638180604205588533424613817334691939642716737626390385783207532892763577608575459785711377522363945711403226713897997564439857428581468380638031158145159548621492925139969359152895039665493322130113766695601691124599215176097748368911769987574113350756586480134921896659934013847976883078305023008208928713938652317512085487268952220696420558628508209743086658531921993664791186630699472093931599399155989385852019262573738900157835408638331105338795665484557325877321648754863118261211660118773527670546739943994483821699950090073782603663875788136479112093259474025193539859898970333168255598470067695796702435176679209986813275486517398711876051762555426216942950982405151623498410907682587316868077994153710981551758665849852125681689844929444577872801107855342613250841602317497854057335864665681253632759509745151450729131450852216018542736746902516275703175940341983847087731195884056282445057550481495391475044292312981601521060996855680126449588895207374372832326932215690354439882253692634191152321354552201168589708391242947765364671035912724397923875458839361898122627413504720988370058053089045605307678907001218521001203157578452131702478029151752702945918642334437537468723170044788756703413016923068340639764119054015633826774606686070855629877849041047544605062376271798026611076538474205957675192860117819454188149310614891349491323889310132345839898831840318721522735449971295281417958298124517547430932859119751428693374000927261919912065361958969850213932568768100665983112270683064385020924432352786892929868632615512698282959790792265695661364734071150869111227591832903353797206728289885311833559774415894920181262610607715756972445635258886983720294883946343912825775661545777963904258838616830601704733115852234175162812787624914978885729168928285602649065229763599157149084857480991631234334849535895594854470511557188758222837834114779041590814984138792380111631485692031785685350165906923082200447996676205075421724505711833990332513550332802014974537614963828565021764957192629909574217384222385921846903457743596599416656776507200064814371147339790638476956077390520590974088480863668687602458607996655174826982050112663044072414396836372295270236026615223061616426679858905380546610457524399852903165512770515143453240203376134369602367494810695291078724060184703474382598022312749720949243899404999440277537391571073233613849649824577933599697620219614859146622409096849726809963670675802755707125289860045048435559134975364533626308471411359375215833805457797472899203618105574663388186326404069852680863593432725474523528574813728038070841535697578201500644331137286940823181912857028347634557405716461320396444693092701629108743933274592501651455228150553618327334742297006021059036724226475798346164668056641628973812087024469424299565897705093927087940419159117522137595692725129625467134026491904064862670711692116104543026387088678420596433642666535935739537806775001215433950557907354925452757023314027471324712250655552255653401707186292787435857370973217195101010531957849928717534808545261465873025529343459236564994415762043918503814258874812165230387443940315127791801012012502639470336153883642108455425320873130671490203878993668347979455885136719870969592746835698371496678556697860592138440270820211068314379846364068102456831268053665712092077370621258941964267113592055254629034831809519227991511962359752172864416517653693764742491049455867810493955187813773453277596965936175550139442141289086236789831962061161723426304954584644658605300919535845613307263160180574191280028221012440303023788620329094743234732376471373993800667802223207051699031095989708895738748750062203042630622691905866525173470319206936840731259780333860143566764917434068076853233581308694194557718936002466897293083460982341466011426773472573211189522688700371801603654548768335324585995826483559340717151033447585939341938254746035474567881849606813680479055713854410078374545779980091927938378785794952442138692695068530885441830728629524661122075071452589642409728334589364050535339575632726597504509626596618799558869359486293547303617599136333637794136043070423914737181594908625951348363331238198616831672562736768262401201949846129913412824074479365213437933449387242981251441714216389575281693467841428608498182919508450104218693267377540378546245044062334259476694062102517176117254235987907054912045634716616378152529861317481226708702729450109725634066783055940878349180398770740514042592814558042519867097640578137053028138404857710547505879098800067278193607317943839909050441112888197747777092073272296512884259280103051387011478091661046456495624281401728998744628450572511015722972325750300344791812420705940736695762581775565789636486708054592936946026217353735537388778357048368763966424992779614628732976445914198776694480760290082534350277107400068017311157796379090470548767853087229153410096357069013713885882039436689016949497745626721060383816866062742079619357610850801575566742772044817954056463306001420888744455586382280288126170783306563888473137003116518980170259721377971435795582131269395820117056920132244345845180617902069444974239445543795625806773251702542870688207985286991903929061451352592812046907590800484851921628166304311174908094988676122615777001368135846275683249997080986558538292139240687742253711335287040814366546354449977697881003697406001862499318763779311233472234558785990012372139128990398151270406762823090718286999166358004686801875987577641227265062739715654061730500981692052480069022727558954515744002935702433180473721155425635017636093645465254237734740457964285655449912113279810639437767915597671599432307941243567347892020975906459786231687732117158738657068346577909476570811570145235048983030764180904821817425352973337406254119187707487738638491554502276234824821018793631414312576406501383730803195753685416576991285278089782316663031309920588525005068573579995281402301202627023731433346257651166917860124441692074808206874943861496565513422377609426776315551113345063650324841722439495934270011199875201499281865129566623169230259256237773345384754544254380038340693254777060083585060898043667514890620447794393383995794794936014150667326760427386863303017642038009832060580645864580934303343123633498639938226360609033476852451714562099908782514263930506986037695836691520842229216181048900420580740053409556876497684848355872716868297801367138381676429929989723021980509041205162646255568804068483695668615544694925366509617037256990750759907349799567091431800038810834835043597858700709042200759646660626218198023693096899653751004727807299339126306058406531504043507483013047358088172798901362474414683524524194615838564882606475096128905689546322242350116156377872933698011390698701730438545244595027808722832395785300987056522716784016088449092397262088867817443077828496538904804465172163697047461595942029725434107949014679421672599939716102877963536392065007172109169441203241682080615855216489308703596335652692931279446681341995095008206312609756370441910015067054252195071767457850598831936281291178583985977397796347076160320649647769450980148039516097074648426244051496513382192606290761152549478379764395051135914896684271986934213693719180315846416747290977612768057728210766202523475300128501153836242123057738393944844070530595835025733726140570575604349212301005983140230799925331713031910445285937971204739472228578725587072738526504190921377719699000882069858864063538844077166888155226810787625573208828396908530620862474461729018440443025403482592689242174244041265293492288206489770506562885106442926456720314807263940874624036735233749355394608088852765383555024981821898231539585878708713441792975533573421019832167232061664852563914802182822136922794086261878868110795260875289304715757699683488320151731176100925828171687851455203046953311612991205291429231805551178508183308265810731985226563740186804616431063211914012235717013046213933973127008382526260313357050239709574679511669375450017291574871654316668081980111138913132682265988275352059947719522822029222653217711121485078939819995848938005566872232986656431910200809839186907985585579359138524677623534750893356233105321755758206528858678099845106874734646219956179926075435972495260123169576167920239971190757831540939552003568012132058968324428857719681815486036822861072413306392732860649319282583917697598092302185138109774397974601627045647731035838751368024981501268909480171393025117564045139667036509251948736552732033854747833511568760720067516138766398286898700983577831958906488731086947013264516103012424733030721977564238931860485969845040960204215713592924262134077779396637062853855244694437168769402273954726865408167223451107652067570320329867538071391142059222445150987587457089437541211710026515896798971118063328492858057593504008354217394032739502684208581473552230520796230261261954457952586502572276801836536467461525057304545945980253782706604852311038790206616684644288998526421762338449214771226435517941770876586667866910754688733123268926280528434887075407866314616488371201610994791230880079078536779781514983055275518925388515138601602230614157990918628655324310397257746326545100266570755631087905499044285700551814455480539304320440067065727068021689019494627776389657154388639023412250737479759567587315855759351492821798223669305222804208059388741507485515537051108259355206166101284892359919847373026619845684767082159468896922409694643899107473243691765115897207616694337093387076196559170199269598824121405203810740440769103122812012775601118062534349832722861398672962972750594850509768670840080509500033041922300758185434215068392369164109388937849543263250622243898401945103327273402972820738843796643340021632209175508052929709705412898255950118089734891715758513408201593480028529640174672044635215049772147179248005051256491142722560363633220386210084628501013584778540900779058184101527844003194736878950907172388165735415956033875086137970353342748415108172176384920551864231198257479594417199464515461365548975256634532084111225193485652715204785491505462405890413580946307626511988771477668134892318190348682664155661565776195515138192392599756733154015325003684784082158730930990256902915240761423586225081506634050192929433062363378591727673210565590639521195169218006785448841979530567944515298825625746503087470035906966063715436302968755589755164777834037588930644465704888197756717240378962142769212525164558957846573047084129802943525064096574125572125626957370215009603155565984944089676077300694489007661502782177082643091933231890545060521630069975983202200126878236071511682561142520344972996424207713986236099634034603440066407143660362614904850251636960550836677662728189149169479992127424646725532863452487605242568800631049973274887277177951125323797387665974370893222703322651694291119705808413334428066673742652906819219360577622009946871477721613022406102471608166038833192239393605024371026521324185354698518529793271912008434340331824037854982261651719827467131705180334917525922953510551087349983451642024565156093352850745759904244331663965060379497569518562894472580843937193375256778809533245465740911114451765348680577028186366975471026765098269529042853327682803595155541361833582052484633621191610445536478770926192515042486199477278025069292091401326168254951222840611243765626450929609379434989096150018950736050913613418108316961185456251060566795478479467719054891740571809651698828658687317122484740828723914294993488051997877740258546964243051447776151186615884259176288301987126917861343678852468076371597956646123392249018503208335974145033711220714718172225842377912529644941641190478070551520383483798715894169071937901495386930720481143024107821297086631535265643555584229593591141542467254684239523663650506888012942922365852570765307909926526498036101027781223375296708458704929724043988336232666394447922915863839285368622592679791995449922732178334683658464964596086704213007989490449413829766889738296008258773341516689254182981884730771431255077228247732665123693162442691771112272045219632424257442269534498746683564375560397860533144663299928820215731178607302120711063663380319711308378286085493098935163721173053111330095190002928280814340127331175402696279870886514893838863543661831176523515768861408328732917526850606829159401305280316244687478967589639530313248861493277272283628790673628412255316954370975790210361878937824051963603620685911282038218530442707884690725214519003920556195935578930807148453586793962754608430661155089909952775494062964625092635534403181828830973739029675481062722810001175077774145117391544824158623347004952621252038786378745865178644498962028465843976735549931149670140500884783673554304663968369735103041633886935723232241606836051929051094877224872770917017805438530245298636165640030599129657606774403740932153162943537066809366752422024723064481413668602593005992123210455155822879598832250199030060215225358870687583236902177480897265899544865739343877605840942536369438429365121173639006805526793961835582077972388392503978193418457228871486511573208109964772315254343674784113962829172678757112788966976742282524208517114990287091590537028098982822989673103436281611577536488821528365259414283116652581058635655552877295187837758615194718290106287272087440063548481553925323738650496950312538553452147693342445590064671868203370092492583554297656886748961995104575230659503675548809657211615255182190749917979509127707952349694562047564469048270382591695788198225019204092248507387506336667991701861191393065536307193334569052157546213445272107836776000602684934863154898864323783403133784246018693039907611919663417292600232471214396499696121506711428499472637152968698791626315389448152929615996082657015875026445128932321981374623928829737933583340611348091262967359543049510449839909405642140813522541486516896297082371020858163551405533302347314707196507928672405975431345774303733963458129374700752439286380677585379821068531205537546244034892548135524118340709308256171856281469380464650119846379893852214697563347686405769104856503693969307903565854528539653228484335133342029133012065991489928693921305884045497392125633381277486205129527661680288275065428133695102771903771915480759451939604365776638117749469483115367564021052380025544673158095041899345292530334302704486747045545974119408266511845701837567459712666302159126693162914297400110988059450402832737561213329231405437435579832003456216824527539574960030447595401361676900514963978805290410113430074032720001210304836483557521811459612844039917820253545326484882796519777179956767147474624176946129952317288267124526685273143552138565313736512924264212929132546788623455747052696098406325793871966344479755868745171257715070756425293094354182525447408269727988680165690318576218187043832937813489530531554559348203751855162716728448438310242257698939500982241617161937550719344910389966381701091901575922007838216115047461024905384345954515773851857836427058139192963374932727817779361359806627247338764541968804210663201260774796837265614140237091432276479970633585957060697402855571948404767354449810192710170425927095782574718983617572241615277823128047457587131094083106263023670315689186852652680280556640191558922524275175300945462067805665550108160171286232034171629907361929461039577041079705813924958036441079460056586831183537988291996478169611410507322317263299222683038425576086935045064640363432465836359728903261698186287054813034275377830395198283842721517117107220244119099531922105103685871493614995713480018631516954218158668687330532172691860232870329101404287540652714078999337721935440051523348730427631700629625584445406460365302539005264219228591595006907978704143024060754551558819374509598119942347726563217796633644344052768470794383908535636130234886432651819722901543039930446717852608445256758601398528912334422167791516031199454731726737414471677853678960976290084261697585173785344546394320599341358915856859154307656993701897454337938384997560244593074835491025806847475520644622947120960259835611363193660192463046142334158566793018045422405158312796281431971213364276470654325815787059649577878309692875027052909143613776023304845393572859706504567515598062626501095077160251037002656315111728766010946264456614759303747969433489305877714783641131143318747078919706457705530224732434442577781475163959797237702823200406363650149352420841409308160945858362866427833978395184332033064158049953781561156645801417402050682217147438513090591939222264549338925042394823998283507630396380109277776264477536146614599746604393858550821823108336325155733987790102029793942512830912355715012508249502118356919153431169130602050659802053665056801579986702479165660859581556408827423199514251136306107922904205878240300737052503320176397599382281883572607392275577190250524180603385470290523618902721006988358771261550498809806636956689849689254363336600363242627765526946779738812129493556488634222755715677456337755781293362821591931323041124732654112228332822240143488396207589460889975389574605515658004680046686856795279575986974661297786070459898617920843006906272656466337625915207459127027543431664139220757431945315630312522453281105962260008031619304902511339359992520855470012990716675547407556950398137925752463639164528704082836628855737891376054106467285801000972141089874050298747174644428466218410486533967203453039519268302972783223350816418290789663863151784979918295564206697498749445444427488645463128494471165430229982546558805548646231977647138408514216789915414009197451288783633940131897083202962812319970116237296714231587508471658251295014543422136250679307010800547928809666196298924966627855868251476167158668789954866611835166463752631931425438580628202849273876791353016274447317956470732866111827064035321276526650273050889989831070180648808698330715297812087925694392151381515456508868807809732137264980351288651590909918340809035237164723762931229851662350154184087383329846512408036423034383670211352905397679236346723733096134226934578040758929657180893786017365876843680244719772906095547697937895589757762598629800031856933618716044826892215954782940047012278157748782210121123140802075349117684644257448968560205520058325224118380695319752239559323489225734032702363776667749913512376260459813072953977366454482160368690481666625229469889940333582827770396212632402050444807338482427890317540333294066042404973930446940479241814768158846769540242054167163112966376162056158681860848721664538194200279579761737086444347980825107601898569026298195047834623152265349681305695972213665049138494102215793579826655307615406640496096769486539102139424523421482302228602092315566588918850786249140745433081316297237047341682132372551373539506406825536223732743099787199200321166975404096956053841227879291300820109962222046002560085211525145453812932573971237174448496518455626315763597396718717434184631741871610023845173534294620649314916348050470337842647611690132815718801870325099983745415625774956760515660266489582834506394016354763919059037493488151850616871774449903499958364832878126074494813383334580243316874127463465108510985661450052200467343692064283742556333946694502207185558849940885416580891407747857772640110292791652088150970140904785384431491567722310490405045454466461322543139295228875364533726386819833865061670472792532620366407616342484500084911621392392010154011217683304643537419807858180367640060534686335641432532973292528539336721194942208805714962859348482215969505363294281177822880931240118511342034571692688381252540150372510639385641558262411722452559392544925355022377106239256090718002893896217298871169268724120655767028784347763956959659199190007601155115416588542196753138016207895815192138502367646721770149034007713032560470719372328649475121137587115351792608728219673216945049040444584037201674905871666370219509486599286342632080208333583007463941711608509295415864457033589991058695157713092572231941393715279176189681460953450749377109893138363230080640541799337755964195435125045584574750891149923818901996819487897626723309531415275455469000259041083903891441391826388815921142252239400424011833592529636166935679966147230478448728664637047265682191830969838609102091415664790185778822333090270318570029676816221049291184786546343736851910951660897866715860190407869084618123024894608055492580670432420932829891792919488710773098450058600566776563656974069119992650481306775940333165560594661737472283029636339084024814433584257992158256142231236623331457271402326877305160759642105851174384739275847867085999144165022229943274739738256058342145799557281508286235512751658283261116575586180011269199062432750143471522878574310403213994386301430888887732081629162456224147169078033240545987862354954456095421076742061250245536834158291598259281689411538109050717749831373159032880146826116157190806408103588621824480259540231517180028113175194182798169245568204361962059106946532950153408054281453535152705580586266929249603638743881153631391930809530064571698430855815716551761161091820852159144733003597713792305275896224504332487390130074105486529149577881159214316357453973830419947109866431813141107829238863373041470214635360916771857997807728629140123618504439096997572084906349631434852464746625495319729300078964994002013330751055891286391528203975052996436305862087183662982547144457396954499172329401077458733154664046087103183395448114688776242943581548234484616522595188443405768670710608118868592734893605537856322719780083581600526794854866926218475690481867699383717230620344804063491441301277537521476989751367980668328094689130645203512270838432458493719618035852736333213960143453582090801692892916906724762739738157762389560302342576664231240734433373372507214965830540617187544128724467545511146683573145198668757513475067689059812483046092637846535284544988341804542259446929665418002235979469018452628803623399273767961695483302289273503849723827600200137346505574491137534612907792015870348957694590767613159305370523001801230539875086329066744317867607995397811437780900536605833434853675643892303038141088503091230831743476790186280385786262088660003711473864960583209191311764749335527386940619167385197609732865591105238863385701553654542337452840134166272035960958993701101338945992879779312902469108607135215346383347125691358220705326295822859173582744295896992283461363952221962964591599671195915071378773516831804701695468760949862529853372335171736134671900818578689567951445660963797511124533427214939279102153477523925299961180829908654162281989293536418051288561439301436544291376670830886273470686124606782838469696681951685890099378542829113905752885053514563205245369701702501869778464343660456844830151631186115516911011429007382269601581934778822323114512200260158966949858278778448226282240300219860954205617149254876727085313892598738510372593728126207334158795738327829725084921682895879902628336382037778365602300021697857644639782241902164912454923852689741423798569662811241208195737428966174987181973004210205204749996969516489291736104276243075281373049172630232162598701510708508939297004828325034245032966248984056563210813984272837536893350100468980373375177871350060858450710803542475155397852081774599396723716450759508945226690722511256879994696616534642875895891258351885745185838291949200605160698235653135029804147123746801289915272453258338994141396511933523207199906048662434249419071075782605400341515273662699955083071713759378551794025909405043537340586973370437453388120321371245823384918183051840713973357343345781190242024765779551451714384287160682768297986224481818082682186782644325995091529531673224130701602663439876633103749395737414221735149909687832043384228016183096337489470618066546571626501968928534044983038193200778659699698327767839448694838331042660477317881823983419475378743823753454160340248581450119220632574237026127817735749090227783299167158986546744288877111979836891441582552083669366352131105821720379319607046786085542519594648327685427536464565687180612862910951527286036884248849390787851222054629964277053776578075173421109312073989031165546514660195398036096122594667535971216577997618250417613047318359678623212362690649310930675738862823295038554060666831521037219172070918390984321392442802345168147892918913957174522177903755925916972891105736989604252513556031519171828592889461556673110099429978217085227350936140966365613651015704198640535298061833342028352106600217676908049714435965346502183573604591957224538395540733484240312470102044068394785841092637488492110258111657420519709196518379952392571004552649926815598721776924964241946973076070628687115306356999818634850927063853236144611532904681532213314590996052287033635581965329852889997652512915770867273498075378671509776475058389836649477907718905511959445700744690881121895105816635236987893406678022889356803337623532014634883448681588558910004381484494640241700280500111110602945514708806696598454537137967123239203951821199566098569826260520025405326097212458856522514448826076978628255609942100169016957550240077482744474562256510159224650732646753797033949255970783839591239110966785629492008480778219882037038870771675528201918684474689826093101062066598513847181671982866012684318534296504358475852605984038835656629976061110951463422111064078044226633985171650153621346663806372514632037997226002173806540135889661467138682867579678651444050203911119557294047939134812944167929155714196075031212095765952779979357166724091699020000390958941931806046952076459207876660438504377621986430829694052950619041535190345775422886751714914605293849850969806908585220451536447824305827251206486319134973110849253612636624124109203168278545063540251988535772504029545823901654484606860125534582584645529002211801629139835991433895331980553013583338672162641466896923347163756699028770495772170262408518661803797144586458114907422920266746617934287473824148643470090985030940793976376782455826119560760676624917927357501144644750277396096450397001505530170224082848408615801129539453856182603602536546124320444904847606091689030654883987764098870436061460944760562329684789415537963582877626560139531177959141984834276409208495024541213099897235789380810097720916752711049224626034952927239452492232372428229713299761945150998933545198377955499120147959245014084190039319206930015304998387313670443161628480874134561142299499592213712639685922506319700444142090631108062395733189311105314559282999143766218600829892386084729433925612574965573118485998562733112887212749875338242803283502256293861869200655182831435679916397981984317260187295674527293298522178133749514448913393408780514325797289667577353988696202741301874453228180751135902197628214500364884467970679037106389362409305624066713845421056870204876318132444398974990263063105725949447551724565053943145803053408218131610976256225989744061124206892774506084348521164346052023133288582457223272514885178539485383516004464183634615834762557417308508613567698251124534412472369329679924866337809405941566292073650026251847922800166508224383319701031833845108569770766328740379666789691830911670435731032342715924131205397567707412656365280941764891730517526548065925176117551871234034395659567445521689895912978402776765956670787136050422517061110033794907759185969371194560980498160857716353330256393863403583277871129092349549369054205704553006306645987719820607755322328956386726071825773482270067604746534253358224099362667750441441062667008435926097478021470705939966427169541660713080747302410371811761676734627002561393444385492015985385238199393108579459427227429262122264060275712137609992088328749977924602952881755003757998984612478538336550003261517945786854614098388519420745849408460819720073384470726404821728690247136775837634819964523661676319241681605235556571517362052004637854235743019927616033562926268904562314732130252821977840781842148821290515224534002556593600956296664457124761523287924695217991280663790275287787278665680581945461240497965748642204616004449288819889832622033044158852491871316979759620535506416389466158217274188021939134949646469386263915839520298486461377429006929747856575354144397801876884733920083770324363072945289436183195276928128998985911829726620710395974220386458376059188760809841733405924578119535693212684158692148644718938243898028587028304653199497700169673689470143999284967132118859724495101449256376532067133903986811079152315121365662036176339429039316962296422721315323784199765492286100228419655152539094758104160220167121250798265808063364902690411789583818327289523024484662065801741648326278626199396982099803904579746661273457625954536170952818584239642758836677582403094837985515152887940089213445191703546786558054299309762710942619942801801136325485740154146085352529721227399240019442778145508817420847390966774966480533272546455708886168266214297876498600136999789924962078922511971742116696277369793095743984087561774652024497317180564442731743330116702963912099906781713283704284849263043046102597006773401648101266622184456802707130871171208290574951935328794152303420621687392080242895580924308866040320310937604778054994982188721556505424340223687985689335010576873088481992904922368388854348811579199871866299748618289151358176325592180029265847146843914809955251070038674977597517742203679482329074954808813803278116521928007371524168650312933323488869740811381230678786447815692685176394278258083028361831504233188532006793820426374502061940056745501029363076844033393950819009206447067318750873475038271830205331452598884267531994961262031018340251515705765575268314814934250549266873109778356470640428470330450348082104241193670736188108934036330367937803171531737281233898176434221915180511327974329703945509667512631191388147407309765323544750292038439736062820056473915786243847737415284956503665977541721876168283974808515238237633434004194902314603890282933969976812553442887586266071539394433597189313645505609844410727221973592169585204267507185336142123693136958313640311512223792553919553254948304720857017066712174213403980270921652846395264560045104100191481554052309232433555887480485626568397035850840233563810068342796126229894530673158237803347544280939968345168640713236767949280726105665122842377050904159285327780413481359449745139330231736142363619402558847288870562859372973388396928479953605112296362312508928573518797035502771983768910830701375024917377268960343209602124522572870769651199980716963223751874845992144432927370003596856536457472897180995924760637863295610732515835823535758040980228659347445976609667993479108653477092114375424601062102240689109602586529419464212357499167670353498555497756597569319230749784991393726771634733698336406389941315396929550650216957533353620599813499857412831025141474109057448849145686142712708230986625944130541499673998028209214132218069249582577996757112129628192620808222852926432274733949851478101777694642137396978060624141815294439380231805387379910280428941496349697002453298036685333256717389862272008202743806035997712193199013235407442388134040003447656295882344730311651691988398088147705262985860437992694619886880875856322777776660950640069522511553781982937476652750395313383925043944246728583511952305107692372919864938590101869877558451395171983806819531212760889926931188032492226538077136101428820182691277691747005968887695204678269643490887580985516670550033713281114950729182541946324865527615350891734128706444990353485138233393549264335037589250504051268751330121397702955712890599520319215276899459588252647714420584654424348284652916572039398615896835710220637782745435403564980609779519655554625309508095443710256080066786696660289980007239587169714282598780903640075483481659925282866614088564848458369818209044069401968922736357349934211809069851736524442152040433306240290760393893958520356606256249955138711813486767088590754845738258827009383916939247167765503508869886389201399384757254982839905673566067263878942113532048337884085621023761040537708059392276069791903943418689360138269917484263559753332430101991618587447533699328680180670354926295014734157407116927082389438694219060004546341981553056679206923298032913716127404495262605295175537663685878941401406016568273465153519263271169977349516111867011639829079254540120229137551229930313227194698217119230133216023856358175325743567621822719930224543908068499340497640929544439980868865362056657851341118626498451659176832899479900933672710157344037192506737071343896683978671263591699554948685784040799855263852576914603062459136617653340703294205776640325141569059035159907494109158500528592316197930636589919269559045138981405710356135200049791940631243073154274478030216473630414278440581678925453823111386384615474666268185497654584951852650223228227886453474014557122686477611383030358346040970907023283874940597044798488359163654900739736217808138716758453709096606270345966582301112487722265886306742335840250251904486222671325476146433330456147196405301796681990075685037752589508675883777298048748444878444304346982515811515772199025994194501101724667993945365534129999489588023762059735969208136963401152378753218498413394621814814040346725807879532507539501305513460638574478114971826661031503821515166453991826540323208771106423487492403882549627151948601171966565759105952490652577920729586365181177735627724337064757005643011861014820691929106735999422101845419104100167556492324007180360058833796916392137210924158842514268400366874476070351616741995382524224244794066150290567955869328111430694876795001496134136296158294486473916240852633321423327706515419839534880318907921427719734184658539469799396181713985918113035126626497368504860666983135563113165649856420515743763518077030024112007529887789495823269203363116726444184700732588650865051902791492333983776495136002026806206137403495472954251219703620785879803681585030723422166475890425788979992653896687802075712355993458410634995274494620661122557839819740813934088780726184399260666983006607872899235067489307317527892554020109742906196486122104637220220001715430559203887623586499985069998379305931732705806112001168530865840634287698340678928116053693927744765653574524962375336394180808949286188015092312117907853987920325968998470039550078652281562077715161543068902823173648972852741688695222062564311878264352627107145616649558704080717882507975185204135432726891011916704196633594943037548696998123497928619607592149630544974763722069580172323829894929101241064892882780705346692665333751558823053564054224347425570213044874564924916601853743912863171032888476743390082298878019122457253781267202105660939676273659350352106198093316999544857741078784378038159041682263918479289236901254998490682018617001175914784054272277794736104605373020112386030730849452695861884785456164712830736663415005955327096185609894229614101697154711028119210773573373895687727633530749316426591936484628014052172685307280309289418491726803708551108978684916172560044753461653102995393293947157634474771272648610942370622714981677893661605025642289559443714073626385630415278896244436899122188829264948871480182354049306446233992950189475284542905221278672966780445620768647043219169028246744545149945699035227979439428589830424234850036452325231605266146559576484517435081446218095179908699607380002251544511390412141493322603654837400950029599067986099001869876668075501988284538887669826982014630289515022466867593444858413237215581532216978631952643608867719265528800358514509297004528317258461105476970421237371714830663229816578457377482651105612637647908816244494246343432321302244948738499274292326640752818405824568713661849691353773858136649540327902689794427706408639891617127969208728126274691930568261791581328141353723881792633177799748020745911509312632168488322766035686857003776672974592432270611307708980535618319486322144553888147061484298880001499892729992041931317155730278220366443429430751918229122445936638667588527785440005490829834261328603012984169077174087891522567824745897376654516671909563975405655967281489195074123400334650805600857775494374461813021740449863570430768418046786299738484277932158137358226802361975729399077442613531473187497232138977588060482107769025537196624825697673419960672518103376565307861177740855523087197910265771299786505044307816501452844841503429511194165833333744265482066526273307960573198192620998723181140505052758836108902784547324510378854684020973972944406617184446912805069321427679148904361996081477058453055589787983410890963510561275413740645580312012012147851016473152764219900319966042957666160809787252339915700556672848733537608585668802856903170363539797389849938957412736746902822435759009218781737416620911989526985001228222576326494065916231144724098958413653086473215088512250290259817492424967677322576571762556839569346583052770453102449147399716236710332346916582220662421010694954717527698439340020261630207587767389280554772283166837769785850217013338275369290523920140967294879034586236325416165683583143745449627786778337341260728734226828601595072290866515216176611384319590115117747579120025979648593417899857163716145676792215519145350344841581321257966158550827816300833092710941067753028859776388196027387798233857060615986642355646412098633106880446509003772063370428816501473022025041636756865373244329600073809611936062370702901998427018205406917866153663538575480681762211610087240487186464019779027690876055996717753963630218409376390412305878685298089799872369136419772200157336914777483095776236811527283942096149354233811849456033322638591423432326360265427103601865987015907348775190879801194105346319832963809373515506914448264891479896368471550369132288622437745315759898918833925840225123675713465698825524267030097199521945926583271989080172356115250138387585061705675445039482971170412285774005135892322875163266902073116166941287510445821446678224062795399562768341169750957402033361969408859611587747123154069328271220703750821909629029319162213592803362180679176114263981626756020144975693811113287228203600863574932619083896563677934920327139040763636430364315417337637233191694510835955142908935332142955276126058169605478217031171903011826729793511163503397346216048827505661898753386603434614942347795855419884391270173276662433460182262325141485567347734036215494960520247246709125223012385687824081279785017745933853799123079335355646318827743224784687953127397986020360887107350157315946758018452515096420238361495361656046463570696220015018528843117098610938106414599178563944599317041444299804887227393132713951634711138204284353773428645472868171990130089005474409681715246151579164475531731316100377667549249625497012438122602121174990629766477120245168496895453607313680183081263059968524286480020123840964605096119049475371832011111680473150077959799796225683962086212591935852477002353996297741682170852283875593411144555473357966192307025395758890148809218678151520178818928417804383105905141083949578407427865606835937516081234865446075713990474729819982127252261270673152704335455048891260372814013252161994082563254800051318346777748130052176113169967045517949058337301226796049757616244260535936581812866941191714922550571466131981461988624402324583682739362536421960473533130329313769968085380181533870965383169603885261604232046480650030045485627764588563895687736440633972478199801899181873414297441125953597781904688404715816081612579625676231626529281918610453593631784902308468560711684310403251830029594838379659184773966774213243840410457195991780742777792176007895421391097365128887944685559195635275066726196932926528633981166275813687013385161051462583055262189340756302868668259359499980140160473965084939572297499409422735747878152378184416258234243913948881357353253466692738373591466069444427811035384361958061784637372945219577707814006641724563091425069434190378426195222747377445104055171958542271008373523446693102290734967786458796264987327157564017861397737691141374031870777733915060503465708953666795384956877001511196151407811189953884405142943018715328304797733480316303479871561018528368891059510081467281612042916945845463380906280144370840745378748941044965000270415844231498418974847170660471873644275758971420127719083011617236984284315342379459310821046759830180165838756530749427647751654093557585265469282723884910464002976257178045524465146962782261948940022115965039823656446689809344726584122026364416199488160173584960261532882389807718818333760853822273409166076640306429617840394937506935532776349653418274585178419503557542865149632694417206725110069132016734941982366463387671947329698596484346175459816349621369867793386518491650095208682132010837691246491471715052473429341727359498631454092982454109450628167806218129676136292281721210804670478733767692278299014598022898321747975988792850237410291226657727096041614731260424264679766645230429213936131499422555752161009512469961744815342772965139523189260565298109304116711145954942729767596958624973929025990028878746378683543068054154487918757261193455232098825614334155699015174716760641937982409017707003053832065736303535283844927608471364265344893214190963678415433833248628386186315785894325696925914375279036228485245202109053450733497665752703650043923352080422915497818739231635574445783148002873698956528079772115676882000987454865100184741706330363278839071849995042148998777800781170728901569259776648524786037138671611990375452323899457398094858154009090111229199858200032287431334195069532836352055885470914307138376077344336309587920297836617665792483445674160705024448785498578654815488410699293564183783651952859394985484546203479026528494674946229862123670575741819242888623259995270337203329717016937255200232161386423281209886593992468031193178899296444505084546128834226662812213493570363137315347741865050119655173222152959647811712193872086516209108460093645696922879059095279222291931046439708540748480791488450877200190219837935899636737573667442075817073027404910612910227979694297058948964104613138659738881385921786691938648577165996260452695990944521553809536553269180052388821776422165577943974226459349324785051974228270666186459026299769154900339933394736818277484327550007940749012513757253494538608154251557854915351259214608192317432955936926973992452767673635333380160346232796851492155669222659833914845127299406982340161428864301185102848429871384143647562455940342748410399810183912131885285241690222926829271677087056461755002692605237605796023486169532567673273392402424222977978216723586968702919511064010958266193396584509026903623623177292500124596970216755250474117938065203331596922973171982079831334527187388613781028303532488126290785769055644129283849613804595136206622102178729370593982876950244102289473749701004897072070730296122299157833009682831032073157104163994322460446783913399961983697740003818805772710142357959357680897761637595213420217927049942086079038717528357497500474754539544740355671034597658653676809911662290919228012059156321471008242449435741127276763609294473574344951944063312085565346203944658571364717992412325642962486599320294322717902222612811083777304271005098575802897600181489162181911118124263263746911264542261950427118119555635547761999799811051200685228702770000467915398987252332858217754426801961066186897088068458708175405128019815753250016421728283299815951821625161913188427248946070081029704801472339504117945675339541178338246508528521169104507599242289427983144936929685011181585120992102886902298538963590364404368452879773052462717253006175246152323787012475488152909723154306973119879450101871407898318938043861366821167924442813157278156793263010857226532894396717610025339299917758340575379794094213013468100219851086868149877389876475683097709921384360397482474985996817906031481814051149050130223571663408121629004055689209090269783541675547408994947075302028105269096127077661784294210508889745042008042324987887151205254271236554802845179003082924302380733004727505745600444115922518596514509279649251877337281103366756869623684958380685836500223268686068142151265476814087687040022664413727151922321163466112255027012736624127821785567222928506299774891732574559601175983223145360139451439397886824933047225760806850253627239913911789810280495728345292717595630610546085185575842269472917238096110776807113048888725013638925572008104460104410537751727063008146344489480235505882878861688708964389455503780557916719015558338144347490409802789453673928593343227531295777085811174041056676028760539162728267927538272918677223811678222721069300804850846739236243922991166947034756714952484500410925735243080018704548638298943532842956464473756748557173971734865401388913001556471756846766473400254892259735637345132110785613261271640922842285019002536915129942819388778899311328993933587014969807336241977954588265485315301366473028864142749992601390708688870291126222025360989961570961486288502812613233656271454137818334905719267635661193192260112796085521031942022558057808288453303366701120104346543286593128966282035481981568098362486838199527456635013557959216348331419583083905394949034214064047861108447970207169908562518888423780315007957332716023684031169864765951735360024890648343057809978111483520295656831319995406437454993842767787234760094794417390476175838218059781935795214519511590308934236145556087179128892832829548689168890193136686762508121393989303762603402492684881203518979236455695407856736452303161291938236429749064762407466489653873705295672378320453466131712365674279014616754034338818897491798008727052896789240055185625352897507651875666052499777023035635305702728596670464618561254654257807672077549876651223900127309767602408329400464256829528283478537352482358555552846049005649910843666853665451329199661299044251162218227304954126030654372845152914053856387608259016424303261960223565727580186372827021424369812919491210081039035907726332919756581203672128573935346933934611104770826558611730067025491272166239780407747433462755953615489893665688045142486743073533697980615689797756681677132871252118513640706977294089291917402153612514632514036034395291767189464285840883199934605255175265298866674932115788611470242012474059193723704932118590092290638858259902587644119433318908865182069972765575766440801056635110465978676208475022380407252155234083180854334988257672951235617311304674104470262264059373026922564332998137605654349036940877259244343375228283110211032499722779440584769322879153120743747579051788302350368837991863770311160845176843416771075533683476334731046527412195066218735090782366751637545092656500107491097541084088879689312640815592175221880242919293852931555651558649723003501021287590188289878792507513598913285617846625699711766376606561285499262812731115062958990139052063771089880707468532046954219476088706894040919777263321027563074302038079942042189479965718496017391766923549321316211911706069903763849154503872204109220668008957563206206878568832961053921897928903154200260129409200554092727143798193686692591123733195837043970883119360048399739499728289631529417619682393780120927820585264207757380121566936508924252831340473337092514999766638004677335832380597895903445449881008006178814992135434156852533550296489470723149147308315508048325674983026358407686627681133630711189905214104879283134503844128125045711464306148278162686288303694360182039541599190676276238684724582978820813124944553914151211030436102888483092654311695893087760211427855647275586621226290927768825808059399671024656533368092297849144696779916655524248120845466056598154651770299422898738713892551866603030667077490915965165206763624266573948258311950775335863864549172866584693276333602020647135858016361471285622000567814009708424136313224027007949434958251703863092054301960294309866080819742953406961632571112204114761733316251494867266916091423616759793387364530586271971948524514795986450382893664886151294840891818462328192917270453185479634352811297379169445476829107714507921825340856921479159375743483592223888908967500553563675638418403457720777900576580351137922603362529000323015066104651184224809052033220484329577604655812719505169985996788058547555212593358577154211975708850987915297209018067415342914862497980483516647691268145085767192261315859350433327818964761585054290320792464463449786412819612041756203155158665095629769561755786207429270770489165679717175074640055687437516237888606413342294325622077639841327262772192047194842501266790324258210116620797497095396044056588722983026412381651784014915010155062041755476779964904882545006279179562062233506226723803756537568826975407306369934414280716490751256209179663568387465550220952402370353586906190079746529648928848589859303595860625653892989055466458073476375634120297153386592202814188856984524484653192658374955708839751893911135544499408926019644520899750986484118891899864548748660232596603841538383411504978825210282444101249752773600380553376083853314541220194287957319654573475700374434458669782433430842190281068155810919646646574623531352072591534255797513847554708224183954287205683562659411340682403373418983837144249212835456486346237968932829170764183720323211205580943961291607068029310241741048501529751898784471205318371187471200908655101118657330475618704380486878275252834875712151263213853429592009017402724453276928524766653527389391285357141860957918940746371203462645558769831487669256821053928284828765498457323485062094385415711286100005176808333522014552815268763396614835049834400113884808769272147399234251644240612042709741405620707846520599035915743702445081976575224588391793165658016721678654411905198658160625758216811615703683381731642573373003043893689078657022121043538812828025150835300207337787527314864554697610853856570233574928992937023323685667876747038770283448175314543220858823644001853631288707281712518098946519026630532818034814382032210110443411231126452120107934032737744791568022369071939511194455543975103173859584248079380712810996730522787036082549819868688974822032484531510831170692565307391414546607634765882074039900123795116938931154903596825707743769886364222197917391748717807981939804164144975986319566038295590165099799983863199189707459692028768449752121751636253051517163526441303386826428329490741927930799884662162475573606686195779620556539091279269053950153050411101878151822496342632120189119833670379260734689999111115156660529837387011852358125388048458033883516637875745569915109199989553065166112718056837603785613332440127346196801032190218578196970089825555223866653554875320306770109711745389554688650016407203284620481375046060813475986485665619054747007572212224989083824659115204340168827880347977461037699761327038598353705915253582814293016926393879230290263953436030757568383807274282787963207039792707163966632361116180704741851399031944614731730355748391375705603128862041890445169682493504802989785057759716344837656033974431005685245172632081749239359103036567152111876207651554568225847621487280774960315301685728033356145115817239719527665889020219052052541795206064552835586102513553092214493158553294781688165100355906888456832569866653770292363821756054165362311925455241380409460021035264629093630343389203561958417450166838789574726482015484944111214550785724278831113151282519811807732262995673291123784288389466466745689448000533797246770793305946984093552920638612123569406791275826526679279257754340956857072181345727441169575668743492702725211918145800122427325994876745578887046219582919234095590359529313270177793586133455973643173754159560755947610459823424888784303199616834641754799504975888651293940948273557676472400959024073473322350487300539210813216502701939586818523883130582527009309735267361920539955585633722647644532750640321204209275209519819086844150375654667854431153144938295388387715400767887760552067684693872619138143540501482274146591352405856035065247011786399883849644752863541541036960219679482523494172593100357284844631321551157512916119645240730675149034746544494811927955327478455520600072099277213441455117612698384782227255911485060845248148858560701690870621221813860067358460842755495951321059511702961620000758495354880940291979699842285191765299262018416271479753099181025234586019099334910402908295237964382778154066848039750007801301518320586512570699360238386723517374936459646159814976216572276501867542003289835870722791237026114722735333480643594358059371512149213757473312564408745075684692236806093340021593792567583154050886953203641852152596383211525357008596130974073610345494785550513194585888563106347099024772147259788331543317681079441531229576880468371816431907518988320239224268376902687269849963467449101648520230933446373745729156003875070420115615175631193710837509320071301380108415463558005420470770031225945096380362703561202009339940791671698655106432328718362637487171557227703635592741908992908697930937231468331671014044215076699606019359625540199430408902306328191199109078054447267787557122064328151452926380981754835965155068703089237872143961070915306200714328490987232262931378592703455264063960550894887886173646679361424094414129983308006472238010992756899695934479376796871382527047245058762886090295673198120856544959986507434106043167207849001324293390970590256750914422769124705096725209578649729291017281596553433570545607824674489769112159612503322725258555738143483532463658150861429547797002402636148973423600676044792951464239814418776248618583855147199141657758740211350144371489659160521542791545443219822707396953093351603239272694890623475430496207782638697787355651977501389203090600369127103078432933859734538786983002427317176377024526981171299473085775284281605489300328036629975766863111923710349202221375682433482225183143243694728370244649934665819073236868327515085599426703821608624587102308860399574631237461283707832496547718261197533702214649385000633348933191805196021021840133799559013724216508568568826270508256817597783229037548385016458601930060192019911608715848563270398709188318691333460895919302032944694586341190960413343898086187297108816937804247111702139976540202320955717478905285651144900505219804697553156892469762485293150005669609521102880334946543840652398863984515715100801062123775125918394374791149141832616003904900230204736083975048824335339189041091394997111592344680555185125174904856916562051957073370350477361392309733774141446264635321575214691856475729362854693070699473885108144794818398786317918237338745614932983858021459296203126331298437423684588657844493390216473152175360051873036424501890712108155821494538715928041046546268152148261530376499126081231150758903358418928225988864688208391510198831147650255308914266355853921658025244875052456928990980912258039600772672048797126695885994692568730173450234336267997164634939047122575912098270890282910322788913283073423179705007710181446508439346188684955334769845803246160765903760000354673763279067930201785460631798429462234816111976535949530736828121875094267221192493500403314890095043919700939308644028529946813341280931049365774415845543864061126764611736328951586863538900873968062402908692914567201125061771729361805941280474701911029253628798637933037313598391575048212834695712204596611872626619821295182642217728172488916345198356434826706744342223795998881106527891624639070823138715739124683187238267447139172465126412870636863143422838085175252179692831651180408170546695015634831489931088469449893583083094536903989855081945405625907566243998965248921750822011616849764742731511645081971261995477030942471458121982326443068633686963828286963442087806791608769859000553362148979610455222656382174993911750946168091993444504329103211785522652221721013849925780597184041097441581921187939311975646661053369951352150237930332197555013823770737533656058052851428372723232166265415227664275183227345687593313889011202378149080665777054390071358617920900432508467348595607314853921837675468295483011947763861860718506172253484204880135330418922302432723822893725857583030855300198679563807532965645981887113535784560494018477937964850611510197140424673471916291955868397613573154736820300770358441813906464512253586263997368452977886505940841418840804780679353852110815285090383276957659673237807224869978916658248647041351837752955827139272061552477627543315507495496519420618821290940567687148011128742609415513659657731099417831731867817095248670938168300478105666202143734143459752432421248733785410010523302065380549244544195339213387417399857413450580840920192805185104083467329544617437346207053998057166203788571432461215489209084468573012898108937405663727988242854203693154895942650682621538624862414084243462414238586403935662212929999418430521242686060662757238538284889035911059281923614517962177921858494715891193730899360809849616414068208786236700448103719600079294886297244453661837974913488352109740079632023254743631258417049738515146014615008730183028536589533128215019085247643911231668342303537119914866240584486212030126415028100021471464619604623294015923750761489626367837876810526873232921740025420749463101425830249619319684790295291863759399389198704789535072120018885072628273893663845764719437994949274929095187719858807470921860477771825487908545816722537954484648473725869887067542183823263395490693336813780443024170563996326969110859498430475232427930527036273108774479596176206129397173115489012763155428013504686918353508439430340814073761673900917067316194937451626725564732786486660639126963381823333710382851131148593893650954493245554836356274805768421250193312954220140558996952736989761483372025640860623726527171724188356338039239189598415936876135505189918001236084351614703177372529087191078727210307830883486414587439374728248926851134811307025971864955337778522329545618943725744313072969444408368956958971427857862652110469271202415710117270992387924907966656727626409955522284811969535492965032682996245913277710445027106150597494906151182622221916594033718432924398111920722934711776818664210875072638865229542059661894967775200861962345961653870925800848415497566122558741453198372974204141925919161341269446865062037205324198833157337611338121021007812568311550735111594906731768013313373054706931191601262467821377485734540480967780031763912678259059511104722165330713904081316535286692744035771389800131809322461838014502221791699566004804875991548552155634044046411561667989199614375561551727336438731378158659818319945532561523931382280810152878586982818807754534979768089625530516207793716973933475471152065445216877895661754944377770882865204203565673389772047487568205913461855597218912840398782738631446540188029886510732066759136991846303769616663592388594335434508883017463902052770537182285476508177905813923351094360847788699401009210976147203805203297912696183628099316932612408531495634342455301709139887857474486558992061065060800328434023093847625896078838149451948506062493486017539083597220000807997883630082423168307339247349312458002056000338064391658613031919282594793093339625432593977486593709045311509912029726233622168072801444858861422324455277394822691546811158951917860507315441133582444014698164959391881330542533290682787413170847985591263304651343404288353669923596434471925017704640055706196387607691262249977344730515098572663120535359192715897122312502148005631827522017833423411749370254111406975401567157103253319788782577473169969231816757040126364397737830691420307078587825780482886052155230773995183487197858453696476058804407434403316093791863459094968937615294196963979028366375545140905546742513599965821836382511021532790151841821860291658938905193307098735719868442573667363455367650714110604917286237043843990009452856030982854865412458690585767637894586825386650687908209115013988060647198989157394075460014598594823137641062921569194395714767191313766406332866397162720120540782466591331081312530101838695727608500300505335467643157301455985520248185171396204634028996246412488927672627725857217025220267823560419272678448234387903110292626392506553851474760659786065210270831334747592448891974325722050114848965144809391708866531691168931728779168327040641569004248561892220643538220396644386951737122763150488736927934956221946443758563040206139218029996664128191116077651235332019113357523806743840879435581638012384299850582889178460715720854917848474093604450576152190811872046139547912591713949304421313918244004199792113417017348341108474874772818038164929563497735202085391824451880692877136565272497628314673906397400475980062004866989266362144631817136188818111616442121979270409800010939282125611523033929423480886386305680338449415800673027000322192694782849137471781281930464622174596490683212804836367758535959575228576692758715247974305129891068094671249819884389167468475444009001015444082509161126771688959749783324994636042873790500073615476699139698121347596574181369046478668152083606554789750767208077944976051230683629219949364092016192927440387234389856303465230690071918950379689253309396169908901524472412847640842949880704437110204438830494179140470918285746878542563993258416419354056943087272791225253198270367258477343728907520011915902868234745913453590049190653668482671741540521767238838867028042814442947590244319209077835441060016699120037146891329775259371219851295449962145112907588226771444543342741624692142839840996341722726923617290152547717829804033167740187853295235210925162884344621872159413031863141057810782669861522838538284041790972674378003968447189053613931831907389607393158617918164597750672557853667311389695631019924482711076409749338619350709765285533904249922793460430814390957870080200107180270398753919966657374534790865648760413734930393759732166420165505863973143657991985541995039997332860160383411337566384312855528397145599938844306731322552905040309077373460808990771004908256801338603045423645699606117533225122824043096677266678292752712055558591818273760176042203819096783271921469258017008792260232772818685782791066577888241695479332945293744036500926893162134424537052992786134157178356838683868036320517136914016299298822120446468286666458468389096919108596999997820092761833395689811859529218659362298797599285384595059184657185928277689141345507594927590872114524319579488053308183020263061637670009763034654696411148811400897596191489609093690480574428119577737238676318328262698026034615443672820436467711425275157574605957497747958434857455153868905543569732464888718163853010795228611625894843522125128155367779249009755407245952202994593048952310864423263713639473903216262068086829326325623840154301190148768910346274103937511133423484089668375434088502918058246957867098614852583934071885832580193642057614881165847455578999158854309045513207386680927925712925142237787271473401293241902639762057166171802134871272341868068201210280383836492123443983403457022682223058697414092722569817219514848534862341225504036284845619515207530845457151174926632098567432070244584500464536091876334859647128231900073078867648097073460805738658373990387620634312300423153122947151438284893088003865735068163889359359159550277091002159304349170397162796889202004076202408713168715869171945131379198441511957456973957591788796137727002854074029580728827980858499704103530519923546006789281613996644022907439566061554015275374456970954883007738312516947218135623410167082183803362582100474271405686853308217470763204748946863197727286863057294755615284287585202051948554230667359635576866990939259520504821726231248101372273902210614288207790356383552859479446765684981536195290424459468987565313809355551022702641684842399179682968864702483193536710152980691789206768750364150649202836759328242632651573802018869386642920705026880704442354279050570067212590396314197385496641027086641387486236548564918700328804560070999441572081837159810293193132173809053582182721740097634645243716343026971861906310598061817132890424981584169479589845030501140991741619195564973084651303038369927489613401982248169195768101943549486974295086864783786612761433790428498447167346950061846930260664059012665660547732857163949083561901380349794335557069255952307254848162947052519536203519907751258094943183375408001663674320369370783902321933063721698727507937093120390354366494876611556935212401886840352973838250177285045388615508251660613659593793047969200122073255074026189839036733169908493774452225451406248328358204710724362462850781454502207312580607003725596402688136647097078959090228139814334644860563031568167612434194972016989539206887436074147752593660409372038068733377208053304930843060500340257648822806758513271742664227341942361988934536855735537600130199342735143101913730584649742618274775501764694126142159532737341095366053602776000803092333033159383710514248218645276780252493117726327613570507202410529480226905944349124125981408210330310031969475201785906263418028873764263238862360319172911144044620444209070712788596162383600334883299558568956800163558044238990537323835708210584159197897153508176248461629115477239869663419572598393807000774308423683615737100351865786345914231288701057375254235462001759762670878767600015739545498492396124729312016231950095091859909704530578932912154834962959490255279344479363647419589503819716761579603379465047604454844790207415363198787954211596269200179015362931316238237710814216332010697685728936381635825110130711661101372189625568705423960524195788781090718598901322961266259495520101640755870612020152281103225276139250982044711579320097942692267228276232443535872444703081919075139583856994054223416872675835202417673015530153839771730106191858441340151306076617526377997282005259935573326766615491054419303284400735059944027385985855919482187660403377646071603980448929500055748436433194393365919397344196672244570110319586136911366378583222391682758174146618291748460877657518672132213363087204473323859925419504540748335580468157003113268164253723615905117223759715867431601343041156865749625231003243242173176740203698017143773889121630904111835925386430392516428784196516540000092588526149442315873459321212097802620428318606261226744503254409374986700898593913537323256617836832226121448216263703028816246118412415404512762417549676784045807674113046177710519620312912628497879457055600501382561243657541907919541651972446152239413746543669750413589254605865199044894087504594190762699750386552882025943623335815780960453190742046215619182795121034945475111757782682273509401961153565937763766882313273273287471785824256013521670955541192768848817139909680763002117051766616803432661136030340113292737315217648398484343507725351526673828089491007464242474598641892711075542758980280996983531988577968843905268731106544882487722726840397232229651327313371904676087128484216866905922623682415886570258771567278306828985614213435334013830110832192594534874437491477117583387563969156730615386186532421212155171922397194614165304538379507052858801458886482370292301791449051063327687330253820239694268186223053452860474180475046443223781817049570855620646650695923324085854810595463019941948788055358624642217543366157918327262280260573083859006766046720804865171093356777374358820318431098454312597090605613674661960596841100430296051232191520141702850365685639132689113421476449229157853589819842774328428662897273182434145756607484190414478651238663108124405164938900511852468180610069940588803316368332432808808648305535560117946653033167326861743198735986398901342115920748739773044222104979936955181651048243312210234212907503000897218532997934718488552837953312310598697468788623724701157389046290817339404356293370767474042321703652767419758862946308447175722471120446888640414809985591662113630199416331290364752016560729011348622077275040726527906316099522244710782572829716930508827977229962683676213823030933671968497061955430956714813262688472752667995375437837123636634819929864080539001430532275889690444891356658426821930649275694355820628816147824254654436238221969052350316853671653438765011248444832563007224873044387170716648127955630494665157146053307920296129032470617262028909324902553320910882239507182448100720313623048228080610373677859952113430103458788814119723842627922787900583476594659901832858797317344610129036985295973784065107820194420328695656766443306680780628834137175942409336466403587420129357245960744994189024358982042143109737342647157714707046227060922911978239948127955306240207133621740672608855001718798011918723620735887179678295666345524871525954049103782801411260053615746719381004024938337943864706116285326026907481623065239283394198217073705699847342858454451751812402190991422918840774016216352544659962396351190853664325831116152820521108149813397403129105087019842783430860030617549528942680923841479246591231108620265697834300596129514255419265085939136625871297148259380132150202222993214549400523236688487544296419176220418484401511123333673746047844507767764384818496645738432258715032608592876887729348786729392880061158886228262050975270998448040037059587482253711832475759959951322598397362727164946060643827899234317613181760750133169943168627141439760964019251011240826490152393153151600071251294472464693358790439880775257927865071725675218871808719027480504815853424871817377405273700267803536537286609784838074686445867102968471130152541437504707594013176532930820734709559245829157344316395223067944928073279745818771404298592910657495101104981604044946493917397975619085335791183198534558758501520408721009487379688997148184460553789922619143791970001466697611703358069088802456856722538879479166197261709707703953846542039480813483808511347371555949120767894252090688544715871247757748089182739083401194608868913617499132730608331812134093227775675426978936821333917805229579141014434388843744968513523806126485580538444675747181894189481894006612059310472538492974731649695940899064816188254873331987164876976538952016497216107530722852870372942030553402806713232647613821390828868827810585079891134761500536828436920556903867642413826211008175972566463626888437798638504940068176640899327180734777413729378390597553727797659023193688647769373196430850712602937235619109191596913546116613564587093450001183866824818025727696436279668582992381356366915691062660238563314658988752227013655800144283622756996502155533997480530579849592842968018505320312555827639280168477784815352267681380815890221958266721760109352628366171903193940360779779686357001423231105030159528438149979379037434631554033263489981978096351828587751127030107752658569203354154107217179332473303251379952874598776718874984250266668784646138116484241315679813771587505120430863600223817130267551600877722062940923658770018859058081555556387120776188732206976244192128528731950280792388204463007341824961213696017614374072868734756722342404746902861462560944448728897792083325196371787664546602683249347876071415038958569483502066666367139602861234660306010622201464492761335097044276545316146440096080861919532404839342302731635630148736469072992018953724454219632899445953898021536643787336910682490933192855112057521762001045406437182444999863707532069807957736113021303080041708562528359008640113736078737279401181649465173116441972615649201877942973097105329029874202240022309651591198188590606896898566030249224817449948637165932553488667518926941136931278515526465461646300557072489023466269262703432680049139127672089476754334660594360793279941212552847665823301261936399074326769991874306910604396884276626796408375520753722480666473931106984037650811566021845329333512380489789665813794791096642380751958998074526370945088310268305035575526923781417860819648905979115271520966860710380910858103579034900766029102687945338116830704485578960610111316320080856401629850670424585404350057731056655069830595007727042811942832653743367406027377550704282470230323541762963979617278173255486854653821265944326199730596750391408555641410295741248884862155894053389022086865849638960613820310404045504117023707708309553822379523895333411301482508923714223595572451556348485625781763583668677998081557855893168422734113392152378678141497027866228728175507633899910695120871228026809114887484045471087176561156212394122889018716367582392094594457934866098808897633934983913956135796769995084428907778249381390328800434972930861493327840164322580689145691929602256359912499591561177619810273058176038729207282416300741240278951368143879227312551244138076427230806311864727817209636590608118868536108481251955553175613692661827688962316766799446814131454244416494384786459640520771539989080106214113630421545368689992969612458836447293394273536913649496238372791377675966359837207507505636509545032023501442718235759802163922207846761168343082096456542524125753700633211181652564637431794214647195747292769291406110382464119446948519198123673801268115690163304370462769426403946434850502813249858408765693711954290029846158529298825219799154097671300869570248618529015616194468850167700419803383181058753735864170338213329597241207899866865624610003624320536539414652640493662068442666340251469131889084680422585131899494284091804621694722949954194031365041073545011544351935207678464649187752061003392784195701236900407632340505112746967183581854894984346607743882451883717472351727253338221495851563174247445375336922164610685414495821745075079500454937057631531481522008009164865848435743236554172100661366624386156783389346149801964743084435326552000846242021307299167065607078201895737966921026402141038545232076806414008239908943700271676250547812172967170951013380890199047704975366172142812038079177836688186884937212795762161535893591678196543742945239559536797588409293899816346591001555794913149572714274091626307636931482124141678509494893780711935351804471405074519296936344538146432513954089270722633871726470853101681495615017225899751484688653142800353355079193063931436441483522023515549102425186716708162274570054043162482334951597737286015788950265071220778770350622566867561565948229310432497799794046149088460097848022700642058666196576448700058152754282319291133703905487132446534680112007089076245843832468829359485762949168733076897355675134449939851708398639816968821686028965857196076367957643185241482940956463103683698693187226340444496867748890139404751031680553440361082748948236587892650485513558970453701885486326846031578949820865229018231468072913091959950955098447997893179273162904694369201238434383958892473852550886092976180833198806271828992624789940709230514526813577212139654942687983923896085255668131449224331117841938816478875852769944978463421641753938928913222621542002976788781655302958200522413783096955545682925530723383708966719690620386138625704347927106917964897073151862838142857794206166559029835829152647057542787059673275274572194734937720315202842210470484253016587428006999498606670767470623912358555429977230217254680890226797127077628244321506548237648135466808578099110559826873402747392043493379167505767013583692300674089306003974303065004501340227815401167626131912422519364457359406952803878575953602002422968565512600783775802879134733072885855700013195505134309257871871320446945303651381434827183899970054700968754731062065579058920134071133732136081750769156863158590917302886735412608967782350620817595008540649275697106085033817037897609638615107433943736170857336745066161423910128259810267601528410802218383236342807014651884956419311701213928703109994282478051513203383512211185469791874893732551276577531692430359188713748982485920141304816750421736409521609320831612867496564717306234678478147823236152187846758203112118578526993374773396504281042925809076898058379904498272362781697223328965603707856175319985677790421111892211097102660683047054574281149550915721566158520520190451074116922901423367965851360311559542737773530446803608357170545675792397763361808516779317978988855988128078841941168092125905423836427595698306562408951984409355907824204561751340323872402478385422451864236826109435973518583648430973978746772294895873512296748157739441176031916795541460300628675015336765293322996513525208151664107940282395826133022701258385449899331713412905080117515301107258033581704444521081816502967099585384477748837680726808233203677936100038297020528151315037920261546615633580301576496923119581768923379961798496028532164187425774440774915964695690863792598992371844494786185378656913948910604525940367460942299854445224026797145787959479535116436355086203575639144806787732254063407600316471720732864525470163212654718882660699683944388732115702219500450321626803514329545020440057930033663951111649855790143411725859985822615036174743508488351562314715811469102474293484181039161682538309351859820797861238404349069708975371840200883479657479020325007866041027919171372455285084145465114339789629256556961275224909006197881465315081318800514208314229070909448209579313340019595704383290523966947727269927168817508701810412581897827568063261281619838020401862725915581109178393663719478756239665666969053361345387784976042309796214548972206846851875446808542583004318457377326720612168023287427742390496350129614656986033079095261961285459775853948912699387700855792750213383084474339396229884544542043946596659713934820760226113410605402193686877138087003925976213883029824556033189091750202329570381228334408730295106614796451268956082736897346778252772698194522593300804568768627086813613335048454757419369797699745934888119357931469510174617211738492459868292120619646472973839175269553629278089963622838168934572490338585361478230352928055178265724735691837039864447709745470502082687267117855661088415115468526457376165878028812571627658523283741536233524995125340476840428222474753566107025625449902474060254809584992530378032749196570320600380618601574141217111502957813364397419150693839652792122032849400222327398498040638754826647901347498873022847215182170063113727868967205692435450666684955948529827265053124208536599120435912006327451776828985252107933920420918516775360018395601545356051656019193154912286317208254409819377502633681643120402582700563602634052555857176115332669380319448626941841941589901311587233313626762950926344037933847971207370518474993010424019155683686789887245813229560657378799134675144840497512187656579061751705261387185355781919841894445933832496645105327328224126735060610506262376480683863297342156271609582435427051493217471705179757143873039518868017679044253595013242029902760565572341876368177909753312362707182725421074572253095419163848845394524151557332098667024631453159017547214880160697837687253970523111970533125903849795077835140463571671942828102616310993255060093386787454220891433405531698715495756115888242522716910014674047536293904241549403976395437070655231922488745591525904509754252881221548590063099956195400208193623012191206823434304437060501836113461535604353844819381575451724830197013085771042851843191422441279060597620021018866010469014078384242588057293082723564373590169278991720779851623007526809545327981045440531090776809454836460260661328727918739145714810339077526079777642108136839339611726032558732805093029195515177773473316384142748270984298177668922023967764100978313369080470921910411785949719441213949278511420368353368139015630677261173009326854694259056318662697629619924402530038154289483226849615626362434843622406990573365858567305904552410295544888165776617114971440582939925955302332269598579435648827561422762036582847143352732818321402413696935400945095267927361462709344185286882509742632413827685172040708219890920368211828510601365429346482467998659075705085299009574633193487242174523732358109705828541669213595927392629973582388424046040895372003011159961180561631595191952447898854224051395425470623325578222453952912371095394684406502653310716301156830357617297521841239652487004854453515796972962848021916639728664333490279347052107555618286882246997503801818046881568643765381674788661837073792403659804416651925690969593962581653268413146695822471974673989709763281191537042968217789847521855663204677543131690027868771474838503261630392689824344981149762392706898003224660182312647192939943004938181694711159645873309558938301356970351002824981578716887936243259518808218601824879190435775785566356840696347274978176688394687006739224006320201048469605826580924717984589462718594116321996709421579663511231209312605738320090561214273320472784501452660252420512191584314741641226214471854558331557137804290184159212998848220837239660185247309742614415012488994044098895926522317339914724558375065005371043851335742061296404756610585018654685028247681525747379055429239035557623509912764215757811205969899621404447789628529056227312276034325946007385429045991962566166637843530541459788659172123930280954182940074683640433524808997247345532489666503758078070487440624994726806089149664168800083463210148379165309477083512209618981278388817186200587518269218230931686204753936372561688514686099736305046800074370678328455131107641092380164190699890282604229224844135715608321218358009340050930252211561138656195419054909918799828189070320696955038391525028837524039046532698845067446621613909661131583159602769236625479259924867287312298489821362143576135225393587302409539937092967689077298880503188115749794262424245560252828018906164604229624823609845997916319707874821042122054046794941006017671130201362003369119772287813130890337079102108394858667531433346080878214581738147281447779851919573454429971521033956641322362898798549687632849941573562328937917805718827809942398134106695901739163550274865109531061643916195938843133018077453484138160716964743080998911226651345159645929167152571143472509826437534838139590759924098900321378249287809741600223911788701369612249257235821472603402519054784874811000752894347573132120337726179567347701868749080153178033848154010532268257123801655667890124626576410520247979599710125712351654910716871185935180241633893385925181582229269277609675283224181576315589921752329814158473520738064507041794631791848293141106551957691062488924099481536201455214114346566484306813729736363436765198036847538968251245897470751461627664259559616602841088271658432768960517381831047838418838136782707176703930984841498107667239905378627470998027841618662493880786500657517757178266315644177759280004394384431062246464174400605267165694842108285074722687327817895759079974907972043956190253536360303783274641214583432717733827757045415860995365944469890096180096736740072497167689317420608640488715660145810421192890153182267569038254563597671396394881268788396023307934747904101787690963258075782683644381246789356049352556349387577476663157976498457503046667820089714007829486178821808205560149768869196131680240386228393032246503167655549926337493878111950808056910236985592703818260527906101803997116662598889080620734678063591800439896398766328809237714712228905121120007894002010523466282463092993589779835111081497748511557987022649375952775318550521991486637130428895602959750159828498084941414997598914365268174144763122312196155203816153830060851426500816604492279755202789542147754994743991523830200445305086281167327426363795931269411620846171317722357045908510796244651420072532000125268699608120055023975180417768623623500069622868441562305117741476465480802347876256764190450956536572186733321862308211414203767439541427752030485631480015186953564878478968087933097814640702294392987524253195390254929225300197299878191006580497644628142741678562700405359461822415175026116455100481785554527272033387611782774185811829301907696206220911251011647522058435846773041816953173800906454643530040030780651836470875653511076637333831666761163200817734382009911804085097210701535145658485061326785645437628102273439966917508852240882860091401024629597111928809820454521648076880509516254290183239771103829460765806221125664035611183583110251377089329438366119397817245185137603301740008773299303755673644049052857850721023374935702459823730041883011519742411342757150523172423540066086997893070727176584511889402686727739539033248028039413678680970984594344932153799910709704726006955670868709310562475567912584337486708402680537393186608965388275665563231278714047270509880288478531315797067224610849343716112663227403118366841825306291746219856743124801119249826463900364991926711701148426525521549207837899551098113093697824789629485848834460108646734020238153878282251984976349491683283843502151598298045822186294877122133893676747142929267228421980542290019619986383189481493347916047497351355127461102131498538125780581160428936834918582037524418012081571080594983735722484387570802385520800235247170317135113402391441808928353015380045105466892532220573774412223026191945442257152920290345320024406315119238710686168652880153418141199194128389646208839451031153174078269667864632411988469624640594414218623754845658236709100432159932734981171045696529605933388532924981023539339492484448633596961676034925038812172335269506689809119103037800226970922686069244305858382857339601280321362995105140055968059734025378173230559445434636985748816222506219410575555163307521148219937710457192680132830518513900192155120640668877484976007184033291407928791100476757638719595871711839663552819915181955243302890087906027576575471057387330543973260772890603285008646656573297452040017127199191634417601558485517045330656360415665931366938423888032104676801281041789350673454074172796834488140559234205748674013394618857279218598845551469355198182641998291189562502838110512352959995328464359619917379706139778728974212680429014604123703237311703593208121543036163679566369546695192111726171511636201812642025770348010816838014448886174318840009980481330894202416410833594374078054695907050248230702276123800116486677026938348463904366661102346056739145880945241148405183932915884699643810272466581301803725030069206784182994431636918003358522214371018344645204924295540754948768082464000421008226089888426008661585273979169796166978301690078484537337540205285165045330291460994931727317735993265082245505097788753449524000228230512700689181773844489591561430091517807869821578508229542948937451604964894927150114746594984037748262647742869533172608014039417189480865685138497569439686325297186729406956571507344744892051199682067616019095919530053600409338207800104788629485184171059254511894610652898700763445616371973970031189882639371264022912095694038709591490122427145937100786718006100673756088184275806029395626769708902977544794894934069989489387806007128884586258943259459673292360892671672351399526563806734178601816655183993754015056161012307113628810388926137318248872674706674053681384391730570130002438190983201182540310518057002361380040609323792913566150019171310389296605360622328224032577499439715162770764530861464845618554073319491175993064771191983247590233338688599217841915838462640219421559824242372610714882873927070517281162101702213489782365576365956140924028085674058872366639362409454133438261921794388895166386343418333821939422597021450502750487187485370001007831898731649842120666839522459537919766749381368641362377060849063908585550505991442966198653563896751501905068108638149788037936144696557553342217738590151336712855601903258741412772279417032791603670191547011632619909646403733715609218574650107268186890552490934085871767759844289173732840764309734723270268413195751552290721062589402931827196231520721380099690448206704223424837401432194392030285018115286246402860299653547895617316468525089271872026552480976062665718654457571783773567522618883472209861357915010602646033853821751659013292594001374860197532973403218161737273588016173860859244704966528758474845085734847506332282696187800182139663535738165212724856294742209670417113349706411002637220606777945816412857673831883709356136867633293078682841784995941063970782167219222654098855840665018760561512067314959255323285613907179434124059771342679149967440545578381775780632424713907947463258397885490413187989621415036114260924548978084041909605760614836670231933751827541139749984303154891074077543594524384939181902142959130488698691019461584439242345626189224627948770748495902841912728308232962953471342305042608390477954449582601234472039931266869008193908211811737442845406245898179169709768666378214024503182350977623706307278134733161918314622332097774955241092737504083976445362107657101354563484208426580246453757084630087119493069220805593670563347860168494165899691062064006294826176283217946436950257616928943643339876311976860470251069709453108646979126250993114185231462574996365391935128274134375408746849796125221681407894550287501177878806780874528527493265875597166125922484322011532807414781583807841748896251858523244920167283230605980701072153044587317546840961099088698673529952624237550537409979611042211614464022864697069101622461655421447479184749763715642433246538397269215696899998913125166633334970406051292459499234954094962051261115866518656388285076063069190809712910348536282539599182428411070350339571402022734503161461826425817998188051575549064578992331844419970377381376541737355335922551621533590477149585583375257993060110422072457579262997464216217737286595916536611611235027591564475637740455495597299691569066300886037336816233388780448085598430693224346458364302193265379671157421755609053964963709306262386193462913788275116401183100783618226284599498741020683750024085546644554085699581564647648134665883681237697890997434649037016857298812884175968297067628000378163479648416628759065400173991626215637769217728841370728658715525085401911434910655291172034851824821426644958896567795020856985199179175208016754262625824311960232510292702585101225520515321404445626916758476806808443193199270078411640643991510526774015079473802552572478033240210348600037701977971991761478297048338244322827269426850259571964389084398137409214760732430699439051929866807013972890712957924116355106135249423857280697454735182150315625111293014888330035296796268335471510562022421430354285920283146107219949247312108665816456620245107286408225092715866099079271876058752034083852188753822532540011385498213850567038267692656088304962926356799290221549246468257536287893953035840251926698376306421798104661030811745987080648499573815458376603718573980786380027704023878910283894636519830996284835730065188760511447580516384387357551672850547728180006608204750202306605897684285840740559436176383658009842934306144799989556093791783662872327020958760085168299320073004824063753838252015259219959965817322846553894664034373206712006811601913479650409715351209784551333048963495286371541581927641008288282828808553231616594419168258905787916843232206249028323403135666294108415120361515622321333960328011295154137153475921339790417852591748832469536283825227321661461989273600514473134514290139443858705759946867843067510536525312919092376606083355031373804224899124739047488209626130096155533353146038869256047603634002895774230618120491552589058764458718671622754369282518165953516706528217527254135537720939443846767595409735071917522745707366960126798428101439620698089802698934384636305399065868126128036016388374361596831548421266836167391639742186227859904581574999540579085361306799308703312904739076876167575457430226450867576217047524467656110307643769928580579576833096983741149070939509110064558397263766153864786928506124859173705595330710464478396195232432285741360582849990934218334681660555840988342901159448285226906966967698641706636726858041105342435983890062479676525820302919805337721606511535189845892284795829915735170370525661923226642876449110087085844942116520758204217993357601155523346568475756276854364918549393294395658917894379782806471686980616235784271751821278697453202167587479336206764755091288975294553875349958254575938973373890294855125830820417634595038252276466929372654801672161531909068433931816251209246649647333615346412229061843994468210428690211531176287888506734063015691057867376335787132079341381295058540940129526779936055484168805837817507064834463460994341066364294919050454510401172127532743749300603360507156340428056827882802249988750973489496601597711146951445862423838838482893262073923753301772531286642671173549596151494696032229756585839252836311951368360246378767673033017790855012983955902940539597170117472211095964073512480942657766789936504594914969689613188696718800712506172402023354450142902544653001201660085901951124229645822076600062757620548336003128263156897383726610480191660451730052522535711668906074999777180597572841579833624688635199281690895687056399737498807782211819106817332693573913799916702078813018062095276630131155531388735964760509712469972247103095396129228374519225883045763776874978486065999634835694242185630360380288601853600839127400388636720295189015127005520200402632960728640051071951361156758571091737874602615555397645871002592954694586588271292746791011792017355472115214694038612718039565400151516103684032974823771185900997363473688040825211496325324980326973237904464388205344290455140389220726338629924511143095584575536444374338556952492541608564583199458223182263194841586624442843439200855142267674043759175962668834349892321021491795326684464294639074309397476414967187434262758406356779692229942049014112022150646161416431204337839211542327419743736845747525237326744058413247692500236179990903738342708366061787598987299427331097659425933750647087423623514533414606495674424352428960417276282914429200325085220781473695840614429482286446045162221046910349837787161832103002265646032591134730443951412131966020506785928261401110678226313657346288159453168249396407642948894601925678701627319736963818683164531005966733405057894328975919395200637585234673505108841763301370738080243466124948960071402970611236746200844903697504292207739504416602962333520289707959617026708079969457730418865860805994200879850371621955528247421470467036175114614094987674073024286309675247445077952672753088229618120839230492258656217388319364609627296514061019639315764402669472814915188505771204533821732055842972675466406729640040838817273208598137894038275616635925004926184723919885912954892342971059545393861862930574155079337579229534464447285699872048275905485682713791117159187767841243184544505041965299579435027237267642361377560100583096137576805500997778673554760450749400442065162378008734347828947515684669817291187177640719651180602881107637015869152518238277989702709070420208948952312295339620784381232726056845278199644093951562198376766613105601091292491328755523754073123177682183854299743658308043416928739201928615160148443195977704128134229962467584803602932718027795112185250785429718578223520296382747135454049579894139934102285793406017319118762471487201381326170196158886067313336362684414818994577899656822852636105441322099327327496320012780477340775160834711328913945532159937514900120369484082500419332961517000511289326600015037476596295003525541529609470409603458318038078547724055336674599225268636385487022581943377827768666128770712937133197558033300309350718487664599654856604770386972444155939031467754171213635851565001340850130194488443646185012709468153490389816727051969518870884826290551484796906195493896547283120840885559978290163700901882305634676730804503299788359973220803267825574745607921160685932726331400767576805348941025991529432607490964268512802361293364528170861800839194651877397091858382047812461693600355901588342791210731338429436471767075621110021802144458975107397028638361962278596088864439850871645169723722817042770915264813912286527920626793396176756801468595330257552598381365845432265366697326840308904362435824533126816092482935792596461849146915637516752628938378885294209533817800996671185507246110784642764295141048799721703975697921703327803902813820255595792356576064052822329780998170609553715939687286146262343624148849540594447492367517513738771263185009807343884410880663836419639842058298497913743651228403998048888718233749359656555451558259028640157756391552828457494041082952849881777853860969263463474679314052117994094310070453956887910893992434737785538570979924324605289771724216180373522034560857701393760532175004812010531484091776278633309212006768292031443306966328223776652882316780048005916113423154154662536877305090295964695884511281350944147289915674660402675191320794541185795851671183030613672289609966803313640494507197339617974698231499967405058548052075343584649979130909910492585602361116206531971416387788929325591011899918301492236227332016901156591655727786372916933139913363421286341979316242000168077099722612708564715588227715861631767765907982672582479054908731593714502088116104662092559256221995624873021544926840927998508481451708772522164985579787869329728036577297771900298213680136974585416605279907241783536676285000410020493810551043452610509829155973659747802854983615549417191836436033467509933120584722567833000444032864031439833719365971532062035563187065463026443577440401236931782051190157132489421270189892569096398530495981213482001698918540643917147794207747297058732093052628714256447991544736574545928777365393457599783218936392067315094268969516936077283782990701756594360755212377598370487298997297753141097616315263735180569321395728032411809389296227780819486925655103533302991216433041640305359133614920230151245581795689992620512277659949691519298404720244478637986320806221133430633076427168189062213102278850291852406266760579543799651312115882348334661680404057388834082016463545726146447227301356144938862360149773562564366725886118995694683583632857235891711482076824813031043839898239199201947983167966274013476780130246064556020656815319368138283300419599165245720849322979557297705188934887697273740804148910535255201239501088976988196820803708703485279872076819685251230891736464859622501717557654320422251866401211982355987969948992120198312142390567584450160432836796369164843413285320985126857619231952374995820516264703092466859951873244710655477932099333610556022020771681672714998763660259864807350199031898737202439583268607110422962209346822014193497730307985869756103646067222984604458252794259408673497346136852245397612897448115492647154750220592391793571262112046280271348602457595267371412212823274021549125136255187539602930710911185185476575029890152740514053982992925998246214678536126193297473807524947055469505138141317020061367403310149404684874296125079679931421095792626398634527315896237983711274870711255825852697831278914662949820169942696165397111006830926249777655003997037140076382956488283976358331590400281944131056162022693773461964916829935642512729693838698864824840257309324794249963375090300675617301967971085152127921006809243257198801772488171708524173171316015283684890444728826269025186231203659322204590243398163539299345863163744940528596381107636237620980912453948954509908073141290178543110693016197928637133425324095541257229954566032090433282908045963855758816745364769136687810543240062802970878233184919400128489309923495381769117248989530364740016931782864767517550171437891198401903848012284388033786466457983089089684426166660462949411682316525289649985935300325843573590339027817020502089058728103600952161861814547198896122550524641752727214044954967865272460078079313517571378667891335423773622031013782113382560720513905870733964600835524474055875293963137880817123585036243564929306404485763884137138519754506240513309399280238370175174402490205002658236358022558942199780536466696440379947055307700611825880555891998907285447565717615936075876436528399295326141352531596185247584340405077360790998256325424626031917021950567650165900686184740854936111035785649485573665115357373108666213957094035021336088102341807867620680607919217208558630468530024267989799888051125268039213311527755646570543888738898933070000673233460031362643084178449046870746349437977587118339518862569220761622141718169962494790169442214255202631810774565647643638821772290195849594934289921236612168188496231212543845408605949155542846801365161360696662436741850953395551265181791810887287024551163480221322856048995272219571472268444540555058189994048863543678611304342111606494994535279032141535716263338146102302267335125399801137484562403818233777383983648056767830670126272762147468581743039750601953252646305719733362420956286406661009757352701882403404026572385342387417672380254637375469086448896985382396353818218921130358073430696772864269198267201002922370979729693900211669626556041508990018891482256531022891869449428226197681345955105937491726187349320788519344648370005914788299372770169192311263712099945703739618752411543650322469337969696446914910267481710943499920871568084102603787264147198488904924002170900201778976503990910946791235075720166518528375563584599763870578034685335497295912250947392173422078354610480407851318623810066223124500824091095745227563888589394719399701912086971040939271819613484422152013546645158617183500981248849414449479952213950384963967628388687712265349296833555901071467846491614334336269362427810154648574818228327267741481853775907837755864951965008513378925699328868751658875605557580485506981162607236043303310063996205327734452326595779622242218332861894826311713447945340195382350622533055057776876619513709431894970002674469639949955018780962101358238406802415224177457155860518445871557456817609311221489143974439776038928695980721114392471681045607938833313021044673891870199097667600343358383278033456861609613104718896739304863623813442589808768290116388896190211226925374432251032397452208656242368560303751768335317444407453098542601881120141980300233587764461210556626728078120502709748580531726641138764656589911157619871245371327991188490137491158168346765244150280020881195865898127368996983006051417035924202109771755787508882757743794494085962595895869325195319431361044354390792662242403444804785365967708696138435485835514335364902395128487831344521412096865735232228490615248836527397279280157790994182205483637406360200086504623527353321020531260456119310486382317092634500899665561969197015449979669491695961839114786709358560076682748395680146833132471613873351280634739312326999398483197801553858058381643711143485509335906138126418386335997366617281520603509201092152143453410610058879123818298091527526209491097438290864421157985444371772578748355867615211699914964705583314954636551614847488751088201900011318950381527763375048931093512088293012817244009691766866268806046092971963458946551920186749393754111081066750360617542615555777827895541050272511595495487389942104293973574485105823289845954807188687173735787666582503608416899645442327131946787414611231388818803020405701078031195546619552227644939078419488443077395776645419530578971541025754688928245564165885521618788118795381961533845473959502059931279249003698438472524619329639220245361689206856596829047372234715924127488971164169508368431502857527309925102216093499461612801982354250679687707391410772469370251510753747332513438228045276956312082980934926506932973221536148240812062447838461997891031942691375454035422889701974888997324310889434771540990046952871514350541222554899873577949022142787067289703627784500925353735988448212944700833700943987598594664934095457632048819893308013058959099533256834658952540809633286417994858737776410854159136060394881122794601984062850124558978583510253374826365202748213095922978632724987474969549745000315586052785443494518296895217042619370891148412881918752435804063743810542366229690676698071704543565229880423477057317639543840491319753424259855257873936635835370671054347727743157010836737832188979969207506382622440573192563770081556579141129512494819175376121061622419439746480712272652872971745035948384556919956672393852448770156913416180062385923484676426305485649311056246340843775629419154335177085409592804354336603774494329120846530459043414632650600498582352763858613251983499481046023923502282439172793380431338971495523051159160774185356029930902956137362220047680722276347536843726810345592630803667517156763239656394229242418605479875805750984977024415575094732223211422302380526768238831326461152182717864567240694058066192968713469373512731041175040653217488940060378432633207627007825996704125604681564791164461425123884682947578541630782398580058411406781261466706452227126964608498333016266914356301167800500024065042379923945581881022299036298665732867938236051041981637028967207472311392940633833267288830748168194091777089677414160463564806995644817500272211223581872371517146683536355951064083493692397851257483098766166895022429216799772050550897914219228891873385735676611154011668724707503390465975142765629333395845649868681455072295937628187404310628339365265511663044889095926820205472985911051657512544282763343313937001898015404109075298379428044828107795987257404534581064607870864517622067691974565282169454206145803583636516876909685694691734982482965491580530807144131716395021104776864434676131267603010649525516897763284097321179667067806535537237234142190415848410593601357667923059226323931544040580439285621885258672805077043936729482964721899480438034821308558033377113341827626145744998090377370468848124094039550594450079525155392602733443622338213955279843635032372163349587584960330145447658601512356012803830743335150876066206760294755906834907865868125265905765448280593109130807760404082299644800952210753187596903270705405602708384626843853985173881912937910341717993573679160903380280247074953791321466282886671453015300110355714282725145017585641643837830168775382229861062418157674844968040971653520135487167003038461263292860748353578310931359731247465965799532586870683493280055682612503762331260736227945366866851964076636109786343791291338386372847783864064841255876448625065911542697929429872223858311659819596171850567773493783598479795714234703417832636787054189458497281378406948926937089695951181427473847030493028061267734786530750902324473278694590859979924545645070905984942831653211068608978731865408911558851974179914429259165654282041999931875422737844723038566261579562173381398570999581694415038032391212305075128922429717741262035035602314584858127386214031457645177922808922089003492313414424382146491846277331882655425987750325389622836172612050931443876286805347161057537968664826460146853189024694290869399949569706005089704881376730690559736459148268613971691454238604028839329249631345505757670351785062987179466490233094425174661073416102620998701041090115096935650371810820318386150323364018882879736968638783246013469394154886357173422938315767122762296273061567230970933957586899415547856387599717652092640322176414244291966966248143844982693450576146140058715034281521942380212745324519655666426632450873558711736816438991840682513698199791747621454307318200209578122261284472518259537353574258788750931338735267957959265526343633770298584915104801022413090771469325303129828749844580956675891234177900765745658984514106815255821225516935297215835316881737716838354153551228665431206579310898966602295994609852627011059955528907678630818321463475007676127738364348222399953213175851906598203394736497402397896040743100382218025829009165276271234035773117413363335335632999625775215248667526376097175563055796708018072071530623490058185172124067200915365362165782789939073437953108710885565178398996631114742081954127175224496486426535256896694631184667257300348077402674939772275698550085757639786701594216191005357981046096247138130513938712385307979502151479991615749969118645272881287606713661550887500693154492940575695816963610103092218095914590953211561015318428292670971224778501336016892709240006606247020059383695284382488684317791577273960515810945883081870597801998785157519359620510231528323422311189618864091652573325769492441833784333311647151795091132178178184492252525023526224563683733805632318778591343880893589225961523952727330243447749136034994952466191735481912407334112136061800301011123073361283740593566790243955972080930402344650011021479849331691904031715478484437509178212987115928791957064852343923162793073690610771470184387691469483863099966577358842829654501362554552741330272359252839584305142674446401325912419971776783738146760740316329596397640239600070490140783771631629703989972036060274648839009866046322623742847219902691512182775486802376900136928239470430863123232900507553427197739202532986279029452569121927656575937686940922371778159693970179561885426403801609658286159538892657308844818832503384372082562307278361580348747301710438482961235202527086406277566376196971368090923898281614979312585967625758200863000158176521461292297056418886925906108857511335932389464925476518274659334361333648160006126167583098531487920198191763187281131536797283672667193865956041328008089874522354480878583906684998273758569445157094153796403337994753348220867297525175646440627707114444496478621491980332573171524327480517512685354727509687542627572339592493865042941266572454437023799319708514037573083721747324060525643291385512675535260901333456217206431152159581307891818429997871962545911162362303974200713667335873891005329195910374515939665907169384055171855169120169867799724072878604644676540421136109005314320475894281788651727103053826458938236152466479716195206899043835904940289686534456082760829503012979999030653967791526259792643443211557205665392130405684009031754266454969152761398135310593717485251186403714495900407992875429272572219564634050032350905940902396082538881987714613158861137992107934241679444082589400647885313505312897898550864408498225644764168262436760705603119180752290995248335457058090060715602634703673977138209973133695297544348272114500940187404961538749076872472922351639588186752974588363961842785031587876199910845869197960424453189035643903518908155569450930169431775586563313206167152735031353355383646452294432266644118105328335605491086158851584886942758563111439423210491691921653956114564293815929766628099651656202710285953996784085897616794149527692406425826327451431757515936789111193945390638204718128403591172098027889797750354391540918344737072604754154393903305853047014205457128355403791094588256602458374266961493007798094539108683750152381583122341008453924517884640460721840859031820522808910888520001944368967846099161501477797927956786517763638379638960664995292335025529068333679722926927572702821833760429854111972598765212925431416190928739667673125554159373211672867562058273341584488703192617865608712354484240075348393231295940473421679053095510859088777672866062122833551886849660173301316101897691691645669498413408203992096288595855142629588868356205425510301523571536411122198910367647426638927847231949139358405570288763997531635675063956934219567379093448528533102631269766060253079957665562117299444198115492130252956604180403351420407384281530507404914130131459808416817753446388401824277665302795392164552951129060273872298296844923727297281677219795041900321170635457225206829723460121720126553406837664912641941499945835972022384482173420790923459381115275126057964743136169870923022427098349227957266060980530793003466507088708304934899300690830599407255157264788114078306499653998635875250303440030230965299017724724411898577346481192196293517009161702701134522797578297788564756559954918661604871441343373865295427012737444091455892033827830821906374422027718723368710175036144867362932370379444887283294806596076213218231748334128478236454592187945805468026656299275096233254588123965260615837443636411488593645511394703944314878282311072753469733768954184994845003541916846854244165667687512077178065557835169334140266571043648448475300788795655716422771802002049007143502046753434601445112159912536916975886951945237636993138979276048941284519276479811877849090685450805620034971945703707033754647419665708075123481842600902381078314990453457689534937610414112746614416169584010844901083535033462420525323247842395738142200709895131374631162445350201301355117544082294160029315486659168147337126476133777208792896196193628539541409151126581370881089587907544921517660801737551428849144150561005209482822640727973155315326591627314740406321540463985915126277723189161079751252999459769989800763315500361436885621193301705199231076736459645266902081506966830484881245706411190017755016562304788911891332207823484747429223249116653710735628697925632160837443551621560548058791694332117646657695734494051943320676088583870413488446584152870570774590641505699275973869446852324428667730935505845745370594542905135154869732850594605458988241142635260830373081500389017632959162805061805253879775937453480219709556247529846186460171566210982529257656907225579787694737042858968835531919997812293744985457146341452250343981757110969420208282388018755963034421407382809601805257480266095361077076249439713485178695627767346515382869698354944544927874062592115617043425858474889437748264349369279565861047534989580738712724706602571002727212482730419366414819053729311537056222561164274635672415155297325299435284189961187392332436647409683358942211082967971211321093864539449805814684498930565150556835958537176501265606690434733386414169031057895734834246509697076180283047129194457366010854529966726398201893932034088874736860706306298621380991435003556995748400270659608895105485018990478757927332664065758361899852099137558701648157029236089914869943118111622717713524404646067163423620976243690827469748252537156432478899601560055805843160384244554306520599297566436752980794386886264147047618500553813383578515986884905319474944265508891361091279638376104485024343406495944394629891515974814608979594258760712010023085105217070208822944606643624718296765166555772130139542954218853508073994990639623815496301859107057870284256493483824717236778813683199684410452632860749700606961759196306189164517146061330535666582374232925837352421737782723815126879050698565842943701001630648686119958307368105293715617828653852560838720660830065767719822408678958300373642443663562053776726806610688958992533429098247557496484175028011254507438465618000383279107061828362589202096067034932143362249805260126339152348104838393260581932664137042123157059017528431341977200190939492405756363510105482827154389826417992377918763066112262941833162890157923795498998796944513970064180615126271821623144193078203999859143815442152030553339071491674903480170380708383562374539655746679140846520296237673757075343716944966628750787108319469067177494711256208598919395622737571132440586359013948925966895405705922486869743246393921913375849327136760920739736025065460938072065644914823893140976153656328027779498486659921568881479571475670721741541983421241571125750576208769371312846593529883115285707646880191716209566030305617464931255639718259510506975887271565585033366369100587055876274853507275078253603078030162778359922863869781386488343045285586963056940883455236562761236212769242607727572090705135043989152109204907114485535560411443059075134839382916600599231792451551725729624016318250528523192473170830621354710738088736350383420989341740927939697793770090869054742374777548744854116607065134220236095547471487517072410415921959841785877570420313499582727188930763989110566599977402577037027089408771864332601543786983928980332638220391243376585138273594201107674341697524951121896209293795579423202041787855832046181096524167772597581905355374958867942996934319406699946465769602935613220054436942921505646602863963779501488606404108905017120468705533271484734503365688288744740245921103504417296689139478445863174780165085951310367939694922373598569836651532918794183305531790189102037784317698547455903614363989252374601187603840276543255163707498262219328856266467770409896049231468257920882080259584178137161545141169410538117803113434636779484911935513167603882547230163653197170140929721105357793054344858286836827514932619439672338003177183578122267403780119476605598397998385070635322106615921181095054150216448724332045371448518733366871387376133294641039205454741466745434929292080039566968650391223066738477476256464141677778466435456252301441324505309119486861998240823546877023950492525318415864137781279603074986078166608425616822284760120566680599005963717739967461958700858899921096620255613737026411738261343580717961309777260982655022306848339310580424554266799101522035961728232784246372336995954654122736014477370354858430988471209994166013515533610603547014803870210281657245446528859028276903695945255963601796931921998974005848084957822284130786576235098560099805070026860490441244765540749114274881729838056364913751633023723254620331420857161828445931242255851672895715521424700061382133126076357301858426642184285035129086635285376810933340043562317807809748459454346300197469412122025604435950946670575424873797049571556890953045589635333997376133904389131350462901319619992867063367390003464685301155977990286011355566522427202966522910587832907947346901076406611891801775290426171091559533676216216287897402633508259835304943529518881549196125577642121280729413236983089467551690169253531093282586656698822465298822431712122103628556424890871252632136522877061273336833388235858489585230303856892687558302812390954294848963233780013715455716729964921049134028681843089157595619327447240003421234290038899647487270074035078219792826109757409588985240383801726383088277095198969767406208955699210518979117388960903357209720891986260700449085667822973239326479255352563448513198603252101890420332057724333844778264758584161881140736732092667064233717406722543613017545797366770038226359575756386245194205813500762205635059357489024762559205703866334415789407023889068316321969894644683778287422850664751626169646441408156111190258674125808980491845126071184521773363842954118703278090385601629079011869931618191994778342467523489136238000558988045536912751256379711006179331673480488070921497326764971090432266228987020008943060103060260583869609288933034216696839513783276914959436492040075259668228284555833818565056235702526185961671324855198269072418882281144073142837975944298054842699159202419858858685452174730109362843867245709116404145082118719659918838895651339545098259263380414008436084213663605306601482796482574079458921143689554038909711448133206261399610067423409720466478875488244466946633866530879065548775451898602232472306114991129249656362124811356695841600414099664293746262303043370667398981209647692185674393174509446650405450577146771784669410968706662845175827050234896157079607205513825392535934884463721765267173629559036421132949877772581958457026588777228341551850474805852714630419189419528030364637922810834349233769793271068545378776976273239238316719751559045769802487506005250212082397638711505978043663133200805104012220373812308760421213237476387009706630770529973743528853023327573495564492822890910426482465679280852395483719406099087018583051704204470528206490736003703086338616895986174513540148709992446073588437778894534140322652958683923105452449371069903932966920326730669834293721445362120513403471553623853444510939255051561159078240972470215042758302884252507437475416616302433200210176185345479962996265501648037508267475563612110218265066694792682003896589251428490685290028003355445291276370049458019407681387031729822499928154312149323040840454927238652642557451468388148641066476160014465748912607013583635949297270201273991736679613212210580608884310267797134709936987983417065996651575274445007750824441992319683485222114089752022297954951153308653278555672704494940858631116178539495012565007115723140177122632976023000105764505644775384013566840824576245497838180543860312835404907103202200700990806911590800558318867270871612133465626117531817178863224759376110496997582641246306164327254487919319289899295567385244425161256273319971560860128146561983316315231529004108817452943711741210330808818238494376818868655531055130706597559322490112140304294766404673170880027587349882611852431350606725208451887124826690918988194431862214540310308574685737563205930678330640167231524657922797496767466722242907793428204329165663429066053887474151747474130965235655779021636973860544527966469253976108590261342143709931584020251087081173711323527697373669482074329414923876037305737084036924239754116077754564466641759086064103338483130052449476347032606401613219148182971831316651851795263993340153233880814012417424534926100388221383684764977499035596342135158278613586384168850216876271332647005518223943187216274439685210220193238349515051501019969953732814962572528919198068616964868066449165131591268286322542452826774197612566164044413996645052849782820087909223195321874174221913034736726113847844644258976681242725610965983424839561373247180086774407490757624319940820532076019622802815079387512095601574359076827539438160909631992744353857532543539838187247159478703296518817066067251833808215587676622332740469651041566585240286192956474664856373312592263035109240692407774205646976233691970125102740079182116660856292688207244208914730542605071108604422559472048573329341491376072602383065388503283837133215951626158455759198407681586163459394875978476909902656063426805625902672944049410921625590665308126657927742297551042791171058047756347369080814075869274578277240613383095108604804575586944580676959025025405381916673612544014557918487711783705925615527570635658122358712931084268740868097799533820210750250370801071786308258065939044942362045813418080407913190015438382283681171560304204317025576204915095778675867845211372536029144932853647065636801230947162618413097644777026591500140623615165940719349502610546783773123163641506344889870894162440214787185669452944380790556412120401792133263170209718632283589980094409580857592287357401051245106688943673182778301389616454146576237546064567370729466223639062514911500405858045230947207048643642617084608143309191414407421881467645882368242980569654420602689733389856768935745204070793943012302475154273930865672655601605063099963397085236132827965669395813829096133990801894802865756634642623664131212177490193613343931270262793178738539346392751493436762300690143998704726768116345172824942147813289825249652825252609928646526199588204205690966004261299223293667493065635216306031162210320800232341755563875009697460389731699586926813029391124625722065904910022134227673149085432208869274725980425346157625142911492691109317384103888702872328046636248976011175163954557910887680201708925955745723573799793947218949730172452208597533315485830718700307903139628916138989624165848970043543749473742961706950134915603715471151131614415686872978641683417970851867698761582973331551741784666270836842515114925315824621047335640800412136917573974675207482384274861037622689638833863074254581066611024165658339366688669257619924852224324065677276939639064891187640635850343387809667636633434215588657822616916692969537478996435528308385113837229734028037581408359027490539466048534224849692128417343399847425842765419490746808016405950895861034854610285485416105649916791221628741724688485218092983485646364798950655847739104108173682551635234804656752288367708899981018420276955994626227979799839841144585107109427370595153705177881338280756925987012285705164979798198439144950313210336851014039985759558814867188284042478577882565770471216417410448745840553205960648915182839309946294177381074029791441981027497070805882396728972428840874582706264278288535580810849430074317463943467496798499217192627665166913743270714371841441644888061120015281959824136296066941902783730744839959873314652143265143228631407476744583074227892293717674930079186909481064525904530478103076792553460705560275490885304586173395702537919340611416384599669468886125285475856465285500103961077368574147832701934797141753329751582552722708572590171415959045919829099751277752043684638748015814801778589776740746919732807922604927400377208881809751625835080864534221474366028737730606579196712141157084582645817503173203962658902148717150020614197116229406259595762131708631530241342527206044571404406761089262243545409588987390121415269265274506176365373151142329756021398967017744473842398630086591077738253482203333787055671317661878927252951551622092087607522153019826544362121232464727475277548971216016301179327110807266180758629737244135606010535539718281793908855501400263061904786064880017089402124353551539952953300874552344782461423237878840368531756652425851958007348060418334797644318997583036560694683333064863898457568160626432057004365201075932424864358906505557376372002259792528132114390342391728067560859370225001750425055250551367067541522766507824826397932867563693212108549387393172989567535976985282875637474349116651649380034824887603224722350438970194265380957703789869905208672793972001772962928318652975725956055442557477219324527363712139045903502285944484869394072163339298984839547894437641766442875741811051061169963289369256103711511544625616370372794721096939154435121320080383511507738551924479340454244394615989054994370278585421977675456090992079493355631667265387667850128561692054763304725980442480350317442870751294863170359393687684597406488349436190981311809364525953606244883180699570448591249183188156396315027288531279306671913146227133338642179312943270394433726247041958379053157165997277735234321961001866963974341374298192275232803162781607760942988736155436716005279175965051162197718295116854435084017243606143418237910475659441535390225640334701883563102635374969005886371256624358117506910331579185616123695008646935602531901458871229727764301445274447838757962921594810615152419917718731360911158542560200849403612432777378471657811358803302304853218255903250109142321021189736516178304473510312541033028564976539478841730130389651489589141359465501325171732861010368166047360175631613329643114568961246802496747269627683503949470814151162893329978943113736405361177692730605364385291511272380210397453785406149387483157477177342904271369018365467222475241927874578156594898343059160198489138234415214480035690740523635116853416669352824240424838850298431296491507371440597020924461190302237591923649842880668376681207506363658347119772977946664951751601201379214304586408273083103553857277059567034591813024864525028607889597894513462055885803858706707065452151154933181679624002473708791595015990898424854956292951231546730009784189404720381067698405640618254130298767954237264045121247891666534133251695673261239346665081885005067185247764545694623561633117716963170643871414418855004262167089277886006755172102847431214368467355428179691563971831226470023610608306126686034735851020982541733981968806663791055221563476014543833366346220241891034908056319418219786087056040136186816424982171877347253944804795761538194083937198144302016125428998467176744063571284355342384085724686185523385454984988551950616750768557169089741679712441105978971136983681075566690878847746980048613268223778940777550817015939550543987636387713751015680882410157616649151632007392713251556695294038722449178634721733141790905249748976907800015683334885476957405110882498586204330209455731103438710109653654614083045320730377721535013729119617953019698050707880339768897892493459564043066585839131492854574969727924311090895607868975388720699899749494742670369089937157251327554555724792062088887807585011394962881582805248791252741612758655215826875326676049888851969278801143446323494851713859686451971124396784307390679902202724537242888538635312267347470113747837058489675118471804765091121461679382031531714353404099729189948265853951850688908857448657317351701887140807970740420953880518950838417446135780983353223179466497449770422250237740425852979390947720393501341562488448579268861548369097837922796470391755711041684100630907969245432855699264978316121954465947072466002262810322597889149504256938901608838235692546223082311702799256940566407742364395394680525665647345167825811304855995911702085508140438938499138061178616173856272617235513479300789365775632239084554887122231945082890004109568975858818568737357972247518203803885498804762979013629748722834494330328523204519638847727225859421505864948438308189797179511459637323502094183923384876487224010447646045781491546212473394825803853112777906296404825854765435825257856215137329725188427037495319700568528527881711957852305366690439218484647635891173819267841350616436533878348004194604297494138396332590160911371588641517545024600340204733438892949585560982293074102174243489433828880889457303074632506781202056432263096783160659971373068919536713283983291154620592483598859065811391622736782035282619245762598041489019459906052685802794457979659934453135170246086809380599365339621407688695520213560572210874088492429665297761360220085044265711428645524478614667808395154109449493345418899282759239916574309481888203588891453085371439781055808537084167478042430791155064137053554578483122040887860554848300400547814925935171878070130859169694299130096143049203681624886586981307262541135934764356886451105827595582516368182723443735685833523958024988009673446361312986941548510450756842074748229385442958063351317759415419463447880478108652686391276989358486279779407528838993638965139811202661362348716242296043018547502056495064225067929529830484683883371456835535426155507447992567052837541365518526601648959396207957087709566827515041554618914321789728386687649633181074014339758039185939425892976493812038225128198092956169498181473937485797273506134943178197129353009018631680871548475353799434653879715964977014939198570606436111347977705505700818473872356693329246414819119120696654337785861780141771945859133780248374024653649466681564790414776264259792329495742119615273285910852324913295317787973132877490143399119214696859225321882135274436207700301636047757272753047477328715377907470554459314165615786693616327623300562057969354679985132842786073250580605668614860544008242589405641011942130212274667969888344416401018408630805415362514943583710529785178221931723051890005848463954391036903690111704950823484892048914086236616932802562638376019432900768976940636342699219431185750632789802246559450820452078229822216492867174924208562046884286313552005039097591611405379782273415255851777791246685295076120841037859576988518414582467113421893478552433854050860381038466284050262963254531803172092950120858675499788203413896438343373023566866172226475815939285667317545652683499754311088864676973031994570108076556887572003301475048461569403437198473850936589641034570489700066963841314865267603725404934926090651842996879011088557062038511952596637980751735339438990656645183192052743975462178110945815901188370541724850843734808028780801380965079161118166398102671656347219246119020365787041500407713181552394124718796090138684402709563052865840353507987070344280318540059210308640977824840657186479984552391716928409904085923092998890305683793534569918967170821499800879832495939822891964263957666366766865746646760519671644273030661992397459031936717421723454393130268907531078512531716779083482178693755478630173241089207963920613593602480769471156577611994826447609252711020380978894464216259365959173583117068313839344967977541211848011661749323224330069119429320213874192074796697843960952081977827283394640900139287521116771970435019266588334939519117521448881648383582682306117573735737185530908467401994221394938700548068539231165361414439519072086472186248255242735540831805304282852614450654251524894766696961208909303574740485311474712538180270444468356036332314133691088965713774442861261172595327643930521190140055483683222873430852271337592278201586206595710661383048891796653045477672277043041917932940336445282477355954833455874040499691376399227443406168668424221403799844723203396130121093322415119464127418976693138807480695641100521875214354115546369062071476547604254823182577572378907453460266172619641735795322432105488239470447287384774967501508650467790638621326425112895207293044570556233506186918617798532394363483924507586787381563036933651793419023632530478870700909183332137109404518005414942336776709070108492222692118080250587989113879175386883774260514150211605260089564136822872447563919713597579789630710831471951515630302887822194853750087755332669889334872846511786009384151880116729218544815473545235784793630498022665917867926064878400657515192940463230352530323566845170892397980912311565045075512777865603992284754804243413543032065162349943198954428150881600830591790493057393232187983177423643290138121579601387267209506089717437056153127291169648314250653028781150636477003964578348487568217949953045426812387626791225959410309013708483773435848011015394691965907643527065551571670987766214202853591077312567555455969534873904072184947947547118339467039145246348460007509736332552929885778316176683470338079535134931069865365118204557696684662264360689832859970092958323242905390774993515868259575311964910589925664940832529188844226685092402886297948613417829730270101727949888819487722728148260281920279533222964653412404598998354689604126536615800396920792038347451825537323619627122262935280556846025768738735185231838230200621345240352773058438803959058946511328989875922825705872917698628519604843590862186030783987667966824647376587483588253980698880590576581850561875064756084361891118781471458616154690596804810912527908980308912910693244438912034784141703994378914990345436527324349440024336986430888839532043770132772134127910117181830889583644692393061179079067939508876950014046180679613791410326749657117472381824630188584077608929618489437024579135332547661332508277599805681427104903064448328891310977621217786748289607063977611625484922751603493828245037706354136887434856799846444270757839525428423298849532601039843860296465570880047251258452262150991794436890753977222571934557717775776737729509684688603815264729294354491615857826968518707043311741269827941230927754507676735143482229822063076195896029588451032727724279981338637918270861304842972727876042047729117185519247688195760597487322369218212410534076792587656075208183245696398543004526292120156505563285173964957132674542753986507985527296470158181638165441920807355193147906413340036889327205444969264524256595832338611107823716874244934320525723109415302924076717269803621623047020401145482446996319628835765493368678507309606553080520388378457664661367685212352411148878504142973981808604049929460161273147011028092469309475664420331859306290509759119008561473345870322719401587807048793473903513960102332578303664712990102370809306754112714874700925473265688514678627868796311791792764801335703678019102386089875525726127486479273658509491104016781464738694369458480972192778981511605975567195252559879464863119918864521006001062313759095880483532112433810521612630375483503176776652643200650848524603891829565287653000037684297573504747526860554069486447187638238878476244692397768720637405599306142313933230460852414187566942813218907485660166052486344831452302640704325810993001851775234400760113215289501223643892896422561667356307671660522924899568681316736089015314432875229420851036249419200860331093932249888566728084388487184926262531751870405746854199727548369906578035805477080275333634593277245700133229801359066905502887972384122258781459668844420828930900204999247396417820563691699031056217695250201938205540571876700140925948852914768893500111943892535832956539759976096565058460167103666513508111466342702312471270904812462648866620900979968119601872152433114640728682101775469571807379722713856521198296030022618309295570429088297480297391275015467612914652823634472923134977234254649483578420783688972125193350132525706937924283162015809798028065292261648062127915524152113124434185581696584456652995265941712386965125337108568301985947828748651778660816742468150466895187462765236266926304969487032431061539989133409907647169611773915514173909350031217325237989989639565572097846355007438068323302040008537359820740888144841619366538414583136494061004403093160299158389320648730063029617545717465075196844385328631792410386183658155904650004679031222942426929254787667832004943650997627877153571598537648220436235317332768974648315955605582873000497324592315865253999665170617658104520367370337256090815295306143816015625258443850035989345807020451850556837295463832280176416131596848010849708120338183889094655497725440644259492033811741471513159923004450356934757420603573547554453406927530693645256731546945681291860727971874990693324299584797401360423747465889430564284022937136347721379864111139737591161794572509606571200645825399884924792220762442795312905222703225910726460848572163019522825054211835621004359975676867433632822325817889416654892383569401094976320202826851461254819144307859852003003034502491711393494938307988491121406695977506491045917498493462279794402559355492772165910436695814430894457242815081985298398453319792476753772876192561654294123342222094171799819774014148203523660548221315766441001236726167140484969660945562835455601695243817290003963969180777657330322376307987864010935477044979589630379621176058127211423517935926606570981161321181562560959133585372717644580272911925538432175088272530410451036760109747618609209463743373589817546201542836703738293022616886644264926543738354850796274936509319516698738798111666034571448980282953240559810412689909193262102994096969125646658746056884928768938439978971140300577894694188068179775708607060445317419329358963964158397315780721408274198047310535581984034667683380284325380710457228150081651093407345610037461544520471127391901424463005579737318063575909333105916088532217078516247419309283159134259183364535095317391329023672600601054241101646360146326710353566707700266357918500677924001544983950556520587989498254457148222318117694507085697886204985455709795179662316777565878918417660341862412411024291889713440431097959851278007257526791462048806127123051459384711486474284517053021566222437603218707564210385433742616085190418112576289342368502421837124324548971114576591427607565424768503798792863070930366084875521332570969156776314342736306549186044529959870725520403123971538532387361977954610875703631401357781950130310549410614207202231941061077281913930295842912840397829686904743702785782516232243553449857604911580256200559242360397519361066822978610909129664006695339726651723700845183253783487536668804364640574261822177054549722533514804512920541628819038634208342811714246998340513058748774303098088033976413230298376027815876917898954960460163007398451786660080784947417483045466764578377637891336082492737104259773228215080317951457857981143000761298540705466142180213990152877207659837022278780296716996297589435189974003468887836859293316125974732821601761744719187916832911311499560997031487987764523345709881156647865513823701335436864516715860785540928030136852254471192819360276004893785413662835711553633497126717385220183479965133082673143339500377253441380523595786737670574848239142115481112256099712656108896662354045664769213125568906361694451924733814055705828422231613340649909754765365637626907350587278446026079810822940309885496006562759520862838430719020428998309642540286932387706991790514015105769290112707755639584098790212037095245022636609561892321585252199179966633287153032001177838506753601990796080723264293001773809981180030069486993339201872315938833930155695793034384581323762072443444906350112430600682787354663451348427070699883020754908076205331676928055798813266462705326954697416111686862848114252331639071647965574335710747532007996710521893652841960926821736969588949657333262701532813736104182144025348768125200740209350739120238521263556064586557575416557830729290321097251498154113656515641515007296230035925667286250260254682651876631716970423135464131956727530722153809822336513083016975736450793609983572023584844891815510043562259213628911757316377433822316123345747834522857797762152199822817315181999836561698305361477239836634378831916525089899178012008873624332662209498394773809211665361952647548837595846567499951029528917518031769498223848833526234813654483930458892123157703505201182079118128271042254004318980687293203612550353553846650477462262754688798537824827059226709076762548401322706995422104574392236493914279986722172040079652159522909458997177025416622862325133057585264271387545425136390649588466889429514071537727767481699671081407637206638843469462582179007130052751142928471776023546884716229457545707662062157539347887044260426778507161850671008571299109782942732188093420991305383555167937180929857958746570094361490231986271717745256184639642641285926452620615139174705991903566859977753969551232995454956722001933767922556242682909912406325952347739483308611577926672024492313628076100073559831942897316488161424961331773672778231623842825682882651742460837666616594733562163750911968910006982525783717478739011147245923809623646513258521052679076282111087104640980477705826292496095693359538552307433719241052547795069841325816284356018013078818064345750260912336490603095832004829877735114399376132177855694618126083285507134077971030386662285932010690980162845760819772141023975677908688794728677828401013972073647508482282093662654099989440927695135709088523815547621950131947963868214948879537912868379199897916125972068515861285322568243273933101965049649761847336855487549214649877569708936440131167493466264704263274596319480642790490099214715073202651884666574494268721126583324105696642774397382665577415697004899658801925965459667433827633863391507485580046379927435256828554379980273269446261864295327315629040716970128115761323995398187197366546707319785413632699427197661254553614966334925537440225598312870869996241438599619000617705321332282750823026191555867255733743928338962434213364934847273216234294561332318200070455943525552139052465067798903753001225968051013573882401875130055390639994793347518093884708216763543258852139906689938999612306651191256170214348251310452364251618717680007201305208424283518099551448162587294564416668039745305020521431624671705128416844862999409605640959938078421707995349773472700424822780176363600153271872778700709785170139139335745838682907213364851534748077755304640415301431205359663965673650927392260273814273906908920177519162525466129860241600683963090061568283556657602497512833519958139686821908956855764525575639985158308782944467779139897907806064663465387541103655081493132540853914509184247263075287774592653162931876960283875855370194451880152707737153364724046594410372552009291019021124970280718807844617871458399937502445885954090972765101222161673500302303310626747230471967381965115245318843339559069738294102882604635473214719894825641921422305347867728113624257461483259814078672378746098007811478017044696931661942315182350682573322281902352604095423367131635817250049823978422564652963867604850021494344833106458953841801265660050025234205018148310171182438744836758625379233035377642331841359294613797996780721947203984746918622301839677710514174281907263851785486573598445395570800667175520830536925796059190743876944229151321193700405900851920533224351721012298536947605918582233917974935277723851501523812261081508065333448106288454160514105585242273395540263038109567827290025019442024364744807327431147176722733298877570506273062540836922818134452631602978270834387970100358173725370483039094363516791224379511604244495879335692652488849216169731412568555581964616422118385098145434441705756706598019566743263406454186103820660614372384937650012976181664812460654648834083925706970782295512685406907004685385987789316436581319041761414835659261763511107987455644529933358835525332719989136899765804399630742901822378365855719773104868249019432182387818844867697818397479411237286571921688033947690250950198038334100536238659960581852615775297113936327376116963995069601694695487900098454367877651103690934068204058618364262202143328240137177992464631939387890875892725611397727876159316100043111099008338512419903852903176012855080021410446428232254414802465513222228022306569255087142026370331250397170143384740405203356373241929991662698458885085683060393363345164945628754512438833475999448920118345170274782966148053366256245852150220835636671728606635824773890608013477638356216536834924124315341760893214179665694447446554591977971386055923112152024770342360677917770337521684483160374328477454597637253139724066815558774481427455715095015330125137609588060936207716644370926916207738933776627511974999558079957633649409216670586034655440725142100812450410684232801171240614442014052149759027006753299905178253779211916419868531441178437914703318603595865945235255492761351252706493944250223670226391545801917678502436601360244551933488646453774433028119924936424697495026007817570338238840757953170043407952811839922744562908351131744122806756408354783364029808561094980028471474636685408280201277787452750480639211934561137928662576626178617299042293593866658151158015495915381899534648244163538117478668031131374424209120927928734117327325296242676543783481568089815860882285824229172097104881455124914107725666611289288949037162573410613063824737213073979379667497176931555041421847948714953008138268790789691649011323435580280975638692776982677407001710963844982937189775531564546982596831305803029228092028435166794477104062036592578970449614174140108177039770465503088447248826364052641657799744973143717397603827761057831988764855375309405449273421638508250197041781636186981594782666360037299194571301772469415625047967705049897511623311953102189040062411731752769585041595876428975553815473438128432095915973191970693627477479244673535494602658414612580618306854480686695676588660509694170573207106774748355065197475590616678930975268028893884518453306731233628650901335091690705280470480012392687567217681465512929275956637553332430368583212896742059320156913917612134630109103796298294277251389057330867150326459129731274682435460446029038488128475611067983636857904606502915164681003170601819345963220030174602599340600027941799949746850100786708885624944751858394809525630683227116731081161859807218128789012255868642816320166277032701147374260021933403514449948410969836098185224723749587971381644733947865176408293709429263074232420389385747539155708624213246616049432638287649005031042463376537571037401011042765863067962131239439990233925956959055189330921722806665780944285046107635313337458509444674648832111918492659159393798923851281678897233580068461765374012463360159755302516765487482095485058552234147102459003991906100300978942235298141119229840138349768863850534120571802368854302764647471371726615686039398187410075428772801269601609082399889627179899016439689694845079410420996160686621024824158173516762969684996587130078694952005206900870975374447388751732091266455620694664683629935904232191601278676378246720506531560432482209702863643359925657166395172671446149694384217401832662195505944638138533769253165490663456382417902533097716993458480755725756189021771693697949408643401642187833584794453099415641820403599806419873762703100849579840608341135998790715894249755342270622675068772396521657459776635025829041681295279796032566546506219732563994733200230831002682240090232683304328250312282930715904418109323803913759451779059741563663990212733721653791502436126763019527416868468629835756265660794874664639510160882354419707256734751379671184744938407758253118270588361731477641841042440784736937461654188634630630475255110664599650482195599080670007333666592711936830210567639463755688535547085069086281193596310990495174277925193800750676595522507108929511793733644681050377577758175532878219010453738718739813796861596710788062434381264857984555106209951833833216564431478664972158426266104086080695666346030179753264483951503289295401619681745765964440088333362676707839053871619664463291860909916443284907440254047735164279805563123693039565864432566766032310802087298420448998767641524902827096773446422375093120188203554306796933928015463925262500575519714120341936711904550165829260269365617338758796843773290274779977378429875534952801118371966091061613900973065239505743093702366450485750546460791015755212561111384443449367963353648981455715393373728632812660291294772166155283008660342743770091960727058391070999317694149191676924561271070602207945409439458760691076302688940921103497651014968296937193637567718036106974732268892173470363428844905726018568871434995821415300488530465765597617402242875174550296263134506839908382438468049211578663187813747365289965224742349326663464587267295329147845810624817837177633486130600545666307530053217437129281592195188358959572384434929217065754980059054366312506790686450345649112645811556977895035483206459548698049143958134754760891814732627024201644288233809496731967287138990595988651993282304663255969597822203616722810533752363790851891276742919644548476250888732921528337164490777158620878061226283998656617727204757875153970524078120921729720237815042182911760508336776759370110995039823722379312927563617421614148660517171087988485083785139459859211272867136649957018179444851050261536737056190344858702602125427930290095496864636008620493156077572119988124572870412665395798968866175520086006467541304102241604362330324932257436159315740141982199975040311761535752904485229449383961938523800992272502025448304946789286131931578738729238267158572508819359341163984003640075336685692135733783235361956435324827511696457980871192225368880551121903861714338495982701565457022424718239395917227202726115486472040633862136099489738074182880973209538569381084671168093237375150834764281142035353619577870228261738919124956405958323824616713966032012034903776027658482841521855069371383536246256757819269837288211800978312392191645659159798431764090833219387942361788763590677633809451882080355239395419936611241391396226511469267365303459485204504181055328170121088904690779246503895277342132878752355287933234055338633770049299169920749181468776035749620793966462384116505377558183640649309343535555315395490413061142286019251215605059312364180353445261221520946218902840623827342257544647324786341449824721445735235281637217114263996876533486795106626979679482970575806508665669218657263417811312004041134894567771374671103152162836798425322343806215509029572507843280551851820285996450106062523973692469388716522331225516468420751670192235806711834018836387866011317966333659489836413768985852101089018447928569998150629085260443762373239299063481725701579502908898910767901079121796169747399142335661813456880257025078604392620495724376204517771313965654906009113562331144756925613412257044854586602510423373807453332980207442651343118308137817863919851814204796610079890753649557892826215519379968595315872354892335607387949667918592917549566005677419841340571723367674764313255196918862968320453358729869276243605679072623281116257593674677179441328361334148149057627452134251077600041520525422128975545996556553434609164245345392308182086597957017888356628501717710834807009726053370010247103573996747014166366739865907524663816781906716007605180908944739146557805789292923692755866861269725750877449903329336542850711724733848193841097153084484547590463545823227061331363331043407768652788048240834925040921817193987882146371638762670776883189071439313973401265137569290593397060522624224226667545457887943347643062774770848759898820077053906252529462648804126166316434191690123480444754549903906652052009642043461127069255348558413176785054297853940798396452684047770151263812954712851648837478185625392494326236583210937856786478939989830746249403137872549140915639555167065289914460662261205301406976606382849268125578406755052255001223768939579467408834251928757996390151144127027731204395669352662785003125150291280025182397554996279837253383345679004002574354162699969353838162238704974191009215653744617246690915914431647368600216165457022771309744599454979794320533956585997311371284686324513487313381331877788171556569754665537048350708203049786830347656118981331763843101564076583663986779726991964222645263080539418971471089008240582700685487434343049698782316132369072720935179563435862344391916511139890110886935680971796023223240394834158366823558744221403174066541991744003242503917674466057452432620680618592342556120651131157684700355201891150843524654015502123960721214645138557031344836813661961086192580931738463661245265793286961109519683395478534685583721926961813050492835640566408816941428079352131150627057515268487294150235058635656273846901775456161980958323986522521099744869430452073972873783344529306059335524945107103229541143343536426158689625234252347677244190347815684586574651012938845413151932680358688867797541088866180484072024181264153074675971885447025594521783963698015061443221695749823614176196252801350807157904518994905146860993167311755311143708523270676998233869632199628840857665551322996493730249853219441735503446819680971809949195266417688896412029446637974387436456037290170685872455917853136968861532712604190155989170658132608342770362585354496318318164337496129991960222884274433615890291038798928354502724145255414380858967104936297424821134590383156783918323565244378768620358429562133195711889959979402614312206129155247131243047767514543793640030571109917709155399587474698590819259048260944546707625306917523606435841838618342305321250850704812990750462606541812808378209276654028496508813664884894619855922654759596814193492168604659909658302159119293439234878696119173579937125679561777040434860880051407369606903202935333420669234806241871685126416589827042809781683665054038365979088069431713799703161109520198652375518790382944505045176783954694590313993420117446360166965706127821633688979344164381908357105192502650601061348084023911494477512928927758204138040240662568195628021651354408931464970550247048768901250897803709512053550088436467932645771181289530990994660231398433530753009171853655414764342280558568894275348116384427142694872486285626694118764844554593921833370442576034607791130787773993509858676550246338883601811700535172098223184275602804102447761690580195482677925822979875686810367327248526292984119776166062905483821592316034806075058117631321417668957150328387622857055828508806378037455514300499176392157146216689793274094821505791019354942076713851635686469658070849408246529047114278374056250398963131514049644807316693530835382216322748529316177719289554593335042286956296087206644217843332072669006970671557836780408717917812237612745097263581172586042227915892578149767309949717730690644749760578293842005090926315197291889853313941617388491411983013898705588054329412146545694591250313329033065919092077866926224589539870515016553442706117136079626766282068456896906599502413269853077101346716301673311263223257836928008815435420841109398204788108087497354937240615272519632602318900243693060462285392260239992577981659008149747982193962921585427716549692099387800044078762243724503610311800148168182541391561442374016512411361775273077105610901874232982113802714912147127374168201937523118920126477805044025013421569255325340128880238359195064842972808961504201057372068149355786973931349596596465327723077721634941722020933347571187303709944997501370009394844752508305708481418599822858309407827087221033033140475591490087584933256875241576972913933316142611851135343279309364632151134332469291660185791774397134735666496771585764380400822180495638280438157325319179632582371877096634252518451608815240574297790247139129217420561556076661136199617867925471081412987728391873388118251740531159215670071919554368701687953986595964190416460615223958033696364075483805228663405000204331917998787011660103851055140404131000369202291435448106902743323924829544292455996688894040934038997223771297267867882757738275099108608309830788322192358160418472488227928180897510086649402539184416072620161140006229664205811498894647805734000455825184993319803924824948114217129226998044822604770048787908293714217771745786356462950534483759634312405881867623368246147139749573783459758224899674613035126458545590090614146634747530040562734835166595231070504070759625960840700835508114533173485021406584691846862323351627501437967272123372669784856387367013475960999263200736555330370879387569224309467240954811936812766236570833934566869392312115297338478611884369312867204350367302922700372992505146178380113646016162200930159644243081384761312577984058950485664236704154827731477116158717291706873962718776834385471062222846237142009848192339692719813930465133289836304664443104270551191113819051931109287678897366821343684484235768638755968368021038746319973005957221499000887485980174178596183301011839936481916365039248762784623612069380010612327977524980551838593512778118585995861327969771978570146921118845310805046106453719892264373408843067803613347891181680356683883109424820726059870224658698853345034323919734476346922188815478706051529596660240945930705172494235150437649913994459592527567880346128105903276036067879004682464187256086755141541437118695916675783988388168276800177647676880527773629115321074059294870801370527147216502109318949900901002823063013898543351234691635947562160624735602911103448360828358181101126743028740796073719503974765076089823455751085585757756712670426645688250593855699836031529640671052716019100988436383015294623119992400528633446352011460329665449778876030071609032436451112239451020467154676719848966027313105799176179911115964136259188937783382172471290343510809054239232548633184723812127964914200019814520453505258864391782261427903994533055603127306696151493038429573519719906025693331421190993850368922365925328971217983660493850470016139230209603776407628524842968561703317590301461276113715501019408129439293655874881478993046832022064758292431022501561260856360793466797830023350766599489515576522526607165416275086319885126404581250716690645755808627474408399297900934158594962677840587441959286136198294986584977722829486093493387172165604793672949926686741401583198808779515913095667699456075616684314532002369612173611466361265919791516143630033562581315307807226972655223956512330671078024856106630715269931912190763640602209066677947438086309253243754065537203963559261210356315926882669029119399473677133903098006920516565946269465177398427923561349559369542056723196814065588990186927440574657787441905121357820857850808917557139309597675979066078185619646900621237287257590349862520011154138289864958035367011972329750622230045676782330025026088325538579327337621165129630251538200637211999582811121364198183491584399838362555188352801355819642657378137811837637620268727401234995680308662793979448924096221030051382094086755611241279063423160949643515990755086775405529898022505478345660471835507263412968853436405207436739499277363623868087162367617298354876277437554331788129099508542896408882833951624084254749263871397530357718199167564601583926283851539992785203095817790068113546625345274204177045416610672231351266470073227495170469227166511897806542890633259466551257769591786527656828184491388282417592987169382683057874056474740016480570186967898192458354501483184986966961494498673557890875009872129916459198824892489673771175745893185509319561428701944122605162754439365882498862147441418732189896873687897861312805891345995334692468371432974293693481422028596392506362664131072748202120485380335711728887678589217501066284157879960463047878140525743006359910503318041903491018681328996061995713240801813738989877981845970816898906537084587396323749602313065729720205674725770727513709919659981151332873074076862976558978509869074921706665774201172188731578673692454648114876478435648772615142373977214712994890114412306657432584616910309299374188490945935591852923918832531232905436985350813987727173715299140815395781970192086996916408373766408721911490303070943122658934278524120390722859188579512450029997649722510185248916071173939313406549596960431181537681853964323344692877122086924299913815503863183839188483120098430069467471045130026971355600274548644500930297971306365528311625136959729852972565306627053280639333784045871955289977457689336229416164467345981128974770706080589133252531086811896288066018735602102376801840673726024791637084022032029053657063350968727204526729321878205434191995047442875382434898656806443239606793323811627662485477159192554846966994652366127959865872045608890398304867541049973445174630139220847907141146086455741181828284736920299086913366697305184723377852748708673079386887277902452288060067081024490842114188490512709523145096065710782097486808902414132020956960443855942856083138107920214840506657967939320496863215860590974176334987187674191092440567773343638778115300119769066542980575524638392725620056550125932962245879271376632772928453910505363063076244451788708275965696742760003234240470124474185931196588991535872499845312442780788201125142990598170484786546485197269249607970662463131186751919625185486927329820103488670599942029181978230386634195849749990020403854072554281324402273715009328185928449999878492873598732130855230878824725740525362483955358565502882803644159124771551432297288923243919379564926789279823130649900595029624835086949719345258371878884990082896159211791143786802723839210297748824329700963936361860839113225870782292961586965332418853061332711910226029330869103426423368165118035281839375295669705088593199212585305247403661609142635604525743813854684240578183951473609647302163296768055551342826246535646243321124733773759894517851107016762374328426584184321768132303716732965640542408336105149372403409029172294087184906066860524624928588080022261791365695652988501715197070295518687354843780039960206340806980250665531161556056202165276166808711687870336689666065900464493315045851023925906937730952838833643272219605008273336809751221614729122285736919569270619786765331755513242254230823509190879598351896082994692021745413071296080713446974367766724289868804826262765575483436777259306991965596566803230629306833402349607409904246995547525107512062515602966317388580654943723077364177745790189344150532018120175378807436237407702826830916282506256521309941772495703529117597297788360129932973535594081761908006585754557456568276227681373624298104112159995189928854097527802102187262007875923739594358351706544430630327940724102668941874432627888422352758792545256243779768468802842947067065389346011094912808858265683316224220853302975815549804716215937305951491726324333035563888156487730522132739226554217982036958042699471048809816954468789826329799857552572041396258178597292931519927401970588730329629726441992617807444195783317305383411098018739637334065511853018540015134015530580894613615500199772668836078894885394028488359784205136542549316666481567310084757695048676750814609325375174447982867240140664639843053160402170335759146888336407377824073285512416251785660199133355395806112048421867627877036460297941985157854011750273689287112607824927091285548217053763937833474358509260681428179123124839767839707638238556893701464865973870397078100490701510556125114857776635897392742249196466054692766114348095370856132418353830390567487939936124798039380579703145759834993350498099275974839350569135325039968657678379912848603297840642452816879243688460141923285536238363725861534473546663536926806451585145083945574112766249980600708048825450956846912506172191522889711069558272619600490161263687102354295539736358673053112007138763590543953769332295846281921241454305342796104226565807879349713011104235363209272081711205499563499598574941664343005736438157765571403964619552957153575314258663356908513367705961712819043236823706346003838695075786554972504332770800303421019338597808716447423705123275892732912955056689009121599195377857471188675868053479839186625711528446623054646352400964030853530867183034737181823547299796576863166052268182053712589375292373479263397559588172580908809423556552446484512591107614505194841129413442409690701156413438961575799378817004632652869636126309609584144478824339660244705431244995968123645281036534749065697488140256594486367847085849057136936155359271369623240918486668599143903269908904228338171976771602978414089312725863228805707674544338048837973694236518091722204748878764616916918694987166027329293606512198902818324321357500225452480111610958224844260708070850050278313189789058228430296128543509313429353723405573098728757154519021860006002345349466174111725666752550938546516974339626353474444320264584749121258487669927211513556609016988111512951123897564495264279555912199804440600622896019408962266695084022454022024660802130827549706261117499167116610106628393242126449108979573708804843011830614345004099387684895365416594528112254946627254089022314989715932545582842580736491976229326539821461102046230075229418445174022176194946786868973364570751980615332148148450676097889149111952301775396647148507275277471226461614045622614235157122437272485845421382403591393501363917940324821568154186554790180577388626357390378649662580397393996947640421954422604194759382044639929041114249186868201184886958913292839905109180731883420850253504884459796550626013235556374349429363245374665028713801244076765443636821839867665344854548211446100105235783245465070669323962722098736956815213910118575823331221193935907410277613453759833339467347639863353919792521013575435208368875044786279778065488792535407599551195378156470910292968100694270194972558971803224653145357348970803626447875567410153254668257627314775347381988232731552290432117323389233404837880168505548942310523420956312093206136927284711139479238110496441659409931971379468701844922630356549404997494613636817942110164032298520664640321699797729537722542599685996852703563671945537880583273634386024693464954061799114544163474827060620945531672389864319721585011789629725982391173730940504997462261359364835535930867055701797514002882593122683590894403982203852158919033704520071880911756331141276929152052286242900403072347360203912641350173421335298078554812707109544307899475973507494738152726185050643415613675066132794925454688026067251104329239106246791854534114191839904279576998797362264233138390763871468386631192327816088539433675230226237907259945442826095056025556443219159896745208793231638463947349006522808089501079545647494418268283869158983320981170550452885978070265580286737883958635538289266153537026333127395514821298722450776073985097799111710386584096791455037282546876246814181646914333528441570018761153052726149503277259558159511604223414140441235970727519571233794420613281127179834668541226224855730341221554499901440241056416157970038325617620506918853864559387220779028558133721187987775208587980755232145845579838014704606199269314294196749792130553130270786323841243033440543239819505301167816589122735159967108257932405060135203875561234810441760477901128956670942976826899367394558999438365653669591666838640681396254570623336266436967550327779109795828322869701349624785665534936372428323037549481774994499429360726325451176771789778042003540594376149894962002354956348545077736160716217792663642053206661701419417516760466434092492316890158605163290287266163207618936384465607032204200265275663434483514310958793733882886118073926219460411988044498617910048302750187042688847453714728728289151190603388393637852299268257485763319572687998024650527956068015354265946824228915753162211811538788642990652114045006607211917472097121956417324351271146251612246244139686084019914533661824856937805993461989905525678131534438502360358931371030878330717627890983373478335054712197288929257009227978711768615809292672346277982587920234831816337205997372226499314075351121277203258098721287489653099330407395632996158665068978375933005902782404742831471069619525777252721064850610469980020582627502023556101050295487345761089792662988421335583238415245017182427100964509586179317048389519659144523197112180372491582212855377893787169319470817738963028586581717954988177731427901296191980555394452546614115219800044074185162164272270416087494855837028286864190595049344370692433405522964250737647995992879144712172404632531649969500828546006254222572261825900631174688235830739968576448051310576775670326519619191888275045165892245901318062270667898110113972507652635918578032807179630747624063954999127572775581089948171571234872041262297528373726815592801839871016549735024483576715215353104095006361062324654819035678260019369630304622868999371686560442779415507908152543461307378785103711034535940462603989248350796113188492894866644778297096301950066823300576430200936212488329213328845180801604703099144172650806742038473888362200780180464692958109043332252867429283496347568195750378591247829038942739316510373771671766121754408997171714050807473456103208645931736976758012248818253685391644975313944661681563269940119052468241172214146929681348561856464973422984260456583809429515229154871243766749920124429057149399688065465601270474483611052991554240359390680668738213066766224547699138354113518746851902208154916766639873556635451652410478006161538071113365546813152617041108521594499488837588323866068922372095850251730747356199490834540961057880577447835284408463560305199047635282984484060100872421349112735125268171090679760551312615106809332720685046121058382565550430542955385962813260281030501342680708745831658447462450666479311832038454447095898727526983736483950838873683153994787272024730141435581385382549250486967275864620437805813412913187757915612711450618157212017693282104507499890570240797013485551400550825244030486169534390778493354442156967277392652702135698513847289186598369913139113315877092394073590029575635061885283148829287863590154633035933215899518717970943418721757468776040915730529862632106239155526683997674440410770674317226032575565051378949098314402448630924771467321639118613153909384682611030947753775799679348239252097017348931031900811093265294023172731356082781471936208738694117731396660083972793639100230366661791416395754059065116628538038782231065889714153599322948644713094244232261104001884278784858772928399836202695343250936047439082760681963351216149301946759051846682323508608306121030717976926998684725312735244450269887912293236571171545116776361938854256626166073475060852024369345435629623505489907009421274925393517055785282562811565724408111625238885240310306782431046220556102879217917730124984529105864683537942310687876566551446952175142033947878476589038095132873868734323798241192138179545805261226392450890888164678082632409994807553098589984630526440104841232565261350778080761733933006663235041629892306753216046207999859998066389566333786568026977870414142032530249218070451793794387470256190134896057854235912642806752610274277952235397253810163652375040128413808731171408696274773577902836583227037381046322818563947215571637512428240692625247808834954161420081208609379809006024133521156957632003724270396609240095633947586352076188060733683342568591043948342393590912202163481183038784435456420469698817924033900147467080008208341402937031549692330690515041524408204968600888040436789317405719072979216752570175136348010141582309943016359270908316781628541603617688017182705218624640544184928396247377306080470058871645418026872530275217814406187881128375207758250937039083847984601546350826107660921556230050222091899834903282531567302030766942188926696816143972130101390994539610699287185948891947935038963819638195283493922946405806061848404122218710736388955342717482248666680145190686819041996272644291510747026687328746210811989500322285121742503780364686538927261475127480958714557089304734595022309806693869767194998049175835554942431500048976726571149472614793915482663406490872752289743137624426106672016786348856476309532020500586067762235541223762152751652345939000048305265117689495818245747329425723500116403193419392250141701301842039116018849367933198567497731870379588594909624158117285337639491659814078946649551622473838772460784241459396576534007368210062051083550495830131874158943418763788197501798447420133197570521969517124145660485442615096530831410062769165256287821328417124215259881981740148051914591891890517483115238264980772484875172998791255135297576935017402316284252316529647992073509611229031463310322078879097228013709338370613377020409193514844318033163981618110364836436286402964493443029867583926276187825528790913476187733243338107745301649452445994798944255329195637093357568825881698087495668859357433503205220659974975367531931721377730417607675556722637707644482750647480440887083360560893714508804651715992852733693491283643902171450644514254217032249711942644560582892785242099728722188525981064373516901593347329668091590550423787786984604552097567375018498695831191404387159066688321571027801755600175537974408592365583616078416122207644505209401127696608629178577746268308564948294210836672557727005163574293041832837278655615512274390552735103064646917251260793480002524934307296505497539633520655073564405466193949976752488133327908264229428842498971942881300056377463337027346671242685706976526513590720925942336684194445527697721564047420820912741122273730321955700766657808700619883084918428931841497676550404974737220778813084590856594647782330328138323545664091303815762874815565143910549970827689380913145997192572071904220533536110950732369399284949534584487497120649865613289318173667214815968283011582253129936657725507337618960249170384480547019929589240967180627041793953130821481596210812463389079802931408433086944768001410406132607008515613798962098677424014640838370455078344894448452626042791207719018425664221098756542852024111459817519554546649852088097656288214399264764711603155463891665057889220736256727859764310469795551046203221363853386334962618461511959149866871471786700434819638027078311961925472145513900892082746499152714750706056068245961451784785108757553496667044684033576922670707619874109051180490955753521413358173841136103942575588142034580457914966709718502938210892366244940024604854450260772514250929920454633472591209378985643867778807185183111823565555102968678752088231680139973813459474741363881020376021266871244213688288160304439695701698306628453532302636549508036755235083289442129480647265806158252322880992808031714430667995924987381329512754601622259906845643618598873487360324333142896542060848967783480233941271773387155041523405264409367975765277589826951317249380839951795009897258229730098444388892121733893381841300358807088273140335859015947832599924258441079241735069129916437032488749280430143759292499362512544398062649812182975154143042320293647631921098809028260532746303867038947899843626966607974346769777204914127729142795707765712627325374098213780581419719313049048712259583053864865320835679585905770595377982405447655214064364445272237379321928201408702227632342274049980081862812813237403593962410851676170140750327191283363611149315437750981798640183768936696922225842681944117195292723830383842138586361004843434627327716487948354958152725923412757263928742209391609521899857365336734909632720654027270399061730281447076328444064866593738834685203676693372700752636930100868489038051582772646395284554898392431124672788715076369618224400876668015617135840301172432129762877014536624791496891753839504872503368046297479841391357442944280919717458459643749192811849305091806260379144536602266594836317222494237659383150823547275714449142962635446261747498573856529802200747554139338145076784564962013327699747460630352166167955780198741256281101885608252304433090876179466660932753553224121848281597406236201918186929047784746791130845292224069538220971963187999703689047242976331545671967856309644813730177043907462319114690652914473020255559413715207154899717399014031679314014221224248384782949181651826014579083947128778095310424167947264233227428661367267034203306985953298187998610069395325928526021356955196844312799065341899111302577667694603787266611365457149809049339420804907383059961415968048495308837167151239396103231908161341747658312623489840872680965678219218456625204589813357228851206388138884444222991340335761160201406874811534006133380209748762384946615383816781372356218014337311904440435864005903823834106489627016491234565966744180450214435429628409161741749720042888698102843558484887489953245441486668946406540726395488327642100344473757516612078608634633320226083060345675593476279982238984056218508081934092147293071286410507494050377807771608508028037111878527674722388718365836006260582012127485643538252942394101235944006166516842530147479184213407251515289614406615675617279130711936240850229358962954462471722327836543727835636098646781626038005811236054388908370267623400863509713253202732520000934025949577623269278031098141964869485760836584193413186650744015670238890242140523261820155508297006147428276535189462921920884307486916034750039042162073440466334025443459802414346819650033737937794613044598810797075505973456192200536558912922452203507635359695223201918108338267231219616674074785434696867615452220532492475459095481872626737111087741982383634314081953168988021198065521909548963190552719807417083663676039943721147443655812942370745983856396851383315224901710413777884908528922055728763042051549462919139250262405373159244512571161435547939327061088719605461073953318174619048789253523697021049410427573019154087602637051102213442195604433461455433499624991132078879354508899734792681070670447478023289594870437870147873607357465854502410049264240852144685779571282094491413023042925472121875126096629869511780012757480770059047708944263720471776768511629901813309048942620940002099387943092799460951343429054260150286112993407581725337660448467484490596644860231969199731508937061657469831186613963326029159032205239974533872823480789852370611787681323681621375534247484457580686683920851112211962043936300858728784831908613837515907462326938877865138087075808417504717056337831187519797176229735211871864735517093810695849525528112709227046901599978041471087274597933916930410677306206642380349429900603548050303750774072549866119964471558208940446381023095505076144423919597308143365749706275839080155348235990266828000244852988904911154819868814160840239060039005848533576140563749372559547331345876457235057487200444769296505833332166375492150606675907540260849282202601020366065017944587705794092238702087926588513305075186556785364678550916767643016510252690767539401138841388916916738732057899246098324949603206247037922124421102664176411617350480739965834373964569713515185417986488809516066778072076306469291090272292504596474177067439956002554469797737441020021072400129167693164581022440714512102482653107987476071722820065548142888796425989629425994713033670085399006177482610384092661736730416909062356227938814126406682402610797053806715417074564746348606917774952307189647635566193229228286687625071040443625985145121160406698585006609987784051640359154262457674319472562654990201686812120114951703439250866505418998434880689511533530198553011989419412067034482673735276597024366259840305427908456413785619305670206346322880327876979949693398851219497272639481485669141329769404256703983261432046209603119660157074053434554885586237435802746340980112770085391102303465427780186239206704326295196902680940275592406257277699114485539213352170785782547464341001085705184379721533603783604963395771529148331605639565464040523272037438373915468696809431274755974406749927130912037212723401528770023791803602715852214969720313657796948725108119393563711651823151533615933873454335851441485646930811605202071726971588189682778289593457858335900919224093866755102521845874211486038486866605576728146521352341087130747280224233998470906738623108576210756909960698984838168856945066909372217819831352420197641321564320088917888268684256445233218248517466439865894298169324906622733156421175625471439112135691172649777794013395895848282561924801190917264443197366634974132872967339865607341373756048080891617858090412152665024850122947277475031025082167122902542411380094427188789396094923314170999561308395214691232188399343892084790183690547258474784497924981853802506485586103292100425977994200920948012949178750413358560408393881556489637459163474858597886478943432867228737887095954409053363026073945585573599584492847217090220373324477171565881989261255918790127045126521277408866200567725373178595315766303570866407982673738669038547517364669805683821432863716794647390655223156081570802640551476960156886624797304708489188463915806210894369165541320382039535166584271507283843910258944877308644805781317864685881441019348949384375996130277781190328665492511767850902862995401093470987527570447579414828885994455006236820300079755100218167241017635057893047041571276155546245977086948975277338089000138600601020257894730615246248162791476189393502943504926694233719712017999002730479463200998921397237933488886707240641062450699298111921230906639540203861538638923673580550338797031200300227735765252089402802835294537729390713166405313279152734773817543011507133258775467326737632799788857518119051586092590651054453518304113533789250964743342369458435054526050909965044239482293130090705149932439217879819354163331147083960188081606450121300146567498663734435384631384299397095784683048031458939271554019995406472375295042939381088210075788303360711288909842784807245944223988899133464749468800564105363496588222291578530990343368483830720520333922038936159561351308829015824751210660310784621346961988928631597199736626510198042027444117428770312272588187680538281655051438403779615214843734798448828831126097330651855761808326344039277062502367643710660074250936625963225314354903074442528523980472990372055302214825359305435147311030881359294350750655608739978463506726983676077034727511959986162128115448301967066560990336334457720109815297519982618479037543234848765522984767780385936411618102309001442177040931997513682513398512609785131184956183789357783973220032578808483772617037108084511486993750153229393988624004130534868735656634030664727827001435055676672603236885513943638109313305966972599282245554814139706993807004679886222845789259277539822466342121664329837974582201681262884479527828300139394283118896578785724868978400748480918350203944523429163503611553832167731619577358418065378605225448942510997489047565629174504556530997601502370106158692636801996544031966429176176473938239842745199272738462283011536611064907547975896189605359916708970849934033681888752472321534912544618772680656709144115596163004449930425792189604815141326779703078142031688056336432980426550796801455546406511487485188768280318567552777969945254955772019579734243145689155151472928013253358011401237715626632873116623401948689043016905667511856748449196774803213554644584736030785644727045183517704358098000982359539779951403772407264348410214589999021434205014412704167131185961470230597204237355646331769215118571815543921494551669823967048755878397995788626669861488715460150626566172714362419591176124878019618129095254248923186733470753823008519782455425151533785296746694435111155773762784704527939104438954404945645917424943252420017377568167201529889766322614220304022253580967800706986639170963089673232098793077013624647098795964914819815389563783063100529157815486150711157624573025650489304307234913248783421252670805870294132886310300796626169028629609909114811307701279239286583505841434459765861803409749289473110616764490474887799915576702650709567707627925858242198598080488135066834018724146608251358453909273444770519373625948634257300712001027444240652421138397946599320105591628278595547248134837917154097341945867225806712706547416197672538496845044474858695859058349403337236570016330483069156970951183788615534472129958925541328180906032415719394654535713221008655066114363655521080878081841203936028240227202613184887542929525509431397256353578960228625526790369402432840004195148904020584458620167071007424925364600442509212894083295773075865346114144270818301930676807455425910794764843372383087260526993506810479159026038327764689589532183430153652117042815093053306809217751176464265399008712014225026410167105441142630062460914439599609448843229862429526837617238396709338376933148390653495926654167362174209753850729925671918187273005323096887667723238063921021682601124156552502983659998638758583507216651106288646331331748139646057013948467288584124647604421471439776956331982283427901904639592117926350647350332507468981576966830106675638979616737530109225982900450408880718306708469372093081815171121141184034651520524002229838321277632748749694704689315962854047193704636384673974558572493767667444374982698947826812073838779852351361828428134830819117818983698123654438662384376532769367229954092712691314001855268218805388014976386130897899366113274687170280863521479113350674910970550982394628891784661492786401507540183189934134393845519753875057818463816208273739216386982426321591062284427786261780984301444790075971100829994652488020341833673804789330363233400836119187019344393463036538208617061326666371435698143812665979101728255992201898269389196569879654481276931108074537001422713001857813892233880839241129654619906119719494176110800778311371681061110246450145464388993994267629669827317468630004421446288345516091952019225061873716593581724763097055756607451816327589174359769608490508491838834318110903735265619397421417925704495141350700833443503602669453098919687331583743199709801089651419854213099594851861488445987255063058674408230634426157842309044014703578737409238235718095246510269746051126313063244170195360326781650421605676238627502051136674382065644043680752480934645178693681878738004530994744970217572820805429767343455771856372697144591367687383966380358489232179049451605449854520091927883937503062843938937653615953694688424923208524516416366908614643610704517036938835803376851806619516149828787456607369088718732085747815872464334956884237992652112870150530409098647077399475672078820085363953912499757351154250324951661131662192721000323104767521737634880406059666112981863763453754855053719562279181747225362771545094635775893227716954046277845821862709478228559245537390248462194209204292783942286395310592317932533392263322185818650933345043125327054321916647991701886036174273880376621536300593690398685336238021515276946208315020717835968222635191523933054295401220592185671204025435581172524024325561359116771895791576779731800324584271056213338322728356459224743200224926292930216644858849953714277979813337664100180699471017730393291259394501538696099155992942395865139020160445200167050916916061143416349905614651648527791384592096529308061195631648288678667971071440073611060644153845162896151651583398192197487706555814463840457913757841568448680783573817965461253728200657170376573219881518327529647132199730086995292270174151021426000624401758468084230597718769579576120540942768727028993952182825735565470317016649048678420300626688737300152499145371274265990842906292671962195564706000898299357371893977012456853848327010865324935730703031060249816127271365850716382394214309938749447425772801202293189331466023538029457316789988554751652532840311048287425122781549694309292177874356988401576288529323864750294524108215006248514487127490307892438507075962146879980375294016564462977579800379201632704006115422761084054920530840351346202815775102671753262083527301048017479031176275020179942371101185407381937718350577821528060844214555184914349425370451985906573846920947555597587270447416654188583067518564186087909785838676796949388511922019189468901193926144770342542502513632056340332449608511638350026292267992562268748402807130408780412371295420614887054145188668412251487238404622452481755684663342669569017897131352099120244179178343665283792465287317945983543432357542659040141547688743158583285913541315025403623982974837422425865763206074684446456796977004594814637942642031127229248313582186995797441569382265912223313357173252183994595788239538391047705014715751036748202816111099244005815820749696064427364184063005663591110059545986130464054799265685223331227013647353488177565112452352565049269241233062795837031902549662223599571263143792766501956354685451450283837481938234349630360431967585490369834089404374753049976149903917025749250410543327495045448259505402608595512015543435356963313718998139773505221812671933971147767134372089936825934499453742340043438013770328450809471935198031695641150954820764948141016180173851540435019667728276923859136790225441600358277469195301653782718267553862568621688066752759065821437361015776413516328063071465428659611012426887963787153419595455094547858230047967189587578921808311472554764850230136970575084925247737124671969311116146692922679311751993416012644953926623355440728020641354076724320330267770521907423302125535458756297985678492949137410506057477159642646534217807254597218441218298129014415287005255423183366713601511044659733841904008805798734925924745456101736912135005723741024149873449114725230755112473678995027419297426068294061871677601516526874884564904948977481370172915384871257777547673613137096337843829402549645982597768966858083901193237749815129336921215506453522172865635333671959998106333149139964072955982017715820072409720856070149549656763594935735258251961842441628952101827629749068354193979562125906010136622791082072780868713309312637422232073268762899981711001810943621847753966026401222136650347755267136662263673060353468956460178608164779855026756151590349354915281282233059174609220406454990631105789228352811737516104262960890010662864118580126477502845767107557822656065722917883045593524735222047049134862585944714062505918843246725076154028225795158064324278404995104305733542079101099501276255284329408668893678624693152332956668591910368912377556958955771260106980187114913825110338543733448975450465080828124594161763494192651347453564153733022784322308893482764815813199949001980543038549815481613115249147941980319522119647038057541842239123062115157549913763508299521443153804751081486841889583032788018000395704608196844918498617943752447767740719198231378585469235200929268818388296434944757460996423997746863218163598799531977081846026866469343648445377308152847155435311227586003600476420881758617983867078990192062469328057124613873406329355527842914815634596189778344155135150797780191027914321366528904866321974128310909605376546925728290122187007723042150772637926525035224635401673489413200316054549578391686005602966059560314952941669409264178625913620483677767263570521216241147915280854839759530761874435909857826581173293282429305815213157151454306944652267342189434706754521647521422928060563969578665258543477585071876831738270909870724656966873660598286983397120186746026987919542344277597990847497035886212947646941462203300674851151079524878802127187223644643721669791297874956719528635255382205783836437356522784295067844446003090821152910501096528055653535782089154825362321181835751496348141796542314353635259467679395643204664175654729179477587843756486115390547445154201341443324126779838849255456038555829935104962883401207657443326450825105636231467098576965385286718504963014361735111505805937805893988246194258718978819090659247949197964938717017590663511625109674497913434175746296736491378678612734255652676311515806744483548897958385186950547931295373689404462074299075386943907358945476130881377782690896289837900402671076361502865230249691508321364178343964582936028300540519540312631090587973974826640174176831559278896684024885956111850339988944495951128379668953747145619283137164099936191814853700403510984378082464217845181197924829839553550848755406182483663011636059395098482505772664736784054491193240659153782361939483166551394168970950866021108632786366389643852119600644824783154354516437643847587143727422562270162151728014494945184937462045452403155574808224400776647585481120669961389365958168648291758360657743429548044584947876379796919223423883407897802267775104227184318120108214776143983558328528397326992078857951402846720551852669707196823361605998962312696121079626451933941621037007436199146095709253212511400061801728538383103729526787936047284932065506083833324400331524612815431722374302726903803177923261089145454432824624454452439555011014638888766891070536963928587112537981228342088851943593916529429452442226752556995636574446503023542190128760806079824675542865195079735283077370588714712491621132428479406743349613193714598461584951534677051565696390533111406154713826272499684361734339311065324561140193824160199557650617912776304217327599400618845558010701180436218312866501316498564725438720783265188283241699288935602497403310385706862868691154889317870797652922961490538309665671610336728919368733107312847176912442426829567674554668695844990535513765357420787385623699129917655455143693690093739328056326969009819658115463967350198131498440679200178819432591378538621875578586091528742760567420522609306145425001415910468560459736765612048700855418711674727948047482502454003364544647283109973788310468538669942664520023657184489560389584607630639539228011031654991380055464418631806708110005529081116525387462532518039411540295102575760341375262907990546422093833886557855590274845497682635806055216903878389303209718467013870958363177777336236842195061653546374111232698507803130498065783229858386480416782281198577139258016940833635956448147606993609575666994729807988813045100448488626978026588430967491909908335105286656487245547022570198433411976465925631990103593954942161198686253764791391888261162365125121924232535230700752211174982404421392328256775623435825737568309078352897700646412889878792341381048803788308160173027831477930510523549002693795233031872622024381225674629578028896641810142699361690370931126463092014531384824787908548449311811859455941252533713551576012724710452313509742019302983326661502185186927704565714739796254913343777139276744773015288988710165836833529387190136899231934636192889108788001814938769254145822315127795407800840381488322783373872034109490535471177624142055549652901741923344077568537189539997575055283821663121655708303236910344562157857663720090152229337494914700554502772662048162066234783596452928567088516509424708301897882323691353299650334058843486159988534972909562100018925425876517884950908178139096505580971830857276071479110488030912951856054454314248568487927244566539643753374350514399496420453208056111113328596377940071542954087971122171452488608216320104415429407355490762552883018319577911857377468410072479628693642635046432868978837918989776634886384500082789965130648714580937038780213926586339386488337324716056081811370569084943391295786203621582745145459891418574433956127809202374219764982557884940162373011138384544238344592093690866509847566383577207658891907565210178468603373537039258946645969454057343376122902180216419913209965248380179035610007925822347952427631156145714876380841229776422178672993903500897885300570151236417827900225809155775540235251625390963938801896454914711021446074278317279826478465769212081586160190005278874048865094821265462175064319567891417092303729971042660987833347708083995300282677927922729293219463766120186744549307183009834253692568526478844216114286279356487560684037484291109439801895585985988621482462845760549393207920659403769071147016125868028675869788571708468163095103083573136938467229887562014250024242816171021359758488018077248176113197787196403019367390239706697075593674175970402389414204775480085089394155452275788744489933234500434810414726499751190409426426880794040639105117636052821103138486463920545066098720809033281806987987876283142641779679939638522960442254368480315907537604175664089380265677541088723170299347658573291370254880827071657104796928361986641391917236714726396691562926713125061292863184454212891708327903619997629425459347132428740149952331281039476952603451686044017583775225515120562785104173533550286625728690373208718096826609635492543284013784167534310080496493145537563706598316875871120115037088546668931513732358793153325728756953726239504637682871772160158410520250368806438065871325768203230585831642801628293766070303866909050986396369062848538033236206638148263846445651892783920043636465673202175391016173007663133491323508038395362883489299272824073063931876329396810003005077152418736050587343187640204867523911253322678602131347390318307237823768390832795998340740159050741194529766902095032310312841926370941891477881585368013044455694061997211350544169757979307836730388716423763262605783543259929052008740612392366775333396077814150216381555910131671936240320194718490055616973821500662074872218476904453911040099238386558415592881649676538688857397886643450340359282344859710772089307992563307270733694144818856017608683247206074602380361454361602836953662261742507387074718157891444239224972337843344575820084055729966325611360101570266275259001587503456521214111312771970751728502778687703215560394667715792383953422618283923036311244930829825119598464988763302464875914791224054494964313192079024430322425755631039699136445301416143900912223173292326204698648205872091866332414783192366050616822623209107288710618329571003456883223932374657360019365670358146859660604538133695625117796146433053894332363895990702953660817466166648151912553899650928448808677950073075003015634445945718074950202526022136689276505170908837257148119514799818246845352078267488699767669251196520310972982439296880612391874440996676960874516170670296968714717063563960043337430820908736739079961226198721382045587081348259410922855789656299612799526945977797809850214616263785979269339321975040754401494310752839193577155803217431119403475833659250759652929193416391658488926962478160678290630961699687582601810410665218731818302004879814772861990144109918733815198068049769332641658680628302657668165751302788105690180647376224357040170763371291295316486748661220607834405792841128148211443724001045808060013212411214053173515341335699186071186875769662316235758390882500790882423666905966624184061255861505085000222885869485629051101782319018572329025589652481024361025611766262355527895210029850898241807192007487263372096692202602248110164966986123854296680843369827481092008157869990586877645293622260785904359689731678042416156005467926015660048885961380006788880273420071195098337461621668354244206387361949289795264708874506409969696660283031828027410943778493790905664622970067993198275324863721313938926022396552584298517866312445937485880862684933634026607664799498905359727105228148312905476949205149779669851956504663722244419645372150862461740983435341027460665527013201951179205049140680559757206100687766867014084044482180088617263035470724827055226210174462465271206393005476253346182397275173406833210339457568852582518685526279046714312807251802731003616633231923003146972374849033311253572889886907548819253108149249592465118172913695843918426523480760283906693285409115982638599469871153989158824624861528914218497487200993639399439051493601163655638268118168393245274661329966781790541545976422122390150175485343906757306315344820362934803487427193520295381417165475337110923434896381167408364721966313933812795892626148322841167356410420610601103316058837375630907306780725014063745153237223001286843844377756346080623085660437256866876045370916002193739824705877804539450017793212771260210391268716467583385076899628226323148473721175155014226951610980053176635061776552236246335060042182324617424676176113826654524615519219530535420452366991751340741752482512654081885007901232907280570464579888171668810104436137341897856141848289678483891361218075660204357445601949467884850570566179937829277758536667672971870763532000218184093635903960284576858759850186575376835711478497290352646776437542360789329032034502201207778045489993775745303015518104832302173898518514381911627263098107799397636361520131393594981657623185634567158765459697040381424932622756316204552909590670460674849234512913334405612023650075273212681942562913921470273897346713583393165094967900838407418184882630641765199661421486092120424153970764298026233392597900210507921027064097067858127425090877426572267255158954945132043636786606239592279325280838136987548168699883717477985677215190019454643474764864777701636136327967703867228987330101420038579633362793180694810286962487023864788511091042595300316998831001147493768248591217099592242592394066282259620920188695478295748609316651741988068086339224221227621018888248292977673393247932512027364135836022432809484049651267886152044909051453365229841007695036501713274835033672115276183468589498783977915105421233416536614209612289415419623274894511110249001149988778568255585017013809870620958207361871121655500976546342323548018093945550598551011390304519198091787117186209697578380760157215943333731849917722972986961928895778273247122265352404719119938030086952182018834597826091705554430205484123377977291848658710288668318940869297446847230072818933287623804901256871069477001343948556918491032549898905390516936672232813456190442018419042487165588426332391561841122781612499539892924117922143572204496624460342187370553499233118895341666029032432098916786649062278127989596902029739028767091074252192692044343275541163777108703237376414379567423297390535198758165857187088467326769700946174608326254247060985056801067552553802829508243993139311013459794732809277937738076362891949838067998410122233761060348718167830327578137796058865836326090036059958349099125701322573855068132089157302378936380010210289634017200637467735627840204040193801774082615634304206821576808091900682363680651515872290226084819214782175364200107126503119726730602973500624583898985719185876825213395390227777472704028094010342718138431124855169903423856436405724731735697289847507449127478462663963327828276881390629573380100114210946175808834504299272253129139038597218874664465718939139112890998347778631387643615677810528643103596339409497165810901223694843188173714897976188427899164570858083737812992784492422131341330206625282399452355022061794137854651742522218115832777774646888839801531469444715424356184666101729931486970505302403515852172849794819443756995774751799444635045254242602845258162567469035856950119168565575547966640822308628398929217770289442414041995762503486250312830256267766215504221202249689341784611964292294130688706689509943165009208749890891606066509026400456695811632380736123509757839646205777992302763965390044870512170562812250111021949732556027881622839419686864045232255503955498591400159073349872727449161477168061485080057510074860688119661286955081274129256561596269604031449656242674243031104286089696118257582236089246014864049965941040613277528531747937113797915372920117489964332732931672973833846307413620237913543826500342385255112933184270453348431170046194155310755827408987708696556694570236784875417996896858024763878083943878410788414663976775344254610964283207367958494914867655521549383419883178538207616255922633600926102868793058780141823521960426596807339119150117360739826818648173312108648237705329766566016635812302763816854598106550332416662279085845121302678017179845420019762775402800362868909232969325666341988984508425502841899948964120230170189664108755845052997570407642812230435197770975784645307890676435247262854994669740591730694972768403976812765797062370230727467614697116786456369808012365574308568651329704017479927392857755186052592084248347338853170861764302366328561721947138925394567276421115254844679153606709797722418280319926610897466189499275907146638661614178460908476102263832464291501715556128429106334978132045953653551264560858378508196455370903653775564619657033816307963253648016621824735388453976594981019300059432187148591261008411771468201713244653457336906924291204002323414647928629647000574225086849414162746526682495967139315063961758711102037140049863387631316774560643675835384979923847656113778329550021107368734214720742021690692655095598927193217378688013897062517063082524714239305048996150250729203486531087866273112702859593503931049976128213930802997918431018074316410847587968734652476216295565234938996676738901609171064186477982686425929807277734038578832270918533363417453348200947031462219391325872784214350064609526914816059125276381631744040285746451002976097815246290474212720196608718117264956809848584636772130891048616505529437200975496385316322135573544933962684507140318910382736680835331919064739553414389207725679586554331441161739268613716253443174468365585556435097466574272103566987917423707706853536996702981945656045615920038860840884232925684430452840404049072316026073747752292771474266047537553443428732211777531130947542697557702494601961138393998291611236728696647246517379276674889823030477282796155465129837594889169016656278505052416560634516055770560478470248032321607269619591109309295283118690109625046399563726991289226919498111857401049563099188873125218047587148621917591409827759870143916701275119049325590133743763519405851767297255128103825554433368389060246719955646690627893487000048094654687338661711687644880894135160596278900617668839964466605181688801203401140975502728487588327491578578627046156790263433287388160177314088761349864015784072229105681908854885432443281911567707778449076936081051100850981443951335144908647829719255029224800393067504263854066725133645328011425200401960836611213081100579652928408284540232085348358245782528952954136248640333019690539176899477594584469769816333376762463593750331022425535567069782897880811938557419043155670664185798719454697513448173496952313058404057635191566501235369996334334004401305104053859445417316476754352417760291474995022123983675878959232180660941365779468240391672350232152393683674152013130313529769909777588755835614036459860301170458310512437588781902791590387791613509743403884340818433743788791856270586623081331189229902404043690229736837096058557283183284207903203170293238518657815115824309717959824044516447840348275311925443386670242576675265613138014991561383948619168309347984121663709881356791585910694536708887893973557724880539440956343695040007363955609420120268914763692908872680712472623462258650439225533657804484490504417227044102145471117649701958763649837830801573706774125615728772280518772220027992308766592683862772925589031240236321409667900480969944195171567898706180454667911008160009346204370351433268105936149428291456501179873335156212895353210357809161016610580747593544344305517019954882393561630405448884172072050009468582630464101266146539125428190947542923506424696917371484775269354824782645308064380865298046089476886490179657403755845387864787843914775240727996308555938538772277825639828227707650444324337429837892667694560541023186935384583817646862647787211096954578279548113985027026683324615206313900986570167540941214180359768375007699665332563182643065049765027290133955412144817561122147375896155569780475960532647997474025542322736441867247191746297020111980959921009702670550891838222047357228408906473193860609381030942792411348063043868200726167008744593074122237282903240156069060100054063075172704000024891966840409018892103985660100245122799876232869533395846752990664308350316792710407252576573101747286652454816291041323230503253264366907908570854487225516548220592262432234942645884007960446369517287412317008073679342395922025580095492112653460454772984874980966986440418040634138141068287402410741739311544869794250334179945938045195336354878312973740392434437418966184194004611196462611895138216665445476704759591673193196850218676450262146078964215841110629083629232601379312493906685145497971496524230177128610339690749184432577846954171137119891473688881302315628357008552313333917934274447940506367738337500741946421448570921127619291009250738036446084800016103943598756578840499305178073121636011793050335070941973751844210418617666523913658952971586869659185670814131144748000100326941808660162655775143452015436025222095288134795433802880762826276938526245064729947889646655084181710894889964493080576807444130438330597416395755710903221541313560192582066758276488068448312606480128323692825976842265765195291969068561611176298325310255899886584040097566343007626931356970141069820224689160067477285583011925514814904153304942525966149995560932834682007360118732275382127629746471956647562839135686338358987537198154627228510177564874848819168514483029724768490064558189563528369542439602511999594041114055097297093271571556195712721356046230810618794867482918703742535203102108017732201158365361425971616928621127171483081737471013081128305042557746244102669636567274773045626838889185358303985895889544690457040491930026238020702314241502412998520967707464026647880195054193479141420574541119710369781744492741778958800657068804334777256434412405497578582575485539827943342035537456753326540107130896215147784239168845384264749870599285701307339006014568267983756849506127551077340269835933208386240544440201361291615857574946212153611194163099246258966227212324834616094656899031084584518204970468342509431060148287894098290780820182286827411339596406479558442935873783265470097050559656012299404787628738537310453147736434821326441015685858837730630882181332927364545940900469628792835972546515078485163042291255584910693095239326016426145707666767266797802886273989528265689666545435269420465449471950400765319848190874801533725756579730527590243202675408964294948812031096176200507054004850143121336503708248068409784537702973054134805289518076952527219601242061226278049185587426861967863895772284508998080107347017893227424475182176840830916826675077744787180459440070020298314700422171654204471207854663362174633586591637473668418824321513061999308028051770549951827672198855759819692705591346402446289939004558228555130548127135768727490957109988734270333394422821257820150793436441320455786267972555178791491983796495923112466261066235473332083744112070158401032136835673112051151870048476908302283445655188518256235251114454820523757137571206444219742161382182104924842555762418140621848539400031106733255883281346956895650424541026879124562051128108802740077362065653865886871206808945339780688856492983597923587104230328058239486830963217637144906742122536649764969994552131696754871062041603115171737289801653654958079005923668299934957061817971842826219821177041124112840550925378773638206115980735149379949210140580940391648795151401431178667934055085284554375242018521079115279748585866159479709680398634301748845916330799466599626116667151056820612102952559927699834446224155568066600456789440646487631657099893592524544849987402961450502021239014596250933245137200141338137040238084923914652431367942753379192802916981695216976667341517632315756222542148066010381607272911846413937202581852340647428458267922585172818712145860453722546032344905483487515808086282697980173705433140829666445582710328385061565662022982724165471480535590184490518807945033601724090225351129627030697470428786287941511761944031611715942426647186683374889732401952547896507089496064616887679256553741868871903498313125372445051308785219782937842722466989094626422495222837996739584473755554692841917375651798698112579838712796626828510728886013762544558344739425404008300179558612423379776541098925772327302586378528522119279399821615133695541611617248857804867776036633180136903432790132492339922939920722691377182383660383322207634123263967881523835744517872363082443930770161547809341135791714263342297310180928162991519134792328115004181936840371343917773996087222367445490279837629760399354475891841653374963400914887516578430455688917353691016023600831597448515967859144916871856494593924185428830234279705660163486145952164104294658733822594177932102367827276128875571488072188490487300192610678921766216052822863337611883728643633735321267083788879474359296491575409558181505204989818423487463274848194562634999209698788612398353216439497046350321192863363833000634841480036184202781720598584015444614969201592176440373043950796903068821622497261757266308482501812299042496903108183715453266766232121270920778867998947602572469178217869305082099706133777198505431479474109768814530952980710378795704534845464224628745246241680754698410193037587624924203427722972052144956185293398255146042169622568337280402921760269896580779724129480946671352520686938331359803100732588194023950262372012742903420318153592995572136000384839488158277081903098631310221858172392200279957899837257230954907834194098859545958975989414623229934615364280265494749587291670966815698280191936576507544715682302718701161447543979201244945839986147613215750440684915232858730286107522095745268529245760789591403539089831153309292586828461408718939857765540847750682390711908970734301264214823837851344456727998971799905543823330487812273902572007774158164614751801124270714999297631816374335673909604952879117709572310779823996132765017131599486597100031191741750526418006774433002028579569655109880964742587703966474265500777597245615829262322122918888201304881366072354906852320640136605395582544191803752717320207010931549362596116023446713248268091147116356620725738811370962176408642522561308919422348283826805181470747038874767581201444745104461973444140669575182000795681480836971867408786814261593244353002959250068517682276814422383829521054651368346504808125910947495755816371034512774474474376468729144758649124774303128274690412380195492851110175325574555983910244380504819256607838528905720377216910160032552926716719869434250500303545264413430122659840042192905145856939875409758213174063614492213027703732088295256474625315944880984087939061715500638485542422178579524213110867488488592070459766941175256101362821705473290739005916836855265777849462830699944913189930541028117644749649315202498347370239512620661624006231275451001453084932382201539995176256421919538198157246268905781410399038952357770980821152405293696622086144350278449852729342280258635973834887516781786161420411288900918047909870534733182136847607656362134846955663433311904147749099932517304260168434666010057298928844003739249397575063031560994610801170772381561042275586862244027808567770000618306813206405730762980644240348549975309907960151555272487891086385191089555422447674458105875503313580815475485688271058806302256279243674716609989496768584881254445182298953419461395280717601345511987853361246098131074421427513093057320858620746280612624615134799145449028401064365608076894071464923952579872085692254200708805611231908731569132394302554889506222967235883339165144835952361951178401569741239693105763878281962194413649252536912953345839447874408855472842301897032802215982941057318190233715369364488175388275364821281560355341820429970577198060552706764938459843707813967587804784751034361154950148962147866174425820791222500794675966512067719011688039441354512608259821954013280753392860138593750981712497761473105567084447284223283860334009238951171456222116756598450781610730407815221401107720902439869463665834051965974208779336779819807324108323863391183714816877703014162127523330784013693928808063472643089727963545864263222465909897755107726746133445827882658510127139714972819150245513278865374144660936987253375704133035511814422874607761050643613632185712180011240011565923604392068462246971760364219607253412934899234060209663950533528072013371525116060856733870879580211923486108327812237787449540053941298344634004642876287836596828773541183230327820136029344845045541244241470945018571934080298501732849969665700097744267542202538744726854513437261471471972527539825841353293307967363288339952185538771306304038537312240082122339276192460047515971799131924755075336465152866735382620053678678899879105758602853974100589440825242925432839875335531723679641290972569403330285400338579730489476109271636204519522414125957216593758915586684128342168384767990511048055554400365124147512786596175681667735801529829797318273264057015630042574493844540122797641673844952385883897177846683598337278849166405182924643243522362597003097902201483982026411295492932928987500778592889972690233302445770917721235369140801273059268468448800899400729477143223783055978956390415440439325734269980711670257008951149450598223263442537426787173688207590863975094626978345671382764011183535084635622784148451137042078045897975094534331523035908917959165969064714177581475193808142235665950845148110335416700279759072449887972955735218750543468500776709686066413563603342042206040984518583714076657493470043476288097291439843980820479396149993567177073342869395185487371901718751434693799479447750179283663068237319157495717589806911824309211127521709472350026838830894863055535520618263493477813143226390724285973338278055805652630291683428148242351704235474791934888984769709011416583136054745447193585318909994497303859773271237232455077028085845697016976747755470731548536652561082270817713406307363664810576854259265603991598916789876012144499620949823041610441038098972894158563432010725585590430648810184929623223628741122800967290111714059880622681198528592815770512835140474831503076137419434272539383577799020953176452893872585651954334774920925567339039104520997891785964871138274697127832277334896878225622740139120886904040230675496159316992392951392991608566256244160753813519952008123863240913275373384259780938048295845779083537677411885341684614991945308939792699215378326564141509545010275246021433309870945515007654159544767208989407181399146830959014558478994565325026195116072191112458955687392037251375463309595449585854992891097199602003024930814451220357335638171518829634282771740914995317389699993023993367675156846029868933899513422428454548587642508582174800669874936828561121847920267852303216162598212613078908043984396440031749577864110267055427122443243923871193447095735347002454337465146003074508511681837118000840888176398621921696710870060391885902296596390576214182865380945578046047038139273656138273360823050526183509587074497390584510494095278676603478184091444183021916799622848546137624924877922049289875088909799757157699382702169779715715259020357000295914352794915715758589642736094732183752199744623392892551573951936531399093504625234353994518227395148255629826254850438559654059387881253270887451511756640766566105323800841053084553110817627495424316616464652064265449034669507731490363273982775050654465388431491222699866640568614290879026395811085253742199848107653589328298566073747955710919363566536142250086475806128782454130216342374351017445384225618106401386100850284987457165605168118944368728418045986584083089238085254041549298163387010643362196305109198182639772363653068654068456125522843674050577292775647097035284370032305902096655618906142934257048841833883398179000547804692412196484704831681972814908272226409354574462895105061296175792123255384625721192208405920894892367766176439068299078537872762442352494686524270772031042605834570881373367780555174501399266556719208579532427608944695837854323124599006103647128888046928639872724671241381829354672513987331114908207255465234165079419773584656531857637110350993732205770467892286655753379478223241551827261268716259979476093422389973572203790862785874672555191246349316368726666822408181638279709312223380626300215278753735105964525271591558103669472531802429598823685318704091547099478013387701838091007651055841914518840343748634293864907693227977987151345953032227882160382303741096088724746910907114633116938456133273978358367609001817543636052887419981645862264304465425787279642157636712761753824736028973197282407185653438832880344792167302572296761450035411206869613576630798162555121135846897115652575782246652991805019143830484459085010924779857965927834645355042269960774319404627820725735578694264532356799723232757819456062091666273461358221132771683577742285315968052479626654973953322328346003150856369055836616545980386334873226677929555241221402956319436301739729208931061475604260921347255544323104707348696045652296921055948097155450492281262769221684117519736496279280620892388027833175896791376912425881071435657769485334989339037188384053657218912084758311588818054298762200573653093438367446498360448778406988383977846160838569269732738395569957127615817059529277254513828163947827282262525857126955443683443296876639148898707007521937773456070717066912215160838256322639848067992548619205748188812874172332022055696937332912079069879688248318441090446807962035423789597088453957981458222956795849185137499152946914638183739373770272692514016284825448171085010220471565286111301510475467702991803740639997453724548836799302323302116201356564178360238316056718766480884819041299286152265654115320424840959352135901207633356684151578202765445263095755047813038412960817478699857271870870516388116204986162390559766294823185497450455126546688046440956287358446482621059802089888101607010061420245119088720716378118550707098933633294617912117502222630476988374952762341559517946662016849504579397763819973058330846258412461618637592844207691262266150159627275349412493068899241501941149258395979650123114800155203286147941550769085436644509948020624464440145589482502025831961143393343730786272851600477938060942224213926970099761831628566863772691275063641595466801877472137870658432935622350999641646359965329789037452240157093600531857272229542295928958752623078636019536393488231450525878973016473858702082226702810857771712651254652449412271955505065423610093731781830212822744954034810235581757344159358102226348397018542817480191125349682783279501835401358655614065563132027393275983241120486585195282331799781899701343294020350319854827413655180440828309344620243095518288722871991082272932510996587665756257288395973612139259441909540432583397452246663237300120920114421045191627292560592088851665090922417880867839141533071518390082941092279036248744733295264019265012890899404778633329867094564704082864408805605780117111237106645405783689716858294545623093424257675504518646286505210098871831925034921769141599158606511225922541785487342986562874226898987629702878912582184084815312811720842417557168215815113234816705125562364481435819193523373252273240347625406885245764141666820958666854142281116867050631503234394839696542608522878243792203754637800729731333958474762176560264695641143347085793954670206127778449547192874330021835003160844756823922267383052963902623223056197115853291444661367119812976097961912645436410601387546447705056870245018512821092194960306299098344372536624040363715034873712818019489851989650450667277406763426546399646013160911497497741629505544563082463065489381717471994342467111386539388440429503595973435815438812460015716613478793276029851542361390233786306809589124096013348687063242699292034504349608347145749974129970830721249804036175264801865587410951636230782036202903355665469941186957342825009143553172182170723778166445836327709812148629711230277804263374353952086806980408319702254246931865170396239600325503064572182210185440007550029883864704458593344416026820715348403874038913157305598288263530266601334583153318751314697957091255634136515804678512165916089244266573907228231713420638275009483681163394447333207417340264894042517643900540056386880257963154356710354499783110011912299728133609381916672325942471290355488390430759070977932921280656022822447721871611981183614982911332696588472988998901117306199916529935061685860686932233396291800011934880874859990531403695350938207245517694457673285217462087636743290950549656765508094854296652795128636553698638007107243631472926057108955481399297429867543831307714454636697704962742120277912681230702942711811493314492270671652879383446281349250387442943315563679162304624092457812609464323832617930859210430728765609166387116603453492842401377501110531505908837784617811381752173674030006777629795180924403517876799210455687942895092011067599209552443479566899260312033168042999229915844831313509911691049428418708742086260739300864484414695179730191376685436364539574495632940906790289094795659400168347918739804385056173945552730566352094248310661721699852409719213836223973837726876825315004086461750831122481939460768375631370541855160465383964599865116169910806414324822015850011349327668416016537700367915220723312146880992949591933197822728688196122885511435630883722228867880191743973906172178777846694772873454394217377951460358073162405010981844854215635158158311660337888141993564100591477162309138413419502199210839881070432067570670794825598440131963515649307506580379104350041071072807845930709489266829470904523731346647873169067882890215840499495241075644498741707004982132801561858303375356558990816336268237032021439944026598125649451812229812086436642688951531775094076434892620318241634722450637136653898390764376571037732340976913603588677498932746382432590166725238602023566397330619262584141007022520142830219834273795450231211239861970650707819629530135965957739647355357082705112995092753537886294849968941551633161978895549415802449452182739053199664685100199025732943293732253890341420619230263846877112303223431183237704911395265288573186203651616946791090656412626224897738062514806831885898748053896808387912960609569904398894220171662616236690445632067699135328127754777787602578491855400852758258585326163711819102055654563479279472642019076821859393036641043438600232528022175121699349553273794581347923192144817346680868040477301289548966731298137398123530797709794381494288180822272608229348396822982862677608869750277245484555927712769011931589310007726076170202892129191691755973463471516327755692083267778744527666455384870465807146487748557653331612273055620358472860315492064913106359666283492717704896557521799761986401296155276667016844162123898712325047542720794506529254620506460387991771725458611867744134661454721710581676882884188764130503079263939496517986384390878292281284703788701181040849755072802639539758430745998963167764768890051353544294184547994221319472984269760616120380711434271900712270087286946955779291392268201416388027777111005798849101740937061091101612446987354579873646993292090200522927463152283886973158200987149757295620330920459771378072396039812950918477747538930581521157746144597937651269697136031781343554014524331249308783914177531909218788379306913243990013252131205811879770433446308936087239753147975735253129296288099603354656998104183565207906242594891303058746791568484985824142026295277073761419209371985491897532888841688366845850795985673048142165484439272291081434574038542882926343972524384602710276290000479886064640676999245578837705475980447481961252464679065945237517381346243429436884243901431232642937350481913850987515548719879971994058933743119670307580734907972783937823828486801930673317604017292434870332168357254332826722755139528016826328469116986585319971823556735715330890766357552622006422529543375404173673270727845444470294004250348440452842851199625549579208759545913111516741993710717207055091825344261992201941556136276476300984478415025292359382570496346159296445906136427517957583789492245348475719267469027436564142768975595374288531041675027550310470137526674260279736834131604708097510737014779113309407568067625140527972342542482548515770558037698788363256400405027948281711614688447129072848677429544052224041460096216347707529321658142529976838655601205048317787301720698052355164536572996010374924305590850887468465315413536454378178598120441072452091892437014835056866528802579950603428967275097703504506133000785253010660383410864884164321827007068031103848943559185308809382681727811896099700183092022910430942795406210361485422594156974035973961886507155882710023341884560751558608534401640516653160131285478856052108548767752410476198888503629547096852161660270201055397339259727825584567162627821071442985562587447867819804736504509736254957194723053088619081140226459271431062315534812850141482633778669923637671047640268810665196155882383093622229097261888924198943115225942755225344825840691781114747956842361999715530611505382866322127182327586139621328611377733005809372533331336952166127677985437202888491985237500199711473027353736382136496767135980347079994266165363715014408123424059401763403908334535985554157474535179386820109148015541172295859999378939726909598171831187090714231120827957128230407138921813758420042504249754376368793769639084604677875950287471722856332829583040843665449732473441816139828022078791597272916760098219582868476269959843877891661592421895849906116126440748419498286059706007256353263060390273351175332504360094614301205101628471922696128009910263052435003351290187663904425579403192563369985790479710740577797635615183018953736078221426232104929655290423393498307325018792527746280279820143777149714716106837370127613539412541593817180261827377233135882826723126281614427588217190260654402658443338180886997703970770663989024068791428466252780701465516809076487313252326639991159795922126698478146674240552040447956485396764937921036036573476421685748066678145002840436623183376624715103893128656517529306860424244553783809257476894707257591835115007152356692792713650385368494916965550625799704941916901743675345370380099320892212976082348232251127682892802463427211123433030804781081946746738668722088972864921864178563965339670207987169533944118467297562096905223381441776252241684824900914207445612111091335711367429508639250554227650742909386195728347510776578655086483780181494694871545912103691587282191888024565673915338437362690399836131884138370902513927112413219757258868352154432314655532925017399836486702296208098001716281782822055994277918895043453380515679236451876928051715096706808971856210193616245642304393670960902279238197745690695834750092994252682347792266985622497509747648764036384047715108377699716900061296584091217274775415908724012584255652131938947216311765490866053999874226400316446829983810919593007844701805680458860224556973942812910798253257198610424181805779054965176002382272792114480258172688314201447427191619034413194834493686941357104854307481576320542292900763721404152831630144480299853482570554704518305760686932813101928956269783200761784880998823621125224037200875060122965097404136957111802820111423464140135439391498139455010104638152026243969187719075874055508701753755027261334116759064484010271571406467697455769260008900812182755402748264117352265125438897242337598466501148772041197148453118394056885665876217164836974395860188017787260158447001378608907095502698420965354142825653423532593286416151136020967404590867353657150381905674962593468595223691721479287887916867697234385250570200008346611024460339056821131124134551805468197858754876411764884504076257110939259771529716193081538947042255498505642861015217959120137676363777949474414894913618182640958331486854220956862315235332774218627325759893123093613756605968373078253618512941305192950371816862948369893225896209115223203509337040612411665796360630724608958584725224496139786695360764373096374470969032331040735083426331737683875330608296768934929888689232062722036842826349255851326998788731035160938855198358729337833331690170095497596879732513810370283521422534069390712685701195273298950496608373738180041222468794059708901270319682042500954173415299079192828052388373102218690663817794430628055979496163566436799606896499492798701341816781296739559468151964973186142274461939318568179108482368579496730592394536995373612075640266616920733164694851947823651441957023808619500092002327760467808740496508343822979623716370310301073596377955022889377844859538441162871090752981535861363616654992517215463653454027579002798713314789505545985620069410089039091726805220894820500263466781164754201289288816054821280410141022766898299302890745567311331336028071851729984084770308632078741633688948078974695273059139159048737712382162714687009287542787808093062671490275801565389776338375984007054166488599361052383316203378842007076068924194186050379918046578698837648679546289984636769655950634388166397948798464071072355359215720018620121067589074612987043046364181943835939248907062315403863366926142945251135319164393891903056945173806667626782289660712361676518649070640251427499830452102112283829728603032275191308604700481619550485309347775463513842235158202406101202869018636748861035602661012542525120509614575453254451992341194594904511575964280725919195961537115278383018619732009290605022845533498216664678469658587218626885055246344007276384331440560629247331774680108895205920508476464097619530853053023236856656407802955045976769426313805476738118789510306737887893621413138909470081567049084981552722683561605457105643714324855778185766890826074082293132070701621603186252965626746625723601080381474865551838822086290257288337932958570300883000863777577178446491502729365503534664379874041082925925637553129673259537145296818858173422565616833336917286956781657922948682385485550438394915736440166675724004991026800565217203618049975444157613720851468031456888238396929731701531927127221832509938655310454057688139889778536372293895664237895337799366869585926556421383296842879214338251517451140404193297260768105592338276828564655768481004723070090425579153413385368754945824082737913249117269354965062253619108261927115495931245048050465490510133084520024813630382497408558628739663047932382676180869209776536701891434982509857376297233547398600380365027566187434100089675293423438012536968366252988535374803739166716217266126315644686811613002818746946837573812849597326520220349399314311618475894701711430064024140304598496311243924353526933065260559789555171778590237327989153239205961085242715203901243164764558562526535209828372125461032112501331799270401358306082015605012168436286288027114646203798144293719827564633011935691763477151818376516421598932563161213591606970432035979267957829881479486520462609362523770732292821107586560833650523163061296328063251655244009518873865148212002614342820648585691432059011329623066549130481668135682850334377340674528291140692138429205847364197341073778331647973446177307878996787499907079604600688944640614286395998800772835796894770732356780519596542651885260901276364703929729372697313690121838004301082554664156293281791039813646710873766884398716281327282545935001563042058628264944136081529147183497464239772683341141081830956550029945082354250109744022044714695487030685314100101786981134032637362509629434701354456762354885891264372246171420628034666301680654548286908058850262324269448823585238081173950592937217526654506680896631442795024100937958485224600663883092287701739219654906979769886445705759049291253412960431408362011461413181875742660853409713315167298240771810154758501331194279193737740519235700540149138204985382663908419708412297574595418183811104459295579755918734653523058080918784106619609765271357313929113949113249539641569185050658867955981841119854753589474203666848423070450817382495356334984708939529621794406691700476564725764179998411448289263823667809560305672084520267245066785172201367634373346832054501158458930945703774534292415099668613798974295453068024199933831696976972174985554104649195204842685830489831427012296287406731712937185276310070110777119696874636040339555082962482198815322370351450485853341574110460873367723629208572597067831132983033425149514280984646695977259705072294132214941159808125529028438993497862458155922885717236754166050643847493304067251266934496004805199025607330493655681362606374509595908607416414645784492163536297439204369623523554447339403671985829554785088600446879739176630583655236009673401591566384875923831353091959213016880308013147845967918173026276715922511151778878288841639127824737567647497637768925487615891572614236397417292657433552960275197340437325844877311599988738417680588616511484954811988932742559974439985030591336424533828525947847660132035097707922712836566057218271291850275093683749550167746302838331935760500871817064761653427449274721864805798067601405954071148459125066172447278961014945131200063261766730912612812336519449569018535585463282945651293401672298709846358050360821650651667362534293283904017446819712515087021723366360702701743774701256650176477971413174384879897108537735904694687108240027268196482605718514604209024603615562575122567721965883675170549462864604606834483756185455630721952180812135791710280769897622523488880767492984846423281405389272785802839931441347748875386340063340056736406059220865911626961031198469198042752054842877298752194384732942915499357516627894114184733728872812090066355869867787355596439267031626199092738686680901873610593232093310753468584783178433388592689294931122197045343447828553174646403737707603259231391494920076943595994377312142178377954993475432370589113219251403221245858845737158313162616862209267166041009371604945143351523126688078079023134175521253007662588708073104668838706341253100824917163718278121881777659941704346054975731405606380552335225126182509594558093734742651965041287191225713076406215618661543472555078900245608401048791195685101829032162711110932965401754144726027017985109305030384582642926150377698990650502867367032781078878661371094650767056674352321828346181281308140106553844168854560708253358784970623021066258316663525789211145304625053945805941042136428327342191480762492416814471014224271964822405113416148669000796619280393749731164227464418681869141126720934176252988656134186521024231028089296105988539622160284187236871926848726347827487728768689946578397886543970949049162577956778134966998115939127223944088189415011924747733484521557912958658009129375301593363700628496896163829964359738234628513745451982906579778817877173160149261285659165683747392634320912201431459356548103353526389001996999581371995550477599037871884367809614068434207239020036919717265529473444408385569860277197710377268551625688770588754786450772062417863337067552176849568954068401924780499136417584527850499570493812068495261666418156402531319292730503034758303932714417218543507129315255735546814298785477091899121510375240485881556072039587108169687286981277110562660229403917602955131248831108549073008115111866390945794329783527633552323941211328357435294028664001093392463303382759839843463848415253100522623388641054391851764931686909259875152019702229419637213093339352891928459657342877956310333399301141389554505192197547555891127533126890951782433073911927736347194953194890302162015722156192002448513820096807820880848807688554293672990097005956074010501311495379477579928011311822714941040204319690747208117840361131524723494325834987936013829853539168909689271093264395727059368073309687036531204865340446292198826957796023926417072836800881457052907015810676695030416924566650745091765078560060794906841957467682937683511692072424297223465442176895505494363274570874825497350957370454603453868926494047302701532564250595198646126560746660575483164486915561211508794407910667626721313550939685825323042647353415943485881354607805979840165546096003744727828260814443070397517429533070860255060435555562144588876384130105300513671212263001594005380829420687212070265086224200660208435835857198682058683131885928671427359781376615977721223009130421062862803680559004268072396353959857881403872268324408726052411251866780085964515394945647156117846722335063552780116383674188336441174036238737453155221575924621049461655948975131143592371133648064032533545476256209184830786092772294369917733412702864736720488691501441005634407060699641832190154167033139739008392131234850965841551593795277779218539113928562945084797276893728011585560379454329221392324427645493867181569055282139664118455620734527218459039304950262437939224987595014728218873389900942662800888286291501948832471654014227901610978413483751496625456519172497416029854513740305489562621669983528496983272400897575348315317311026549299164809057970595252244796733576449221273199804514603744430363177831984777075722527819841841550971261131211876902770977453824091307948673561962122889662880600450679817935804043067525999031628030535933821627484001737367811593952308294704364967713039643911207268727070505548846044210555338952348412783354196785093920761595034941401997915829151119572423692072693946882610678327083296768178933485096308198466183901020544391962769149166776989221427071498953970732809919557616236499860552362876022377639017462432785553892479498977038940771714548228354817589667171991335653368371655139895841937809991992635188120485299940719171352249950336850761212376823793352623104898523141777991265770822132714256804561474173224154426773380232094437060391456753855317643190802974379572603481109191247705464411420713044967291576238637717595202541598581667866047813897026724723634718945982055151364246507603442441525224797890425975331486612502237621256565036498080832077585342498877970165516692105603357287239025377702764320221318721293815007762676368774521748630373463894979823908365515884558458970432471718169844398652462873099805299305701566809212873472432794644687117380107334605929269953560355307836935703833352576159935497416731061580466295022355736001610946741371360779823988921807243674043973482691774863285988138189255738563210963729460067574850675002162155417745933214535785675775330566361894076539545815019177127787531584752773523879168930993293524830220988519022433246339861064602366768554812393400708617160649574991479836540166927284971666836678332398807632922816113833707905623399281143097277735498770330314333663080619888167770015437998930588579866081811092088331987860546436493047356956331316624720181047618856592925185711760869339819525352497199436378731463689405780822539108015811983474864818677365009241392271775721812206076993342444590105122482328448163656343817278593443300261370419431813919831691377389283203949016211436948171073411969852129443926215580761326969615156552887526926303055973536996699508467888418574923594909407788847008398427712242946481450783413324699937359084009711380295728526739202028703050687770474753514375436418637248388515588597153509344411363813692763437650192311450656253931639283251844493478757187784160444601053955627857149292447855150162670518643548500500876134065199197249540356092320172136540142045983711355721915779828972459268942762592512125115827090655046971642249101377632263399897425593004729718435296222121900748975009071745718014800277608461977306879623713726990946275621530363912676626942161896409586573341633126665857314065320304033515616587887157681897726866429982025149439749551648354368032741122500816767278324352844115538626523584362423063764906661236423930526865105219380964152140210590216394581935260806178473911106969169978309927550159180266542911219481737914057560073293870943259881481592421858853381066995227113728997217368568191122922822953484867189967153338906958968914722105353111044576112235631570668923016481689171541560179549645206454026111720384787181692809871579941755191254091143458126014736144159469926961751016686250796542803276243808862975038742859582446833607101145724800846535513135346700214163015463655457509454405816791567871084053879432415671308020779351478555157663176615064721950372462428419727409443155718503814290367468675780253655895597230597842885745418879098734184819545297104794372754387237096296263367571299585855705636443612318558716827307421016707320263065137361693859264577807244963633680752306595640608602059754350896369298868472864628346371041991989697918572311698329958398503430402999120816680276597366848125854224273430203578736392251680638865795772850849145393153946035183014682842040703112283458114019829359043097161248281278079124949870862635818011640928565634395504378063576810292562085139526323671108378525906667181209200768955098843713180921848328256629430174077084830945107676134547412579668575187412833701057455704822666834413957173755859235650736230677592439783015363883967219288344573044659478550724140242700057545101975935765836548676044685236712438912008680728179088814242272077821352259996350645901306313976073454817844318457118201129088091305075632332409845525717178523776494431385674907166627680458149973474298415220845009639313566710649767861592379540002807920382905014915521804354875433913279424068162603215883083085843212939881652718576458787552520852571628879326728246040764848917723076229214042075615700533497136395811963651455100451895188471358523815448297142174687587071701230447457582534919731571399262620063599909353463512931214042073546264555040299601566996612499923218336615745273884727591770291634206207236935439615132959682640310074359455976805495467162914330710267825203449527231721215053473499642612601402381012546940433310809575543793950722398454453241604649835521223086336140974036170940603444890045219465935510014510020282035350951950433456888559120804785111815060872623146900823623235915716562566256746988874677160761528625861404689899104616740942709554253054119535070108892535726642458500414451288705622060503634724285800110437716930551690057600337937556029524357269253542797944386629220059144865131766957665048133720088276766664594276573595661205216066780468828555797124135456558908445294736764041402662377964123985881512871225103234565125308734254611823887126304763927403610688778517618052628565448781553438692139398098676011952447770894497530550702339323538432157511243153119720056861149875954873825352121356159610189218898447025199920580916519681988431130467263656027420460720675542224805678312167269960695178232189883130843718220745826715734574765768722505280667500512479910978103076147079537732045907586483426281750077446900885963834308668549250675926306006504196146115991421902231442347394740449716604390615396202639959318488662452161896189942090608759814044033863975064664577031369835339061933108209298812162653538133912264938500195974916546628019403457626388575860371230974090429857396984032402285127771984142286837172752000679982706495639064878827022277465990937704362565866716060796947113116355952972547884817340251577562334501680135640017710235904678888402476843743460149111867308083992277910285157821391928647049274272804877332581828275859664877279140950589657905272861022598534753897186584284950956556224346215716346055168642899481901497411390215735901199496145294366023537989491260412145931962616981965365813084452081319822820387909610389333094601725724204985614135937420107316654636708129373511520635362174840581478544407796102011318634112363372900821453847477368510608694527626007944206509256803273463965722996337270418956196182739664003941309133757842183819023083430513830420161015150862920661850372711899742060786001628413148138622561394644226848297299568583446528295771171922890377180971759033058424205303505472635414925718460941950181940182585005775581894260035956454450902273080970908943930007177341693312258234799155315876940412533888120428180908819879449734443245898535731072682211471002014056338018471735172509298789712731459876535090424096797534363139059996300205582411686331857687929669099523218273175159746273047887008078698304460859560210188727934246051997628865656402970247980034638683637200199035074252427957394804097239807669860865370596352225828641604206291650206961181087373407354708692197415632782236042695721671797555064870735068436574145695610863445422311697796204070213571535906117531320665986110184948316282193617826339922630161062191384650838632034920177543198795467812257043353225722802492149459951084505382672319967283661348360036761990829145610849430251375660783127723316510972353472960645742033794065027071145957058053896569269253769931962682653592386076078353736104696496370878334859980103703644997067577213536049479155541614459818469871653951982838376743296133499397882149406964918877348535215731923206756545180985325592261955745608171674082750941165216676535501631925656662889475451524516949687033092241758225123352491314824650836133243023586291625655667358747495318522510739307323077758347467369371736957925462765690543597567347502678167074262852221591744309461150325414750715515081630614095346325055627094831189484043989200388074988542071844098603681284950712374164514531923870174041158129251595739858063675571241143320369991257163730957046367978792073903291920623988454811095774405041924544274735766879970891810008794427313431010280239431419524900995410387027872164842263278621011085664427972877960593084789025339191773140702768855419759293920633535700524503621798443121556015916589276143858201800614934970108919158081996666786286749487208652613582953972606403123139663218945206748741410389454144556756404975248040829403139511366462506984138827678817654273933048380030701633983282015213547396883102893063093411296258008843293397240102505549670081469484447657890401423897652798162844527879679083643786980421660754832817474565467963940570391306925323404853912082228693330080221509638877512766797981133196147082083502724479193279947642687714472493435312359468732263193994945085851328383978873357546665012323016972054907626901910533688673738989846431797508962576665035002271917683269449781135390540771004803350382998007717327315852159554594264826540263985677094422916317676483990500417192649488859544033763485152316489180766293087793479743437832978783148383446501656327653508669976140338680573618524931381904479717327600892355784538704687182597103042538900541484932673211551703536032990926884071134496658697072428038623917579889374069797719374678123269296145495694929753513619922960538713171351147704683178041380308403449212496554513681886033084083165792610265825066997161805777025539818078077049235722066016561598078198002766832969410879129523530856244930317512635334694419991342907159921817848672965248245002081796180694603874066621080846846344276645813960670571178305151462295665533961559993440979282566631503654589837939468807097194129707256106849785826242905907674637172598839326311368570661939153794983542163163445809142408816615652539777338874883717730427195104953826394686975749869486848671055235592389706539475531080005590797726393551098812178439573491461551550436544158583786752919108839319996095671046284085852643628146281818689244373163144823665227186357984919956552738368503882138750457967226816803476460736143714149411446423490017077470061872143522514216151033557095082099085810972590043614143413972243757589150997463588924076134312837410922397518365156589227473037356697370871353815763874071142462901967417910497783092336330868499281830685562101511862750433439480718912857512903735373888151142698617464775873253234297392752049885686678241707016398345182070048963322923580017708751724523054951258269937255550783526728660905468063949405219606322512650554514115337054334541849377390904298642814423909875578351677661170666917802490287366148507322119148056984691300164078408228273177505592267568677103542417231998655376514624856591808959816175136906139094274099939474285470984860224380261616127132092534786119839376726561808035897026472554130239715869009070735290394030816945653883180643221342819157137199792339125216272505335451037549404628734353250171051986029887272334243285366416028774810350936649222541119417497958560907719308817398744851761678640880381340861600182123684804422134447811825413425101635153380933978250125965648729348147539208228751786262740179924269854894204923552804143066966420711197117847392081089264003100873049905721161630424639894708608464174227241353577538305480312437097992300714007294483981993175445499532361971881213980457880679988538837910165183657315692969316537944030556964328872567783965607850916737796281402182590336400016580136406802878721564421857725308611726997962445228602524925764038057054510570760827077428152473142199513035653971229874167610555916295279723443596291899475242464241905080463317822768354117400850601425142760245901750611143803219316706312267171377587324783114330832550471699635675186449943215788628274952676335401419358137785822953081819401198670711939153468239913768787825588079823957960365372088489656360247943899726120610545791406691754364378591067516360555744910706306636956598875858411107921518771306172379568011063346504056809386616723514201121198861489819162220158087991286892298694864448837851720385885508979439294715973356772134464068786607944275135568854401543546299559193806677522628334700040839533314118957901570627903810227022523215896273827418572916064734284923982743588094196294469385906385217983159082769104747715068697657824818577822014409533624509757491837475994245011125432298425431733389584131185875001081045266922454524646761054604923380515950988338800380008734364502210740043911947464198078512300516158035334159269214095273550450899847567267662393404567804327324632763950254996268984818937331867755706148353452036442287853412398776760689441219741785772418205853982108010746958329464041511025104640404555207047820248648527184245560930672275452626429731700793327667093159505244717778677556660370234742737036253696137056270182189324955526871286037278885044191560612074113459443032766552752443804878854796447641746607040903175947593728474673668206541166784846922373401081650449033777371826695614445838627275808052151566022569879162132491476998773913460777624005118224229434593596703901776167728792581304822422559740959397023838798211365771624845446020716915069214387369277622578874638935238506936684858944970319591100381688536724236494514834353196908591666476682421681707592568400168188740694417578762046032561891381091972561484776724808182264055800914012673858083989291921024079162702693474387524538283052834469003697550536826420004350678002888825628353545008989770174337974230407420722721445950371233733071503240696049604968268332547512008911666812216609515017070193791731644291342831442442027184499017600954237581744751656316986712417578285908059562236294615983046718624357131916347129950996402336644437117530224329946639405201952656497530344273730595116900764597800895559043991859350377324023167233440971913447913645470268153719708182395451529510185604930608625564576180846464795437652953416453831489719553117208302782128070199556388510564496717056591961014192602181412281293082586301884183813968879888046984555421977461885805146384644399997465651938626612419411075437443834287885875447480841237093011167534404804756575697490931511341458970353232419315952401838142007835332364166850257865323885218476645680844993324736084409850934252012164094354322648643033272554367240337429987292868888704062246314251527278126867348377483840387285269491932249619886467209720340223248432256593767015551196430739103743173345253229693474658196815414750975701360504368218941149922413930492860765819298896089304112921371279696447552160688239801997392097394245228848180938634505492279666562120821406285193479216655693882294957697145356489598123487205405497838618178061292085170150699415579618888939905380581791037830628048867584991977734265654973314455940513063158774765942055533776879953494153309190374653121146977299865282681454940469343439358949035696770401887824343383035197198802755288318416673652942931885739307853744644636774457142773041581895398487233980764812754595619185396447549434668845605663662283454910363986870230998953302867979327685092984450052334280092524206522004352480661306364382726919925463921216144970485273965704748965182948324935202248757471682097124749218186385168984467695638309469612499923749584784527528340283959447003809062943248532495437230135003861824977709720772949448673577993976036906404287665005476990960629739287314025452005463244706798478835073069085430519774689405075543087286422210345749737500874577182045794364719341433600274041425398034171468638788756655662070814069691099983140314202827296476207085287187612886217874945144062731875690499182051393112484110049226362662376609208408528216199670721407643213907275195216450241355553358981790766325980365871026945954126305123950677043593357945640013871275585659944819235420052076819452304622553770350022854470086883454389117084705804922288778568355177595153283680358632735973857116815752059130788079769367953006746063139904475174319872728271355535043720889101663691889663959640915763653559217029957698332239065346417769676819051192893938010379125057289820402007386228879384096578734922208392219737634843263275835485824019412838716425580587463655963416135917849170204100514948090406348953192671021254407938922880884564495514254930681932251989735631538022090067671855216420561227066343724410997211500538460309706034095247574598134363990063184773493941626059275555231946947303433448310829002374868385358851203584457489069595549845357170020590061071942413588778512131243318431004196409138469454171338097750361087795683492680127391294232749957217652511815751915514878094536957793902593031773925710887873753112217841369573585226299062489909690706317791283811543534828440658958271289496897960513586430600340340990425585380808793900284600561479002105701663817457102592473769916579476734940396422908565461970228559502129111974256926412405994962194350986214048913972037327210770253140386392399141263402285667576158426530779597179244097417236289692169322082074601047146408473860247125768261530724851391853807395117107622047908048360818691287714835549051454521356166819997457672003096520057315472757446688231738457035076949412433501700870469090595969148063269852669047814568493902078354719195448825104036339460643957964332452281164517337064003113084656610392270488704874975774929525116001513024374259703455982184300350147222148640744104238622257207420047916269570401065233020305084247190144482590477878948490419915533157812567541326249558104653697142944628770754474202418835196142745385123442719292346768378111782044815366026061427488304831166459686115824214288928995459428921820100504942412752429001451945247252820709441317675316640195979571250558670800334577355433461579088203895996934439817784413501422862609748871437622048451822206871146519135665335661743159283946972951009718767827730622070949245528498727523036714960624609664573397945605092932647746012579571515244821006163062358541816681314915422162414863711880406065797804972637639553984748243469127297957820603553865373314099610727610328256048500771375692480784772784326945084888548924008444256669371366909558790193632389710406509174120107414415356724835588948061109569586969641541122678664784266349961289765970566436539883827178115249688422721889983819154428881161904815089421594262792747095309417408033444425162984103766259382313223104012951775645299043437457116104912718922548608625223449440052567583397773160939735060692623005931429452201781310971547097854100934729728599990965920134414380052657302914216947866968239153427279443871824002221677083670005949601113340529745094722557481317822778787297390917310145564700183080383878683141415719999540288439234297607283252695931578007288198393308948391438677851107719277977278419473975397930915352156440179593335743638648164335318019261749982312152836629822359078434215133865218145647673290485805138299786554489863667738623489294681540931469381436502420193335203364685435824850544450899861490764885223776270882100886782101879005519170548641345113450563948573414070183185497230883835599383828895816762031261117131910206258504808097668701600355125116902243154826515927323635603956947075749908939140834227821943000706918733231284557811879579351307684823613194422933905580325722545648405121149981171823151775564161324992174889087101381599215080456574091318998054971641964628768012949339038151598476447333032649072242841943975618210214463851060443277231235644006338694673360707482764327588402644345619080915888274182048515920531242944115018097373708946519621894075041002991452396559698593515484568774861813701570995271833290449172050939482748614019079489607319261622777170631343539890524530297071590692678513257804468769026392641560618852789284683177885984178777667455071749566982498661581426585143823994577665793877409478774239189863458882400372457823397749260809263851988426261412565626657452360750683912912741760695003727749777076153199630615657764202445828962730550818559675979356986090533878066485961680481539101327172058381488510975169444722509178157840329550403576863427573433727808842724761000030708734085238691147175999579248996910068218013873477300003829641091309154058630160930544766640509618252191740416958417332026017978953837753920514259027658191227431706682658869861426272030807717826084632713084504536072024458465026038689691803362452820859097874523828624422884553724155821043634917532699960667914643872325661625713416218506965170671705453253676644531299141858031528970958827846359203515823031710635554446850968845112529044855161185758629329981450122108237898126585421083030719373163429961173674921916651435871559319571082916743329752509208703872556976325859428711549181926299013124543542579459097279671223434652800483981534931551807063623201830111860933139727490606236503308211842049771662060859312628788743726224275610172481653375114935617133617981199553661127571172010477003410401340770417113165303081718938854099636609131137042445701171131121734967876619670033420903853206299538419601043837870076361176504237136956405798505137098294457592357378856551780080743817947137698028572608197283154670062616037118768413501179859158181271276318386044915446462853264417909075276496407356753314039794652815743250404606956634804624781821681523765947598554942440120212765087460186405528272823820931081163822215154975575822274219458688655441648429720616904651500655202788525439765499801940606303233810612557230641250015411875386640564406307443096613911554396096328196985544475154456399260837091278409739962809162689046460083518586905499634307213867686605981141631439143486259338706230432793695537967961680347608183114988805610434137519215337073743226144587416914812709615431434671099527254926603584074690215170285345949123532658660209941364410814956359740434958459069991926109216715383783704383558910340428199433644583446640479297241679945815994170052252225938723176911165836888644848259346394935277748924850313273164747382177479605520626659793238253151725949279891795825134815939761386144483094252777131706697311506799167646948797818843039171045408014996539138725282859734414809466987521693845538925511890932442166551614977563603005858201963649176361579687595253940847815947167209988007822340891905629561040000538243745822269798386172798039800085145221490115205475124542205571682675319377022278131431329058284893005176953303122479950620434569178284527170114383200867981341738879551580969861639909670686756108136238541121686868600414197856232969334822462297270508413611775461901939849961098066622747936059688674000117935142003505206748648706303358301603098035321439463801933602911343852388774187313135270835436438192982178964917088160818356452787795399540649294025662820613457405305127911234564558731436331514304891364310991072637815882384678647486257469874103751626824795566746302362706117042783319418635165655372459925238850418839342301619277614166626458029635369182017089568058343924456081309035479403793889309077204138495665083509198811828303964481530328323840497571742053348957034873487217572716580474745014936705001394511442326329226994011866839234801115966670346532583062128890751525179792991443338157893989245200472551129510125684831294722361465044710006501661695943407662503699159293396970446278248736677689469172751458060284809834530449815147679719348947877873795702911758926039386424216382026667958594597783492310965925388420517316338267969692996365099302966342161536957059496503994594265604349566248765833424979755049792699572457465680948627830613818780559627674496118753465933923721518017195446135066888349379511887421752101437277390114530309579926943648993790809530204193284246360580628869731528947154302888767688899667047509898720045105424719163223603215464185769215326914627262872308899003227953058406523721985636798474371768530640930386743981050469793308625565849051604197026069374026785840762390490403697721026412749254993665349639747740779108745467816169740058149096292862607283602428122236448371049226131584649384877449982459169648057471186204432506484797880408605310744375030932727180900363447438676013898420833932824719240508039842954629505046462027831141287686509493749007053894067633063649119784472982612688862889807127605344199512391458289479046022828153225788995089252591099837726655151782199920129685326659598482159368165640236121610463618750203545514691667105490198494829844304919327146464644645889430883967534811354264742112391649408367662147841613800262932283748266098287344253396131431495375583952606780888925227382797319154707984540885572361390112310930110048839715815718613971743605197180949091843484992880867911414844598039690185917506090013083597475111812908397796074519868408592001627968734396960105833600109364321268595991677470958422464629150074224943907265162239260704124741638059378606453796692873326638612190527226293819521922508077396595895581322959950351817865600435361692586582890850225092115855506997308709914222701201765611342557983534245259697747870869993508684193718202936522982156629516806874774412995759386542119233555075592747676853185827984739556569867085349511450274779960754239389346479983477983739702305589903903545287852537281575595517985617507902854656555645213916794353895024727659107068633311942969320989442709076348586689124467173478113607924775927005390340416191204539732043247872829761136003615155180819735591968085075428954224598865554344690659190088909236792202702414402822433592678695992607417311590744851032797505790914051624455960478608744777690908303982508045104123807855185662259556206601276964773436823226686176962417897458438843161204776111505608191947159126669481484289177959562103005878026452089327533982348093952849814588412729786234899078735111159877565240048724832500230510522580862165900429201070997951347806834439010270551674405090010856440356134962058137103302038520579884873259473829663800488116802314573191941144816628181468568492466210004070669555195179713513256652462010684548316426454892091597937600928563906249451224271680119333990061546655846937435382112403606554039927770400635887905494953855457313322935564660033239581997296691424593226701821470413271194751294779072308680147557750572843081801484914680766061581742492890479308354835863514229150476982992473313734546901064045422871919952954460669665909633387955961430347956528770816891025944367928120074819665761125970316346788385856303304796016974915263176065327287442450866368398899683615229250503269477544468910344479995860664934471783885547377626520899559845789597554071063911498225855690996401203801483265647766881190282189418280901667887439162467635059345497112881111486653749458826476964815858667718217291623917333826107185194300920264193627902520383941250554117891092302559849796196135173285566592888449933245561538868378192939382589478837329902433536583664328876758223221049176845865861913368938138888560200866967861045904918465928830644405697899972641425625011852742427254681712398185476368213646186990908492703174501291424030400359298361191939223654159369978242043797035903836937540125649720286682450972396111088362552579141210580480869722191524937029957476087015058221298847114817039923641353165583635996234776803830635018608999047745573268036896885759549982177307549151514600517417176396343629692318347533120382270272194477947895482482600522909782360195095642829507833766757963259096684863941659956912490157819117289523339867554561324655245019760390724099927607727062632805148644169994365493962437982565404209925273011191231156911424167551008383527845087243851023531794070736091555475575898946971510977384640754871134908141911848818967482153479734091408602671809823962019539040161609619808835054995878289199191420000385064546307583213083191313294427497807687612470625755129182143913283975533231556144475576076897923586958758475075377902194566001076803612673686111634652238664193912871691695375464105191717093795871105571461022144286527386014397723036657334019029866944209736061198680585309726271076742583685981762398155927241410491957506996770538046791574398723738764419229237682971838208446473014287728795818352335293001409852251965071731173842483252269794051240964094077635008203421670008848261703860731883551507075387420913152420108970147742538540069229833310885210852895865473757815780093673441734585241522161103169691293281397666122697780306295074669835287986523591896252884347398366482441411941547584369029578793477807876433625105262407341817835809904584090267582061650842106906340477127668376233164529937769427561246344692002464532348590613073545923499917565157090941470508915788815718563886733963095739476118482390573729987274936760983221818278155399348079398060908015035434292643780210326577357235888237092441884579669004544981395315344008613183917645957263095615964696249359219957631749459317806688042294516255572605035070627798024045485277925238165598796156707483221335389055428845420289001511206859931997401046107714260691022464499578021295116405317701909889643398410234841912920482099995071109412820950053023241380252217988231473878550896962036232427633303303342903039432079286009330886865672184286199405280333499285557023126223037496534447517860261073605701204636818454751760367377890616436197762686056601736402062197382752888773162844114746789185204935388823458760350992054370875418067054652204173919322253167514112699510957510549651459013332840652108958253072901127850790885302268571268224098490426656262495814225894184668415777716978273213987419594166183466833922537481052216614159236819800301474913392467223830544911747266555462612720120074570670273799148605608902802942825574036040802619404718929223477304909247739029108959659292175082588330184989515305812924617762375224851318192256139811131089142525537594096934605621532079739631501070655130021573506013498296406394057174889869665414843187953801331911346920516090928494198992326473502864657733640057642535969536549598409015441016072285790159677071408746763373970850763664476851388708911604651321424820027464371237665602876452193292288005850298397283134841848854643299418347578041539764975460848534047853333494683067037273444927421245058091727544260620035694200780625098149033151090370622635209213363470440647325607079791354410292990030730903865962961376715566996227284897356480944008815841178116300016570338658856491186556511801872720684989795412990771973243026980186569411443583442067908647230337767605021723814223288208026031504568690457003912608303982760197341629265229475692206818261383251990756440866837520792127814199084809417607053572680064411132758203824807794591781773125394288748131896643150049424918621975236304086721591461721021444024773077792340803607179461809185161823001575937717080342143514636263736938898469947504964880247281129332428200107006026125664064606671041927718961662732320229335516481409528737653997051649345349505629127205994586219478496858522060209479165411984292476387252090803057451261457351642173021850523313995057124575118988788234666712449087328787517874697107791566688099175132306706628879125595761808910527852288674710292983218216413841218033380339224742725791901917782408259077919063544025434787455335093244257140507203003415289155187395848492608317946784353775440980594408097390304677908713650962676475614348168162869908485603077826113874985740474267302851473971521846056686242027862969767834143192792407403874654698247939558085768591209945915715054017734754317137002318283759520468826878008174641652036671963043314179103198692699459038253558097218399695946329633222830912898552496009516898006332884775536739892097532079778521907779878011952884680321394511303275148478756015701984999489443697916388111162646109742012975612092249667690592778107580410209715491431988299937863363675620045150254351057010142729546579839049634003483689292129843518804002956473131156377462396167509840307579586799340481516609153162818113712403010203942502321118525403239437590892219985888801535094783321873746162773934399709326670291523990927153999823901996333043290526357762817842550865892481505609434587023687800223113058126277970665027955049772094421526621857230764459148917038769361479088224962505167520934267255843957226961269161504298242515117903848548780980380285953523013218857229592485728295777122897514992469714827134758763313280227828028822718893483396809746440046282404943655858324810198054001598220845308748483797239484069483173133722602850698740562533076586659572763436050361017350396091724225939818861357194171658503088787006713158206235775231872109075502996881295591772010821061752058543185170407843781667123682676803933890799118964848088910902245715562717403073975110881561580647658376250354352489782673094930410685261086873229101296360275974249479451530233135171878356104332913564710070842533669807198139722955846838989219878632962213159492850336213577216174478615858360709699836746187303296284304983005192236320074843161924511347712842594380336545469951103673461010809861435505812277850991577090228976749105772127153142813465618643510766934551988062979449409365487674574958532552472740480673068969211619348906097900352507453475407209476343372938511694720338208837877813399559139771663726868721953511529837565743879001253452459365381144051413149175383425947569921680072225320999457797656749099632858125000779703239160928648790806831335690018979679448138765151888703332489197493821288870973283120424189561483856099468404555834251412639653338585590410280197621580262539986247260062905811832006406586291601782917008263936710133232689201799035297891515045506469652240271265308522973467546761342926491467661609032989958551578465921229695814071033731340426336053305316535223356790741173264141869221961376332748421854468587518506089599611636715898416346688003938548821177968471213676145936916123852190734785614192920780496511532434204366182995288290096788782204128144014425649653762552527524736201081370267152001624214119883459359892236517124043229404019264109874013355200652814191410626443327096608236638069965500190830075938507252820030558887522117311589108289310760649613987644316637304643062764787721381810496873953422599380755679919224633298535119189944167337424787857939863393757786803147024927325669602930287819788533377605626057170414806026915773876872643497547453094630623423253921162104902073510501532040464565493606908444685478559405243356497842718442035546136937429410303669898102713502151358661044258596496827843673134973032469843631629538754966124031222955959980701586666688024343935890165671437406983847723150931568244157555643604329169353168849532834524841437173000045993051785181434099922690640898800892410552460206411429205371828193211664490852570705675984982328403101511515656727328184457698296555854831832388041526847002239955199750235896855862016059592043315288241831277659642313935237851223972144213210375417764703881129772817317677449140814310283201316244143696082244302275193877351100648619792030052561833895841029669516962539391581021896025105346413750934762675615056238779070098851918788728713147919910535982625290525867515705857694622412702286847845059986909695265348255535671445908133600491460408534351556033055039004701144102524531801118363037988350679328508437211697323055046860576257010217248935967783141262247715736554294539164798950039949586924610395450960004415679835701089083532445097328041586296059132797523319225034050886964920102937024907257548196866321244719026210376462092060943687410470742613910289944460776896907764105811722512305792789419875445136956361480376481993313116769817937757123674049272762770074533892960570595861604062528295364967524757309423321338955136505442632769407989142941375286558196669802571598131665855098443623512080501750205721937615971661508446440183444137516127123176604875088534576280700703619641654239047849353549318905025825438351364345847943085721752777832277227938175786529675987584959529656525667997738444619721340062222698768678596869280784416075539790408071207266504524981213546898558961545335689698418610591564119451007227399821489206621918216533697328320025169000092922236744091094883446696808122845353635521464006487614369623941613362958056029140291153151173901619093365702729755012490029387593119013477205061584240122609255239401798806045612650233493147555868528013985634737069695346373630638912584627852104967195818413253761855067736563048960872457976112728175843179993433835030334968210859742821545542945817135676955265379706641746452153530587153602967281216302731328927115172547269285829496131175418765629909941917121971545344284276059698312814528773503828173464371403882958246669605333936235106009153887887643907518225442437877033541333257294916418002945983769237221445590168588653141548712133832896980037968475706096313933294429062509774222144161544477555905915823176553481924467574097121375876906826247086665989110816517887541675540467060989639472411019717239361799948307041567604503371951798802647647611947094009016689802822816338979895491275285384430458076194731754372273509227298116141786466461934979387483803730474937005257801252508858584553942862746135829506762781533930514727048804322493262333370887115853045226631654259511960814203134403510550122186488811718248853088263936306466783573122183550875737170549460734442450001843688973698690654230732948606634842633668052621573843189553731529089004794064683657239295494035707297256308682631215634103052084043692913901422215401435539643125925089490132633089230577451610369093487785764787767177132031504873712274609906954647613847127006024577916233175465973372931656094343745451893759644962424397784319471209533463771132217237344373935996310051648871345601092279249774754819249251878809156983553886856120604688509332955769362252273204551916421958377290470329090324466823642138017285829868968659154366858325128349504058125820067961191622759657846974615847175685469121715024933289260423897966741369112769339893667722969945808453170526008528635700839822980229256526988264745396496007752092489388949028666208689015950034760641659101622387933807922167611617035324701010642795561347079545759874325356496242948800336609264257115961465001719627915884900564973602758149834860492941156608429235189016509466934826330968483190608023477674065825357366165282941394519396487353296900000604489155138984407117648643178286614191589692940799903623555487290484395894068374086953208234303483232638469427694259959235188683559659001367470864505921459180178287539530658832162624430742030724869570928810431217906539366830813646286693628649657254830150326674887531658226573348638810146998897514622435088476598322554705873695546498630668889736285503863698112652308047705802504110936296310303125138601277155692767648037495057013186272451078582392151385794038824772684458229133018888699836862703960687084798526330283929510723262001764550821591877924096513804712744534992506795356360441543750537154528689758801238888788701422275971907980519318301484810737370537538313652132873291357418323036939605562535507406105598074139032546498732370772762226132158793477028647699306721388716779717179256260929065798156304301075582003702670275983939476038491583638900383098817293113831196643294964887359013794315320820706917592567976219228597388139696896003461344563816824160008589713793100146256021897738917033104229945400193252336589217446677685485250607193551365020992661491279754180147615841623421652495491707244402219946991695703123253861798099208798323125840944456301112163740217394819966568329049348108175714540256847314532517520604542677401945453447330375845624973935881818834041270873490246987202984567880385483590958661315616188281295494213595722258552396334874746627293863943279114120659475873024471678784730165599198702934627706204146295782893050368227060942847576599611809677210645911837297820810979238825942846657397350626650445971530551845449112061565523632656075362840877547360747542541876586306260261062207946523095023198102913480394138051671175908802898284740494721445365659428725168602295220091561657748150748170275050889465295462156174442024571242686777800316741173891926831359734330444484683438350998920645796914188098088052558435993144105310752221529407949597058087451278056953547403938016282388044914916954464578235211579395488127258576759032676635785208149680489657537594572733891471314057029269811133080035575805086508968158204710325366649861891401686825428271355895103395496150729785653291281049070557483649477221674215689264528197065101557980117438837387900961320164564615167306395345999038031044926217285505400378245750813941548270683197926206819356757540490143345714815205103164995859371273097946096566931056850844954638884889475048498647073507968546187351114590635875878588958887742516790699913561038409270839287187481819301463885835906774283801065325775631101631492372610996640476757633745614582746847564788354911489115396129122091106752627935247241120785893011520197985646140438438890071382257886159147518590393759615422792512827589635388411303345107690180043294097787103869150049276333165208184987454540169970444203553473921573537539362132167950583757251702315218891289230065051835053133599219707675604570905228180329083366139478695620047194621595858043030824474414697219927292462899730555278211084423815729563650615406889381879546625068513938017252157602397769463425191046971511647556224483902962426405883742644045777491830398732546407040177126685666906872055179826299856324101765900601779882629327209545911041256945047336334548500014939688850766008810432685371485088387173502095585803761925286620765436219063269395023124115990274862546090768987456679745144303607934527146638015017613474588710461683530688646547085204927158107966127655158088922792864426112186498481938992132855232258049444884165417598608828385135212498676918385954495160998204648909953798923833886143069456696859746021239022355986102958871593079128488175714411682229187655847988461536344238835689243526071631322722904905770271765765413482196783883451856353849877148447842216738422894243308389570580407236411106222449329108111671667526317976587943280649563474536398008360580948176121035028302922511277979508115489535555339197916131914132994727823079596105787873001520394781462937586503573233487283888439150734703518190775966307834534650046660374816027176336416594046101164093825045289526636276257279048646692224931298364956592307475666286877547287625309480390936956273853035112614724037078293734809276197902037551398414000732346239439122872648398013456033104154001004066512537969262343373917040362423381944096890787644520944866495682851772360407708521854000859131567603565564323395466414897337598948187637985079217544459969335989361034569479945320456740905126166370622297362602002107595853570789092362954387122480588437444867181541224427269364097819666415198456181839183607043306336761919879966433755866163763947300477803489001342892147793745580133658267208078883096409344820345536005526681222723956403350258357428538706667254311415069454857745208134298230833708432614974934431974443610998337756449770736521136162078083247496030860812086430119143089878563358469982761352818322836268720296561540570612196132955032520792887976686096342905801003696044404745567062044803033192323482971254223099411789448149294612859865844531681057994431422369324369921426811387680193843989025044708356694529390106939681272880540488747200717620158529213837014462717393808170130982642423388809038577836635984903898724199707599886842968582614705740058944980250366493302826015259732208930190631839091336077803368694343993792049962991734986501629667674264365186486763425910383960153964277968109211011207446063856500084018227583995303220969672757978430680459857556204543971144080007532210097505855121499007498668512790194620053900126386065188243680941284876249200337418985140269097126196362046951478346135385835826277153337873233794805107642137870273445960073220460552731513451400959124647001939644280878805306273975392697260177779101012562419304797411071033908452849419708819525641300269824943077462355586271983320522060835833643663218443462268623864793538301012091946645198625939040379901057268042520393915775087449687558248027668560702796341103974553741799565850357370641218733588674027964000336367109075597594770776047891839688186926451026308216540914136938484359153243178420713914108433639042173025375677612595645795991556998038042686106485955200731694266546512140325269679581348744044603861768566718746804316051221808087962300965873279751571642942613622232070184370350507558473973509486186911109165155911974110090501590613727886792671216879899114159361430513337607843018239731369026492859404226929746268408830156854668036536299699847249926937065168527627088747946675800969316094801760483283377679047204405622710533101604911547825423657715896291940359769879806192186673635412127297393186807087206557739046390039352453937839436281870616339320356554214744934559078723725695564125108598925517945935821826196746439767737367194181431848546895748410314898714328421309302633513470782263225341958610485139215515889609603581836799019777874960967450420102240823352923544631324735526240329894917248629767922129442318107785571197333165123286009244297665462615243742204435971225824681802833332529307061963043143281356125992988241999933370338848784720753185941662955542684330900507734311943097198714961444660483351342764631009301075999134782121911714608627774631877407383750605103631763365501254029967332564671255677843392294571990572250172419675804523540782982672758214106541543269349418710685910544922086349811267320558672697239912364305109079338779377298186720904751335191918445326006272012839113966155042995416399599980676726244716781254287673173779165966798767801078705817149132012038734784145801533029869004506999589703903734926745642098965254993100298178723149201226383499686964596242283611063015913907622929744137456432365393309209385067719604979354114720140815604994453850895189856247122439329287838365840906798075078709156763849531923844999837928612407793272107735166615764755913097074307067467511967057375490534324871106523322171795284754355036583704147740044954461879101024078221909025546663744588483967732265740423673105333610895088087843231805417968024725699214214872755393325294641098849876181967527265668053136190824287444719064632754214175126721818131318146903244176458445878836647804783699339100776227603789185926867531461971915934567738642068850147251876927145704801781799801060799013323067246483358276293006855618374423729845132230313393599947064699544085360429434585865029487361314547244669337046990127168427637144919350310261308951604260894295113042004622419652966320567021495012594745139837675125282255952530895152565099444005547121636634253035973261400214035034153090572792475504424447463883150927499012389556743708063799219803538726572017390705288307373960899020090052415165375515842752731927052606150671409963044006723280669005381629979296377918095912779542774011627776318967631441892217580574282308439477404002710371969314355074222456068597048540184979657703996069973753644007117263189444489024071034416532439547082959147217834737230754274474586480568027477677381086124796120098592690583850729713122457655652308334249241815600775355073358776226115024735458475532656095193854881505666733949122239031194371861954692996334944419639069534443795017144709618708178099015396762453663021326060504387736074757261931193580583304716438502687253635987440802699647754067328078995690786830913740621336444606860936593687879958705291049781857652430304742250609921756640325847421478381547570467780677518888651630105321887909358524175426345078176122374587406881604927168244651780747116143874967404092780880507991975254112757633167521669563268478551677849931179970571355973565255607780180160062584111962621195829995619853800629211601624094078539640540522040690151538196546607761526097789011484948391088224825176482506184412432457744247308339588704325611869249988904869460077491075111748311825726608549640374434458935627312132333044528023698025905039594319625836848058958527075719739688132578687207507548436234549229565420989194780043813243852630707245269199267918204484385085388812292990525997282829858646415539594713652874690440834113640500578894563387218266849226798842822702919280946972802524999274973138652535202346979124334714586379757642265651630233189954273541674389148499937614401787946474300273330835561088550011321920516595329144940732302497805079382771899761729938789619029248436766087008308896211009040851778847308614577393440680930088229952570318059727489865473324627137971416382633453190777253995851369266358392401049049327874618568134531450573194016540777711367285813383232531154112988495377876151197763646849252798893791641388506315563630007577001284302619495368892433291645818178822190798604760742180629829166270316130735929106153318791269971470716152299085747759278506364183684785376684091365544262943320502126770879334314064417096044110882355479797149550637006919505550751930634637067045263982860827676021752097419255665391371179266317660714217565299256329785651342996146995278242299129211771414082144560917660604807974226068638275735102817623011534481470855399732399394531742935001587554307939353839102085615966897748021578342198667539692086369704655106400208556652710570939872411681674910464571479933011107730309626036440999552544016002284258535320396904803931850557696149154071587819906498641786039500995636610284745662691967127340644768334182991136694094152179575793294330180920956210957429442304691059821983331918587822592784875704809111139742054616587407918121528141053897797757818363718776736193893942210869974409773561855730035423978456581502268108668785031302346083425317508831356834749819505738809817134464762243834220772360291405645707047066349365940845439209982188095706804584263773128574003920330523629305036394747054485574884914355991173182425326249619729788536834926404598934482124826719864235502796369911087386650414388871680419202986067508663485447794798096564962507766039707859285942974030414317814284009490578993611848067540021991970894287095609712632164050348255807228154395328514452248303210808264307292318043948849927607551452218559745792785587612064387886354294636867427500209171684562188722544141000337811675470751174985496342562324155709626504149683302505975606456818261965848382086212150244905269870988274748031862383230466229877318347871229215961741375827418901973790568317819183125347532047833547542273607154002440389753744608598087876238093625846011930557929812449182153236502493971896089402729580959218558627442029147131898520911227183820629833102206736057971514339100503814101197557315863326555058457756887138385495213025031272660821993399392012278983032195964369588779467298851638472363341143268464225874016657526319320540599640789343655303779659208259061939165373140991435482710064651934902947078142240548007612827081895159030778493745927717926569950014173516767859043830001516352123219735471534637493972273317111536106332201911463799180063964266385639258213916359315596236225210642118077687958661517756998705743358164322295149283418521456410549107423287161772839828261232771079375231296163648019555490333111203514806716080472942622401203580145245405979752731924397045643186497639885099423538942388918290311111738813028846228983282107476112470375376004563739837877051937716867892350692967662430295172043192553938578760211282193411145812094937996407405351012045224919692330080145853899449554230084018072637493222494491043549926010694880832884586488323661485150084645116594960474461691997408899158793694491070632747573942168025674972348759301551714592554659018360489041322098625340136780588030333255858453154201889775589126409136185512290644927388300425984350035997786146252003717424555271026291985449486562229371207579867821700009688654332096772910648458309186476789565282119116556145245838456728136854245438194443156516883322010319053830217388149708472431845285011962890461257320231156594764986299224698295877969808153324449957025430055870057558554013347842621546814496069464109763853127335429539050666890420037970001029967177629154206303334676002877358546342762856844428786009756308198818443105258013968132728780241798278948873581524575917727865239145393713672792515441116385286076652354717776047679021220964271441882161691163653383998226368227352589018309285585210915403569274267947258803455645635034197515350232911750951513514264242705874140910000371811424845351318302735322409762696001437551321268809946285893479111080263635197628540540362539491257746197373896602359077981489400532736691474409234789448763142351383955262495364986832284414443489195347728804491321715129237122691887476062174039748355398695085074249791980179153911011874523307007106421204320380584130577629921546379184605468142203561413473259041660323623511778560696362721035501728478309447166227757835668899659246442321213603920652903570861521993850744599868650104237737496113483809583221838809147601809796934611410489218229406998380944862404380559612158752831011090541836583935292990962715317193292486210956184417778998575857382535623437090244953426386532254047841846265406308027115088961979175690730696660553200615003452568931340066815761842697235682966482913568550716280455804093339951238226074902138407678738312118819886425469495178014544685744571642878681825820832074382851423139310412515808109043375896457215882074350611837426235004424013287493498390940680155913567509851640840523418528697619591487055159028798787756599515253672236522836441606140448309064095056261965248002804190374103427976345917358317047841788492641701862060158857377133126722971492417702271276333920941127595093316495144186046083734826529528360771844312398855287651580492375327724686137789189119537798033022457541994619414970497866915829919724990713432104459058239656274761458904220493984309045303877193150693113835897850630139674352114814259196396850516559546102933081187688729937670523287832729941371550898547094579422817576388393934268097245885387195980180103818589434829885183242896752968695326481325960536492237452818025136673490644478483795545218045045631951639568377451404612865538041623413494870208606458833115043964666319467586749269732015206805117215044159310744384225483358663389138614270210752503686006890501524868451218314114409369702965078086664112571981419876791797516870149337465319037830861236962831925737076675396241379774032314521719157272271552903432234488634309903496023668349593368591095179588213029546848912211616214679106135265791569003631650573057316268608460565006356582221029851667482633573971885178973517597198100500025470178775700613863400335521622388607994973027356302412250186503284059197968120798127269776513995329458945944275070709132840570324081069196961087170884011906129243674295937736253262608571659408174854461444859507657008148834652824434752492954758409607327444387879534093447817512243094599837464331123518111058359216849940897594856834236673374214108427765435011414110623027806231939223986395236231814812655207221002394423926567213266668540717298259583475152273184093695389992286047038744864450123091428957835965871043652100644846858866262061042273724252141511877930946131158453278139906004688918790057547696410279734169617097646189831369965344370808871917638116618532122343008543053401842352829982928792235149878841891087890407976274980218185623106818549977328935254123848623984370508725725672720450966137757347555035625261795892742079988851677895151130482724459719622203215443267337472183407075477759837284062847465074367300184721598728966467200158884246131041961358181086385038340620002545041428635869611755878967553410198024445039713724688722699856091900786830445105349464054055718305445798351715101763208733475442314023393167385644813105525263092046470001250684624759585721468697003977449948630756471817077998062784752851095075029153043820843594401456319347442073112542345248078786921553538901361074160406807953586031315962014622952337649251552332443960434510011302911486376815396070865202795734817538147999889539409737869128919257932109602704090349547365639306910564828063103625553920666355710335489525837515248991873712081205672607260303628259207751009520429117549201667826508954015867387078397673671285615872119944354110232692996912713157673548221674159474082221235916277063725690639234419067877051817406727499426099727818714975492340892569602787398739820743799407940758782292860621320176549092607052977854101875607122243627486522684391907330362019242089921245912945008808934821620526285940701906438457090634293801373696173356932499404479123450472163418418316418994685963768475864645197626070277682086517277265675235820764214324915305590942547723571260115807817273149885598404218291566083995391835412579713702507702714243951772950673198633993833623210350235430468674677130027236161297446037993023265523931727477992186679988378683179402025830916881723664059479603820480677305794689440430765580376676871076564601642118021437900389081915226694258001061550054993861247583051657434095691629862085357919358401447883377092684781760407311287661177963551267265813369631495836163869140381218893633336322443753790696940576546897606257596158898405114675056429372132423465263771965020577272402977690919039765712699875516786741994764307004686723997794834076734025714564735755468008821681761620423531720946387759901259077030982261184135319708246312988686433826196123982652554263256077591796878858381033888363718076608578654497263081717651261666656795401835601648199976582311352432798978085162789468487181887364629252023298925294684345073678027365244983069643779960891399970864465867627030950019658384023340347226569166020444075167946357699595729543829747098747405548562949368224764948663500927281188197154489547429381736498237122779850457468111380638144361336235160579959940892656392818582892171302125128058633819555351327046547791860551277538938286533199178164377315019506814595876602994124002325425275448491469280985789670359295986585540222289240193146117919472023970462674602169147252268551263787497626973510212806984740968874420720797820246360989190321674790139055054095663061025466434262833689558238407974415069281000449662286840429404068957154936622110311445593755950972704657334980966854307257077274012884947998653439973018429049776583810601494404550278718014026457118597219243707619565284605175337851697320008643909578181700169890492512349014110286905449228388636567197976710760226386587923402414559531063347927062225532644552755486065220805371966656621644931658323444651325148315267293690436419068709563393390962807971078064135042047635240616713415352423775203260912579105087108565555062292741786925828933615236269711282349665309884701168048373352106919141400743930793897480176428025202985412280471911404466027872605589869182154481229056106042319693727133041336564085923365757697004850196681750627299261592963075383561091298233831832100134357373288223052747887047103533375600619495429821710068072470991465944857601941366577090244903658354942203775208596891173877758506284478400093587850413893691329811853555610149958989567654232163117179412798004425122540523856370415235977353748659173849022228634663008508399403499024165275375914576254967147581383828785884361274891675679636391069038879096549742553733125834609134490042226051324107235960085280728636070383544933801094849069895531026502143197326545668470156769943333343898243544411642711012419253337026389851828955686664222567536561653316358019016831703465613624644404393147884935214282256836403452472010064436275830315850169460070605246066619602843828984408731860363301862128758211982279308278463538494107802451534153126437886470857990540435595284795859553513541567590685122627085475990332910252032588771193717129104228044910699962731185315496704931046823485706056083568381622022164013151958327453464228770436319878374362698102650888775374920117328956708198480286293527734980219787531627329849585306605950350900429567881510184406302893309361070130360014372770973726794829224697001310173897725641815683132132519366782910743175981561588558209072842063514659100982655374697105047029850510046747843311423254774129717894834747270577918988611904462791782999140801205327430878017405781378030067907812845155870852278474267659621895487799435719653638672374414692037433570128602657439353306415109393076372862164596420256418602235056828726916667520761695222149838600508832102674513658592466191325709927452670463532200376054648404183011813475972513747308079153135442297194777065128234736275232477986455148330925847158452885862080454123357451678125040302549719928971785302660040710758976178228138787905225017662401229013073895896224744582413876639468623095725896640930805556955472940822827617925742404339121308179106109250639517238667760914281477312067704192997909725733916499643347289887366236277944257587383129133741613755512426577046497176467498285063938496175211328507750849304030580951530988241132673075712216819281011752000735766095704042473056961778696758229101208620100848281247134781902876360237185891955952269375091526973433720219463670205560558476837821960290336725022379032439905940284139690508862423810819609170201898958781682456025051092889637360500961197727977453083898743844984406618781638480654161164950815997475251275254038023923598827614256408718592307994984392234397308974362794897607838134710801580916853263159238099852856544270029077231146797104524169841719354719162829175022957058305603480857158857273203822106426844074588313061163066346379472256197431306899932262627776225154975621301346292169878163585159745089772519022267541973194879608458439860275848138181447763725136409200484924325390234705696289106834315531570992027498342798763255120961579892346134664024185262647790886269108432139142228238783577184188321769338299760895510326067882309489791573625949696840993791420243987206071289795251746760800994330346565725629326123465431623654120509935828689181913388467040829401114675223616894442293624094234890915307081683725261994045016860438277855068369202587541499084223581110600033580870686553284439791687006928821017127800950397268926055664882318809578808971378743120898633041954014635668778825397783892322155543749351859364348389414738342639532181587541386877030009416698731176340490043233277125486838749641319145251839959735521530122086897738364299208930836944318139658097449452001711343508188451392949128999084078271335381858778091033755401960928967940531716455243210442881283576651050197536154589246282324960866425676086995836561379898665312063932673541957769114307757419110536149407102357325151390796762646835648566023006864872474031431217149000895790871830706379803555724421232532572863343110873155964455012661067684216441559887674207391558064463503156685950641936758183738662072664376916508935358515688709350448902086605836297623625540046742538543980951208393763219913927527047165097443703316163918053574211942189194994383864226681735956912801648684386795117084214410062107614298636040688538361750830383303116504488218359490430174079340009759827694814581439963074687012285487079525357578862992949337597535240266799377691445333157491511409660777604155955453056193433303976932713082230275826204900204054407320283787541655943912244404850750564768021290169238670663311589303533993828426933168710548001498984032178165172873844793203383358041281062159859843342641510272562877295157614049610013693166939021322461628542129578021918880202617468275913173835347085480223377384511802972407454315198775814028542009481647452025573423048735260802049991455960683945570681730054414146774245360385144283787714450302857604891271694798961540891242731204848592518682724348803274621712450978357109633058826776893791946642707846552929061230067549936019861448809968581642255569600908591919399124315753196722979933203376930468268094681619066239605194846006170802261439048175423676377691758340099493487291783719552030026835566055289230090341803749222804058858897180625506943563528676442097556409114912494360024899263833589517052129507912179639320190773309673419786587929293414342772414142097958436366851951949448152396597095077131669140085736507190412657978476303965261811725856602167200573960537202304701757846226902612582542030775320202497524524959311243134538152118581525513419279056462809252089426864110335927819301280670413359008953434761199402815095010649961049672078962699091595138648767599002425598897929717068663642385650853613392228523821639012506878271024634653709526674324436555955325198422211433778806787110512213446666071659337215026131210281263510244293463778869282714347537635778965924295185842703104705415853134961798590592214611647501517536315847721383273155907129676512614195587873363429710195091787998488374952567337544518532347613857076048422768442811972242589511148296541335048818383940007501939719943695538071494649821583437777250562643000933463068851851225584714805175595478738899525186873718132252688295168848767945697688951385342443319513746191515915973660282668996015443447155606412334738425126975079072232677331573969450217575168143533780185925434653613932572764160208772537349880341894087481318346691838803862669008840841821412305048538825575136475518487184131710593264467018517862912008307002585743767463657089096826194062072777824144129164663564467472747027447552291570326254869759156310927979545239017077661033899760952930979582229011463149741927724826451445418596952456087883811907870648129835896683285709292626364374856382482408882809375467658044885752486134785941624813521396143760267659791861830146563620332042533734539223270037766671145756495924273275935261772553305381660685095481142129693660350651550432900528223275638750142410192687978695862614060682104179559088640123051295921503171137962534326742747193753090222329915719474538011889143543781050264395109354593834635961683519888113688276492392188166254526639535248137190203043492437850750601312843002450872141040394627427244519414853093349552230350040162049893147992968485067663728178221126806222481758521465979232449127051176308250998720558415128683409816806282967791013181658802780066465598451447580712414375473611180606574010991063780879557647034555997858938692732559500747051266266220984696346977193775309315720688329744948914006530008707293911994249132115193945498046813455056264331420814485615171273710906748427723510153141992134433545078792804238900273511488002509027602958031351846235711621693935285209216262565013786182908951404601300430011428532664265762865223503444437345218761870103396750318251698531270800572867899576138489059587819332622146440826763920984252777214026615715946156709524169031828539774519004074224049158086068561075073979861899691833329346896897007948191074041586457778609477979121099732687681689947412379373435662040461406706582618104077010366729102465527474644851269499506926336186709798186729127757211842618939982742909234491160576919589719952032323689384582510256685151340803643548786123855351398908988025721922329494172610828494678279204205033144140163705908328253375010265561506221434334522255977673065085588984526402939614747768406403028554158902351612347047737529296708687095825002349788949479358582668101724223036844480606667894083890645926881666590011533456568056441362765328243464911436971689026448863322064139946466549345170553702689068863570214907302053738927606453722246191587845864378768473860456910083521212459985554911262978306238609287444320342947183130837021151933426629135645335442232494128953256297668980565820430890816425775325359754673517911094369865487012615988519028973739712719992650227418300563092018867248564793938944132467003131373488667355723085439636483441835756401915204521978746062633592903405946198181025492334973376129784804273430434067259060573463103270402564481213317915945654543759558640748929945088813631962592520235846748368911397170871885418827282391298137981571994740184618807401306381809059654841431806799681322215569194256370202999260797267034364162159677468189085402359556219509334611561508778189420238643956617553234078145827915654531152878032231333850999968238009107826194738967345361094068929267858931683644910110546171745440928140706194375316425015556409222180992623926904309705447513734531425337886792840801386620217474563673629931382019975940034215282312537971857622019255016670113132833332675348336135729823936821550975286477118726542597991153380628408287703873326736130472718382872641711857234910396578279323427975038419554459104131435620837674664364599528048688945132414915259966696477975402326894801144488672728358010565237381020552537716442324283067463068697979047684933603450141409913824876727548808866357033104497925877166312252769366098706394799531119573884643081715951680413002452003266055542742454165792429739309233199206825314013851927872152482292371690711462696732409812927179296670133259146443349106167159132172544060886535474650231496467260729645404219687924919940040221936574021172962047663140197443021250353238262780528412792078414270998113949698271174748290829680716494076979817516267576108891814183475749863961716270126061188787590620002159803878866602596518930616300224821144604301490892579084237973356658445900594391593654847808916605578373986682248516273931075804003787206094514673596121015412046190816578761416081343979599712217116849827233999148914111576859189413085613448760558138462503825986766927144060014072261767969174691645363858555774695336673976936785304171388597321981966522253550470200957387321565521622855662911931155342786698967599097189366394132277102640940987452463290471795294225809886244562441331920852600459565933553566685337289644544581859336250779738006058923429065937546401296606308953944489481753156409951166516032343490166696879825986073097258432801405165575380764469192065232640867487433915821986254134123287489321422733879856880520926559506384186881392919933080157188802241484765258119857124203972468478306131076336810444983676510702257733580285880452436468373228094703446055655374524082719230293416722211334627043778181055595289153340370150598590039437176956756422360510953911263793404294338100738320535717153404622375965116163675281512298196277634720922471823666358799189954374277081602950731697874074450898611316087878033643063162976458033406742235613638770483294785587508020372772108998014209571180536514151617655400319901096923629326747302152121632636403718506662300284893161592962899919822653310903941756584350681930701925040070639774810757977337251113372463305620713810996868249561147345823895795892340142971886863257594484633097566414319682761555801329813870113632271752309202961518880906710678389827559660100783751659665050097338125634767883306880656298577277477696223274098952922907850414496413327870535174093691425774521388492127695391608350832725629798484070650957857665879019763045456292276396196401693827014719162065312463015351391738277384888700094031713518978550695356366188844741048583914316000410133474974114905908657580743373551861201754566525091294990546183757697089497403170506548747704117472341111843732185486120893043140360804915648702415645142016291847781173178643930425383638660560009721172510272240202761090898804281135867170001024341283844878188173898895477473850246140995581869410056794210978794977872215306216421415257720340504087532034659856650629977286583218048652817915433722951621278321791404556430001340690264140841687003603606648518897957425279317975127104864115953253055069489291420812190753990177179610835902819175127629760269584352400885334846303571652219692945267088052921599422726335587500228223662765001230535660903050601078507673650269193544488755484739182621179546565397678020845582916255532272893009208255603781372327900716448994551847505149623046949562994086461875575868648246945113919698226531609009859556897948652715837656751698912610201174667692193396326363599538944821011659403644515148464624881569452250767195761627292857279227456205894949927264152970184971800964706082668229369299200214134812969444883994205049039602861228047085545621000381947792989893330200160455231400181809886758859781028520995487123436376643363433785702085183312406837057741444699738754457851384414316293143301030908655269731778176426745576545485838229166782904701828876791092011254150470751930225957649764489098367162196848024688181186923984175915517876504018761101624574427361702614949996163492934034960696136596794575105598001469147226023225809696569231964463434675376837667210335716306571781241798790776991017063268897597507855169485599877628905095220116554745089472338322203367923421872057426938245628576786857224425988833042648703390202876807194301816479982961468622111349979019648150570550866371911266991908316045377968709533769775742006595866776580846659469290881077965350538869194443513927142261969033909592783789091558919861823884783232899087009058702162410164044821231843588553021845671441969004180984646428101504762816106948793731544217274615251540811691628629852927528335561947699702053258611290318793106808116535130976328407371219163466482470805607172593669471106927125395915579424260518122391988594975732590583577629016990128506716964807320290055590080012622438359758644660575408870022895773651644144184857360549525481121690453910232570163245237404440333522710369293477017577068890463731256071442680943444359306721057896185079134412025371539404537648204459339242422668821384844461828980359249023505675677133600351528782631954682607958410886222497693410713210395430118148242415601045212734760337648483428463723582737942444219228862524315362513976768868221463321674096771515457026039677615801530234575261045134133912791416154650954437785643213272889050426960247011812111167199004013415327399240410206315725878932221359995031397969892830060748316953199650296318161948270202974065191318959787241868382516522283422070315657887132622109050614643811096437455530956168461090117275353241190529237698363982828181394597380390310667679473092134395985080121490942294092358017737302512173521666213479401148562885422085793034468140193720792561135823597590546069956291074304651486579822019838284906686078367554393378172208459869427918290098101563214837301497430791757364038153664138827055763621868443466384755059530752426758571398138021764146267520031639834908813953040638935497831032073920617576234325684569296883664216369628765292116272863241138776209133078457421505976679997234172180277217424436543569143320252254790915132711273461390024857544422033628426412209291036510828455879340968222711958161354280009200005011856186917945711261377431214729822197822216296556737408085876448659608015788654733640101836379061375769497017650260649216541227362408123474767702776058957671840378988664275064394153678628112232455485938660436645112637858411166850938540600308771003867968820555505613905795035243124851028922791447946684536419000625835561637646610642384313583191917476979484153963097328650722286025995405277333994376443739609447595014882902355046998336318778135342987470864825294751523405926557116056251229697620922092014144128560705490668378335783056371437201586293049711095766244502943319206890301712049209346281303687976039865130267810904183028460756821419341765207082248822525456260869890399415999794387569454048798686564447256230892521363600805558530946057946384821347527600165099023965166204671935413626662077592505148672054193693325609390758363578691766766328259026995726558476348353179759344930345004322947282865428294057167134291539345605589372040028440904559061693432688716874299405245993677103023010529510629779642269809631986862235738532360039248772329372546715177985172253797268600824891716091466813628373773136828836410202267609434334669003839835584352521934870442542910266202307984801696352838765122960984793757024471223360882629643613750316734850577983410672881097572475817194399750853837799177071839353265267123923784061357478679705367149139745590735681528689702648257419453605146129450895438972374137256260602478785373570385981229478691659586528841405520376130946067888564988822845045836113836809259902706425650946550476375303589797314563091866384531312387962917298774047246963170078961747566070446298123077654609063340338605924018775556948499014166817576282482863053544791599726311330691867655407519764799482454212294044846713322995941116000099854934461953270986404338278807079020251432139846536344342779416257842650459568436742342413737712454197165772822197333265392956218498597719303990548932662246059270555579362081924951375556692591686146246403221138165574093832237049426944668186272839969066392069016498032758408051280278791744133238884813927303440310483659365619616034411952710502755876886918214635717589336449626763136498995369327230967051636965423049113116625310199347804472232182565027265001244039437196281324306519493922598219731775967874679962400790047942888612800431652858602826982747467337285016961988718356279743739857823642981509574319732398963998499244719970157972792039400046804703898103311103890913441604031089886581979565778757454042569097042400148806885325476654282154668326581930602306588648939888657083058749483938904977907363496155631182612163117109720216583156613743618838449432620582731451103991451228170842438461262637285817740884105210190016050596257588157839360028392364756365860820210106930805013515086873460835729506526812649356858561065446541087769883602228076973493266906172403760096452381840528813840393194234629288749375060176392744443850229818542518353569989221502250982113708972989980010186611262868265738818091301593188825558284845885705139567175696287989205447580297083455509281353985980563286278100836495840149807188003024626964263614064753959337357853916170684609881960152149656999783788675067070032616049692672092621099129009989759168465235675857381632587575731395761331882021153599306251440350321204599405738658240222610705679930614983929530420960441973631321410041680464419377438124605172879708704196636923522095474800735679903767506521277129718080169945085913348547421785253353603557491100386070580671414032884327469920525458508446591825351822793217137170577050463737286913387964990234328820352992850429509324927143489460004352668140261568690084153359972651514278710079944118468283867496133332677869230837812613360999810542336434349718923762759142594169512054018394538698161558426617646303557457570809555966881556468230673429131569729433224443254069331373612262331333243988097147235316385182321568859779392853026721415240902452574211401953447966756474626547298660697169765309423245576412285251285536266823088231170931312107285093916633364113256277337651691246231114632091390465442514820600542010376559484054569719546376137615479913970734311722233209364158824917755356760045016777227902357193815195925273585782211553651329816125301914380079843013531693770088442911378432141937217939285212782277315335001316589485885333790460968313274019659028734841202061873310219233243136472312167023956513448235353331986136160266364211344445193954464755141726377733181015512999850449398137970837288827461382325080038452822389358246433080317635766761960235930094776147335806576974574768146709130421241153301425181583245099778438545419468112318725691464257577343880551016351852369193087472850650933703640815054209465484395208001284880900762343991419231411013587867291349812325223963788169426281834429073858114132764502165034966012040065192772444832886073915607965266548345994307264490455320667651701023371336858468482646846002024829533047514913361013680203642229622178183059093253253150480909280409861511807116189836426002450796059530482453269414495132572624937690855312125837210107609806839650826195436866541973143961297059904918482253675990479964016284409910740510869681851855219500710759207000893091917512201302766884924599377674249159831477489038498556023698801135188489167296263528808275574775469812398268750154261855519980921726532038922325339605198970614619115182734731214532015048195790823166786863221425093302917287808136262515096800828935613108809880427615542907182406782287944933931781061298557681960871469653854324181170880807228295138593611813073760853232451347373211432488338109711674701017701072274029221812871235727979230874246820945344546390992636852762003681389457889286221636299002858303514436958671048437646345298685509830237629294706369984231758018290956630853473073228467917623949897323200701304828603707861697899308853467267460452767147830549635160848047327960460999234549957541559143516996599807054361098057208089615469938569399472624427177023887639272491666994869854850867732207318084460424343263463676318000117362529063149175674904010855793963545707044697667434539393200541041980579288763371476280192386523760552044666305249225390447030183350131445272100467975062933835994794867485551767307870339809002244678367983811190524469305702077080680540621189124930396320152282298264647869480434020499048086921100081678671907380495177765666458807455911305769213954669540754794015947672227354738387168371856708426869559567137941994266090469821730407285148611101935006118595392673794631611641470690354197859422982875843258112829307760274995510858131176276387730063571954271348375443251381030862316167059838275403959704237726605171234379135964311577076302585907190744938381102030648973409184422061247035555497246161343148981263460871368323334685072917473927034964578438707831037985391133068059349002941673209382630942832310732420101868261406073736549412579254841632451687750682839809846384341917638876687192189615723078570130346738703724520423789027973144582578395360035802115479609917850513234409507739706731063935376601992401876702432382920671779953968723813841034471906265978994722828496327835806268140077186997210850121106734083429544061000093545447152141147313184860277561367056505393307598226454838510747948278448151132106050761478422649969218399729877942347408293912071746202269765438438270728725203229038028180771576050833287940478591911736145005239488980324817589002232907571053924395469077895612090431318850676208261566369632190877695031049902340638016815309122969376383677776932136825301431984697155593875937858519821342684949298766542602397582644069254806567336989386815913332915237839415332640294000160988570549936813945111158754492325147935631710048426043693563895082833513303366481747611473144905612711635957511335545866974344948701954694709095175812551464447232813399699549108110438996606210348814579620447793076644340390311060360085454914381585167920456056786289274430031022716838763993110356384878646816067631383375965883557116139726843939968645992044924167446422164966489996104228719942758179035695996618530018642275799481313969842744425553951896282270964089240007645367701088002741233489614679347812134957479573598043552685117770634745058963613246353506242223824602903454171315325019978073943667057667013964029686685687332949599996262236735987446237694758110675371694229425982541257110898635104883862962338008830889747272910056060184239974797892697465447220473473101485520802973420974872001463155906447299234084374250593971054897612766042447510033678659487007145331289824556390771304291539413417211619818469110313834182338086079137157686182420623371498830605118247699034047944019322157081455837986561908051613234190868207789625163216658884407981638345680749062666268293772360067465140751583532447018935983040980213037419814271931790140760908573021704886308305074982911437823626788628891274656940828179848268329380110323612304567179977350123183668102131750875511829103307980709081432401535764235397253898461809701499104009232841711705446652531844529911249631107771950093002497237240447343713133283803746739585375550044122826616330288447015134292514104511164295476880278571413722870375813317471721409866156254446768950857793616141891275833838128665161140752059996763693915857221818133373368334478087138337961660389488833561830345454005987935165672442625798329196622773222020379350404262835765233161050222588787058224065853202082785210569863616921452787766325578559345911798903913465135190895419650911848393666216438473512356519467492135040050372777811776166790291800012182150122535671183239975733738583946631640157689114923670156722881093100254584943357391979341317628051651698814691345716660231200484603309882229813370234159433586031873744980108069153959613254796030788469040438088417099283432554109838108071991325179784491600663917500187161478137886502308199180500898516140622136944420437702219699935773035407840319329719038510019419096302540366169924013111170655531685346300734927582805439073300314853708573611090509650171588091907050800761002489963500298300105397953097038894087020553695089079746749963847344892594934749371789897098038088020294236291724634731084998738326825463045107683334127636048682650419243094279125335863239437561423947678681071990716054639996875535446138318180787483666176244740229399729445046787549452946791315992529619363085603497550927889771742326195964594778750878590757715343346014964255086196342249030889857537598221062274639654087197315661510217860506429957278560282064971971084706346461956269724296368737761945682780361804128553045819114096434968790936438980447281986665967052549461721653267005334429254473979393133809334574803070894314264653013699758825288137583643522856082331025444441478170390217018575295154057359065540313027052483571077566632833906968447654888883054521849856632236400849878401410384126506699635950235626602547329556508957490163954459152467659769696719985518063940695896828121100665632376870526044659743512527914266231058595276305714651385829486303767890345131978966081412999598290847806375677933454907204615900629929278914200836459210018350896009232401679425793314043835166576233141156277315429345924684160347839885874745501805501691920074556501445063710086682701757062609219641424470123119232421587514722160950626379149694170976536119126542125327456514030615056636956311626268731162388586098326919841799876428938931616323440692851168303483841239890228324069357040716164536736924535293861851913432019053471353073500151431250535509100232939152619697480673561631250632694003117970711261749206915286692535857792139412917764404582015405124233064500719057264274688339466748760510672549665276637230892374472418545175346998733122168617414422977000437401487891277009478340906355114191554239696249680214625058106963216547509467401941515490230894814071139195433282365466837397691849574081935504832552075085231413974419259799380634529026448899302615600539329874603617321948750409598224160523129925024879415389847857159927073120898464955035836171982238627294667761168783763673899125439575611674388355305674318563453060435263790013364331998673822602306270996459467381753284398288911094715105586274936016178425792143987456593934751065723793546052310798966299750167271750382568576165106725661738806712991632117591036939055494187392901383686064467939409833857099495527764223427260673702557636220350270811881000470159423528302559318551315318671222515305952876802693719989065776726264977409772302678396142702169818286932594218135231563160812716477917475456442380818417630201561704270607080656217308680474605326618626075934272708685736231811105623603262993615532177697964053748867144390766120118388981154977527233449741725760371519292219771440918089040786937049922698016833277469310126300663768971178306020817786732617316028677261190984167176160158433239269820685041688584122189174556022207869758884849676338518486328648393001698101820239567004543891947170286135320457062366285769369521956060120661342896655753634348413269533517998648572621295593158220518790959344118821190574056800191531561091793757963556274956691704944000180336952344154846636897361283001330465526729034285010771370412534706753381731770819327735636796461757210080128186449879421102386092311471714237730512721679995648256474979817785755710210469892594568558145070688304115961983595369501287045394846092655622128187220886098882589753888338442111348115096263572212271552077825490276185951163276388097719464101866142432997936974591260517634875949717558123451802132936968014339408647797324040682725405923790903982783016683716603667401229012106665883297060903886374267564206619017995653100009575285597573045220718637613654672991375110929798937269728556954320889238427435591604386414305317201387776321578988086767702681300644753450166916640939888498335235471502835480902658071539887559120701100511267022575450012156266118082803127340445525172816903123071350071715867607128485773661285615011545701147059158707597187657551360791315777916296861951150612164675132036649182261608936788988022794836596930413330093718389864268065371507674539411659890128810276432125087152195295498162714917205625136896306032319814576393045894242868167465723755805608725669981714588531234213130330777958549060442430733830536735456869726335102664446069290179003818304049561386433384795804826129608447705162737122676185885005935284867923100106117377063174838592041339084387824436726399313586958719310795306519367661307226936793502149032656666820442140453509556711973508099542314928948581344379861767509144133922776350718800318975659505602095985399800705629028861875918833097595079885333175952628328021594476495650211690211195071691111653936614644173988526026917825384338082349720967746230204989247583061870643931626859455676253544321277889967112719199660862075433287091412532225439143450851273982231507218608005692141733010419360068146460679457539203152257312954067474668128869621211632601136457435940172002320005835230338897271787142698725314877602836796924744446671163868233173169078709225607499045181673917637456678874470808593403949708250309362490558126970716650880254907707326393413052516607254108849167327452068993457703713542895943904960870483084720786817838572159627731534865964975669293170078788202603054992658258226691613384164209708179725526449172095764341138377014682092076800296331451349478471903936364694913137533542882932245238005041109139196231619646710820052040198194787977420534892816773235579518847040408384786501468111602415862614920449316820228449409204251878823662222460663445676805138327202724097573401162080581141514056582961026129643577581146709619953361668249477711953749673945159031179771776398742747378789441876661582595700782538258730781757620011569771311478539191048412184390310798933163787286897918449941410927307168470363775062105789118060356231673507561446036870868165289014232545764968649749946693063434587678720355260834314457107938340430201618996528643208455944780399282712707277294546114199567777720144171298059661441093349865355864633802955083025767360346855500714670605322093429307923852788376416212908242229979656956679132776076634364444745994196240418979439979484632445250382071522671172293177772919558128061605011212889777320507514555059907400518902164966075757491699123313501823526854011942667920419747979232243027404695555929404597849950678842460768481716423231670287771247707202700313328575125455211692437639874541180322285315953696510572854128568551764753824377488213428128894763865820354348038321804583761887897047658895256758680469087408863384487995404169133681128581953463054469606012560228230363810529325265437166245059947856841125408191098342843699672472610698830157724998941733385484532387568404261831833599994486429854725663194126632522006322267368046967173981830893239405602214010915835920554154586471277216105718953804149470930799151514293092378765133874734890012119113202891197808728195503781579924373892158098747880451493032018742247382122732759311043240733807731204922752522831331998015278297424619385328219537124210376796249108739487173757426826310841186120549017722471343373406138097515849672203169182972573661783134263133180024441024652754644913738809194989717579418352943022529260311495194332145946729833459756450054310073240637737448003184712878695699134256263310864125092601931808619924816883877352601489714492347316104310285786316037028023842538830619116794209566983563961121351070631408570479882290928549878929352708996549330664668762420008628688011630034877973324686037094667002748475518877760562804480004660188533412714103475827209014343310977314579897480986035065272973313681342513750433005415001782519557012355759912270085618157473432671145329188783542173145978061637161479693093312783153724976076048373540740044024898828609003433191240587332763083089273880346170873973544789692802523158497621406673635880211181429821447305595833593956180186979081069434578241050728874379300865990267444310405938314912054243213352998297940267123047456021824694014990197967986164026502763359732164732533129455204525500102893345381236286901893144957838670866668631132311300725300456439772008625564770564260424771605280144189709306031052405937919262153018585792914686093574072131915725805666918772656381179884702359241082376307849587981242707381096015366432044595786803645914693179779277305229568540599850905474749453977451988953737739237265391720166642459407910331363022631006585737850135208261745303678044003678171777280380278388951776517198362432296399535020211759538626355992375548538231424201168466291081570381533592748590941086592190301244122477462058160771656185649506296851893131230660209053564954668207217282143663699495872751287160076157420241991393790767713824858291836215821208856875022274036944650638319225764481742097726348661634600997961627512113831908577873429416807605307169139820707867729471166802594784964410659993738627613611924809822129476263721971898334967568074376158911089947446343705887524267492554713225514930960215166902985343060516024333398270181829758554805645346363752761140336953080639241654377084142973712836382935558576453618078056748178983200292911856495397892997028963984051461289040952257401316894439719082386753988039640676699479742788382026314769240998514261239612828324957301558993625813765846069831194232452091944143114019064261394914965886989678273851247486871360499475259895050722511270041431744545468797017071017414890797458495411287252677301554479386734063421359035619266225826455568779277609463028661559769215241165344553594078711888725013524048029400617287853355161967169224162675375770646507787847087679260128870001931720136539693993157326692767443308486517290329005415287906394068822154358013590487847950785174531338204913583782713229757426197463470118002308018534146729141469334930888469578515344073317793339245192431553014021200272330040816492022576987901842031629581692226443677744206413415438022178994407619608144378792538061130841404706147301254035687261044523924319140468910671085182539780031361997255107277434985493143554376492900646380117442316756973730722082902978262038649587666336226540762255039555685636216763901757714789738716627169867525271781633892422701042912685817564459514308447653943121620463752735748527189603468825470398564924530943825270822178204511928134240039972956619291215778514343439084962584390007714639707741540225807856194419735424543252769398806352444924959140471601246830586158798844686503407353036182860233246446429168175704767157405666844097187260613737327989601259766300129186212556899265875898063120006378199467619560847620838812122910850764222899180036731556007721089081788506401911579446861855561927964407786730273701260194513129838814257903062483662842474521774682386222434263752951474680156174905903327924316046800609181261171920913645635535177894298154548401924207998977253803016656764651553118731727034166790484404694679220256786271374079852706185345739705318833488539216178274038065823131981554599784184306054767737329525450766272942871584007957801378565681686065681337566200327063199738416611893919660606751350594032584985322741996855036491105381042182369454564183424154402808872857088617811324843606226425370003011441557965427832671962517588753961286647987181100085416117912674418549025700244463526255700796986728985657883423454144028060443958457841628250958007187181859319986291512461341206275597010965893949634041341859172224647069087719300251638588831693346883277588959304295625077239106222100142299346749221920084607222957371160313678169997729526390746700324218131076241816044961375378216985606467157747244506346290867338349605762808675528046376480954023295224798014074435490782836404708546488696567015608344481261733062926404125500063393449476476955543620824889474667367490588732505509612216436395095844890972447636808956152726975350125542692997072696880906782362283099540202073643985320209261947854236559693897941510329210788805332352468726121661410761756826732941467652060066809603722304998178852228611108663099897809252573123589962397238024820770313080145664037075903806146390096876858076866841720209965931224218422048476703748648439403709372269374090519904961290446257277571960298922907507218246724900548630906704967059952080321952758530187716327978076372723321896977528698736519320282675841728761337689813087973820644176668183959545462691689902865073578484576376916776742236116548679555303646880091398574729237128176508850723942359129749785654406816709404115802670324900642144819982621303844367108422286947302133881892152403897424110548064725775532693934700822230095128698266164518491295010396197206466797592529582255621129514212366163870114103107970469941476865300601404497194919058618881522415690565673612720634097272519046534819617296641520058220495279082022181762048460170920420511592313186154322164972787137948062107512267384847797626200280908932519149819635926361175405865011980400413458463815309541803158528542364671068726795290428526305168228865722007296647140053192390723916691205953773583914114193184980554572824734459424482082154169072930888828683105291531070746475891220558849890741901743600400781082275254929888075625194156575231673447810505660336871506119791400644607419924445761154877268275436941894669259089322406218583651226932863456389221736056586534204356561577116071026236715235086146357371216255830367520860817149473235745787419604738307243787784945211148206195339805093284093233994591734317580409470421811894971637678766118862051692985856114253892993158212775092426905088009415079758206320976971140446681909439645213944762040750355918003889339331702855054074576678792033575316336711667529418566354111250894587952327651482560937676815774095939276982345083907681259035017621911145242235876706077098097969580509118302800076369445092032844847760297364589087599016176064179565124208924811098288263703633260455506935870709218351535889770718567590332459832256732958817582029168967636941896930488029516889226764446378573618749813234129654230335986894222038312375049446967288505035118244546125080451288967262468305843878496101568614992470576346872439546809398605453840922398922695338904805220275431315575382613690546551192909530678643189907915927499399306358745895345633912876884428198883562618488989426661482708181214009501101674249296452052129555517468386695542157162858283396063876558645102755681758086656932747308200324808338311076296770999969886132210177221231929531637432574227384614554476654352346839217159950599755666868957774985808411830478004327415037957648599913341098960195755043876706679395313839561252670544532043882547008065955406691433445254338308609756543306973155329869879825664742523844329285814603909931793612485036441578564601794680428209706362084449345116059738838526662081702665478887250676323758136974237106124843392339994556683941566563032519022492878004688958143542165788898923638945468120970065656238362271910846361934978396055228126274355736741653869448760210227031928766013543057745343492560477057286329832850233857195001320154279032636796926570677994250402122131826858925280740665544022865198238344097042277315823221783248635372940401068474549252526048909368269106849542325164952677279477738511235065957361414541032434458755037724050701757031015691698900123559649825457112211488727698026337987421376518063230128014295567162761115939144784889690628237771216184639349288981906422923699317623373222782706726696128535981864352198712100197418743057065121091401576830785510192926390080288958198720661267989547006440114580701372168792306104637284200040601960450346753276091863743969385532221162574774832127255756232185410654120822703622058343037389525489463145210715407423376611504299352299622493519241330805707189935597816632017021787715300056529776529145179665668631793578271395836850447111743563507943240463735988415842583177385873138119971284498148678604977148396760177022583539249260796831603294874649712206804377302735746110792898442763375295929187907739015052259987653376116648125516655099698160439693162948818341655841040028943285403554785572250300705083031057782959211268871401733810420131127551731527719544348310523846197594899801596820673087720675357119594467132172069965688234687824884152964775677128081547499306707611935152302782268386443278858268378491297300479144410575006363179258632665211404367336207822947906209576283058880656658511771822101425923060024909204880848515641985687737945483166608202636837589703408558770728095613399601610033746852818683179267845045405050666001267078597060004462185881501289321726905226372135294733470744437804750727186572061914139042963459731224379444892457197214643777566318626921834230442027373193496758335882598268128398786745810677514601636090958282523727495291375454172142257755599265841986981071525245371763806937086367638737084326563522844812644746480222332719031256556100944514617002235069478392877580925548275487623364416641424769109555173155306260919594532972732438076128827417319357837930148624458312703975728600511458803629246068311455612682248461544318644804925045861402273974513471239084832875196881617859378308417526546907295606523580041012727679037781554278028156560399451546779002441935049696048087486311205526783778141289734890260299659152978244788632855508603364992212208857944029091942288919214014967310682397235783443818320758452571382849636553790798366401930551745246363452450549286652238431458805656417339303873570476148696341363103539498524962675408000896572456766911513796837395106170367920334179193977048142307017359978091724211666015978671257316856372455821777864211490701286686704392017925731171018419578018384621121818664956068514623974278472929774542558269992704864656389411883285396821704728342038231931879279958379346962259359728175576660071934951298246692116064585198075733687107388479722982528864019874256598862400209171742042165494139244720532730392729224242216637812544936460167738419281327181179748562151603304850618388445328458685813781565993630409791915657206627262213382185784568980238477690923528946407135497321036968978969516416091831419031698540707706197086448359658202293126313328968788172435920941928921670366163719830785457780651273119899588091033923229362009237221396667061692130321042820531004215118488512528983878846185343110473341806541134677636470241233634248621768694128963530570699002621174166859742179892347567676253126605047258103930769193400499731152468930704609088856534594070185058897528137820088522671407213120520875464010600073450749741774371082935484214641566331780871624522577086400630511187445606409659666417718836799548031978802747940785156035152519190311634721582198702709198316340307190601332820173709492755144162632810884487961169316221656210753608351308631396572622203956867983273829894740957091835677398771295876370851975010618675339701611924490400745501180146427073835944719330931726846973679878455953778101230254873683128209282295944665300065903302204396496818277985839181903358375547796250319877525993772875797377019100098646107927847399294106316440166681847814687894184784275532459490812703008644344169797211146048151928144864976916511143659444192561127490797908828445330342336545170672781590257979880411389633455609357872831339869577715793956284439233505381231154255419491800110225118421737177919529585743603484134601615254071407831921645734094942451473678229584327447485056668129237756379205508076770791971642733071660945496158949502513363532244197717394069497944788652136702543300384865475248708109684016984150886879307054135421729282484199954863834887180256105515332990303870250683932492071052119320947713441745107367434503844953029382356163585829501465939867459362731732315873097266215609022873816576117055041435782307731994625402414838660345683707543778238713460712571402578120789390077034331161462101646011455594044781400314314001787840281933677988246942527475542641384141458437192538666507316215999835801932682986335050047149828419976097886261554012862876199088895626247562197711329083801714468661865790593301560857024341488636192518362159840842142700481575724650311830317372748397390444188969606564446966920936667853338099385341830980721159696942801155959981099409599658170620525189033110506714433936059524449493472592459257309623585159525087164532808842798211921292452485794996900313225450799551824130719333534967360468401185366066333141729138902262951799937511954702476654329966803869231952173722926492082886940016956253965867467444202658875097658315855894731013752545599180284936169561740278134346096872360024877753722047389810217445220138008826622538034173952808537379877476123978667129405128511065493140566716590094514045444541908145245372194444563003808925710593070319191259118023228167319092587362776056828352881474863323827007809132329342074033831045182851579738695932983510551305445189893533054185563965864468600665551913819761999343587808770475587978803265792028433031301879331277477195011995258754121345467391816842686176084820529647867646564805696254748035598059900829794146806499173944299958011440161525924996789386347267644962225229971537675436384795306476885040962087749650286407488522971353272832579936692594558818004199806096488293275050059535351899633548472336648416350710975085786386083468589024402462706484619350057951786567969732216663840506233845693961093135278033866005433720666443845320953623017592513929843940062310551174948928169994711955822167556829695139575374158175569326513298203560311114922330609403042834913512870258364098679249961143912869903582803320121427210149911869700509375876091835141391714182996223860794433002559992504625731957331611015105852558168302935086665986817476278333659633340171605336014763509687464982447170305417620950834560067641801849417293534807525543084032297639455268670253137022060828309493408637101001879005105568034001519095629293166728134888634983981571162042263118835155818295722388106432605925022040174831165734078154505148675984136068548616339562712290433489874359621748633425450758976861305905880182793089562407493762796313974046843402420311952955365037423734106474435921447315450116531815171325353945633213906315151199808838199903598627579962108162196680324231923082013255746923336745944918991659362676666346058815356159636232071060864449645258192615334351744842476845474777802510201479794892381813113089786571649639527517142925986734036041523481754008396446328772238931564884038906365325373204023691781391232108912382128750127713802323691586433972830002841711493295649753885421627823275623779568635240057942129553981270535566893596005489921771799414325663535746467281618667764294910472605437134032491929741405544689320441391746530687141536100779934414774267627291685499309073283871755368558243853921700406390620180118410178266291544537337834046932265419652345587786902576121213659444190846386802680745301717684604167489574810120758338274925902271330442198657911725253526971356693895834059994533407539032233586465555303385152865317308572310545607911356684788508978553746312419787495792576520434711273071785204846332808296032462398099100433946754242142135969472596116197044001304997936802693351310575183053821361893750072143976059380220412393180751768727401970568544673339393082035362333912223772207205812814951217864615746669939322715164342518456656489777412548019928408819703205308295405943402814740430986311835110253557465389376433361728230295569578161948603835045314748898705977949091033039157567823023726927375838697511244268879087295264348408204363137478940007222379847289687245161631177456420470885657776968552067921274713202388969105706603153811315772997460224020188388005155100254573154100110750365990263789407821710724451631096428872966765656171607965703281980784337089954861165936655447614794863975615635243482133537165915261217550839639736908002849832225312452774043906889865260087932075819226648465106014416898621331340849297725509307920294611967712600649257837098400828725548160203527478099113139989797465369946551415472985102587042940669559727404565621987722495286823394469943633203415298213985235932830550986478421379121035112588609161549845518851606951404672625987373710196263127239979681510858451382021354898350483187173430711165403760611412063355873525508360285727837133645913932132695426205752861108537454861783208959370386253732502235491579995199372921537502268930474421837179196283055470563905020731435141077774363579339846923199004949032271069440558560178661721727126176324537302864720546882959701237458320881746923687285924788142818778275746189864648966768268623322036874628499354600874285390263996803877327546049627785569085722259556463137822365500716789477999483099712853384760467810339623159930288656746252909974242351944631866421046159227295324196724523549001388100760072068259469049192857596994533810048495514840170176375971898437802407317509681714412262249147495809925889023909947829128175418211471694832401190988215856420531456339156184326558408021610198057616162077864466989104200412557486785385613571145206393792376357495143481625178608801385399566864837599313361202881368953643857154916658811960033124322208616755067436774823766268051232795994573585701299837516231568583397016141050189431728919258443038947676205799983607786434848317837164900962850510172232653514113347465342469511299025647124288553033311001257006710299853105750446668934838046733472606785642073527015404065956016495152639881532033815757296894256723492083431362973239414823043529073654983433230261525178480271872381304409635253987962758068446667785026589963117882587165950135937737845106852950737278885650058720729225232091075877794197517159491388354430204352703673815265819541334196691349680245551633932310763955881307340827874073094695300367962558793779783500423446287260936390195053616917453596923771961105304740080706222360077245260845511549590502448033973322891088800713948920079998795710866948489952329040373610049843648574046171477258464803259255037156699353684113422107194760806369853798823614714892497104437256867246863307373580828534598994366694226233688840194078331603519672498856223986843942941829941359315207095677586342481007728817382388414100376767223046956305302827686979131268895606729145194673210927450439633406529978545875171925077686514721086235428893154538263909494743577108489139588659209252557290875809626075587323259980174177171998103460047619457919015854931533748099898578706011932135814977088186788594823616534357002453879904648738064480306702955951031289001153074635694956986310142574145272230803369025492482778067861692514318107169031090806384996866157629931336562935904137313312162593442329656896547554108224802693878532745655284020830881876369474826880983755752681451626045570094611567378404091355182637695446462210243244402915661999604241681222034443933271519351249785115255861742266955370387487257211040540010532706819418455499430955408780380740900931753035989312254495580077576526777980023863185182985570727830061763683612816257644425892008161953815666860989524532411946024623536640234795504635516641848487270519876305927801406924286838097062156522420248532059643603399514184568092121586270279020249038542200318638374951064010217163808796253514321020190417949515221675336911009143215815386354671413277879837443499954984309850969261553273105070798819321756724752016891683612790924206951221811451386591343402325809019519719424493018048749469307804464382689627616566098124170598935212762014268386061055341621727787081111049484550540692632594378752978664618698775080580063041070412225880760193424622725393146325858797121799029328670606122839475606856020317973994837052204046225770259697630664248683646933053790369427027844876216098723394209388221481464312409198195537183949592348191140011332442031895907506727132076112536009222125769389717515840102945667478290501440535465397933022592731407498883107477474710369234537218932887301020673128538137369857612140825163563932422220743852732473238110983513864265261340743436463580766856933106118759408929979587282184068597610156817745571751116670397058591140926391963444961006770686465474402207205904601196950855994088574970832653428096585927717467730710488958930045607135952132253425232688723786667625277511385423875481156934671987516789043141660830501181453971380522085079253537950900154521509278647475526173458811122482325199068543507993667449399844784045022729494423714993304689741136342744079124991368728816718178495461484988534701916677430686287819395953328306291384017443850377127411513252007098437766428104413881308785106959575559757090281909942523472219914038908770972910684525791642075428939526422681853723437211948881678550465401531599504105490578958596390550308956485739848660883293105039329774326472598566016630272952974111510040464416432801515702417851379452776896563000237744331164738024160316102733837479329363803960885813566744897326640191941162985367421777966420039993011398124172539240168500173136243431913169545077954376486680947524574426418601243591371586677668639234829459014378564647840532953929259518916946164307288786198297708178399073069142897295466324993405404332824612145209737329924788644765342234751314510926112653378390177257256285042090583470106197856685786517712431580729982895500492379100729575192474483506485862781445380110394477083302496621427932387632309693414565738566304063145445073368974653662068055066030365857271035337147351679586472748770736595243973088094356351773135570184407677515440029176752856823912788460183549883320875183454583151758650916044070979825990139295075675279945913799382362522769177792205069044982498901693303106163494227486997596879535921934283663898555835614276929880668196920971986995915701408218520005993500817918722036896777496930020128113613608419415142496839814567719572481127272519820917717603857091516905749834378341151624139557851171412619692047346252480080024058439578853573082598053195407144020775539134173560163167087642902971592195322121340310950065747488233451974659646486266512305598506337017249828387692035316406806875372759322209318060828689474375148528202850492604347152578357369423331837993431540177356847148593007523737932710830873215376265284761402206193555642636623441595691147612661822371204453903433751827240461204669110113776265864322281459468517009934457296178090502152288171715084459416014605092686361713482088469013483991987320815448312612253323309737788007413472449620327161583122193234053341051723836420982371232205952546823934151839306362757254478817910190503446433406875961761580219250771605432141586527860221831810115555891582770333660359879841218311563729370005697009055823340554372316649262929387921508627072806487710818496936955004413323447694112964826584499514214157149235123582262374154095901787947629970127266149874650248814967835021079992172793634420526087639278893773635081458435396711990716987607834780021651623741794833535712080168685636679354941217774959263710076510661363476795159640760654318766335577777420492515027864103591798535632146308377152555761153401117826751276758289634371081209118152979069530456110262369055195995952782898824390408002678701012909689335190954617521415560394839800452883698614916083333010990331475252674277803501695425830276112545401260196008846984044443097142232939850919873301335601091131503723576738631806805266987120598445317265208682595704948756525220311666759425234588002511553860004294582247150078122488333611302376000589208926072749333833041884481093665165912415709019359974790140911733993345478430175422818532335233780252353417922795356000536328758322698869063135312318662523412780988188760881308080937544912628439972710773567900469385584307377732140341533280375516474514521589873299781294429102211280144920277985014656805695764826443346820711295718659169486681133436690388461697454000917878733898354526751670391461643080990438103341868536035607801210883204267597494333744797625064628290737287696733547455552426236451577133834377144124784758889625861960492536979400855421012867874670462421439227059290725865169442923755562997688440053921227799370974429959784180087308811156266989559113024333363607672004493104311818989937787107593348256538857100686121861185092852096554596138287410006398031789368848300968515204409531100001284572590414552922334059427314421353355680360056854952160645130027261908257678551549250694398756358621884120372386526499519561219153933015973672893652776423094954897637192495046042290426780204016291220336212792500522768089259648226439930501513914238330352005964137445490562314686123347981533782556375476893009551884880891963351812210300488524550558792900871632491636227999916545687525101357924024434213875597176566184177849024712384830333282574558741255957792995529254227014456319049901184387098421368449272834194654325969504365458615030377868064919905589610168722309387006789429999928770226283402111617905855242396411075313201077207218576791266121898866882882798268458432697653490060167433516365480515204220571166195146530527810550742606579313844716481206754218544059985214798783762895302003140074630989877478711959100972152215853062092793444235525125834601410367654215164990096823069242883919348623018456502537366159607732463681237000722594686124021584691364777245272853722611059857617365372535688249166791915104484831146915306381463077557733061445750262788074718855275386119199932802652208321468969276647816900146498305257723786759672077830636205560252878523080054673919713224491495139195369250799261755689284009012168648857880967827830132050627693706375363401717600712167683181797615811359104251005261087870727017930440791834643837199676018071087496693971629549114640090442354621867958574055077961251015848158343220012700340026223809113654372447008440837547548145938370391448032019621450419404645354658521508533271386128553335543092647423845243411202044655464086470677509945952895137259295573628237905364446052077186923334077376448850894863847336478834804497324648851634066777109107998523688775563940164378889577408037631772503311257589254384781240739425777097631832597410282759704573073579855310778350339015694519719747100002254857203622585235085176215564154864072722396572677309562839739743138509264423802892998586182521164583501788898357080872781306721763497109144261090224260944518703764648472659890218254731178924311232844770957560282188227574823499517372370935122955006263711960338976199230007356224044407792309058828069420122836949271291669731204983753265954087653893766028690065606417151669558543405614110699447568552291438988449053870240812121049295680338492299564566204413533492888094388377019407052556774544086129716786370130301043861667198194925942983487263314847391627991553852306781359948113696579584847565007397793763417453893177002964940062347661132009761871048232429637700327113199550723697841500874575789653530347118202775226486133665105106055390934139636033461096535525767297895123290612094926299433548574327657291868596769451947686444014473221439247064066251083054859433864969048713917417560746952398668815517439680642854461551643146013526217354192484927780983971393702981571927124862734870959596793464833384783980013712939469439833960556405466160295838281873621794763120853374532701791162052176525167353808942459945807284145526956522970047043328680001912924097294068618656550902631112508622152377826213360908375830237353127172641485332712115116913135928222636106798758632580241436256606523726146495843247735964230771487085210536293606575137329622030607662149493389234110225892938709051633174037663482638243183779335894769426051983863733519418707791367074622102897007366109050822391535152056494007372171603221181396955291920027374752379450988298867969217652016379511785011982910283778931475492859339459231212127149970800947432786107282817828856420732262217711113285305528918835697965000032975195266976169440757562586945933477935931052524964235295220417571363902759820177715176650864541890418683264216856030286395552236794466248594407201451547134600886068632635770287405306229544972444103195400873401833165384248583203805158317806262403339173043807777190786916167195660033671098427519089677713144461856396792833964768048842592001660218804265623158432792798194917275965419723983732439212213507056868936357159016246373593480481135185131155060923390630282916742030991832636539522783226309788768924435692742601348338203537136130298762140604291305477956911358121155992290639856023231810503901732693289915183675185166054572702798514537448797957298107792754649508727975765240912428818705549640163267265857615544096299104337271864984908943307676478988463588607375925951280209577587295450815880443483772267490104705379759895223393170078479761734608286720132090948650116134229104666442600832101237769072962208071964851926088097645513099644447605168012959965646946816158336752314244558621851668066327554724688843049802927285569863165039033553039436323554457464185655633173656855417895799859060748206982376453964040359345726800311303273258645227761804653697792638443526493992148182405997000959608009160629825461483185135204731986317000527055741554428438270835444824749648462076136813066322650659226756074139271553396092780617707555736841123907227720981271040632932847204525929275416823426582630969703946959868455130140158170357494449150789837941461884401896398228099213535116697003292648623622702391187132639964844884392553793966116344869061572225896083157222873140615240385459629670734017754328234549148378674545451798790064537807642323091266006916401700585628730511397734079021437425930044338122053789967388650816740820228356593818196071040621431095217497562513889866760729214734849076804845785805235861855311959348898018195749669076011091047175914785274555602083981467380584005041891762271716265359109512159190100021551827763512213651860406812739215463327752298827980311213590458476413615683578974254194067580292533612496632326252696768953510606441794332820765460405915929161870536421507849627234764945814779369675214811365484467978952035931960171133748970377864651128010843233304032046763936868492486048347953498250040498687572343366237182107819666779532570516556606430868120880229892685899731407492122845668966883486903338168334190050130254573290306365126014031201702326436187545870570559833896453871142097526389525448559194482201175396238742742309862939205808302877634489161877754379423625787730857229644278143883482325888040099909839977958382962709225919527295393546219944598716557782804087004386030392755105615704468749989960269243065948925930275209988254927622413976135453062198583628019281866496002546841712246632917909516911299821828411056052116543595179975541555242906553855305537053069440540476206581798202965485409386905087535790415477429122880432733008933723016454534537061830093567677295287544276559073518528971980251626778258803937973551159964606392227773818500372374818727324189426276227364892608559581123538971641185851428496042894677852157370488900010657654767174497432442407777935698185626926091805389893581902798727693932002444053219482527349776755680459779386719970376330465616452034552473465135600448633741311092118557932899223522881774332266738598544720610038218696897568708883709013921164567281781022990125004165582776668318713776635684108376199373679402521117884816502266281173681425958457015083903052501368318490943556213292468500205476332760015916117512694557160264509655163225182175945565470686355820647410133108977426383153716431037414320490067946737318850660631736849482866623002885678040622497157943493026038137085444155109091227911133264447234086666618732879337622584971544999149242649700167103952969757108883085216962220034038545397171443262527684329657335110301716588601791498866118858925310604140177012097988608728407954206560521398371161684620359452652336699772445739130413143182869317342839489196306693709983151814831708793862748249784697745649091909572137463256102964785018988047310757126949958317581313228673069791266350088078209254336473214653294151480301915907204580035755308868632468674266937697723303987377706214153224219869562478097631910861222654756347153968723072009218183552415717316084764075511090512261021200144408522790605817705421962414604509458895394608041331214891747155879997490211829783290697115737231902399128372003678077461647152478308139424333935915398678789238339911669168902286909040153233064244262346577973281971207471495998298144326107147363266815601703326237669527316961728727797743265386571008998101804007300801053682362204051115494682368329092001094847660690710769890012748732482869395602311364760883023902606285072013800520701827900003971577452681588860162601492227900829285651919258702321997498802385644990194025238670380391802135288368613667567311376409034442397521058554571628930060824026089724485422393995890543793420763075139683500011936889558529787474908651278500721934153906454901458218369363511317282903761843535641068455972375868653775744209946711430671073389891721822917553890144715391381578429195786249930618054770977510973229792713392748963097376180863033615141000848397487881382389619872211469701499116459236783854923403716804576787625184110181018142933059670256586223443321912219476750327483477173847187150103966058605840676936376117620026520765612522466519434193385413816113169063730657537209842818057965849885143838345248916398729973447738770245009628365771321984409614065160060771207744492892163770456711244845004228448191229823426284623055906649717196112548559610185317790390355204327634517859542400847736426444081179656386005611598470180196368127560797176524489515706796895874821277356469233269321838112395799437942814356854762935556938664333193239485014535582074051269228004031682071373570204266631663249377477681021992375191361406932004969065321266521052044721344758343852341745129180065981926371599491848455515403613324273165384302611698212220879702237292009250439216070825566220448058375385904280556509213804248752200878412833134621834226645458219840076830031942489038098843075767713025576785708744670789271760723195604209004475897476506848668791980310696247977317558245237142853554153038502461077549451706607237641199733663402110276057932744473636550679265610523189231644583655522136309849408910932691558083846694690442594832884398066903847333022933322066327786189654161468128731828451393475724567188223987337048847998858136161547294429012940231086546666151256084568339056440278675623191712804826439229735248192251132666211517526043747999063453685325364817516410531296122056258478017081374559111318394451359269677835150634310283069460145733391040169603657395317167991663806718208867374595061623098389324149297502013016753328074325910913935227903235122953714889738499249156685898012049519795657547127054050978915321451011992049660927998546179218422217946755120265361300253158830212114063865479710312738159417500262027801337302721054194216890967253313267015384097675328420052946386502139684042499931728832200623000135035853427508717657538662780164419725854150491075077300812189298062553703042869540939589325431253662213566500478426044365673229852418470332160755601938512818288107268982783552435113203812324390321831919792210171367323107600525452148730039511859254684758571908780586870065305920814626019113617839655303461598043739445066440172371250953553407709169788044885335402219355885259019913638041240358277458185061545393441836315896527205734293253086630371156746116049989626277989516431737020212612057522170827868092515127204406004441305945683097157130681235516520918388487704041674405369656238155521843160587825951854935959613663916287584337152718844391702706522247010368317473255187802620014380243413277539439332486447614470720491340989419825372738583308405050098350084197899137005869741463002430523793581644384897814036305305161440473495748523938968569200761291531834598186913301042465079185439128055001211477843504463205263399461196450668642642025288466480802140429871731030901264583019154180743938204628359845987317892146860879560871271887039096639573518942919789645801004071799399704971397868607563240851166024739125594767785750777103691203097876318258632541499992159474215219286295680624241483357689007353738397878714702028208819494425246013193663361768940126635821125885250051112736104602861845202555801241174315377189275819900697067980768939537534831400137984736942154561942129473214079319302250524410475775155010219784400265175074696860647921378645851046759367210891580244996257839949620153415995729174538665546547794738746605284281058137215921499649330687017283945855742925297179114246913440432578409986194256726474935594632069683833334629405662709016149863826920606577881109520220774010003647952439494718473442933203423424036542917881759143157809665180311927280947478059710535719228656920982083540741894710720538288952777868386135517413311121080041393560576933328495570753236014181722934554266750700918365285376892808197796592164440461933630056045336396681224471739656225957704439929048565525527505178923978155762309361696737392081598983755574133235849053720102991036620730507851129537553633573972580851929313221330844337011441137184853753975921897851515365805387800405995692631837966413076610557198031278920684318148735540742325604332707292358072764706397485492777252293961037956240561215884635022512455468113808915675789958161403974838389388323534188021473585439282363127138961488074114440871923430375732792542149735622410772956728998484786412994666828453864916569534104384250604351877782909202526631988577013222326169623123048405964889418705829774977162172725075023943711187033264086588252979484669218298037021882248519492779051851531512918010348185912915549404875018861851602047204557189627558077808424280977704876213588960176477125041126856289606383466269626774715608548567559329620251451197139440694059551591328812996262022150028284090424258677681117431068340636174543543503766810196207362207857127643221845679093982241593530703844950731644761113899877671529417145350829449189219122030825292840787082384577034319307345517381966156689339731907266554602814365901801321852118454465985805715619025058363065154800993321770476630522413956725703391785596350034596861073816918629411863935636130907047969035011202432013388230271782560917507209917998293282736240741448105134251272896458462552671898142075560577503136516905732311015595564019570159017929410687651404711804528481534660295065112256045223358785418800699540396140483109440067207868632493405232007889433119994554406628640897326210278504391749823971799625889587282936784983639102092127484476757163489403112416718343704082649146405333326978838722251306686626389466311163679568642600358950752671313728384156752113272188637448677952352039803179042642171270487709458097056978852981015360848894533270823428265224549458964322232621406448279585330396168040673074426734516305095239506176223674824620298794625506565495717531051134611325053817240298781984242004085725082135235914035238472207571548996026177483382871212201937257258646707418422022522505508936800745397728640940395402157626838161360768906896980729080957498316651359889624605258236935870097247695680479193371010794761475070605871242510909481747766826590831602826725061663245805035560041070442106689151475740012768247842369423228087257868579641023505103534299243266716005589234825991809719882824108065138939715387759797715426516475850881787995206772747506230793291859765664481385896572101673178165336130804164343105165341215844612819495537351056773745215190469000450544173220525400008296745921034556999505797857637356396792654049709016792116966704925283149203218000428603267332001135208535444569194393050856677697673752140650605035910149959797393041361120525690233769653467434822211146488519006489758141382544804593998749945162166502103019622379726146548031539747401829838993809961028819748731496852303524529748423785698255398495065212515737615859349837349140851719543968561919369463404129496080217064605789573029197442649732759643133488759549425461965055855440292022573712502157837340563230505791263122739413585578438243822104130321666878590760999070387203923863627189753608928999954510244295252394142800282795868320866894293870462138466077433203061376502439603669434706966447920461199712855865865086539643911145275032124118795151935636590932718320039755248901432169952119392205734701634460182057849252033692317987455988903881942811540864480413984556654253466430739619287176525537983147807506709614817888147962280401319935186822160995669787601373113417960628062219991169617596293228519705618317512584869097272142701872152047307678907207972916603367320327057972574339347326826121717434153903575956424046011918867833019953152217195206393415613363664912978576988171414500477277280127231441562808013909238798704662552847906486107634832560325957709133120314601861776518319655709592717883806273813156738766842042453933877345607815999284526068073855343625109430625457791149721480945722988852952729623072912997579007126269564181867147311876594091893897557884658128010429335401952146201632419725293094955728164892415280762167697636356652910370539581505797611551302294398454103012939872558707560577580506636020960899740266409211746665244694918318926619923163605991514119609305495561292192622261233780482368885187204633774718292061373646701240457590904719831461763283013978521688166745611793102715651631663230919176054951503183453098788713075126529458083722650696496103377419909265799201852998293224179452887928772360602407166270885555019730840620784451204884496210866582311341807050163271912892567490964597872994209461490131382528908735585528273819772531311419656587885683280412066048879554094738646352823497223238354127585325144486581477309650268979755490264936953102390495033876690492963567438960713070670524321400068952040368882946278442334679825904110631734559078705316937031413079346420853436798891612451088787557236411939846881412592881798109066689358049680969766624536505306392757998729750078319061408957812074349423121965790268732079306589464736326241896574420507343732331096667083313147333588959705834793219317898334777905619586047105364536105916734958525552573074401649971632036658004652006894062380789668932719212930685924281624007074246107789397217251422797427616765003046704377743196623933990509827972949500615555142979165957792956357133580252268592154323571992805582882674929700513957807563276685930209695772205748898237972543020197588154412047695943547911973769953856040728952784729461206691832858472902169963008267087207990362652139796533744775137649541294394815864237150930169767391400883901908669207102421099403171531148789035462618785137155306417819648183208982669821700623513327620630701270876197655698103625794218422644761566372902529556785683658641932794467031414143197173818671942921352799478898318533988895609981024853855500364502289438726647691901015771454126759331394092964662313776971018899229491126444030242958945353367837444991034417076774816082834771440201972378885293255298378522841433207811720315850631396772142606523989445355264579642233290442837872429270756067151142255723306987519383931969930486621756347523881525546638614078902831526274989535138748470331962203827493282482191343106656472631706889823274780992386905775744609143628901958350982632753558731342821862173305237116470084823754838020734137412093969922289089261473659122664988855889620451641104557467444816022332793901670251266413530218809180401232459135815157696908247480665350340715570974984329976500428361640957800152085105693179546093318545114804881108259156841580573041466693085194169401318947615070534317441338666367351423831890953794478997236913386166158124949555740319161250327620960766061523406439994863690807182923288983425913761014101439762323834942702772894241691411045894930090627860035202544104032581132973998600801468510803465328551403360196436556143497690432789717194655991175852376651914221566440170092021772102191016430611851364176696482015245866603472272998178090544735260679494544415108295531897900462171588410956965777940582216015364964324270501541577594081115308309250875322572495310896105485807263877184193936132025853967353168383546449310143335859069889758494522613861523185440043283083394431619507614036693116349970444908645231334396941394882301420057797508973671775959225110722603808562765321432333968489458761394751018850617013776293180454783289025935476845310563893922773662043280970676091402063174569102949215523946340553057396629631057157638363288110306831989355521504241486421921333414517510963623157901997877624261978529154488460119475223781133531975574582727251209083312162833608540086016088925805613889115789988925036921969385722854036777134085796896996227801776206505060868179247008855429115236751310604553915058879869065136572359202464089278239760293642469022291600725091419686055716283549833623422814538652227649101877610599754679597644263823466716041825762374078369632247422054782060845132400824604520819688426694277935564570423211713265699726364290299676252982026040803625773123194114535716463095988590853197770170761243893544522170126018882659472400262977684670312353269145082220393457671929933743665302790319200292470731405729305251950716191756639311350296197901401013272805481139110003658173277079569608944002765539138437312875384272733452658781940096848102050711465722155499652847076346696005795933178153414261740036261010010374114565991609328554091792068907319656516912596189723112528000359426977877651911520282947224254686171451650505948401523639599392913486770781820391564531038015155740864707365419145248716090157259358524237701703349306800353831347041561936586992925940459762217828960133235457627863249185309048733255507539799910569346530737433509175926114114310055808534926975763813664617486813904314868609754086860877271569140123902653448485825774237833251880664135862256499326589651135956649314218175034500873481248741031291687786853537233932523386352455767678177372503292084559657266998219971154030627885396789491392654182093380020049733228333970559020199743783504513066092249140916497704694764692945750142031385407596592348917534395613350983660275237201262653318174334123567130653045655524389828717294346633035854173259167476822616612493476334898526437620244442052037953037513444885596653585910861479724743211343527859856134028589590301920277919959532361569804443671148836032241673732209236951472329550019365058279878635073238393234004694778535846877638460244574452015769628178368470360059255894125604656560290066351547343520529557517368596865794440803992861164178883714081461414005523188433645906326252949120615651292283957405150837443384890484544321832705246346937467795248773233973488140541519159840681609592523131378291568132527222306239730877404161010075612087527536140916075329192988483076165655480357951175154880974915961469218009020167999496598382280427104975107442716790996686099044973763726353590260293169523492623249482329247771305508022809188276649294206371952975340316961481214667805559306366189245534702336185739644319493520596753916267663645369673343271827187413569274178491293976283082700114422824345880446540372220775328653140957969997493839663191968155900014864706393863048355455286332783879504085095779310906881039539003831696619715632936566917859528301789551760902665717632065628364576210453327228804688109775727816426339855306209799037572886039147077452251870228838668457211141009201166924589693343993783782192158104881581803904217395544555868200434608518691943996973574090917346272346800129480196751437582237156786432030931449331938617256301479870708276141577492707435965531274823278035844301399862137536304065587418698562490240594461989684417529590712300361315659924425123499806432968763484946847099478092920630438163746478965336090142046472601634839067345805031386966615929582764351475781815101100469448311859297501350399210883524332674454400172802194502815541757282353185246024284360782329542288303483952466753221281687532598226624056166283755252270211538487792935893441583556635245025791544088449742665493619182155147763972188096202076667885982137573231127256229410188914414777103724056199523571969042989371187960468118221302256829120274835596522286429094478351503275245883531577318689973923940482341241674528796411520500683719684858139179103392595945926582521827701411666984159585370415158173000475304555337747917041956871035910092188107007567521512720966947552198957253500631434106481112409041434664336109565076958372297247846340924959809717083781514151045986383465075007490029810182753996577285598398499389611410707382269675453644338015986725363355934445298139965339585019913642472303400350342823867372076092200021684446718412957872579210958334897487310172518894121078533675481468243470416161692533002194153131683798169391391039579250144468839889453855234755895192380743089607309536949823120846413333482274860106263147382126522679502303347854336292936356163513159514527578070173511539522848073558009456532798045755202055593996307930426427294810417148709922685917944582741457782101993519666654778160520079438729718686409765061378087625584523629967993560006223224527797324652409810381225179286123869279095561658121854111001585490603967907597983085548092081672367306955275547503623709011880280794280627835626722778567913399566487329527350729045128005447800460543635443753712993746546603189368090442144176366708972211545907812717187867831353005662898464863266792972284455798653261967100920176198089784333398906157040735201389086291657092950765248018362249669766954113491533329415800256380525289234931085245566169035682122669297008733229110012140899222065370027455939586145020145689018600279565452124116781457339783231726907065920613538080210693012389964286979508996914534848130063542656059280363119364372844338561656137278388422501532895862639662184928068397473164458680597571058686403414509569177782308146921314354244834588643429290599216615913950405718230520394221481697131547128469155306647310077268016569639965342294794558310117056017385949799545531507564187417446922210807322413354929480708425096457448883283746228621988185578429489888373712096323836496229815296901626784846441276403370322211428752712267282992320849606970692605886133467213985435226258180738249900566176159616711589545436328520072139290947620806114311977898564392091169507134149852547985466409200364664563494038048241367120093994332835499324936863698880082190033420342999952148556571035498999796535361467312330925135709004688737608127067086716520933709520879855510643908009396451143718663991324410343832862347855132314387134437144626123877378300980387676678508329664948263413066056548720902160012674672041616199547041688728442766222115263376196556036258482491232178402522861155537953384027817454200981696042394990813303540038714524313910739599107678973139167869412310501553808383790152686285718726798487709777465468264251171316151245514806627893270488672961878926745825036947707664146961431993578157902723349999249453333724331443664128608122433733217460189526972066414353741080697843437027627998259692349475737437570706058906549767997658913465730494816067730779877157762050175628474087388771201415911769782797910136323417954619442030030653669895562848826717003013001789656876696864410343441633260293752685585770233234067406215955614240066843311411271794430110850763231836210797086506926072922055867803444683113580314305210478114596920415688314794973317236478051987384891468262541897337450521099994558651048469495364750656122222331827711083470621800886277905432976942187618721658605726465768668249942425056987774786122211941763709370430384221647315929231647522228369050216003694451465629239524736549357518346208748194037167524177655175674152632429092711150846922278004562658196013850910446785512294363713641680906104401003114471031043822947371201636632661321126720461042283800149552123243096827568707075171482091105151656246324817559536698400704999518466021367782056897003228812269605952217290775248850422915029321848461493833220443063414399745694135007886399421388487698063094073823865248703669853760800798406349852161890479929442778728365170163127365879437914343580943423785507195789903624865379010304608179758065414988321310794512201303100121800630974924926426375122325301445604836729459374226879623863993582284205712421499568235961375425309331425102138363402509213297926335134735635144004141359985615282383052461780513157681327131796798936551772162344872220138042851260408267143202242188132548052203265188816513196954575337326270830060542749870511553385150808774166877101028288412937091333774655790064521981382156678040129096163142935353756289899560142149297890311647258876935569616075266586820827886718078612972605769248427782951195860773451319323383622710022935193803856564743163091483014771192829745498240804861556822283729652923350431738923113400742145074566216046343691201221661256251481910903778886580365922708798391501890847122259859734923041821339663835001787017069414296856917853825662660030639586952398234068954775981998055260328776317270791222593646187035990945818795068663593127975951254207435519951210494942025229858482019815846544506901622712975506540299560492322741003542511725942127611866564947640558008603827081958988451932656490048546906792632999468218743749809320919957820315892790687233404311487499103966389348722103843249013986927895322570721696913158078608776657937685549711169838441366817158434413791723550823184738430544153444850940943532788443453316647675554246400829392540012490220919723292819124173316609248173753699129989829340884285416739924228459511806372141358245520766868760961596409343274458543320039248691028812272009027761125529006693243021120083202347229145283311278160820556316966949741181154960647527773205034788777814978977815093751257305354264636782276937905034123788253688199836531324812913486040138486491885301034794207026329214119785630903154880604516962438924088951690360993252001749936247926798058377291189623146115464065745332842866020188757584806741976160808258957835999493322033843210807646404356334714624496619895124987551786661873266198136079447563868742645698911887332691950354780490503955026779809408631312978646679136348385178441884614551015597365468817368834042015400929594769576226099236982493931645212466322113772136342207482725314504584001797148503487902500656843932141774398481200370815707820022664547775144482673904089264869842338035114524020495171277807452974324871723850847286122916261643767859420158783230859894181082810326850473001772507897176783069566428185714091497155932301257643275155092045967980355136320589586193879185634335039612640528122746782734411399820285697543954957943807530388430696025993336563013002228462425359580251606749395521918871588856359847116103522148568779093182312129407512018419241351849672061690387416756525715303548025590809589324300741344535966916829831330437186822494310294938964281663470513540700810031559903341619369501387010823776416453552704400080702852505923043403980382419857957602656541687882822321896234371549566613435572530481913972946223438894823365294422488168645086978871944866164317573266702161665275325732460100115028009446982277328116347860030029597579008719842619811486645734496664111666647686371491132898660355060006902824499288708794050188169580227640768954061224997457680205640698011620958949587620758655129300946561378188744614049626357779979866019253072146143375203391516796504201263581385710063041188181826521941245298368399198897372876861445736412911259967989659386867691578941060898195992244239541520984450251895377819501516978127893197619086274271968469804493952184679168405173160297533981839529657940437879102704698582413500441319560360225757817343821738451218273831150247751202554453562026913194917637738580290502026979890122393305195711429755962343378539685677716732168448677577854890255178408512185934015219794542385988534557650740390163293683045142229018007057842047481997720681862070491177668171769987772967533993924667853730348395782146128173800703233757745150457498892772616671311514228353172463175888207826615336568755468376339968138315087716462327558882937331232187157890514339583993248948249683534152062268551717752511203203828410487819404738279435601904806090201366355497343653165452078781590310775471944052260173767073147230088545078893874671165112686242823379911656276751659216507204236191874480546251039902510426245356426089415072715346239898581746503337903548701524537420715128033663406005307032870791728983342117809415722149132447832976100859584662681104304925011941963266396793909535400216463908744489922650303148029836301102824359377152733939892304853166856781549587938229472227751335674717191788276438663736377498504753577658336092268732049951026759652610131418346695488180379942266554371439233832994248784045597494165061470885749886534591049466963563493201677352672499741008621245757130312758744656402567373318747458114918226820782138273368833820384838463037996658629811160317338640573231812472767159907679764825817593742757450868797824031748730714073474335914989495056947208443535806640038444672525175977616097858792951849924159405870149542120269016254544751532879700289568436916373142453573785822378815842912626947012471119349793106664121491793973203396465812642079190887096659974130558953257282301536477709378029572861126556055896624016359651686753267891652045706218208439788380281912388862098098790935015830202565448411735436465009782743280815601386727882946413414170736316163986613416145376398056984344266787411768325799379727474716892355048045503983130496328906834452102828069248161766112990345461125822625661665329795485464352368058142868529332964483309931758542352345131680675561297637691583583428136654702352414726918794224573473290637380408434982312320258448622391386226569625967198052316100104142896073222171345219519551266422370546757071379407589929920043655849485817863194370390333624183529902892567103111217959277366061402442829879180050843733565464916613039604993895203088949964597482790727392882847066051254129016000385308950511361204864756554162884907600207379158074052339557739701375408291603431943736860967161948485516903199598381609390541280165905424983791094470499887752645861314734966315533624265793190238027477559161808353754995983012477826162055294169402569675287612831313580074503038917960448927899120077606851227637822602956783600727911051724393528443709947501295337001349963278177747938317892636619752397944675883754460529834008827095909059683763340653963301938788388143014842436583737532107366405705766467734504266968739986160470328593492423354800084894574766214708494199349748710980416069608908113656692421490104324885751031608425729890450970285752033812522651684753722885433066715273613869310444359196930235184617662018034255724362235844534930868686808668293609609826138971277228831206646778905280037825112936985712240994064591047774716477915714477182342289615554117754531916569932703698069245409063312671005978113965156759461943299380461627085720742356618708059140555015376663507056219130715431290813421455677513286515448362934784634586813960802532190161072272504409638710893650191315285277279538427197620231688416036366282863683548109726062092224845865154758539255366368664162626813505330866168101753936190288156271796476234471863369935064979209415059633944202684278324670501898720732537223338458598189891102768450773635619621814013169311809184100282464277026120200926771272507379806504775112219104685120708375581739572480864043654611219832018681236121515025305598482116698469810229409415655811961638190355675617717604752019306746634455581215620629964179886588748431746458793301055302378755243054033413193784502798970467566918829629098008417700985647433908671469575665740590964406764824073432957102995980038628990476093540291181480018840661213646463794757514906398886348646376156737955509730093078318072200087095624793904479552970651574414670234031626027647020572456330547541506202057209308854805278508495943688032871504650460542051701137752523043090431391816791874723048551980043602147325840478889028277924806375220128735977043105081493916998524234351433103379108202739331111875046189305711067986176838533724928463543599813375593751142161024397960658528602787623877289441682662425599085816092653598603301897485165181480214925328294904109103731150873193420679080014061425764721839982347276948378434279033863846172123325996661315552452572036658782179895155316364138140197818958499006059926271145404340952792605548253603160764235204389929174632084931428006563756466151475587815540994697504435456563490289517527856281388233144202882790241409435545845941339798005622192014079510254779453747129085942259824957616814017061133950676755266526291807463828143970608382972135410456285318341569045099866644356619848710409164535536941269672175185826047517766547768055801737192185773282476119757154055683635074873957294106584932315883942875015269163566067506246531357030601559862758008277558965978648367593111688241412659912336532262551153935968976859689095258128688703828033895360936676844433064092578747670369223825967507421858818077683489024692041519559921295827529748876881173196026115698110373818113332374318287855764638890417813244004173654158916808670910056677813058687425661125003503551202519421744362041822888240011275785006458030174809887876445478741748430424715838287360765715591116358601367219701548950853104409548742704248758167635478251481317365153008518425655620770086520547729929308876119081336892173161312072226976022497174626355991891269866456189607991372506913739399808456994031975579193927183407820299392567838483309131142913489264396335539268320492864315710957594667389895604840920489896024685496442700617476628531819876265443371806331979461414357650388083108211153895948846922931175889819738554148812822537589929802024006833079506162666021336220448041926338087022321058888555962488848712334543261491806798389347364790852526043325420775316627614762797431224435467372791470647777984796971970883397037007536946881005940263565505867155374283121920868569005635357796039192000597847968626332906038159861150495483867806032260697195118475235825718360585119431580734153037849185670765727492817022928518524727448163510483444288107091991707985270816550460418284139682494964981257621755929537566736542478721378985242400751188828861526852675606637328727242871589344952613102269525333363069548345171913788843384212624294501481810151084313182973586596976750856191086477219769218051540013941286142892001678014167979993655834852261662900876845520618816460949509775559072948248497975914483998907454126121576716072862697817891033855197612702013175252281166823885346883710855166894909157967243172164516410891857813001313929348179665084015324075970602023294826692698362319877839092766039492637143557578999579537653696974833445896019959489058735696288849949211543060483652288442289137880386246935396931187253476522846876313077874790773168873906802753148805072929368332887574777005037698793311398847813603500163434110780562103670351165652349413362488924575991040726043065172408350422524458400257074458606250263527504202557062702914483660478344158021399499988044501806107925932542337249631529320249891707102562672893090987183996005305409793674591440653523585790023261369198869472165418616926113317260948702867386439710950925159626506889020071225992943678953023465907509318029041682007857706843374604806465969763483838123574825362655757010390163400567222213680062636057358436649776565776578119777919126109629977946874613447984791431989640553410560729627508609503694897125133683567662914056560681681492454920943125603770104945876307481830925755075094778146540527063999816880787551402678563920659877173132883460232519916378790555045269190618508425999117744406023240232409690908330619015902353166451140954959079471152492466079009305665036992764364743196687402603188787707241396283077046145692980950675655514183989326553003580619021331656228480572468490102212179752958602700557913278861346614276114100634807135902921484094960941353183983926508555552654918624284502136215225067779095660986026760185864045852497672360137118777127598503435687309710024964973099430596729148647008839035258956741597585027222507839818830411982347017348279100164625388290163584271296828253443881448065731173013224885387889695960905331173930963447113465067144727467539525731512210519579062712105151310814802228946323511873645172594650427201687046586079362352665214961424958364990491050770856238811720738741474719003309039085598594313514459340819176365514592554177102284318139333389438093967549862904772229097270684189816728431057187452161547043854989390939972546388368297294344142125202091630297776187420638473559525968210189850319732979357760738996409808024484075206126586545870466810907132921512277387769884677577262578191457373459606265678000820234571636426929302384105415425020733873789657043032059690825528309105675385569701317764071773963001863974747061576595879073567754673880350898686386675350286485517002407229351714478428036136835872576741067199886619106841201775293429392135680350370625470929703114761745699732250885379468412090403739687138915014402741634160084258164031004816339582818272719967856680405877343969290312426150913302092759409173405463736726480943519013698792230030725680886021353368820005482768728703073004959438573642957323963355865694468950956015555453894059828565479631011714048422872354876290332319428893214142299881935045941739098998189824544342354396658316700955430037557639004015780672841416719358378069952855911000214393783992932172481714179682898972781436253822897777674352857674990591669707555871201512848978519850063046346836044223392629517281626259262226298724386102966716643231033851720604244206022520486211375344377664142186493036045863116256848117149847577222201126343138221625915203974289656207763761040747673299641098284706376257934503950466063719702767043902925617211773954216453889130958852575788620430893369762454114853865368071255422479083368150867390963854940648099576612881004988716108661438732661466003409558362691393417746243583284651432256505087741325744797650686658160756508615906978507279792611505800364528907783158601651899000899066096971907830613585716576197998483946661432410152465570540145112498992652709183286996931152577475727447215867888857337647962458590728553155810222481030796768597605697447241103927810868624559137781727675761534417662424136270740072334201147134716289687332913739368569267108680824547011226546495087829533273462671287447455002746090759020696648261778740959648628328254286719581291280594329457886872028062615840236796977883110711255780434214431921603843463667920126447084630915517373325336156897257947495525959028410493285200401403227365035723383705762365575223364398543512682577254226035090410256824789423733075062982363114807011134688772426443087279560950907221854445738902333689807926875139618312658885235440467337700497630876510688644834437609653545394292445648034599143294084832581477812999896487519224015725771879207359595102027185054467777611765720209901123398771051215222611796229452090202024568671616842839544414624078047717249307621137602680406859224722776051686046617045671906212750310766889898884582157773876515691124089918550775604387201302439892060768680225100537705242452085271311431170105600623588984536636198534869697295063532817840543496216312760530870347530248875389954778998260410201335372359799604035565250028496840991373768470287438816305359524780316771165050005604985293004811704031058524772879178542690717950589663747078528942972969858289846619528049277458501434059997702826876923173826176215657631377442589776752074249772172750180524930092895776843918876011397973344429300766372895334781012587183658570153918180464389626814319371124995628500970275092622130256138324816772226850408436822540502195822366231026253292767200751029054726016387102950351780145651069737426877793976068961664351621556534540694417680343920879809529319640462815697864566339407250414867684667546409592862853916586407023489328704355292845196257579577834506433685256423894009593400924747203689666759100009198054754035846425814546289452996048157614412354247650350624112458246734940583176037471528799624342186766288094418237425053721620295686283393264797901221018511028386210343887822124358737862382530665059988680070795908128526808631900225733657342911496579094122052122853458466728243127001342909900957027059256456936408292972044109443480853704993793118821736386434239724307547487849861808531539973576413212953126726120611417051829137516791096005023103840374813009496172868071141976328189539619914684786463816010443821959100614273389708574934870554702939726966915956809321852452989942254702987318450006248977543365644108351187340528056209342043495792771617281077223001201540046506483221535040065424149614599989607815900475102498713232199392814339229575639859288782612413201120351155590400077135581148564805059486406232451904598981896097181336529088073195715054736443509029027156558053575677999007450089134570569054999833354652789665351242935061616882608532894111280305177869583524678701106495715514278363376808446783674723274538999544012424468424294264687749686207274298711482620023068619605609475902114451525751210362863266613285636228112738763256172389968714537224037659614044919933064148585525429272087474087843022832343647916869506337023299483969639388317402602482324307645532446369054083220415242943610130561142194418690509203339490792009619928219392278694990587812260279120389632933356970500419621059564211454066657222675167961888534475614194132702971554610362376932209267383970370500234926212497130991839329076259052607411018514616157987281216087655571650002834148667388729482587970281493766819923351287599027393863866486375631237923675579493617312038482233326638837103720183236177728213433765533111012180219747508831030687846919355843057585319511991358144542823611698912720831209573250214071510911454386415836621613442491983611634784697126415274333633656247499949125225086024753782834934726463610705612684634799251260687855272363785385606572872156057326427718724341345393379049189492997098499814670322231921664663126678445819794147571447556131828748239381146026328852845466094360927996618410622924834011480701979629523116513236242317940764351527476886330705237186959486523253258648106280722916756474087517930613553648182421375420150031520305275143486591934745040132392952351321653575770043769006446385708496612080139016415784838444373515764372442213073809882236456305164231495751779476139705148149002927802952382211302513310783092770753590554990332207525630134374168434660955204745264545701294656395176073286232401208731998579914356235192434322659517663391374881492676587598020564378249663146824243157741567404244670649901725585705829975523875373404772410514718030813682265361832912084344501743644384228528811461120765313251820114868938333249820620913666000434154524434732284188610158245458022985605246235833588886075094556562902559818223902863265172191212434254999308168322609126124668804168127522721632653975435834482598283760472378200549903842579814721400036562003335107513083624288495652986515774178342959874151905107973363572252114165435390590860156083932366001300644778098520357637254283953869891536598352028697326049380262731584804245961556631321500544983626217073903904784514410380365747766148116062764248964425225686082046200416381132700439638187882820663601319594486248423759357072002883614312204868392697931995845594908321055521559468300294493834806373287308075307343977649040837544202120641776616863853383613788752365037670029775921803098095048578733444940728964953795291582025209200561406319396123359503482008776882396635419418831069318143227786653841737196555560560586783897785090863559315587751628995166207068695471735448419539681371402041471000079655707014798438326412810945255634037385225085677766554831010585498682184087754668349374171914602458082692956660118871180904340891393860709881976288469829648806795332914666317517789565440682153999332078811823381391345333702759042864293104127878598024438272155490442657555376488386670025705632548811536872814867887368551608933825175311470741691154110914964726821676732454866999596228394336267836471389516945530319908431199496709261019191831960641646913109005027783713181369087424788294700672611292405973389623127817708868636064598514252910751220753853180094265505051954103651503195493998305530805115160229318671345761354925939476034439019319691051844486489439177551564219551063306422561118524013818056231176596393429044963579095761856205710593436903746552693590287144296527797786476130215771671528181191286814866264240326474930691956014411934165959238612084130908706721514017405536105036010402568943768828666283105263604396369640736427208993433453622024200725651960795009379427829361229060260807492395419743337291758053786093730509002472502063121336934191535292606387329437966625186334725052348364303097559816381204909874775455825623803313224687696355742916815933660938312431757495016220954147036509365502915210701064858493577488064254692994945483151932794880428680247576536976427153961468821186917870834730712391093766744028863653530609235606844770351313044329677843177675210725193048507072161827392687065020293836801079025189372805823058613585031287013306909295847489963226161521180459040200178061322708769613468221094050788576026933422558632658184038481256300104693895307381805708594217842493057868515110699233530681675837547202497702979353088386823317833180227582775957293516804399437099400411810011902838127171405501930799762928762911577431291518198242496311456979750033321145565753928769462482411072879319530280276030547069059424005960004473872143926137937962613504015350868060869843597146195484819334067370586139343346570087136788309616575528589611042251877035534916890013879308839811549778917800761644989174696954269030206676328996579997447306523357511803357750710527700351790242899722001835350785150364549957953547980915371489583174028627619700840145743305893165378681007829723909155224837059955034747900541635772363174538685079457414110678674352290562230855778743078847897278050259585876193377219477970068380448983908870164420868594198691529337571800413645212122040271832252580955167187956421595497203415605329253662809569003555688215627821485212174968030690367293513233102514843911828092031192622085799223332865639479938275132357165021531543315475994407796181796745788920717482791943371209072357101789075374139483075519191629855260901571523420586601984167417360983201676659364747848508624078904680117570978575142445139608214653907422982398260592917048646394728667044453938689098442612452651963831885282895381647164773108878715722942629481177324842857142176574803201769922955843834379105159783272512740378784138210125960878717303072464356742397613741274178323751616868235168926104362138814062261860467691048305167138999025971947993606320403185469515134755894893739923482269171665909813322257079681276904806566676824738931699393244273792066700942481334202398959259449456108332364026515893709713166162537712316834210824818892283835247849778512106239587195848546482240441505269028121019556004249658771826663102433030221090278281931955117329659240123643488470258103959805801948211801196476753978837506666026792891538560579624662298903388003767721100754319044399324574213400043785036238431896566430427905082219368579607176401015811674083153937135653092470707540937935682536424584180965823688913536748001674505971047595711942016871035172698946822624137726393719809376222650712332172472214721123925850938058696332239067097716738797766292914405411397809218152804914039216672610243353344321059565835210202341654015127398699966393453488084119065908342355724063840340157501601952233451267532684622700763840763371055935576523956012765353482482295048011115491290572837011386618221335886381991139660094928119246926993333259311455288897650414155365126109444914454119117150531934190947335968262665301765462808531351865695630580804469765221021561768363326079710545745190904362961783469966144367196528417498935243045891725808727562796107454103943638938562330787991297242659365078698664850393812924682866021724385862158893124309815600118959489845232957850916668470536111678734571830322364548642480579811741464426371407778144153126560404085336337108435896323947439751183790972421163307433623224834054373555695554590185856200887262149380419311494842554055242070403079407795923030833933691624903876941750285195003222043688531361679188671433043247100433234131569947552437632855517655752185167996520700732146193023277045640938174475431327604242386386562448926041309344180985942504348972939826017536375369904691739199400352753948442803053900965249420817106512082589455199959653582791660908611146937730242308704393829343353591533561207618930846385747694793208351300460717970630851429337160631694873176946491743707584205243046318747060594931817342289457203506213079243290917979385159050071004362457253727627030381522796284262187458428947259471145563396789445286185640407695344328457155995875231795853666492629224391752000424952262065662301132236615392282956833101729628443397590230739616571077180485423129811091646232305429784190088441506149146836520454223183547776217295040653722673643131332892051603266526925528235988390471220954479351069975710675258222664685211994758270841391993450016865234983759952299906386357350863559607520347715694888488930399525672143397268756566008840709958800165195006888122144587821095824549358587111396702777554602306089414455096350751474327009492556410120823500348069658785669430204772328013839000892150870903492343640918177462800623993066376711335652173855592000825742932383040267269159311483057981193354513541108311902705581226349347050298456681734325218116365451451946316596043258705220686791453314000922825439560308512146139945817110699670316590791748846337182213410145434089309949313878401543433635004621997286569994254571735264934546179012320375200876425220950091854563416169294309604821380644338261876906779044054647203468079369054091489431463783891441722955765038296485150698114918066058405943768876834050988040412379967741133875736484336857662556191560674562227722836460494298635557250952140396152962451918657341070057289404510074520082524547756298642561164747305665042947515658060575067772549160634042318813637903037097337227473185404379634507137529265571272282871920530438999121914762221245903344861162187588232814925845941601190444382943819841238761032265447033349773912506914944836707611302925109847298453817924905531580952227491156627339330229470963386903060733789348223061119099247684612137671016052067573203700348644660854822193866585451428292710089434253703865362625752378168993711170714464927658191139941685566871838179526326783243474155914798107301527215083110792026657534480884637653423896134417450766553674617244896415643878759494566175748844153386348395661162647602705811876456376859442080219084321520042429424709153674145819754642607995817237646996757225479252561464339318536006792453571611009813919591752203295977824423058115082497950340748769653542901305532418707076673989979327768664729933991149006031784964826568304050467849111848614891868519406616769845987506604476700650116835879039166943768595294234262108761253428099453945293843803094280797578131909951283649139149629348817037133244322326515979652316646067483809462203847886030155229694176351221825165272576297647051855535458529496208709649517926403017418289436073596032814250776538105252105532520413043898202480372799755277212136559707609559252007084840814430279296251151117577686131527230648040681076117729480655101441346696005799406462248272784161333495172572889110071568749692326870507036484579970584531817080419317573557942381797493183508799409308450672837117444240910479337112615798280601522937939267216804559206799030203175539562785930698684652519940549853306009177280393085904648095818653227068894344974419220326790591752373874889276647731621476451509024529015772526462002439703815483589498605764916791634050716142015403725829167806176562857312355687027376141667656009683440828273902582197980110218049175640522898605910071996048958705007884726492730226984651999209548287083992465057494868872044552571899580631564126619019878110294936066403111276477504598433347295285081881685269283790590395786380420998325046041056110891038601288514195257845550211811357379590151024140924258089179379818754623032584187814295717662295111386387538990773108277105451960097750509696497931227349853354565503291659623401018211456374354542116851670501956550352796225192955773040758493657610312703604341350054421702913486433103106071778591278006484086622979574283814586081329167423506055006652194728606397526175003436531773112692157582425151954602920512285000759647818076863332287474284780409071437273867998503174627485252451272182812880193250662356382127838824248727731804214773440572856053081258563688067292044240659245345138639385321715469631662089376081777556178308888255589643414966345336384996177830912102307845189974033545666933327755945731463618140525944980421914165142482370729022741574401616997985113352140364662716167959027904685560224405831390380808446577036249345345613480863456212303727682347775099633559531155224395713181609910501741421938434247387033207326334790130754752017221880370954703028481075934522443666339211790255708960732227597438553749505188464423370972854692728033454824602087739003985147864963502986082739786287465089779248199126659379144975643954993673185202669204626807065728191487750398186662628847579882521329670203336241949825392285892419575045502001943668914250505739881664459798522528543696325519208064808933433194654193828241346435639477489644857508610542115561830586393329157479574577148193260543658507406012771976894842237771459432382484313400529507806071606799903811459386329406988328142956334970971546378242614351210367782055900270443181594922383936074010827110431922094651902290925953746908062118913501854519148046791090486613291008357029636184698425813715990502388718263532923599952159992184707775395484968002581318900194671134024948478708990792193351602026399582567089959782430518484207074530651564252141792223837194437691364786850511199416332865921118815360746201141134405146500641609901640362687586066332817560909715972890766708013260105532595760087845984169123047206956963485489776365554101911987155818147505473759510826801893207912037626317986191702574211223221730587751485201762818410912499196073682239680314226219015692923157762949800464939267906903023902473894201804879078901225709993933880293381610752259990301942161274676457743765886658680507510457682031503787155555315144069420104303284022443497898964329188693374474734892203174462739378289206928320044701687351575509452718157737806572548502476498413127221850591949320926322887908166057825299232376976868602445552535643804258752359487395630541421188448293152838692227331523631605208215090412411472697454057667772861457103530877147322612945846817064360722346471027567110506762930803462218396835439988727030586379780151965963925532906696718044519052585781706952264289603717181759997987227038984424057974532928910975983592043615833547848723693354241466368356762643224608892701507264584690025655876754101708226235157420465145429297470457240804033108849192712703095443387591117437482373158005561309655678883827281331475454979182240190131650137837286137008191300823725958428788938745158903181523015173946179645122909000980829665560623922823157689657195647909068449565186568691977794661540539179590667709918616675018446415116534011129568569280150953991310008844432726666329402321394167743564621966287073333266528114478995824509042319973397319281407533661132260164109156300030442878909344415688318732480830359265724268345448671106759800953203460735462524522941018699687224525126418722623707809974628469516059814752655742208507177730063313794903004449893393332844261415022757834168698476829792087023954377484095036880589792109900812105463486622854120790667141968437951067823909738373341749657004307459471470151814113359115514653407814806686140702335227289348931888676499579321062879160765413811906038540039831131443806403997304503159572327703916651283652543872616679741495224761585904831641701894813990189011657753167665338438069652121871029800390875346166993358534767935027933563646086267577375758703099824554094397239080808536207364515068816948580036366886562068459726610327018759269244277324312797635072490072270008288691370585642311730853527656825755052602740263811183091042182848695603520277914260052463844928375309958233119076074298223663637334782905355824210189108153882228469245839253785221123581973486035328531343862273650843824313859378688252788113128437708234259034085544663824229860781994551020612035176971947356301839217125954045276613163072261361339115973136311984352275693476439092552498335316113214094484148093659413151889490195296428578445642263519381031333960759639464300997364234950515982198124104762141185281737641354090457662102417995000479442368247743934557097381672668406941429738589470060412558098639474304426484987809540567985989119288120691530938660984277518000030879857986997394073821500579385952445332270468200612517663241990439379247116486161124948013002535706109119548772756184340584128743490375346439084726457950007664419372504938243630998173065575117842684877628327842156631705495358838512532217222036311985177432831175903642255459897434326200879284922946177353033061611354874921376107898761161110210683953836033796241326862364284310841730630643434757112791862617908331665831926909852061103442062324161800084391331400124292126335368355554881319229405479473298103249538266944019209455337546163451214152993670552544193886140773613262964356798592489119536399134959784567382914189350541218400642961733264685725511985958552976699942830073799837565373728273339012424391436717847290248139484576309892504109675480956800693348945932811400002206623498915280638727400103237751937203054119011657397543873891951947375570426860841153248033221194680181376096392470131658327236679946878817586946297527241594029080204839398215876980094390491376206702131381101292271826417474007776391939864518903083048481828557157895490054847563360226437644820007228518891078859156480220919374214435950667337390449863026662351533351866510205710488283335621330613980562853829619166712984611120030581713430958762359965406618092684749208624509607187910420486167358497791978334318288205168107494808918626838602602702526095402678735851497991403858073778404334961647799727758064846253819486618575089144377113462492403662932029078693245458030498390529512991148032322666255171834336703769258320931527871625475196320972516942954175420713791507884588876471598040610681299946316070400406291273513635456370796659564266683508530766917911442436147826150553172045726230415280350590116790797271338515801376755388715792820287791565176019672590343260873022890062944156368216584406693039879639988288085902832204631817075782276787322753379923736301014248597490146255218566204890779240605595730137248467373073931588090069683989455539211012706300596817417021099478407793582622516044535029702259622405638852356437179102296413472871863774926754599529417390048744702404935025274209481160793773204358742013204671952355864056255271033074998457865477726429606947223844466826914684343801045163209294645884678521566910062688279482293104653377878555033060311978082585616862983742343804286883463669759670755961652952315378767974602702952930654503688946685391096328252718831930809888885725020449318039391461577364629486428726989037513550345202028020306108529033378983581431694541491360484872399124882381887693884089860592337861516915720380016046059957559393904060253723149441638982664523991191123501689031501544551309811246138835264986914201327854761500867885122471338559005975860998520459970996971936544570636121807416856493240157055069952138556802429177138683997171583409052338304295822818268920310578425436402356252660721449105470854362319357739858098297771149716425818962510219548319463025332504685456831302248049965474623681616613876539583229825492153665661430189518659051541875565720875609286310268277932098378318432324571327901097726329257423978102014347541900770737936545218724344401174395729669083048898487756370434906343824044583121596160898119173040579401875539146540937115520023336054698969794383608716110096746595660848936446422885492958618871839011643669399256217544371137965400142962697956719912527824079284674594898088634180593683862698749792402742750831645671466859692367899326976037565130866215319471582344118369098568170341429130965584147447820472683105798185581247619409648645503097256995270833596727485752863376955120855664464320353696290887929072199551131275873134778999987139426620522438705263766047110257876587147457473811270556853567443857944587211232896612897143433562028206511751038394481331803454025119809452438306398895848125070389069018302517828804930224199073786679680333467975486867545699406116419331849441772987559242038419416888516659757675868593717282784381986137136699737585005109014118484576910363028351836459141293797774863160339254624103466098077293461338920286558232407550281883549799824491574930882733290760660198892471122400770465108616918515191085117520048057054944802406702347895451578355497787236764821148411496444197962245903760796795610251286646340020403913503980357365607554805489783787323290141299435780398472627249686808522931305116874825827182192909068393942680339757106187631874108835697990110529570866173253597596615679197287933485132486018935456653230065659404548582506900176145694093622280188327183621673037835286369795383379211747697703990662188480091584841803885313564551738897697611633661521587992061472282851911372255520890695947786432994853856311800773983585080270498002374277978140490658093541566509081541166137707557704865221384546094803428583276195329769796175557736772228518145489162503421444722735430589394199250153308003454330069909588815735205422646787951728139539958304959522113442571228008412404107421231895416544960910643843478688041375282934673923195186042459347992741364578813773557723812345717011396053797777429380268328943459992069102679199421446049900805258436691465412562298055768129326176290097421520839444772555592578198466655893792347650128948758799946868849185175182765077522516309136792411368165158203313349256562408017548946203411522747963431899638029659045309051720220547759410248233523375258145857258789127572903560165411480898365883710984659009823561363846959012647356070675396692524662570624134827172661381360570043306073246293773975840827156857570341867809710461597446589071599943499412006113864085486682221205623351514574111665179446161865131365017361559498127650368638575251617363720889463490159870159506012009303142245754261152681409245404778382963398652019056312429755690855560391464187200931576557031252592174843615289140118308619790217557951890303395810035096077230064583905856788434130042925496152225857281660440713050382138324180938104933921154780129008431264289788795000533743915122696096624435367227519831507770240885950243576438647292831669002584741438377884879500664578384139642228800310916972812109255988372417240598974942207320202063341269675720747825850276324985950580016086893914339967047133868839981103838271983234022219014741142751116889447613562114737247780367855282118902494832139718405472958142489782547894059923437722096441772219885557888363668794272241167555721450747911711465298424775412938580990719751733520715158793522770261657941752453526238200701977433730296735278954355547645239179725925929768128092674669653318434259020483970834037508585996969397447118505187649892586083502001344536517333129072833292699044929196713526486705315018435022603491019010259403224063946950647593676646479113608462701685361612386545979130035662852570722268671233895797393703788428022489268622174518768111069387917107640027627676893277880462535974902232603804577938222263834476206260029412822430160516709284180737533153444443803422019463025392152292352260521005807246163435213937988248471123948508109031950650358126191719171573696060578967367960059343207489994862241999880227933287585889214190121894322187741260644137362692410105525944084994845638438106815253538411201141170542787022449883492983328607471710888369056621752254713625892879533675548766153308141072467317881426433189464576691465514391171396212163426369322068047529610835570862832209703020356379429110138887122627312487216604816095774137172725787391728903993832645894643862133553018143874057048777409836120020446831527680572937257653254566613968322350736753770398054413758167737274557308648964886918537841139291983284919839902190025125908889133132133321599248203866323986357877065555595852250770342642963862834456784470251064629267955368779679957843099893467614263176758093844754074727509024857462514830274738729386368592100220059019519538206494256841214927161512555952771184228977523908992224912480605329830354411951056924214182019132261309045961366473736299616785377248464652223979438842917359690980707570737023236317942252484076676518027131191907705169805672719531803048804940165191310090218455597120227106831744140570263043033324036366002122403398367373252671465279099945841661523021821556884131563394737863920575735356028707878018643476924996124476313588319361707810335670454122539345818599204050417599469448301055452230339739416607194806916287841821056919145871326860070730845163263136946911551331997483072297299991773274261020852193461860173308312214732511508427212235798958597876858639218244152340098255030469756165231907174084095116213169640271643458920279988149343565785822574589231962158465126189847472449885969582640278527510081501479222677033722585136996849448321379707865283125817223985744848681608475014772179374051915625928157187229654581576823023230886360957356789632615462999894610674080164917560676709585098818782152353442546006361293418657174893774764516873311515753496371199574837107601107278057310860233353164895607547999445200635797444700074973853764009936846793776854135482511707620711682700906549434503320415069825181540906474589876780174558733322186395987245771574101401200084673028478320571522117715187594329613398384161583894540590525990476468241008667054866729835933548428413433617136937464271690232788858644445123406745142291736839705267216485499303988149219655991096841569136970785881890858079509721705353150513517812415921244069135520118667036888081608436984762124245152773778731781127156520578850298572128932250382206867802806280836126024882518819186068424576799592888715947315302968565188334695493295066731989730677099334769754130333307233802563692954970940704942712835337595781394934779099401633103481481646513331819129717347688393374521090472937086939738470217674294535410620107613601958533959548671385108849523614198610835200642661499976544818730984783224429830893433070879627311209532243635286614167762412464618445631202390372806576698778001386401932306958753084088492064855762222388288856978651515628090147604056187505153810944967931209017502219179243585433263960720443782731567493560385290024151899087049317503505219295618887303825405908437604706623606780562586030453992589243682485171332460248384305727954600431049966453939243135914155898935018870314115356312182263730330213884727275627393236612675180820788623664747425407718880532348560189302117005138507584887370780205955639949569385160162224922527139977187332344836411928818266270187398872105816478584662905247852271270082096497231566949347487359758335219107235262817622529461213389670206643854951203672578796736437975836340145495576293132271586878762511240176144445553687149040067383794372696086578937806853129915703541476528075278786103866385492888772164661223570866558891930200391557038433520188029920735517319268283315213578515192036804308388185828173098943463175923017817377755436440855492976466078791297603201519831682573094415225105659128511212788266493918922135407179293925749102446282585362554156845638582843300500209089571418723959001907494370989621888496169022725137019451402902092736713391310236108266194120945161693795731303380136722863186785326119708678050918181774422731064807962978430718705158028561724245473489815560427663125190006106771324473054026449002906422855772559378873475118287822073296434752411731227557769536075643514013282936752829439266853721969651850660875353142927265073860120742998342658569036839053111884121797552172568832806879644576664883618655099582573670844287002103901257769624040330169632326888060359738858869589302001346144481813503796391611293482830150267494253789554078137187101757784913004812834314146818713257151414606772428354415630403358271919648372527096657617913660238532929647419199559511279103585490247034951975411214027526951531581109284505340571988204369099869364746136610737859584676522533593982976906414152162935042847402536352884423478074569505729039880789012898501337292230624325164215325449730268837611899567131659753544332661458242917631203372427756911947981164248592307809421328908405326190619340450798352257955847329045677941437048941184165210518622401364305851255188702611583822039532322104575409478993065053318986224535658215006060142862706459198281690069772379748567902601450694592303212718800549463112166765164772148892076112453941576439957884450118461206366495049843677280875321311584306509723025819364080970457279417920529098477663874955662266429992139889390679315347815580213234667355519153552742429463203027069365992325623984203487537207296114664311689171946798795228830704824108802514312148140931340010776544857574069429787090144260688218576565661800858083054342753490806299408899759109611189526754558695360821998453673137501082548028777469949230470380577399825486376344008510853986518467564167583868509891831862117846022545407829220134906484624842923173063577733150773351660250351598172855923846104128544084382368105703252237468284615291956103967519624150798116705663765521756828457392102603430144927207502990149996533375833830938801935252643025055854248796853619305758042381354651936080550791476498464967385650178467355548120657015065577340240047107122082387751044933173641536613679143250559257520232981549448060326487152802000751126890029210175445297530448764420930939440668671591547244091464134785737162499506375960262922962369126050615460488346344335320222691813245516161589462535893723709590574379910036786925035794015122585857738198972306190862492098326572016470885157836838024168830980621909041358315261702352853662135603693351554864341652109607591665371232606312969547145260231295943157209581978497072150475221523760953839571410108015009105928943406699718075517023236116900122956088856347509631388806204895019676138518493055841579130607697626610273388621976780146401973817026231298646185753998014685857244887200244491352175070007662848215206325642548568049712275720671692877347975509295567456575433398917515168470062792782340169349362592962377874997803960393074227343293199930946759176269682360032071721642281608525842729041126010693340990482105061877765452133467357704431615520647354723820874521392950352717932366658412021847294447006643427859957705973222156702039228666184469903424028539757768914120335860523497922446014131914566863567360446613151343519680774777029703169365230344478764904027076825111494585626208555954840438475057324275693847564425824991448100406728298301965579725969696029213559378103322717318174858706804855691977921778472247737628670953651018093933139629778463128002757467116905555008370845482866633158400297533397760595662277269064947314055214016082819976404605624053191361371844172469695698230523956517881857411795727182029418315692203009586154014509928640515232048029224389113203082050634601187928107446956651932827717984526727534221509520144616084104897773670270719328883459303755801564846005880031871683409962187704490493546622037361346486070228201807483080512759122041526331592834764499658120079912904250632702862592744487932733692016375124887709868507911386028001968379433983039788018865055846185139977444622679897529193134015313442644969027419826046517950825342454064377479785034709086538748168982824683388858373451317062048617081058024912913576677516787778052139722749331060649975955095510938899622042067969855554347659296960090806106756456818273554409353025793528297922020635517024854763090692891754930982989695190035351832271104645928826983336501673607311323456068234856685107083688270720536953462099765206702261124494921493936212902756780030246495251895877725889497881434837357543875738853998955640041519693127588178753499653804873309113820246728256981195725621171095290927434294446656174690851011765003634849313592108201164082636776578980345760206175463343137356201435938550290085702241742753768261995146648185938315183304650983015393425481762337481552547878114942799361789025703384752399515461201107694920571461176875891373773570995925909846738732151466033529904803100458930318419559483222913071767358627438663646672286024231837504849972247510141616051650123996525987761189526109509081972489492335526996581120452194944932263716826649697603523798410300598004395870580978530635613923151681450625319219119847187135850709038999694404584271725188775860200283308287789568239419198732741292827788599548212256662243873600409812488376285792461693130324395818803318786621437785845676039452160423462561407395438217639576868851879926006978261331118585310936824102529609226306808556279887412949347182276770357125067565579156652336247840955729556159941666921966322926879478057593540620542195073256603433934439418210775838562816797913426072950439565267200871479263916361527214460209758105020005092593058126417858960963431464492292850727865499396670820321169909137264803882158297076167781198864815997484677423326849881276545822501791294374206257174550680092903103542818036069278432566952620031057518436888167297942129557433089098623575854203638694594053159625626445538326130559491902303603343592430447026838198144310184326014624045967776084637591090737620701790173381284635846261392366276907818122269468372675115761561940877352677180467034030901400373251013719961564613841343829674096938085642439790133242607774704327514539945684224933852501179391653535397033863172589592620363225381574092919932099438502773463096909212662617920113208620871942539406226359772020775179832100199512272671611174066362458990808276246676718002350993359687748218882165384694536352285996555902014601639079325617761485183889840855460213236869690801581230467821942452054741238351514329017591659306763290376751691404055548633203799733038596502809735303818298607790954025855904374448261382666883522500032109781187078482366751559936356846475116192520763604843149975822473615912836476351857921880312463039622000554735452690917411049599851978069518504619270737038116774985018037894408737579376512536541233284622080392787477912595783916266868979951431074128017462974093348267359730639930096607820866764177022061068920209582603074625685889646789975475991291047237120720751892727123719191142905348406280616512653078737805796263380046962308006322771463344674880083603815676153852729168896459198356956366011340600973505655124073822786197186867171989484980964486069760823434257798041797485510213132732967259284429329726300270522380965446947796150960519147638146654666292628945353972755374249623578233035813034227693906167067950610816589116859171068111592208955467231050636807271014759791579285146376865654249609167195056118957257760294745855571908129913461162879308670262688733466120087701252528494500156243690529051878465941111181974466250048853277045713017211205500072596820236599465375170386301438999659191955151674690198475573472500191492869916669773523587713487064476447697917759495028012644297213369115263078329385908439350016174000037196525906819465518006127134666582082286045824529055270514226471911831707686428093489324054550347634821462979539651918970170978797990049543443594434029607524354955929293575618539727277484377022741522870329131060570133678096798413849246256228540886655362506462584130486328869545490860440054870071055235797731510890327136253469460378660757703532419156128556461293152856188661973118974351156027489763975033910974358321649902619188333374083599271232777687167212344701681874781912704291847872557698977734220446407189581108288676600044939028267318913379601915947070588486963346657632434919206650135274746285063044478398444516132586794900871652422536973100290401411434587157195630225251119886743089982492734724440842975356163622347991442065246867251311375967373257646468982488919757360985300589689603016877841217786272970092929298115751752044618112828530184240674173517097604638523193454387764476056204263806473150675488083810978203807223262480841527468887017289179673707077279431870152459607674308094252750566438101804192324063826226826630695499895078170907258012955627618236521808032113973680214485214226547885370236897026475875289801145410544675170741602909056929775439320710889303082606476260225671747114952967447874751248881984184752677664615424135534271124919212000951148841816364761371501260281907130198240534401576821028578978415065715574482066158010091141214312145169387153012909169578068448022233528759373061079112560145833231647010460091030916053293042751429417776150019740626277907800201100907021817730159599282033457866759083274988837091005017092427568619601302614508548513603589456729846644292511882617057692563240831382600819451954451617108062051889012664578776727354121054458551564498051694741138019170062041076692231745866549890344205625540597323427862016806085170657912454975640170019370675026275571253931063754633259810018230195567641772051648248421965533760619229343802849533517684471254478253269166990361856334525281921724522586440848583411177942350099273989328815776966858191372896175950625580327136085228598831196868795916346717139955709529896246628706078989926550200865159490336569577831244233312435143766350649211459240645462811777261282800900413234913928337857816783403684354637349734557814521995708838394742073884799520733187549786067588467552903900698434471894813995231441186128549788700896880775853306454791216772939462838971897169977331278589126722909575749110649155678529497833175641180748632233503425878439163296823318787764314261975672342368410664920777882985620304135031173227790858346514503636301313215463381300775020705158843052390534029492202190112976237350292668486656104050176411043576940681783279362949358926221684539954178182695956026361246713951195211560853668602340742947263540345869058524085643746256000977480332520025043291880980471942356393865766843248218458371940232865482054966638404920448440282338175084184438304375717087040474764671979894321672846679665963855901624997884895825467215627644432867925848640410995532981651131042828176695690239686919192102291953487362136299260022810463069849030848753061118065882213572636304726709718412968684153911218500625528353147098664092927746762635213253558875367787744383482342894725028729431141384128322832127830966142205251682011844875274355954991161632161978846901787696213128100759681351509880002238559975626090583421339946241242074585201140084875075473704240834711204953714614043306661899325652441407733886288073956960051162777735634221694441163351830733185520325127489728764765173919025358642701581757566308609330993631976436570143856362382812683693502741244933711410631744762985855580148931875588839253238627696838113114293469716362797021686725915886544227177186773728436956423039612132816577311628300865722593831778983394124951605914908384478844111279273760443832095589700063973357293299459243963513300440966619147480609347981636784418359775249120294340884840168139876897755691649225624086304127553535235045342670535865426685324189625415162051194244403971393085030809655973294717457766837137017420207474628364027293942275734946895619572580145248209289294658356559417708723065235819714443242934569838493953416070276331211970460550503168745808288528800452779014171519972735055022035799614913671238725821953988177937250334260245903988595203831804535199299590088005147427363268446493025409687525165918947001884325310983441566541997304683729385573466833386030123518172435590255038353736359808905033416429823225604872705792741432492593179386086907465655577107602325588540737434306933315327784505717200204490113943640486103669033619542465215612716436228123654021107492414366088472940764879771849750129067654253299217766917113589251817080155298394515451538460616241993838148640523622435096506269139578523874924981723323341132978760250453314849618397262115573176938943495234989845607657362129706699529475250497362660459025147613047073414253094581662941567422492199328411917440954052028444726836691225990388924996562485083462270643666266149535815881551706324115764080907469013519484420601913189012660449730896893081761441120542226921958980123339506919282119538460944616855458875831993446730167175924197394320370936431714125344840175099466128281847361210251269147542759827802099863188260013662819430123483947791327078146987408022592950923752131100670536211915123645772590261550088662622869917135411356879162630186321438190780203986428125018489763051131554396938567298409952221671576566191927288286204276090704246244394590888889050956169635859478143575270319270095832017226728505057011891239099459121093040505687964306261057666797807953294061973417632567490150746024599485369315956879870549094004644870970794307288795727325815957817750853420306132192136489648779491391065826304714827856056223980879084504676813993640390711605113852455289519745046508124660502696962462823016463505175936152619964325558209978817337774096675346744054424719561758336583708544112598497095051212133116920696881352201823475367578256193656896131257870053240661429396351215621528983321627200342591558031793611142463932562385686908958323498912051150886596386156272927964617864864699049480023476019037022160895248556142558543222923681518553782075445314659293240615722416457717329704326490114042371117298239658546461661063888167285191916211814576466613301389478794598024423097947756349877287797165726253367199726870877184617233500514918934439154702570351677396896450113583111698404048393464790924156773591657890861922728677673804397104559692493618473754374866230019036903961384944516921875594529733669091520610781917201254711488469206047728472462315197762287010342618901617199328892843271153787932077959124841503949835412687928217165558429697179808228920883948151440228555571343953838408948719201153678289368909092950245729900330320066207689576215314675246840674163871751783866136203331399768284379077866698924043647117644426059802019077871497062973696289108058670509689434322147614970262066150872625176834493219224461014536113802097826434565035321827817006202263694591172039634116175373097486796324853984609316586793513991468277114396159717560836058720490140494793534284467517568957480354814905346283292621669133811723819024291989895372681029690652693498527017256748881416048672678772880161490461004018183280029172992146415685750093710391846080299377543492880241527125916923481561790751946825205615600274770424550656236038189329354585580383650863934541320197153461990962790763648949122561534033639610645229821093407276609835630249386988595850641613189434066808321854627112015372509071039420115255534022548275763474336157215637332367627619044829539750256947522194501838797959747314958088871516339066327762378265844394660301394927903463699391435534779545999022911946263027915261513736783912255126644873739483503981834155871499833614291723244511116136391612496584413864684558510612332101361865594426420011673646562044510071497083920806462714010458377573247237389578812089244309578356658958185973038746000554376721535928093202175372079467791961242597717031837104197893125817908469700291756209938532481446293364981811276629985331090392612637227280406960604016012028274793790385902052353968112214775499585808068019414458841359508038984627128011662268752387592184658011728479430737544389430236388768312694875567383518408493733339999023937037271877344034622437625007154480611582710765676667808002311220809312269977328654399476203894128117353971057310868184407814212949821742460191556162458272738334438581657702722125610750567103987442093144761203462395640892381392818794373860309901977335001941835659620381543725525189456999701062999692107480261067859684792735643021645674541120623510830323303220448072383224478386859558007584830553919177882375046872562219600809202644093281973108280595609253955407388960752076736992123801504852269183372695073687876976502759538473160966562848155403706905932046939882635151126713596671598779995630526392592618934749080927996199449506542260593128253035112524387955932053985003942298291315441049666396776069587316789674071323718799409293645830029696040585674509246239997787823880106383836280257943866465237220576468743319068303415803489172545318626919431980542349396037445772056059113601878550594498013017651672437862189391215388619724208750229719293112446611031906013637439440041690858731638941521558346118390599300482471542558140281440902883278096343311774742301514317269804635751694283307672816027799295134805120855221229172635735793994387545662434511120471545428919164753082904906800467418022002611425463805271099967740445194931566790214844950445883703220967828149829949596160325084082280008833430008955845813494477934250241689717140850198754852055824731928913983061166069777922945703200139058247915402667500949549265351405746223478907108141501903587891013985847889307776470307375915208622654956854233914772300714891202650026722464465815519547361260736316276252015552886640103752599134034905859221049762990098064036441109468859605037980531380970656747526883811737193895330319158994565822010020806213974201845290104152655288441087388789583994030381091936542239820755482975744272725479656631032856615366180730778985840014608375709221202469089181388507900309306641277526693841046531264434775247843850858254615271071172145321715166876432867609604757011993960486627433643784458034947201395886312766897805406363765079636785539690042669574194133742315909783256930450555284006385655512868537308710197563999597369310290688043930275498950359063170483407818791523760686098649800030901935632060423350832628613085433010866851670939659284143844685922560554916994023880494306459551277922691992294174032356264513078093230494727772517052341925359563691257461434986346552753312116920653531795879004672602186638850634549377043872855833537573392653537108054749185793951342311060696571057845711296308672990691001107605296493363120262959043932190403957605211878385548281248639777282217648394538305790907703259352661616355453830281990420512073583385662430900195029256664554462304311964046581915087476317016668716712171559331237838629002500446938323305213606031172349560947190114008904435144954733936605008222209957290673967123061968857513451455861123595713446523976790145104501025267957827245314900600872545040383550964716330926754094635934582018611980341313266269644399370672680403165720350506009352271704765754794513360224456857483017712092609987992674522510562523117424363089852809824123670138253709516616007495805780523412986555193800002534082365842113296135891074265894686607632608280205072585660201832572528855982621907144636147052302404905742962257767121028813917702385955575699148471926298112127521691719371466552253395314159907915300832639626078513164808073313437015158951621115271961946907981727652748657648746988471709395279287226451361333054070856878396452752665269277410273738965688449048365940586323057930902844240775196013148106045681195889806594282619845546336881644932857856323951695964089797719036120099581171300257387264583037108984621234385060984688729120248790075475455903144294728820398080395051194740668177230808964601696944377093811906616824132949076272256179167568439575663520545522661422901204392919799057229261005948160895834927335261789330499897820024232493531913437740744629238350317086144040489815292361382936079428289521548082447123440962209105039823289762573694741702253860707946438688197473252063013217502681934907024189708528875159261106256126742124945090238819703132507831764737061432693026332711879058781180277966016964669848902867993936175227707706832755036791400113956435298012555101311459980564257700412097673465328326210654115637413168912909671516747088122983175389666341866094835889693639868171764813992862934971661405966659168893274838543501353888559444734090635844214364025715951947659280927029840153472985082544624257462570896542725041990068463462810629738530060275640546542464028744677712480628752706780638140587879684176819324990671052837054690501299601594888481845922943052990779777275213339810335529872851165253554707404630110172593201295977882665282930717734534921831878626305130270547063459031536805700025465474233909408024043399699580719469888251508881343084024660173042507111905444632675355543336405915163812984478355424133139552794668546639256136529105769857596806786253876517101535294438406216308228828384932771622811029157681580389125159873376118895539291110875864473985978182496483356871497524030998639078013317594710982193416979308180841772847432864950594906558124623294870308293580888545515611275731707759121179467349974395850725355401377428452497034462724466131192860362406825285090812121184797520430515016223244459284261481030787937851967684974065125933495381339010180453871673469109900484117665246370581388235752492644758523365841948951599849278477366524998519317604157219321703708575748230100515285034130626130942850249232069374575921632652650050018955497610552159766686896294122284281533042054007334927644726258198976520528502332712272152602726811546244316225513325228562929955513469235328693058001772307763821746385519003324277610243904722377643256176872977908887259414227538950377128364105143680556354586754333670544205018630241895831290457371887887579359566577850813433497872534993377348732691320205532064670748693640283272311373109072949568965789997057133620136174441364083596880908946247476228503985515091532801255106325061405390371083589725744292306611183025517159179986569645808948108119429092457496398117276117287946349471189448056845482413705552691425651325940664926549231677234194264969921179195300514486597590435617641499497923787305814766504499094205960107096056497870306095303282076920807983822297768377993156532880388558534220951019239158756387527132580946685301063659247134698766976914816881058522073997142881076178715776868254809603492760434529727445891053420662692249850647938302094690647317267463477342800622442854278068219200461534284787160112245892013097705430519701463905119680805293862261830360967187461839604434486046029341130232087606619895306556132603536237055844319182753861619841766060326258865655705375391581676823309586461936568677457298247467956826150035354745965763835366447319115294547068676808724545012458334805886862111342552299343699532557746940059842666169373056077441052572206656720485078282057896214235504244146035757132979500844604948884745690245115429973957567267127242327582696489636652934487208053796375769363797626804395735565388570088375447458284601379864241959364483619110037902069197575847228885925163275756154444748439158690286891019897097886367475448564195027898683761931139080855890115588408662664970451124149481945474504040765520785104272909836303432613097869700518790832461582818017207605223863125220264589794330040890585636122240353509397033397517874667902499379636788635281486042830979056172085990650819103066321320514713966496439037975420542671017707923370513069511512137840763198375399403768050378390317093266967652080277492068755175948821291787806166420180929771040561293234845323274940673066993457915947436125231678655747479972449992980444703273013293186545687346488685245794143364155417213222536781310032838280627310365776301935472173691913216225429576272014109482003671672041477422202581132960892606882048364293583191825840491773664890339025630314040875581036438739614295758634282781558533188653351843720259340359575031532476653336442613763771693067475831985351774715239037666721845569999947342004037935812293746225204998450834903728825678645000036796843682324166545193461448902131828600685455500318469922726653055906874327344775825001296186607722972963263828416728728048610691533021913142855499875020451257082313824042899325666367610893097510926358415723766569421887994126213724436436727036195573390048091423075860786231753361537517917959569213114380555207378004225344142359435068386951556362353915494195407099397501014173599480179448228187170725618182507072063630239932312935662739391684902303251217241212714875443781720213689172115542395095233149439585575623446889656258883697958002551154748106568930780589387925453713011549573312503179796406875562176084889601087649817277748762123730562430258185836724515693666238152597524492347949717055572018239371125161972960790034618218765492621489736242891762315996858303329330397722377111800496987938795533555627291680731748128894898973991665832247982228493879736524503080778442641819003062958135244477520574432964916536781611794829692428401012966744861629389606972359935919155261685732542131764892023254626947945421929373836391946250583498744627828891156118569042397392309626363518947506332395312290221261988543689423773792410371029891997112350406146941827898716083399712379792229747031627301217596821690238304101275744819093444327004009678911684307423900772424101626364538935692105349708599896463548748253855915305955157943788966480450563057474972908649293919093471270136555901684053782468695530778756047139163173042738044583947454438877705735140582977118578723787647067329157545052402692575064594906143415212355667941870436395623353284127357947444090254901459879645875854857904636567680813814247291031039247115710024834909082816812296601551266827046606500883005276519106764540032821024144039482280299415484810706533213955876341992318080388358343654129138941799403638960484994491422684558682892560080316460033729696419439122932148608740872850213902274765448432232569096694851686293475840632755469600966934692269479297085462905504045258235129963816436588999807352134197210674939779559828605331097441116182012187137077378123797133989410063717517505972324343253663887736159353705604474145657793288485798755299324623542378939128585039510241996357691930828301318441896117895373926361615175734107099111091521103149026137360257683922396638266053035922730851258070469695146143136589568393991811070744679007476129679824774665468362231779901067123833883320626644495295546919228714859243989686118593128117146601128638232836170581165373997715612952916427914184921011201272377421559889425746328426930722726229072499257132074308885910260697407809047349374329284765592317750580132950195357377159068024719811317854111717934101140170137180948234320837142505664063531840235358594728669179343956340597214226059940592810906748791326310772646523698296924505437391404744586431311379561706348195908865752204605354208799305618757332820576725560224515538258899321275087888669420119605192244850224802950524403590934086960326930142704380669673658335667720696339321639774629905386930771466809963766236510619943636690560632969939518431285628948917552247793923486742921387868811988668907307293700748817150563710528131724456332589950963095486888917519038026886701712161280776115413408333841199879875572577638412508753027025289344207098381169700969249812940205515815845957621826349917953197751791970651330523402202827981200570022053071787521324865771813131049603424560574708004810691190299103497961626490054943655944424605452015144043860491116966686230284528842531640921816786376557603167890548605170954526276773213416325415413810592529682087931621707011757069597770164928285380711075533016329005083313248766243204059976787450062401837109138052926627547551092246219401699605811406927934225028081728264422274055697070634242631149211260741404113957288304252194361013219622607873195688158239509320089305959593905473817213174756461988857825078406881244450722805423544973322705394605659905351579428835602003034961817895018424200103928471763856990996658856533929953752859885202412196879203066448185862566944799463158297784247448580418558797443737322113619238842557788859174689204137981011845081080163120711865196801607178908052227512820456916971899059595500190561693909630034520042215760417716425824697578217329652709874324385767171699056168869036956252227808772926919552397422075352191535725653607358829211294182040724123530142592721863408332901458636839815863252660384610213412620058924600223665037222244662738631339091176972728482465432725443706238738135245970121772539784448461928835519441592899144242997384133038531951120531752253817375819557653494285021911881231130778888875502257381682543845163996380908549388014959598695450670260698307152888613541044391888928721266084797027690864667997903279692822265026686160217882657482199145270002308724024209440728932610174597051258922209719026733304660860577846232225928103414451578417167023976247481426369093228543505083105155329937916965666894371050599533354472465223532147901570923893512538575667103878780485197833100756718228720301610956592041782068295624256836352172918120773254159143100556411166457566428907408938113607210794441733580849186629600916768403903595974043594127536872110898545120910257423395203238561388356248391250017795886087345185336270532988606013607135744750436909554802420071634712188129766629960220896097461756450357467178754543464546824365510799043710459799065399889297368651707249677483028480703880591868798248935866788352531693648087861049367411044907927856666855661525663470334153359368438690910016290091041328722166854234843995073696785512068843156448375850733854676723625436400508570035407292218244471930439812346086519209784774205563316231089931917567972813935150811128610792087949273631056450104497117142132772262221726454263763446193676690187326635565828711315174088901491408663437912634925965516333491231717442738182754479221290178580430560659078376765771809725287225961903753587192621370945595427914811093709298520351980671538944222717478879566905478424886693564583472529212203582244548793541984014972743553277036644692477820363900727776137219653432166585335122312225785999888954368228555021265262367419267320889555811351897152833670949173841183145558512471389750031415349767463374741903258137739470365040008221285141495437057982734421640114599058141800091421465510147739308333010313068203818030842910186068825342929653737382731826670396176717923335772358291471818392276129872608657573735441631015910642283529426580705655095709515567459240570110461820638853637212588900026321544067106735387223672504021483226828984005131425385866884423139243971688115565906291371746868256007842099162245098077096715264437924699225036056646809230612566283214879630206338857773449463263288393773862988477607950048970801129957346580598082128865641574448248877230133244182208804162685657284356906891756455278067782217008611585298788568772159481530355763138081398694686760398031358374886144328627321495583878662444631975015741928607823248655702305893980574046009280395965574920258036447095068510025280764707787839319780704582599374413275213870538323213521190650389306004235853702442038291369673755846769340772829208701424798723854791175070302327703116504356244389478803960634578791460436142811028831488253175032008793644118318730084508035283085877805205190488028566680429317040525102658527325951317327890748468878061703303944513975586568642974484742753994977328443515172404141465645685911084143999205221686887299560932718983294039456057093997533187811679795716650586818497721770498801233646294744038424923749127984355383935157295317298908528166366137282188805485672367085913755144770623244097289965893234284161946685148943374216863450391892447181485760961506080819876977930222604668285995148711487137483491548968568874626636227346935829334856826125157288011851244321306118030086032296858482959441041258499369594502626181455221676904570364832168272669323348841548006607148147322449503631599725292442682844917463884781017153915907431652508543447960459102704294256893887264157315066561344045110298762461301915379510976844809975371989367507932490921738966001841096869854405762490628397824702021789598648176724110067907065825880675164018180382058280332171927287410402836268259613854772680318652689706168109156931462709941619942706716727319876156829515411578900288251547288330730650048128372141616825104341281462007699495347950646971730980861390491169563654537823099687254547896432355985956187703829296613317693090089590486197107339917823813729840129963789727534190479877847731503554859640692401504984352517270123624484187829411379849235487268048600100371248204650883145128205942759503512045568986391372729509329579671282443484350332160722651501797261828836486382839143476043323947672065558655664879317730837174241095631604907149638395557939555370432831295099889694715148302427206319124550708657662984246462075662790906375569162146568330508865103458481243257312921599346007956906409559360781308430151632623727771688153740737378330993476551254897573186045204282007397195351200395331973795142197419005413398164209345711247900250971348720631847099270218167246866833856480447143108630515267161180266457168377150974904024153442188407066284214811660211864523081365164352958030511913490959930006090800470277507940817972457017743504685450039569003673835718937464015381344564362443452452217431307446010359579764605562797235926226952551655133956809912455232814442178739533926453105035737261643133192105723476676692470479809169398908226662230681337987818059707311803588095674929727519498179851828757503482632869322794156736136317055103826778109737899128162235379583393302050744850110825288390041211873138092331500952892538812030462048690356462023614287206173187027266925059327525875223857881299212923581580849410320289382569500376156735641282816096457750057187302606495809679085782070352465815133582560731112640599844952333986266066995318505798277872938481886321901340197794896496485875234993485461676559850920115408213078504484516387776991098911408474031778565623496316081283604542177081178467444964610935310578780941505950997510290150171950318861945627996502044435376152543476738177440226486916977566110521600469025790446498985390147379700909127692897899005056947561813134696611290957053926830591345913913156345418118551197621725843659994404794442212916775820534493202278410150804968282566558687386052481350555265523393456246412766986736155183052052459003665421184276105706678903128731110526707740456027081733001039769951208074665018568593952926350533581799104970219837990686502315094262670287662952972409740808594330412108955409572762690370283312204906227389051223605957333634261729568295823503526142899322086055325062239614838651427644422560232406611141401869518612446479886029808297219424437988925287571883001893681267814959988560257289901573539703747289075949544945351908476995714153069642304889202930625876312113689064525454428039372158450481141957004613890868213039850526700787922009670353351192613980730966793223452917907511296914319790546965371840440510017995010296722178804638969238421950212624544307669555220734144491675087992360379725660769494980332449418484207416011237871663794999424189150018644553797487680353728290309650411129151790993164704011043787630581715780652971322921899283696345765030644096500018604104864187819418786502856915152671214900029702554265871911395455012424705447916877076684972691328875661898525397638700841661691637219320461492632434496941616310051825499396797688964233295840722696617004095592161606392649496052355488073506216418956781543123100806795180584188791227050795846041645199678908368726375015015568097539455612934416593636593218347638464545431768469620761729918422738676270280612315829078191249944564214525466298573243904391140015849195341164558467695564992882960100316539376705080453465734382178119829036920039714043447814765854888451041065484416210497971608890922358927155626241691081181493356647026793715716876847857197122426525111380057976500752948062440684124335850568374970168127263787852313258256693155399501773154503013406805222128751909074180527959575747420005898276748730040707636671250302252958798428922544328190623643939027081466758020134168905342032930034287370616606412420001981531311827507382344941798043146444257301600089177623698332327535941386001355224049212259839123514815364763451944683796402818847836592564738085101646414986351181134316660633239079464005400419950773094149632567137492701216642168949789956544854883954081676095719251744038188001816708092858714205434071401282580876689082646818803811135084543590696181761903191083319228410518516554692553081717873798764462573348434516887386582160342691362065168411012020715766929118301338812823028528156350707959382056880090685936171103583816724995430815075213876883858958102925171647888899499326419879143577816304120116902154154868631953920139906458795563617438417155649999822508770957920460970538973691855568833650133107244005072002397760677863157961744928405711130960895962469619959000110731127746572830190359060122593707221211829841402023015036512033429802726111021561363520430681059386769782483270671468326440973645464894829351986370408685865700309273429250564016465698747297049764828918747790782651913622124894188216244123759378152383383465369543587972342135725856687657914050244463378813449552231407790008351597529942826476023173824332014880647219932526059748727172904946805399861234011496805101433625128549726330192777760205291363722816611434445153805242671798572547649265908370119551645864468553284797908140538548362431800471183880002863808264075547099952755813564042076966512874575371198992252222259087310120689473858599912563121652464056768365401690367654072614078782938315152661338971210996591144602430292520278728123581502297629836111194953675055374398661992621737266251153685799045238144955621600470833631376337535653334810988301392551237568188002649366597618877872186017420301102612079050481492214769133698692607054668923684070377012827253886673776199428200948983318231079283333565190860031469615212655288121164601522118094910371680684228598408966577440700774416174193653465777702967058799816749316739970138333224151065819298908837034444259039380076647631618837475343186561956126009789808785834531032793717666626245377845347202663284921007281347691061513596265720687913985418925140362453394781869530832353249004280277392729932726865874912679073797819053816140467007692546962070195683141443692455753891747907416051944260693886373799327766826768937804196184958838879435893876000311052636551693641437587050246793111233525843151021810322622836762351276001911046204382745629467726835342213481017098722645433227104396494450716917866859798089093437131233319682228088959186895178430917664330468147209971309698365215698962084434712245163523419329334037987962657354824521986592713930113548650511307297505234198752073857093094697469735527269383254267711583441649357353045481799194763307957983638348348704976880215839726460056833212744753445373326397925371100955072485637701403584677145780173197355158751627269935006533308395804147797600103291595768584185600284663366543173050415668414293332382740727449204195235674142771097919759698389543282308651693953011294848690960743646992023263916796432021930674872727952097890563073578706700782332182746556049263958878279053034052392602760490035083009693618641857707129770224040633749803327703882650116348380726647277587206472627417773732581988092662089939596042153332855887873737286614302150469360070279985804304650525568043813052265718730484544389921447357409926881934587123036328227937497658147343719913027937518917517242049896414380265382626960804560590124869278503220051713366759385085014108910447731637849020109394430117220215513812984423062258404935272755261208456665807405019862053478785933512308600496297760086415802683327753360790586570733099881842984783797049525037906328811459929634696676466778630118620897363490032507422234194264552144948074495244782509034460783897129007311601819793468732160548022970475403126542802499242001164467675272465786658892029215807067864028509925295006105990513675044925392600848382513928609342669393412410421953673537175416011061754801198375488508187436928735447045503798785445061392732465296722099199341038418632478118671269652359496091726990149896649462365478253545203417999349442188193440978601957615602931443961134510513449203422886734065380767122334066650425794123964047662760577968647422316008155152600107582199684579449166046788624353382376877705035751272253564137703982484046526231895416967712974892694252986770751673161092370286751291039468356264081859010573571162609137651219131600852209779077088281063771537519391924486556851399127740513747574972157417704750980255382626791420014767373943627934802523602619367883415123149075265984435322818018613178617903843326393803956523776830336583302126385821319729942155481055721200217534677610571057461688764893098012944523948185562217307097369221491068697817744342289299252063136885193736849957302537291899784783707648055780206118220341848970578499028450804757947231274208700271985167993113846720627267926731431014399513560396656161431192398207526729896854276382071621634872299723678544114820235973377117450178793501855165917882790409414459144361079465724205914224555374026193686984864165914997628921955939130361387005363195817430714898326526701763181598092647978076593251236096813941172628351376655555569888074828687526594014724953656755926095557540586051197397868101829829622958849735554096997696223364521497986034704197045279184850966687871509684616194536321861964610067037428359007563549307949891865995785078239746795048985723921760063274308429948887796048198189370865786434624775454971033967727185375639525822768523862354446310536197533160837400021944907118023370062850997884706435418649707181162591317475598774548186444107086235062920471440449959140769403260343340802308428136633543709000686761335425354421151140863271880982793316794829813705054196516154239334658146175676113452999914109357530817267458584696306688352393981765891474951574677086136486941590231564169563716071612188701151320509427998670597426181907412546561475512139056247987839132829679623034976874053836113792169564075895098594259846257978567339242066637268615711476089178750339888021840558553889555015543183896694011647809305937129592685119725652708251570390316699915057803954253169393446528301298377198680371429779315028881620912420942218170093893932567889636821637957137095212883686818427354056351041283577319826170620022366426126798952448606862065563022282828557694239047794155262922257789019842156553889656356543153377284996417022551132767889959508163199415995881310858785994529235176888705804947534469835360197626610287079400750513879685180945455084754926290387582484792395969641740261019019748913121823628714838661682148558537739539822510620893096060499040231615525532975843418988506707003527883345653220900927934460983742184743048036809650764597123729754983289564438010329240764882607141620941909337029497888578257083341949560123309014327952196983272402742075247148870887396292743971034516338891205601690130604829357452748085647069598031641933553284991873165597758526334103679309605566912961364244265293391599102898851155337011327444335138224208136379776089531877588089035320119676047693322782675200896261574982790276860952688922943100831200838642072870730593633786476379932760777484083182041425025846717453422564140048904894931856243989766459477288440035331961911673598088680892647273398814563609893851073189494618402173259858094758745433070652182887884129493716808708387356085204834458018528709441350732771677267983387209035012800611798174986009156312547535381078080489033022393169395149052150671481841488242620385139340188815895184092414842495832234160968062226475505863396840821104446279357558567367518791291954240460123639117970104431854848361739238988194230190365985271147307932406730199198092807239532236039539435584910067620007093812215291381946891587830611872677633959994843300141645966145109861707111344699409222181005774163809504885518813694440517962368160047720031262037262497375119015665831843238465445537941782612714694502960786584516063438039035942990879839016469224235347692433892515138797297051120052169310764530324344432065810746807870851308502250277794420857051675250604102584185340218642028855466296243230004434332612927765373388690604851478291113130113027607032908580224722761473413400354931520807757436337330950682152310233016032159725913825119781976317111524930092427613615820329420959798061977559416504379701243413813538812676287645929138249122631788161036278478143978931182900545236963579614746777366773552213198680094462561182409687195346221879856540764772619993587966883028959063316843264821243192034393548849778671842753162011726323937747656198543668021735855408531593298797550298093299361215964801608784243459256811578540062857868557024533366255201842638553293366551629344303464495671003433025310013963162339569695748449749436731511911822995314067822593902327108522079128184890603032589678453858635345614271460385812303445754529482444547145755799987095645244858908219140375415785898036655125234308243658609262984844965978875772838973463910961395174403091265955015411075533986080506808786608501807484562317907935182961857294187295580408721415406120593204719524003422474338942793085082207031260225111936101371628670818810233054099934352127282711691973362152590425097348820814385276698691735827976521969084963028644600885388754051482177738246853973502630424858553605402584337882711459703587777866265570335054801754911484430900716397523199818785895150825056809797729573883496068446556200697284772632098171711533211796269411196399404759151952104711145459206328967876444115870665444076030771879424219373578079448484730648591897740855447357559556859004747811323690835685687155412092545077228229076927541881182103090252451288821468527797762845925221724589955377228181141679301508154672103944479162465200363615362741069116823831941616906931489770367146164125327448877413315058041844435604670898520262779784435215187427813881612123037934338425671604993165264986610754066192462627524061682624844021860377087251299618611381804801858972164173826021966606935983400859161747560739286374286206732077877751514877124624484075108414003603225184133802966207128846576992594062815666789028291498392746877347856335755403294122352195930831195835025853466968309413906785707963177235391269936833467831975582650043655738608010502174633920998775985051539264521748104664649803532397702601912352852989527618251305521701328328006163811208213703944198371307146105092609778267384938330358499040582825803435600995568445422584706273223195975173159299031011626025303096836394425841685717013498136516722860574490837812847998183438254950424981473442637317032125992992326755015410785379332912971617985671882900588115035353365924489866548692812341528569785324290137855229740627527253457395828410167860885415905653800536471456907009086380785468733404080066835713913003471498775228584038543502908646846984504407716201027061404426949833980762886475061220940909796700327503498056436241916428229969396207276457638448583002293804711656818705985414677976917375535211017081824081645628935593975897494134812897747386288945458616851327638958951371851670594306349001960655513378690571579211789850898160855554083427448728597978030680930700913086148828661308877715464430188239034728391224430911201931857719700670542980276145504520355337259183825491581296934812737177834336425485480450980526741938247401132569539832506224816093009577059936689071431569312260234666321845863151482995066195445623897833361438710787729660987747706789953902631399132036884192243505815832185227934099163434541681670651775381036253367169423802193359076828975758934623865555783938709217379947768172059898591511581811159020676471629577094027984089551228697128498025309750549767770547879885972067293953460887878935307482168531448398763440046242201774861716526291716262015852877169418176402654165990275625121512850982383451925836776490454024676303168043716823611490041349978998892829928474615898371638108833993686827249321803771148952879606315097259880112836191568777146771531514801665219981089114424243988753140366455310959626270153566627984150536630435637784542554994129225148830011665394350908288327830013755605179176750503413042084222317052958533238723468862572068671212993055533515621718262322131575098801956692166948364585970872720337948404887757823143922071128353237389921687512156455009333833270406264175097998799059940449386026442518129615101374890157941710883836072101452634405583429117113751135684777283489148060064584750913776706196223570858276301581365391899381890868801532376007054313290155817863279098702654995268430225294387225756712564608555530101822041192213648958978421831582200296518774242378719874652242008715898595526163457624770517948170381371017979826161133109689150342907751331658265581606009899742503263034047825234251906071557326587983266303030141695144803397930243637062321584740370228418385338123630078852651159653798300343355311654311480802938631924840602727751222961675737861629539196049116332361351866836108369865552361129172305839914976838977678868143430990212006142060168655912245332153581147745229627904420638154046422183418376534996039689393010810073224015982618691616600219352379254869492419951950834902831401200210091384762885179011620883971847757378917766329988282493790612717246639948341347931503247543103455903925675626791518497297757502757642277215328852375633670258066706440898783866712164320151922469597404426675091683069818829901161625392774105144240808290377532379489586245611775177793813111231005133854645937677510084353838207884340573670152346843579268907763240732084729525975964966892883960018801372409494460435434669897011276707101960529696350397719729495912997093543383915801991918404626240984929853411456093336893025203982583104054693091841482138411348590790784602503644316760775181647313139121089084835358857559487687531343803764486895339257341148096905068992874020561028434377930777174494778777956424139118670158291169347787502962827756670010354034428637615155825621700005030331421641284093521740686152953447578072037044044610124732361286822876376765482769746008325658142762296561838092514768265192283428699599706454136337432985831383933581630057148366383377610084927730218305184303912249297987710448532162856802193112909311770120605245523835810670824445325074356865352568408507311880364627346287089574675643596071176091478944165025784515370960815122714504762024685988133263344733112243042312940869980127294540728784862715945143990170403228364081949522983272646257751427479027658354155653856998713055464132156513383689522469784751460795748745625912517896403696410375502120564476991363034604881318038348688918433399642242928985353621064553173176562513766856389793412435213413989830338135581156959921177170937432219120052485869205112977459193074416410990829709288654575205264387363927892928158018844916163099829456335228401366106132544848480827966841496549466381084962368342737360794447605057497895932006048778014268756715594828771043489113200608972846700134758641986366333308460332855805840028115486548580685486032969616169685330678389549702306620155524501736887543954477633663310691716678808047325443724836943060680403771963972407081082104888987847336711449894458971918918406234161411354835826778085294040274240059972486209615180777615658155981281286931313784913547690270309962214927200194629722192591996583669321231892204453287849081557596114973659985216924841169796496383939864663849640172724969003269909829329856321470182930193140421209379678305299896560547952520221360956501219080339881280983109616364426793957845703797111337106883741242421969593420406881548933721876235553807457076501010704079832648410715039251196382398616405683750876174330445998909671507276898159939249013078058128429739007856823747459521798572492252226136667778428642479961802583919798903152394284761481062947440820804271401862195515247211927786343528146041557228912894796130319905385906389654514080937651659342372755741764274858400754997430026832598875979558276487076397591831313568360872708561217142537271020823840219797052721325487498175561161757585203439502981990739887382294262008846446575444897632874265319980539686665061360282656334226358117495944415101911176482206793028265465778770299624714342731351814201516561252370116229450295540842652265914455707752880331512103758672934325379423864874736954272571670750041169302946691760833924455751317408717663116985930911561393246323268739902590159472039772549166169087723238064467975065432983696865407482087861864590370429721238224550123378216386228367970345143684209020241232066732703449062656959763762075417752209743997540163594175373579278483764480819394637966231818118848623750066915748211937205995117414036009002856495066472197534551626142866541016411006718143509829502212308700544332216827601072530807786130194199450141290104299145830006091986361357520981022497262590369297061220927664329797933435013567226397866113005261061758168715616467186568421358095172129468453762920492750368790502696717192843305311205551524413658735035089070717704946311833327830556136168281736311654168879253312909195017039694711874901973655642126257031253905581628464823341377904569566886731491879036464283345097769949372615665819562994142040202976886332038263406149048279286104386676935032593551076700434423406050408704906222312674767660209683319582679470796873035142096888184035103645389599887085136138668664730079327259307654690818776238530003549275316049319812940825681071227228640288590270309277931830916611778309145113319382602538897356132374924257168090806261951179022593100669315746361813810746828445286081428101801839654749840002356999882497052508104803298145274858410424483305268800662367073803695364190116083121358765814540450888658831534573399156986328734071835582184503240533216742584029260831011042725308780129546072772283522089501093924384601856885994882190216593493775861324035606885802862223591769202581873547330699769475853352265975977668738817357654369916944098390007913906552377581167803502143190249235738002386238295532353526971372465187341285637972358395638897573167500116003789690530575194170900384035542180257107651120923606913119548968240303654041032151279159336498301810137317701301829801407178205840976343194295642593169375930591804369245853722529611506839584679416076604162207770578238496809218366633174374294864097290859732029544793328195313931544694674483959862485319296143785790576456422614481765036595513595383590253388676323512673155682941249822501706229816511918230845533444369316982141628626521975108111521468000969271943664810712834905295097345646275185466282254716537291145196910501208492383190555112923985122405531996188808623863320218975571784981702762957435150556661495743009646905727304555777991159693613069166306064916019412907224459881924048079858275294235783841774654558230449590151572613101586812180339446492289260726783834967714292265272001194846046951585520333631561370675722978123609838297670346420132492816633897567774100920162594265321461596461372938556505048013613806141192349946375131826341142680189888156813675746935127589144465878535818630794657810109069153206128545594739513139723680080273578929461219907614002321909409226969946877518555060882573067628509179980403777931582015630640823603791390469012177021098870867780832437614883128223733341585548153705951176606943217753572604423098677101081984905892781954251511748575115528521563345897937622816144485780164653870949995022857046891419600845523746719122602972576607338268822713994718180141044038316028458416041104627689114669487223256162454182925179222268931187566856654988604899758587911730539769937376582321156857650726876476801811423966551832740750519505638588759330506440023449244200867290240161730844123863521965217607461540514672063490775034665368729184437082366865015784022040021470050297328402750899259836176409673237416908043691519212300773552804186825069650145782414092521548513458773038116621284491791686519690797648489718362152048739852594320317967682691149711075783384625468664638839460437083250704104750441709208824575802339107652155606728835265100735971809261121854600672153189008513074892101415057227280563029429122702922603990640102377936069552984815032479244721872797578171371057549618306988935005521625533995641599429442329414168815667825247854845479298636113424881375901187187641696279973040391913356968432332775023281226667747448840035075921664025681848466683565705656902603728077838701174419708377530331070048406883862060008813316563429739920617952028320488590864794598806036592505687542696831813738563282180789219464201487421271328500370949677066784637084588839208243275152667331994097856012397725389588576161553225132987984800149186566834981560294384983109587884163228898312416710144429091525900487218656762538969295991268545707513799258140069664343171396127126347528075331436194356914404322318615503028909181615683320959571266220280546827872408919062907727611185445759425886707509129156112995114358996957547006093928657330443380412017376999827359214231433805943805916224184269929932051142802680146429888943723712407044078761485142625638666320707269213060048177916012732371070007976690166001215721677740166664191934213107102504275845647169854463898845973081904919235556215958420970457577065351650110476444490148387073319590916964290368717731976749719869365460230971522370181784590939180187957109952757974811873618806144468408946565699483199233194178903491831303037930051557397775825118809422347875659655593674067484852277652506624899234285730173902963359231900041999054783934605566021078490375044180849059399478150060192688964709426121914948021717659509641234549472031767781573331897849247971708575912356516729314900955827884060801476789793804854497394471633892423426033406852297033893241414726673442748301568766499553011214746624401918704305133821715850980777242859099037447838674822792339725730514783048403205380610222753142606014177002645013351956978495642006796435592869233973735579218593448002228894917289811557893911659057210077675015124924653274304771156618593925909045440199563405717855956079551662972087520597564011631328298471986553752960574763549354438976387952808780937208535881939827381105472007283882486627051188011464588986784897922855338149997466520370867454222053850273799160128514587170497541690900630397989317565609127548346496176466258211895045189081042580892820084285134017559268959362833397577850640307377526727821295586210303877139435633589386332554903115608947672677411582193938687723088135322007264920810613468219546291887471655213461132989095363319162477405789089352262136022774141053957234866462514913187329152912430549798041388260943164636639350072538503343591286119914151183025720904149881689527229323681607415198880006779720618927074222025448093885476264010005877453965568251667372912794925775761865181373875292985467988725053641922364157100190613867701072192700006572984325877517025996230829864323960108673188391006877316436398826996615615809653735945838047161639140215804715348370275121731988250392675763481412351531635716725214191821324109398206341550784194886081297133041486445589077602279320863032804292348639658626029066016746629731228888806491136563029377078623895344293822450596638902848676634026107362930852174246066812669945548976941628463558854177644203859315287601236519177617697128362854659939364431815607765638307427017246085189580839486409085010999103983876758889355916370444402733039598745352251328271513864559357400823483877587314201185867837211640830483266038140680132734753224005704645373295690291058306547342053838931204665095281919192574953244417566084931383392782686519038484192346013753557988335856342986802880380083241750590823464154370788361800304613684461380346963433750357151212067642914137307732161652922562478474327162379906635065703428875736193612739526854403922508323744228138725232132714541824027930724982719802383183411249468698098967143713517605658322008481955952606113040227247791036375893059461063066820925333898051406619551825794944388422206633329321162385537444489656303362778605284647958292813044561489292452425368478017265214938714333805415953609409174655657958747966964237709417705725893311162280444856974902679856036521311381856341024810013091422777507026393117409168645447992250748557016561358576677200532909878404053490537364511066926243246991946710232869107670978235195250597235506333253325263247543010252567211362249774080973639426963558431360077074615257545987876454344142527225293635043269119909541511993671593696868151573114011589528020724170974004001788472895303657191166903003856234270654956843873467817093478239767028911777887157049175600803334310289600359030973776207917805109871878389469433010943847663469406311407672152009293870479537304474414653185307002553184984889094386500937865366583117120618209856163738523018673391607132404565936982440368891954177142800393480158146780709997224675634339625181671700900167240050515650968806823823736648000706925728662004503975440222461888734411525434845315824166114732138236402117625819453665668878591003491629426651514367529154864840748050054414667897493207651945300658185989167306487842967451174651261560970114844037169545359796959157574120540594604779336828237805770108290184004274149179399756635941351132266832769209046047034602477431126554882573703631289303017499834833947153493235622018595533252771511033652470819428066265230687596264719079738693344025652197421466861170238757651005571356368789362115894193877937311428483266026921685378264250418829815952371678191826404317119435803163339469515780228351882741916792793684583193896135230673108017739943092234469787214216699877357929895305850130693375476269970047187909742170093764161225431367046616019036977329129204704781023188041272579019907100510118585431786901684008688685471329012383350369687850453959595541716470808854426449399160077884439300996260257738916081471649072991039116352282005719718382897105713184058920153759729297894097998989029753199177046399022325418352679939284870899941703162620663939851371223243455645398554105781857293495844756228814003773896502862753862726244409960061498376267540429678565826215751804222961618731898300137775755181848909041179649522622531821803735283750000528350912472618561316296453614265209335108358658683058605974853892752731108376292906763645448635383908649618542984519152318715980701182898809472655090005045519022351378783468290354988443510454623399900075299020897434264270329468495919014926843328948087203084717446790438724571009721726858902933968049359961080165939415040071797340822779254718273631019544360781260334589019302637014157384993707383006864184036360874173491968083749218844181835761579072978670364095423594085891990022232839757717670460174755960396280590940628233079118041838079711044076439805467582293316077798590164354029920752295006929632668398242334312176259470482102093470738145796951115855190732212109988097416536841835484145509064377790964440948683222165707323895061923154996220842778962897586776301843728424618276288331566306718201868235196378459391111217875654024780460302208530012150662440882571319072018567638882631884712625993879037735911415493079093999685149232637497110671502693193071300235739001768857263174078907040467460464082555159008890412187763056929878742625336704011066637558671127556591232446849754277049198390961158224339070949976242967694081998777247977855897862358435417918258500528484924221859192015887500091802622660825347048841103899989981673567277779868629385134559257068015909856765416233578704424874664321659671445613126180047626434219569586458744707170839475653067451899024863917591635817159927794773143237745920638034056686746932549885886618286949366665259405639300401173643424497036062812846057469348217117169480775635204964072562605768110394249013839901835425799666587161633565457487872271333210477590546241797468409706180020152289215772327492324045319736469318069697053849060216332004787915284487535287908152300914075365362551231925504183077747526933917101545520720767748093574909438134110463405332662331259497042315868253235326400428561590475365025340959435690645154514465301751030008252389062047292776554337899503453414582028981743748042095246535615493639008481457244917138675638755738431952985308580006508954362204625584890522346713074531865186543668693543810257545036309023476119940186083187394593107909308222711477095906927405777913780677484702669937715967296037997303736351205685750281757360544242533296908689149323527265281321265189364388936016405866075611030295942325287947951929077301741816338213690784332846910988688346096501828688345537612356947326038321233777570247212389650104098100557895660232055715088220883160659057705878418953443035784114162936746056756439446635777554971349158278256583766215283209502857148983188516221247744926367524638302768492192371515238220271026262921326524739717164578354866086413031609349770525592661508216547706442308924038377355998061869049514758347158641782492272880300083301325005948726443420643667962686400825138798355418628790587329225660342723689247849174262289859516968354014065906742932387254019741675905347376250911890556540966343783329666414030694650205110218983485213920000768577931434434028620464576753281054563504320116448400981559299943208677815658020059938736233194203308335549428511370185271303772767231531131080555818682659337621121363319848294303493896582431783739593860950519995705441531927125621029534209431064157665345414485727145667809145988953135420539928847006960339036983249811909667184590377674122519126867427878251566097238508970524531939139675525839861373025799921379505488509046088943793892136540395260934548386930463211051926355318970356756931645298212947457638316139720107754829708258240770411842210743260001112499667195250815497311417145503229412729911418336977158702307831089796636742011391492032763040549659701552211329879590974859869491097476686221923832605595634418990840457267728261507373237608849284104850561625604789370224202129113238622934774937019222474011699747698404955561071240843975598310921004138281188612308135141439327395363156223693778013626089331859481725328479374022498082056172855673826540236765038034765723228170023169267097829786236577488997096875727022674131653376359470733557847848698958985083032146810655251436320509963731367191439991083092849019275073380723009837119214573024827928699563178251045561974022006241190948644097923394047622562097528615520114866095097896961426124763378821242531224074657213490893878877270029568820356644575874102146943677232046875118782953443100801565315512221502160904949617148084765918684552427253799379358835447180486468850816294446187586613043607066921917951142155408531226039735132620641179754600841123320493031705472527610736281184450004640063188712101652739761097910888725231662045386347897863788141283193209511753959214296298325506329037199818849928249366970973980478428654609778768769933589000122151213393450301854071708503113997329945470250074640951962802700562884960052770481877177071114787861894192356850074507726681753551146162038633253439371269779620843558869258660884678700802755209581511111954247541680216185728364559120637654187900105406129883709853090770018629417569248807692076781573382792842019311586650631280651663914494677176561633170028708551864197727376013880774749602396787352213505977771833555799491822926665802903238257712925768917122880241769301048219304329491334545144920572887568109205016523355097547853370715897744379010499950688920642729128420158450020491293205181293278573229352917076907335785409223216213661016273684420530982157472545412597856329370758864961130477537126924620189566055647097570819798864744367888002058375238279223963420057998200660963526751637552453506662667509330520315151611322384339497915311082652565121457729885720224705064858884458437639819708091964781484236823708194705240311566399530940634739229368899520519032934846391990154239316822563643436326740178379550266265910775115851785670372816750996432756549659126988000993095277143561575529129097967178634424774449564746848312053711006691679490853786573166498145927639533415774572282820185302517188122842005359508336292250446710967580654652449830105384391080649907953231948669548849099428033837063454355510307117548690938499476073627375833610169189441768152921066212080311709606738700429363012383560017571117100484974948573412550278502261678805622270982611743556431955145499581165331065062653687579283822609425952939838307617267628851333105539318554429199887445886932824160130057117281369185776254139695504841471031326490396915348291951265347283688752922106584552892865770516128747444765740137068639765238459017072610200265620864279409952009222392135576971133696358597414217927381277919809841014888719100677049012826000397356884981033476408307439695571519406191470700175200912404679934927057496577811015400984091217912716136629791461809219885969073543910184226718910963848891185340916666882430232975586807949702336907416014843268429449737150572012512587285263829263963264344842698711826400961741889183210492281771619777863025373033939193562615061065444984804643364160570651901682050086701328902271894366601285289963133639148018327490258823380384127534309676223330035370165706198088680775327472082428951843579789354022339871187271536807252307079916752036575895304315705578365971289870748432886635141172278620553026629297518099873972649935642627474283902766355590199522514552873656212363601408608801702338028815361520557818476019765022895181781136261913399940606378452525096605596615036313474272666356411625052674568081766445662102650216898140065854377426688249314245258091441288405478491183301841666300817541009544171465793515482991572630640679334238314204262828319707354926561571129512707724232309249993933636002046637475765065198878030268751264517820731955468517643626817825186451468583391988845269062209259447907362703985528800661668732941791000843042790840403739253873444949039972772228453784229520994956455323741069216353571891744498569317748548016363810352249765328311372213227628387085263858722654125593968345156929323585018552075245960216923764381949398324991087804974002591143602848273951004386431616448376143438005643816561722786504255274903989090387889256726138363011274766485454002316604032671086788972763095505979158322872070020481092762958603509833715016210297771087213204994850879752146515215254332495998714222844337819195863021837448593308463169889528396842698441485127751232359991039349241131876122699252932138714302299354284063482589289294412975314811048439896802176850584060080371631198336967210104936701336995020800414176537709686778146366136460093123461602875669542513811745069546573498702690116556375122972676105417278641311346011624309947265913372375054666328880513226181548601870417733216345245326555879863303185018999839202948322577508301580254094744405320353394406955031039714308691301887495281958676175843538902761724686008749717962090769819209933280398234137984248739777967774843433249208236160726432220294781244176880091854489479717312496875601851187018115031528323227305844061347265750610567003235218041114360587087958480112594516281711964169493027368270930216936485084463240412211606213701807249804641429633444319167084064601970370743181550997327395783072638999915853421636973198167931134753171028893790860994233696283581161965365345758103059656165134206828074381811303444303671154770844996446112328649035752452141855358679916217934808912724451386831703322190841644811147866155815300843454304675060770225788548269392582691538394492552988134859529843475688237276141264896914129043139297592685963105431883863248884603443502993595748185214281549851305400654223027017983399442283102479631588759382762791386230861077736398388790516699458831219276572419328140090456355051489751320814274635930174590788188584948923962410350538475115990089733928157357988200852298825574735885109316234506650041718185816180526933055602777863390431746742802793422069962335887889374644938278639620684732819655492271493685417975887092173784535566842774720370497047696400027960452317381965977353923644485124101870365649293341891705430639499049241906202691113976148274772814291581776124768711759768663021989352134069968852966080662791997888806435870741303168141109770442095213521508303572844600758587518859119589724694525183962617733883773330406009349034561712440509084357681506218883880057002691296107845012137839208305030238452642894664609539681419603747868807542498807174360555801401472911469184780001538671628028795547236898932844681301465801414460889164714382918073378026712888793070705429390161532563827998952858787145557034003601290263728254209087339706489242722036084871736746112997473980113581967830470325387154458656337219817249947506446447403847697209057259626572150832692658113787373156146085630477413272106360444616638679085971443167637781362635927808681139281767306813802900682328159927872695561177151081251747308574778794556341668827274472051639705516339612182751128631034690682655951861351910391985073661451634650449362148465320154492510237467939466376996390092313093698794127388548292868800586682848619374958765086228294835464084525010669186025333334002715910502547024954312616968020993409448116194852605870233249330956399657516779144452882765092660824707931080211703685940738340132416353386922074296872315636335871184059410802005379891467258714758130717497455293927562283388137022599237877594243761741487112958716400183423897713761629400705220724296176801270101960967458936764279101437466819215652703918396443989473190160313611312438721078537432961492172739329683838438064952303336394366114943212854338715687143022082789540557620156967297677249909445662048483110648622298307979563622046092064761428074700640544889908050570682850603490529898758782450662334609098159205695349170864610464794444692240746621970798280813176311837842585984592592759201928826835486480563789025088054527218440246018467601464710977065700322064925060219022134672954985021748131114413422841210666835964544526404770401644567697896492346962218214439775465967530804390338909850016889861544221126870673523078575305692809453743929857535235303510403012662024285303596110506533207110841076558666807491713007550266350826174104354835536894950441830435235680517134767103327439763123723794610487436391314883920982787117898550597924476603426559395103382686569228495692943556000069819065503976811100113204736274096474348746528951334274988322285099668812094590853872758473872918857631802391317835338404842576923239289933366197007150835009686056058125434867237928326465734458430043537137689217670395979734556396831559317599044054973185894982991371461585865365105125242361785597812648068508924119823520315312399246315030948982260366605035257895763928918065290923095884171838571623287911872793221706371443400926976090869743878776167239672260336938182512926863535559536299130275094712948521488791276006520842707110266434123506671387298658842312015777230042088588637413888703261201953316338121028188365043206812276049735575257012226327493458393694273126788230195226971396953373779157276894245700150128380912410425451814434207131826479498987945954116876018389059769544574593769625467274435203207469213657869583161366783892893957216267304726417896950131606986333875843777889301554356485175148700555785797775026252306812662319890917658065668121511815425920228648437300972976956704225241000342724086939589257446915512769492123516691475368334040245015026366426246647402333703992089876066633636449916678227323900371349308223920986332684363413470551319040797904276421694390859025955681322377775930478362780473789378453080048477476108111075945931208657423470429684598058803557685577325684184341014331327429918145144829689620415063658231510449541128336926096900406491594001815386417736024868496392437407274834940884391008722144363307628898303820066872283296139854495714853684652023369489731489144223038285016306021155550954499747176946227895885080807434730173199585904823378266444580589430954453512668417388502060416787980466330264448504890611738851761318152229516262984564737881003872369423404721033404501951548006629077426644527385733776497771083268617267104297732059481187498181673452591308566081830320748041257836473857745782861118629525435180507408804030189901138174486827312878076540161715811936209895826025298714382755387884006226688244799312361413568566828709869456414483746081254933954531097260293223121320966578513215817900797748977146544952345211015413000125697914528646296764615684799364785476464073869880110674316746137092484962492488871820263431573562079263075882263011723935877782336059265952341750853064894504805662373197799387476994533942296660652339988093127601877558798829409174247380668745393724594477114289827112882250386022243800613506265541882827817491094447375747510421534967717120336364645203633377659213030038475782599527405350590388966104822981431714467953945624387850840528587641211715187341994839974645469522880054544919364582095473143524100137548116783358091359688792332325845910965963156626834098221273038726538809295323114878321369335023498323015495578924232566635682362205064648780692143131013762833067491005181156627052918827765334165505586556441328374057115034513492044786284793196979054722010289693673319076216653572706573109473261259598182114512116285750509407537957763233008522437212445444606596552032187195736146791476699509115553726814185574270978781536252758409078830652555846167264020836926013683734427305597696226169070302456655273302134506889291835736987003286846663649910766371904539819111859513318510824527801958673288405088410340863773555089832954160938508945989162923154817579201133995417373600745454417707015556524860421509196066670946082898933516270031813809870727294542369579941687211075711265213614285299619844597369669686135616275058170974504344237134276372151275863895195091759729645863172361102015915374522967287488387240640447561741243940760381537149126380407091292103639594524970846182702932208556532156645454461729719095104222454496938250218621213166394466443378935104769474144390978385543564874140820651180716557300499166311853234677614290882878643082750200691026136225235437075651582630109341649220164132904177160360569754420821445713611119240175030689856429486766452833774385517696674972370465528294515859949222403829532926722239872603549302444543531284486766686703689157408117308783763511990327293411786008056920203799448619126662512050035192276468791019840014006625941467290671731822267178794908125044287988279591774910580728219338345614780297733780051948079175099784578947580411362337849489469661790108045591870209030119213961952996125342938092746731316690794635396411118674560065637074604690980695680085575564159568265520185385967987789989448377980128909726038222808293873182283522100105294240426560514886418065672026515814876321314786338841273127640245928175022749001353486534860728884510559654501676503039029449260692365097655740524233471403775445762686360156797468091666718510389947595330767171440828050850747556324649834852644234333673593358111456892423156371835816407324798012284635920614855092698324994599846430513031781126995859935585472877548925202933137593200172818760326810887228988139575449830948779276493730490798056429811946146246295221901094187642623541817886427367652205519503019119476753800911942992029580467105887443111469603698534427123184047646189799976280159200645783322153059170659225129753011319947015461764662094687338906594115684889832470632267596478672242942298168764991960189540317414033511328526317528287470405553211555920298749731899976565323812930209941034524248165244802772255205478464830453731071226061573514201206860277449016865708025582091291168003220231953179614765933836615262997653116792444117779622809438278138179459330565748853779675242981943481455223786176563409356645817866367750804722324906136763797651716416811785465565096599894058228376607445920858764997577795878999479524133263038054233123307063020369803769557166830200721180382808004267623351985712373361618244970387910168654793210377921287894768238496153728958338017832199173186799198710343297832257807979558240149397075809116070468214027846262900715397998696933647686018077583888113865906459393935476331214204233638095540801501384613441794229422203984034934877746903102029141986576442634710436025128755593726159781466173830624392816019054744926524308904367778239668867083014269991709379540433034783565907079032488538367385163955972776820125628547697826007647117641469410453075227754817513976518640407606716144380183026771050329941163246169060144999675741598091353552089771389010596065132322250546913311480510146963940756915744079502650757896251526233853320845481603067045444925296832972174864741324516682616818420129319345988801849937455811938904052177882602304781168854583467689159019676818527200136307707532457580431918508589669550711462089264663525081896112673966598975380895495833227116734630839593239323938099945564659594803148208263478137359789471778201368475974617279825168091514406820020276729461138481252681846477263805540287820091431674938430054139074145773347996788326689182567105907945424814362582360882520089487341307380746465205481309868378047880615402049866431250261446597417001006394490640175108834563721411014336019070196328034379466033893221203447695322962112813301472967376824024363636732523548636632216912536795603220781247191274272671753145552649537425568178927921772086471820027623593072517280669336361698955539105208935322699849358462482895589991686646883317437054945533280960410918042187162136030237655243193750165163780783758131658500211024180270526573286833840954156192903578987420498009626549854237081546394691504070753001413521685284763800088967246904509880976730408422992284827672611216351092332032197559620306473587815320168243433278554871908392948664796482540572238625681803403373061415667453165711525057192323412080990092507025214366519088616126056258289489399926628022632845138766973751370956746149749657576412570293229984276074195647751777809604178038842660443929668936763795353704460540000579556609098163939640292959308839279417629097060690193608735797074444884463844274354433246029447581599854526398971619240324549957119812112871577803819963936842091064020223831872953109773556221944118404573138528320898022857051369096768382682282331130986569308888535959112852912144948800114747429566598827496229463232275900124271747810063090043886053106135599097743061674531899554039193204906692261757301465563238281176448606631135749158534707117152202056603099620184417081443959160125591327156816955584318539189862091644721818949253313315367314602677712094990734955810203818077937644757730783154335441427460434213748172315866844294039351607706222059897972693862331023076885621994213968443036365110113011018486470467793283171054131521285229104439601243846175578334916650765336087495081057929766898689056721487447721679624347943394861539890451976342283915461215856251544599474623035636899282356692313266037038596030414675198947849500204658121189446578564391302049124295791276879907169500194423506669039020702489444603993935314385139463418608888216809896205559826824586145636668535983309291763296871868931566422766350713291638266936815738277471380390762342937545823017825782944894455432416144019530769779642394960821291544885546945498357249242777023594231648681738524426447889078180820205971430626096505453885898906045589481492792270525860017694932640054853854030641326741237378034286168389970374568537664213346446875869832186252545000413028517303422777221112901174322344593869878082189961183204337272894193328427032066722884937922073831073701871106294445280826187675757563778069277236106444346834277126921101103545473367733351519109101764403887004288709833912522616307852876294383891633510555165685958286415760807013128595625219827587955752589826067033671776828610054819925513615117580108042256165881422084559320341351621763878472651970382217715177851024981844407806244378799614108194468142752451664830489486843527488443919373932696094660500742208848967737503526841262460166872491422244520177707446966398566879317361562980181655303686982362899807012779074310537687039807146792017514351798974960379227027382910184972225455497349112534472692116350427148158568411540291617864580623394232358587186634540597657705595166611242392752105810337305277532912609000137677745640034139379482839686121808691693705556213907103883472938939303254133470781266362815179556033117690810966094734526402840141255256142838085483660517560389061961040424400959048953316468549459049831865251902468802856865343838232825483819226140665120925136580833244633595464728928112371492345585811722936974436325906695601659566868333283465671732715133308172794992050357731473311385893194049988322184442497413883033568976684868312989013493514076871138264266064703020428829400442420849065089138518862302589082569185573450344054366069867640234088099393525306460209283429408755019976253429595797059568003603030437516821950726267603069291685940536172612097141582766067956583452500013259765887994579820551087911326595476254137904637652462931802253211168751554979548358187696518960566275260736550302683484823832585753998358830989940617713769187851327641698981221624678109348401364217137931141548989921530789053901718074287004759646959945238802360531482249028294154690574354203240551150250976759440538830173507778270275946134201520339680413919277279922008905030067330011030600105231690597483964812698134404476129073467319235601359839110349122631956779721108940503354570609615460226787017077072614480404852341292716868826922974234068686336500386675939080083610716616521818096783886458224381683770307112488486429562364504700556778090418177308287777995599869177950963281098967838031886518400042400565374594427496461737372027765808795137185874462391673406835562472056680440862925911865072762506133001133775779989361521356155013427155461212733708763030678598856651945995443356618262183924792875449591494711122099889300079456614961376197601115958074497789723198997338949694281532583926051044212587305609462654541317755581517651792794068038899501455171886360037568608138408387375956260859582039540753157051919665997529019143777620438229923462276939720483685117155509287651280208761495723245356997622079466734425490397705719045714344763000183424675204618229252127310379346454130275884871445888673969148471256823783654253273783278835741350337036802678049911553009003214575526556995636501455028312642243196857802804520972532468027948509356413295414828910851046934456353219301792782776803407671525341355830483164108409473989074557623932432236084709775977329526196388397877466810309325976782429168742308819692001266362330568951349363931341182542233779889651587941538285867610080550187976559670861355286573578434129620031492379795079794627124758470669153034386513334675339095101187527894070738494404296364143816134165567769677948342340442854326927081003824638281596693234528677915792023927245986093224911150506377419216676275537765934144071249636918424624115838308409177284278698953737980625113756833712721077729437774269927490990898659853650199126402558754445272190744002770556341706649475262543804510952221364053386693853641948124063129233688411847139900892190105192966278084325122318471391690124010548393579126582319737130720309334559971774642403817910095631806608687554720353248899387652094976782182769833144887786611505891954268046537535330653011969124790639619894858678308524336899389803139883870529066435244309130444529172780430250465585643493406581338243822763143450366667416359013849508030541497761079241064566991685751037666068941418316438713498340932222135215317025116940152701335190163900036385715725019056874528938085551064295734150292243605091588777788360067353139801409306276003182017045010979553255433032256997724668450084556202382443635980823694593892538754697961950856758981793146012918142739813159372588904638763989267646877726335349485114427287742625433902807523578538283362599399892133380856207980239088910005223037104017482048382759449458497996406621106992347389445946529524455113885237330319749706870287085100588042265570741460898314696078077910316913426851501743871095698785887801557551871915108561277820380847920556742127144909454577561326016146521610077385213839540844883934562513252514147957634853524581174749037442159426149653254026954622582141195719493356243490402561376176384918582042153779135955792951976213695435332321226556374482354006050846753456280485246473621419178316493750367313318046895593896250336780363121528571981135664223505668951369267528328403539824462730532433316928337016496585638907444189447607652290028211632115876475217521840205187065020056929040075534387993618915266192726507207167402777886288642845738149287421010119411217315160405858419138608413290689841200372714536297205217229321535772720100184935947190936184074429998155092703562066517542189652590891786716582206820771176222965818463249821251150838384155171571156736317193407483129657871532520426325923265277016865278883223030239105536782345871386369061607042999662157077808037253368840274575165297133632025720588988345371419657542133950763701448707393164513881027999523735506380521724013412507547092172053219600092373101803521149523719227586440643206619938584071219975913352217445918189583883765548060251096122232397159165301858943663960562685103476864857724965949720310179623093966686369874261255210791002049492396513379454113594565975821823478405292620068786802818410561461675780888450794785163604213987951685802218366912010031057373785416860050113717022248210638680138548042738077237778629141656183027166610860908673774794246591023741972649871369473265595949790011885849556521103457733669250424363044088915126246987782641228989376352070700147550749714954770446572153001098354780151258217028193130384980570799101145607012709430376765682757047320992155070464996616096565693149974207000740769431047863014914375287829201433642014908112948610118450926773220492877196122258233095777205268129495930214065760164760421970771283733977169861386946031613293947906089216666986107078450228639323978285005641289882190971054118727077395894104227929886799562473121932399491396644329772002550920802249491645029119220406409096658111368964912149280487136994966459120080263674765865406902041433898168035062182570800781364951464422233102784644624705303679145972894624674663723456562163777738235633112808628937229928605522879486300580611410717541322581078561528984192169616040602812155697903250397717190259280104482003924858771555866278533399618319204346845721183728552960878277299064561184913570745719564318898843893892306430651570141227278095297324299451769485224528815598655085397561939720487739303688870292019098937717697101591775085360831781486096727429195945762125742922151824205505357371439534876364621699230641035496437060854616690015953250900811802284528690976312358338195712356756655952727339597502776210455416894661543282856506898550251147013956611981568406422224845483159523267545016501465424715023002575936206936506250543043614692509668675666958391408334767850862614649490905842293132050143266311412343273097058992484278531813946151698824515183692744389557617628958820477264950328795318639432985348432048308467898910332763537249242305919390008725855821658870432648627485090283340713641087261613756787943796040925133660836706025617778561120648259594254069779371340747763069562931763801659642080306279857550095671981466339932255806922784633409385814460361578347943976434289883804533879647178918280335280403459678681050081755747508478771000270681908498754785147303022835370055590772521814259872499172715406932728667153587158401711906428784488430616630713919085996161712875820149276152168846954355693965985933315847402519437935844831850844056459246364845896782646440623498869709369220596865970650474348955140492178994891374297703892703013525472893569672958221412312988373050164613451326489251729246021700151827349441906898446704118519774383166330758669439959433407783473957910569789448246855734709325648510577954070295543505316317456844134189780125415047695830423591682923425118681339672789910416398574147543616273398835315638315572770199310186069576093200405353586835690524678603028973636586176621366715591832277738586043963462900642673111430264081486839290907826303416043378623909973697781609033884690389120652758626113072172679304736803353891458338416079461198632635191745254589073759775553567473744862972782599706914589572973002196286955163814810331481020988601109056402389456969378130403671522839308150429531744149357268508768791605307048102346464643439406286273041525176008350051766643635573773769005689550603153446405625875807301812889223739332215104979309661414408754708216061339138091537943534208100741018727627639521183957967312887129183393660518353060699024083766320495123514708277531987804750796247415783590790532780214524859766475321282904289416185888263128350142607946055841821989719654449861604470914537739001970838494381230224342040833780985902907715625686263709976626631081559720074378701902587043403319444315157463282641512735657212264392660896984941777081854458570213656550165203140637908127576891900179759276576101586760637421284138284749432070679154047565980041002808333740488166080307143155417187717967389171410941515977833117064085269588336280777931043165619238889588435226528450629403307409105545296998994835653999739703019191420171768375328915863804794877881515641555620044915593664339063770154948047341501182654917202117075205072122923821037398218561023637753944464150202044965579361889091156805736070916045519508452281255289874663722967646914036352819001248670827231937190739200967628371670046906761558051661849747914153165015235866547995355649581474290887576844191604948038657134804967811886807689992903872698535714071777497232929604975136615907712334499616598984420188867781079518166330859909241412754526573553960191823362947276412845223790922423071244453959107731276725607568131748965832844085506538598746490851299346606950908258176978513799539918486094670304617314771684176188747889646106909609390205579634180513638005800218839550813609604646098286525628618562983409012367893162405525374195003643119266256749698272587766639222789611548990396054537779001806120780727364083523439482829143817946221429542193893203493684029586361057844548341665118376925609689815069806483423203140599052123104089585483025782310223039779785465002312095107779558926511374564967384055255540412713306965480971488448134334922544272642745488493737608252633464134497378123169796077649188131151773735376187399863994966630048762690512911688229077654934812561072364439892049843752958625179316241265954491980883088960288623497239520285443670230415681070238842327173953836779202423373473718467134507151405526227509212586731573654136751563229176411029068927129634092440681681847092399039603367119976498987893303887590536754395855976352149214904826568464691458749934987679883198891879854811224492204599931560748275889448048205401381872747242284507766846420543943690649836553202436946409076506359189014398213059164785693752027007294254939282174355609558447964020609906056137493605308828547477772323134775135952971066633797007697189642257959203643829018901383260069876991376567055246239429483621323031143773605632580308453371223567531771842077891978186651066016151737329632474528825345750940679413002317179524073265029782230680634442907798463423728914147873382360302211803331634423019917430867920911840484892023457389275814446406489442654039125305811522495944965114327834812167955995585551810411207417223350379925113158827148321306368178644391883827464538710130201132146386903861461053617674278370911386397937439437336147499691083378411727239551431185720712629224093954693502479065592260033829541048762958284128812541929344999816303675550964619335232820457026477015150320147762436206924211181404961793708373940125268621666662269950781000253705515634528500156615990968503438349230398952191441543704641613932799230693596810726887640892525585565336144029166199220491624050597807209132230779936628534736401523229639648193598958513073870769378443845064706608333301481312039903598220357785064153344406649013009990399672640549808749871934052218980620406554815539172731799803075648974494020589017841845831503395522821359481063270813102354867670931113358170992878571800472109184731524656682008711513601350123197171742250065141762111299451294156648291511020396927828941821209784982315535184371981134158730996241470852109822068692510106206079712147347215050558529759840372852372728346030718029040465278010805041701839812888277468927791298289596141472078526899343238246476674544130409635452333428338945240577002429318491947425241795897330783890596568245270403473896626212464993362401160258069486119067174439779427216729250488287568255124410421712214627254999670019915464954495122401687795131226767498754466142522127172948623590319841934566000196697449417312982143648220316636722256611008236214997307786001853212844312968818352753102420102348540315605499890184968057308333445245126490204692793973597694656790456849930049510867212563062791295945613337921501155729598342889278500526335411116975472191237685640731383168418268310201022257981613918792476294423967859940834270454024802921090550312700746037744737238328135195001028062930381784789649041727676637184341982411642833537762748056709862087413484998889922328450063580422646970154078384483031501620127274226094077503174811568209231753627834404038888869730719017054082192343341584685195050166426183455047627514164609139066014233333424617288857536542789228856009808982887415582965907907176480098516660700730174725849453493404512437141804749310315074330899878372312387361697551704371195717661828221098602525348720352698653306728972831897400537049469985475204005423495790432900215684386788998458713917710343925860029347309118604654575945694035099037325445963892224185511942190497180510140251772382483728232654795307526241230048379708436472429504630964593157517972074093233632397057653919922549063160968263855148569054177135432279950514366835994518667146102344507320789671716818567524383157193383516589013956431986222380789224754617518090543795270212534805084414510430186829837176647224548877490600348954181477629555622412955525880483687882646200371079678160189815313501489101889208683726566674814939808240056565819739939037269032315432051659918299004817123560706996126661245325057979845792587967291459630719398832575989953148919229040991328053751504269654822413268120024207484670338902909535579387066685206559621674202000586936739066135369926585303624778558266105802851448610123050138999869284622117220179584396237222435992989064295777600051902191345644879295953131343399663719284827972275260763584662360097578662400924998854178366945761712642678987685649515676752099944309241865942171718109312814089122649497869843574454778298973970150641081892261626858556734347408405063485192062330402659802059268091789281052389445841281317972382924569068038405364952469893978657209759334408976386789480528456710831252307546647712686687378108448640475142333790189221213943535091884021853493984943925803382603074679235176643262336179571798402942406635939937496289728530256705758474544445787853954895335445299336149916187878052186881486967201953544595166966774659696932810416090829724784779817615436380606277902851309783623437432037953923300033113350910778239514916205495512191883690959593109226316251548299490243361294915933514578146768317241831554692764493870352120971114705051811748416393500119600954503172340468557206390580248248701604965292132585623165420247613267270747745105912663731116579585749839606691008457450650456989023097132814055169857731875443016445135267274473315404410908467619476766358465743277522930825781349149144617957943667450234782680173992002729395362371202931692712351001373426498928527210670736875601497889342351921620302697259820236355052195969050446434164177789134369042672890421210042670269329154218453508305642653724751332462964781748214842602577387734925965595398660000620370733431043388642844662075489472908254252719974231438458024494675251883471537323784995233482936262619046048202616857933996588105653434965505504656095208169185706670668332500182298575091101142130565668384033501682865053446332615525034894893001829302183932502368168890667827556513580492910005749711223548387483382850302686671457377823671268008876557527658820441464196947639959542930470263385913851532991607295578523973593013891011169844729895219744308762614246026454690471714376110344479310321077207033819802892487266612032806054271061171457759811582397577591342518685439636181878523462885155839827086897534708577425185404978691395964821401270648780827092242264529401185149460407997571287652174077658484312614134666130718563465218559685082568355821407182453625705953729682011003016313804882353147105671839956668459056891335924060760666314782787482267722742836345225790880829231381562461062142573284320317532872057597718084043658426593508636920084779440342099755437820898714837687139032769241398753537886546044725047817146825924920623844313725271569027240625724346498153127510166770137584175564723765061415985801367952988828035467480703071227158415522126166779285839993960844562633524948544451257257189545370048489176696259835923347942019406061842501290330630085840720914283517231435985426122944610660625826386098158530722792802766615301918802769108581068220945184997078299677992896567529480356938831166048797482409721032989289282227854345789201735041632536547113126721624206917751782427801986014205447419853349889599675911527273741299351572407417074722790619842457518800002871320929020299616369301363617213272031983250485291569973715267925681789041486107560064596830358521845536696599780227176119784767581811841389899171579609070604989998097508899464450389703274596545915353588884357643396750608535347818893292838031986368373024368629546134033041643051545053262904223677147764354337351695257920081964963068533824056847547625917228713782387257978041908647674797986960424029377646003440762639802129266037944315366767886858642625062964019203645886917339820496046127913333534032583474148791683393549121560922528902227070903466103697261632281609990786974270206859626930954462006508008747486832411983185454367116383862238962951840708697019042329017373195898313663997156453724988451305230718758151018876857151666758749583474517640086251377516115698159754225845766055538496415097744607480622318053390923794851913310675426338062330006803241178806682030208700701282561549443676302732148151510635702750519769877374766179046454881837903151433417939622325342505814580348718637603166172457240940455807054031796540843662374713052888950935522369950679420764111801186628093837962569240512195346852325631144528790843612079024553810495912027923193845668073756457306807293249659989950338977188791684683024571428525530209511414675439146533419931430220730346161702620842368791923220217977153707008234679074542226984342163169906594887808697241991112328634789350128943405570851056519110919893339511033982662112734221295824922907170027846877242323740263633171610105541219008221554336641024437974183918597020452077183865762169224966618768702908147007666276867375840516601391419909751659519678846925613479630556919160485514764690452076973665581879912630449996000447473639185419481069176798856472869341881088953479647141108037755368672671959093368942941516816888016768969095014555193410726738216428245478324086351388184463144313743277917420661615083437046339162316757135325704805788366440548918905009379947296973372062495885558754115925223913211417912119331792684636271007118199851614786963279723609081549885834949906403706681657987886267993128176507773445256535874426701656123222170497285945135003980602289632499575217016488071723875042474830548765373939825970623483429824836807081585629736192276696067376803772951503247195610196579536915053792227947370794758885793258364108480565158174477019971744804321113545459886966536529313267058708250420900485418550386062323842360478755117577882611488764886008594734128596495156198600816202445604136501109380916608966179307709659906154607347760534663096257279961081547238105862741806495858696802169448024996067343592800103669851918643076055751294279765877718296148299401654999223096893482721046675390754360785441917028075451882219764668727103937942273242875819337084854081996125295774280891601702595075256732789129752393360769885972453851015652267076054087380961442104537640720502126762747796254874025938668449191966728019035095927334649356901872300394793053947367551569012712922704718852087382350579058790875614993443968430322262362729586829351697961852833061678321824096291658776668471445868595081268651321645538283420709537890527207685027325303922391743658012576509984141030251770412702719600964791089721463110298808087502422610637518750736344028003727348941960960305388491048247646350821408129446537990141173411703129543620281196372996958353634244646588021805155292788847596465173042245959937692037666748556436964715205198071503041612434532805883738455219602537092051246672293929634193228658984871954340381322130285230807446570035142911018686179947158667071836922009372115797736385267034776408551102379598075143050680875369410971181544225710352731358517498970554310419225484150783389033896968396538680477867391456188675912644330761223049027846378590481997826950423764399521787290626702672599765549497268883316722140436001557560745902649770726518862949782495231574755428710187185299894191358319396154692121295842603366607104637306729195647843777880981796885269493083299583060541072264757995944605373612680675708252816016611825747328942107303638055085510738554918763162511032973357310868087670846453549729062484106717839988841913899010431420311904492961792877124186722522282100445189093707788879047941870365582801156352760055875391166482481580240889553685769494105652884333086045433480559869748720198840305491069965139126821916382089657919202649188095706040276570837456724719141696508242805493189203533601255661368183321293570691450035507534734400359671693183486412285733754167427084760458707212785254966744187654079089742400373624171093025365894749801433122348955578466070880394891851143698204876257709343012563848847051483716716348168040102217240933165534772286842918919057694533179282457654798892242531835368582711671077639012148693927600388731512094301475496171395525352234887700750373808025515709811787019488372424558582301573991153494111964585905128488671368945948401170118500808970806897782073540060565989108161290386026299597080470245006549517896303429635907490819563050791906774983913857269751621194722582447743124114916589953500638716714795671486408993446940664788362397992989136772097646819139493080754377984221739955934209028329978808102349770526775678249667148164585172815394924806592836515869932086279604036153236912252024380836640063220625888099733871378583939420250111773180903205132355589249201139404944348843342215487492243405597647520442678580819685152805667587280277590538575432827937460495226881920246071305923553586494094982684060035509851546188521748611481939728318470782522026388736557004477385868362368447372933999638380380087853112912582484331925759997987110889357831912934281473305862635121032804164992575846417638996904738794869251054916258128945129401815917570127152522678613242726562727854706035101778172537842057017522771168973778415470286607975367553791946578320456626554701973003542266288136868485152850903800161028932786310343053450438657552421846955539494847319765499337938336823844001908885333190837055794307496705095425890529933763087447972741063341813133148398772258986362315802371385431468983955784079959594450655905789468668326998265790492788577712377913422800329438952288171329857630832095558018188993453484265025970458675975622368043908618784425519981084751683253364475619064889082063882977269352508835621766857402266417365486022938122041322551535214243772357421996572015580075157831104469392342769648927103083329317978182324396654619638566341752791260451680935353564885778299715498609527340787561184981424481334669528609575441216380210797616820646167100177185988214500521489510952121499576620600876985783512070655064193075574616110228219620389325462348355229954835438810248425340258182657255491863771027504001526256989666666519590295519496429008843160523798349620568218405500857614094254325115673349653290713594751053602892888039498216235957549195469625015729710743363496518373815857656550639149043618374188281187659128150715120431404211489726087251432672444496672892791262116166031741017408153355577241005319255816870317146553907172679111833918816239720496228041757722374310374527770325308034255752247575692591658037861791247108307691208781650913826676023254953552469360017159591818904858791974639170473793404894646012670181944708926754340308213300951640974002434765331157107496537708860443897437944348398832079143127062253684185330245763278146161088681758355293540730723018033610873702749144146706596471033005463951447869735090843817874403075292994990615450539417753122036908902593939795831711825690413479613969458333307479239308601295687734554017325398883516507684524433751176641547447270447614110684791426376295572593965319166650512032583715017995191015576121253576724635563543721830016381438564294067399662911538184879814928693055961025146110149297956145016164886298213078086154942124038882603825785261591974938404063345372593141012967873089896128208819792377871824375780982051417598780170789358578804292820239370705972192677132143656093562165526424823032873331447806335035107070793000319938112564628506171457180577177831125680932344407300993984090723694643547590111798344891154679420679981878928309020521239461662125924903981643523884037832312052729421317894924939811450334994267407186746399363307209242587929940158363842764518792364377970932966027751324840817709954358998791331820121744465034693459839391775668242608174003524589803654449679487679213714467900370859736877768189772153462471180241414845929286473448263367079631385504682304245800430505591576783884967183136139492094753885358701725311095494124211257621433901153871850056408605831797872789347828351929386787242171007426340400234981744427071277123584860666861877975682465830594973359183713263796217357455679627140831755712114322068141663651286384373473936127890012140011818594161232032755098789050107921131774877039404646493221026930959796885679274779732968148671266224631743880565366034320195196015703373321673644337885765896630357787111328049200464023482648100924334001940141674613732916060699292500601807626423169307132270490174228320023994218415486522324073959950282512094439895954355914386857506876509716289140332261635021476524676855897277610274862269281877223293455849717248080364284424294442521423998102706795883058026549487598423655457545192831006591232943494564849738725785210315040430772389964343327904130462870430762957514886197131165869280144365994305098181232914898477638048306961393492208449711705948346825531073890175433875297662530589833311122547797145963052690116474273761840608532070615254693303854863178790331098642596922264845049512454347447879545720146587339205964417705819156054001923394225656662564533657347195466032999292991805252900763637387920170170650415257464269108754701014012914849198389624265824652861727100043060783012749264019405922058938494371257177648002612195897017313574161773968315965327196456380009556583145716834969359254794896820977293608160028748764294626891099025012415274646709527155263120476307499586004745535210002252500060065319467130600976868549523479969390644789979815952597767610751178965127274916544654579176742374826639576126050997740735297358283095436699831975644736075884865104955504947068073515972703062276003449580688108888608500569760957816456239226388360149093502325505472673894875327400573859293842893028674764246979792332755636937008306458061410989353549234064094900931803810800479562429618917075063082057198616971174819059143580717468499223201926508170360436007878109172694774024222443114863938559399641724345267963148506682390839779082131472351060372167300348845004788726551214770156016381524472585453246796722244192520671205446432453826976428814824492928740221951209492371716419582794736443653004662617362635326348336036024476776400205542368559421288629522014853133872825289618366720166844898213873378714067177427892071392795534591475388528174839201627429616045917080274309018509173195702936613611702337832127796440232247862554859007017885662091908854745949564916669082057220249710208178248236392971757913252298407815214540943798214354791645306633269036355231752216895123305659164906516596835229229006262230421865909267435074675028300592633308189164365967207251003369420923172505909817418565655736478845503229389095800809204944489146401375693701626523438500805686842532838250317448311856981824229710368039653548882609379760551534957762096830151697104926680221549525815977243199968596220231906480119761375570581966913096547252200322412657493246732223815425571483469815380200091123163280594912794268976027577291435602475752760242092026298171375658476600012250648706686908705614233289932404952486905875596385742628252372478431500415873684527096688301348449502477887961296039943840278160190830890709774507021604857590046842314924990515867192717221494594105818430876135593867249448472030624328723650883179017838659345690284019642355698879716374557811807635153724440515105018952671534829474558444151206012721430339315558877012705434627483270142118664356975621431688482015197301931905290542884075898531980590337336639766179247616034070458864366670531347984835751598395826862466134732356175643209851673232794788162125289340092454905258611869856467157038724107513531550465188448238290172088241020597719418530305135784550554307272289927220501642554722902247714389099543931925001608831021663912681482163509235821242624498511035248021033415250402888393322581481089163751650495217398972779040467099175235395580355265023741196839594809829163430965143611895591533916722098188166114023334473535270943588292184199276873980238008159459527988843264151513516031138280599038011980163733113735809763207498877807409164120138731990078288596818710045798604620803893402818103956738514267416135991553319927403531734259017893114725191451568400150325321354400900516206719609690811242406478315716389029858545632585077935929350905899274435544341642610036040983645791164995683913472954212671147400745486240444732458118729889393156684928309875176970805676734487503983057617276466848108880635115242402108336896093837086842156960187747361614611919675971696517461591633862599500357672407948291411501869015780511706325242343002897396263555550319000538411301421782992781179299608472891872980822057114703343557667300114471214686841803180899339102884375953459972150607987125212426446540087150680741253444808089137429159079860689413625435396136712541078249848475161156081261489277944027493932692275288751546873172118326866624982706286832399179208606548671156614845654658906643230656767065311308065185467832532976205472504742623599577714290511357581651567094952578060729657132143177226275496344196566195181140531493300147126610927400955762084177486420760689270065427491393991744902849959560330232838246603324980563328373792167463012324436190563152770296549162319247254549828770843816893455649659240105643573074877368100204788592340405593825891644095424363130615453919612528179796570091834825705866902490980937089492682676161130195245032639325558701991648448433925725924839107890719578652754546367544266455366932460530418464765249456684978068599163071216589361573796379368312022888225476530875021774259955022882798123125122334846535642095589686840110699131094994954492556962846981874814691782715613832656648415326102229028500213962719019247243014717348954070345982907669470302061640645071794051571562232565031166595201169948208099304451432233916889952812446508078386169000200475257044229323258911040866568606677942168425589884582134689391365995243995577516904245429073702620738241290314051657470784630072281896583512474294288222948077566616106105406657215915118526663400561249547399670342011284169060120424563033769662177729333719367678312865350307315327121924960817707810636187845620999321226456612731500120666129725991795073205501088182280688424849179312275583595088694705407355654868495110203667837656174728746244685640752505559563010647702982003589747378491148578607258000073522774894410227914139489060037242734243007341807706667640669572076683248280793895429839098644610919549540404304055234456889812181607923314709622355648276860824863651721113266666331359267717497329713627530224925727845151805384498303622702444137461485121995755489657657781479038621486832412874355153572225858120812832447117281102390087545677796179095178483532524977893725800387279654733056977233352802788089367536927015688283275351747156747765265050424454777097830700485303704521416566919630950878563955696797303374747120879294449675895074691382361485652465505725964766050083451856397882309196122963604732493363949467106614482103507717933429253658253329477563704164524400175216446960919062216353498140398027512226005850649405555170308342983775437291004804735673131187209620828558594826740275810327576670439798693405004304130359052925716264248511325529637607763872921978077269150416881043758535696111545145849098430678093991889211102284480903838284815007278089035102035625062784475722186968370114406627116249316324739835926339258408577576519838228435191519568296377193268130741303707373455378550876771276337643481797709776851719940125692827042111415990033034561842199987298218315458191851693585501591281772489085812557249371962208100573244350738901519743924101542182729927202369770216182610043973597269619902962075541097405083053395801460820048013089988675720094319109033622645107173616917405994295242921808072774560414704424266088947209197937184814794925810507953338767707787940229921854003522508090030342261771764653090242876976153851367293129637084703149736218421291530419181889918636813206961912122643842167295894676315749617008773753520043501727585750624614288511383890377831310622767988651863938004857226622183031141461402371024610983297545789908104021692722738821377873161106205503418622318901687413646889458590495228594978051508882934301027661311266937594835725279118597535154233518959123653665423753314807679635167871209355389549503325578635408139490730260449533053414531556011454467181290134019132581185222283502234619293212580211500659563420302890057166615340903380137687695720797593285251755972565844346772439111668942512296350451474572253136649991945058007243106852483263266708191656740736948792351033952367262819704983053326932022817663503783673245549765976495816597169247487410204689992942342354076076098315844224710061761039190252201742965669980546280189901180499795295105261785505907017907937490570995037149422986129885742625929679409300119245237990738407842977584243754683728157006732339550753446653461301331659029501740046815443841242461651475004908409621452384478669604635286156002598674672412607234648244941115770871031867951278435126663988569842620387491516434838510853190919503943183517505526250231133762996835413465495493876706747579471458502758234241224352136259071455358817033744442585197604957049323808524265880624706703951753165967404892106409448405697439161972938469244697191027259135726665380312336401063167159443619091129331742412776136157296848706875406112954619026925481400340390102618054101929133862214765807345902202803096399564774050103669693451650894159543024244971853831885018571623645111759073157417730856763097539210549221756130609645041654361907601314877388797612582718198678787901933639608209548397420341638357340385032337636885170545130407661973273424269656112327636512707494472108298144717345314856009098631490541710737226600044899580367071222373234033095110141308851498473018912467647020807141952374354022508693567374327379679787344164553687612956278122768705277463550520918013387713767891038213649175184312503151507250783069030070788510715191727445914703809358994093610602692686482317125832935735335002058890851025305704540050033788812467030992584748002499958581411380930481433589084110655458561678333065695736112114180994621877787719441245220716970370864795289671422221127492417697423253774023463809250736389171766450727140651600848244935037714937433367405141495022975322999563210450207738533218323045898495504596092770915993335320550610281617643085981865092289608797293260562878051688755056423903725408871526830267551479021936923448739543771570377579595108030780607274789929950374373512515850993140889959836928573339201150805690533636521819210692472592497224030988173361925533518033947356358003163405468737842609219138116568462727119805055869021690466408464940762675402214141319284699655163615858517535992119974098450115761376422944299408622315454948203582617001541952228366998303821559522572885548025850114677902034125171734715762085062048213317558864048041872759097962331057736960638759785805556737356008452597767490110947574861053056150044392314537070458645914370357508210765465326540269104699126683646928796009363806083060245251353386917767657121272682140420098175422915188183314982337922701425852331564770617554183921926646182190566757578491416306883242120002721251315120848855162273484421461672277021422112455610961309097222824260651720580425653557889585159511753652518682146056851562642079164154483204503631244101079020295848560247556049415252694785314300495228461244349197833361494717045381681177712143448876300414130565638968336044766359231803535132340720020320352641699142674557728477140784793126408846578318467224107625872863044119163392384972371024868571671877353159238137510957760198136065661934137997553411880445505623028486965961453231390711702563918468326201804733895363209650950515704325307009457226212055555505099121263812909039076604640333445240830657052235400589142321433847232705375047124897279993837754497799794598229007380595847219995452241447626202094750584058386963187090800445298384121032580294605326271760039965697830106909034170232788280176303631866985045746865417140502676647740019707849973068156561034502102538668318153479264460850773975900095886883210853236739229207871964355735143390101848322898732283650009495028385720870111960665216097275953594502901031176760372345990045008819980431286421710694215623556502078893343565935981051152105801804948357050307215025607353314347410775856214682401229991070103461445908951035219928399058107897551004262400405672416096617294488608723214537887100071275555824031819662410233156814223598666751142791432518519984843743966491296915293348208770333535537933556441984686671913521618400414436295811030503048348726070578762297942248188878850122441911604735365405182456053248447166117269597170968701368272789267250356872683596696832266366324565678415863535730685668894399109800776465798842184856996837383480890651745185386480400345043835178114417634087507759090111106965961953742000324811872656799904754924521813160581652895876480164596519570830050640087659356072433327308598409834759751550586395396776977377928305727110569607425586603086159771075543161466406710853613455829279915919748054718298490499769534048715059319875186289467242503247520095239649660990082996842705587476390704480677089070676789445074529619500993134931281022497153463105894871564982725134841554136230445803162408509677819984440469796316653205970059294089932225948256198495386416907144494770053314137426579002784820677012721055454775770254638614378584909034596922535365580261126666338162283578727669820497840713163851136153943181880322593220647490425409747212620283434715661257131679475952531097834631761882196820247549713909483425224399935368531776438345482482744217421280882760742717478214131206727937217741990567955142714355668900541832735085223473496262821995451749433425832167374215054702424744751617511703636465266540010609744148509478152027956550069050651909568775192009226661142544597821932029007866467315603021154293433046264588585640925044797913252327430147723154169151976111105784256362215570026101429966363584173961259620220069454161939233849505213749842110779232054864112602381837757097830656584896486995721490202877986825929157400717942609127452701795942530792428642843983888352391481994890641564945690790469212751448890853442098717058847187798873288409174912891616598886002121891792938290057407743105534615238368106943432123137105192653532034576675571408485095412616994651455736317724660467254928516660246469268057721013177103443356237608937704973867320100794960606037382215380433511943022333721218032901803191763759743324947432667831276247075447476870260868579900238510987190360618407604081868910853345941045933416767494706576273014356503062903766507315465436925307233515759277175453026551720277063759183188450376936983273517447028563056647251184680670159973190784930748286922768702962824108964419504123615966467727351927181614538087165341453342932004499424255526346541029449804990391375529093541616039352380187282147587588308101836519677626269518771148627091359333361950879804169921770372151184235249311774635639252766319772154344043895044411311287720224362247549401387220788814695378479604009761172799152773066855468078703488973334178154262887204248266370185651908526248432380896717310589369598785590021859420326617799666285182561489766792771065235480776319231668067611901993917705729118434924563180672733694128105999105060971373930115464445376852616273914871217859224012091731807260396829611078343736229475818508660568932275315555698481864833664656894602548855841232542903577877407217256457748423592085822256222732710492511489197034542086234696686526685171338108979765124559195955731387133710385772205154128345034172582973510690398974358918617949958229808565710130844174367388233697248591285234731871933906900684930996623221745854895114213229822970807394890932872292371673409279827256779020507108464895152333262457788165873481691459785767983071100843572730694730965851102340145725039825701518850374886578942602284043394505240147398410104875019764884643714403846381097843621938467922786326904952432781788594257175995948253250411073796818319486530069537744906786045361597830826443799678207637826394855072984068220878022103150055970991784308691022834123782436731544534870800636035367468342170113408981801946020578306387263934418743588466106145642690394077162468632796311690832450051439876550054259277538568384927254908425137458260056828813220129782188593569143618917535828963273812721680662846979580295108196939401566171863092929922040610768237442227149416577843300695592837979876907565583413545269538144676662051624752823802633265104310218221291474814183822276212262950200048366214520120401699175798818785881681949460723300469644060507455552492326419938511967975774983472891884761888593859665246830704311118553702382078199621875293179939960083464095435534387393013724734183991863006062101437107417714854378724797183190371491876850861056783488452089537458152421144258362888530207285525386550447173514294381359064684183832677988357183545973350708463600210912351008224457549642016493410943016014175385915069276852980388032288473469916432103927235734490952615174134363535747066272100283084998092939462955442815216684661121945235711428404270097168037628047858450586800837702337540852054403684096796763404379285423037144923590822553030094380426094094695049079424610833936241783566881211611992303944179829596155419859204992670490364078757767497380325983669524148575634028933315639710013323122118971920489506527500225881852372741357775604406999807115782332505523228092170940620473486183376839135785198705626525891520587711777131464579645145781651771712305440528191534753430610455802997829282642063751232086603889482314735797251971386471565807788491006161679920717867098647314351197959237249821570790834198103983414610874830406172321380086342754967189451667940991083516006485596221468929025889079733825413958205843180637912048472728371309156624481140750521455304576968563642121668051016759478397356403842148836803460302618236848566712732059835198715069806173866885345244169457974265653206959907447872979100913241772303403850025312275700434385827830431648007793873789318170901364590391365311994087453030225934117863267131050945366191751279842551283400640394700588484936092478804494649798951005066302829353351354969508187412179172757411396827031379607712760996419455689755590447825763304074660398832103190682789345717502351551318183026921270473590423924606655652353141578121705229862746300298643104353248064927912931802432571938780956106692602724194567241271789630150723694798402636869113174001456925101678118902018019665393825897326973003652304350907497306106731513204240868321309306692929742508490929948584342473805625925676634619797777248130983190141104916394354326704257100629409712749887125950747395290293318376955978186694450738954269354336543731181535826925347445447860097373992019930678075826957653536257854057164537596566616248999994051262800426671246555134580071963946286403883036972304488433236037877530128873862355540295463492090615162523590590696355155988729897320546724750243598349545364383363857220889789833990263206113201389543218077419030897831567007128167637001291578393715016148839341514808131415122151414663964827945381938821726210853491708639669112962075131984430630340791749380635989857468487487537593747049180758244066259546388292157159674182966577255329372173204422441110298457756928611742310512086406286909426717669851227735932112342142807042799802226987256807428533770807951118151298281946351964489499081069211095183017075511259462771570988297798610911407140103993167649622149986121294969319884778511959432484733750386622005660564731137968618225124341541274764887898514219135736521673866886272225746516057636748607444601578596096746863479673035920927208025061723783263093142128624296145586377142143942280184366373952702905350980964474520316250050832935838906167255866017320274006514384356267192408891441782857685332408504961941056947916994954513688970810943770368964536369848317377287069164608249592911560684785313299710361373536983544086348724965214772158850663574258385577441786989999051218824421980111077937655047075252496488643408926936947460684329013808312411823964466155375160253604807854137356091408477640863541187836991820313776966099633414914075017141827763925816035464523404332378887891260499991155914721594930319746134233523890137697677124818167597526484611289653164082451421831284159852301403105625522812441443757308366280479673086649199335212261179686530530666945497319746986651118186600050855230488449377207497027329586781321104866325743756313408068849082699196085707237001576174202181895572484840875676715147986501617354467740075182908937000624002362488354405532203435643569247606682623707196308387694001255385604985652543957342888770540088906298990210061440797901429531270088860057697731757587169106429141285511147712093003493704012325117323805934998949809452120836720598753283691154533504806522451326547794537505585168575032088261218420493137947364470237315903982873211619505877010048914614220551340822909199779939128501616926955665435905244380589454497339555385589298653413629958442495115971191438715319418571059620521182913599653068816825711264737454443077319185885664202073293490863495166727331738032779706823649916649261502458040245778635341461600059223439263828844541375433398263325462232677703887761069509945211270023592693233265685714518946879418892234059434247765772202615303064387847647858754497279939382077806238673583648804238487471237975921608129598633355199770372661965853478205741823028939214997581819131162395311495163947523446346314959498838253972193699359854925642854473270598499537493018259718023118285498568931365182625075076019832190795589072182717871929553028991457192044831598765433236438321080527098005556600601645004968707224883413954940156083256681678381112284995837814495185429581664798217949749839634585278180630277048444728188889601722286279320837319465333413208181495786547564430365149764568903827568678560807222652841037441081379601541240889459800256929872979899502593227233088206479671032394288748611000367009910820598301296101207522855273284391843650944518481674715881753896651721034630681046610227862974664311671642425910981906461911710499991819699714282905320607479561981113362823683284346455384487892241769370553145386904366579526834278912401761884691623292476551819070198177090529338919649539684716236988729942719529236467530208648762205974295624079792865840181406774469894235661752010171076285709241777326437207108131623420864301021881414741184722398253238301273592739420005557267716775378562668771971362289325875103952803734853365521566558677751988132065854681266229366253083316505437519409383477825143461812605876639003014720169764621199083952047475689187319045196099923174138520014253263790854044198321330605738842212106308980767127903817907370608220751964682808264639051478252629160335607798610156323125528551079381273304596149103287493329000905877619268614766823274845547736963376366696606406662602088629240919354982145420148823412966395377190093320676780631954517834497583511509495616297396297886284957610198748120741279795895858814526704420967265280251458674510604154541526712949429985795938706479532198804165533531831908307264086271730493479990681047591963094351464051210266258442725074635056801175894289246591380694661832862074746728864556588484893304759662206779700065729266084841614848033764177227740846272347924017989877539505821302823313212664001393730361316411279725765906899507931062202686551301386899526885450096762892240093277645150185151531219770186966287363824361624560653861788276833064317395264983863720527226603974373708425668454082363924876226260857292989905682435842366474458671776205841778595414922719843798643866935786345502638943920726232954293341548163235448204849880485031774456499933920462076533850776733525857092634620115217390153622337784833054806514391098082325049534522000579859189040372643751895814694623043225942954654078266020501988919781767826410154616151879046021391851749023221721249049055779543978576801369615826304223248963324756584472109760819820627627487653466237827816945363865117259454307600946002160289314888564189140338893894950964541146124096865183816570138940638693340594854682902383453764583624601976945851771273447249742478714176681587738454316486712614942850038343999061127046837327434203266800604437093594563912024213936975312636322465992331192324753156077190685617486614956914246514705357547382388848989865794799909821667705969020256375313761721119571818239600107895640700537731157055010703544227058611868117362318286566063040429434963120911246335999050665829569470756639542168724688896121946035477888534120981536992781949179878332677329468828214336266829021228737847392313777121559731616439694136777410074777021847062676795853479150343581340522407868027584088815200981194525845295393083139257479259931734255593495966507727788217626020165444567237347421429980020515725791712002761232753287956318156849438511341476065588645209754663496278091302522835159997021131631395742381905061377377572026586220521173995866830430768860965545479753429042935605529923498004418630678297208392202501921413586474027168498259081554573412372747837380143928727592266187906495359146494221059698938282085447390672576431743197191002218485613349514488071853666127321826471519007680664275665624614296585859951247182497118730320142577349827012427586124830824023418128720609102653819315834856264076746361515123208061321826315365257493423536990454263441729606174890043286821369455084882497485779272192223441159649840463956787642030205326370460999081244189030044728343857165688764140330115332366687494559723905645135472390887010810952232495392143379713985776640196979481609121090531976424872808741497920734501854237556179956109610679198483072857573359361972221019729198939786693900779831685643559153442901126162008278183758395052836842661192536889916202643928336768496225837786142189594344520708588309354915765974715964635342176946987589673890199734414575791539818810959678308728574905221967418097044866590520988622695997386223347870677261956510571840890642805033928031712731220519027741398885093659116771353006443166321445194014544458042225795495162367527101146925182631013242840889803292744133820900392235468666497907833471577739432689275393236437342904182759509291675031889727557820553362045193149936160964059152425069961976534271182660868528104511639467657206322608185981575218578403907975239203341357580743283795846444635341009818294059632129593307453019715773320117302285623946139454626963864632896061575348441913444921973458908647760152511021608723803198100684567611336107688489166141249845718054737403755959012441453250962171337567341324337073954512641980521002473913422972276307042334574693100644673437524011560068634796416698304953280112877745815755447030636220026667625699151661784746293005764732891902301753790530462643606788737941715193274044033804856204309770255608957690213215267815332031434724163358562834184794371915441596752920321341454651554096740768844278301742638546222939032994347255005881498330575222862441295163637032730326255911329311347194232872623079783508438269577962618362584735921445087287027704937248339554695705399611194958122269291795763304809667262614128174177754561098197354988933250033844401795056127460601655304079054274083693948529179489342060714268921980646147313834092306816285420512198521694010773775643278684345692038524379884290621195453331254562096383485182885860914783512726980167809088099459338641319161166915617088093774850924525850227824048619221364128670844589893777989858581006464948876853173701499589528084877427113381625163806601455891014026063129289250367299450775832498970493129860607455840655493452588139294054676672888260249344791020582941985058032753262618307091061408562572966023100189477868140789870931073709327193149521594173015801922827536252524910142461905401541266843960751653175763854004540359248484155220184541762211818362281185719707178552657356339094594833565207316194027285651018168407692209657921584340682681617165780168381965859766411732951348085104024132082854094466076708175402452117670544342889223364332487598226178095791209884480476757796733438782214411789799483779893612796503795471148151709169961986321633857909207721719315855491231942070269572315169184397308083822864863415218137870156987197733542986223007002498225253097567904894859811751013594149975965029300294363436896687937843955307523631622118224791789288676771529961635134406352526377015044414386269779272994838946663735475252841290458916484232181333677403613721953978461528908109820571385178865857834685354558048832638604867307265064102321285970172481470999763438831523929621777712917746051436622393511841788325845598405695289549452561576298098534495694757586251254781320299857701885291310872762987377887613774770523495299596967589131152588210480931971302884079342464974506656972159759596866283881056144910345135453559514337625018507257322159168533302276189105088555992483222687542619451119366437152263966865399482044385316483460303640732827331441265086709652946900455563763268704791521172316095544332018280915332777921014186699616390164532063225488598575470455055561874087658249123828698349537128603729194549843564329835045216891603555501325635372438509087930280303447941672175548595041297741817279162814293900843591789326899206502974683727655535234818730450504468946769731405923139753298670488852315708482694096839617230912090569499210470083034659900729682579373252370841598262908907120380146227336947635926235610652458348130859911778107023217411745890375767981942044311919250690599707786253969008344550948698963536552026314157410501255671049267754954968409975013282362357264242333158893374398399630330092389827464157623793496180824866616328918967285275549526078334434669691358638618175685805698333485683500076936207307343991705358768681505374539381864582030644883337917378920798630995117106467197304772623939561559448089112409708674849914395876644252923872933772112279843270769862366258968346097276210084042596532101677994569962619850506522786638917899439481387122858807808839568475599109295922948176528543089856136094882428611741855613939368447355079213473476205187476499257038555852399515690175333963199749444127542429904526602425827495501001938062232564694564978692683755835675605063284486098581291263316237437771422248419293262001482947370278430688938627798426311526703549633535911878666281162383449775544868788967588960423844399043130034998918412845034340201463077668241268674465880464946314161033986904854698641740340424170520565076342622466446383090044534477349499629017101020931875371577818263550294193061354333338585695059983152744509357876932835583451751816985671615492168777459310142381811130515710806888372599921125463085912337294635895115690389007850086181646986601804385421413226635214073655822302704970030662665006841007884465815989495824471723970681344655946439171296281241249676434622115734394615374401414262499028002487374261672177631112277351598249473881873791054680996806156136003489670212810478500539189392887619638561022753797563469611988626914590292984097339870043304885666311456009639851058831777667547876390171863309965256838596278635072796462211176534790714279527528766375562827210127261320978322957541455051115035737971169013338349530294001806378946332297638796922453317592191522315195049215000839692761175526479000620703913626484551279258604101875006998839254182300237196847277731503858506068097585661504464001978430049907880904677789649947953114110790825171570380094399329944946241772683409238801529163979781087521621590096527287544547010387152179841347118228899758997577109940503668174909555758065285091068404479862855461237013690884627141047702483272243781380599764155579361803125614390160257202722148796217542951892062157194609593991423454109180742899791219574664822480422255578363309246770452165046388922988999571942501950586101772587550396455025272500964553917988995667195737091953363485949821961643382214848264420213941325413304983597037136415661026583642550549487908108853144782448023756588768971708131948846230429804813418655074045161988983253710817374666992974288444109291387146953701128967461352072116985796354603790012061034441465087059836688527456835096808708623943773036838705733301921857026753728850706161195318917483896457302757658450930456245133062204162237151409474306103818465546715105250466053993984345310964653549513132474470808091091517851243191556184690299819983189299919042775578650486150451610834599307609488626770998030361124436078460634270256883524851865823747273105416426216066401444516628085484153180360887265479568770918930028159024682301063476100324531488978514694260181781680581565393002421024063818775062256780305483118234368617608174419647641578487253056257367796141734420597837169525116716943644486229407487104205677254749778752397361450764906029763645871620572120615098767610585306128418955274078205188948663883381628833677413172455524311315875456579604289349965733285639205190417703055000028256011548774029264268952573809312000020609120536325352797963863573963333552529965428975429445750413943544029716316750642231510740075956570871459031898892742554443262894067795061245594298885076718902551286437743025534257247355828918187712848192116174692814980786349434257640669551854332294428961016453506050701184869534124633648005843547226250715195781410572335694249577777167140874880558564799219387591474917849051004775852166147798280447143565118767479132033872718110567708086660313586125592807276428199094634539651219039047745533964815484114328924460236003629028643984975295149182714768672923907268077425446947122990638912058239139831193993468235727445432585079510506806004956135814177961523072910897338070970780935374513467534357658017171996153598154967833032181365587511996092089715124637086992762984646491238123178159507695467612263520340388725031429067257968847734209352800611227047545492466502355887554548020458492654082517259326484003533626879079195986548819087666030386951300721466652343409308757109289072590831578282252544750968758431481080245966196272690794469830585542671024965594629568272567646234113377130213939896718031358763734746277684369901665622926696898247299615349679927668850225990751665423605026076207044205664991465268094597775756763877052047583633132258300806634891481998625904986638273762046062993030773684098054194706572434895339293188081457802035347499550439795037278351664635225344856401044117314907991116190066227230188139546289818488041005909210923675271988984414324719720189631597656638797348540082448866394582928539433676314278868986655735952528078513181578957735255667638981893258486001522270235100928835449219242618555487891744759824332436468084237688137178969372733175765190761238217025031907002902084396353133576581105024818184143261964804951528254223849118803806793536793786962338982197165613057782003676129960164044703100418788818777775149504678259757887858068099849971628254253847628464192723475529405518333582255571954989095048873508239731882766758920378117342437164387906549510254792755935602112077262676548873002490289094598147036332762496418770971085642679704611282926318750920529892551623827623201872639407798264101747315461505883585028310431314640818828445007986536971313364657684474325901092323173098044029444541865145641671125916697877356631347653536586984779285570705119470391424764172255574144938576448375552234490785432261830752131821174781593551530792718155239555232406610609311039410199677010780979887671741887776223888794805398669844425560828177770035106841677039393790592759046342062757534306722960017015642156269493165028310779910709682191197337810920084854495562718189036983298435737811517927319614296963227066624169286284656964474138002400976980594406650085809216697621778237239270230096437342922020418626473889899237947304593487099605312699797864135306476474659898344555134648617844826593180216379067851020890633532391119985426739766752845911235600552353428520174172063899528530921682429351256809336579906700097686108160684238097759132863149214937901994169684572344166421559090939588638589111360247654843207399868596012000833615270517244818538939120106610897754245933581649638887197571412897568977330533025821577019787759940754435427716370104122555800888142468390001323413011462862363437904603391926988582663040883443160568371637182282415234492179945776485823359102726917646174022680154967168139051379301998656303533734986492270087019995995848641804392283076255419931996196266636762416927003175579975396173802089414605456467022477624370266428448639197678037882650563710020137687048693734280311975009492539026050813502263555948919847587496901410367528628749166049282452745370797691741277056263357205860345483791489049800038623661522212839888814015972767866203213433082811133532436189001840216640862557626816754441825929311841101241279459035267421548338790013057060318373662104485383669843717138296920900426259108755448251807035797620968451143300634408902739145499845515538331417339852562427268817331996776987928849640605369664418194142097104859443242169076013959374324825262299871174835416106140792673818336123061512868565998051408859025334639191959454212106938363052471552867283705148606589122155459060081921667568847340433012614770122620430533137952246104993796878053402970749404045159914334741105776442192662186573102070381552970403683745696672119933134920101956265264584725776395577820995928939283219979537091340397854000376557135193835855518752638872601630236391978026778171524641051556594590108415694769109722011617507256516138046392189027179120838901263697178646565051892169893066332527015891476329334159298737045311575500773503602354427355057971478565212875026441364039133216135807085726034956719216858796736377656732478052932752067990236767112096700321360518786855978877695752173437788002766741691785633950964511369799890936845253839408648866391434171726656628724140352203210658427415770204992460434813847675544254900957844563977657046914457714210684863197844994179967236467606763010105974845949332540018269546393069816329730210776283810338609804338810764008613030776513864296939038530410394916226448448154642989712918294603571449221035839820139225740197069725319006939422640073388824161561064852865660205128850102323028555851398194397774162934338999458776746275714964403412813911518262389597916100773334421934882826530905987565749924969287744397037340165601080644746443682714578431700768568443723135685981533610402562525731753279810088407662182221124727216075029389474817665515846416897204088702501021978149687947782108425572352850528248991738232894628092551373403881929425966905166849654739571411307834260479562007702827481037251201593448504955943003352543056711965426015083752239715629971424883509633552421262460657528523864466891258120379606512867129938666672080610071381292273435237813043937400293547505664030093719651630758672064371572379894430905420765202017157064307858702735936638741753839845331291350588171676309699308908982605840239449365627825887061844373056359462071567661750631475934346379989719093821866114480256719929116189923153910935187291277188275299428188172401417703532280223656084234797668201298356611133353489247197242689357674162630773747663239767775312211030514826493933636662565950907797170805346832808807053219828569997564862260659025182704842404464195079282097388176926716955645909276890178200357885451552165428405503553585520251910366469437025529258077026248766822892405356906860446846142467427079603791174389285605870794345241906404106581797322457236253001929134328057082143222054239781577163843983658120824399642649101093019455554073842878778794641413055034854061337357243126457129636881601855542606639625048841650997436085944640357897428299510398273081071868338021847258510010214250979046872135728721356216051292741863539122639677782043618453593603774247303132009886600321766940065975884013953904850172197717569839386654512660432998996036181227071301828889021935086026383224028861071530028745190082263103082835126151436590692240107114282492391649523256436939158744954194707565497644492980631482354798073107277960082520478687610883978742206400080149867820498541878939969721357451816619488079842822901974102335358889733639789009624409725410965627190625831330565237322638562857345023259687073085073519434456396792280354810455309207491589394416963002782634788675507279770465855403234564270816379935530239205051702599749650017944111144957498108852823481157686560243591451372763421741445300716446623118375213543831099338312770455052486681740262172823460970255849330389618304433348477647108884007332005440176540368596020790473402314971517797071910312898231836850517338674741221394988910042040005503708586085729323234573341776005057172312865415338804715464478476873901980558736973340430498678973694080853710601606074227525557655860971570795142494181194891732007580170835395543223316068303510774634659852071174619006629459475211597009211719204929156380308960471212965508897914219630364204708031252223436834019813048143229557645165462627301141265734420631541357054770017386267669647800927648655979759472858383258393958168219608019485801266499720039623334424698275470623002909791855558967675405249508000942858178869309060382906515466567264506043511486331523894130209840490383778228403851153403560227139704020142587303638394606610813348330856228775851879541350169863643695327229323714397633834676243822733216092582138835076783262815296136296864648990852205156050176965347647148922993308768996733170831335667015890457795665987213029267145376856580100191897994073782141439943696585821640828211327293637079272057693981560008879859519173467490362939198065791326139354747850333637455152300472568450999771705858873603307512305948964647624397662951533342262660489758601487812476244386005808759341226534540170492223962594190399752033317152714913389585394122443787476520370157511393689420739076069277735754390824160220633074931172206606790887285480583360625350225442738549233970666068815092006517109435739528979943747204758937322780836873615824534083865687950624417415897654288615389281239232780790870411604687704357819531817684940859393831863680443342614674810711105262276904977589568383991777018026164945048982855869007393887920723930397454451434145904373008282496767585197817054246662916967867065781913169135965462300896829262996849954639773201864653841402507458332999255367527024957695123011614676683883353754688965937081538315015977475585664559241091750318397326846365568853490387211970031559640280701186202468232781464548701825958260724917238525663254813286808918329612060936642560146910109697916038861760596766074029825611521112937724794198468091367674103357215068240709840614469604945725591698407852785283946705015942337661347443840868666202888724334659124918664677562114801286343084641259028927158177513320484210163032754148419258916586579454071458056625937099172636731299868748529451564114405677263240033475124511763524704017706446980988234932577574904655115373142907370789832810181148827906300956160529532116204007647811846914522752988108158166218751014763799897919169077029835383585700294370078279248139533115738033155855283347781173855095472519461388970184083435693557694376507448726607531813753689118066289290196243081930272748192541254803555860349244161865429368849314968981236295590205603210264910711229103369027407853435295431718841228025647242595024809651551726667767482602680144563013681049314422370805473207589788589732177000908158220150788409037791825769288041619587846757388774172385181212843126794219592633950942451318458331105558544430949844930358090708505382540030792351102459079292781796837649310519231633512133726207009067895716483407310517520432687621806912225668269027579860187065997065315747476551860731202249446117003364728305939490893345042211298456820091966723709889398830070074389829229506559743649162351706089940885345167772923490850449275577558130230301428703558640570263587624569810638319228865531031121673411930894474583789939912524145176562182255553898394862486626603487047740652002018392056914767796666022316531691025007530139957717821346156043419728587761900564141927779564754547292818496008415830965929670937614072592166637932731911005652242475451723941165577109032108450709677503182081105865698211096098858888326410746059985934566459495561614552456486223460549505256369646578505963966674878521141887469713922229010573282286514358482751668492736379240724207095451043723612051080201340342612706219111128863203654543356074624810719303439947454897697616621328464530787461520764369762996593012083505491125312028456077716353656116905282968559266551279333495773229522915154956967270807976611608517727776073508087462429213738364577933667215092375020114239239739545397373309661005262061407579416502723090281894680148741000027918257873095440175745674153521391645004579856606649959605872829369866725870394291932108239286737012912176929505242186018753506135192305512552926337948241697416413957348360648107458729432968257549468945819419494131326973132192960722696907154150960416851897875140137963486932316757465277558287600517156663072670661948658016425979230071400174432688414162239112598821261754648674222141085536231672699453570863603264994748319590134259843745521689602034557392192391369877669563243722672095543051739075788830384616315827169590642292326415141947240547521217455715559772566696416379154168130965133949474088258766554187909238112593028825675680820640366010677544389107578937732489654807647322812175594962736158280067400284158763732820452704337782625715338132425064966954420664645799380991883924612641120814177702299741680598903901624710013665202806651997471433206412782267735574668784990139629499200744914118922568175378160326158432376119407853604182583658508199763050603800488077385493611785542522133988856442996601703938715197354180515623093996072435051129099775390343398864065517513020169756279425629067236691033517787927882307138005018129038826282445655718034910205064342230910823004320516434941402058031002625026490232906409188675806908440679424518477890098370486033938078466804650980353219758552990512819618563807580743368533777957245203987171468059544265242714891941959930018962431653511843754001254696471476047368101753412458215227470671775552062767202785311853001499109288765443586064302111570104142524113483629199517614700192231993700184800206919405125901494660652369361299850074366072272682162484777004288204137631133679413036941890724568951963036424429974078211826826738840778745008864616827776270014460671470113646474896059114771548251931126783342123696817308931490118233150219597910124313572178188748301048419157985823999296840145207581643464626737705872996376790820895039652468073148698551766266488073248152613115194231366230513313358502284059613921909092515621977241657903251182736630755120143581184397540777136087540700034681575147908263185551856191715516638537316688047906390036326440681634823570905372913720832954630858626765398908535758033387513340151991565139127988083487680206368729840834860864494652930609965198942647482196453474012260186286783727362186657820347567404590448328061919061574832570371865674916324018230330145297064742270305497131178681452251692807532676380895410397624142133510914037184379792328489892580923791630209473610824585200119922929856393902712361127032382792391220364399912927245001478758061403514662928613381075086851452897057011400629028329768593844039549469288696561876014339137665476414169997118416791252305039093931326098111047996206540882111563970232062228317044229085485582150880049693417490893028231335857728160650936212474794213553576694156875877278675739139646264540880528171616406261387281717256076434433247134401247190462915767114125762836568103298209294923904846602810223104082790162744734200138697764834649425728948133613184248109843917385468720572385417285207339789068080997092280958934264061800761379949496980392582566214784976771517078479014286499387930140356620407432227402386546225797368342349336838144346800028750508738038004347626588745487265794544590677246334132342883564883024879315505832425843437705111921666839560561228350141373940958782562417072359365566025953964173539022091889903102236505925148641289382632671275192472422115680343931210830519384381852730353868215856351414896908117023273604796995021348643699013690057137392829485710349472524842262794003680212454258401986362527800754756627475504332543271927110046425260096258403100171256378823565398764873198475880067453689837270062549571950899149274747758682608856403120463383577134574795733213410032815879490049705557906799090066946628301506911684477490030291486823575070257980530171358154847024775509681661587691858653281711002086552849627253637971755206161045956311813328650336027463785396611573189822982851143428511113642217432295713085813057202518418899683218882489640820729956478355249664923456135316857439855230138591401101499951912702013924041487387398956736902049679369723828402885082553920516456343497504654079707862007952942487865636054660503698113817303313945233135074699424127470711752657600854412345712701498549302432875467179849827968437875466357411299021878378228195612206415488535855289949745236930226673605361792079713262934344792371526574715176564625291083675471041327203901554883540837541703295503124309132896638982663768397064969714010626708656936044721596532626136267513438838087215486079800592358676497062574525946418386778483665513013322671855321715835808938633504227568475885014757842514458338138151936539671380748402004691359535929775570534069431650608149066466367332003196956910225898822903498367154843404041957287124752407292741712808216695574569549375489974016138886698887397382214714021911254166423475076662090944837125445938084233510855403367135877807079136626895836035602127785266833522426170721607398285787280081956080156919067643424790181353491853920118322330570658565269366998052778905145056682903974661594453304767815150353714751599656895830293336609027971785791689944078627068420467423581382094807701176769787521409290109163826040040168853537332923403610331928898583206289877824029965557340155838389725397483910564101532635794235080865831548354374491468427281871167571202320230684157888225176042670855696389148272307630634024501880715972067038729000296727660072246232689775864390314791434855084074324776829789317389018787872971833258805651401281998276447100707259388731337666248641161408141147722285676622360842924802115803670735733924523464654124460660759710874124970285875077693810154723625768535777420755542153475496025028307916344056297359586822440597922433390595043312283570023490392238147073732179614295739393327073528786090872657001315134506321973780188316339528915919933534729068031154723034178959243737675450096146350223811428364083426557862770983283087325430838417764467333021137865894746743676500976815352397582001362957182839244474903719844588384272597608297733517908496520416595484895265030468147951962985698626192525042908866030365298687610096199655978909973360896274371963726909881151102264323837200497853699928974539011044022094717410085235109092696509485635852806691156544621494682637405116211363763476948740793721743622527888045414071438923231385040580829320252442479667207694508783985054048740861510425111259584445519874462540164113366375154507530672063285272300395508727598821610550916224065872381709728829618840404191874665408550182162305794306349907634204975617028665519056787907298904155720291932797609856861503166539826171674174083178624432576965013712759442870307564484004927285011873694382072238459739608768476422877876605981077055373715214579203603883337078069633350624671520030249271616495990354898541535663008547158828773964829147096449240278553687237093057865445050858912011130406534562679964489712524517345990484564858412103918291178378896064769318896504655561755984826888005965931125955261787685024396881914354565848906839606405923559247878399976457947124910260263220437747487687118649851223739808792350446243695001766674931215075902803515525031652219861440917535960059130763339417727669603330325085185493600442715119738367375614776570193982960370438992363766356433096447559655337574710450548668965505166608108978749205001668258982970231621018130204532263705829278874500433097434038446960266813602943425958586005368308743957198232284684876870761315949031963471277251728247020432779453360004403341955572270634067990587377406300260536166529251035566719154680493914378626380106098790797101009145424393554484135075555075851600560999019738431726360850756609873706703202749869991627589743936560692978200475969563032229663545471613145685079736546565961052141466717671513951257860515121460769165345347687137763226871230214567563629353730413898461233225521154466083792253443857422173159655943211695934264058959326249909778353354942433183029946525594975261577379310222603246058941937612153258023000099611419027646516713351428093432636049903425727221117075211667222299219435036577652654832209934643697011839069450639854159502312595420270330288656177575396184410953315534766993002420946099466294141256840342808077610807414784711287044496936485401322166444822942729521047982371294302925029881340931107368110477259314422975398426257760087111801507080241657364098590560895350091508978893421012355377418638723957559196767798368387827152323696107263617633561797216259627490036729556656564298355131872377707224869784908389151613530853408421645061012780976071832873581119964914666950740928824980135776095262517129491346461167132577314769832771358172055334488875016515189276829274782468849685333161139300896640276187664863255132728909015700044125447870830032972948141955182776360042665863621425400542194868693504236693807996416119934266340750184978185623988395944883045264503099695238606036870306375503714589057409962916237128306588976629462120386677658526346203954007851309074905999051672854515318865933122135142394366791015229930808954636447966098610387930786785343923482997584801102231944519426692825104564469978238671630318305122446185302848198844490334352606724573916279260086625146906671524677457472053192375326705584241956494640510947018960402262048448893780892463975431882233234936561510297743907091787766344918722490493547779746520342174765808976481258200241800476985509751258717280180642824324192931453349701135579284350455074173031803069288446798349765138948934636976131432617498537960207816384781500732858259723344037418043108105217506305675612591582561074465156431930431033248269386983318689627479866768711493398079796399168477160620736501192977423599324774255470139414120840426626419801895766169626599657814254331195292100709447201029519693728974534026932137869306883416674930673739067529696065647854815493736535343418480458911395845452574389524898476228303500167020005690773456279586030517789293879893013269440677194580105495956845145175044025512252580438762156346255474678788407518109390230023494257404905340334875342182248713177943529399223918948792264940906306002073989645815567622409956521175308781596513536148542594491064145694557212493384074827635761439246377440691508463519764292169207046654359462590523987834856190295353557115940430159126129917395623783732969933242611120089726115862688752639886462896107236619556306569043452392431637965403307599948864528419037631009364473874928453850775414177197676946652984761025978377356376394479533344136189898289601515669994209857913127143833731830401087263292099748147097678849272290398914043285525233419002603105545907842412560044860403264509181306421299555615543530437162032170695765591083387047598908764270673111071543836532544022230400082968562972867246840140618242278973961602435901205455331141213556221923034638528788099306828500772702953106905528504221122090058357662698338765162866724713469719673865250477542652386251255312758404885022083291745073131650577566864345526434628564285948427674078263244940307499139742193879069973477027857578251947464607736142986442675650549604008821135776670143686669179033444195856563387130457496538411436207118227516350299002444851203559564996737883562637137204295032160303686722445452976822605764142952390393066213433217013443273906042776945848392915606366576497853811558321579931049287649263221615056562550643656814290133650536370480163247184741660438223949304078985210757403155388040900405680069346055729145906650059309204487431756980403166462996304643430274585768595437737996583838150364788337707955823851476839166233691086415461958564910641327828360311235586054306072855734314767867022490507458793787549251304766513023780497078922392563535729020090279924183936193172373114732688537085240283924983385765712911023184997581411375947116005561202313151099345122497386150413331693706256151438369772902697582196877862201837746291839311858480353370534392925602634517462924289702988034933977013931443807581749662100027343285907683269103507764921224345640930068381980440303840182491198358148493539221217621109738938783242092445903485183250593558472571880818397931047611608182861850644932982269022371468970587142685239957305088292759541912599049643940104428321410096765085909527053759652234392847300848675117478113998682543950222732264491790482119268774572200361396046519649774610619047044428531907377938879495321114554884994295618716645044769785265157464193530540854181340263455369801839374937063013814399415645034152009118409195299052539725126568634240663083191450797093509481091295610706143963283144364182899436189070891397509407079885145426230904471065394061699263496348921053057981930581170379785864243213503516977418761088464912102959928111355519086180950890487317767606240504197817636792745734881717017071870841308149101820623072674146465297791186077633406390922254079322816451609676597795790399084930643788464264468201184755977216122310172788012919581721299625725981570346166527654497483055338304446383644592138768444095407371208906104055670184202041962108325042391125044676803049235189656157578916608224263692865250005746139336212050035211481260896776856001638561294788124461110699917664157231981170485165338048699085864128899085368765253413519209405624133213175250800797715300296677245044374879574601253908232164240204203326292769550399091309109606259250641530294434823844676308085249094545714080207576840776517526220936514618854246046689869385846398579681832212572841927070152983842076970594550117166693242575600134108517791959426712547284785772213547432182908942012926894081996068539020416053358301895777182413668346656614971128706532745354101766797146618330204265377295504049633995598894050311088317182552008023511576522186751727527266137026098509075369777121658578504973052779675570390733500103548026156773203371394304931059191912355036745527202402358061744665775444071783532836692500575169843434258002728439778345594711221014587502121953309221747981623602054443319875017463038678448193465357700168231806124222630924151114700375357533404063134892058174379037350038933866522444648314393082667576925149830023071108470355966785134442410818256821451853901289570082574785200948740600033194995559736596634960800509596680822144482159483043823157335596144088134571670631103594704523943959389350795397919932522726085538273767548785482104079237423346249902057126403679781143468763744682201455918994154380274737945778355433302818470528049833840699274908288341363649774936110637024903652494729745698821083224088211134933591470058626085335013596075251382610166744563306894384787213880792139471577980770792312914042281485377320772776263348714560576558621439087332532871993450534793329987504869025170035945217359394929102325000970930185984636167310308668159880515063692249977690271595705692407786304315722507706640149767684680010816321244887962973858181068595865055103924240838583951962902117955042456121158928264310634509923355924009409570324435421433118749466350318227917607395456983923439038254048502966994678801681469029135992058735329023000595986888886962266980539044547472124880328682646333884985414582769978274207185097167666172633222035920713807443460156911624260223024347764741014890562200552921750602743158453360648814592494083201864107649494251978781497367032113432179894586218623467807160352834666579825217770535222007410140057657338260261854439689167519930984086022810199764451281406654944598023643758624447838051491046993064475595126514886719351169250286193504161462009314150331724085315166274497111584978841345779800019843248893426571076149806997454758022885936350388639078922450485942685751090222048855167262850567097752576589514975270804874200919709931873689431795804718097040714972178302806310278645402402573149195517073374226999586270467365771323856773650786030664411299712493707157050434570345074037183498148421698115751617428144693987450572023669532363337231263870516726702974777885501239286368090373368983248917199586013832961851086900433154776616313431251754770003607119466545132402455150442663327312767647369410907921961506901944703760105068237955519188693017334242615311588644006867848896731187941221048999067448531022517357998896868800123096828581945443546149634609545207001418337111011498201873573780155439133927885601503286799871836812755939522433322057787389722072582648524971699260950871408268066221733624263472063549523344623281793541400581309281240616200096378527889981647670596907791792698626752695510682699195331794747021052209947888166067118014872680163281403756383040303272469864229897425983781942054703618241896024375696137714004625603742514755836787014919758969167989829874258185749831780015123601510920474838375600232748716239419274837143626499316389009454859619844323199927527140948469630920411709266883030516007620466330743669425985268307068476501452183059310690292752462593336441260665287719859882128443559744806131799073466421323392031625547023954798027042596215861525076078401875053539904682334807746372178727152849560588330587741177403628617191800786959081331680107768960881523818075654012650643222513090698266176836172039173900107352379281738161775690165982164898376339852470162769676887110594259698220454725606199738088595329046759793049032261285209921221846469209413639351761626836232277841565394249742329061358641816957655169533477395963576563240675597227766490757250371243275921237426083356780284067177967415626132471303980145204285104275032549398831981536007176452565724665909407030910313249380323566522448638624053905901148238439408912830546902186144610162634081144914669878748395169986698479069922186071559933817069650594281822678615664721930927589484008522771149694329589087625309049680230926494355826861779571698444445892088877745280538975172304112760597105923457545667946820037915996527366121085645515303975321640865883003739295076337026304308047949564855498025836543036450622496565080574475964671336895932224493915569117423085771850409738550619368098026918096356264554276133257378583246437793513595024462772501796417962334683451066485098905193673973887837702368340813683859979531273752363906358479504542147683133242823443160139011688576843887639734984699397046126045136968756881785555643990993067118743873855652085652249065136651027900329283977369909699061862019738152813537072167724020727455650876533585357211906741189672384068608589487899142501150507616932714570800013023276715416853059791607089542463781779713691886229793034742214260259044989182226026718214104293545909524935682374239700542438427641034318853310455688868733674539906860107002472111080999705663049067980701950351497684545482214261653859053582558080680571168528922747483343410362534097950080900462006944439300798892721133456379496819241952454893909271056794626353513730630120727585341558813097804605105866718253634249708228519565089738224861765223266297999042983936209067288155167351910181886748092362408236318869308625905602223790206777540678893643466069808103789949830693178450063880689552877781241134163738425832361447517414406380914595676242319728544655816835247242167289133604419447700210043740657358576398471608067523220668576333494351395437753585977408376266243396224187219127717038208634696495008925280435343155638040656847198219484264785083647603979854253416817222341170595686601145738762885259774557633079184846760403711869935055082967846175170866924268947271660233565008336657236954080472209945521671556709033163309746381776804399634512654386761293833803239169736703943733028375835403367433885677245530328935366355821983500200479668597729688301169767008226394431997170726328140139777476262741668255279044465022029000872710691096605499019906478241773510374551715553358990965198575955912496313595274200367029644036199076239192273192191198589219896654277005859226854443150551959513889278818599707139630944377974829040585219444710952224085558818978908579954255158658951861562766602182596088216584084878820790568657734514628496617253856110813957843506942850271664394118851242935486799455200921595187661859431872969571028103621978973203976947337866788311992495716959605732003192275197783018823213562217424942016839176075584459385722193590245469897152541088400624740633274322532846278371095222742698589974315357564555986194711745200952403910895228989670777925795471768151146869350576839560233638712251871087211488476737559810552110280162890538026997093249351024141446997915363771014602383719021792782814206855545545443299890848961970361342752802150787982956373656058140217651527834966391560742636580794248192181964285066593269667822234094680771467088436168326968719414369945662342458830328430585748507407579655683856030254010597998782902805015643361621075157753420039868637205273035929658797080478197369915246615469589439542152704795872503988487025916461629274295745516933600179384695085371760713752234892350902865928807058097531161963067943905700049042749063023157996420925996697155718977789730788868436912683867364803495244209587390647531827795433564796997278385163186512428393523727804601778709744382337669075860768485178399713133993468191906665366702129160518437029759993667346431140640797679477870188224886386822616945871050114829421726189511780948929063163376801941852552576718885432439005370333265972306817978321868283153465288241659471388808445246771048579579752468992921479494189504350444831058546429955443354215100430001650546054429044353342282383580107153633699231671988104466624908696452760285832755402364582721353412115646790413023439823857196340782881967278449271988672744837252689430713639713790361869538332840593444168051730806455820007480012886450501803445770746999004250954873562767093804116973086465342503027500776453787113402838979443626101038806109363078647029354456985474553579055319673146080582532811327197969039202517012505922229144379373822742936836646328809705421116858571223440612934861963225238672703820792413753967099835594036439299568728930345020133736753929861375166641247773561468846165604671777709498521180747872531467005946224586472672196305838182174636780294633853381949901087351333436311352105829648295013257232769485720417688504096350334333989716649296862609905611365843749389928290808515298731810128874521142100102866774668045005772071463683423528917464720376761562990580724869422060555223033171386039298534045637446974594798989172760048651288103741188559806707164878137094546453618189512317115187864169888632785958841495687158830731172764583583993724019234333051094513657353235954953296976727925623179059342332325946166582586599025605347291134362997762023923774980370446028744659972963638526107611278228899953950917346467379728986551764948061266425761549536662113679091901411797060961536160584483749273079399724007093906348459919554474809890407021602151040924992847866520138813651255428578117008765933749036292341182017004721191042919031250982053492379443322850783278745863629751775136900530444552889430462050146688835230465417237602389251215467546287637508459230243187012374409034520189724370790220075598419038127079803770809989677229176145493899605910358963573236735687109388124278614171735031340585861316640207611927037074333250861425533008763070816377074573693954051024713317137948811043494616878964925109221421638698395521162336332249782771439764562717431642105915892739797113161589679794418030455076233255845824324152029135627700526491969765316020028005363450282239754909411988497598550049632073964957228282312359876822645394645896675445415835682384350603234064087621121948793086302324876583873441899987131022376381124982475300651323494327980000682133983657728984090741161552298536285893076869342949133666145153063199445829185200529111550147189987089691098317264941306357184894404554157580096548299751916576584242046563180380971142898290120571480160242839674432086276146758479302351572705724502746183015082512123589600868192310525786797250009223858129604581358837649650007084960149604270038355662268759561034853670710554927883611962100430766870986006727962190695501285233249378936776736428633128854166009449481693895566857607623688211556060322026676063726854415040686469270489931462389138860814627075286392210425581365673916043027335938318973684663449254086634639168449534322151925297938158666562726264404478577943650635993301711409327529226142739296617114250822564847920764233550333988257033444447398880375031334886220606432444625784572191538080966300682839881964054221379810473299480847845994034768623533587279553750975637375857169233077112244273272959623114216498963384076838429136401485072811638076812547315228671602021412147361381811375498196448541351189001869943028121939130565779021733300103418166030989070027664011412292132436595680991731712960302362143114113077561367176009773897432692684315398599884620702986027873844959628150853193991872182735109813954991571713764638900737943584602808877547601036746962955835693710318420962048016241776237939127708762251254477210906653047419791976679538513208408893175350727064925652555001176597603207838468460290329433294708983816756872316394666682395417394298088201598001724906396020018445680145491041423396902703204778063853956748913104441031056573125126134546338967826116248023958277727961830822385535877789066119941849828811986279857199018882705151949432533009793479781429217108032267716576138802548481033249155068418495099052676969998345366552261461678845346833033102257355281657999428723461634056624450729706508816351750271400832062890914671169250424818472648953316585209370083931532113724094658357794621663500659565911824503933402426298022746373453348689489130108907419963733643799149888861575540201033958973826677469934404638399805561566351175143247485146586724844155350756931631964734668392468215373958115357616616827886030293914190347713234087154566866478748594177208796333176411271016937517337440341204480636576989533009408993099148639575310789642110424598103052758648553176766658433092538574103637501319874081546189706027684330075071413655314928594267755255977144170088959289693471592854564711530317990153295525539661499347111028035890267073045102644619191510874907072790138159523945278577993128466393496897049051894818288373902982316905129049421232766910802339569844252313928425611909394285859665549368282892341327590760866129640903526139573905259862981177141355710621525557244701172685171640371231799582515247762708034133087025501417083984858667491589134795162627398582815991079168083884502208725355299914202555566997803889593320199693021434852176967720138008794530288834869803974207967458327247064617324910204157830852809020944020297182587683871917816019518293293460314421286655210924241584649163144717087674577761965004407468930784817684904226192263117477992378084717910779934926126887415492973487015579649292257562553849734915670126615033351321845473361866598620948071134089282018500974163482812492747963252673885557606039650027279296470197395619241116697688572917211359950175368186043736447355973994404784058363666578153159732748959121700541955026515122980066592222815326763936441058676405886700791823303047122575951579979289380424949443981133614839682578462120590081347191428537119293710415842482938536593499137608740697207526388880590191493630247206049041795251607073763359640765092554653476308679659038071416833389497899389485025125990609445321900564897195982362662014431704118833971253785203495400753013063813470288876263502914815362828249493789652515766297550665906943882117698809375774061211770242140825444561929463707920436713868299417953602908154911710351578210730406362833080995088044028104448653752754977701501161151002246373677324280175783926172531137961797430790610028494378829518650360379113317010551541630026624919239903093822073897374111112891059856657545198239603685626200408099602398132630732453965950468494823101793936184186292210270391238135936963873584599544628884555149777740060071558314913640390950425637926339824650018592336850805625668895549369760446972317514490862337287347786288888707164828433933991397071672163954469192592886784120199109423550855904679638937143330409653513268905446667927885411281002860475379516351706203447580627968803881496607938748091351051082064943408458579316231869452019542441964225402201963838362085063298163845058826034231803410228727261308780828600147842860358601378487625916937898524977888732168023059410983127757409886355513008339598095169704960285023687923841276967884794198207563491582468185735236705856889806544921170738393286208957036849365894712631662517852240846872556485787611979389619507358654596239424670186496451478219911454181661220640182046207287135870580231280661381729320245468230158026125054895440860775976985294270473936133296931076252786760221607884805927655122015483052558044665402487487205090198838964261074654942321302289189322063773746485360183283328882321659666240634465580676431748227821937250021427252122819686650445352618490628110940303001276823106229377724613658754449684383058713492984535120775765261832220400341875230364815721854949165250553902612096521110678438608682737920105810643499061107326852060259741536166144199728989865885931913751949876095501794170026951965585979351535662642957006192659966400770629704002813818483528847829259431470100138228670254609744743120663422592249986230168326411391225495123067954396140466832718308657802937965066425922176417911167616890612031724106814702477753116530844451384427352332530904943848898514490139239190297566786307040278798490273202605058032722622339502020626861181269769843829399156168016589059083373876290604220586898964466033338841526201229996822444571165052048508664578820616140930727158746819374091315229438575870261396715765266843681668128122316156507898188386226179693418497262637876590817221782476442589431391620888184433867001741581121203191926149384379037070037649319035698959532595875579887553216216178978822921277513674123018274072165122314345196523158399279808233213210642221498545549706345264403514619482322022545122937019640919905723151570644296931852973085530853768987280292904212131481960226057426117028603172550539494542115650005085960666465887868125965648853851224509352533276951145111637728419352483440131147108613415626553548687824003611204714069928215476686015643124732716057594520228715771723807488891122967177351942190393122782777521548804621607499076396376181818025167473390745129857122305631859376132372439125835430866336762506455727607824744894527212510665899338608650726416381092253099775552676813421184905012851817136090512875125090186024606173627658385117045110658174284499787796674138950489643465572445639601163410077329162497216674976618940299649772780943902004733765593044389022271697312919063967975356765200070125685894684465637801553420836255879046016259648045035967939920668704842168337977187952315288857812674218749720853662757287268999042135971737006536762069213032198884584421556693131604116414760277131261190211624336828099176280399343489006179660447940211457022745269404166301767651465879058023413182582957062877031414572593200020694991283581424205044155804274546095459371121087134095175565697173469256470149544823649324675020431998709502179908348613119802967061058749282583782725673853228067214527126518705718923092344573824124958484905274827454804724433519392032674047867203051597250512486386790611213904066950419686181659516609119371540222254917784530206384670145250255960565405700609975231364215176407573089370016875607001445195539051453431669945525510930646058851579309632186261828489698760690372345801044284758175096130376929198436660340309436224554970573750113723381779564111566637747489207804196818007207506472165927689747148204242572872553138099793010468741225427966757809349848226086084179549343875110981371344174060966408632316051070786190855480461704135093304124682805475465953528225021376534513418277286356757147475667669814103375562326849046113341647159300487047871342296572358475784743847836210384206330952002837535299375704389330156609923463688065063570799612204271651091981703425848385177296350617329720675918485161498106505014790325458148020791504877222607586428109031752405241110043712734872598621688649786559879027090232951865296484409521705364403356083320776855040626391933708493476312796882016292953138167582446173936925636700026203604673793176461741041403676192367569291298723198841159337045026234863975044378983708294428085652759550188397905536708286908022445936894387754350806613912835154574059504714659620223784330543044459938669879407432912709898621723246834898986678417461186065551981388762649573536764358144581049090468950745374184995145660699179937417461310991975488160846238746829477480217231155046182179671272658770339389376679036490754560952255551777761808332837836686619547587833213660861394458903275498326812109958900615678278477126894219275244814866256846123398905425370675993954562843449518337482731611745601373228051908581576849171453297728881896432619193637280951512436912683829431330652331135624954533524648622784918624759979339121894166965556495710613397552930225119185039485350101265031108197315581530720738986993476642885683634904740788362845082565755307914303745670526423152323283005528611422983407503466917797836991353223783253046065320477360007691221715097151226011932635249575016662894066609536391474755434333417243103050075810397979788213223505212172274106477616546394335349106481075035343260196571131979677630940562818586484984111771050068450497756256770441394647853317481658874044044626341703369144673331908541349454634170412628498354098844048389147894478543074406568202499393802031852110163117016002389216503942798757875659719762225946978223513349337495935207422824793071294827086670215913400755567680987697597176237085661093558999435949819714311666326783330709416883791788047194146241176821405549880041694461245522348182356525141274018615366770071299279753431240073427294113775236666597667562117732836966211119256860431238885063680853790015626954233189196155784089238108568107781861786704842126983451955719154931249306563715441274229836660560597150112021208170312024449466219556306451694522911262087006584965335004560747219369141430852190331776035732803229734003524077550029566180055678116975435261920661894866818719496957906768873569398840471107893195368088548278753461717562997967118922117195747190083549589523373665718591584539034472122280686332650794577059084377332524506661001291851876382940567329755039370085212083724876000969290849669998788371402651773928739439445448750711747937533970136553143898036453530725967461010873057903380170612217249230413410369088624929155993067200206330634911887450691858265847931143453277027337952218254698171774681869037196852409495256127426316817635389223793753764305079395224687910993073151580899112585485575714586186117462582195435799237359606044821736486789960913675831828255132917410310024536559620495913405415043756697199952816342166037014552967456957599721546208465312353420010845171758244161963157802794467107500409677452020007402541937352728842669275834619921938767392860238080590574582086508519847245440213254610178616023236989977756631852996416718587802881305891393352565069809225370569153218042281493305976805420648053481936507427897224453110546618534216016609316438070770912745198344038632477556171756905356285571090886264906849348174702054919208143199902852526549118799817910197612366692647622215973250825256164859689530715157037454799750972818703871109539959207037609123761435506499128897996204787618349284405114609987012906410025172590618015661684319228178759167257078050940506207044172390085773005653952138373492585309962592774762520376491843951824879104236897694852015544028366008708961554317285606845256155239136302904708444759929848633252271655509916056774675484434903477974238357978290254703400452199885847630519496048446198933767010419995209021454850452913948864699778543935075500380372566344916190541817757343624145586639071107866701624414153260539233257885762071775989494517500224569423627921013167600400988485472801939998570236409224093757842117834766533384779271871351975641194512016566298766678013712672374879449090166747781348205588710912357645655799390364988384593361265393396196692180152114795634913080610562652766340596469131805072687762042462625426062001410381328834614308964468630187338342258264896836050387970406762216380512102409031407618639955335502933777556784952935067404417385001792088557625841752137727745498252980946843917811519139765845670655442249364700871962143757039815456223033557371625100766252562226731859610867976656785018252135060222123948291684898642999870556562527973495905770718106020811079529494784675212895986975928073061994959955660941277954563095484191982263008953406693523438173237821033076241212022192259411235989426175567604234466530742724944693650441117198501765512572059757783197629544885689423109080735158058037700732488538825660546572496139898279884648641868137504627247600643590937895542541088749964948859323851661988118078349722274337271806461187553463980523302143772060207705828602701251261130832335499385047131041219910677371252600420070897616746513941771759129032924992426664791125427064564722783690979548825997499979242412612901405322176356911232197263112923998933946230782085897752412134296652883196947144158546201626137902319924038427700535684839221611680266390478977126122947131721741220773360505379997861132944571018985365025684663624123694643963920532804736612936248510088697133034980167364335767457809279661108757917189932952176562480145415867390584047101686259703564254153042520820862672744706333937152203563289031700820524281052520473141781134039512809923273856953802311301062856388828981683748685257479466549564380125751579048806211284865594428491571443560149085118357952675043766851082537768370817331611356955015719129829450796739299471586455597464419873516596772323500490408978361991106984329398275514550002575358284413905337875098280489172431609277613585697479135584030745972047585649639897011182448247446056299132283709910269321248225800364994457534222487379940826141333007286789095212686381144512219379729967444685044006627326714735470824086710573398928415691885345391492254636723948847316580885515597096610326381671335937811462149812513410151033188292723768624020852353543528395415133281799759054363342459638998451516980652233993898037662926027474163449637907538325021237975330714952088678250884275145600933463703678438929892368751665862291097100953384219759155247163304488306164626915149961359630263363017069047095889450659534279317473649270035075334418845278983916788166810540152763529561186844646732711078344350696872351410260135408032223988752381179115809584593836752956375446659164557141017032422903568159120198211218277197875213557147713653232961051984924987666002191164733884292976364170293021483606295927816194723918361751319697114847362294387368466404109441314789005845882084478432903952248271314343499332213763590039376176425578677780595406569806644834559353222881741640256624055825018640749917951064438266895458629094644088236439806380686317194821386655423665024600875512246866024579125552486832827067154282106333723585251485748290268685116398278264368159317292557181996642198768819865063731711116032742800902797002025681906462970345456219457059933486574123359854191835983429326984543608692040328999577238515570200426791104101608049916471893152491727380303914823848467650759519456585548757839317764057514171299006342333440151898773074789396730769106966890298840211634914492976849829268408076921446968075390076766937243593493136551593541482261196458271771154867520450116377495489322435266740622872791454091593715838905364015266973313997755428800844920035782963337700453580138150244378323822513677353001099274642584239585389617657421607990373268122984746002425519418295731016896648647959375450475472280519034743948039069250379279778165262599657379684329892256292493488835407531048840657630627514501391058897657684331930450763366365203369218679757780536511275543544606801770811665475689714990711509070158028753232557970974067200428578436680383780033257132708158368770929342870194477989602740776903742435342384082234791014433157065682270977212573202131160687120481259179261345238542108733707501867900238943823591762238643453555734015299498655599895498391981181647797559867675937321254001549905252673762552267327513253586557466398613195976555131172310169086749730319096744459901411076322657715314084922911355894350357307399270966117572289026864414311110482559880421396924197770134792198635962300659217413098723927633668065998772834212677531716051927150158070512637370219373111545689496367454401837403773523873933632189393853330608278326378424667468805712868217102717015430978955490015279976268169955324212505819543709592974878565583873362501835083257925973689648543729738053697037911317099458134008150849775739744877482496782534358541407166612118796305376634078620856156068010573335660843254457237521746537741579934120032422383250940051593076913283810760172498877023448051169281060338733021278669710701026713439862019884809104164842387870767210789667699927523837970243765790269314069691925032379369831349513905274005088483124615801030071231983138865799573162454085325249705585750190340787324717870539530092298084827574871151103194464026346402734740408344442712338056830864561745822474612344488220869947185501494275095929563700860057315957179740880543535941662541835374671375241724746270065927175816773246373590759522676399114093575843182098689344108343095326926669273737377250404581505662434928395718172518176396211831579243427373042389422206166701318239031007592903788992561411960782384714798783711976237528996577825543495221575354558711617392871123541329714755088449283641828132387002834139909301421056438963494007659200964283314242200694610899713482847777421404474540939184239246135541852980119291221271991660771137130677579546775474472238215762386617455339801611912552298436265048137917885369451564145031099768560646481830034129058684895557041258747140431350428807727322595677364850522919196559900243049175417306088331175087676548957052697560893706801105604340878945622775304359470035984797138700078963430007869582644494064552149235156833857260715644799447139912203066906068022724346939382262007613074720200358858324458522030116162628866684632167346813586953361733914458387544593759557240925623665284463244491853509874149311255256348683105403852622986075387791309803164856858305569968491045318781463971725776718635778000402917011998265107470341165731240655655947037756558508523754888329168594860506552612081648940166575852595570961401092782038906515234225199181397972075482172077640626931606924258981246606647291174151363329090592824491511054124171179775090010913583314718956199230586359525933189651854611662712221159289797249290798001022025168798176582648450403288824337024725495833922892415424288216934299960991087136001531899006508211597182766620496320387371073980141514305648055438720293602632215447170917105667519550010806288363761805913727777162087953501170671021644521887794864268666035589662428227788186383608928278329472957089132116163311035567761136982076198029686817926943793404993525901006606343860410897282687529329599442192075279700698069810881682542649010620196058568015500936024823431511496818469830682720652516040258359850927723833317907854333193128594678052281684682669453651278949013276871930537876147819862157177926831005016912174946934773093877392006075856937433853019154715588999050899808003511412024257459047226817324429920962217101258802101772239256695544182906399604640651517554297033876689933541977697729795031529134115616978141651403484656920061167682516499989642344971662587497873465193305795639608464018392471491488383447604057989875869923824224601009565031380845398241301450826455776117862319567022077462703276162516304841913031392557234319331993162820073513622952374683281113282184865494392211447925782005615982745637707514219675773549289010395702766235791765119355407939653689047561393164667649923108123783105402419333285144952315674895130477211311630501352778857944291181886086045282978851848487474481787342275581878633838747133486652639310276962841851753658696753306034715022697521490558724893806432005220829675438177113481887465744318240108337784088703403692544859398732529611599800244472873351321615270594201504888952599873228570382685251868391301099429362629391797037796126028548754851565438949619412140425611187525506735809007583549975216847259016777586316962603300016749674195525048783440935021020256850400115512344758965219038382024659884655616848524466121645088210649411724311694777760716535515222223929466984098177041844518444160619874421770486206666516682510521285444818335396295645504481735522028669342452458418070509192334071738321209966417731192135058210271774103245751457549210831471184120689146947196859979188292217636191371635848913822223658497106003239750002162725510865995550210772967594996700508584902624841474708411091294967833050957614020840544368709937966985473229704987649653679934193464724651120685007341570749167045617799934112024442518404730115655129136729211362729677941226875114166875215913997055463040308826575327747181023333126684694365388475344656075363871268838590937015247920591808396648482658549314787555780609524084763406391396836675547774967619627686485424490100669808983236868517399977897778099586459432136742673714959870453505366368902704286270433225957719226187645868147919836289346174322626767858631071464226849099950261938658101000985898161871291018856741867012440611453173323376490674581847154790670689010935096443638698660965729493866358195534598967008245208350934929667494286341943589061810016676623555732685971709537496425909922862253145114961653893621204345421755068308106191684922507850983914276664519115415384860594681453940462440476757616099716970582357847532853522413491803619157967332310170623042324195895882733367588309386292519884749484606971869544209175318749124721963655775733700006211709080708696359957647804779724965229464402547886065049757616339683905372557134597087597198043676205843306899939628631762148541481740587375579722670925015982295962121031128199644711120747947561518194023141064097028199629961317859207922930968160502488511170095677827980418341675604789959527360011138096910256113000994324863648396067500029847041404418332683017314606820281580313648405781135174399322790726065790977059120670251666494298743032298163185935389954751116621359059692978424616505709875788643612124932789477464545265951386122135237913851963208922043840555472247049177731602648523555308804471315562593157189349140682481918791749208817713092778445849323306386817439902941123287693330844120912835980424281700169592487093586891675214962329902779700979329772111904320356791838200431724284345917093107869761023455686761622107572921933322028444811538037693948035504037017176409617224229409486471509007932506866948311202098338438642407249418294849311385562396536980588527363095265972317856335805875734769840493111242636263885649832778177120569057504837892589415233553351418748733725138066849514101675992411294602897514978367536056579965139889286135426977239416659702945772990258372451454309717245840036228873950881328215103415502534704667025795551598779616405439026463719896452393575171980330626101505626634493782662005061248035499761390298285050517055921141098426494494018857307665447935497953086235703249381196590128428829101333454161885236696034976011770532243837595077448191176636888876941134347570124110835877795451141206293967747237160584191462894829252784932814079100907438861743099968655180958103043943247632431505181705688757775698344882044052928024270110420194774805837571331016674467831838520581304264817177971192040209510262569024791275217646838962002519245656352507900301313889085391619467819161106365648992738934002210994279451470471185829653597534185863879386505512218579612074572868553017746651716406392563096769539179209664400675868854443580088343347197841551011827149239399114521055921717660221928384688274895200037354509570205348674300581501699930880086442216225909920803350852037132411164116723675740697960387282042020713171829659482126408635989849958775640817610807923373922434676497497607399260839899569107289452172860900739020897798910947126175965196494375098523202629044268518072848656487620396954065931438594285422397671352734586629009885257569580821492522732529563226070633018642655896257001563531108933688460212520404427960415470638475139090230617636546362557641735974085127580198811532423426796383686216726478799335851737589902315438000837974338202074475873672405421236696045827703212031378540112319299827535372292343674820904889769608343147871975136601344016168052706301040696311428170666665569872254441785040183413844974810584632472156149137822499675637792933792717607459112148910056999344571197458567109174614848439138520730326134477355961988771185472990678688942237006378974329496289742687588393637633472483967468158125577503727317295850574041370101907118700489356945001683984801904812079523628255327519158374810940997613968225433176306486771561057359029958608037646997906495112704544220690035624400165226506204391153086647334044656765930089269629269832050105876212121392811823603033936094461362304910591000770887339187653052381716800984958494688494858914639591887917388555345940465900703726391400389325334168547012662717464764749798686500037583816756434698119219269110465242547839790511185445474269762864995809883819169965152977863410425580171263940436307802007206295172185455647011195082904258472969116738270008398582190446936288321557259032216773114713252379803211414814893023437521255268812918082133246584628468597017778495732854410109071271540218685734546264686886428654996065787590351054510839864883474846113250011036933907485591951094709373196713130195161712312854197081592684736221709531245082301626017776632040946151840965741520812147268601865536332453521598965640168751282451516331539751785150670615829638472490406104648242411603579826633036138519759236936409228533321395762395778584645361765987084153714025067448204682857604074430726488864987381125515726876780044987664979923852550551585013605838733952578804884607120672018836932757889238269035178845379274464347282414182467262717240400348190815321803306800793264153652367251499511593685634427292363938225034922047523293460054004475685456129762407719667307986526276808218210617740938676841429841785381220411018749392902368025379959793243337391196352168123525996303617173473623996380589460927753883151570245207986380848631981835734844342290613977365512317405077834260617888559289129473745507859736028222724196642364547802782706738603031018425640089748951893817903439154873582611313875040824722650557597255808194022075968633464671732412766524046531575661589351198122450886033554419848552036871028534555413616274629452352721747211411883102570450795293076502161930164157262862383681582259515920891332434447737607521934270061637959539335154395923390346715507297306396456225348302853577898280120453969076056622712841743262553638272884489120306156678019958435072705676997835282936219332494056686898817257262580111092790768401449442867216503271246118555411461508508935412206686342314055233193934481825305393123367108594864657605065520963458106443689350209504427788951338841477983756839527641917949088966977672294350461469827356248467851150134872111155202769231378670078809578049707692998443307914107110239373496764859551746531113343712875472543418107673290600604350671976997753029888431572596459468113321350613942587044071785289509077052900133583341146962963867642481581648242593145574606401650557619223655290429590738851934660721867377301543206854666220950930815582606474212889426440954354268001016605673223980814804126990523831122913455892673400317057741194821959664630300163261402896253998815166112102576878164341663755805836033566483654067056113114655240238187209561864364732745521418941303307698037203901274942640981457499582828199475301609941981366314555484482638941405577821069017264970663815075792728612575150565715810898336585793704627449854840811819480175033212108879195958966583143767647135515605387961996744122022666453780539296834406996987600033539370492901032902970566081164859777944560042817591931100691244058263008767093702458823723112152752518909450178274544052064757274482643319104414309841422854631477255794773553079065932239111644895542228888984378449560779240183036493562121954509649073574164661700550512758088528288114782368478569414409085001386471810249261142103441546361937431417982902895531054130082859440810328824735972643555062745952743370240512072479774794213594635880411157073994390801550427237102966014763315881377498780906160439858596391608549392821837367840138311144479529996985251482700621702913765572124399303952676047799031737860032893045725169770373875727575059125453371737374880193315834073034693797726042259836078326079888619402580619158253344091951548885766941054344770817523047101131993983339031506643241038148562450680469851756262540119494432327231965018638604828034397657114552707427464071824928722824571775231219942572075363938514184412938585536386384527945062210978603530071768280722040278923564404648720700046131969453320745393791074761026904013037243079679566014455256545740050610989335845608811766367289474147077026770880880140860577967530079615931942848205674548306667475250745116879517496971865103864089815063945114973285582632204960456630821283409508634927039514015850818630848022607438135775066707691296226210827995835609581521915960748595362046452110049100885469247761139895289940886712482185892099056051745656449000822143766293901158418974337490896410704732204598518157026442981901338100311810725106665886029207740526313314892625166220698594792290487992472288524764902514974500952615827429001348897485922807292553687222127951342672151607841230020934727162086875122151361719491968402913275046625360751673955062371401582338531713672966614407144419886919727395291480964774950866549336464833296972934728858960446220659640017889946994286346617853681656985511773156325959409997825934344355389971433122301338738419918001229740897196664704053117497484364593893371096203690886214376482502609165984001590475252877506489215020506801345405510751608709858201075466834595272435822100392605450963030588367825909384830266049352910211249403712404009399189317042105311826192489708547302267643235135049218843487577648653575102274265631556065088050688499445689528906522529065881105708301740687517998167859862888009364045515291247068001392375715138870612264568007771968908597839338515646551885606449388946933628512731325939268515558603692049156476460088811262227554140972722655304962692257920787876730378140831622102373608890491827089868649364338667634473370918929228789455644044646018123130812095289344727456530626410688239104336627713613313209073533318682665563993213569711987488903205895399216268599504555048301418973780556215949123646536460800547729304921732527173326039770305839178098918173053403991935285226029890908637615665646831957053703594339231722227355955961118571064848589037092338233671790830509601128397467818028037381857286128501030806629610137468390259245177082989621848036007095398468289616466362746100924827515459122330055685577399134831745903030284219496603438092213733161311191091162157866050936703696883744476920392987736708787103283477972613141380827374406452831701878887059192996997298410348108861208059027280688667618670074333417639931166757416426075953073243619291172978137815353070051059157422811248499319589269895624445244693681412715283021589451480727751928040145147101233233757410760800325264185358720989394065453046597428795080954387964137295965457277190289971508868633075301691606612872485048273507791951298301672453019494516751292749430042262558795323238050705390524596763503648184026067986667480303525194773877674760917828984593829849157229930274974509674218884957999377696616537264236326703291669534971852575980081126556685947467312819623909072814726950699946552367127009881744011922236819568089564451410723024493574193468207824460417242882819739152816090482199808692389053051572992260466910682911496622579199696268332605837492266163728346635042428343316280144960589004248116280327169519470345380958148313027292559984318563527689176782966561242335298314672281361468344491052838129499014370305577444440262218628813535997338738379437227486063760223526590404073402552499286836053535259077530923429195965118923950657799013209735666070017631377567325650962731276867068047476654276406909146353426563126894780151918050604863124793985248524640884144421705141516177804718217692188754168924626419930999918328764648594674095126923512445511128286047108429068517798309250591363477285548789600264480741532899353786765263749208056422168257231423401606929757706551373241754985024697264714865028249513061709113416939625813260591413459726374512800002500129751883835162734220856581390188825467855974780682659615807822512971330170424544759501053956899677862863281403898537805370099800182539876738079058680944445122369657661991604809553081356394275014608244112477985753802440480088177658218119751657021160685893063272965067012287027882589832509296877398055911798971047514181266552592951861632021045280670489347493112807050214752942125268658226556229873234532552147686891917988954483648615732563798124616300388617051465364682531502577966508491787754121181517193386415650244264285755626442670607356152619550257359735113340693387754654345929324229711931503961434101188757536320246570932458924767112700779799964880263133585845584548010112170344315548808082155749190063744009360669851491594424128906984065988329107184594394208178740296305317143087502946702613278010661273126873451689161391197050234898187238552371753454113890655157913578112287820464112477458440978635057720716199205189045221947002423970407596085553452212838497277204244394302974624573708630983378316102984155621513539436600996274421737107650026104338249593559720029965006838157234418710593889382610536062144936528918442733103853992044043129273106058794324034528942266146110246968432163998301499038222040155569723811896896024407780418651280215895264868383949451655788131314441574889947908930108738271401713556411915823406576084472158610008951861903618262535882906839051634939296271668140654211010115908007139484950274839128740095528165555157202345433548513749696124784420410692686903077891011236282454487585102219037534302712618670371662466115970874885803315734991309584133031261087500817872209274170391095667119729901135712773076896360615004877517956485405478238262156001272675623598094931156858055430567034297629828666100105714946404342405941118793827508251549862585188320676580166029594428325709105754068315005908787079729238885585457376235457149060387525548996965824698127712036340865687584599832917899452196414340542697470421601405112189987762304468031944521350845240411256993609934919195859173776123828520892033629136073698850912607384065286609997598387661324655980362653111203934779872886979542506684795350908196241293550276655451607968958052143935446975126263735620671228692790168476949310815150623848729819345258555188084543348131287589223048978485142624863098924455447727125004992237109239056956674623378666431351686962285114812831044085650970660497001650116640337448530136714782539933830937261169629853151018494886724668748575072726805100451356700207398719283391451203316877765842264603174269758437955858604487237687278528737192323000065418050889159194969804800949003987905595111360445671087043537394069601684000081286067560751048928159360375107426003523227818256490514864320911107006780517135567617501733071596659892870325319439373012476470460180451007991781110387280526625371570489336046631999967121719240818854489651538108506192690623206630840455554988722207009954348954485911630947302285706629175701134228063847904703930311046542726352822087012263173924874685153070111041301731580122144721284952661989889343061202864028748378231586118752899817786087379683138354818680860356434328596935257820678580600074300689074539228745474480881999994361041386846352813376868732679636259070065305485900565933295278568582786860299216514924409162387708572237027438690865941147982448157121069137239811119880233864612225255796331472245598749559400581783139078689293259518308153806488083350889419383996567404722405214286820840835059978033242980839962694940307664812051836013455801276112742119373645820423196986061188487853627926128176406180578955231298525076603047798461584691064996115651261823476626699804694965225141912456777891665987300798782595691343151312394505802367144896116490946938815886689034414489337408090483609764495699575600428335745365591830328221701187542160332452625933562893719280554265902526506617979975310814563993216567996240741002220189464371664347387511826540652844602018401105513537417766680833518431231896350926612736818923136586194114183589577156010467487593526779524116081789601827381477176373119210947013602519822198463776973548809483999547176507099066916334820521778344955461755443938359371649151726988476394643911045735512070576056699169690571661975081501952958186917033097116199900222127900713189627345597492056661219315670391923846984079342723812058588610733993103997550710867831895230632554632928270696292472955611903131364683818704349512705171038572419037208458737227090180790436606396847954474357863482912787092961759129827993391845096018213551416628293075820212446745759874462761608288876020430353314308935493169712510538275658471917890750439874688602918339110286071062619031808347078709557267884041609849254696166608287784291175852871209984385389463090857656618249984341184820241938269069936292721289680029862953129645450376832293067817271566308447493339083150578902524451540080346135329551167250029432555553602813869660857650808906435136028761900373249288878474269993467467499337350685633259738650138933852828597857414798933456944159803029897669769294983252115424577143881186339109746864378446147527787475944655062366783420115944943696891960397704654214589599925606143275497021280018340193894492443175797224646407682108534457502709746126224164258115473120187332334003354866385697346592825010522371255171436601377371499107315325837622413531306918578002567444896819965439121161825268222077743392805893945567434850349771252756574709937709430091059547457842109137500606666260979596292223249107439475251965617447217633733752513860886283060735642631955180260087238128734101508809854311514448880330000284175181715592489965670258576848835566413256095769500601968203151680818143649255210277215366068763097537891783638784756216655795418762408111372489152532985297137965492419519835183025054126438967357983795749606116145161961939093152020129409788979292981890528216761992512372917517290581750188525688305607417398379213228512127197078328069929582467302038246401999165575933579965852552045955501057057798435454532513107195832843226508464797817323806663942612312053336294082760286233141478267131764977786591621181018547955782421513782547600095080356551356894172633044653217086196630270391546179192017548486561969439524168812137624589924453194826880502706510634196853242530584596924374626788548172407910493928471399142660533645557028457307456122343858670589865195758427354227143079683529624115519345935495503068765115235398963007040166191337963640658294072096916857816957180561367892158102475265574535203776822859720950264792711023786154081138236358505367131799472335273676059616489983159424047944673197774110196013974599373070173346177039858169737096586388463960495100479915285505314456325970131887560476871640463974145107758738473576783130532522301464224418513885308883213471165002793752775886458641488715771095126483540236118849481569731577139927956774975493321828651449382056785940669887283366261914709350028854788322229243214253800172213141489881873295538274355351589733604788333999959692196133033250112817699137861345910642086863890666372972386974607234018757188240571401760498085578157968276910634197947457065999409530390233047014962402612453042746891633464383878707196569169701826026534210690803145720395509287104778991700605187450972599906884207375727094154224705425307098566268466091524042501330585606629547848774251958692192784140970468242450442724922024330807806321806919356800962673244704965470734643021287811189989228864070253052518444286113090589440723460304994853537641343497870946423082317870250647989825854789828228739184571129261101214379637665356699994940710845720113510862873856249011174623402574328802231001098932392837755875518757817148618777232161012960544251868251541450984571821488530854860700757298020022190638646365213794555877724066763203215202487274379672991597331102557538762429429935053800744946244748994797609123037301406520475181060370013913631642143971855901617119709495922600727642994517960473515012353345812568794827241799675709032177264903234940433452744655288615778411751477203808881705652379520269226790597209879717879935419860705028249160070338776370082120822474336866848470292235543826999159227436910133142713870609909457428614712146419176540873263568096488423814938823537593337053509448100982907550927235601007465901466714172830203932735258021812059359100856948811559158211142525538709871798634974946587749550812702906791541597099672830593290445943919576969663933741614826836062014112982213791260254226528925820454943975963948821488268138887958754072430726125123838093112250925834679507630715838963742183417437706666261827639634821308008558633004374789991867106772270574374276621390609147323820913453215246792384343746599923393068154743784255275562974972518984394813629303703910009914379414008469787874442498981200990127419154071322504496946487011432785066714616163039672745081599267154444585064173271330410313611916210446320454324055167591770810506213515159435585617223526820706349831545231638576033903212903841163030046188757448635527974511330574479528720414725442414332868052076565123689376279805206387940987439979567606085830807517299966788018206940671383413097535457028429326961819392886404157294036378010921917437155497675627357580909683013499149505837001464763335289897975177327320932173967551157371559486102544385485602152600247359978593306389148325014819562633014903612569198873662289337258588159758664388086114757967202372604783229947385071149805147551953441465889135489982207973991857070086365344976867074598560455944896651900558585348202490399669260138586055304021576246151567050882109431487574059370697747363541666391732651647219769946152627577579108411345122111995730536494269973189504552178311194605185244870671476272368828259076023482140986389054453956991514840204326400310401774498891316746981125664824635841724699992784722313028695021420036921505442945200014859917895848476972872546482517025556366838228456576316678160358753421345641601704589625894377875743918429495061743482773371264206443392126011501302657690660957653040721766101110413269547958115302114342376491274283168204334399642950703252397352959232544762711196422324164354680534639315384139124798156601784677732053653410937511688269846687227846823205176285977352599451248083685047985391152653980731781358818073183288252375319884043695384326569732323194958331456736108658994413391653939911127404447415010749906176664622436913773565275051050529447091453436216879629353850732653286056172319921361802220050329732359948171236742010780032169697857193333582855740875746067480165728474291144992633089801876728157644657164977591703264279799600208193181495418543613237769140421479382788512094796181003312218024434886593662473278086376459937561186505136149112853236131476775139012606145573750211320480624158349910446791151888948555202342937457327374303870322308184409457802838185199302664410312358893214898916234509581416493098499256862166849019832120931977128369749382230138457146401406298716048302311529408354815721395397709076197112676781627187450697086564875516007138104463482072077741564140865355968139682592024591174970555875246845800748813482775339672048555228540295488693721897810743513628812301806414407549862923668542306718465126607476660444399883918988681574928448120983282898257598737012376244633711924948503393207866095399632941836219073431529947571533938478207738418275759064389464405012314686854256144328718986566481998813010859738153834039287139791293765937413826123452104912255247554301519688380298120229334258367593573507715706209269706435112797645726420820991577557996994410389194469770323448026334221982214044080143956238225161555732921096258016967186361008079063263867153774659708440594792469132523462769790325226689033394475578607975640095127775469963959635794279461476813300228344713067214429661837915016630611148332834948993948814240655289630346679752739670043898557157371573064465401984658000345645788538642758988422772507243402561959023659499058029531603483397834238656394800116192016404798481386628404337516644137684437736569717445743311505130703017553552704203997627935505299505939570511651549072077777358103239551962411826148855491017022806501515260211423297622055502940169337372677341205190783483384893690142243959256118040186570555292929613693691064222459374591695505133670543863230529830936234325998118764771992088794444088958791028706702119188971227846220886377764352117152535222804623778180692404449437767052045365858462870306899019900046510583372017207917654134438370598514945461302874949732650946039859373823526506145437794485543631364277853558687611224380232041965061201059264430967697061473183483810981002965103413542938581581765241113762707229320097560390562310269329329574694020663370526974533375622726269979763248958031649949133843070403965586711765892677507327821001498855671750397407993164702588360011139364229893401421506509433840090159026723741925526968603763234296483828407410060911481708786987352948792428080664329594802419284852082973540753915621186717904134568107108469643474610160750797007065295507000437386028635642761164866138823950199383163831187365960746022661527874557669307647961794998745222597138001017402776784248205808518837553841364447865500061890605595900175633252385414941496157112590223715584386944674767340673199282980963492430525066662174517231065084369035266683672278447894815612512292916197660019800630116100820390439779924637776025936926669809466797677038564387823110523669683387555249730697165651975262288830263360038452498608209840617565213883296881768853365622991568030223971630954742783833356163635453188539339531062192333780752481876909767099342084631739475136282245177873102011680070605390091931269137036191295972654346262006598563603653034174632633004179338461431143564287611728525353724729570734783252812645494949713731864959611895571749529567433871588020850416602319047728639251933589516644896067171504536026490286528808510886255444327581780227735759570599978426403202062773638357785545026370934567767542025982135896933773527885914547043779758244676156113727404086075307159553936471407454688692995607469014161850214217082047298635523350267782437057119443454724240497793455158131398012263103725227000789392270314809157344696912560184016245134461841023786005772077578000663540367351589208336933042346791808584114224459829265090748598569924219995570432968959264372580071860893111140795927146135792304687200880060180937926636657689603374722430847679149180520026937071799717182188235937797970067222142959008868648871211625712972900321245246040114818060900230138463479415231920048481795235411405321264275260813210718259518944128739296662370469251906436390932926417261146816128230682473736621107436214184881539563148644443885121006836792916139591448204271640376049682932657801891028851413573289986207285572520647224810262918206732126819486884067115427791225047666156815116643985258685490896946538364559652465641555618303229342950286663716258265308424483789779923822780679500645329400422659502470078486442518472109400334890943103888854088907769108077402189469958710045858381458039416628326329649541632244885039371697956551676546241984510687066706603551424020454911058177180091911041573343572615873972735628017504546756678370783898081994870244519810566472745964429464040688087443594949836245143920191026563250032634751278425871181681708369928015392808469183171502279720139307429287499032848822576977320048243856851222263636013874923821355926978743890576509916409965168916212101565716312881226001954616763607656387500073288003768679972446269576819437778457475846968497431406050443452720325855965880632758123770162239994244668385087702556948553981596857879180907138401793161764444150882374976289163358563347263525770502121640159523554080954078186468471040229116099211732833878875019336420012957407940004073924088135306724151992956917106221022602092849728100119130592991373338470704029092754303739389274688039558917819044588333381428324466077795859483643022628047802491352202013352039071222176427993425699431168721928957666782840816547924073051404982954451808527815135450913583050695587749310124232181768598169374015171465571344357610071188373727900341604487609706529274736987779782725330150516085385069110582110549288190452621945171518664168405452571166299480813162885177469277034875257340564864279653891357240375006758405909794746336665636351734822899222731599592516304650038656436510150802182437632335289643435669712825971445457675340166812174510417339782197913948713555522040878345910470857538571367657057867111977870713890926504023124448352523561526595006446295797949424835428103441319483743769680858288569506229937526030214171258898302599995215508612992198173842778569981331175917014985506233065519372224271043189014883006094753657839049711858062576953920792127013023077731182735226236599410089185282354234049194402994307941789099907982506576188484197727697737788501104442356606475678580471561738326130069128145530746713351426521064376159904331378981710122318422969991875200832346080735178804539140347111249751834590696353200683659210719562453945864368604100093723514561192567345837349407241157281152315119556646899533166434815533734695273625357923381679181203349832236680696303267007262222748925697138169117543518196797145090928133677010448867027102646297013197950832533265575438942109301941120109290114962790644708502382003211372706406692525829033050895563145835051657786564873075459056502414592710154616444980924938811487570886685988833737410117406063116397435974970844914161679650149478276297811222884636154052166183660064804073908860419600603578718045419024924453357258208216666115425268311596098190058841872798769410840159150376085822282373255758846528667422009457537466456675515215704677790879752419891184649204380717545044325092999868364769608803537900654582150769893972392035515468831839803131078946033716983316500439885889587924414411984113831607333618557131693336576948210530539715096665533848749213908865123865562211480685991863647594775656538116401365773348907437727652839227192602142266045190202532910702239203258265679766666486134343226435149078784888619992109869611705498136571995329016791000961484800432481416207049380729105064253456197443420443828016573229574227084407854124578011783791946427515359797384768892372041935873077761392198761091454789940929320560997890315600322693089376886227011964004056611938283874453395917714814309106428307152719778245371063786536888555855671823650769411338546552105090839171867030472078514419177253501260742811760311341727004672935072728203318697757558734888204568540924256544782786432001347803484262125732515340740949839362660748658470776164322829989385904548190555761496948742300616221152726598556390194787096232857922006802208640066793319862181694708266045963507307504025636869658975597794192995485091424810674340435159872619593408821089227399454936254161852302241012682309396979741402843205535738476665388571540039942099605207232817171568642172959171710651973001391891651048186318432473795643700474864166668329346378680907801735263439445722231238288022543977695098026537644609079955562990593958122289732336660366812967309433314019120576840304341334019035276630780508146446625563658089641037296469774681105542976382889226850294850758824341429049395338291827149829067741290270024706862837918677436744510197388836445051550776556050338560723858306688210639409387774599765600123047374398609460506640979495603583600824685597012131770700845277901009786498488334644145895394245863054022024973769027631930775291132615944521290085797695135894216260640214778844719522698730158725530499221372542329343309890178792707231930963606408123690877136903383489403777416921877023748276766915945225871479154121795333023424786419147960592389726996934446273447698818112912923901354089925154442982648353785811652750769321501452280387775816514493552943527362656603130893688851228898500653307253102055033958223456365821226763596689852901872954088866226028882339137168953178472140896362987586687188631838501338554730746610425176884908502403010048915170117033767437516786916840635555441359373575211609569781472669169411343457371141465992334558226601320340690824560829180505715933737665665833245935630978718021925886939873581370343967142047609260681631937969448136337802623686329492772498198728640098853987669770100918609159555010121766595317856021514392612073846570936247595239054696002269481653901638702789812212819985641853440023340909236555630059031884148539902793673130219625448494794668228614330361794183437832876738437909668409763338228800027036029661470741051116867842866761887327835794549470647080508793904322942907351962165769557336899864959715324043346320959819652220678722418720078558842221538291219878499642367877628081395398297251164794688598650372562558111962416515068184139832204303599799644753920563329165071993171673550949016858057593098915108487306325754884725103828384970820372197669618724224481304757260421141553326197371441713326399512759387965306733571792961179565758888353103973567500381998183698346091622090722688483421372049369835126031899592230436119089655126985880352537887617254656406300369065205609248281763552808659841159851756831573128889492930882405216465430395441514839984785168904902669688395875281691936503055397083824117844420982054593566699751933127244354424411603339616502144842253707048623497596595215159823262848912393131923270521793772914457650369478415829131668035729090230473374816539973402484617166598938794854135760530779969751215951427916654734156054968717730862450853942504512447582736280206326347519146535915201657182833345859058990715993496721752745739686795737699490539685443766614052550202733698399512280426942908537925438392189398821054715163252299986062502872261203808175197852730377447435908002226524926543104223856993305744385064615555768830484642640007167994710404541088260683830341034564204678597250610366641427871336083204449051337011542418602681790838440400793299685605670009603552697280610110154163845036115045929429337480612590445849564380331945115397967499782801180405442392155228679061728309089705949199006120176144244051623668360847239965435432301298385004434684465288532156733554801437054003906498395025188401775455155191981715144144527617536229927994361994797457065898484054493510007719052869786138356557903105903217202759022662674873938407136607856338594229180930803196374629601114434270019543092754265880008016976690324911391164708077688476614522740531411086367945179453475321032997553961020725668484702048948241286429293851072032766444976092680208672954695181920224202730599206645249718890829030397368363742368206903512972732275423503189882854159456961414185890086875219025820834913995314695028760214575791894307266067151287359829483183537080292544739683755845780144630378742772988365334046235045795024198213895021205427805455904460547257023904024030071107809279564226423929680543600250354588282826991148696749092081636209844312326320423240260813454511906016979199968527061257599437572953227406565901562896573043949217299440875007513722830970205340403625829558442759556863310278494237896508562866675184728468420949469929906234268249415488894720247333184354248069435561537666123368657960607080501588624043247025543363191393814248392359717726115482969398531746420049286861649925113971454638753985848673151739820269178515936965566521834373043346209848263240966877038178803054668814374985260058336784718296172010785842901276068962454534230012897844177819954680856481279267028731043064129421132607173217122872291632844353661748259897092957640180048560877176780457284533815390303834324421692058147249981352070532822746808517424881125855335310173007143363742829763129435192632979865486139282102760941455350323715849841020208950092689169332874153389397338457013830712248816612975044928259322005637041425571368441795560079149721851331701922129262378594908749312118924502900638913890680606924729329288082255845620040668186754483534222728350211454415336855223817696283241708732937314700892823690354488963186403870467806686605849870308939758067834953860608968600621439254696402148974662336349591884309958603393094773958418502016837062602769306588806228809288189189840370382658794880721266682912291325774084098078071991531801749220964284700627917312445058634517420139287061334899789126162935176826175906181699347825957396547008059363345025676924159435194188556961033962325248620614041122509236650849241883397201772048586063347194743348801088539084058935288761365733102149257331662476242151679563554482418548652831986226503448733620116778447115938786348670733570733379066916967776793186831643293842805293107755705959866564074953636939741167634580155930844164172023974191181667863070844347493391680249039860678753382990008104694852954281383447817561488850219616028799805956057222945603067164831768234070592244674891084872812182076518947699038888634720898235847819321513208669053777288194206588343184871110545265752224610312455063480631955352294797460624236357306969296428326030732117270232877501879647694739594346208003932932860414521715003421145004897900937411429912706765531280746655775751368020504342324862066432259863933792351907919781163415942311827322421960675712880599262035258074572602734032095448937427420263373466739578314843249666380023404327588530334644947113168878955593059588260782975030368926387104302377401581778301933518497478889038873063610242523627083312391460915512134443438990963703535080047472177154610638524180864058159898192928681677326186780313609914320148322020599141525141655021458173139751410558524798488277726885720771727020615979042409455282913561410200304365902717746927340218307995953228288593699238566669033394843568843671381950988358018254268361792857302870517921958456279710454857163913752597303013544863101809007107560276451220580285672917575414462831895567500744533872179833649721417072423075073323326377443516297005390149784240266531334004161617144617329740459632039180246864545672106216347202818883462021148754266331286048890052848053731000437135498756334331525887955242882679844855540502766925451138873398187900461765091239328929439152276912251796097415272630701143918817212778771311074601379464927244803898574535156632856588045793696848503281270395778619429834564219285042223510613030605625843743030638029657390878194151986925334716942957473731215712699595255371689331236879884099554428571163649769762307728978886423231316642263143812218528906778231569407232287509686226839042389773317344702721103603083899165053349223897059544029099832967868994483759599226503948933507085701252197134952987964609839919099075759206100097464287467620907789672464617550152302557635805079968544012463997118747169980295322078462849425931705559762446201866531064153710139955502362316183573143187165744880507511095221049312911193906965180091925283179487737439159163794868284628213403017922919913424850237254172423258802360109581537872284809559500129368236236598425203528603592500591180731131011868936833090525360256304040420576075770464354295770286635629072380587334637907250031422446345028319494636831831950566333820163264631343593335963361493146502321907112397222006738286442611219778196558004935945099594347577211779333454613816112999689313453987433168579416390091193738145978925702122597603714747346436690181741519933432713342793797024141304072923343968383131897814907979508955270780557556601180548767086573732508021350661863627210707617875478230372398328725644869406502229335775947665470722434313810204645537093203840745802019183346130262157674045615483948595395312052446125585256245288585445775872959257718838844601160686730288399372317972632374882470425102030762036271385665949611976733126544985942183052316944223928446340942690967838264839530553898465265122016632079503541039986732241772152460564731304890926415245293345125826703238742199865456491849632564481990122843725446172312950986994195158615471775241032620754201610787185068177229345803139442218111745879550173960795953706496481182820754644338389848646765967820464951809616324452021728539425706884144200315559506604406607791598175044262590168365347783380582033049910168507641171588667036439234498761249586460179100304507461490199473670485859886745634453314565122023768983501062299123128568076166668495063633076950166300897525496542878516904244115850459289879508592935659880453102443521938413572590610636706655056496727814442253078100076167442688945273725386227211248912286153765607649033268860084327410758353021845595212751053149688593946026830761749883699883849171205672380494284533876210852077870807614021173943695010468281498352955251344525136870669533524882253194423304290060960310908793641788406433877016173776066913079440428151689707480059457242688204263479604469716222129174628964045344562918765941276340958586678043170478296825874899106596569084774977214429830913100263322478403692319882756364979315960232520576068001969311127632109285544448389317806473104694020238349508179800772050487656796955840553846565808683052081163762723070665816365255846182715784604186660083344504159219770375074390380208881861974613093553935357166071497880164494544091697656675598681976030901947549446318395972204859780663218553358962716660203771477954090838297213623807651158898042160704761018676635206605127150053043688156736528312153267937453815852502301939086513152687994225167673329012290176769577387492300338250397295003008066170806403719744509131295346846239069053070919085408681008097237177871545870186856259549695421087393248607746596786490136176799910302995548988731147355914413891842993582256490136664310264499593374964844754511749661623256649998815174334944122615829616821269570252779797180757376054804933440518640380962112921892769402153251127451852033349219137910495720005053055500536206994353610360387669321364110387271527882357509351199130495596914991606149076273361029179385499885753335000552395445795584891045143499797396452977763333515129772067297230266054140602928094464731448695857349369596013697964172583690453784930884688195398736157453714199195911438692617426073717268815054042362296591313776163840092871508603365002890513734626249983142540419406861970089739440663367165345354959120527442570725235735381093474482599383305068890115610019856954578897362552783002183081133535573164751943756515567318162784074967700833405028379076603486613791292807992802054048923970624085587436649383733778400974910818126905545260972001613256835496506286604951409945036745140883447413212275822864522672025594858748994329137860262206801249946633372400578071460238988129824008062684831484665211158624127323392266290821670602478956683487376109205789076626337584942563278841665143049519120999945714894043759390011521981011650456778508645708201745373724383429055430863898454787088008180445138028389296932294889289057660499812698615562230156117646577624756126100423124189395518363019017024738115651928213289810108692997394254324110297779811330852136974927907371843470153793612905263848883073260466377264368904101899323579889223597207005159486748705598221097389723197273616210552059755399742483810432796003763498700109399073554815989730203903081026730554148010791423945252579502900456347029781832000104344241868199403561524562172830985349158295926241819900827123957530833814167952487504992144794497614010715607804277984809119624807910642874605131795831295336652004282451451726986166643685333566051901358234712562499017345601841683946246150755499055966553333633367132653948394433358518211760398371246645749129593236517866479239032579877623839922866102012693527688245673337244083396948003539764605470915934181847794861478579009269746765791356504949671061275069427633085205854115607051221117441801746906606384035533248184695881823203462522426238805457450951842932993850277890090415661794359571226645695867706397423498772324241667802049849109564621586570202161779386664292367112364227897596905627236406167125923615797179249743591638428263093199084020522336441557539771047600725330531021068345287141252558416674445538147087834462538285040711790762527774983272278621422295544987730553012347167401145280743811548436890723377170148585286183594231876147379004890555122792344963705668486109801336234987536200720124152264823840617053115355940195781376865667707470195996176546935648380459271252848432734440921909676046831814213185340773332332072566429012374195272488639975723523303074635791718068008189694306315689599001041874186157447570828194814074997011967272913237948082671658879647171839991803862356225420682963108866273780009492727216607590400812230268920594289032954019048746453970164916357521369543822366857492692516259395151863491864458063309256713258150328821981429833460894649108534614267725488650473987060816201844607493401771378163186407058860112660061599874146100219301081974966993258720963690305141410073583990404654381858788159680728086512161035608708686913003416816006865769417324963504267802736073911808841062396603763201416665193201250993155390862012474105588979395338339687220598441487302564705074634657138351887325730405090437583369439253974782325988859961762802039639228827456221051869921965196302493953102629394068334765693722364520169697176033534361051317636031529310457918695512020497399723555257570979572232512793666487064093638183103827522568607676743545419293020035018526033176850403726470314106667782355093810336796447879792178930057336837417857481016940600825345567995218225004157905205421865535824174059896029339592226848091095721033775991644643263459894061450307356593607367926194907351402203892570278112383686992714279676271449754893630384228143357330985773012221496021614561021231517384769380334455549053579527129327229829020632491587395196776964732504191218471291376577430572948826830855387067862778800316717237949721974191094796212531175917412861184795840168925890767345469233450012775507520565492604536218097320308434067269510062530993676242393573437679600449269503832675851364595683008650339041852331608935162642104290488492205498389888889251957311239924129579496730294566453308847774394701141441019190264278384330142525152587553291113094171571018020967414450984866604515550006147328627605847789425144998789474465684432601236735334898838111115602616516560658791383506360958361847397510819841294799065704514312093592166780388845214630487849367282456970469974159651208771299248370284559403366075509956779575536239078615766692317465698591774585419858385840884336728946610827652723846634849936556042637662267902060498501013751879583647403694931357907125669526752484479454383424025788273379763839041011823136836535815078017028366429718235901119799316996020002089609192494291651898809987563203669185527738027795429001457517768305615557945374872667504073568729795432096810436720360339298516487572999342223578675995925694261732193876837380947155332144434347543612194132137989538255912105159864443511854729377887716439767262830058409622507882660495225687208171514714996014226226668936993419647409097338185528625810379754787250854905015669089121891686543128832496157006243106930686642396207929224246272760107593190801394043292428688856968471264001091265667687438529134580826177843572316701685537336045472007710921500661259114514434694472694585195662953571015767398216636808646986115581019182615341713886283845370093390935685266855814625178388839385666582289882911480397023200874914550804800506842910223191770034406939288961264689742239056366575068073461943039175966855521948085562063305981896277735094773080312711248814619513093175406246492256554722876087380927500282329677037676481526273228622736286103139104840835276402790519453611609022287861966982264838947709793040788094062003501578419837331368691099396808236230163337739127930705258936588866420122368672133965809185137094328678875325389606254534946883525147479428280862093722717073006599049288288080886152272768493822440509203259444202236967043287093024310175536036789620944339387522537150438521016086477363207595578751248661139525298609992511288349712318202948466755308578604637343716175381935087179867295465763147115200961472403422534658194916176679157356052916250644363119697583346763574476925257519003927206413100117966880319176274873424948530587083805097781458638765202711290905568412702084257125088663039870752381512100503405359830050996644982875989296635139704520420937059911368677102072938420846737282582783074203418303021037287544344614319102917894658708017967365852871159663448102972090535957739900530852436522646250000054203215632528401653010038977679920459732730451451676265701115990536840828029282146760268776391756106811887168615419223223731705987687430424052333238429819071228164225792235713312831993118741869062608997251659455462783587572838566809749354533521677673628315925618801816649711625182652488285219248524466439428129290497427368132044879997217654065581999692345754898169523655805015521867935894005053734864765304133185522368971408421318760088174638551527348918692190693968614507401200255471100349139126140747573656185118313532610563094666707161932271070117486956602266983340591504034343136974097261614761919742134352381405139814049861941458802986931084329712067358596237289493251120450026524307255155806228994295322111679340970877869455601142708224551635203196286002758950553662868408442531424708661772245082598135967713184330124181392884737900986947602134873290266878717739221611160622535934046215093267872147013203914646083010852743000095639143902696703238038797358932408941385920596602927021935467677790127237333255364941980211798555295135209919089511853588738931367626706108895931066957026535847101765921189919857172059399636496713897454774249352555627022905222352037509818946550803615965470883227465567027133805888674253774371450966171681576204519377715675953352346442546279639832679158918284016032525556112276560692515948218590585905866111636568574084862963627634912796429191049615093503663900029080032857147715954868960423850242367843154492993088380116407017689501565200144879847863635931920863685885556283686564073989024937215654177737000576291102512319484191882556051062279573346737501276439121624121800998145808083673661103808279459575973048530956884538811324675328549807184710457135422899496129073127662341841163231319285419315621479724117465186005959279361845990176133727975969490086421487018448165988597894679493741715562222965352495035146856049454587083870104298100588871468009982094528426693003661869991912043082130514904650802877217559162045448663982842111351412286379956307245011501883924080257850044814347535922076906588477421532805308917338926136047312536732119376434189813583496742676044666282828721040439540538613881411547534618613363241692964193829904292158722291059256254495984327847878350568967113790754611758909089411093355726816641374921767421973391009795646860125122805460349435723565465741415386746658763507596100836518206893304009179763371293340017358301938375980389927163684093938387356574691031609526221628949424278839733545264836626409300968233156737791961714219556830564164883254771830222127490290086111873007583115786336180484896931053485276462846999361555510804744346852411839731804104636902517322849127771852553903073612169132312291454214603042743778524128051535184670911462015206045919239226936833239757635302388018729849774687363060390531501643656025609217161202892240589145436797099869405282149883163713706216289802581445949101973843525209849239198748572602118800126116256369667339427137088517692252612484168266467034148775096867538476464428251828440056631677099941749835217279549751077706118497328852141504220216449505856141648871445099917286226924591191232577377114821496615088834718278166140192128279857732685916889215371997901172002737330297501214119811714386840443057810503564898304324992659630301953313692511618691221974225787702298720948713146769362158395316506271630868270046892581177528032588961572515940171686316582068143805596728938314765795530721340631260943693567773440598773140975699438136531735726527338874756464622610095430059171920244952126138074705340578720527285596741549190708836915540322978127649424864700970152717643943180778894092366509272701159980545455900916879404474780318595424602381265805570667946598126524951116090416673311501543966531211509945265663843687819922502666075801580227455696832594936086847636791072735875845157917444460858573321495825227013747939402223422392019719389058813663072164820183173197619904569911966591210182125266323050878697381423399368195541722159292996474544676416162258134380772590049350617207785645554081529621150031210939174276393524893413680168645926892179941513669314418845718009732032335079675952520221025007909657586134305241812616103283851936274973244672969102534985930709369059648547218380030261408719485582444007400177246478133434364592691348972005709640446554372216187106593037866831850793133036823960066190497404121341801367896222919480736684376394339479132113746064437075292881218812737182115363445769907832876405083930324730544727082573709859767794236155433858980647810354239859891295526217134368266780975753821431109382978288165763376498181267479852368325098698137188025773535336617364698628688999107359007473563596767364449721239428949978017052423488442134844558353488011018548477472194285163438917731399718534709924376004451522561574597200491483139641086500121688360213932755272949754851494693204330556229945601063749985358347052456129503410298460213379548980283068748665647630271004842144491233743994332500689663855126889293549994371403362075528381226273411195016063534414946565008961340860657010578951181087669539216557011062382392294974779551962264982861981201760710786830774753484239795879703676000583692644079441321117957807605109918445857537344283024344841619068791465047183535419445417008996525483646101612589199011220371707947066720928901741867483579160288399805498338294051886954445317362829735305911991956638501572021668901318331419620308629575167182990222199445364415939025206053902815659130665703678308934651490718403827418780051785027829285817011682059018810853898446330753009740939033319934458649695455129259560897933686207972026347358800867154771359791218932946403783267202318198483600429799541069552310431004392052163157908276046784523669289664799177963926394934676795901013976831746582323992194058266119189984179299693237168512828789822905951261354466500469322980809151143447694089008588740993175172505004887960217567805535116233261039945731048091118866808626425387029832691650278758759132529627291472015747037398355667854514526007220193234564235478798489513561232899979442342805620770691308838938196407957579470926558169262377263958440763462376065524635357357845467516373975842381775498402001253684638143316956359891822491356629673390753641810059180436606977643689617734511002498406065182501410609336437446111831454012853200593115729604839509092941421747598172491593115730444573718163590699857995963165466292131671437027853932233752298335045081891837257602220694769554968539775739323483730158266114043038422740458141015901332172366133603095756751254601730438017328066247376650461360227957817153418553213705866204455402267553381083195235887338708240734510242604267887872536529805590749666336093234580533214059745810834340576964472331005091759147448112579856989206189709423740171742892220690355566306344526812469365137034783841397309005704674781705485911182484864716518057438265892782298309295106546726892391603383427055095864649611155455734123545870195799434640925422961799802968011094166865412846598498895978040057070802903696594406555999443857583317645032468106462105444439604924728647597030010340866628469753064999667738809319646875199553648421092609947137093058409253663455235196943961950458549874795435094592340530373583100249822300038823070880749873338138709351249038170736852311657150846548324980001345198557056681846581093586292095133732176130202062481351002469478792965552480670692648620589360397131177109482279171988382967532999996053879529441888671622251245035423056049297718774775955094030744566229237442960530979248226164190698649422282453996845441938602412722089083190797872637032100391826037192738336090972604300369347968715542912359290983949774553312448182643083149484488696066381202768960563257596675539918489925046022109910997785745350153993452691150507861935544824906514417744577022178160613641261177085118544106834722999818680943929090154287041087561553474109387901780915306740529521199105804971609501209685519597327075672861208887855725352995547251488804767228713047216110155535219751880560218994483057651769307517947876928825918843846263143685964313245863186911452581876059727339421541822158635965446745717929691984406865107253009959800617465258702588439481182073812969011220235335904268217359629896859567404380186137593866096456876268173687310720114789668752969290400871205855423048921621943928246828253969524833903147135922364854486161434466561837975132091930725036553884102018611893463901909690498581359209671778819730357170742769825178896201107656688055214821098482382813608776172092344067472313865968724069218939414695293092307537142483205271861451707461377913899997119719306000457334482547914720319025347680182495546325397049707711087985532182361062969486139742033005718185368983152397265029945922101298101743268576887603735225753340329005491909254897740115210261095213793047517636439291412418334002607432693128191808201962701504260935940159559992902850057613777527052445446948429525719278636723661668119719211841464921823961320428908964502031986881956548895186567379166212955639705920520128059534302698321159196095662033890827555885470898913099805803084838972603075919778853547958557956732404603062026603474277060599781618848442070576004935004927251271330314273291577760799462298880801504251440285149139001664442708212008445838454880057839379916941067729296627234109224008536493539206483024177203125928107384089673678392091718172894378435799919078806994264577283767956179855431332202500974397355624726986296559862727565576435205839823580704004704690410430353862096109005707206760201858710324189046513228597066065813702183309330623825262995452781651952715223805720997843226207506193407644352368843902460435182307260436804266289977172405974662063070721475730254505236548630293614815861496205492779624573591476217442834072308041670072970744772082694299012466864710574171734775934304513940957649124291085011623726888181906477540037293860338428774559283261724046617402005043068448358644860146869491488398703777928798674808415363934481061558725203698650377374062648890950032360435732442631615865452811513010922922480902259187824279732130011515563199487926691268019479800225635541056171061944897207357297064427181705278297606687539068008202353683864032437277192390762683828898102766123149564566365519415412961355305585601462848134405201748291543064959411864953141951021292145306871248387173642835944917936103426228279365434716637616495557378774773034607623286146580151724003136793865602789210609896948512540229614781837286595514227204363456898220870291613741560433649420968614848640132858531065296889570747925853694446920512920595885744671994186402254605082636787016737538013716365982287664504444913278594821144948195237607122917914409150862910701192463200203485308508581698425987047913308550610424618315050987695551131025764198122167851645548986903994618546969140754415703464398572348109414426555958603964700258956353397538524810621360727094624606026398716593251146459508971306049671315536110822528404150644922044014670012384699867137048491634491858892079923403345602769395826523978302096345117553442431627005223312290239691193852068120701768996413560851844975465900144568719907412704253282949332607238144049444834381835418536651547082140264114312266756534176768272860124692813395470479188738891940403312552741356879853661821766030195239174280998672242475028899830178359574550242020122121592259569036128841843805679709771966122519957458828771730966738271055484785912855247162694425776558302437694259845311648394039163781715121479996233694771768505102993999827135473922222480059786975815726345094976111470535665842230554082694169483583144287708004999806190088586869954668221799772269129741392897947234130809594944093149449156312970944765935056550190646445059897164915461174393349827774111199507959713780264387741711075799334791876898406793010108934151827076444929934430669275152030313166576342001682215654931118493582138136654435847791262199475186295938308548003914051257678087881961694202970233610855398597855237612071257916681590078828442160669397991452655297048492861568274438508359267827344496882029151546467861217476663735892569863205808886616937542965544078974868067633093234947403928480297982683112082461599554583456246944213698654245973800031261763469142443182436622155410948327579252723914772296800921405623494937579410828589539904375170843148680598645687348961639903755207449103615636908145458196774235898238162799668529912491092597924472892576522038271604636537207429047877918177640247001328373515759023469421985111746714241341112656630037563735698188004249892178212487504195299242838033452053796996516020208821805566698232204923432062188456218728264166267034995711744304319199376315339896717213783547083161181637701834928452976060543655692447020166885769483854386469472335361707909673616278529010765219641691415647568206483325676410095541573496786733143412149671984018398675516852970419471735926990380311201654168159722528938887668494580901811695298503061735366362220033837655239781483146849655896272922387968035067876043926376064144219483133571980951715670863031287328353395247699129180219250661014848400293272099703642798725149371808828696485836524547008335211225341987317668933568628378516748502729811228208402512468491277736530257904694851961673852671345620570002516589627905333467950706703662157841719757066318651028684276678769129670694774116134492349635258099567973933275322107453363515150528166220440667321481275940619715680533140339631569908552723734963944448658558382934037946248225433305076929212934045647043896190810687752718008890665418848938340774301567349692569278854678283972965794074356116591830163998821898079198841491049314792343235592461019727107397183366856393915364880861976037729461779402588360069763136894664111791367022336912048488159605292015942993179095602844008602726604598036130565720212384977678045381535915584133727282089635041915785318875015980416856501368839598384269763015156248629445448268931091960051155208414844805631419231986472253542211547290760348547497348225711237375337955112609398502052405138791667488372041502697546104781625907100957306090699048979497827815954505594662647392348524920638037094647118226907857497297842490128571778026664299104947373771259290377506351638778561815211962494722202026384736697464674347930936025406294761221680736748036682619967135151663707635535369916327458404796326864246941338619385909007369030668339935784941475888787488789601386966777550298416165800794862730240900051741003031759260401719221588158027588368579167914592014126875381531055483636965317324267487899676256266779674118615168796047500938193980351622593663902061937777823678549527518357532144518700009926427430343278798188838763108544744078334974148575843512368350964136469891612863032125853182822746260472933893117042659988383359137104444718613180808847835954538752647921474272825335313216376405020968726667539023351775677993511180759015877876732872221645075614593646702321274553077777186165931430230723588650108107885024876639949238309734809767714177301209002466245210345679348992173999803057389831176691030962739466932531520269978007572144995344179514162990876396543373897946886566339534451653857562201708647178612798576583786012175231631622014197068478803988103644533879863157095614033863804937436564194174015166493765599960656437307017116850197664946993779078598237491007131621186823106931988248914715277827834903814950715928296369522812544821640168448374021456689666764785276021583921089356559776803888480488079229194746225888655797898741773215407343734766805584221075897381864341078248529897832099850473106533062466565128966236827011312004623434097943633132819499306994786816766318089031831212345364448470297287117478929464246462389143375718016314973853713368262029616576418672008876582698659275762325421661611265060668643828398158350105187892273879481008606160538803336261864677750949868429827356680447633713447360732067752838208257106158843157732837969406049707755932139414282042328340466709802152643088887881016274349100203876484289743822713755883958557764135645085581658648462465702693437394840698459405685289913601948828912894397661257342439348870438055762651261310644784778386979982053128166837913357304294363895280912489595900962129667650396673785244559068158410239733011904817509507488397672051938941022976197817287793554848504090719157215694739781993404593131654768485291556273674201647642925340354134995936906675219455459086276895806681642357062831210210956658428864437383109465559628243814065080678041570806462588970522207646829512806637197694541203135492508230152459134585320344472051203699671908743873635383188313058648874527950655303162515497419776197248443247556283057043961689526360427197536213422394634168960147022062721479058524845474361902357653357602294694990678939407589315453858948221365735493283352254469196998978555559767628520391975030884689520253238870504636553847217561377466182467412916588004778167900546326906262517052232121876116469461886893259886717097474736386511176110549538782442115774111271629168230945190667520436924298060011939621192497825818909741441079343906828041074445043085335013864970312563135574512002767547419930662784743348744015878893793439899746574320655647151223704493542679649652279971625393520293098965613031202185235821561191872202122045282611413200573179195542218388744040241190112085294207688614841367089161051070137934004162966632641633732472648142824923459727465499453012496038964245482133173374943209713312456149311852777459994106830078823718603833231813549027553763251391206408997847570732977794373165898295117358808235614615132855915230764902651919587952995764881654146206627566221457420808661060513577365284488143928988142209399767165849523962513431796657516182854603591824679918161434889519615941897740673009837959566727157287424862801056210689070972341856980813203261210499707478149458177930741963887623001115076326651469483243538042481390079498377487033046344268503408439593393780673549361094432189228670495654088925731001466472666337035985741866760928429001387750900395912761776528243120961412330433949957386348825327625161670838801570626816936702828291161877460626657651208327568081322054235652165986932382929408851586519457826638747721393302920178401919092451478748969642027487806949169803885533487586163810635032614915942323649753746983097176626947438952373638274075420855789769960303068843970285734501926107498439398870914303671875830682683842871182038353124568086358445457205148097496999497009988201826457011778382795526635323858795632129952576524939925599132140049897044083405896391938976698608787988915547794939237652300109539988471219242622843333155087423733566856372730663650817627835335380879696195879168056945095855917346682525500563151473612505982435066120878444084324863987134114991848413990879348023040016082215712823624472160546003520143811207921425342789775130419888916081386782479031065478576037014240518073460631362308239669098891329102646233050497809480688685792633134229235762905206975365282154814843661820919272312370594298710829656010810035724801914773384910562774754078201827145704142913120078337772893478402586602562764284139311071206586528071976916221929774778149815758618984706017751579576730572151448412115780508607547553775613473167839261351799520626746549859916662554868574993360235207032176796648810060746895065609093300854457682487364177283076925392549396142636597438867847475669025835980268352572520159563830714280634990570121890693515178641582416221054240776803384581255242579391556667802563804478485609169456108666199349574633890038539782085441212071938042572843702749816204932437944291860376593177880511074039449863236035884315031312350100091506405995410268076599829323477278593760749815080761741950981367600179748818342956129809518124688774821296385506663825038280803334714987561070221187446502299486807309159257617556683995050848623686435297762952679497347714691931189129922357083644758752188006210802454759259708804952285183590934367670628413931429446580975820929430255976545177351978734232462322400956375951328840023341327188772761774133449126655247269183800211413707459337742899824383070205848374326715608353296372274040894256934470330328378168599285745780256961384756729672297056589213501658173930943617955087702227451704202179876738364057200961295245497239166013864424771882894657311681057361012517273505661425150458884310466161656196887945923371526188511856309112414445617104864368269751619543723663511344972330748198867795685514779185420388085055382260763275764606275695108048470916385096817549076052047059476504131457154943056774999529773364573663937324748951036112738753396495685301860623230679539573483888231269835945717719793979058973799206128158358074382285437325963130943041964711273148994613466881272746523372971621760785286604958081220160015963539233310630612223401635466314142649626897894756862992939282767518613529371710530528771703050974761108702003897695870339635219498246101182143196801368992927484264584589418154036734669996923875054041672904319240034217353482322338954214602800544073073204362756817960493433905768390053123600052525161797793715566924029817798867298021797464300897150404341715558743472851153663121312279265463695579928805620100760965097756241523836324114663185413921378497852275248921231227142769768731362210717123435165743414223036639184981912665386907439569049165061191608968659320267242612447412476398345234505435441523883901840510178861330007681039933271831247340930092357556243540430405111873355692993401435878587527964057478453302803926933843032399211055642036084196047032792669274398066435218681629545366150845564370575805994614028831844170206589907572553564064818644902059511179273873602498991291500134081939836159031723840557557888837269540044318031098565941890131082016221650047983487154374032699858170988258665205528662908939858683198392570057430511047699714388172146531172899917128372644753133744404378012774592253451841410723595689781731840084497112417989020718344806628136815020918427261452777497188694608673327439429354261715661368011824131217232844302605550316333489478381929556912172875089201223075033269785350482104008737539606151305214053755098091758636554312964378860972298112626763318489063455195472152531813891360787108186107516166275834781340897823120575695032615374252811362703745424479734074368759106045571255941259544767463077723121060944139918742626296311480306200365197820659796487409418436232205017109845891413028188057094214899368961073883132996431573785529559964819532224303126837533545028522622361977325681528544653610552624979380990417381718216448187947834690844831086480731057471240219806275959001312334954169404473085846684917703312944431719120087157282002171571747642333514909169984478090120996724194727812993663758069620224013922858390933888807165858913743328709906574627084236918729142380770953168659104638786043487359053936818607119324581255738494751195209566630150148822010156465617848232798066447071597327259603980508147847208380447550745536726767991377438475231753594831060815269173893411403113194006020115479649148366199679705846745956646821400784786175124627504274712025190117474225918174366656229438493053456810542305609797411755844978306284213740515475097248563816421547882823784513373895368088064394438826764656083544296473077625404898564834060259275466367961187143482425765316520306975698357189933358977581407162299168293721663581208352020274284220494061202757244388587706917449456075456849959167661361982374266532018776080040600944950902217165744138640934698607632781978094688083030809459785932293669508136390338922751417398554381675862023712479961435133137720185764530971001848814736656340138239367234447330022808837977328988918415936015246897002268640128673050142389031356462041925999106952614309634172148624180230477277212553096428472390441695897938179147276324720833396825657735191188176522036334341628772791345670428974335395784695021220831092246246093750776372894519932490182442195642535917349455271400147376448380446402076282705973273983008550826978779481838673878015790483650521785774143509674915901815677020334546815121119852629941270022766972732001158879229609793372852379660320063874144324842151128570649503074827193197407851356646253796081224607627012602969471088380833893875559392585109176375298146542131720120630288632378325222708596659846472418204628596441041185091576477290363566152136272342958047173010399432382788283572593406277007251560277650253272236968687065622684316963824322046356070127077255251037143696176872906187394472305238131532065427348171302524696191407017316169870694354197748203690556310725007008795757654834414377822051867698188175112301000232651138395372520913661112899951599535289987362810355627931793465983075278811042110728430500918330919610960459619286021021306763955850069512784496052573470668554271650714232819284961491003229510405249957364689979728224841718210525834592212311746007040367096941596191358402105265418139601623642875317389798690116606327312863220346138440308550957237292068889086112140666852181914284734808140074336433805413159680348457361260682932560467451976099725532671958081419076753058909246322334116328950552156579090819120086198320473128595506391333486744584546293700632999277806709866652750688425351657217431519002388229838639053864383507953595262912368722851796713978172697451808776811273055978656225974741875720135203224813127346665593781392798105362974600988584841016586969263281268308344785099407267170404635812260828547154978937970189488884112453746812463604069799064073905459941656976416574812271307077183793872504755754507075583350608047282072981145896180619417558316266958128361083044743546194896594835537599521822718059331530490288655523651051523027585031779952296627584139684394017528588281693853128565342464495515248882301866255045526773574698113578722242027040824778084108463308776215962816949653678057168640269505797007925555403942879304466340894249825974270596031517032134555412621302196602252261779541087013841261635979757786433537527309306587267155544540018387045080016901184481522487206608688293685560502561306031778930465697041861998532589048079510798588221235578587320827346932693742995420597404742430447865797450069318189716045299642201149854345399583236029700144304117398438929623146849085340907606773324073040058907859759201071762585408688011853116766798799256600841401845949529401217849558760588520524416385658962380222620205487626546377036262902146059058591386657907175728702404912198965134418625279858102389552035725178585686080099668457030061405423343249114494691780521148734270401806424097962539002287601439634157256540046356647360678005164951085360997102386198640570419229200543184138415048467000255106572783345470658219625954022800743571184496707070097893399106204074189898612010034097634979615395791924746348541275993206431570406844938051941959087323915305693463155567934674042571633095129042151796479213388619175839407913591091817668189919913589049347956596624529496233687660128328916261957022737091497160492599516790652644374667831448246352084116184450132694262071316383465025152090493664956903570798863486049532685076991869724952703552968583228860844910483378346941438386817359537545847362457550063544320825346579712078750996502823127460907153547873572541053936420488331581430407617331897389922308083587484872596717399863912631895488146338735008501246254207968104869600547046448175227936221656307238211284371038525354319537428131446211605884813227827531693866402183751137689090286350346060923435942248177146865412939889256661956849291789271564463837382807438960783789490574809712988946755343210962764197783645234977662150290257990772725751121902000584016726630755350100312796267859259674318457000776260764198602922796370809875051638014551373150741067363409254978119447311634163456854911702019159822559913927594350749108751909132279169299223516134370106436188445175868929756555780112706719197805120976605663761503509645623172696690409689139389360061928547667520991484102104191461954036946237211285321608888090641413456608024974035051585879472610917701711335273006333392570518186470163314333412365260039900445730744709548953407533056458629495546707739079940105955874868867085823449006567678669930429622190094853970412221838272886994981712730715878978378832729426070080468413809138318559793666900890160118453453870495919141399781314035609667389332743529552344257059409195492677980822082154781920331321380591404921497443318164797620219700170612706186829037265233174171105675700560579228912414744241679757342898582574167550402966644017992378144297468018205816299464551225502166864542914374848260791046299246043246905847775118378845704563657508884594825827713274608285831891401965296002001800013088165080616427665555632534065841405534681041457650471328206236585924201092827010713511828135615387451709404666620694605287344983857747487926322730255571141921006409379106962607947472593372213041630348963068783988494138297616814155027013667392383725220146101263543132884527192218162927617010110063306501550132213495120498136143357554951125052882339649343826957142966858121046668304902651254403772357475197921840151294510087453174263773383525127508251247330927252696594488548723210953430081199058386732625929161207930602961769470626853465264710205569774903388270211929577409856309473617989962093014458715330634516345057606624011797834620830313766529378859026167732119827580941564744975964122021851461917508963909529438177464263592409354058545754934006776545631605235932192804170531439391412251009167496676768796988937476167043992081159034175423468342792650813055749317099212118723213106880253339141021652591972148767208603152606962122495413505311878719324443171816362338476928059579659752834854539949738097639748413351450632862111673980879949005514423732621552990637464201134199820967454151772075813543345324334479315363534476359258168182508605383358330856089920865856120338502419339533515767222523320732380402892690433539325569455010349076287652736891283047232341227833677125562216167683749828570444719255461139716909913581862407314133398003290286532599563289750397505925789435634419729056461265077971853051967184101491311567572124057718033310907407654744817052457693920036273885275023606677163119646436517095148971171982877578729874893992942277399077032007844298372956290891779385990416783620953662574857212889075835375743124445711648969738755530343174816027228483345358150254365356707606837836707151300735709992892259671462554033171286166270305832086477244015690702358186676570486762031664405549517227974914807652180381186720000549040174464708447716982469989163996149567164925564772889858873024840249660840234876898197782143026234341730883541414217330634546864741238479631318706825376033908021955246301869080999549750764712376185386798386486885540411985165740991936398625972908390849751919573060349397179392620906599007346110108423035682952038226463148280434271336129128403387484049835175174568279435057604840881705714094147483426340357158690463627788314460643464462699618647126068056418110906181156278879085823203743871935840918618140015994171990552530309370924277094667070147425675704383272314437400954813772048455567561772497105818116425428927054241567993399459787918484843776419894184877073205832594230241286837481541121887067998174490845800032717743660774428052348547413316452062425188377689960471118013001120724734578059710123284213595883003289839677749523999034603170255005055459443155893714405502269459362108604126662750742025706777065091087382672582582173908185351040934638709307957466551128077873771891975550690613564169227075772900499066354224512823537482559925789389702772389737142983999696975854185881189475897238221692696988014078795145397346283437327593696084286047865597379453352890591884411341841156820125133979365626473886844424870657245134948429154938783396296276786607711668679277085040059477140397012700975149045929277097925216830377721619104424080457571179634946222151376407809012482926633561127350110602993306045699911100057751853240490487337919547927981866452183342913365149881296646310276385346134420842516438393916187086333443508433087345040557884119827965918768005238685428582468829615200590830395998962382527024819449097985194801557638398561855795509301622153296503632781626418661425753988690409226867225565285625242317962561342278593224524437813955120630569681536816378060276261973959151096410215389661865914692246167063823798199242274614431440825441680633795033040017461760524599238903562251948912847438521006923987920362217952248637868078731293220024782505187100682563859200024498489028535083956967874491295298951462206920337341039122078674031566568209139398876484020363294948244978839957530092468718239212537090603879391470264191140149553815343844370032283221344853272815617666378511467332814684814994138681167669292285061556623316717541590230869616134610223041687555831562165901221122832311610423882224060479052497482832354745841347633518171736288387889584457563189090238166416175547836002007232521404369132023514018535600919364935768162371833932308985899256022001951071024507770846633693532889556464536962871241010779293428215155413874577641930834236979511117879939948056631705869136621553378833403025793682755105836183357250836200374280912497079127323622862816391525259805140572195048705030380149243841250857736560822033099372806381506717563861024578509125019368341777474834942653986073365867279766100110650939636585126822747901632069322112652126492091225727193140957779906455087023017900926495291322697892894105735613203950739394490775091937062853383775132598316137055504599972418318187027265026632918356081137688822018913963937608806742698719978901007371452188485991326278286996697973977004492751141389786067080292014140669242470311116151229645836976064471007377344165487098732186043501416172188589417504037002352787150350213011300010617766533678444130180999008892840849378412428080406111009120622231236319649005373554579412590917483672250344791164185772786308938382075342786713006677517271815239394654291850288926728962193071194465268610322928257800646460201360262212365864503790495087213126898862513479389331009083360861571983172315147623217744914828531554899247387003899097341637691078926916955223182386521830077300137866804799947872898929005370394583974651839288701069919276322308041156971400842195170265991187514639189109586130488962927852694038766975622578591646389086969360076324605939651556226538961201347322157521112021861262839443524807331960175418622732882110505534833439685932128338530627946409071250068467607206354905816870374717614755767447615433374956853470798894873374257259902252542837043764683903867776940211498782882551229669072043153702845372324939346589461610381694574464663285719998608280653691858886428270512403562587235800514227125297886662162827594772670673247392650670959876892892468232175027036151816681866395958800777389223615275592445913088376427555268186990325023953195271142663865347997264583233944407698250622799011638212664496552424391503004405642339717179270116412590331791447764234475555557053181360799944659632519627179817837201313280944465700778238405475142915676945547897861445294456582658093545471345897282418668651189521655652746823502263211988927995208353118955620162775016181760416465508369420688389477655298874344483212405325663024455780620689810350819308162468431382549793091824196143438313556437264683242680690092703673394332230096443475802145989840141170575969035160034557652171631247120589595332512509056066364384999563272378630199652251806079279910458401199442700735497232148798791850426935228417502173014452054546923617203778640530835274793312296693619659497811139812357068511669271023623014833649896152358818665956244401464730601097773406996658810247791894755310295458221728510198207221553565385158647422368050819646509247214463302380458176887336036053497149965008799037460455721582161136712212121700452577870616985834738541052546709666037132983185272705675812456221291019136302540787152164944075451538681998414476541079240998648387215138184041970853830831297987647231938479138165069373572457695459968829395414755862695270479463805369840598959022081152706028309546787210797499059663601698632184756069141902961969496201769803879682234601652214051142745837159893033661724600334149589523762468413377257312710089867564642962559543381568517902621693045917502461158952631661822976143088639007416425078902200361449599549568908505445835178328424988526328374800193984351142360866431979803297723671740620755608672059319869402740186979937730526910251577456383760013110511697903163212443376783479077717562855184820224560061625232308456592072921015400167919078232501758954527157809360583690537906566530102316490550327026999378860336502275317806550403973675848315812221287353377076396719650916601551437135761844433282499270899536302301960197942434799442349746488704816900088218162699338073779663929411051442627790235961047776467616426940474593972930040306244629834539267292076499896758959411680107344967606656744919130882796179438247993877902269438778509362542985991169150775856781597616762536188189806789878329451359668084705678017602318361714560586430986506469834007724561848925837594935530566494515189341810250023495305469973199339519542127037283991424460483368953727090215349465834332006642584485547397468551285582078445157611178967377847344411792152714210219825717391966357936572495333945071666917091625275480656928321266986128441845445488059950290809873727642966089490298098975328256146525129675890768153786958936946703187225954181547954076918957035619465043086015729358948565118861991418536284013769970539470409907054266245948647360385719407145255034810827040629075079582717305254036199669173552443224012844064878337638977484317408769027150340758513207605239789834515427950959278372909063092410038301987438537960951426929129828331513791327989124738022133846308032159417828766598610043232898649941014918965820536524404999480512911866381081981770529020560747166265776761256833061977656377535307929869575144774865388996099184459186594010874513145569771785687318873274302971844893931767824854088576969831528044378586064085573519473602809541166906110176014143020603361212774791975882800826802215264328705890511011735673376038609555789200372246450276728002659437856426766540653409382226914267447607850988324699049006443645983227611634538438554088358949265522768390694784685326493718718840638542611282249021572437186578589236764838669019276511705181081273199386323477663644523527678686116287191430375785058981414955519684546951533267088678213708391422753863981487427950054813724448400344267543376833252922333983014083817006323200955468550462497741673335178039016349144871136190421505469777794854827944611281536231179489668395802052670719532488232311448449340347626269347584814254838894343937249086746158246404400629371308165961692348189518267635547211762223874077706276200694320363914598181708999638761994790720417053024876543320119451350061756263340613982351177546798044504686382969811663354278686188040361386843774945716561458519327597869025396402752645208175430624633041544521229711071689844885474663590017096534133275822866403345552577540983132932664277214641715044977675321449952492540632645278907453950839734234297433064980736525989168438241600388697496792061369890706463617942397713364257150829770381289067818479744504877758243633559124459596318001446158683635024746554968716477087595684281825354863512111909135583637051541345437981627828430120153210854966874826831966527343532175321708121717967952277054159381436911717899668847505950934970300985034137021941456460701062005684134645551756795008011805925534989607333217719150224441475566027089755510145109918432839036898157503868650920055367952683045160983929551787654239716739173512007563209438419640518109760931944053842535784398897879836061237738677658715232348329017013540504189855078458470750230114805074301845352347035996408336426968230032748686341318257649238801438055681833461590658143897275766022373146390601672098933919276702179035869529611407657732339009367732731019953675444668581015178546180053713698870574432137340631196080620401793381505622501227213660283063176127780459973757680257472145140631802819245157905534166778788417521800633372344829969516864840140882084526711154273242249275409648009981291121943984869481613739963466070830821700704659868295144647333915315626506096379448610403535730835441664303944373672431021410433380897413387582522822834373046874117710129966042312958687025990129026324103924321774912008760188868885275499347495787540092017580381397178600964458878885773517886736035656168231017152422413353572411526080811030084825190553692633687362561060314936023415841156489719386876416425474333272166970765691300024275754476083117315198503480410247231693445278412551262075695053058702633057728252943239627326499377586345204235657771238673653359780921625998801269087619265379904788739744811460125429936938912844054529084280095951888320579551419602562871569904112785109670839257862683307613868565539741965030774527632944993221443312829671087150541875163758331910354912654256961488215457766959192108928525135513353727453904011685372128807430732211123790250157138350914486183092215951285689079697084967753393433736044449675504153594266585797811904722948200104967611035062593155231439901084276940321820090165679926139293139162808367462064165406383363991611759221487249181523417128489206410077792722499105432406317346740295803611159897757195276777298071050207395485935189188060370227651848982316669921735929211221723092875877424294092049178021938371276480072181726787455039039690604423713447319727233885785062171889039516781523383251051096200171993191261171519299226965277565772627594872219511521618979289113883765113839186228857549404812102005718565480577826791152835354884731705906178899393395553643648428705817133579720142563335895208715039873290896348541272214436017109596385021262492287119369021107998072226392227756547637464773077295666790988017857252498110207756752942739052079346672316464932048567899745830410847396385361811638354350212774527340437431880501100342101639946043378014338483737978050540455565118715212501603543957987234852357502025802515146600884126765629468314503364625735335864020458965723254204141416492546125669800675782285791698411210005020821785042182347151073353090129061631557247284838398077712607658311784485914874757078203147073099210850672084631594779297333876749571548579423984754005483340498017931071092657462678349891162271481777910790966927528696380768477878649254349845324974879016960374218422031578472824216117117067188926798482324927672227380007941951765669261474491274368589631578240249739663914592513501184649192404414966481293897351349526142266766917680214158981649570962635046200321788457016776302682183483576921648603746738356040164734927886405941992027581051638338589636019347426882633890966555563930175849922501012002348228872523018614237754459324336074825920882003116732663332770353939428946294402412270296867588273485044021083936810397955391674066279870845969550394011900549204712993270733111713825652644565547859326880373078050929388811979053050558260050895233145733143457076783070427215856107399901285266855827522028220973829740999989668302930315749778993717343880035497023424898686826152229558670425318224293581664276565504345717995801907066925629395061378948477342584680914154192155135899886585382041303693900130066879982529187474282970210912971292360587082466829319143708857214554973936789387531135932537015181586063528733091794522752996064121041119569927572579123228886637514849582543325605530226054825772179779237929018427566526113042293748774378947710374825048577089300729171532973456244404572667058083339189122290186177308605874548701713835528011360234414135587734789257858766762653238807899085057019712680068158804570479988967531927715338895974903134011118153350047030344018770697610482502974277525519548246576375419163144199052373259641644997529450379653221701529938764103203629606841022754916338335761851091379349031636922582476870099101641170122365250699750615173380204645712399890579256244513141569831361784057902075162624031422291301213177944731767726532174167454191672747519854143590194891912310436538866973597837661236275401570299001820347199009083822395340496275928880765683074475157644607038192979645103630488174534034465449567745030267204145487966859762355251465072219557204196627878479833240281151422021277976996306095994346160986415939987858907605057468691541862263345743446971961393961684326513402102618239113379184390760787418538289972555992395264437221892237862808207890918879957652246127635084080063508563388426328874270759077829663943259333977152531751924182478274961543510502759806731045916018750755146398585574379814393394992656303154130158147675014951262864525472621462815905021432215570791479582330640775246703250299840144206516682482570495941632698440300903567680918850168222356682043921228784886476151177777087552316334555437703078422715071346086489420483925156433670974450563741321901707650285182827599623436828600483661547663747730658487067488506697933849821899406839163370927856860812125440252061964167356207704497418008222334022032313715271128392894546527624977254637337695877346083875485718003476828484471322910918343020124983907258250196735569995421312722465193985999073789050629158229869958045709217235420758135613053599864353823991690832262499475173632301878712665070824479915472939028033938847985126762806223840974290314859735210088400386066679410414924690753900431638916567392265453361315903706775369749951697879312930279264692807779574897757986616659479829061576551830068779180136071765023085904135029839702067733219606380312616484184842859843277522010306092913976315648505054994664129233434409698263564139890520338380806543167762772460579404893491214737627512867070479432386419525545297050847392848009073516428731271029432137614828153775803506721865682298606184825035610706904631386952802191709477546871602455505528208204304391112220592296655433030050345878171924378635765909201702490484757205555247570539489921107690248027179892420086719624422572416619003351885637406742555596507154412233162437118497074241958182087522061506163934629318093913626855654790052855690067488718081743651255789039714696163104943516343829844813807394335733175864530738589301013970583347474884864980583136788894287215763655670474512010333051926091067172165488663115918392282749303093798533525277293172924293081653614922215375811138038039169009511379752956876005808780816491787112014920794694003178830271279806521387560578102503582911741258531375181136503937499369562498612296507648481649477947873849681676274932591612035396569446047131797523924544923986330066504689340949956808485393385406835992871744926187014772341063394608024971579086977994820978454368542425637509346142266587550771182188273809120798797094939885762596805691485233556604653787384101359222513012775376675265368458063955940517338205137595751099080655748875648095279210338071760356160155147873889318614125846206123670581385418498797175573358806336707903387680429401596556420564325291518258017404089434019116823070953715852344299617636470576016626343242280654415573472511882868236526313447570871085881461616292461673992640784257845982806448244133619364539958167284962327593564853788099931352033306312328359143872021174383481652968134725841637581804862489153691062021138502380928228512440648274059955931002232045012423694620373203354424358990522941533362369887441975849923238303706498385085282933147621894920114903581069255849251298095144627935919941551474117603659489005442746868804058545262824408861300876887149618475931603054957560197037218447659058297317050328506583585865991427472785094925689087810734822840254791032719070381732820424051819915564123953248435782161217305371122504424868999958550673300033944873198529103312569417749995482666372061894059336506615042693138043389180530529492625074925129370297764140670377868347542995057986724267661396579060604840824552144409497560253019019952809256170818393050843405601926223610481256948650176501686965403736843831354043010886369146866094407993630041256782573179338237398824827699871838288701113361292770579342335485257807891706863428507681235000070951398947501577778272524793135751539703655083452945415195080391569619681134308985027321229860289286600469731805317230237652891853627988744235278965223455485331466202035575007221977384287178317261163865646575371064942029495024087171108414356282863861932870572011441263773699718853716878090483900945610887562284826479775154102633998204944522385682102552856756687543952065578524065531156451877292297088231066066820747346619309069533904992715279646157982455168134555408516228744528783582234816756108761856670483012053154364568307170645239451526536434610404340119908293439639997640002786261148589926803156370894646736454365690645596143019710840666380792400611480366184519331271136448340575883566417506231350473642104750801614501496623072520486881428056879916073067478118964491161296075573979137844055203688681687299709539277977596012366708049077661315667455789552807730395445393319492427326832446092079428261591930652249848788181047385079086575521454805765600061777613374402412720905605737277092618080394087998417586642136996980058229352551268929553536269836470218915927858259752393924781789105098174885154234185134965354928449762034609223103964857962482187064326977820320250238007930068653174684366310303689476195555160752560981133126037610118210042445101742131230767265215170340773996411539450652153693857056426257021800869278878624690681282384837481641365398659327481709375491193383367134802737203073468948131069366576155294675696586105648915588533558738393751183636772717119445817324248600575558849887283805774034736575929690530538100871022808468756258493001742966022807080115042925160986366402211370808218836835363960910971225192171805542128207943986781373885206429638954049541167260303902836765429634003520745895924122129346962452401734420908883529897025971518165565706948484313785171426989215015249723065520856041173759030223670014461346343626318589726412860398441629811595372722023132105006328229331227403922466044056121786218448047520928844131551546530890166642569590768966773746258849086759166962705055699295910723191279343590754567691509335114422946823076544637558993243722142992471989436707575418664682583285182041392703607403575688007336020080876686784791643147481253627188569937333355871162487397489209090135850370128612205020666148911957026733964464202317147678289689158926060649230884548510113850480117049886368702725124666911158136304264064298742311145690446211795878619236469905816113109784799300744820726819297420549996759551181261494351082362689454554378487313008162819566360523513284907340975588788023708790433342552624045235403175394784514212108567342913294761294765568176567102841782201922818234605058281145408377103690607703149283463081025884998784375338399526142537741414511983908016549037137124841845707829784534684867294129820231760873082947879472814353432898140341734354599863837410540991757109490004375631553439159853409891029110366550669252408168793373695843460374163806213023594221214469465168406853350144311280012962482595563173079372588066867718699010564463221753602016694923908687285255399349903030820883943541723179528625824052393096344815462815735492400280995585104542519977272024997885901556033142907349300387048500918147327773503529635564139098551947713370402152889131571629592137459389290291722189166997982590631637688162275193722936264593516633912647930385414063452511779037051407690508765334005917205947699604232178900513921747187915955276983113577203786592666466979231663081139421409388181026872182042299990650229292804712529444523919363011716507472762060934820480350378249799369859243366269963907010491260892244865773627514352996162008872782281050754758119595620089646871375283231206274267538453401198769427183263382063687908891794323856155306131224313415903733415556928479735770595850521249029449403043417873559070833810438442990344852613674370537756477804357155757669402149707550089959390794800726131241652443789646102763616590188998885436816812684114916180101156260318471780839025205122451625548368004994406261523401424647576012520234341880684041793638162874191058479300907542764046031796578042850170058977143832062089409827926730190473287277132170408667013612613680810382931102463273686229950455278967092055110647465453853985179784022475938532414328837721130338383539030636028068419519872972176183420948606430196264093322145467892966297803451897439223793519462479278472007144332567760953913563593082789067064906405714261882868862701795221313602669640484629245071856251140939254933368790186611030744705463482198315540456837499905579690175757091733828673610623327823474680608899667083491381947886536312975861322985093610414744762057027713739465372366426072082967119934029707237190216469774067070178491421551455085097939250578523735244912947979725035588298654534939225423184875244676698896910471295647536399334694344714999760119259618340210798260068158530927615204206496688804069622458371344496076357356205799977142909369377643926461640915227568003179366427409492899605124954982297591632483014439903384450514166025684890395454549937395451845307806111214725826410967904980789238218241798615581770836023056150994630841953651078424937802052516404855615552949662453806943747076267371322902094005171758904086932817231540746249708422918067685802504056668008606420812263101861253485699773059374248978958916318358198836046449029182431076105508248684917543599293927781054042310833116158290666730241365902894758215609987663029248473661397436052104032366394057842072153146594523647774510822987376150850382476152431014988767916913364177762507945582996824535176636080806255171812810218201839324263457851816345370030073140609618364193102077217432793664949391079826306470160581862636108676318968034386271083279791767117529803619756471913258835617907461594236791723688230544221097159989724845138311620576753491726606644494936461745944233577423987465749346544440350940441355518861078047276628787956645478020700632263580119122011316138447481322698418129636866505413624006941681269972996660272054170897517545497129699510361265244856663312222661135613985118342909531290891197220040821741766713981707722961385854197667721236822666627977386378470564850426871962488197519820628894827064161373179923700679609197881518520103077755092884666194254604627869976052571099370712145119065243241288811976014051755413382120237787063475726884484715495661229504221665209270582136139397116405046585609095109573572467078930991252029239423712084310472456672553898235408105422913119887090700541611236668020173908252170514541953024350698743388972614042616660088917432755741969936756572547037036556347097366485155458649575240449730575182844495892523653606702797005732637900487675040582799598583406963065831660920287887279985913849980200680046712069097890548480616100660119314005181805956170212853712897299956149251937144025739940242846578437314458156436834025790317414468295883032456125502738160660052097432610501046272145873959535360489445459653489554789738631440345665814978459600258238679192863450851396154469145158976126514477284820301155114359969121900948207538938622106318393549596978319496763769402366948194233676139834348614725191118336784915714744507089969907795423357079651614438779316091637647529558299042644166655176890920852530511446613814249780057189482908995206790083451345198763936723825273740224915323556392685847110910897865003047547707323761786036681007950642935314453018963646123491678868933224384956649618515590843820710403883888580140124015295694235990034616303749311995998226644498694188457920786339943763739039507168262799577919898164949899279660937244510935325391755747250209308080741782965832421699030688736346326684392948985399025421205596858878901610369321487920974389209085274756273008435221010937808801231607358021114162397976397383675586216084139708797418361819578290967651668443546615031104356529245364129295729764761474815595231967619184884222169248297129940410578184247831119698466012752955754498907740442010854150609662039467952938061426426713075388348487894414873675085178138514778094138551088505767717888262498737503466300515702365038791932845374885663461549072418777337456811544650131594643310141419972920855916226055911739170692801810537791262270566518302606323193462958328415263400848641778645244147202964905159063598262076725197649492761786873970257181669327631218896792431952165430157797780303767020877134620975387691961147254985494422537460584140060188047978284325408516496004961257708121485051875757088968961930441726395245146433035605812499557612443565667900195690285280658501834666704991584142300423472965324828287949025170512650122543179933505740516917526591532305327151863795073956784463435716140188813571359638385493817352484147110902692190692111677791410818797214324870872649640141342919371645852177915805216033994423459613971603218118534698368836892229744699717169361481073649608513574220263073621143469250828643386165000614145791180226012620561745117974179827476939492206806247376727326837082950336167959376562491020802336969451041342349795206009080965393343394903465987729712869411202761997858442796895113516435252453646006086591875672736629320761193632360818085867387954706073871190910745685937792580424762764774441991747298153752633394052576035195492235287387503020905124978889222273673723245764782172051673164082876336356552995314432037840575399696519883893964110039109229118468737514607843353454197507848261166730871923329998535690722150912917412431330796116408315785921183463185004398166817532526591882843196772440656960727630936173011412993095221258243438461594368808734066927190187016061466874920906255454968489825326631232606616271436605905067318181276753523276148987526191743793783242303777164976413511581426359258295668107388653071204799185625104128560262688051693095106832920589644493537478136061717357714899426842347851955705697594864789446754453664087631396627154326247162507021946409626028553155838273381658315173212912609454895274372351372479880629157214243443878644869470195076669243921213268464509194215134372594057944698271571094089060017107266216802018442994504230201268105542654579609573711938236181416340227973425781215936016428709565387470238821756560762156093803513733969731610460560897512256438166161041903515427909495823506196446244568306922944767297142650099743596437695883366415317679877138625479526860797705858084049626309538260400282248469281227239008545562289936110969964852332757596717550806569463258945783859944010074895036130567419231599789997944074422120989335337112882223354535351675060764789879407971263432538735572143173464144858463961447812757271844518946741222565915546441120899236095276684413255845779176797153155984034427161406174225477218589116503056363222910142970841154499027937839781465896141473815727095206005686954126001119017718325785102289459868371003481829152447618565113642287325562730976632840846503539945679248861192941978468066584562912838103671883547708123439679015514562438808540788664627375189087136650588211678486701345074186913458991142037887941383335195643222008231779879246469519634051627285929305401046617957060422913329243770830421525560211274566668710175942318100557418963583501882126324736518836639719029245436912837036860404089836889698228600358249701068501584690990026851432810832954483415231522567258979327239514307317875497557097111329009726395769220141578788416139387438682388594773380761274325591271206957645204009359300742286585815859141820689410767640261756397787018504112160412226173090241213953599782332148639933837316957710761225593830960572476814023189131809130620036503645292494963304812825662130708620797169390211925247183656275095334071626560600088697514163618364452029610079226653535713983075998408144923586359192879232862988801201342158501961697664725903390149302988718176032411886955109157468698922922395448177721817314154927755458870687049265143950509158381114106329297506913186720694172725647738239169495410651282033746409830285439007241034376774450555426306566461472415619490112127729259895417465653759552856900261997011457556294253697475518595748170381450582134254254537701252860521158001113906834333301517848482875362036934858046302182965385600734211005933205248626243553769172798116944633528116519161583270561823207947652200911783739779956310853791759444494435001343939967632062270256911484614855672940534344569471269318998012725987726663679749690523225598980827247339332595503445904345499518241075158014401290477898864311026281709646428745744159571258522920167898475126651020838749096583768564584673932902500664867399123598460371910884036231534141973003937169106138755561674304512526914967175621961072420302351200728332871372981049685029628767408771545342204305462282141591831861716102505467673128455422041308057252794209076433030052820043963680956994054863521932342666790387218213301022858069858566269324892557080588873268186631461880057718179815424658337781034638588475565443947545949738315188314713757530771111801876273714383750762007376097398279352042896329415982919129927194067881551238882094050194915575701591687079352355534344190162643411366260959329734407887169178791294882780146493978358602399206363320680419567469792695358788431504582062188728398681471998206516946187749359029955426833935828723369604570019879838644656813756625759443888186410306068847245920038824679339838912201295745864391992338123977145340973417166908487504382333595665848608870454195706642210607984978389146163552503051498153214801988901657026449186574261411939882139479867067389998299180593955597189325817742938495906303807887304085647039354429798945082060209556289215134005931635601587651514305890635336735676396616638759593215224431981111570333965409301696818082407361998891445600183688328175466941761961044368688349075268029741724951340436458287822530645975659164277901820593028367901376556781536529270505380199126301633573481330514582387507106143857248482209749908387837652713052722465047167013344825925478973686662234087874377914296511824741314340047097950285313780606925655737572997982792911634454831551070816108053728793769322759197495854559637084461449107859347409236529526966482408350070548784459333502371001912073434828096949152917320963912963406076982722208963467971111978703569276526874202775129862336387719790566936155083432722438045596622586721235204491050570660146217844679964520694377545849347685338159899960126361155722935963294916486536332566118391676571924959738154076750268192060771338079346396782356042517536130465012172430329888366215798556640917561470245408546486452612918453016102791710893734929915976502160643939633353628760089200908397121718828385549397140039895838252026791567818144118753606723622527630001734624365382195482061712440626754355937024342129052224588048404077622471832029352985578100469154331575955490983053001623279437147212228542252817315153208574747164487823729860886240455644693671461260425049203077990255098153629464069230809749935033755789012668248135948981899750853510609869855413201939817609258821474445857698641619727400191191991213143739321895308644324899997932686615953346835445971553735333644075192080881196231823919322185499223408656603405082304822313167556882345581726427627462974079242980090697089749771005232517426118039915253454608794661781456612954197474797125923628546251609692341485766771306752970977004552545649530533710315401030335158350615084578565494341877577424768852984989864652647235937361814650084031748766832216012030509095546828686847792443197816598784908892970049005420342318049259233357722531709516089098136969073828242450247909840735401493151411760148976263514613374161793940380695471144638032074432524016765822372216552773464822502770061903140245750212565511687962546246384569682312343262242145460557909207764570165454765635389590566845745862236282929003530549049325524851546819689442688691015409197974572010770234564775587104505306757070300950167873528158118952354895755792430756312191621624087882407610201116649299538249669186574632328757475536112392721122549719643674562225320371744177942020119234677431349847949322386096184754377917898153683996842840421997006014874145076161536067910838528109566847276654164019881416637023006587261350553921157119354975914382409623815461854964520211669760869541667191036590996090339573098075646215797578131514174345499710436848403437357619974695164696257452091777889259197721213045948331273765993979926986656764790323348718540677264911211241360600468779651792788953999638843383375060465219932745063247718524869621365987308992986607917771322142208235057493765112297763443275038659126870534627222321985904900172296242116591659081098772910616964677957881352895254469453081193605003838936650710635156265839193505237321286594611709829624547212021429803097054145328120052072265505256142436124027643092615900489476081309531144268420006012718395750952993642797033461568088053880732401805328343620550950188711208111753896274300735733786835519733283558178064967713099803871620665031594850997897253959830014391228302663407533979305003818454830551047998379576000915798302403866990360868939780738021365817930177202983436032415666471563580014181691918925801500156623927020697624213965676474397885281671534017810456006624239376686842212284644409312850994788768837099913355846621503829649245498711940186497292082560928583783416304731505944324296739418643635331500180858160942984641771669297542322942509680890370489293819927426863028733510363743381146025585234011930227354407804491410773373629582467269101613254113999924687578938472744789578465321868311789930442865663390484612501007794516931561753192373659486260715745257569819527358037394892607360260624893729872757108056891420400272552483881613341583421114826339690695144097757472496682681926569950163268263109040292422510300411458816911447176094450385693401617394678806326709926457736671370092885831985476879482075220911549738289107004240950496295596977766358588671035556500649576532875141616838539596802194005108867524212250126937513574039203894766834928313684014383258048554759757484849174980512141970687219227333097793643164050838537595007959706331691714038474333011053076482934980447477494285780544191991638924664319598801506187782315545825654296581073950915463474724533836166369656260739592148532745422091692417883631385199775060160707328614981229563198974845802319266378864572228271004671598553367969714971274364983104066890721247462442101326568538625526713798429614122891537835845421128185766421722028489833017732348984312566285323074527628522357389315668508502672006288740763546060802874974105805765842902771352738883857812192521052746125281337048954274266333723321275431861241840748444361436003631493663996466831715230197772549688897370464754075870702918558151301135704090981754508386442232314382169054813205001049312482897818042218544814252830753498173791898756693303153060897780759289708756707628744229256300353985455515644323524568896342029341607582866067620493008692670275778136590783011857390963880963094889118531173201663019704451286284892122822757858956255177316255671370204954899853720768551268579316854666393704761977136901910383169938572957851536979215919157570189608156760891623350914005777023422949819353387463539182206364278997504941951796098750854488141715854236496576111723219569287046217677834039391132332357168315977504285364034649584420293240676933607307336253530115740792307544719886176229684327507755646742924595180764436047759138995019131115270694079980330916098041130023998907185833277185004746614284456343274393579468064210953916795011254805270669188310493354912867220140515908575657744174201601741382738897346072106077571551748515345987527376548998278479800796628090501622275909304481889174416031065439101032053811946205179011166968945628872484092528552521250459327775442089915435626407730666102845315720398530917526979613400444596630616626118670339130582930835569038134792495950581268323172675989224317282933586961091877737916237369206423420239042249123503560724030096560713664679322709979732748743900611858362459675628477398627578259506794891219490037426012186932259339331566514166298846481208320528411084743689495073754865926573408734823547240921337426530105926618841948160389306157797919581722771967264442234495973010537332002196791218542118814040452902978541409297465707764767349101705129334088396341143226351761543400182286830199306521285238832839109489491823535407835067324838278245418358294374546899386341777962935066409645737748728240076381907055485264557152010424973403738915559811808677570939244827547321261775094701457133046455883463686462426942465878851381841968125208300800634903560619462234140326339385398689222869812507641840814261984468010290493939293897125792260296422414414211970614936161982815225674850738274567179826594450528381337676284276321422123367019486567418967265099873824267554393653521025634044334770898951441597719421966777369751118726977073981213344255922177962413764754421155282081267299794568516789069469008924766352636640901740206177419619737003038967260609202265668647132243221660270210880470894135354530834208817601885595532136812794814523749004139487708167896466812441154455218064865362890456230600873577156761780135650088065992826227760735498203574801215853171574675510418940282653326067414475251563917443694340818011681034281911592482456546753680654294533422867841834840559434756822867682316575636434305874686132144517719203315608912759679668630945608768066231287769124772839878017767821914892424107874243507852248983028015255455786358768257196351504573582407960677769620275941062832985174950252915284195300706155336210179665646517807850857007765626995178853429234198867238563237889227240125221855217867342355019555463356556733737286907053235044917003615832533136700973714514786968980706083012498379136180181366758936227186027843557493996137337498869086148041448976761566591808954821073271921233617057689692703671098231155565519849322198742418889206992218489395098245372453896489761331884290846728089100928614657358367454330559218156811176458827693177040299300655938787590519868179763557239312921447743063311908957893114043453554284434178919671452796218967995101744687729055540553569991446508662054048898844140051408345906808753044445076998092292439267845672350194496694261651674979308335057526018721322821241338464578052923759594216340062922348701207849987459476140135877545199945299131168728321001970037747047482225554558346774953645449546612501387277425371164674774909466708801543942748140081081179984555262801251898794008975456411991844256703102744086033438228138221193928958186391417379794558324899845775946937330315593082752353906262404631760680469204088611120380704373566950948488914827836823434517758352802774508606169857897473171774992237184582434097877508351503396772449714323845836427676229408401893744866340492203907163745324476349335448861413453516197588226599106171545135463048304244008074741840193850577460615604670343890827602461408487543719354858429215353610182663908010910856110764119821603407074330574805812067636274800247065746996788418125455446839500623626222739636033942334508717138504400307866444212045612437691656304916186937015325438627202166172071541026783735159057723483492280879343688258749646184624212583406729228861909577945168895541678113995812232343176766781860864844100396184641250828033474710727470531925880378490659057266298393588011638525762086557017369910003572059341839553989859338982117704834447779739714086964182637593763080107800946039162360401218548748067660005559219873556807717724682461195987145741648411129520499142964103115571498292029124438713778672874398810042762856682648441511957654347015855587999181304964723533257025472349462303778224382670043008061150754780316312164797748602368065405872256803633643275216476585787364520710713316844858764848130413134045988129393089534587960425703035374903946226429938951007950615677807014612956575794068780866045271094768183992659200056546300516796586058465948445679107319009241772099335939972425671519047113072471558241159977620555370654664944139267634654364861003017417719299540544726948649099445826917517422869945397452004926208386642510312424562869875563771008404147010630419445853507417723376002180978647510264347054656562250694661375586150903557640291796480061271170441988383830491053858505050419568765758448023923002306019595978564357182658651196850121887297987541514880990724750847755026414162226917292952722866435330969577329813498834633244687096135954609225054590570391734434160993073691859839048692078144422400199251979807754478250578551886686872630692257506953332795158545815806578369093688633007081506879422390305782483181397147054117125233689170663833743277497344492306145805316534335410033343459422087591155530268653830330445161882990739336450068386320201615015570216067971359305841437794490245723985336785587352476794304037259456998627870791149566786084920404264398721951173743853695162357655566740792775258946161418969324535089817272315023711745602559858915424665592883164885149686946290495967007745251057714353461457779846416879085703045341681281907779719068462757526801074258197365209175596856038760149177498745118868168310439866578870362733157453416154003619913177906648843583760526697360817910452734692222179457014940427388789094854945100246296319327530659428777134697635337996422907984645161075928331975688434487900948842308554624369051228216998754751225100843593413180114088409827125215286664712315510663591746910920723721551019988060044391141599108638019147124054563635297405817404624766950904276521011817310237087219969719116045153203434661073791057242884764867803213423928472064215554246508560903699306996610834053960430230288732149092426742955210278643750211715020455025863771991440520875267768860160305049087446161621415964991922085469292805007105215065220307814013109197356953879400259016038579236374701815155467962116853696409378162409830273991482059112456071296270030231404835199787356227441752280017480040331259073519623528558566379497016646894123632799404451336850720559689328749482638775192612146782254794115655480073585092663841514016331133999596668162717604296338680605136749268766278660126740143768952189505764442966030326297950863630799005459780494811388487107098353273431601118507229204839427785265992522607303590991575210755396701718634552490886780510305571492202080041359701748326747956414876451291079310120446940184676509956975628876815896974343874942526766118989088037091434778932384383646694417177928842247133018121581882798316852298930035453787333436332946962787710363572921577412201534421626595880138926024764869680126148191478042657769475807057028214977256234906057481436784864055935860653000253295865485958728800117456186925786718044889900441059377097754755950613828468440951182516800350491490179390409908044514863268728936139174021238121929606325679823891213437353350563418437967177217653850326223470931493664151550550346779258260516163983777465172057799893689070802720417863343626490196491851613101430812655738818560052794712700255916672224992573370535862403510100777476124841675327846364256832908665513306669586152037327383230298412650756374639041397334714475950978979310726490159913885723890838112864198818759601278207781212482723619250477432264008019058084013915185322418983179042445021952580959703340908531636451447474463124558092748352037604934298536904987763315611677877032855186003947870457396661703763699770530007430997416799533890304028169357545129776898596413763737155406009173163089988223248593243533995653814155246942134864354581953292154823588175110638309644692767763204746896161946082086791872258719059265782830774655613463611559022839149121861737311116867008179942588842782154408998101891967386874517425577059817597938751226150079704133878918268004070736994515427316384616989689006906459685678936683327572267679661203028817564160468709845539346779446416713474937578121034537192327051928375121632753775158886261272554701009709641640871122892823891536524596558739306214321502271552996987703013810805337245834261107597491739629452423608287042352942538908644119559980939174608183092402336781271164945918469479848411908358693614973867091449566190620185247064389117021026591055455985817168293945478744997791882174941394588958255077309650839418896520311144719389016298305521151124072206817573295515453837320417990066756770730317018860227911726360725095192521262421422735155316376363020727485738392587404422216982200472626464323174859381524436686889649615078238338269493078708883615445106351771282919807957810081043680910688659255700205838970178707087793043731996089568208323107874744781300690418648651306993340726585565079913682855500364128457605158417739158630564075385863588471676563109977218328353919064011304260901956756488671422019739103895246234961387937452603334388180321840575806063100842116726343244070591965444405736084070595070337543888020051447210793436917868160657652074263670356348769237579478131391760187271974191451052837723703776168117216070709940936344743665687901975597209107764916495861796497493949629096780391189280374965803914213028025590925327981431580022579276436642351307747982155820558183036558991776225758350241729287912561625337531131155825928253186435735166103684121454967736241950045410763989087194109839425842391582684355348619995146270575598757700700685289803520597289332516163579990704176807102234968313514220924519183878545892496785241605048121301416499127241780804460055700860308784338845399780811602868037705900955475547650348910484437267834922020783842126346376536751416781629297919115081210572977389009098697196109174627014229357743369503058819005789977587953745145048004632224061524429632381143095572278894501604282734963992171954459417757279683271708839294595916837482396613864360732675229263186092278378418490742031036564859395522190212885301331838748380344815084757741600092211839965452375984531562502328566520844303772088261050994698850331996855809549098766998885978026757168504048130236328106700287449388698910098367388024046428522399955540731204925387286240434931878583429287649132979433266229848376711456440231472998645582697863608990926815863795735214248861189013649743279049797763738307274016545359496665536499504847671409941266235603239214441143148350097886350063675995375502581003820978653057498151555571593177727326703707037852910574133988390601646317370594527761913283015565585156254112718590680176739774884996519077659072074029304882135321644778139601584469669165888369699655322162575906515567294006288710894680933760777419359570464225356798864078641553600706829144575805953679331821318597654667388720869301748754873394311286264429535148873936801867894191286003659752220591966960974265044823972564801061560636224896879965466591107032145273952409131321148839665060580370702192210223353565749999474491028508489673601309737777443054049297070556734555629435345850417107275069251912785150430990001825162796619714001835609969662998639841990526920699136881232746191197053288530675583856115072301713744461448201206227313996166119020063117479205135686043750409849142145373895864200868079640749228368899418294455310226492710795907655631262463977760189140014500856978848516793274278709792426321553901674879383597911649853035284398553189121928283168615049520634407856558570999700608711502334145852041844401475289839251003353010505408372721001393437488993103285378910426141302442654714398777714960102693616037735206495450402304486161625155675724247713279386753190005444107382675333835248588417012822962667511635976337332739033367639088113193431280975559242471044446821217220403560949836272654321765639395339782214679408196298080204316944133669331070730662264570358975377690514875589276885557722675449777125016631933148156529693152064926939353448090814042407337803032303477074295727064984064490666835584158438528185054002398445322842416589618120383859128167752966548399163047039106604168546869297108163582174891878389535193843667782022349674031975691880853583392615103521665915766086747798604617046921080358235163793390038726969830674236436515630720813763019101791584288406278275865843198175625594326145520110917359356047087645805574575180120711302235963454958955362757361405664258608510392888035544001359600474086680624698437595856525832651987818088601043586868007294524042410597245440012306496822766083952384966107398673517505761823004297224133040053840423195840204356747516930436287339118137678809683809184487322941264080222766766731305987888803305449473429675496391132248971497079001738270439126928498758529322314695438677716342175240707099185320382191253303305322240658254843506317884550032884654938624190394514008797376158329985348757958756969641423913719757172296433471667153291781259367068583018575443870555969551632827841010212283808650404425380201984063793502370218711286808348852427854248752678617133141087126121885011297247045966920011169970113475281049123381415642782187908740966340782078945990900904113652727462980221216770464314982913441216675938432729840152253246070551876321544017643030757133018656871102560925874159561013819747277294548184050597849664574889839390263021075300483544504553731236282621076595562477020349495530644110424800002951359539707818526689460370857951279546768678979775931767325061190080272030049215850883674020070350038188211452919644552437312110696067765941495637904950495415319680564044319453156327799259263738214675611455729249847617444790839987662202658548576113246857069766464366907957429527634063311218375275594075118635877020859464302197711612449735769963541341223398434164602367386153838251536035506386491651182048458133321046509149501834952609400793282990645032272572479990612658782407221385186085199259582233634291265082661267885831697987106776609762686767224175304725776831916244533079573342222985581402509190767819156658531345963962411688851444980469474021157395660494911674970547367355422903655483932509668255923363718181809827315741043193105877098404297028611340656325290830794013224806082002266119206125842797176849986958317731991213080397319265258225930101707840782252915241202521132483781468928682429777450616312347249386472647435198258250533750465894038972653173770937132745827352109239872870910963803862833209529008765848001511526424100068123189315389051101769912827188109940911295639166779487506199988647512980262965565072855913744392731441690815128528538364590162875748140111335236077287700962188691595205870385563311904191370030454912225573951759665160062729280454527909532804395989722749000618868184927890965849794321527423130323153988492614407560690467720095940115763050026815092651441926162422789149332529043097831447475485166368690601694796974885941414202974319004898578090161444068610473750993188373295208945236224406452415612336759029343525787726644433570443161230003881777500416301989239235424365812063549957883740302365020606927317601772989839721259507544666590384654976115510777792920824600907745859376105266724018900862023108769925920160766645476358802417774965593609551889463848781705396582266058645230276757106632105777868639941553647078189224741249946830924827981401538108818531201472179075175107103461834557130677899036630880819774827462628935267868895850333163825987044590958079976515445762673816055908171881100700054742566345370648874818142019907550608045886854916437278434980539536783749787677300637708982496868317405492176155963089642930609850224059342106687402839648534630244663143957248964574445546095763409631929525642849036713150214728685018235672831418045980327742450458717805148693472860559945095915729581441226820731477130514258983511750756181438025064579216334658263759493035453999523845433504736613320344983653898275740550638895377413100718880950635388793328421556768711597046502329791574853001861617223355438332201593695843839196628868872026966027650722085393151024475362995716725538419033310913364284931828598834448930145839581619673895548773907388034496354041922409421843970129103927942139073199460955836537566452100926655588908356972320997753978148989534190934359832557052038951460939006832159612860325742087176361999273772039708486241640788907371606821460680024497565192273562474789520675773697281448312521066271126771745528892280505166465994666206096363061751845938938992958425737735586797613926995041953269553201504826443540973525953652484956190087783023480814552824920957953254329872342649668200106245648985347151655999097998885618276413313670534990057940918937687867401004116167412390355414627859213638140892841915884254491975076026763414316601665309993532512028426329766073991066059110139047778569216452196139872734892949038500718758825398440012676118778111666482614624439710358252765825578286733553897112212035211861547903675293605203487730523191245047706649422448828849096658403071071363891141518027287746984351926815504147337509789318312436162798289007920188097973288570815623133880730284703571089033623906076014389163054546481951041999317390388845428535790942227834700893732199366288807125843664198590308536502151339596066246632570179856507376526247054354569852850042599181145403756627478439891434244328810160025262122198837960386870110413495995999372926738538563612833494196174545582521362163939606570335411942804449107102215020375355489159817741910594288304154199953653301162544165976562067397268542318597106135943217101578020958971184234522308549798029362044328192913816103456092231316345936167784635331045519112897220051225728852217305433743144768351975371004432777476918992670518322874756461782004396769583476083203439802881860212496918502807023452835028177104214765453944799271910245008340012156273203695404394914288722059651737058072813256681384645519991325649776778499835301004030997554968104270404715758755675566925485919775944460955765574290566771450421291697230114176040802239298506143180656734708522887499754652043623959568204503845873357077344819941684430375817267272898495951088824722850914227079574131510158814135971315495742773440591473329233506380010061216806064428906340748227557327471717672033816973206258903934007107325413728748896023300957505843474064152218206631418305880511578997356188827481815929192500056770163935424093917830261951606353976076872958035605623186808959959970533516010253465724720491452174188226021763582721751957459227497628664396863014065247474657455961200243315790444589427066875437774657478726979887323132091261829875147925669948238899507427150946461420255690550722687675854546033359851876719359867975267127852736859951333669267731079289169054504233203054473990103567244135931558231925713281134608180345174529247043242510673953240424569362062308735557757651479707285712319288021693073579254440489438911959749751345100344236426549127757122853826534570648265520262392375287810991328899483374264735302895809984995261772255764355892259651143715193393522979640170774241991156570092632372916634707785626654339804580631209440724325126094876905859225305352772938095813654097869062464355566311212881036500296374591828747415858093182767940188321798804084863058611602355514312359847506954755264037574834154708443667391848014015030172549603600010581860221980512418263261678217723447730388293933234811048856748053137989233019636438091135915754227715348633554515829720459441837161363175666036051778396288524145866799060558080670571973192464311348383683224480019260192630224538187480528161279492236434701024865107713023397326602414982538046194035174604036298197386141703441991487259472237292959154109709899892602119437567943473038714431860471542296087452057873309502451899913383373989680776691034149027799681882839528185985331995035864869403129249655240053448952945334370828345069001112610573715456843134803492687210382768256619282189314356665228938281106741793493972353585849953695160579503681926046677279901450579024183395124823352808543847658104526807157502504752551217509455340135203996888726988406042715827002065060445579713472375931371210075767198565162322142358305141323428743741320853569385834387147404411087138744041487622348697194742341717642947289195449913262812878808002804376305636982193007540883478597646419857720861272383474269471515033610746765570567831204847067557398392703271847576060557734176486435294499297553866490652647199950309532722469906372676793756890378525983603144831137352182369169390536384908631559817380218028107036676299106001379198235341674221759708145416973001303720465532542930138213560279654947660647803952129077466237491730133503193612790064858046409296182496769521351845640861321934607356465872427974215224658820854820606441552403164943051153846829027594106419630871412603380878633392646444512007764924369558139095288331546916399675472433033759188385802291533128689062924020211989460858609445172173824394068942471578341832318861938842956889908576507664123269811518933413457193924570853853695674037740257663351630452560387331315592941664043314309164823111948231234849136637727837023228948258611740303723571920876379536861938855686667029326923193577304393548201575156313204749850389935434409797717046860599817075260343020872247585327302529807625778009711044446169782691051299380619317535405584493816804676305691712329177661658345348724035072314358572528394660748881803128744608068500308835223545018907051535242837482026521920988281577155759698485925605677875810063731538558492978317916534800498220170168468577860367381448031963453166644547974162386047271069378100429205712642618008059736312580396268532487804394014685980473434248310030353415813769531788445904493720943536755198451696548806839105422488715609101157357869677395704324883682875607159318704086662250344239460633575242367318595955882069770579575544439810853260874196312643568728152537799788050672451468495854353071691574496600013290994549875874363409633068689773697800879551414175921614338055578256175436355293001217773272187140455438743467765065933431242367737386818712269536409097496336430569724625225559788437922026869136404286217317891247700405785079456857379638667849152323845225056056447327893115763331705370730514543958210715567097704669857413746261647056644246980838040139888384793792622674119292071104236081624974109328319521892505314829735706156769036150970766750149693552704628622896854013785652727298644789928616410107231888692506204650960308005815506117485272508293431645854039111903932870439454886171659257015236426380002055411148575980578180644729130992253641804043759095622721336151274320793328202233710643178033014469704080991172900802912009054524547491345337312703966315890580393439469934879995073005045686967841702318904965759853888940057787597806080503239970795501180948127607420288893077652203422592621493095284351023878738210012624589208116066461326647677943245042461651993192063244580270076499852726079666333429639762089915741693643104329170777641228374383649352440476882343922696105125948463196063298444934645123427662191520889733740022842712811709449191066698377562058069594923697902086877457566897170987920751754286702045302638486780853983227233632765667206882825303528344900287617392608622806069199391379147113351174886254995045631675895208512000126326148064322712890643790175750312178567880716357158915828124843660194169494102805000242597973398316674417034871102646385933394488387247533505171480815986379013454342273377411088364086161773543975519592753345295552580115802774009152222262992814712622246671349420965506294066790502763359871150769901366034193677714661072234548913731612092749523659271647965251990260497640369203223787359164415336435008140171666209732816586435703194506753566199595987458295178722237808857303017732159827616328940975518275314499538365135046436448014155438474689875676605949386495646513515621633829855290661094969289395766631127372941995748387544478848456642983352765521612380203291396960141782774725463544215635092557251805643147456679072604018098850758029954643858800119238827040763993389307761541481001519060498669559502629779471223358658758991586113876431548279197982667862610965929383264309234628401926969854466929235331382308040277960677364059504390901257907049750486275006755094834448762976426207218914133201618159182857121602269929903423695309012144042351719875352484947512590230852069576734795615656451687897730927294170801383181791986226365293883475535896679430227318564747474531458409705539925245152586641827160857714275371068075338437627780262553031143597209045249966598473797662432851735601620537253307607129102983187778392155823030522264369205801182255396698401484897916893804880882067397293111192855259602914895870937615474727492459085926889926352580351806339358192538082851692207004074016993681345764001933487519617111808821943293503901613110357087800365619408336550275637793257272292182783022853364863066793690240156406786183498682907728345523509139582856909034278390258940193251950170334901263771927430125299599666726985189430330513850667337508762939786261750824649651190141165722109538198072999397706788144815851725157148990246877898232483535312632026393228492642458484063939478428383025247313835466205564696850167142048496445507387081306875652490017182042011103906492769567434288584745632943374782126654684620392806115137572143693292049422636985044783681880345314976704081095679938710726962091422560302484729889747879925710686574563109603731313415525523837228318970107050506950860968280846190583974874267946460141949789214822729276070747859287102373761491216580623509602167724637259560323863455175360227451618887515572814843666054374524875078185691915358564319205046385848381815105151243608943552381476920951436828164838051145272058156443563168683721771905704546962139341857517830594857216801058290001178001053431713806950308835459176863586389738046961178577247864507480435100152605134922073402228933279476226436712174225931359067993978210210224820798264034379239604228626676534488397363101371044706784603360393145875612893400398458933155715207114455398845252407112825036202966031388228216081188364982014343131394664772102828043668028342504394104483507003468992318719313475662091751033363179781370779263657868094655525547711965549073129304561492925975405684154837514714665863927673854223100836478816026893796498277397205184290269957014743737123504633700079956998606204728547393257396976058583666454741015778844422405630707626137698986292528613029957656342611980813805016909577869395830377953657901881370921772150349140928438704252969121470030842099970836962313822983756665113347889665375467558522741052447990544191348838958586710569448296412143183223669957451407338006758412466132597021688667033384387793231354981546360902192587340494688543855868392302320652123549987828952823774738018099000706972654925817362569897811231699789128784562246546841080546816931005078734870261574003974075238707112063233795585771783850519588448526867889695961552314568844289135889997001181484797392901296242195814378520281042410760337460064566423292076704594507579445871727016453842096584210796650534586538044098626097577179400731928647274117332235641205324298535484483206708913243861986025475517982730916140883043487703758651344237124836482580634018931012082489657363556729353534392296431208957154335711557743156242041707207873669144005910691557819168543573131089852550206105053578831287251955002142524506045886116223007787630179549094665269898133609538073762585026957106806400045619447646305507100624297698060163592212865128371627113081048769487534314780542746290288809762956454810364994978351482665026948694642315277733966702723347044008143369059731315701062269621667304025855070794701261148957303017641961545103562619018797714526077126993898241982756683700785889552159407012544579436561178099114222657204680007770195798921453300846681060929160825567014594041069772902470672874990977923712236054830906445291992014440553008146797057038644073840667299047336137278772996026349310779423586983372417975250886708499416969850597739209011500492798992667374400542237293164573018410057345875256280530457834520533463415474856979957810142917417489779671817671558011875025717140266272404345548141536737596024991573296342942298940248300089413657864395335371473854636321194987949335685843456942576179815407041067819341986700480559802476104871323794384220452786815447666476515444403641892191885685584295076169390614059557808272325195847960049086422720291203892924417353878067345394881857110694341140393127627487481284026307982880021753329778796965311664875984898665004089702456518142904201421436022708935270018137628204268013310886024446080675574703530174138808259128636474312002838694046635819585938046796641383575617823391028094325072880443594014334834300602453339043068541990783330222994454547790765877049414475694414170686194604349135824287452700658370235322526314661716588585116998822026685908650279339491830365100687312980066546524329465721667567719600759509739108011174861064372169214656205626857947465197963702299225553817503255703580619348203417058863689423673793119836823581647983564832080386811025427546007454753523666479411654274771581091372879658291991923866732639729771598740672940482437710526516196494804588140209223670036851951808286613395192264892825487213423399186533065154705827276556065248481907715972006655961773326838560920655927543173453715403455637909856552173398995601303823927752976674031443807241999817525789849273988461651077985538035754792743503415890313045989172313017154396862410136779682467626112745344969819686979944137258008716091140252792113319586135501336261083964399160527375388913509862624102046210982641743277104923920619338974437832389646139917266563183005450834716267915953297630506508982157811938396653061531476303388307927355172136860742412502100853416999648666680266792772691402531550318731021558821441554623485027820218348025983379810417521202415432475145546278490108757242354398436714406725145470137352326928172649072770936735008096719102086382905472213074913332559003064271713584098827329308386742500995083409800943345108412325227296647524781368833935738080541738627511334635071840582906552364608268825967127268841121357076000101398138570659282768773996924040509732487454518355560106283487878836389770776024537888050821553877039927433603799521674486503201520006747589043674569914117167898319171458235996180369332999933589974790767857115832046031645874310270568251567902201786368703500492248862451667889462737962993182476873512581350754115051963951205066508180748059023482096615529709713238515092967520483851855035010513598403566078447466446650657999504934759563356027188400116385288230107087331558679840452629788055775541743857324295123575717864985564168992827566367562937405387474891523943168928386319445340083114334447751074579940158189017311973898448309400598286543373685282483169118845931242572421835664238640068198177521691055240148482530361095922759275742521097027281961908700540600269832555656014394108929409725506239207206800074116405535041654604043250970817632035472180971569769096741695822120694910178139242102301012134699978789974706243418540792783793218793149087387570383249788114921486065544680255420727699117412564612387307797101417356420326294124924507721705983403900494834997141925789951065399725974024320080271083318631216933395150179899279095932362724671757558837718101375421620190583959511653487743566086761667244701896665997365510879689843447380174005004034963680563582303097354912468610470898009408707537980346157700961763271928424598518439350537824881263400792819242373590115186137992211149953732676719596342693749732896983967550990238002834914720583032232428638544574754618131616592593663785306271482849552756459727750906548989286542962998868324920184164942060862242671760173952537040948736315088250173257895641835436533944694092627964683390502383840186776387720754112490634510135050301334085649398361008227688963754499954720444328342918389254046881847001312245942061123786072267659580708568624414547271406989782057320673839890498082398589205504151154109000617253379435054810478976790049864436782569869644721515027266879717486321676048629912221743523684574077481049125702365378841006059187764845616909036853939948780359449085798431168239814523050129548065343689356630255153565692348145902808996173313229345500900503398388579117021908294917714263928542707928038599630567731724403765469843936978095850509086140917907445907657375161973585286541175755167234600573739423628258911568369354828988765519964125785181797161424290141333848140564721962256592998605621889993639748998057115195022057608832320349805648970546090972127610491670661494060688120539450980350357000452440497145138069156100584770998503296847099376182237862566641883041236666949347367397857288503223950861796340478046293926447044619842521804875601412674751951190660978344323189628210751648966285627514323208594744823860780664110912433015710352995279203366103113476231773961046851902070447035796810020701424744913068221317003329210013343284260413163156420782740556278119901215516411495928139826250439654423194132737929956261655177801074647370080279695193321868813033064478272924400122194573931761512705135423732219209696609253469880019456913960093994800343588614246724491211159305660520736250111788068221908568769991927637271130006247073186161147579306603953311591377250139998662109253333489904468466441037221652957699614745470131641296791438913306079830900208177682980410680377499100971889481863024380289635369033055607799415835544886402602101420280398135949391956234158616278989420213444920657021961073272740803600499598321808187311591055191191697160904517759547689539893719795654537308660572329819994920869525536272380363752959029208832581339326675649189593236724461607092893511988861163017387427986406508959629172125417006351825126882067468703093691160567148522954650982979926521358107682717631945985417910496231729143553996085511977668830131343965075363294740921401184779963629119621623732568464814718008911021029709077777971326593767939902706359144989371663331234402401242798270116538278309545772770164313493295567914919723083305973924697367901078134177764247851165701965608034801783539843558236966156706272513861543979772319635459858653499030279001388857731725640651498122166161921064406019967416866168443081690890646531431260888190744398031859871534401106013622181028824251401829388300583839126841635158581462479441163014813796290487017090363384381847377982312643044052488391816829135839174610940868096324359881344944013493329600996401225456537999324844396214832741538309003941027011195835657779068028968868711014814199250086954279034348019553223382886618205977692395177801347580492892915701445674997285405101728822078526352370228145458777521901186139586853507527370645875593439524768126412839845174364672031758191062149119859865626756517497980072630407136088972309132683125274038034617930450856459169225913224338359878732681203369149720158055829127921269158889195732454833880222860672720773904247487995293879009228958755965180170109673051245604876242733975957881282835431724730768103187383037245028919223812286868554375920360496002549074657013458731874638715165667557238775304264770707990735605534790823907279566624083455371824148974149978468176391532701628686506904907595950161744960504398553754942399184656552746217648579434043335179007595429629640805773445261096032446782402830032355138472293081475864260549135034842917682908387026796578864184841123446439954833908575355371792332241066216516298656078058924036075841063987571143421637658054499955106505286433807457028500831494522610625847045150664713378344496721213740074950101529990254699987575306331503628516592736903042823352792262842069003322336200823938295765813375193923292394723181433405679709212197071463089575143638996858264430474460582886651562249666172225182446819164283243024425912983085715313959385769062096371251365960589541680833446246987283204070942365280138084386178601697919529697246233692533359690212378429912410703272760575304929003541736916865755691661749383892044876416895979217896454369664637187952303467480182661115527519286635098077354095792597512385606390540254897450617524217995481832949995125951414933092904031487638602199472611986062235470659419842046359100943327776776312780943423390270329104491995964005685484906091897048583183836322818827309918746014456329002162210550659441863423574510885592673082211281130980495934806239331925131908537464283720072455920903691564538130245066170317548009109517347006078408466364112666751964716131285239446135023643653643170908241980703712679134949525610885356430982560110130859719938676376457008412677266264413453846852074868588437700859117035531111171977985785695591160986471830967759747614157422051642509098571961766279073441676742600272687524930331897421254134795843432429156115680150654191575575810401684579810264978974771878543153322335013324555723271393123721467305218318274894994981947037438162292073921420032192226458922536169023313001897116971297981857539449872854653893291849859641539015983317717449262530223441904607815290572832958912517232269780656286774293103135508675296849485850285286025491760588944151767372067666798772259839049861143683842677610806928921245294552442016104962838620345011865558055515208166680396514314995024338715103928281878282965838604323356876972583115508819801270928626902023905752122228173339452901736698552564316869983522939972137079494903859550472051755504297911278777758521417630174626989376803703830874369020261470341357956988879384623735233831197456794142443049551627844560965081856337329805849307992467350884515818954232538651856473511182644128483817674234999074190482040483042176036999439724714532271569324075024386831346883111719133576434745631226518370713039635114819575239035968057680799964898235020324587814755376702714245648861879152003149566643296142734246369071749565837330725158004050981317695059710267113002788720744406573645250987470093033723858287361633964196151626850857078195721402758826084009381187683397433488068049031310231790132542772620579446823752488311206167817055178649639030299971904678287162821701341395357581793274189544224272602264113513458454375729043419582036407871931451666921259536486485162662448035873669266506597578569292684606824484086188392281927220241533519251550430799484412644580204406821860375331780405857076667954542347302093554985070360079026697707334099880292011883761243118840325516228296270555205505142628588211090334804708030893337781169148603748275407164156903433724774928056465347253440443749636463664657268149541573152825477762853511482362160676475374333268283995037085888400446418430642960673461873496725500761127664509290262256633367544016662765427810682465816876456375525801912865948116723746034996873931606381624577756502177606853602380844771039269061021975405976695984429319387811339110147435532024105294041991232882612372757876809006576619253980586311358990962572429640009426370411245070680623191435664972774380247093994738333623601703008809988742486294411941286849513820001323750836715831869997884740845482816137260205687309731672830666747528618396096251099549462438940055887463895819941800861267693158039925997195892296753487423230670223400478891328081438210721318078682396426067350471464361153453624041074135008074349788405028051154211895745009908925795035319084211368178301245928591799269277100924599043858815679836481474261538173593298457804542067105821594871651824277624598484681271424687359393769291387823378324284611495077565847844926158547619383779177183434169715523520467960524731230697672544494251968082028766458737917293135101846492878077589554848860584675276092000787058023904307280593100214212774635712149791229593544244054601486691397225737107089969623641159900161921887687178873012222309518677883950339238274893733048339017996670664930076483511862663798743521848814914217111110302608457655102015684394312455668864078844458050559777186530216664274697715048937638230674699777655932260440733010653051746111674162678836043381583351447826725669209711571958097800532009963684282760527955305188400665409723524769916000292514879546298970365102207818999463578416627241434848904366170711154856148628114166490232375904946273723208266823291284625412270359492876893627774043611304504520353671459655580187168092234686512355262688392676266102840551693968678149785002510106712618098775831812631413693830845332456862648762029628116388356945114108427644691918521175203553616394721430598651782591456693820476957776842587046661237498137563415842053357033752834368881043237405526925691833256697245004011531473290356762732120734803693037816488411897326058501669446795759942534159960465144476719553466737669669018090570616164230703522985621400943514800576576953327351932436816727933154499734678455417523892265618853696681898311501186184942873572274543408405935898683688764600579834993402844091581897051324508989453583866894908115230422039280581539701153984937456249138863765881352696241861493302792682402606453385097334463363971746676849105890495192470750470048926032187710653180456276618728487036833115165034989887037808883557051743610166215820098265604540446147382090204513866323842970739760235272261516656496994090585454957801744090507434747885426785779113243743880215762868397668476656511957793205480596481320951293929873358928063532743313683259421217707995598017053028223502327865921322374310186918186603013357553559938043726147580606724232702436816100003943120373695595391177857124755194570190202587020798365916820959761160168575773461722829875808338167148405749694519703628121432833781940652361150611404173707053332515911047109254104072700767168199889827135096848873842994088144836396013731268006717790878282146205888210582309552624637346488656492541781808496351685469166752974077143989390707780764632565120618999339531426109741640026134742245220050606230653364568893722414990422355925812189282941987315977689550646183550870972447709265940989182426003920387982623408600673528939774699612639297075946198281185062166433463931760026090538208234226874801813620436989887595714865113039280926927644951593679385489700179675483139311034481718119690456725644294694768506280617849153968454300477398542649056666440018993929899594705481933852609496465825629859088796625099046683852296016372938419989430976096934671540510662846620945165166763916536310496122247555055158954398612969547613495441530787082401656519821294987666999055650558780301050796001526615645768675339389039443580231270856670616632221082089612199395683165527135097725202578581558546576179005715394317840056809034283338397103456821061238893843334684633461807095599709705931332217792768592651906005873467955269697995636799618201800236586639825168086071697378987599848616217965765881193585558916676739365983186638054530240333275388123470343143436682886320518567913232881621922465907228105026976730098768718032421142212257019075095284029030282279572650985499038952715458238478411750932476593136996280642364839954705094250421461677819613018057813758647174226568778255972148983654224096617580638706652668940877269513372332053564433307183072560127852376089108790122339127119868228383340228448842251949025488474156246157780280184926002435716374470895102557366709983719768918239055855841639208761446435071012678150725868882447740447642735299719927136031644931251048421578015977878624558507427095325221187752195793049250776161040776888443567302962697902360661930104364534416853799095589721250212452610459116411143714798678182366918408382089372747682412677856670887549982485645562992554816550622420109780705053301336224852242999416629086238920731875097294257205640761849668744077492231897185848709123274319556641232959332469290925328802950003260027185896718551051924867323114389816078922681579437764386133431506824854281562579453318296516990643611019808199154277111269115745844843600962747475411838388515533865994169498165789047689508417561646923908076159062768943910947127233475823466774035239742269455683988753212227994736958984884124376201913741718622000897190052619045076087164549785615142164341666825997911629884756022128565786923466857439910613262957698618992459278670293021655678964510491639874579282917719469848081101297153239222180155899288777954672751336921515446507235359850155114836243716005839733410246736487529621155161003195640392723843280652615363704747675484280511706730930700598292122495706748309633526053959348064500590537583101902033577676298590311594430339703013575622238598689604187606609568586357986492477331622278044465662125394638420182722654755435987242306111349766830663502449324854743810972764811201927216800003041986446868942578597511903020065323550449731274181378240212587545058945806169397866030291848535476396173338045006371073944343947154209170727820193541565521817847865710937306164678013504656538901937433160657170266759333929219369140322727013199827820797665027749802974255288796052009433529732309042567636230939677833920584894149624949752466746185191017933401663680439591643479688498762289668871809141161003323469858513377765658858096110307616822687161523195897755721611707422079259794147375924619049599554928610375825723553030880456509553266918920247485726481107834750352831479209899882475984571652215999761489874517668691448274050291065168795551544648000108165096735017173082206996435645259411282971097691769790513416820996641974946434254113510938132716663116259442786156021012336374491820971644508603553582714091399068185914040916017872684626992225399438100551945452106442583924507908960415325271762614146766868188850834901807010330973629972086818417408497512212054505197391957595793549488285755710154484229325059170425634695198911534303732232239870574579360142933303505573404306838966193281110624208431993472747472564313935405235477583733953312472913512190651992253253143233753341568737171144184779170283795969212772745754878430473390585510270241489103696616581948412217743108723805696502949812355618427532309234797307258960004241867995195242174785564784712368616555713745399999186646749448040340090817178217951619206517663249098961302100267152500702609899005490137915868405035580918419501231134777711201362193287567270382109341770827804135307235034815149924104883516814072184178624237003735072952913143816044482396346174749766322166438322495471880782343722468465090514101500613798036442914053605634345067003177869615942798625817913527370280656803455376426023527056949992962972892330172382209560771154109094151690029002703933459144964647137859574437987356253436383968900758429875855705381609216983503617436835964542832150553717929502942857504746799092621380098482234794519565393890902259377519980818238171229561637704384600140110810564415782761389260227363643105501734428253703055840871847359481519131094520067556379914824333222562593651028514761428805095719255698748338686302551795865298007890213406650752929832662359264172682766659060519235828497384536052837366547342472272151261294209320939217555290423511275373078229152791653291788656489517267722851371947942770901785104163105356774075446607141049906118792734121334436744528604863615826248114251589535069945801758922040084289149951528087270882759903598592492067801321931404799613474594154380295116495011482895503575669037500030091271600005027868574004377982177145925616391534882571750056817365513614085553339107863078785327361232150782145001421707999597445939826742075819616134447710992987847543730905328396000864202749143152225420349440089856203836010015270461830140767331516622449987456079942255830972168871374757713829592099952841324581671146756117601058641999956303279074446547925798127965864132054656952142886161178102035306831567072020209443001305555859233435945288251257898386670637681649197264956117156293131367493850373976153346408138811422653655573689114484601891670768827484810626255132561431018515389852222102203285570979047086857692050819586057778836943319073143657633092934524667459921420385482081734399825749940838624548533413061086612798760772173564626907578592726727046154939317696646434883495559777739479411196526193984187198330321399997055466515967879321337502950355793146922658017193493215599169673296963950837319463749257911215643153190373609469914196356709555410833741988391853602622722811722994792677243789630522990854532638525878147402752349992146925570861855252544583774661998131664673475966227281246442830015815973662651138056990376073444964211603339654887666169249171505664613725500965190334081152712577516529784359385737131163727839129345057677473204272220852368546604610865975457142927809175034101990874803228621169426441520215236541722579993332545618519342985401504126388845570410977360553250183845573365134476619501075793661235071868530398256261902414008363808629338240792487812460206978474317152488594060599509830996825725829058191407801375002918571827398769532251666904337766084980585486914489361637643108743589898692840007242378272229255263976735564958054967738534174155906014670309323741696874898165075978158763586061308420556851908016855077783487336095707881219608608301183506228640654746748309241711592048574173613456052333356006577832441592316443175921885172033355006921674144555338211606176555047275314187870965208521616436492291086222389222531206868900180592606872634903622226325472739630830015904603258991902410598443705646991799580906004148568701835003116205746497411069599312256846519348795181391593309972349351881269959268069731224120240628075302487149383912360996090400792140647742926737631464173480255355283076742880633460924149188525899114397809968425602102851267126535534882814671178834098570350472230512747214118404351923213326474926253701679952679196229801569702944928573183012924297072266241010188999421345216350577080411919344383527087963529917056250225561099574111796924590821527691011194346956026365707450227938663277439466717405744334036102511083745627752397261174101061268991340253380576169282750173434975274723377957791961513761444248629933794038727375496025466758281545484343789398524448529173874196601309764992387642795162544279254412410101388646132321975575903010546896179890961144572159606603918818764745776320783179773515357062645495929650989477828074074405005735291249399407474696880500093398382228106720443449930405507387434870539820431020375019757165068015421734380779362133412952038569217844291022009034347452405186775013520161850235048493684953684944176302570853924272634775868691823675271884257871795161706484510143048067034536967536954681274104236434548665567262530434389505971391388967835975838673213635406834937610823501086359725670926671387316984703220520953291680449672348608337499557967289330053759628141484188848700495361710229532569076473106188236111206979424491936441351237867996842614203877481399956124901293746400274740837099328147125573522235952272189918318150522561484342330717048982762636397138631278820376063315165621501104010603437470550660996740773450806243169701827385665133614585583315544273385734922191422689125701861228495245778869786881269986885782873699658330444836201751034421428299599265070590416477309236738800863201809729623637965130291889313192416257812462435030605983216039844801275082735129030403483768157538141232765199754387145458251321074961323554945504776052480299766731452548570500245282045448542551121059934686871415360173353266164320564330322155178099097657860518167312432088243342520341309728076592970531646548624128179763090317283938597802587646817339193007784691505235326465566111580706693808555837782182346308168650706354963884529326500259105472639955541081271953188092041565854085602083609416929319526839170362015074854051687442983853574617287934504585038065898770794502993378736172727965644040957947011041623389147674723382916541441170663684788766375617130665189940747640679633696574845622552016631175307932894065608698444408375005240674767769390918867400682128739044743849289358809728211503832954723649241536800401397705136497475146916194622679028251208519675936310751797848350370823110367381356230272269717760552560829822620657491676864098913713229319063889326904045759380762939422847135490068392674407997879191827778752766531394879873850460394923219924303965250306095148329895133362395493748628502577400399182255343167928614858260103822854610137514512116002088562470018106758413299823770054700112660705180084221912968243421926102663485073603823826314597948687526699131138638540699763128066959262674435920580768694919552707049744598627593062240400675570319556523696587275267502760690037861355384360811671285335815382124988101292265354464025860723370071665789742956373895660677410739521850861882873817982582146159653287642163570900629741723803400786255798653075376559200822342913961972883339990054960098800901512609370420489454233211943385654340446106467612312922779248364230653802907635118728255563474773223803974791608943222009001804961248328474038663573890505528296640813890643617194237519290365219598670340514613517622521613207539197705406397930678926876963229589087310061127971104948105072179758999186841382253234855027113594993523528350252626375627620042820429678706831752508572235163373918408197456260612643104397739471391003557910441203306589090279503063650745993794420114035880722142616441107806238736372180075517159914488034797914697710211785416362987802875259153450716500650905110960857044760817349126935364135465695284678889267527402225923165398789505525991203047413933234985540818054400740940435832612113402355852859342136230959696066838190960929945054046768335568973664301949334547593285342862016423510324634671435210722131079910708355518269313778766791729093126949617094854590504122636636541089812052238304645132542266370631629997463158721448072166023771778650150171625856659235965738540135981402808412005583564073634574730787737785297522397661544551545529702239513575311660945866391087129830306744174112744183606937939793878264435751266687557639416314286092336612156080834691074954295988622577200859470473288715443308610595865348696076486702124987120856066081425982282096258508211189477734748356584591807013590078111094439364400100662747963654567818033148200249275133564823379668249699317022854767044563635601372039859880760487708066221690323122480467955750259313626089309362413154558166381008747831983308923524493802211014972111288830481146457201626666900299916828998961565913003602810426905783418881961163259512664934390375133949959105738431821086198296969580707428911236251446231625489944734278983143191930688638418601215537203682857368605792824295680192764734387913130297275215188007952461349775237887518997735389992462171470949557961867412898972323868432861770739666435492129977559799180027312541483611410692623391603932947524698309077905249835717141766313649681739167528007599435872191399020191718942101763992148867223347946096447607566673973872707194703600581784721513528158995726024263555601783773518286311883948209603551235117931000936871453086992571075365470631969720405855059382321057297276742162784854839065455828046699545831978196820029926406268550338497348995008945441934128092459149025705073510232961556533600178816406168237782628405598768850971731423203241393714634846734759477894050148574646605242874121711384835904403559614758069569071144690418253625305415644309664514627788517465010144823715173734471334800275566325848305924175047688075121998509280960143143432881114785516309644904910211049036357780216505021974227667212202048207573443850657937104315930015130703589012553616602473567400370224116381732363817436504932564231636623585794153155114056447720091436641826813298911627119425237224021281400218285908783662744692709660694470266075222135060670430800215863182160404825305543026372539581856054401467620943836631857143063878083197820917150486826842210970475760017826637174013213240993347411213716045800266173672792164750768190667727892463081945008362211743838688959645989301580844418639300042469433112042141762301307482752233711115019076321179065309729827008247882799853605010775487069166634798663497173317518611676815804380581044277441504341801770061256998367349193847751748806216040896671389240963101382179024736195907919869864015756463568397115724786816664881833421559722080062489583877703955337705189363854668386246205509236763051348827725170832425599625214333728136171538752513719415280038092013975200203045854679420949483121305475212078472431660072915275857545446337641709846315605256979211058493157594659145912620914298162809613560512237676566883108144943839076514989325889351268263199933097942520381918840228753458126869609746350959519712076811028212188319954335169082978909701326516233889800392710221830928324611574599101544650990519324696635569928552689709357612322804619367852550162415014139302671944326108614486642201618400851759892499411787319052049982924564966603078974586034835927868724231739069017373430076222046676482653333023208751069040901600439363312898595721047639315607324077772310347087017547742902932794102095096626182931128968871595821808472842972773132943203743205435429117495491065458503553934782207885341521321830950192169865474012553596716329914920436488073007729123623905630920047547812775229239283897964639207218014130543614217427636642965819095979188802002000563059400057669072699277500663260957954525292833249639656033869784642370775999249366196306041893048546233736789573155295260695476088403401481558295362409747185180968547565991180317146608428530212633123466952390251533543586508381552806891276504639312479159435082326578558712961533657255375792433799127375471043627993740262168816151280903699106953128348484146224478642742918638490800622896060730284886539059969215921714665356801083557352098054673906607645065951449550135665581362402899814814465362691347750498607261857810617118314809491834043051836674496037866610529722384097359089576984361761193588132329272126939437431124017127467694402225923753428936660056669737048408619019320243604800184099645014314204541936377321732272686339132802394622962548849437796395144145277180644294349089179782835463315449971829952839448319804826829635227769415531489818649196760148939287323897786170074667140753719634128659611243480409061439693986253674827711994881146230127254168844780329890846643251314361462021782410681294039780681006737123742831494523409324412955944624610669769355320159809801026265529042292876149136559070895289707115661703480236359784361858082123818990488559974087856369027311757478384214643996979665110716582799281464492948818156373613007421709190241186441397843278831064341947291538041014463673352886748179198823694225972039866231208437005709760390403991267760008582505542788245419173727987437970787761077555459503666028646175782825622411456181664385982966506661487139166664056609352439084172151708599994508999358763052258774794932937042507803254848547018682859543766466068499645223787341401209173386246061524235551502394953121269180897836028987739968855275705872814887884129006981163634519094954007188920296342157018184952724017181622002853724672845021852822926542788223059938392531606868456835844139987741756593278851581591231894530598802609190168552398868191006962592142775180027160401435123577562876573023884556024208832462475061920081196641607297184243909068285641279752943357348460522553021257799210904546506174963989113163209984977303573842320746317085791315666837064773052596979890929710571207412105979634204750731082962207627809165254798653890217188091805085810558322656223242068190123251657539167955657060268414826981900069358483499970876827566672532519312787027621137269957066349867825783335775323517441967212894496290901513683897969367033302073880631799651931939628864861836563258034843692847850085590801962050985881112194511886802612417477158675207393080607223355530838541095901262674174978331364569901857317717322750014850171963901694645755211073697300941788088049698837541087495199452566432950592656294353284228546614478375292979554473615592499176940661935884461401210448225466393532936266168364881857935386269879837336499969331100217147133543301650260091930845079816526621538591874168639651603303501442848283983119176121292957312146341916038013294357973741582537534202597532585762268813422074738223402730430864326745989828016836524574040295168175328346896275332199770798104999291224349227077205584503358345363109599355905300573234723811602927541401050031057532672855512271858020372992023443505048188295761396361825136978014407894378254759370332116751496395055795683732854876143024085794923548565986900155255821590574326776627176822949577356219983345885059418558635285003444185655013488400981635889359320539561345438014842059180036675641512678527686080527722654639817353285915316334823450622323441098865982156067631455913208319659979379882057373967097201911918691611518610711550789702910445752501890547008373432230265225962104926596231548408098848913157330704095743524106741955049172580747317199276299060259084796996217155768571793059456929669577523884437771037358965038209819441943172604935182753174701457962381836028166186983492187492052648494679351205955751361613719800847398997916335274990446420831411474807380188168199969185743091389386822110600981175605663557151491855845125008426641510568033842857458917300576195045841309692909074630787107267617330534073214414200882651036857950334174416067300484378135215548415114626643555554648141105038592038115823909869891068124869139206237278690691376242604209134413471468432245704828719400603484201913831394993046564112829646485751362603971401135843903287569644002235063237418906021775657242439763784115765957954411362300609643603778744586711278534227102638395315858959414957220747156211252270729419932260754512022991114899229972541618197062087206968573739423279914376826076933563795065091541037889381800821361759673971972057682137677800367240387413112503560572193813755926974438945399186974975400768213747891306895904305645667296212994878181197675760570748104585963845321611168620140204877097151532660495394523524776955704189548773593982316160577400688370823091768601550503263076845445204929725484426954168712739189993974760335883318725496359511199034244496581693338289261980828796669214480930749060285178923580853141509535031322981107681529260266248950638129084163182054357006359162607687777014755592601893209038690831977073985189420174672725464049520942156501941036193726224798192644664578107829859918967058256589997648449074512372539918761960739291256131169961248494524816437216678436861661847357533464684409356297714435481921232387661442577447216132779343083388993607964397061629422786698599090973509932799182161291845118212393948590414723448671079657105544076893909967529185043379553171652375850668648242826594266153052215906615101571247857507645481774729883119984573051312386182533027424145856060485097243494743233100783825156232965370341313968819763083868252596961045189917199070837336167811314328201680769188698125109292766997293520946158982427698830569505589748437881925439046523187688026166237622647230919050099312701179709690518194601166171051842822739407841557931556424760977955734812435936228664895430680513411805621725929495834562975291841041411808142142607034149680165839923317012545148298267252786326874578362094518872604059932912044026580662513521440872484057368989704012561595062823277986327528253244129217889018263054811288995171635721789396768914715027807454469732868435474339989178892557557269986515595308948577403942813256451848091831174678107566543788503076133642499120055040398374715036959453176828750890663380520926890471233012867979373327854044141446047726860291469524806929355625661446898602199600382780105107723790016862993171782989879455801667010545587884035798638940106591873318183093648737931908842522804854800070012356718419135736671858597277277212901758415676436637987340865765726566469482274927691241127693662305783138953902762889459460900539064986902671921036411950685561854988969369570954268489200166305829172968313513285045277973658970291686794754410972332815671415345637165659333097237111086900566452870467963470417776198805597794046158701534021926278665217883346291784521798072254615311458070842359285182943287073930065958556025948712399120034521767774269868606849136729704579563849018624832422145722178265403434679707352132205465881972764370438541677950515902857558100082321262764128736782009055820348528014631485823633542876842603470479286801790415558383632651637459839845440206597912950980373340803714684062358623940039274034680008544245167479306412280297948491283104017077462233372497761756956878526038371348820095562181251543318725028721131182468851522501860377687807570526795156364174854901669074464506826167590526754514638541579798481816112436405910674521852964702002558278394329134374041142306269081706905853525418920709234482847980291443427604260948354149004023917884809151337202652388886808558193313369404340123186182145537511968147188352255954708237794176532497915856378917336406853842315005223385045404119282434119264851780204763630526067690629702761336271004865984464952114127961694719209819257451130686337849304704158309956789636024266659019411512602665221270865964379429224436537243378869671206421179566001779247747256385653279175503278059104058762926633549713772121554242401116108087295380765930414554599775435698253842402643990803616895606568408339788136600121961947350538632261235244969560103345022068593062878380705911738263933677744565012133965468073359981114419715253634970580092642321214035427105330335289097376466152608484699737773534906399988437436862130778395738006812140835624018776572063728159893886699015106888961346569736898286395535492947523798392496656507159194261242775746401310132893682163597208692777782692378777590999381228075835379012767513899815824811227713709615124391274757295724515578196888488077566385037764498045481972396238561436473708876067639380448744111877280209574982424141388547153568717125230706090372445727988880539480602169859382267259059899573925960617764238972543224994083374629264349238083805537249621754122622019268307751161497552051229496524334410582368227634147552574039835726815899521587468499863818247022202789644905733988465264255017517694658462651688108552728756493631123269019916853925556420776478441933856819027958182777297818078932318003173536286073473421942030141424310935563537113464996488431052424090553208933553578512859996143699392956921923307723479903987268979133619119347543945995574318950710750774472227261640509538393737868871589136052273864150332765261308309165295045851440752823091521211861165187311814620398025886322984065284142469623333093238260335256506728375542768737448679751145936604428799690750631942224527383109074010771063847142955048929178604091867551256159634894219388077300616915144486029900678758684310561155272375385254898628188860885874771459370921785850468935943685400077371311786598651809165554687980334393210549797802562704465503385705826021690875072153603424986108784106856050811503860347654675840850334462851906578307976632830315611645727850237471952185292897343857691001236404741146419234087307960981190486619882268920334975665358941679976007998250649846827188740511142753559327859183186020406577586142660525826411902833678953644707527450712440307249605293250474949923114659172377011131731942667500417510865320131449213569021750401215613007668187810502024440432161638927365608365044215349597729955836038331458560454564606483133477726673370717510930807844091728464338971814096094725352126339974574924156034607337708879118887378592891410729519454552162216947726310524494382129501556196804549538225976064708348320598752216904305099600202908393534748465632203025377043955501557965826856272545131592742220458109015388559126810159085190498832254496015518987154089867610017509657705449641885114553964587280287939711343654794405763954405174870870064611676490646128559003770145216295996954307030196676320024136221711001811269723018594796605098713853979007457501122875503692813110270847397332955534133685815680820955632607917985853555354688938673848161208718185484804632549908987730704247777453724739067261499505860856766069378457983673271694199222515087047359993643581896960798198880592442826899952805758537934764328567682082062180252351209276559350385324560025366999055571015213312484890129291090684812382306275438135051346689248112213595436199452094538818868564044672752238810740959028200413793946736624445122408953376357200805744660902620327813782245349634588939717541735310251276995649531311443460569506404971582723168123755783291138348630115960785041436939836588157697884797700049267951513966589603360328652202270334911257877826238035057934237856340065483796922475770091245614648096223352489977801023258569133973046844182041955958188152167571188451608884279318088678284392001004293786894183728927436535880470168910090163610146354489683430767205560330584049392393990265212599568237184620914434852317740635543882438674400295612591510220752597728150894796448487023025193549529507984056921061850999525155333953646675756432558848228939157443709089390367795972783535050632267085797559664954255233861494524727958762233336741651914609683237246677497570578742083410308943831401880820628701614939413954938320651564590761397183611964534510518212019310975254646176327441009899783112125027421917480737194645312960442839158998756335233696307642226286215429704924310599658388894537765746468404081434412813836350291731804411861117937183767936560642178774285186431584791156296808501426247403748401450665673713959461137460638007676002217269837478106485591354266349419644479082474023815796063391672992010094918550984808032580249945766854750688449024539160939422589076768727592181675948249577624785750934673570251744840101360587799426001898286316151139963520352477369019695046852742040969172169861779387123584286361853460047113355804547241737666104148068932179915281864042110216953681842798299794380850546071705492915456948667658372798449196817091834120330125004897178747977143061091901446503483328860262988148846156810821513063517915273503701522049498588881620371040324505694658418616114168231474104694917977214751319674176180763696973449650324440964519771157280911321288519935217002108989235287757348652286709752188153540378143702177174261065927982060306406292194093553162095391852666777781930076379133089538548763510542471306383582783669720790170705878578728685376376625354904508215948174187604800173105840739678988815374658869516650775210813337871074255536804283879776581705354240540886806041401543962835024519041034079684499686603902472851847666219051902912775678504354234769124975771562887792979108669361161637475832133993634457620290724538854875912548735627245234151355350725353366725281197653926598626558319781621817900374423521943207837295233976042185293787247295163624128743167952878763046900097861458279930662105521047918056040430016376893811516064859087393544139982089160994902232046971644763716591275103214755118252323196726692287504090151057184466321728912354838290563993048586533416172948275325428983118389103859372268926945541281625435333054677095246335437370332969593133324903667805947280624931326938862154448863599263606554734783910433710702937822378063977561303043216612965930541863024200743721788717229165704782016235477322925248005652169760125026781078237273382943186017876842866634254713336950416426348608575734527427068455810461636784425320500531027023214619406264051536083946574597600431922293882196488577535520102310470613415499302725539300128271261362861678284724367840462719763913039523780279259709855471363270491320710005689743600286463204115186664055795380325850975484614484613267314547270100663422887053208574882688514674154583115932238651795621919204301765339943917157386402993561317680557336838221250260082892766762685677491496488007283653337951567377567221586549182583064185748903445088109779804935245017718128528247162533129942710793224947908042317843498465054474572735324312327602852168399240993917119866829008057825913928957538291777316229968774531817451674251472231255242904052300107459787060542544353586806899044164504465487690242067617525085696532122557588483425275731308744649443078972710089374980039252573381868331605252533036275305415697480361496785185576023008405411328121348536900536417163026030267236175881389436562908497289576045699242016980452994383645382647602192066742051759426573621401764882326187890571848275867606145600286720965906599083074670447422208471261413569838472003142079788545824883804854681121861688532710978508212676007764564202135867102907075186467532054510027032601951283122259496620474115149867139216438882386773607456664045918941842027994547567799545798944515723575132195481129910861923841638102368376560419614450036788228743707419192351786282377973604445036375872067828156946452442511060116795536181154528431167443058147707339745781469967442781183944921983902705284831189060081499352965356432979013357077145500300258049627427347215041855665691942188924715817724148696554413391391601182489920748130467276627033866111439217630099443522356348974248182890273150226506796228473841551221592771946443841087851181808751512904384213671736280710362454558011854893189072081061590121042768834314082806064688674103269070634122902871776221533510229576146933865382206827760143407441767987939534195615401083368977471044955138425822679618262790515302296228060861491383184833686523622995893170246586514343506438848321814298990269021898373486600542063673537013872378056908342311824629249551646251299041552985616452946277576981925675649340637697080103332821527301050343878894154786657417904736340988157838571550068727544126817060526038378977929847548548819518929724265790654305957006119704794312679733331615862045970756757229573396452985462764993843038723974841672810237282652716965356970395994103866229318557415888496433829181186953665349025360955043334262720417477154297829869631612374259093361340978649244237679112839914828111409851502127490541777103930216824734718084566244249114020697486434701028040057160302115148363482897264682689376604998209211510684223593978989473107666684677030151303122364948766892006093438545253291460505865690982608737108562284688434889849124546569637977014451289817622936697281981544927546436480139567730782433346020221287214639727353804200341321576887629112095686740689494632511365415770875278733671207925118278856935895018266047389702165769881388677133407679713337274209743681289542669926429002312677873513629454192273821201896650587016874995091583920735892184949891459602858972724172987577715232149164415393006110081399018317630170812293895547935572822827017715176929306510679403316117431574801972181017597162940979450220557562605074826529277531405949473777238336865977310549321690779097486960673963861209636754779341114338338649336496067643185021152918856567611946218461406692042923687652900496273445662079650083123000076894578472657009595752591025511573907155396532951671782791570176024234894481637138202094451035918482258370090681535219935923845299742407017836046827033262874215100450491738335163414168457257850146647945399504681837034674284399975198404709834491998617404483846894039711825996869820769961102827354778254664863010351905937573548242840191933143518987422356671478156468488549208521141733638952087028765702854590911006423771810254507602962445646161306606881101357124296941074655778785527401988604116189343770464966003146932207197901609878703494389215615091094401507091898970747622127362002874679468923837419277803772865368149759338018565707070816707358824828557074629925264541553640614558190249021303194275490602531209947311607393941351996279373316299596492219471204995806850335653614070713683333015822019153950201276715171804331808755309423595146169662367955538731957609897832983387500331136539919096344990819773159576077350794724107128905249512900629408754067583053950804787968470962226382000912338924792476639841738931729108043732578668849460910264865671667619685635904341059247296739355405788629647664746466169073598918689486530722174477566390954262582791425961600341511244409888541149858042899763244071114744410385313004726373940314509471678417894159270567802119072300458038840729115531007343534703039135642635075065599088959231119949180193200685623988919945371423578217788391890961345324746390002662942115717579579039508925997642734223748963743642241882126329513385894325004603974462471152055990269422273696135648770907799593698514788154984939595612053696544402475620378483823156606472260614449651505015630576661646346110589111494917040299839424649089595538408799769650938446094617261054092497840524510541265809988997220364689273498573560798650455776830608869626998324226584689099560209523977557794380978979992393760159431634556596086283487986003821571294742099318047131194680603008200735281516640478269233665112706847252772028074704044197647565027004814535943488140904334445527741089566035950365065023772662049311814428685312854188991870296369946238909334583707655884738862888615478626930859883736976482484371451810417346722582218396162626200313685926672608829897192711105405226305942545635508469811465123418603866781529720716402138452736273428819992338868288494533352843565397907299851761123429722242761112237448576045015443317484720920413542083520780979310679646605276778886355799272159478416736858327513770633469827049416090133012365962544396033172838229181779818369924572907062177620008124215502291428985939431337110745388422845455713664390987851509679987131842767357007095506467407602399006001984866008651164703729161307036462860395045043995509452482303861348316522005487956696692742523084624463442919177686663893520152825512874733841298730426407998676456774721508894140332636403028608752227719212317779454471472965772042821372643987531154884666799004545486496920012917333604029932977846334122938490687090772418392697422086763182854626506725335043117904220736702316129310828314861184536462663217311985008779803527524344208087369560049306955250071558865270379104716183733147485190047116934900997474664245039857725640367896919678969061602711642022869703281753265853404687088235000920995005818649350679936091198836950005701853640552773975541534481894683727899375759092896643716669981919541279432056944143317695340173430060517182663855168830286663554257905622080252273549157388187301851138568633248488631577302788968731721420060677816113140349864987634200145777914059084333550959605024768937092183982518226258898790233075233730468419293022061632987450321656046624343841758933865819965527001742249091829836455460518704946908669188203093791677502714229981919262699905726137004869552391527941620408999522543240760197073941013747822823104657147913596202455171432131783509478552792944096316353733042624760367565417025545329540219265825058728356367312201355785772270485354127830480059148504255363416650715953675113903944272946266609282892114079803072321976972343718244101637003506900625709886102376422070301057610378199690052365990523427943457744928470269321405935284798509121017781749051254634048836692723677293366213625783484264118134327509879175599968618400784754962669319669044055212666894080882894244593327595683464825878482110443912139944387443367235606019418505320026711596551747819530358940082375254363650567127233573598332631372596429016830637411591786579495244527531890445376925419634481672206154534000494375158919391385971471376004349911884562914898991209627413155321178143547198826491232394188894948712579183840975121566195894287829889293198293428970718125829660754568975916098500052699997272316844338598135762339557449359158937285852136959503624571473066791958757357750500224511147312694273977053059246795616204648407965155047163368490050063888006966634603610189363325020253347735684541607925361197964849730305388350065704044094391711985940697016831575212822664210261044963282828732614131971354339212100981271322490798468563486869544536689341695116600595669490943238915777920659682286728709418885350415295516969475369471046499170576267775979369549159962991971622222730242000982295586387058970460735001682530903914216929309933714959542899476192802635026737146368621267736398630462986638657176372716051077530958723881028765406714460625030936157926729571964236296904640416185249645117424849153245203500123547794033900591070727213861934758539908901656500083540816906006901505363712820595141387206085734464572095837310296021227997244584973302951845646509768024572140673448189399801211054442026482860693606593942978595117032148415760623497885952163827371771494642632347001102519236732616734905795699758514034266712238955735691703173361744276835063041395619620799080778473117922463921304806197207483364156762349331580117504715765562588468312248153749327704992605599301088925395888230683375677103626104994959848952363581673763501836413655308282935541325832965307490335630457314798968973292958018212493040141140251978284673738002357982442849292463525411605393510116958364600257454136201125527601961735345971479035267659936336762615051471221940379828793610614468316832132628018524433764826997420752670591223634683157199750392229377226912062381303239434117042612222315561216704870411865545041519288817611652154632927861478248805519794920347045703843519831191789008461347696524984847054945779909298817968512976228244397414878787860398750518109657460615873155676613632956509490740315542707373325894868334750622395324121316206915825332242561802045289164150501062040025127190715509256501289253945146914495013264237640635324431040255718920112503182087115886146997522846742057519417034058962055622174376183435341036022969110000879116266318663288763896278671397985117647874129806642015701380929602949230033157030798043636007213230981428542522176220640599209622493899880584906123217040029895472974509968556220747711410077722729649606746823847879184848726981572467832512701958037890629810087419469344076719405929141462419453077125637395279160012242188517776356001890051869889664869349624217080344942198329846872735956417516788427331073406968862651822231043507995737788073422354080206505679548482202064488109948327631562228127482473543025738091555364454063096680968813641385346714397247672078170987206483397617834002599402924460933230522769795277453053246729037365026044332884885601696640092323356083581940777345639666875516916344310256499726673304380941947351746623844067226020469543129902869441625104732148485523381111168686590152649633857929206119095430073143354670503104011436861483776784129844216401125334479270294330770529967560161440648355839317958663301401894569313843337201550078325860865921588636818434399562446748937567191861506112682753999358266228932071653457335624332205094682303283666788995690540343080303571579164003446587782053460367219146361765743307914342273284203906898903214957674833456540719392801378032881965607733299426103045637657891083575134591729338262121610353550821291400691295915158787091351006904710535699791846857112660805287263106543738937173291537248431646503556213262060026752573925176907262074867162272110345606830004014904760108785099160349155894148906081982630911090033759268679318100089965394754411784489484262805369049445992833448493324541115220676190819356854904739098353430864534351208760561441937830756263303360772179180508710256845452720105315094756500406685665167863276966130731251978523745870360712079912039556235455675240235334455781802990646114376094215781494738791994732015137130911819972696948391631691157374207121668214002414229518230912806524281984722644704627926686107146201607656544391344112900146762051168257660938062283185687458173797086414083262530277276628863971129374024239233172527722210267961095722561466408637861409368432460357109950962694184790076670995859686187884728880459134457266990234474446430576723541047658882650530044947558004287015186602604143307135859103259731482852204908981544128881691330702332711657556857129942583953291687158700287571727689052262076670661060130988753032693413770348637161896249548342381573901776616180513023564137737484558960445691837480404521987499447289800604388590592036452818096493118742580008737541535780637122344853903560441745052070373701529962791332124374405644965890082694520365413172353752877566186329716441237011023369964133927727513252071163187826145421899968476014426649621504939587761638419723962533592303539947806040090068787927532224305700970586659063382529860605675972622756564597289030499017943812414319453788635789702114297595767350973033068604048588965513244002298025174209473146051716168669655447072986941675293268850236622487936855527794841105884872814447829168617307728122025216981466661273730389500991474553564498266636689375844577319297710743234231475925934277583301687399637429885214603570639694163434807268606084272432941087548269967666908336489505402354517444935275822906956496537351746601770291868833758945799962003720124890281924973581031855771108932704337175573719468683035602624680530832829649044476884626043124580991844796892379459800542253688724588456483410240904060243378544442081114362641836020477036885249080587214223210392386192846175351224857104162460781180992935933678544629177007016934697178431810306389121922808605143681738697424337891058071245398591310781394620587756114079061085260911404869939602709867262445412917805195477346048463708158019653520274829153023402557227526585005213278364586424491250173681760484319009649672694437525144160493500170545787227793267900349956938632410338795173406877178193689725702288690857484304562884097116212742981214959057035718592819415269089379759241645796586032313984201787696968259077014652448301054711218790367768719727555975358734706599381147471673751006318218983122150743551226113328782935320954517513370719513150289645341176665919393179417752461281232425264819387329092198806108590394608413243146521892098167841263375520027706476551216089960009154285699205943812841053906163342836345095230044086492373351196688936928048969496057389705435449201948820099168127669741603708615364162966833540945915608244725440184993104617300997459235557216432409019920360970370885758635074730455548017070956850853443186561661990782838447744274061163107011807812090185866565807226259915300390033132154356908126501769036551168076238190831313459913289034552921945469745188373864033232160077806051583573411149058009648926782475262311225769186341509376938701800372887378655418487435727316016599825513043097645405329742390692962442199337237270463080765287297527601027451963456948332991253542966232326344394556347081720824255194387373280911726082420459983787483863281155580172118630522195743838053680386217029066456388092235912096994614075289253973849356415290918767185356179314294746581759422681997669575209952098745632046414367156106219037290117049241862228718288452306219317600453205698377909031929985031216276157208048086872497945582366823975593108696130911671231449939736406492221256186226796996139640361765268652160217566245975139826683630825349945472091521852434719725087641856567696278052391371016026858409084008283319377477515530469533092102206363389068288909218637429139834191239692652662887963169156576315729284674121522764934829118523151309852437528481465980352514003294245714923026960655428803117298832043857306039777263288219309329233831501702113948940562281161218139816079297217820073034325543261078583668342766469505876223715814811291981123858079122208415786661657180821991676740152266887983646777811770353604793334494440756313736003541619254852468272089372023748240805746611573999774498867834717958163884888644925049146326703891641070620399769233850641932266034594276768903268620115442961002498738764822556677075710403429515499020490165936974594721729535400934795343390359556903925730926853953586872345890779919530862893714154329975696746792239711959017206044434819410994487034561438343090285046177957236548896284166955075989269456435990519479214813560949069990499002536440100832654007595746717527877007760016886280620392168871674664437085986862436358087451059264082467797785402191288233079348549113067964506103701295972716533900688788891788750496980982088113782490984897364360263081899617167937622565155375240952537110042697239569017520736291594070175349455086829647795820746512373115351990225075874797389560087278951691950390517959830449569127933368297022073616893233617682098178774904661652228986025721333856122113984229350592088311081647732733626740286859347924249529658406596411112605747225618710154410172335540471639271709110424165789459695832473936460424264034456891802305105524925350491098243064024919844863040948936292694154620032504495080935229058807097924258645619744419392309210782752295091386429453540667143601297014248319301303309886990491031938515690155451085450345216766547354132715754441530385169599025856484926955930032512932682963647788392018308544522896225682110758580591113324587259540423198816074331039769226410499659550478528616963329252458790943325321731388700155414687248655065366201824478904401362996678795772220169727475916105580845383432312866395105552438275074215767745885327325745410872199818778392742440713278331316747912545447207032335923872939309334900931312679011536668333760439776402837719878590315569081788979967377839712338561071666524091286044542941811266360065887989175336859613027659468208092236028028771694716076996685259421013001042375691266057207682335584865648425306574321457495944108310282458802151118530991026961220715913843309029218380495785106076710161806117459177642143931341026460137792139180549840476362079951064414221408977060740316153525360835214179440554497529755291703397329485521434943849549725004467115062083245005669279222058577449551980126113801854997937629828453413810151999303235320276116290941821300102853420181894312564589700327039346194931336123300314634844769784890163617851644172957196767744540504329876430919087878509127653631996803148208390473431910989140885475227214906534380930799504235608295902607082280936007453603370468612322388947371653057094432892838287413253297114361401019144614302761221591694356175973238281048216935878766658401379492765872291068589400030543724319885877616151878098857971888283656617735769906122361635442499506216002845373793774334257324268892580257175113770670366983767558943266751619845009827965895084364478753831364099839896527981634078831954781044587033225357579176038173215473652457048070645258505014454840871575961269669609217097498367849396516692315108300366996463862442173034589470841274149396093760048950063457942739073789097532947571334715749955151958232358007483672236281342094244495015047935989938754541096088491587382504904210887519007985899097834463898775616300001302660954498262326805226415676510290039309061195025782541833618464433222082176012501065006427741712650827732697564017314282004916023886490974996469500658965069297454349867800689285453506347040410383328537865768879713642181105394312075413191548185756238099840745694762633726673105643406800229480194696141699497228716084241865716722019807239607242756851615104269257578355827895002522410097728827245092831679381419445895472240332513205736760687667539826841561822532915077053535766394008781018344726063246216425656257480605968748319237666068239357867109192466467394017164031697754815353011259004523076393765598224578807759169411282588201350168303633517504525084468048274023504501788353260606218197536856832335245990556184924843100793542744532606234231600722906629441971933920945533739831575617758727457762646318421828084144578018655622247916958592335343343704028291250306603144084346068508821777440041150808532013408087787347787418225033856965628763198317020044143611070646542193259752192170406157682218602383205810774865449620496103865047857032347612860986117119879195871375087611819206425784649345349832549197944515234803296687537755052921298564172295261067451381264877549376764027553333368000939036512824491584421252432573736357390728908779864622247097616855898385528714379832023604563290568820784166186728462685356838346226626382538110165816057965611151320226467526918362551037062904225863466709971563771420349394888657265093937040481027285558760317905783899117538147588632474563285547056038942891414418314358960601605466560072317260384738188758889562597105979964584722812947601709449720396866929322596499232978633504985026575826497196320290411296253634717881168677892450985418759436326584331407484714923455498295341872710905555857592330566978036603764188145191577472867259285599530862659524018140113807489162177601543122009564488769132385015990266125714372802439558898969551648302321348316794288433916159320133891364302857170460775205412075120866117949329956315234193807170820232113599542102839476916381783900580954803615869673475846708314397353261003806160780137675853795946403003103134999991759011884605562240221298178260140557730480980654168158625076671415430531929041955278045649224377208749883916493870391119746479622932206581892074351187199448212335652239529605008263475461466947685856826658193629449907086127642463972325110086190788662034383487884066884250502223443441624031423102602869576963937743236992365872957297492184351021387971940863907446815827869401613629359151599420693008565959223411266210690454348516802323325878200057124441515925719553969142699983193870200267208493184939840013988526790180452289567474463243728119920027821698618608251101463939028113973045378030733583433449584549923732419711203083023568099492883750461358872371859925116386601630855872261675819453759690323317758330242280391542935871141252391440651831352715534395394335078506800272989744130365916310112898413807662384366629229591498886643917039537064390443407942777905910034785243441023514192543348682000828770369414037442156812412801709203820796862483094412205991227910381573661070019957584324773742881946846117313407229860130408834194676167810591711368110548830476693585618009605679685658625172109508121384644524236088389291972734466480481531326658557886773639008636237031610836181550520867830503618331665742299255803333119196662335761331803376318187039777957492691394739117767461491680312465580339289997741280388997655109778545102180705321757553713458316550924202649202016049826564268623206578527512992800997615659843313151739523783553467159242362111767657471540728428794770766009371485854645182592347629764615483782842254960899587827071620687520703501283250386249994118814650689199187276370754020247910926587074895248832601275587137347008791022846920277239753468936118805327579544168123494552443015881268365439325587062642906000614712698955148263167795138994915395971446229528981899156505750783759800704975941031530087988488566312278923569721850196617905245171267602035710377054580741673105665303577036540748421921247272234735234310733184493472452727704543674301777123861596207151433384458155749491727544107712884915659886117195078136712574567480810268166180545130247109797173328102305734613648774681216270938215258385437667628072668279102910337273280583040348282185485020013067206705474456397616732846096957848352098050124346994592553005257886445509796486858533663686875617868878639898835907373856827614317178978640255866193186033280925923253101275675831806288348394885536378501214651112672031629946640352213506442975725054594089867037155171953016666068132489449558101321310758696086683496702508046749225336806935252967445946845187929523305476603750528344495640187854335172647411173091039181833260980774813492073126119670013673248372617393975775291278601662388916656224562413504148277569294145615699207352950432797329901160936768001631015343680381791910762442726316441968956652810132867866972466481771785764751594667406818065938014885337770048709817545386358700897103617819552815917039151593565172307923819831444640733561991873156286501812362192870878904799267191581069293304030187199621536020682829876126122713560065091854541549802757573995027927183438859030262441853071780062093655409905460953934140703250137809784519476435706760686311853828969198178304855822995706389447441144052200086497969349582395540371028220767718447307089234752109892506219429010075825841980125465350069723836964620058482171117316793495432555925779338864167866511896431080403561842911568907528166119283255355537036340956104269847615627377526316907287385429612615626009248343137676055377166542757154139949685195632841733299490569480733480814539970088936082886719703818535544984284553974262046808604781630227478767783767539781775669127536541628948910528631364694515090713582453869450833066869419115848838654779254796443443134319227914002135589305366091599101173118259418301148760610199790340944629692445296872028246212136831737906876913292208668467296534458512730650987759520159382878518443900755201759979930696440642966936699337007092490518406519858052073128862092479173973882520393663733920949955714475927852859910021117861548234433069655314799838038539612236960887178999951638992787536284762782034563365083598358080302259985265837498617012700975449849292662806692009648748800097116858657074494608043069552992639851882794436343489354984750716644704470706817324349337684503019747558563671177569465283006898846209862341055528863003031339899425915767359353595065735726450611319940574754454772695854967582482434909025093874918839356698403471502841488829816662544981964983463320603410568866776568778047977990150371886637815547702378316509631122438488472844721411030023997096536298640126649243868023978679770461168530694245112087514823081259457685424448867090887544635289700585156003275853271342069997499665445729293038939722719907830606291900006105507564964325359430635651566171039811081610405395288925622606513820938103574399054254126200414018402425218267941976679609437676484896985567313934182067169693820950217661720085538324437001947151899539902845667642101656519537708787987648958390993872294828674483174201671154650169996141982304736293771508519493409759495873975822781646482134368546674446517723400338720096497997287058535109313017089312442446160521317832470743735758902573990958235168542629294929890844061266522221152828110453571624777782165096479497192971490944572964794096042358875836699474931961853823477059758005177664692390689863574652246176524309089666513873183609934342357099503050813682102080865615182557752234686572758135506467986949053368699026164314620114649198195546181366170178132922538071284801132549779592142547367615231119862360920138140204027378339616934346138011909807013449512416649072175124467705839567498438294745273162760289530201560107924541670823767117237547762484252808051891175333685300323099639970281321727433457344640069103403696641663661017589686360754246222775662760061401053676451012561362932734413633140692105278322261205407238634229568799879017324246889795464173987223907064630456978828453507150385619994622227450719745769912539196577308873512161579947593207289709660375074934306067557191294714974366248690943441586032202116456050950723420097211415565067665165733863857599034507943478686523279196911122485737318950397135400558168776884731265405418761813602891510179680996691654412147133547798974701701822434016031387253579996564893166487444692349979860874443781212882333546061319155554032300836515312919604545699240713823025695102374872300324992830951683420911169455968262352650732662442611872848307298081227010665352441986901058308742863186346008649905026678036144085749013424371695344618932783949157960106133810570998291025069913574455821431818908828165451375856836908765868585499189483580007942142117834871775053069211639857334010409308255916150788460510916917560689600088793401907502917476636912189552618388185786202204216945791277097967491793863728582642221469070444942879801861816736790540285007198971074256310441285655126570025569052789147074590547141683122812878156535647226873778008234798878509779687541451719739950227028184832251119704046042286901379095115089571263945464560719420013234449280180143402385150300362502428465405939605109031626082796094050717414432618543268386706673536549908853735974403441040571731422720425793512051252243413847987731329203752881651514864188663904999627088372633671319079080306008290828039347219763872859132938796666584647757759626589391289342452767153719216310954884270102102680326329231063192710355895028797679073960824349123139542696512004010382353968809981753842767101281257964449610868229299096507744616491516484150428695126812580864458151053906849389442337136981839005088666036743330795255919447828728609051553690996667068713250412714917820071489407700276444733820511423288787667547957172678453391792265834874200874539446943639393658769208900506579659548081123525862961136139485522555024742540435153241565959949332953967743964396758575366010798135465207937504829025592885791253024290457838809545651432524350808601238112693355281533252374184129683665872808270042572574117635517608212471345703803078501258287833693321143889799366901234491895606973248831175509769298747102570735211877877233796543357446284695073625058277904034209891111842010020686001273843140138499943681934078657170156147085371947826997075461384379620230363444946656362304920657259891875568316153900543299135081431247598577368027116166435182404073243839851611274123516764441640144714441343661139161575415552166705037195223249483686407973967199977842119277752064570909583576756473064946302198110021640886281579785981739780156930781341283090566778098136130083479813312790709777554361644785639606411771306210850582276085475490814591306326042843978588201636799914975772070583034069943826890906833211243341972946827897947724181577763867702012460977745929695111189014118570482306174382657682475302864648351941580657609762825818533484202370456343754469621343624533391646907978830538554476638076232961498251461996310866411965146732286718190968093695616798751498489302114647294922336026978613777261448929999040790719965218986739271882183531844535687228659101028710187904801179622052703507112118606233534582697387191243868325518742452882324310274441412018825160383883184513188994519854850716367937011371523860938435584188660199053517677200819270232297671895197780431192482442005478100567339904502759912988685984331632133920406665898022627472253261160498938579608637676106453295633635434534499067832483514347170984991028458434480334194352599735338758960529325009253537592619807138392758376217655491372499842067935252289348242451550137121772931762285190812057558850680838244972715525289248131559534898602238060164808772374475844158963939340940337266950232144291363535395829995338326651850630217164689761974748161384055023533060974418866965990766642609062997128975333055963282219499523062295113445258256812206950072089853711958736024016043807721023699890131089088523830577258905596756647500545482654332613908985327455187819947950025432981851411724518722648356376505762921811078478677583818158835982941286429634009150979830915909251613746517441455863012330478846842478883288099795689856791103229979214032757558665003063915101427319189851831266465005031508551879770990531050296571568052551405777704919014417834276991155181628393139368767379848332611585068999058141981281395673461493650461393709537737819273643333398147074854831200999481385527029714082526663283037418337587351739437279039073701014960959409352909192169453593847643103867216826541807449773623421437455639692516156862298291879252873842063434872535107651891366686959103629953603008148984666306268664457368146488074749784794291607201475607761168757958520577116106132162084492552597297140968729731187263318313767015545936562266813346868347846731817561498487971778896911272409103782093930704099145663101218946517127021832529263050329071991447721810835158183520746981869682088983234581402482481444670679455558627890525292494703399236787431898111082709443150086502347376775424338369357658709039816259336931473660387720292715848156014186910977498016597318802572016774991654468857925490414675325498881588911948054136013951544538723051725425441729959406790953737425160511313672743072934588805266413223560373103124848484303329592670136760108347929727523975787654961422215970245345282048272207376011047124746557374624634700717014983477435770611785792491080381495854397965066750254124888720034732800620662715271428247508601918929560873484173513976894367095920609601798440519336927429118844930413891920632303035171708390844554730676842748279581553148424325911994518668370874269705895063409911689212902168376279135540932343984636695664963857124348534933728839436145256564452441549614370251958832890442984889999287692593010514756852789135190583761868070900336910477885470460566654913528780859059382245978536567460612382974370322020375367420027395541797710376247112871967527679852104782668311613151897225099159435192312459601844905479035969975451623272066212251911957418115216382165802645467290946502623603346849120054572534934871082924526569232558931400731643700664196842861606594361917380507226956240843540100143140130686674169375377796468104729591656317710453931744534852486923014296375977559709727181889111476188706795756491045936185078865535455580064396093723484901127446705140975564483331404097674712592417366897670821571458590620343136237497264619682316365964849535356082702131287221836512587251964712446138660722698688136133955583673237458082765069752680499198323532071265896462652958714510673812047705756607142474727648993814980543793493086838254142414639263397944154773359970199962282220207800057036999622616799138586394228203585953135224937096936224888355314703588435617818688706653025520843735885497810523185265006330115094581449907130862784706635202621921331396775329486503335075712667305685471438016028872219429003742366699576204197248850428623043095413795536225776041779813003442083573488857577124388060402166476053923457881583829041901696190654841389496737319226634694593729475757895828135444253673575482256980177873194690219700669434215220080791036236034828022901668794300912292448154261042311149103846415396267771314179054684263695141438162818858292627448649333563194424129860018211303737167680846280412947692977951572709020275117473494847234333936260500313218644637843871079511494011336701281638005597450191731178802940271653191959388793567711733342645508368316053370932754084776695985812330455770873700952806943515599165091700003719831961942253392292339717531338489288223025572693369545733062718721990174163608301425516309771874747222568330688065480870742516532477185082066706921291670758573883831824853867071140606289694070705823532113762065234195758665989517057024821863137762180305494198030498325601785924339096967409354662968047908957728555998912776419179248324556853649843116509291221917908178481980268389126969043691163031285293795081596543087318738340946675761211971601976428777939636775567472902014517702049993887243187717106165460627758256870876444586540221443413173358228846894344303923630219096747993786853845417036435869915542047957811026017961789390968815454290676047600871614427563846882342170435375022932595590567659038514971731102635804656192571820382166782759509494758421436582246372728507919148429141331953570280385288298604093238256222950873640761702929892414812851438043381161354351079073433892483320904553628651690980982626471128646406166595035573648411790991677914108363235043814619256701789462305160534330766514293364930588281354927726735245917934974811046359781683707697347588922609978466501725782180445211741828419378600464260607203277972943433237617414475839933079791702145405275474049326258579279071586759286493189609461611579752543359424839266334909406824441820984684877635313948129454689545618018304079370409436233475430375656421341523147712515479678791354313116325374774658180314608140574140933363509173640297584474771827059030483133137549826868408712357935222880990067139280039762463664884331319144614351001243677545555072672595393492209075857479333550077248608637084673286575506113826734676479431222623868692940883838069013318104748393108683613045909642796888347692696447743097537324270037140912734377320619729860186185773013575658762974139118800614191150409802562198968432720394163405257118979748484874264319472295280606755159582080710230483744889422916831557181245457690146893208893403865495260263325144515347907346869176389866368771907517512737884808103343445432663626617377389283905694628602537831520935626124160854011246276427365464933643419022988154024692285816240844298773129941314543657938790092906499286072915536973395606346956396988848060227611868632084287070293982224561459239602681072061199475779392133447950942501398159911189468671802328957948070836003920231620447571230688753255478815285782250817622499310621382443706032844899590788407817146043578492824407384450482629080001077070985055967033425036728841414690194450574856743193793258349245878408316490085738426637560605608526805534417015444964483817621718352365413067803702595622658729646830205569509805606379925685092065371431833016675916048683133288220061771747366753179271615008081072596563873928775544259107834097575174799620954582665558735865980577799315359858271172948796692159886221709900806034205889050684452728457028157203329594756817243711176156402714921709868909807902138015858246537411933775066697474663908940016715688587616262689596616548450906900021924574090223627160256142646452235558892712579343524039804510341548115714277141010838460620408560939288019854330700487972805004752021669815203233939199280317748924522539541303024946650978322809320736761698561985740443094574314863703594254494424569200498013952761647977618389769849768437543117514142616444520582673076815722298111673118509965229019646491387278647947574765178261568703017326558075592086667179822493608171788941895931063185469255647478855349790684928929356780254285765339017487757447318006894134388903723908383471485422446621396656100939560997062498256113645387278775695554534604222134569902577806271530109547198414756268712412477904280408301870799239108267919945727657885998892459459517482477249881927147867256954049555252447575117198213642471484149536135778336902913339976279958332640978538200132180250416516674066956206832719566747205756008079114402493597955923746231948729469355022622756514010550227410346364507073534095725549867348142531647076036563319135037379631120800689487309889587942053844217761876332369046266474777334531223501101685240303325429995835202222697320524653183513262749313094659212737963074765323425734790762805921405889568618787918694816333809769361298151144325517343828335909377772400976057868443402309514379949448475767012359278284853406879087055555299116728374453613623840594161657341150235644414086153948041934492638697016329663445554518110397146974493349111616194707583462253727962605965545660116258927084873112073218172497750052902457110177773437023044045672132557866215450029321606487489653619386829160081259112380452717498663592403364974914008196555223386202195739797594460281140256623297422670008765011505824014530427479976429999805936094171716004959252900418235311961789533136419824676253703385481285666786581399580100836597222047317058488619514234209266437962766448550330388665025427960799714191573794141972837317558691422832614610782470752793941424515128914934063181128127143403710453772908429960627135007978556618077490203937935414086097576243628321095142034947196485458264673852755847620888688126055133172333371686002783738955755018509038033165885256237533707609135500317466661712211325109399484893702875134796373998372880866191378177561830906846695460340368192101010373637102213884642045597377626093451473882243230208963998847486975621073240161416718292804251537635273283278738290759982773009145214122338266667408587099840719566499902472816102383185896551647130942814376879809551065686630945059427761377012877094937655487932910222398472955445685513525951351105946756446889737055894956419816736541710708878778576976652249856883984918289460973054987288138416130793738394997665016804136736273553292169327932066519757380320040820519671427651880032647930573181243999211570611566039032916484610078240209409999315496635488265856568499101739641898018211267877044565220549036627945636563422796545605411722599029926572893097277098759627114719556639710507449283136562994469471650378573810751487309424384775811257690285074374719190158091977884220764067804823741625723556027786177582799536888881776101870160054398036495175148583120114413161416129276367985410454424460701947132414959559902375770032485451874367034351676832249909019044629623898266045309853225767453102069467320585795618882646364340724262456195033193385847055078331980704654594141988520698360296959302183522422822772659797639063411977026146938081144556855186760842006235189967051611868618432164909807848616890192538508710145576442621223390637448407730025220433859880492591828159005886460665327682175129227555345841006716921994829514581485987480812439306411343788337169712822871079262711602649641427864442032002319459961278406897961075951946883641298874005529027140172230542154095929691457386181883112725123320116108872599632151338770517225609574637527907089420431370035714044778385981078218678274961777439898274650491672368825139327426620963431320168164464890592670615772879985751846770359923918233508741870151143083109227312554902804016864545672012101960095418433446441686799176005440201364562483286782839858249983739168201011766177640705524115727202972037299854032362141381465232480454009474713938664994184654245257119509497214792229076571015328052316476520321327990315758653117063490779367725988483501669344632323375042077966099571835402289653823226212880564926816917966343146577517145723396347765707418274700286124321316180535446320458121334893998930722793859638318961434940323228726916899836770895647101139377371785981777831671019970132224511887080420876607143259316924926698043862345699806359749680888249240490385803074634647460989061224482747181511484797103314079970058330303243295748061693827368649761003552950168974583519375722293396586105388237537070551901613852849204890664887282071426877457101732425550195455888524200821513372561518880156193403093706453009686756802634459557509332000058206296661895815816720999030754287730638270771338107610614761410880998454458553161778073709784897863380065921880552067210785575422589162325789229530292518597879233417746836767034122782945129399010419154195337073660115078702635996368404685875848149709609648815337791429707027633752048605441769548964663422662343014663376394309415028317084685751584883223503703188761194626727967763168125468395539454877436149427004790616174638270532705461408106502844490976908286632983487668227849764367181497703652339175790732682631943878735545499946467263133695753966883298146782846217358198591265258285838621619422052233876333136832567015820858197312211396021375046926168425946665096016780936152341846354447071540448088538876010543441678785075613225812339712869525008522290407982675397119368668800830765413211274773454329554895244408963480847199451107751374893444639586453306771742727272197154151495542211044966525846445782468979375753821717438846584600531120075293516445315396326029645292588094192640694321230399058535230637942106368194186205403992377737998568379967442452686483701936054872741947717298677092796518491819262119534819194594932185833142287290625402476701944676673522603578227874169704065154515474500551698440418213100562620936850714500558477617150539175820473986237586541910209866930004862608868790775129807155014699203198943282226916618693136393054491792709948885104684547518263483583513441029572411856057376070090714586024981826886195928163501563793319999570495091444288760887265991882406887362435361157056082948925449549176522143951949698030253984930927148560472123978842171649320700999383730855492087078073767876240837791396711098381875833709347974449310861345985739627249942373791490556833441813122667764645540963121789854007691360340164641088807640896943947410863422997587518586537358895289958175609461796714644886954388590584051544893838236106860372759705621248523813021650038609467241107757900116144234843282733827080662134959413437170998384547788554946677939756689412901138296765769643938206219369126851371431063816114819832065772061061955668853431768254395631683043440336839803372280055447673468765607042390793313350663741337725263757886316297437922081852593050302150354919474428233489538735226243816890309923020658875731513619183998300417097132286088351373141714629986128421630663166013862616261715711015034287589391453147544409968694170509671501918151527109880276227811115543684104584062224959904333659221674826280091409081491944384771926007329216690549798118597494827544802816949849110990044585140810249068690799106265329431676525060491979053166754949806889032533108879483848707751654584741536502364671530602993372180367986225312552515090778353378054327412728711574810785551276805053054124383564329036251365688611829371368300605685628235717444184262001742562082111242445783945684560171043934878385609610568251472804610979129798694172392280038441295105717644716833564833095946763145780160076426572060431446356408569521891638198104418009940822655442573155629943330356705669681895705797030474053742121281463974216303045129794024706061389060469049047987732194226850426598203530082232017411600767958465736896484776047191296016072961702087686443135381257894363900525524831821192303415168248287238605240333955038518396599288340704220288184535943581988360393921726018689755315492326983865998439766500330566326776675104038631522222866898969665322719041198464264026482226145184073741860064001898491302273912864066000804740264525354309557085436048812152408928861733457001864612269362722300026100710899778069109546034069979526364775218752491675052511203349460920398694288039959980864012283309879305338405505368628349322311144288849866079132710009944178862834474236377974207085921990914708649905453718681746346453389467661964327879061796265091713521477385223502785143596783961455426176464998792273522569835709615176075579983385464153360158930402947070159278795060352816880662770634142704134450529101723546092853067286801753824741294267989842672132880904459767057400068224821427867810338665195110134764212914872581672688594871606257192117077085837751528927966619697946611193071818917249897043688007069228683486272441722367602312530011300384745856283173547348430840201820454900400802926186949872392126653209312479846442297268393388888763266207141467722308844947508218698830435256828898659500373635332292789717034837176797832012079187774839974832541118162941156060745881753719390423199042583624885367132214230077319793118607813916579147086431991460237778825392666155649172914548514250892402482821399748111979568710488757495280763728055831920277401553633273713086438813594311925205292524909795987830795005649077871201423231630751873263239353244045817377690016902092031523396004022894770005367270874273896036684055531604540239337644329010532334075751354232744322788291786634563260442950715422299036687676338872800580616874251746032346152178811295675118035637679562532675580149202754213798591775518329772114728316661924246557943283678319622212412704054282780142881934911634097207354506483958139269592999049493819783367604099179626995636428800990156607815468863409976125338698054847893687852868562837918184195690657638625430775020759284338125628660614850945407266238634398284836732205202570446065807156503015179064821845836064786579604337105208488499746515046774079005546555700645046398159699316060398351471925094866107388343996739611384357786411615440465892325839736194251081681665578942411697703786795092168500086680114369964583352943707481464464831233674695227141779301444515123708444350728917000205396508056450042912653124957626312970447608670372924674928290062964984436067833002545757890320024574110025818786473819969640801141533555794431527312566455541730700366189486934599644976801274566215319467212390070794361046831729936281784245345854722561954063874742950043459881178183480569075688440321591902478247555819657426447779817737548676099464405317460828274189883036783761014452907162587887761698227828188153414327872282759870353589921401206462864539125704030995753776512558898576727414825776306929444494633971699588390509012913590747832864097483514903221092504233816766955122294780853110825964931892325802094075900370980613620231545585870238858275279056331718035794092410091357109727038118085238798730686777022192581665096662592776629275978820046849809017968873050486550719072161701917278732596992339196989879899690529738248467590580894579795521589550359850067687596734874979015747376309572227164131127020277087242195270076136675401296402342509876870377424635891241256178403926024813724825877260663584907430105283220010423663951329747286108593536797847367771496552996843319730851548084932453294037292810669355519278616913270669009876450130876678392604975734924407284107217182704590977008542495173247782097093408526399426199004611407485750053210346464987391876484769148574050947771634379073998998216128265022784514783194281008287953727949842047557630073880188671559437903325706351685508391266622859155171329405294414147642488717591445488074457821824791532605723089146880607533226781897519295605186946299204327559098306887230295858743181861525958802608179641102613184208259566590921928401281889995303923771211182809858792140063379184236937775204134758167720327384394970062835408631791347884345948030221736389902295180390824670857840444167080533411637120856651845437513485231026054595888870149857571252599248093559783682082447114212154755179280879839097896241898363776230599389762020986963205135663250511816687037322987246394093178571860139387815185423764031743582421184415901016712006863125597662597453534836381486730733560153861038028642335582034308094821917219849433999439788007558102525998625528758064546065256491682977307381539492932392275779804666556122867573039113503646239663303152182375013219915541321081907852246261241016156120098053012803032215179926194937710390420398627910620796729503894510588287709194161542759597435883685781232063637944621129977723313801969438622134513126914306613958420754093527057022536106710898259354977604539505067225595502514016131191182838963835000015861041069107393425769596824652770045443022110690973778746841129916956709397408527702757829671935409839866502653011593169378591374285909273034528332582638251353294211097766874348759154197308967556588394984674166313552919576934092345392126898802400295431754075359951928268382784849888628363005788282469476956247536308180356453629991323175134893043521088792219544725440436165874659897861787737203515099944468032551228146568720798798905609546745141652006023168798605853991134970315596351680848121726816873037333626813892210024841247801649258699148216435660971996788267973173041075457628795727337854799627137800357463966690692519606227886431906144758464550845685728859600235481862065492477575237458280509317867016182892696738267474594099025682114520069113239850336415413230248891737620524919338382266596953369569672752801947407466360921197010460964687242886187256891053747183215867639128758785830015582542914354047523868030691067685673861993448678776863017906554957487371474085615354764946229829639081636654078180258502980285625328743034051958307985229685124577413373329736655577730733308514199123324640862577561772245603019917100949077412040019178483531759949471959085979497306760641936586224447629594447123872579413448348282325009183433878712995251531641728267767043294537854085543293985841983596407794965599148084410783131902159840413273063818324524577776905591837361752988488978789674586567386683863961089408591001736750688675666556598601729463209873981172710344725244438610559356846378538072754258514288388722312120050771480026130422083666369304798924467115072028978832997063136365989594770151950947579551027311564559848805766406730095069605030716950892141364367907386438856508571738596081832187153264113338520090138379250603212963792113806446532731262526511426957085755470468667605250519977565675878202247243200064276841452552449538510981855598901952730473678485486730182545800853061436046326924560677859568555931039525106523556523411593076033163102056660309338753373328699425991830008849282425746367316980238561775411252738631175832873227312059645320358845641020730097160782198645889287770970205934221691484101883918105467735701323375155529220396423799292088979063401146758686253826237332520836811621588160127033555923644089182257523434431059828005199613385259454423710073088740510203973624016907547317851214552859143396435199855967297364755681655860142238419263708115434381539872942759701724425621443335367330074418389507884927333534877791430854407177297571325398187020472064849173920505378823134330448900556216973543808479330496331386234209510249576516708887510664970562633831792333634759087184400355580117699539542726436235965988080561533772354121832940447024292828108267797034878352792604455336105888585542198114108631400848460862718523879474901468806301750447182728898313196659409582581519515325488262035165368503822669431995274027678854412271610575046925022413229794503487598412093146695547051060958497186455919899808731724752209740942246201441253547566336243500345991808680920225638506683903061481632322675667625815845406428278350745687424192396103997399598502162462917185524375314113025875754700514853715422841991687593200897147248911778812422508028869328245422638917368761701014185212548290464494755376925475619122111157315361368976990742675910416399421624171964030023746691834128985161542292533988744635208956627818946819747395024113474976486896730389630928271672510748585861613929055913849692150037492634982267438489025284873721142797645944220808879646683024715653260848215858379069215169841178562157104764985144370927378334224029001207708832531522020770986162049982453730473218883466888913005720938053361888444387362470960827791245236907627210251179721987189622061855151754635705266923501387053408242903488870873164965354575761868674830353390121915935678081114279672929021055832104673496677390872311748960946037851217057372665363094398545073910838788968854642520843205275370838375711313622666940441667126439950469784822596263055138829393624701953651176534135552025946581271782701583884507477074300800974253171580639286993534795612335328232953624243934906761283740351552782248292481849224015736726347126519859315490684686934482534322971924872212583072742729910759004632614616369357166911928031446200820421331675744610267776061811787661357915939151674898593502550804750287289701215647783288032875607979561866193502461461491954917236549495276235780498555995410262617705306943244981700801331733653939855665559695472532413732094551049870205811002828867933357352251822257611762375520271353066523170438607844061517046877244478039321777686735023114311791038303590694101528231169401910699015925139225096099992295226354273428427825903961909915177787626853024218450075007784472049161888589334337630022491776134805030398761852169953884979676332675822959869925904111673307098638838275125645832278491060725377212273525979490834229560517601081540633532199402955564884822989703224925547264969391336101879530460262808401060341533341593689212662576440938990843987887657009907161744431010657825637169392861127098355256528783408024110421781396693636808630432220153850331597328958689347003183836964934830721570780091591014721903878693769008294909287856049529282882930871610249155533062808048709855721699581331190839288125137745639312519716340340507983622647298549000901662411575786068120315605105198153717524498724696325555166091141210560934907620369094978504472934720947191318070357587370657250368041680753209364044580595415057946537471250811698773555338423048576549201958050191596263119892453355249337706761874527445307634017890088892114230866111898603147852586652229958089888848194664425053080015698939016880710987190686242740173039402843356551633441285698023917332765049775252189472775037784619161990646348803029239709050247684096079481929114013822609820139778979348570773899147211919261843926692228868518850837038520663416856416031287182460092380680535611017565331610186394800344230056151364336476550906257575614889733491126551175921639160895570536615543412513087032395393283028004964721056885413856215041127720210909589631993356298400372297461321483348898619566075013717050870573581051257947704302157904942891684484453242838649630280889062070745119204993466686560783992355176807542088129972873751403009314604023819853848887970336426331156327046324273751972881209943045818131502707107999411451333659386575545807885893309816799935217217980464394834836737444589720798399990608992430983002735164234960072586411439739950819053178812816850392265460999097041114194828113576428744354503845029297226721864619750092488299043428440539667320178334941061383072611118820681553214789159797202099735182541867388644875256275267944526026965319411848604316202660057622266049512259206752712492015541752061779472867658107147781980079068299976069174286276014627188495703426909874887511913085506186986271730630094663448296232881300723958136288543141435647026338464632478172998318272755288847197543850024176638561360150618726797755060158904351322148085927941227060273807531477916095366911986301181002806487713477592370090067498803122891034783349265375930935396524674723843415876093753703165014532387148905164982964181054052224828487040151882415465390543504041206016320247461094186240984300973468532268683398097152972888404718219382959313934936338386369360468907845649917272495384040284967172456489879009303630611741706665054249632321398598070605026471488603112416778216665719622204760903348601148427191916265532297955266234452001333796728173887188284302288627690148327515216930224369276934590853660483842016038122214096051040734591173392009052176753218570390884771716044408629262119605130133320627744421606833090362383672519618538204958187902645643742518204038628616706215201826031285546836795998868715323242621538972403850898996559415664149595638453391398067394776523929402866116804881740400160740748951615545733290529201139707542187709766636457785664162784468135413568360198414731192081630339434071846789660992825394510520483210881329559275333069051418805937488247369568621808547112383100622297283767766496645789715555401679602448227257381558275713896462070643729531318512418951071186809229747874380951595533588922202105670046793954668653133049521441085072832002559635094571913286442925805791372940301926985022114703340058487274352707831529404094185780172918182795995154359123576728018054435508291023229773227632596502485226601377414207746834170495483304218593748666429087981094157634443974774059963736653099602649120727308171579758729423159472617223195911621175129528709980112941307711645252865295845777796672588661865614126161863286600438496787576340577685827598888010378910844182273123639861882184047981543283367777964829772881658165523274954560819584713710817516438906081924009432290162593751518671947632942366181465032050607879693211478442898025985792944928526086570173721423148003435729774942049323382185382266620948373800584071487051593268426423067697162415807339865988057628600645315070415228856801512366431059125886319684230763893754623154729067457976467782236490380696344348977673734420193236124772938965109494272370567443751533569575613091883485292937787152123864899046656443683535930013043676872256839854596787259463853727573931815407329250552046226301787328415732323136043743071523125647528941877027860649261188840533425916227109824349113164790401969129047717260533619544132388558610241752430839660674802261749521150060037470663324499280472091400468672084039422356877975448874626882415746451814136114513684331304070989007986523635296830364081278071894091644366566491651156295874657443735098789850206168256068746061258448266993283792791190599659118817268211861427588989401377297788894359105241730422480659474186257764487271833713951824060450766948723680654183830777351778984667002415287600985497198403826838486492899668176324411793083882521877644028254857807126418524824703942120128800391886717625941639143852315485618289340333570582096813719517014722448508361061652083081879897119141361631106438585162876089032297704554384056976466311060853227771149260264680653198413075449658543860019183293683453492064653195872785600070349335586834541436653302635193113921363445944810450434081224297256818976401600081914927498779691252689315167058469331358942968606267197187405931509721373852245226578148420342038686930026318932857684559762039382620120919658790926933610143445797549646288897876193590511540066886907592460792496979275133304600232832403745545328117283965034073655459781137914213361941322219899637653587188547791031520021113815753596098450917740726298611197533031421493704301308084008094179038946922975449487238123797667479579590383636538743406721517825539857329998870614521752678361585088469023965499605654860447064836606555366876456548222490187557724632820618129058534819353480500152693853426319057087444450837289338295430701650507494951812535886536829204485019829255569760905077622273076946743908058843517808827930053932403574987714690124880624945331633860027781451475688100587918934846399317369139187598216932214282043793865043443874035183953737970949829833875212107733482184719240972173813447192628108823517326276052469938236459542686696150385933424576097105885212737674823167345736863947037914268767027069765225058252964016226456524058235382509379122593554414256413134586814999199916259922156990267904902970006412996359466305154561414786773007410288816381533566088338471544291476352691065226045206156248016867978378807110979842362874154870865171444228158126287992444984884875454421222495859215152252619437165487251628722477046079146308010130947152912664791318089933747160514446038495948756652958795823010508079544509727161444179691416577433962858383150160434514285085804230503854743972926143799438918270048375153340075733354249569000718064827426572283345778019124134394633735758990246482838029412386552492318622068459205873263413572177171894165015811318312108511835127414752301813477755927025796191252220975161817001590067661765069164846914682353569092373244352511938187011649983851686997986310203066414731614601875026415593240626665304530214702189600615325111277713228272065363853344588367927479307613746542993806361425150197279413126782198003913124860505555246117644923573499158570896546477256761870971380724637798340355746064213337074555531070487325320695390589254236930937339841577731968549248111054733688369070757107772909964595285418511651859477661668017325524774627130542963854784346558040587201071180948779477636484856814847713005914288509422208253490867099325017240894763415522379343908247287238625113704944601133703720447490860010051131954732017743043520272562005977045569388377533300361218714457394963093679132321955579706267566355795970329388792232781064402148022998091731549058486339949956900321601526152402232532368776723911086589053875069614207651079095656267076702274746727742758650140734731904369890666593742329600521079690994788889068868857343348598053455425078845907495155141119704718353706402801432445665444848993173325647459918085830016194401180712667284185614584794029128748783217131602139470170658990886562054137496915502420722223158894891978023730131882883970822330320903106030852288882298643473794927698290911051437471647162178724882064783306860631379521903738521214423467389160108615065940844540181283974167491557856229879498372920705403240134492100656462668246997291598359804256046589316623414625767395989381058103821635751808644714886086894558405646299675859954676146347811314012324852677402243753664178336456243391302765384287173858747225531062537113941103691903345918754526338389692381853700639030835123162551734968549692843317368069425723961949742442422057865757144584668064022371640124086514170754406765492616177619368763188713337071325332057222825757281969483787563182700488974909708217306669474886334277706355843478793562825315929546805022990099971192962530799031756982308669193316394705239018549080199169617489989467706054201101750031463038924903036561159210482242200507115444252476772344116521447671471348969477054030959162302995147237312806292103637724129623622620563850003092523497920733592887656076032916450451953506643928258546918418668324248205333376017535367725700948678601558065785693902482002186681168551338018481370310600703138078414520648024238689329447644588896756957233460072939331029651844244805018346892499632828975625285893834359006400990632517473788600501343069762446245494258395235406248463307169471292598396302197336118714696029760756315938334502718376955622320119571599481893052420686028886867179148095123951376382462928841846618763708171382366931654889406261849438318377162504087419101461439202208128196794942357190527591700090346785921191724821777995206955784273737469523392319531988525139419837151924794601248069828752402157613836150227511942940485408056952864639799392005476195242995672642627579633485713872852239301381527160746341011591746894736692686789731276041251036777727023284868293505386877423919427885588041688442834641585469717436412778630776171948758750535879856251442159930354630475945308237245678583820914995494926408021069032655853047595862925542390784455824953912817836809182139057566036842471885261585091396010588418466685166798671780740851894675777242573731971184736723002935977436664392368351559536403136278872634350685912742304884031975632829796532530848888950994293382808292536555493552164359891621929060458326898737314291978145200843449837853464129855017922050259799551270408896987547623039472182189303809235795605379231872607563446622495227608579113296171687020183255490544096371364628242126256030366712807552439084122023494362383711330470867493425590176906414280880172508075907023346543701016503956823846025541502955631392845879353780532499789954280481928077867595432247350183212790895495104217708019208022561594755464085578558408947073498513430486905080374512266464493366928535900711487582522169864381088104402015013308790447061465445379617012237998189102376283742423005983974182660303037169551315326580112074148289308900549612987754173415314686680945172319399174129590155529871327681895423035502726522249640533091566322481700304518131116660231555173446308278460088813603654478370442391619317945140905792222945477562430949383258392479615028791865765785193100799756301427766707305482661783132534075659135535155514748850625628562643854394681705507380887021889725782580615927342666832426573942243560638885695349390424353547088245623752442371363807674506968815666473734609485345696043480654878374065274391542350364476978050242936710338285399588569222110642483666964692858278126625800343940316544664572050639985812814796538881438624256597202208927601638959000746948294180440707298796246781857181471521962123705514412793779769773572072053059985807076480858673800211421591569523923061969933942528978494208163186448164616580657048103987998424485054117257762855080405996541247148932941417940185852815491440943769255754659392847025676568704263149899132053366560972986006722612494757185220791690551158740468565106928245026308772049733779295522366251067291473284094297668372658811823892153254148955375061478440688327522661070881807239289525793227518446329307798118868426594630176243669035543067371240296832406119633956038074281100267678842791211673677425401572551443888266888898244469053083319738395586077426108785391673736162588366358999069566542842229029693625202750221839308254944739529314655790691535257083897733444921057768985775653568627975894072369154802929585079835122963392820025845555523444984265582746680804261389177848830627309772317148551327770492886558224238708387324029696419089310252408115076036910533195949959970336790451586389041489687757358133836030072403550150915758236668403180908101571808565171969954296206082728817732440262493120835517685396305554204639148879527095977178217832763414624254891566859908237749518080459963450727483599733482879585483570076839155243923530181110884496854546523731025407433594386401555020799942148257953592267553286530279803237772865123633139496872313268984343733530416936298658880329932899693946176937016668012859359494676314087241559605877430969335643667828355944175157443134897030364389658519116422026890205995182547074556555492778099331985723895185322885957403378463142652272032112574098734753914538284667017721876057698362191571115235764037765768337001918485253259188889674112158419354104631373532911119398495197735545577596102272956885483568147564371471493089399142640488619654258472444227813042934488328230897671807749631120885945050993864986534306174383305597800984421549562193240940244482979361407766762432157537105077477665325682711770191883914229218962108857616640843219080349834797343346115760450727121254604720742272185110211736047894965270886005509526991606156995707474122443967520454273232070044967197543579268844295964702417158096720196607327455169184027097944717779513716163367638134899745617180238467100737797164000326410951964828234999460774272474957469082147503864976984949782562536626044558401213581328929257178981957597258173244144934948129031850497002753657825006543762471171463583921704955803822653652993990968312689280710205078332034054639917152969913700495291929730260075679589640341004337996927448873030929603069845072233525583164047749197992146588956658631043967185376584863720549652104361453913581466230111357943201480201891678632134160700443883425132107684392372860583347123787421553737958356277864455500015895187469449528862944429763320681694164349098556033622842452648542348909504063311406599958194534396619503635468594123351169242568850143427182868811187026049164035421925126439132948760524690663266977886138475872866802595671478776914464711991347453597596474993509099314604134223945935688540218344768805197808677081786685179621790496609652517767657525698831694413671785709485341501444315842484997746636565803056979302038390090917439987595723505350461237799329991204984155161838410115916995637948348586545810788170581202484876153773339147725852298993158091655559998009566024871697034239379343482548425240150424405104787031712881944162667224123253428971322396098034710921664306501672586701424196509332456224252918268050783248706205640461234712326092029201245890517610850317683844645569683269721588113189551621447547884387572193343669629388323446313088423806283538723929559429895092982624836480434484993836359823973312576303658537729146393562147980976185137589659337437816807542929224724632282918399722762350263502214868290068939034782347176439724030655395205128748294117732384103303350797975658229174623993381496551976763187582877905774098152290021624188116595090096892804425397597544087981964749390686530468482784405222787677290644881747272093223077215250764803264854748181894656732876038777162142781392365700405416627992355985899299560323400605773689246995086068447303808472736482795853159741395681488165740920435106694461542481684956881837672388768291155236778222998846390554440664701603959973552502330128585145501868476220861087418068288756996604623313061324086162690557968866370378293077746238995720030362564063235267290268560715198344779046719395474668216829555140198529912958099663220125879487265401259173905859605081021615834016098373111484167858519490694424191608683000736682360072617713957301399293304474428316851551910524272850499321450248787106862567593608120528561564166688088916684685026732846961071751070405010801210769831011819668183170284800078066096556644675048909127204540579137721419285180108140194713226214531566227021035350147927739791557635844513464208776287853149799203729047718389050740785623278038150331812417970396063115728116234176406007391851793603942852274684283167914348094111578528382791017219624319016058045316159998260400991334896015221436987991823484553691134192630989409108680945079909373985010337003541963970106752580371580189531261645549484345072912824437145259862015856487079112666148973224785220336234190852919967323523243884137614716585933047614970971813782337401214192131422028382624680673658916784535974026236747845908140978586681997723579474012147802967065057687127328512326928376243729849565412565102800483305584411425715740485913450120816170508658485075028011729399689591369421741854465239308685353766002497120339917541085719482158134535198131725577073911900528143241062858709881041643137120499140532564190231595352828186000208857299683513292685160712681162890467682483549650648368307415364484745981854367539618280309345054550938771776213950879844087405696925713790614909835361845839572091863658253979009187373178164472322588704572652241524187576904951933435127980210156903528356526567888208381738513067987950683794884345998888518928903555127722239441482545798053925016566922185703074823240821665096226316789073331440508213133137810841702073979871292414915676710538226980648860599239634273836321868357877431040157823647788215881235914862158894173978437132961594618345685840230070386828540718557479174090787013438410810977574454325342356421674636435053715068817070615307449014745510316206661591382065384108366298073077507052895640009017872243629646452802908702652742997121091049952374404047457470605367381634037708059516740728186366782042899290006030274742482828418329560240228096101932856276475447738413615210653285011996444086263546036010613605852802178399421547374422680874715942766939439622720775593468980242885838696332842432119783025223463377701682567663354837173813352339780935373091062635381935389133795877436163608617648002911081887361384103939889799639832018285491979720297582067255696139457226833639197390144493780429196215870673238166449528837588923086379892780230330063066750680900828625449374291718957543495462973853967920935543563804587245493998101511114889682954688831606080520472697617118479045409116035035377056527628933556094221670219755733189321039355355350607978293823706117654742202762388522464745837215814905416325450628281697504641712441338723744704972214951257154247664056376697766940123584123479171654832139323277057453322058122198187253679343478384664313880662352337874123822009482998621083803805440404925391951635152126365342929463778483403791207791989496664716402703962921511684346935835298541102003609267060849137853994461193849786817218265017445773052126538822323178851887854122954742846311777119577091888475692447593769355291957227165958255630296378606004967725492944009900703275907424410663084828337711997178882407258654781788158833706356570308314407044964784930491596781127894341797582715962555658579508259456024600606049076494382859224481335112402722440332428888703675895940183182096082357968854794409461028554112957313545756541831604313015274176631563363621935799240661569168861888387942359220095392137889577541564902257251306485781169615847396391313701576825528631092018536114367714329404589036662401420196883137487417648070158574194789520975836563941005679379807814099031684472298355778777284902027786093725679109756168982629315782279426108114422848124757689970994735128043860268481758529150822438881292588240961284195153744607711048491443665838240107815667443947274900676608146616727315874652875299476618350730825144518163011324498784212617077096173923774642503782427228433109482229168445007134802911754690825592205506214036034899025095313278260851820405505887019839603763925541036765842762408638034742600307732050517600256823880807200703636497423196191157196634416243867859102056488061726045581036231069654644421242935112204811336312451646734217578693818797412267539645317658378707798621106957216704544129830423111240667324329922750675816430464812498181884891421474776700075099362240770303302894527643491062618467833796547060621785603123595745556412298759167446953583045034753881383283723674966072281254068531344729105504212075911771517139283003353976038615249053839204684278534828977902828298414702318105119822246879789953394037823252177009252899908696626105964206449401085329057184385072116444115000398085577133300301253378229962321659634090204801247712390608001604977041255991393518486794509100580234320730387026592312672510523752484773752982469214399757070591761061402964981710012840963070672942707604726216067041219697278156251199924983378810025139708530081771628774880104771910533297008646575656685950532835004632407632943039806994677845655674893498183839889581693169802227205616993865825480955796319140265387083791654835360579156888681301119130009408999629504207994218347012582008172249182778671803165330082443449663903190949947876043868084709915831767207108576564239789853751760934394314937702092563547063035007882396555349666677119767469170798430272377838019245625919897632647340817408594297348296006770332011121615218435490673546270406331779550496569398007953016193278073674452625523990471978276463320693445272486021168189839026380204618443656166498143476284077008374400205183069450341473763972287699333862127236418620711341854412443387081805284578775461969587285542332818243028863684697246677787920702287267760957401410262331571205332075233063213168305431722178313261126627546798587849905677562227710981987338863097588131578960711731582677509396086937561843644804815202305523661991622290830034107794378560604497975211950629979894027219841745665497085531348264746822957794416940755891645268628086584599131539074290355896245541152950416595110312608303246133135997439181567682799130774398429157080773062130646925572191748019317386260572603522476599880920037840259723606156738361054463576989935802118320867023546210890628268675515170756522157780358816406815042411459582554657998572370113533950145431025720535094929060889343607355710392725718594815600360410713846283399251330243466581120737710361050336932963066290657347419205211840065288199330048500034899114748613179276025668946862741535304075169643436881739504053064441673968686319437623367087238181668461127265888534914462233106700303162200096912924915454703540014134257472521047835583660634612452577902821336598620490452901471679726624137191505234481522370562843318387147976493413803088971300936109964844787094344479484928806258333415623581070774066518135899659457449450970356313901119698461067944465185050800625067825464004764255361169491606900760201972268577232910120755140594670894516212971739947680891195792987114359120128622119287491526769034485141876807067187296463616453859092418731183569861329411464309683387140636814326872606964988366817198685465365927975752347085076466918928521523033069045399233889740894861070285018824010933445442724086803528390291112657492923630781514772765829182620860772533491846353209048127846322352623009908997065906491843164672864243615410645303673202601806197098832170955652859867758144397330789562416324291311455309949911204906643951111260953422949765730164185654845998818136719300850602456822102143237727436411969634185963553139702892833864509726307719993478839314704009793458116628833265836337683975904786785075132258011536789897989564202045816330221259676841689576920354392994536823783446169151561813415948141785261985118652751449595696702448593271158360433676581783808437784287823094049679088868961869233022274509021794106066037114964828563164435776864999157294099478991112173162607802420722304863611148158503392546326644842978720081543679811779459306723583181458504278777976852451177781925489133775672684584579716427486221847142974720454786105669475635872457585901178411270180632459971436226060794975312638057780677736479515158289869752553098813607976010212890869286836581591292239701425573575686011083361765607819792416040452467246329462731459037654386359156285515745455725264219084301121048035997351950792475639953373927625872699986042121504005888746413875515749007377926363706587280767409970424253553417223536778382240685387027548267797387705454213764836098012854510494407707353814739026493470999103912034488294843274792171417810412879893771368000177190805848583776387431754014125514158241563855811015545546370864649684605033990718372748361957914549634933614300009344685059007096439193651572830976574787124333757665617557950658348041725216884080755933380283114017974440985514315915947456738174196224643490065184170482761838078243340979692412590510859231235728869195400483415296391825154964779567854663800878703782569573167332913755046436208173906804156347893249422415216960577641323203209516724248305558715644710026619709292577951738882796030068344449177673631791383321323358191172015867084046539059072244225534410917889095615876966482987062912555687309077145343889389580741615840159517829316863147086241587971828870909173693917319490934039534343375952665149944402867476913222543876001925422961834099658738348191239277931302542158171235170578982145911316707628029551691469533482920586953171153347899705706085849977520045078987699568018738129426945857068384907516041331882311209008567593750035538439622132013979038399015590886709587646810967960925650591139395535125957864942675166951665999873781104804798124583901383264540914896097916680796634760809699063462116339122272908110957484744103628601962351607505803002211287807448905931894282500131143160591750422455416298577140610578129306012390889066193535891080379837701215661111730199195248508519992052235685641426506670436343053555590135981584600362547700572903682681663627355777461480617406370437630783904476056140940688348731912044652710024197872756106030952746022934804437464872785553022308579633954023475865311924777452902609809396816676972762096935018620790264754637931282314495803270507538595988791694737945514556686097436739427010154516773375490297195719921809911307507323583486068038693778779331482458474561535260224948700911212602140169450967189241253603808940490493191482840127095071855595431987193596472522372100433456657175661238206529359426407018786840955599839984448742316135806795464370518364531606597131376094527335346640064765078570329882632027774539129054192587403939902140487555632521675538377674492931968621526874515293086858009260525013923064817298709952906813154810380506753696787106565137137957127043608266850757934638415023135101262788304396421145998538070470101049259663131185267891267411496918916851871438076515556394454029907650751811563404906549580971383986054690575994430628882352042536591834489913781439181289010824694037732699218112411554431395183796872560840729786119652675942400449377651727472977744513150389367719672575717513061993095664749965536827204462473617066482233684604039364671447668082168842339282300422477619404465928336713588797261126196096640659218780490739014146589142773357861761069986834384196551751296102142131008572889265385614833755660735577957560656412395727748327909392509964864640943178889639620059226245097506742552960493251772048557852467589247607818931161725663697299817134371028640872782820342198277854181637428964245890773102119577050353463490429232322894057297835755798446889093017188234778274660309843970736377166010852718212445308666356467396192694133355713244105825501324835632352150035703236329056201710510824729786619536825367458624413692411601821660306468906781569569059130528123663322313870179115939474903399132296627937783154464849923054641346017141320497163989420562891718955384387183863950611221576024963965588141182052654214129846992965702589490035025754279759477067629645262468633192393973330838840120458895517217417711789965749250268362837609269020431013993672320023444251594820585617562705385266379669991325289236459523753057525795326408397447218635056780492408933392550326662564943194028776632819116390689720268650538116016287211268343360978521567393328131738442270377705367589570974285673868473327308947491910322976544728060313448119019809207083862495096163308244987903948826483462425666178935743508664872921998266724399091831667622724118779685938044184694272089461583410362506296415498785015887111252979143206332256879587248380891852205197005964816237529924645906325801086451017952486805796949660867185041570543350822835539479280285844769582229045802609750681614171648110227234267981672136120575552923328811275677422621980405557676319122584537002538757955401211972443763657883965749973072726374977441815594252965795830922115334860712732706749929220444649072597276135092000660298883985669000299715016133446997558555515011268534345119891433250630954197804492557783548386381952152492300075748631454858111643996900574004722933041464131045166630517743042449572132132057277575505683079412864570606135200250372982863999645553360478456217118316775211196364011926277347313856046049602426948805141208335874742666968540994422453756998573620176244714265461552566845962850913405518794308668453962941944770742642054124301105370932039228611901079834208186600741139449830186480734248351355033806844145818717863175060645184675647787247360831736221718297910027407711671633759671508061164150266299809112933795801899656827057255638161386181507766388471204715016818221041825669769640336080784128934803145537188847233433131384737928325210326452986322846546842672506096391054051050789878167563644284589352180078896465222473347133993293645941851366200281559848164152557172617669332793697143853688653801376160200814833257073925473164997542937260216960896543267441695948688950862985639630294016185982807329446066052620815382059895881446921325124825513111538472650231045113361316634256576834376979406475560190420754144422076028789763813858780416715119719945290293062993263001435247728366779660469978066131542016780452743066011707479246781890864588872856502271471808653106792724191473360751724104366005153606381176626928043855077977508188392374879951822187379924595473440838906759659662266637387723144745654943632078316404012083885068045337099437993313150776845260529640577370115945824436672700493872451734494620927330662001242765637785546962032866786168834934595466005008873850039542232523854589315143787820033273250554607667891279000923803677529394415440821999684286790257885460624000327469842974895419293111164345362605236046280298834040207832105644816093844399132730771627079924788883549525104635283384276671398661972590135144329633521766037140489632681638439573996538464875058301528343130038695830122548518967437177550613171570866395491994384422797545269584291215879276472061922878303984882966356956998453708007489766778977246772943600805338627514510709714833601331904138132160408659401683315130676505653812115054217152250808381014804700957808381527861323682169991293624957352928696606472269188906083063570000802922525273856127535595321098549985882795486529152692794584143725711412048993170759820026699265464831701202618133943377012648657327368129314255359994186732635533059855172723687757850126042939907090791655174682941428116854612498116476001713178423572885830584981490873611717895675484929144142429430002658639374278046846323265880602416822018670185689824412995168880213422318067326174090570325301994643746815368459080475261416752422547989635153719503150057342470562059433535380415377830554867356832388563852349738456391976354523111036352497924052542957870447884945284266250609280062120651509816745323333207342406774759490700468037076218579787437737522153075705313548302531155791430351288899815163023587988887832444350596254664560584992620023598479612375747334471405614273041265663863549979791627978129639003748006821781910386209350496964726990405691860320668906427620948997784996157472240161635645874009272282283825861362151549955702678063881482324799306970217699646412670812588614149283287160596379659896240323138480261263621386113511291692087404713350094011400033691976219484329425257594617551598021297828431790845070557032238027458312916151861163476475007805749777911560523609259307992619492808174673259709716369508459160951043220245184700315525987937170481175335005383389174504923584237241370474823280000831191855725808449489262333996577885780381781074274835514724391708875567692075586178736656767514680000186776253323807212546262307640948760329913617674215904581430012020833235733608031454041761089542508239592864011156859458153743283184891078574318342529173970812286600022416925618587544311491715393395759825744330760176255159421048378249228746157134295880848114734784558298991464475368213407600201592591697858830127015413634909306179889179040924903869822682734990673450418151962680894461316278618498719422941481639304466404793896967679002965109362650440258815946797768212084042637049613679603571750157289762140435564108728827977136454774302080774990912168043356925683866126941224768927642940014077477139679565941889459223326086559000280241250028976708898702576527543222823147541508603489340314389325601358294099025292585415591915997620757727753754314466917640112704821790816248519062960401724071219948880304204051262382818320066021106466275210518004344012124977722201036080331703707457037368795601817483585608452874547996092638636113835408439927206141587780032047702828298061153653040788245008879671288922869142927611699596000443676258210231058109570738886893448654415950950268140798857204350260460763609044074837337191949659623571335516238387164332590381406096512750952008795879714078826647675240264331854263996909213492023488223002270773438289894631654393749340887592167836995029866745061099781573540943160437301837226908559985544842604375771786276530765316951296343957672715147770575634849835932675478377833177205055624029071537469550685980758946813997637156813077100251573609460566690018652099967924656526045604186647090306770463447420435145475590535483945978551547607407639483156705216389246664617297468377886101123552719048437502287274815175842832528112257590909500459402772827238082672047021834097456458068599055726382642512395939573747236115031500611093906660520116696815585421269779009859519537439031287197663366122940908594043572504569776825362129869055104727000715514930327864957477363827680432094108188856496200787672566996571819663413472886357755399825992037738389750664191623497668389708263270025480866376783518749016977625576100354295345481952730498855845016917951310217288113299336988244010137078638414557785584188988205745897805063258926133315517947956631179302951269584324281092340483607852730518129828162658102947784640905249789629035526127457729514836632046444124005103744353808286940683900303582229354296339298757295458869015562509524850734178271169347819149964926917656088894261271271068034056490307551877680064267884892825190882710564101958680936880014953634855118775380651370868070740983421238433354195800161382950413288389514340775537561109831341748648852950105187044124875089925550744608566447269490467828318405294711366606317803992354389141671112092232181068727392447544619489290685701853405351012235909040993549739594353126014447218158006211668760299941590122292477181305462582402501455851979969000142380405943001752307050796016970395285962220868242325861097490110857232138770314558687573456129025727577211787860090491431124953978810138099080932641215374232453535054156387088272167271002457974889608547978334640069732609913738355701514743124659081258826472052110403516390941375543328387769811874092555618196160637033439250768018426370511478921366770228399208224075700617683641429772209263797868366592894176294868664700542164598405163236603047317445480668175549362008342950568928634544581794680114666329755482228181543275988743121228466888832228449989514521283791678925580682644949384458172115998526178194761813790590015659527899977620273592808555551251444749334194910539242599763526761476443192856412988194599761476510158178987955424918093144642460636325233860880431569817042667966086615434497696152786899614504697885154820800487062696703347055245238960604574083153753677279054687799211656752537644227950280245353745816645988171782543956128973837003699706879821456042621544269179121220474884335243895197558636499412151599601540364159251399768138684347470901938820564423308421758957095347869673699689385955475145937589955932007512880964613073625395420517410008014743433788158733405178259010308297260493900433781061605760662283993715007082127624599694917346490166438436074095016583931649080789528695578205025424401150917709686663532207860669021900227050663997020766486480859044686197147868555902784885325945462094153423024813609661449480570216506916456220207477871261252464227075266890985035217657479490508497130140753551443050456493525964086568936716867260652331726267390247719823524643084490603711901284960550300800537490226807067588252638481236026113949732430162744286257912351867283731487103162847062925124864735228148873979222541057150845843064407317827854651259902411323199939366354469670076206843367298425824504974241713045006030634244445459068576494567740008892472842705237705927379806674018792418187878421441853909159733489504295165066687952109641916916696560415942790469559164551545060164401955301155773964347583375931767375334074627692516836125952247303486125679581999640498856084081862032738529919137245426245384932580182640366351503235879900262417576647593599316998526283905317649201549773087159350771295721511087597543933162877712840086490367919421745143438659012137248124370139512566424586694264223910919937853679979865805751092722890067339740696456866333507271512045950184228853985795658556929461622106752760354671019991240879946743826549782001413268924641451678209053418982903443171856583959327961558269864728823038981309147023240229857741698745210559120381735919486803086198029258877227912313519826339950337589965113508443423100064173689862838636496990944003655408187928543128328751505376292077806996115462777097759703926700711726172664890172037733047771620004052439742516624422334947865417808688272988986330766125928404950002962146520643123288009029181769298779267344000329102440203304891557036824976083220891736008224293558291281567512503199602952541581090790799935089160939827182319907996531564419446420682837271790880511703825797734831993012492912949768489409693290928064122409928243104018048121883175175962375291821009885964240380216701471203546544620269800242268208610639365873015121313648083252579247315204595653609885226338798645600701597316741464936459855627499058934983654282126441312460209467635602847401830891436437242633251629682308906095260898159526191212203249088101427714127677504501182211875136261650902698097326679102430124237624515945661485126899130814320231242977026823760178142096814866944117957167383838225142258819340290915112654215143149413664301678204965669901352414795362603191704575246291746897432876088074247824185897744617399737864540757373551166918796847900992283297540939988044976830958247985769755399795139351131604587623425987632518438327874840188011193494709777832651491835653303995847632860117498187503629492177562270427901942899477767379277018353493289719803268373398083014374815966152320245638108015041433711576068280477914578380808152502723595985746470901193927394697033218030708638516191046646542947917217997934421121027073956671726621036680522131546350871607416775730650236391200075773798350976211451041026665572020465095791261254612186098964928977598478987506357119606635950250139532676072044213846100626783669425162436455967940406927786674232847321376216386046296982459601643975507412584507430208968267551429424525686138212727761617310863736721202815171970647809063768527884108900946722201083702345192878614905291445518495427855709379231822083241249441961204985219883458680997405519766314158456515600172199284426509405344741456630945354577996684335617706265293464639399792883284586096601057967130040571063937067611167232701142534260843915493237759077158703866999773506647242226450025929269687191396690889012897157377526638781422668113595346470166018529795155241413448636998107667146991167318774945913056782297135649332100208639078822249889939763296461920124325406375925982276368723721611557355121820836611289960333366248455268174559870321808177401272666020973185364478836985193900942945423200153819675241871099320760157881640069072014703480292678199776717358281025475756041820081612358208413237726333271373168631389874983134114787703767341850307257188307886397501184984589941130022238278812689690968547881641515792868644137873572952783249687136547367722257361480113820514990316670484860925645821546986269079607328319645146863606121084905554311641967478631597244013609855671343230200625044511862589138631482263044654990787321095107927252715225357986883281786698374750859009942080160314668653117340338792150324941247661852097786930970983470760136640654568093623708859439272234281894334935530666241833667123677456581489744022160581652885982480949170889246111955982211643105842286991168634061996833990018264290440617217260800173146573727057936391764026226063672653101885193761353708481420486501955100084457093973847594865152070130601569306463080756784904681465419736720553995035493699385445485194826306615393404507399743824592227762989121880229850804427613506324169470568446857549245597638614017184150134947929176892915416170087046929600361408557435226431567147568229975284750955907433420984723765597267095091335428279203943883093738986088029517235396550347478669992281965704236502495648895416942214219029385015094776290923186180196733083179305523309209119558393697696911497220073086570733313233202024146120454951840450041494344290678086787234320376071780013736917136372635556096100520163655473349478297834947867411010805198725424607961173063134601922488876684499381211603982299879078470889310325526961449434070613297887440592203108369627322278557836100031758510138437020741221646777742935758533158674611785816410643454077821407507990760464010939090696953609640248558461276580880829595099381801539102478627894137659177324553891488909207945090650622722676564821039904800578840399263219585298584903825607684574844966613406887035231828322377247154663159175316416322567727904619416542105665586235018377728059501101644600442217271797203873744228851286461925352784732856730801509675581554522321503938399301784021684131851891801035163850343569524322984313851336974786704828382017602158972939942534759588380860548419911642614076329927802934067422488791239451110815081763643557760306626005620853837176951084209869983267544568998774414609294703545423796945564007682243983004156924268862872111065820510063628793560063562076638085836746614837349566817435108826685293244099158366806343879351691638268979435323369844940671817884829779177991636095793579773757479691262273641960605323340408768722120802944138167975443257018098660838826997637004476680683090936882619122145951271902140960355676283383720835673274718025910458436446445485222854705381263592109704396156485376393413840529980768082866091530987003721607148074726734686481485118345715220913419308412198578064603841681354576472817863154023881057714521269885991727293426000124170739427658835736116346436776524035959167593334431064482954388683710934010349758121187245702421676817804557340300510144246292119888501956363488196822691367575397724939074886313576105582167124971678206926272234568272433833189778726563461259807291399155422650603156735126868360902450932204675616776714899205050036823776433208849891498700848830582189795632318827450196339839117420713835501573283825430038243626228347154492585938862971257517286978420823778099249356683715432381787993358502381180982179288767127554265122228731752124034621519824414379147567677617564955902786861551924757857493485950053048196169865434224914331286633108667741458015983480588678804192822833749608533867676845428604458025268809401554264603089059343764719367298854311620765232971932301679106027910329486831406448594250627054666590995729917645439134028522231266928338489877115110683664563441354138665891313983335236896856343574039377086402831766061374055735866650278442428230706102413089246550495248539214051080782990829558561667973652008710567795649999811293111693018817449930382699556478854365754473820925266093831916912312152650769889675729858557514841987786558736575429945599042970145212058878041207634512317023011926392109536224485178420234160159451082489349149752355883011203399382245534664661054727183549950263331459260194682762319837847478373766567811250373915919578935095350791194193872052678798685005417481559108478990293092546885920768876987965930970904991704841487843781950805418531549747356565567237480577518273408212062053794798119815568487349698862169699016151249204113066505356074080711647917617478487166781172335840024425820280502000541232269150069762859149575621290444093891857792222011321641687829124258762788785809988510242410452825177243627663241573392031061452149622518200642628980124356842333031800996599558506896726929718459778137928278250510065821866385852836436279228187096771123950120573506667536337084719844011762557567675502168582009837998080214209874755417072572462944468984318699429082706369070495970611239211855818258106916994718498007989146461721823619352028784364095579206709692925495724257782019313830460968804272336519436824134758406793062422770057934875635441316710238777766704144641985156225060390031323760515509632017961098857975516259391276662205678432678816198458858005386289158600072037096698831644880233765622950195091055226665276887627915052886442615895279810818650589408248088075272548160051367002999663134280451357343456866534582800745006877461937065961187301062469390998721375662168141358508717003582006548485159337019263246336640926012847672073280160355876471908193737170790013557134679989741642036927748947729625902424843376384253871528526114851022552284759327864613538586574127859388013362515641939010542466117722228249555788810864734921066046346138582543835266517978945185631708363333716331437979810405128593094275749887673028687519397637837727527504559919475212964221586105730426665312400932530544598234939972084831244680410162292758044723283435364599181598931998334762952567036287282198412348985537592948430251881696747242369888817477130976590230809243674249401836025184371928022187645371864032437145062016766998934123495547467786452386950048967497376846743839861466192069391159157422046621409822575008215368757853153022509231392534639060574753851528472779429526415621293768617938790437129691429428428274372741007244296216076703887198614249770605785239733634443977393149103581706996282422408902449355158206646041879014664729455264225638762135828845992845919583741092871921926542186009574842145739498112697970440012446231746024218071944942440326036897653477140349900984512274836575681214367545996324652817223155848358489856023274834223365631313132286182181747221881948519696630483610056745271938441557781411416732886889171900888697817018251522835921050465009313419309947286618424740167783631514514877545884019744093998511743354046177723043442366728248566366412141332399420939475390819958226132253763685138461214656793594255734383647668265277269857527391213016025567376209511589588214945634360048186420635875375488632766338359877960242963842438833894324462549041562769439782276025246682076979362762186846469762492209931879038274157331233304817440906551885790432617037227504983397634459824282275162464506875612756449179995089117300796271409143780962775428561163660024472674756503366088820851867116817577117178191385540314560907109654007182791565823713136632395851718923211461571372854907728052151186226115815126546634691250865129254815484336574358344049730706560928347837552025978396574298034323270106888720215583115642369370085831970176841670357692717814666963267802879512580508796031824212133211196353006471325043645286175507971563965191728240952735458460861507238073166834646939513410834760726208388108540007563652607241046353264914142071437650756219397858393809107608903605462378649044026827401731389149963711345154312021470260753574927723589727598853809054143168955761100994197442638330850980310763502680211793050122413516474445708245677783277270342565083827001982491033922937764817862352367359004797515258446359754856320345992840579793479061081671331826865694947094518157945397846329976654947626213799949771058358886598637966204507035367171495204408543858940676368062607312327542548633688988898466968896517892464408328808269057125091235359897058447319633833273331804556568146193745448016356307659517333429588339068329327553900412670937680994195121320905706987171115691048232975489091342844513805564673730269403092995098806602994156084590915798221007817304581620809127861103979236453825978786927595808560133966532976460711844744561291042136061884089699844535901044648847050970887059874029499099753571846446406788798254316487221422703049537941715265334868121774674932591666487274609582314682439734728336789397129396139659767713829009543144125813048134553916462595291741173221579639533422523377320638288036326836628570873059573024285471401425766193363223078342071540100151176090930325825554875856057482176876637950347281330520532889569970390754528078019680956747487863750562402913482071781534720858759985156173667593429268260959005195125972882426082050760066156148737904682814868230274414563981309710175371629954190675992290734236532033491318529900953560812172182157145826520324810750006433648817988502476865905986320134989511086531261928030132029291290916012152311429547959499449398994835322088033652214747071262893626304408780535131183134592369167187002383518754614815224949291321009162562220068366029325286120145253637797174725909775265117864343068562340936057236483956283086072093375516172233207658059318049263334784227516290550230572404783313608432467206559089965967320772818989438784132381830413517877228691110432982137563247693067930984318099173899158301021606440583517026456084705765458006823752618178483792912692292100350573657974732458370838304083467150097094301231791266816349132429749665771856044217367792945346309196171603901447710356810499949665916229976740209109607664065922591860787987074106533452137451452983231660243699612583562645228491751598961934161742811997168074175817148603612874244572899157033264614312756355437013002931282473307643052114094190926636044421250985273139483340400361192314088848634978850626702690181752883941258404598313617502598993795898391833278669398206304904406940846171703370239188057717803598574672995278523227820211085625424247006370406274427576162084176263734907727937203251627991957493194732972840402260253367551135731899580399092627361903736174787666316465615237202418879688202563330523468040460290883660296782985712448535098406013517988153683075866133609778981401817356502741888064609946910472735888632511854881542536600312824838243992386073138942787461368262331375300244879516130183443272673046831370166299751227348836444929217143843812138189904872035205123868082697548339179835971868661398230623103169747778132478227904951645899198781610218154495159282682447254988692337444644478233359585755164327326544774401150970374360138160946801574836201572914907589466839088154067304016886569103747400401048747177186487360233956514656661428029312689241905540525837999333177353466964194489140085953460796222435803605502436965280895967064875600996275702402938792694457409390470080656040956045872700220463863889235788124111256104624319820352540509493468647337105469643089256298931701017920415923154607451649753741346126668864721200911005768806394063636811648719665286420820633820212636504494977720020072356297693904904504978318759826978542597190413766378766200703615093498565109362825888941711216563705678964230464837347937360083009959697797061898767675701041951771673132480758547915089462067583096826811467642708514325925177045244348333838335095934168082456041727604717269919868521376905167765772130970811699705625131118692440051895920829061116253728462735699272705217308807493945633528543920998738073291526153180683151156361237934007301728713452460903461920018183681765368118384640257197770574799165418211744606668482454251947017085172839917712200737433955327948120923176644474235399085522479599587056428549408038474449058463882652838975384348775391077913433808375605466519487030342883224580709128776351935738431979618199477335555149697640440815755162107753583860367853651045189674222208789443033533610918508354594771303424527185210038860513698759011407312374093972693179333396206632735021455670450055544429111445484243228658037161766656293654397988463035692907775598504725450598667990314393078918317629278076935505416483939795018230462624177387138311745099341347762119518338355246314379810953596990947320928592383385511919268313855819570441942895833940224626590665859606681729149933577864032120152121272017203232387695159429909505898904009541664132798860374804825130366803515792248072286875781371380802878118876827490589278460378417634539764855436036714632780040684452058491311682281454998281241845113397723176547766469772060824605600870897374885119749546832031134572816026875114745090324394469647403078918792109290207328398149546502854178158428864143745515416638333453556621120774014258242317906391234067742091057287298274440303257732380848459991917979275453706779536526171179682333824218930188359776368513507435836519579595340038808987853808841548252745706181281213847668446591811359297925622412025792723877496892455504717715493536654068969206589257398536380205666287191436176262442805751279988920987865693479039578844190830053961735880891598761328352141946500348055640811437615467562979816110036663702130288166248143119797024700763044314950213992187675627311190468112442646501439486367812056040660034816250161976559274305604484464988750786066304286656382317968556375665413701668262845065681161920163583184844767819121527390216066193368555551877669896774305624862892053392989130478571638858968586510653192443646498375374258203988369331563892811999136890835057255962004882959160921002625591809180072650456938963225598249566605762391784511925889851827611644272666788620933455706806357976777514894826711302616858213863271657901817111842106527164222949578715506277268198133904274178168669152864344275579035376113473451071385430129327391157098410148662737200466580060011521445221737930780566887788312715687485369111100284705209165985998172882001792801501802811191868444630954590145412605957470370661697031798987091168225775106771490003213910586219474690924275894478482674711208111236437127830895980792700462001145020080577097326096427710452025568805860279149794655193879518323128833102549159846524505075612334510580179046927151279193601591432948736208258248037348298661284769874974877946034893489951675274275704404308566737138931941846081234227706582566217221090898676567598123946878827377913576751391847054461342688087316825614566121509550893193050185807981610513879894969983547737473592293929117244220354192407457060750279674398774118512770815171383985818828528674503885746926041944020688404674713916258846903416117706668123193147188358799410745505603414309817434492856531788413000185253456885232737094943236942476704751288278013723110325746444135357283316815656005268079639954723732880679947270806587608268699611938443949704328834234557684362006545939879433639752761784424096688111613803035195904153845331853575615223412122477719176513803069799665636024945304926768739331774240489017306217301803801722545884945932126782421424810214133900370159139917009620494167367365631964290677979275891212233396418062354375639824052785521268829216852141691883604909957517589216699061538107048352468470320259771665236794341656528651555424096411027522974895396921439146629691650679612645908642995439101487444277990468649982149267015376611373450412361107812064404705884508657462142595353641960626136204060371043591074620973734079848816641069742207118198243953923616280597257939834119022995451813455287570967252782246505940032902404433225123367205087643628580924321385015306279309519018124634681079243318211839757484834767342270438686637135363514027843682255593717633818833544049196946397511435700466566062982430557878338078314084314749901482097963968820528589955262981011864698547938955362871212791312971312819560169973032019665181815029262144904150707271288747177107721152079730915102662207315784197295640255056536279321147579271763146480791090976227898355294806419329868968649219503632257211516165162130665160669526764963397350121190384052037780303906181424123327316565060100754269958278079729789825057912624471158239408527422846441050524493602625112144898791050870679302551865184093459051179019052137682036000611282499755528499238728693029969361239265869445166501654859062312482700124961588492674350070646325877372504812911097895444472936929040978196374832174376798406135961158232624665974193363798377350950078117137913236371750597975586117611110325718117849680189198161463471508956816062291328644039133822870421669485554986568899285771513602949979061207607350681808104710724508135206400451623932489986262852947622928498005645723870418973963426415861969306021378627771574607430214312341772939858132785636417409048497171481556805317098372155104981944556954196048043339518151656893608078359146231525900812111514684247522493853832213137678931438638639295169000154913956608001340206643231080991902128338761315089130547781767542974235988556081196320079113071810604689691604112553971983975631980852464961642342467412729579820260083322969475224936137590875414436548444432283861571085319367557432631948176284267558936760982718097338873083675805987207395498735677946575351781333535466399319418832405338836916685210151248802027552799020329642842940399824720744292301043717718266778039773137294842008737010330136420144526206671846063346997147539370960548376166400336814718676118663737795799168534631870186801970897973417218152684431030147557580827891905010298558754059955699360242180343193317000543055671433223847641073270989016894573228161467325848414195505140371206102091502082853715483853314623096828042142114568675254945651591450048461061543932105343274064607900102476399894972514904237798823251306976035501823291552062267416602628068513977215515000942900852751055426006275350150310068893725481583771799574756573189765851693371756921958803695154232364755727272234366430572592510186582999230348339827551690852775192110758246959904334893024674598270789796269974933960902741909909535335154471034238884721271337766379662522251600885144792467333717937054182110011392635456656356120348874433805886211881874673072933208348650582874246282152270032177517964083014438030456823547270348638676677396524017616054625011039747198548646372668466826339306129798849130856284597203621525229314509078066105942454241631274619957744988998648799414028199302407853780795446440006105414910766012584711078978091976666286262060572698753411752682173599546036500078139550063632501802374829568428476433145801055873180385422265126808055135474792641183514506876049415535237033449556910813222902558906335424027203146574975004069328381404081120843159599536630137179525894103972058486828177174261846222119778359567025888560868929930382017696817758631045533936929735608686017099708640211213362592370556993582040685724749794914041756763909648270682388720431064062987465212234993928106661593207755050811346431580015839056197261375853879711544857661837468322248944072521655181942897442561234046533975825470475589194497715952061429261848528963412247355531908026974866042362018683587837488078364519563962058287996389987910597511465759763734771218767986634241585054043288030061865746965133415541870069251665585206112791733661802897387507423846882516789519585832859105133198544361870247586482383420976462554175101589719658256130751437591226171831069664435602625899824074298385294096535387153394270883485061841853353965342817185183426790326559849771466269769634841500101154097240900987359634138822334337105776018169938984540841000781577087256149001728871046699950343563660092801336685918905375801067560376376172136998987013358792881702306796817042195360098643654424209641119172645789346208449285273942699679172770659692877039317813461194679184459892815781037537047372904678407669826163002307462872495305752632531099664749128132843712576087782787771673535461959432338143438040451019402008266113927619787890399333672279199683418239828633725569703190629383460390457040238688383128355470538962960112722492624360516860862224247480815553668667762327120362960538026354365297918843501837130693506075694673835687467234532917344981073306076439336564625113177443251174905897208244808541432598549188478051176229552704761703782718373726179508202909464094178805233293727050394706970387040584041536916179243186529726594291929903993544716387649350235892382128347540065010358129168812188811972263219216961201481833020424864008415070798799074002999045285965780643192469399305408970119083161912880180167535270781380740537646014398206752245510531485032861682978846109748635918083366883694957928794056414381598592503848562618102530748716591930196758955438911766405453100093718348155903025732209247581497383044596507137057270494033305589560059828581949216864457597374888217550953385309542093350145208668805026969184525768989970765819996897327021659111341909189159368255245555586753089392173983096288185673571846076321751623132524509256937515477219729093361959708903014494946417110492858793728730846186833854950418361827539106705135184445213121392678995184024718060611324788469137458559480540257946090813394523207231475862922857006540851438671460430572438639871693022326485873908147179769107386921858450675684335696373308855549132212172422727199409203445214275534908985481002566940158305294507085032911965867466470862837945541238311390723519688234786407864380863863565013417896478415379709636533713765325783227005276954501594361232740188704807919731641472267076006541199083350270737579907254611618512314500814925600639776868180762065877718762933031947767329362075591957823383262922105810724187683705569817726385228535746133396870077617031615191765896738760194123551313004333596043390042398929274316264719846857193122296883073897379743413361337019885500690068650178332711235876673654130765552022595717374075605994040469364055110708261425753441212437690170086715938436387719823089370223342492663647699725815585871419714439572883018588090119558215635440079873558588074527100702325607564949725921723967971228053320594175285887068425758940820431560415289613316477957855242730944255229718019094389083121932900778272337307328344926904357606093124896414583542027053001817972065372171897819386771575382060139118648944961396943103028821716726745148475056733303906398555663976329966460993709827838555556220903601896768973188019644153878281054080120594496935839716029447534070153901585932554124995274404863793760938561375234628212601386300926576299531441419789338985027694958184384838904358910781715932943675699813709787315425576086586945159167068412244919393411714720141509235989272200082100703277546986023785217531705413775522561197827226687394644330040361120438415613380788921612876033454675424298549630706211277395180015625089904792143368030453677208235878281271465036246198637313885471180729658122527638854469858127646253824133418083293536424052561731096000957661333891580907745297549414464743741902734544954073810154854213751722540369942117505549920485010360147659885400659642423410217409167310837908090388199376342227941747938035174385460931265506204356187778600970665629729329534029241567748150704488592900288487815469256222341405469672652871663106521599932752751374304879164046495320222479096337308677448231330028484272854574769951532226328826433313254853378132218844134880607326588583476983583883087092376954357310498551478783066485153673358589926415845053723228564156778386381227061126924686248280273893530417457826597579720269090114767466226532743682044360826453887944611201944284982135643323684337333255271851921897394203243312847876989326002770182358114543088635797496645818689095249043330875962284694239769805289999076606882692894298837412822061646444089253686544737338850399435794401383619989976969307269232219823737995195606745424301748598122880556717568130949048729708499872245411778815858997926955786727566442410716437490219615214320262813670735103855659879017489103195642164816373386945413186460640692547820328340970531459660851928473917282890426887541043649017668254008839765502133076751686145020727624384833234126766441841618177612678555591681648321044179010355231737644527595607474925135886401287649151325631755840053419178973634231389325605080369912186214801021973791407928143256845039554978659003068173803862694724570432303744693767105089179491061216265536964145312774511980310177879816451503886384519050658005628877213599566488888598118516489115356488242498015036518865891026829756432525788852071890241706933618791008178507069357266048056276722437745521085971304075385968525968608878670465131506857016186420144821993532492419507135778057200779467392785340342611212386484630697520235943727625341980201708956928155457835408422496665807632968765041492468645995962664109959221245305364514190091579491060771831406466940066964584639472877207660277337181577256715132190676367743779347244393929872116259280554366788733779883340288936731502199071124063268598818253238963933690619622972847965940986400592027830588099182542647785303300698965170430540184912530186977261796183188464760661010765846240328473668721594118705078075901693653848578668933135767889692734787029225603109408307777801846081797641561828143304777566482276925359216138224709671103703729999943501486487074088264367776951118758182700658792085880302598627649370518348720117076789889843352865494230396929972800637045162710789746840818859453673191111743743752666832420592794584575370886351815920645266175659001576171876752583479678241987512428880440467174507415303440681900162426175977980766703726468142181584302060139873732145926632738643946330437812053808877589946361367650570895243838765103242072497506275272765044722104959331618486324559120502646004608975119533816716590298379699271068445631582790280900140831433615773501392403239969749821003062245974140250575029617594527201676368221783040971009568169704076234594255288453723707528776817785254101138543317796157565302671966033297355447123196678045033922864818105084623567127982230356465487920887477246240547224431057140092934172844192718268745122373014471404891184468383986098786869770590667999291403050087292706601139250592590667235957223970262008910950674841339073932270775894805344552266035098836117649998476480934532033926232038912752484484712385717689613624262610386225815867977444136435137269768090362800635140265055122203263148660552710578298493939480211238565860166293080862404657660600642334089723329904998760361113217263809198342824172830571415139444463813381241910643733790994005513102300139861607573556227137510847318108711314713018156292812980489702499123934748130675342086882489426711802718545757836837579214479137413616176623915543434088102966591438786373963591448924152406904579819542527698863868705486633373348749074561443187164174775389005166352922295621619045148659201697144391097827801481344079392926481219534413125635120557391938005369841331593864036713046561022982210984647557698703361471498333340787138295373464854232479396838235507246193823578477698531125291882957388024394401481200877651552729935370987405005755698072534662622396203181333110573286805304316263673153827854576226203583537462779857920575665342667544257077904577921244868344440257729627492709253813313133340222838358757941270821947893727685698393920643504844880356729122734370222085140723523647629442896218484197731269517319500929903109876367165141512593796966985660873808253459590718597868276422243199859161970369630622708570754739759382368757153007533273904674572742011582959016543268739194028672901465052938965940715446877619128777105168122452137460965952148987114608863565192914602153629466620804187128194665065094422311891556502946323358786854185376065924831927685303126040459597711392665312630383054730685130483026527368193664458866272313184675040112338441430025748109220101792810775387627683139547133421874608151647472561639612176190134426771524094325548295011790696311350282082645720195329606680723108113159082928356040096449442728634992887493103814258193950118830508899533961076975724164570335983891397446180007410737512522159866847497112453833675849753759122225131981013292190232470832060870601031486598113425372735505160179788689854829800299030824054866766126379180464393290586186249191015591692438452892779010801069420773430634816617650451306193816763288682393157296986868782665665513698407613030953310429585253893797490655674361786752017952566780218543272677539893760881433128350238936837061991061576164248833057461819983305797323453367043006461415216035423951495498006591280403539911349019590148909568775928892948019926913992164299022709643461412420503337895402777647974357346300040672999814730746018222060442814960652397986314852218842491908584314655747237153719119129059964764189036592608359668833950830985899177517045127305908049054146820213100094095002672986398310106424113661425384406493114519751240678507100035646745782994060653696590955010598124817748650547484749705990512347213271323361762182337072519049147113034279101742819634298941804446449295641079116438653688040398035212822116231162692987494372159153467031275499765714725223267733512072497406348320729785993516821551215973762710089430001976402811361511090454925486573637305000050831453961872489683662756136188949417918299231217339746127518273301468982759277178828954349819127168499318400045430567140575338528882316770957953817595504791925371623631829638448552711510843659712540900718355934333620120880321428358586973516478858075860172121618339215689477625452991854505877739894732560468941185876014573764851017825321803853549174910523189519164307842243712427276689562326182966475299900659503198762555035781082143658174414009434893066574552093718935809432356425081835208846992111044122089108487394638597077298443993287582232238999521386564120006641550081867825893797892844372337818245165546113405864634114670390352200996996841578846398862389203061491795563070170705432759868801425535303430902503070667535516611014298517280119039100299729201350569687391793941537585430408648614684074012448065739954355914209885033389734878220682862755402671046786788261672282531039394124583092249934771302268469071176899614704329063246964318501688452455468929676538045815028487496511472272493525874456135052670056163462609124745560716645917131708992730392917366778789784716779074194806589191889328109596310564060272986049106980050972112672917379986873173736042592316110868086288035106102163072403958544748829626306146880025835274732054289575789611640809685810654916309686014515951017747861832201257310900011393571489108532728993503269901397801340099259608566116594192735013299532345193217776207860406082209828907247351477992463017579917111446449149449154587086455222169066397302509919054419520513405766151088201236495180438299699474370069998939886771892848143186798847952531138235670043320710885572344310475373882993002277321647108742205162650769517249594270881062367450434727317578791507432305516885739002515211559634931992170326855323844050258112038957358576003954555590557076326737562661682797460291348123798449809663860048482432992781214405172671463715298857339691320172273176992503934599065610100918249566282387261321246382771377933651627233556013181562729075188064477352595275737500305911545922344497475376353324174774632248654177769790647697471526088592869355008154744234703327875319507899932870948622984138106948926126285894061497558254457109212649945614896678042359138386109565768821580562239268690677519348524661208005164590276131402604483159334744723855743683396420761432609543189511605924292052302854707811176462503574335433669267196755829097106151846980720673221681316263136313353009025710597519757537874031260856785529668767481411127486271653362166061963784962520313129868568159708050830636976043074338935495229818239419829707129529054039228012565251247188018582978150181490109916416193694607339887308600220623401250021725901629561931753123433279028851519210019171530517995662059561283284852272272353600447046475477187821056316543229335898758077203200235521611475110275440304099782382649203769708121274273238148650929164731624175236443324912713673105354232549362150304417776659929500862068724541748753185472456291377062344932058051343401124630693507886904781973126166467639733025290179946545515407132746519908754664902980913284314407426042287601673973862882038719036896622160030543914667683268513519731284280986513282682719943820991115655430136153512047151485037403819860958430313084572289896373842003769454276485437697690494069720964944368431849157806034790784213102409968317545418287478984849991248580238170838104191003032258371762058551444782712808685143926797520417248879816105824161828577823635205538469214554896186524398693241073548198721675201124997650067786353492013725371644490904688979745042037341997398402584515518918749286605019052513181101363898932159801108422336036420622332465994483677042951701408792561817950750569687014285957170319966745849489997533715784262198705279353247540538964181043153631194444255947055142616351943282036891078759438760791629936550146173220662052205001556931277889084063503307812607681956471216952983004200980205669052070579463252310355464680714413750744230463145517157390734174110377529553989319339564127561316550520063369397682483040279070847164158856437789711868134833375486675121412880201517107664802186177658766687087066498055231904354438357178872123843695681996699248230405645375012647768955950499979853408398787590169622745561712703666541968267431325006124433886278737310463889407099704123847984303954293488715142342652616106470016090141937086949041870205944633681157065020895643275802124880257717578911330164236584793079659695273955521179267648802126183629787099883547365271135710059337960115064779702904910189094455505762620858126464478818708641929889569753642153625078765404994440398107351446464858353482296740683587836565763286559828024546993387605758582989079825080792795997079674968899726653454869132695304172226133622688614028720535956320232469024124527353057931587197784768878431758090185832272956826432235670399970623306209327033074829697803267584241328518132385123348834807218050910214091096349448263484303587794199807485635887336045401431828477708301333866719754451999815793777910729831046619180530564970867908704054896485096546980193221416387127582740461030668456862934480384510137631148124331649616134870115106811174391815774602314789090985155955961977834765705617501481992975927495815439179510888855331257198108958085029540961693514396276176122753950130587714639319130892794685160925536728705571445193027478253187659336508094920718847884808218204570727654688340383427624199619299834324529937595192223882229017383581002540429946970877555365551236444532748687580436787482216642031562270347420631599052357515001351708990211500320595421110378719534571607456594507234725283252693429534652574946978743416391601624955544139325488420375023995139521725920005316284640585465717517925179789132762880012701685339151622803980945180274392519972374937365189147648102323749345145338646576470064457124453032596647061216035018359087302291644578343598405877394965346098305560095294878924918265929095251216952810271125033611285888840294610591286247839822073793130280946043550527186800506096046810900171673665318556775952889249528632895587243918594750377104410467381658439319644565319916386944295783625909618298247877376316644349105093172653866658700042570788653213814567468133542928645653926980567333020494046215127771973383934432650729713139572554666481829994912645631054867113207108980449452281017166850896276725368335472079031733692228219624255311196391191983548711908829479701530126692293039493694430422405669602409901323586142795653951488909672957810652083476633430081093730462757809122566545401406382874062723760232362132505616350252502576593647115487449262513086492605748454987725186185264378821476885094609044527702493100947007416998213888768127366850076518275773578568950411065586456341942953210581073846954964773451132366472598938459594678706346439864724214165013718102140010203938615353773986251714116948407608223853404993679766697415480377885112685040452091384482173720445337932826215800719519442112031072629412743668426227808549292640339807918375743600144096692266517418654392153367884860708692671850563267430318444253387774718717305485255747816930065059525904381490566442211765823843559786122747281668652961913378417147846030806095254790330880922096116466570331372056940775247940192165659763594636677574987811204685809681306064284327076978767806341626412316587268819630046035149419320963263588633394470052154368097101472797442510241633783026482849724933669189171567517402595555821759617553809442062129956972878218242847728270457863290498911981247413018874510420644026946125335872625665246729433635796174603170514679777873693993457640922654723984160688868950064757038682342053415430711943689253781960659386462459017621445037512388574587524357921561221921463249280007878476513135590098585984438400677641134243931114369314319143485580378138900286125804855563747968483027671539853666109062194220610697074999351514323738080389618647725032733855291466568494957624312702140057359901311921904819351878245163174471331250291761084450818877863121347098150472442344020207650915752254884925897343342357523990498482765797602168432776695852422795946908674416960886123753022721867424631813805319672243789781733528838911732243020644169375269314645248184850453401541663633170686447319682685310061410432703180366763954189644615230588470878245190901428230180825918888155270006726765891956642139956279783400972981176734481939320025745665968715534664827334145077891283278022795888588675401491568515761894634889197371383659455572861929088959608091560310691195710874747754025378619916680621226059879794768917737041068300382859772078152239505510336689555132155467782600805845378922065195804799414917637486153915190181075108881288142598951802727427247372647928417929365889475951209449142714304894613522218668106606056642223137954319727843389255432288884155155400458377641229949222161723416122208527487380169855896315732672108648772618971785160165997880451459705201967380065194789262157267421581651058036930513080771841299650706389489676452453502420760704771645327323493448327800468452396782493890919776594977428496339597076754592982742401874886161863550653164689907915377271774920530283648361679181202364148432625201101373014289654133728779817748771208103790890430696989245258597519526246554035506350864380870337145687546588465469532821815431070541756242558121408861804520662658060997599812343637258944050563219749698822479122940128195013171982689296330447536176706932794654744677336055103339740039364102049002749086093730944107104120411911563179882324212964253241562201950748331852542093861615181397843160119520804395503298435405138301946488101442424922601255861182234070698044762957396978927521403807413087219774583792483202117991807588091301625641698774421184497230246559951094057437795711779498866851254232163123658208456679422017954717187690058503034440927403451795055682826968745605462167337294371508570127249724244600216230815626792713363163976487696736964945820865837946036758538134535666716601970878709447366249855660336054669340250876075449196551879252140507728732658595306230073173768907641499837940446634283643417196565690516110898949301287315642935865454401431061651540299098147104661440203207876611361437609694674117212064302463323189890367821030348879617742781514473565377328248620506417896562206718003445804567067689083556922010836341311222250912006163644794764982666656736859678091439322080116926614584841442836814310527838860881210271460684895462165333833243534370720325524765866541196178016351437087063789137636010895953210711824679171715948497698410872086974556794871651121637244424195954885822426497260967564012222254675240510539090893060056622538870649814015275577185519009136052602538466633244156963854119887851378714824998888429333377235803459488740608398980080404332714165716855124970123603087061726965184841061758753669354183242526597008449496613064436858844016437958415883578126288576682533508530454601490868348353008363003761622920305283173052034623054039639834361026034482311768210173597425777187343457550180216523488461852714651127547719697065776863474669427437450129193113593349132114646064650422489335347738890515548837814879379553060862969029801509745485808454655134617159219974334277941410672923151336559709568288524633993075384156446405888760567407588377747418018142459712405758833546937659265669856625671947760612332993382740154229115210062975471513563606966955821175902592410130627736809626780901691719383986568570005177759413874445909458242658419757450225304573449093842326876128162756759968373812517027053303970918192636306353034026522986841275116044674663798271927432526039231793158604179938986154303624370432047042448491109265255917102166305505366884501763761433776666280922168904702734739206929994375518839822078343067454505456694940031514844362389826068840725052167313723543981131198950529074168554714550813397234450864012788310627581291508940237780319767665674610725000374056316316228065653113145527103369122328708445979998253891223967935606680055277810568908438615187977420089417284640872136991939886335621633538532406836104396841307807988095597449306539596692326273924007961171809209663712711934219907794401919363932634552505684964847692697733679705011331809641091145341884761457787595042606640267045626605539910839506732782665229519174254756202040384582527946030651996719377515352634173251031710745176071854183011189018647900398713205974629178537402624051443114561796166432851752274532834924275658091014181921384866646860428524488885213608348856383102400933073786143186053491796209995744623468999780076979943493759689466791167882315688249965586749659657950968676392382171565697502637700370940096188879601319992137125945192798318585945706381011294302922502070384248272714791947493346046068605936064355052722426739481680335696361488871768627240895800650535092038706659357613055309409841008401714510637939057218890983687713929307379376906397082740355697157268819272791379500760849063158399254037125311859642806641345239040929276957658924901366122962115381897843344165921525270670140732497078642294095380293142172612210834313693767060210984556120002448841364875125085785898617986850645934046975366913071792852156461426250817020128627736401456719676678771538160714587671337038904345347960485314379350978309027528164985166555748861586827925339748159707823640127099234676556106375434602724141786115436304491300020190724714837928127066539287083975925548096437961664997809817441146317125334905008954631215782638348852672635417154005983318609834263643215983655919919731043868347709027967153330130119172334793240161967426627415033243474385552252354276049173093518207556822176406286467867603045240349470188267551276273139930364133230252173458349040664556936370766184209719298522633854708496261209883301557841728492322235807886103183627127132096341294114716341102030673229816279040833866134688793792043711201798843378061858888978878896434945821082213949285562867428826639280927327315988140029187813197733791771345667210219814427076153687521051741177660544462086145637851649140908724502784341755307173988866656339853077244831483760974898743750028680089387122751853981522089456725364693150939144502550280710606292796960247711304117222832559855261298996074253522914193585038537258601363046543096167769557564969974997573172548756705721431021625604924818595344460111861829765643590051372637814107368501964547866336207727978521585101046166399768869879664453625412118295788072109068766042709940085471952561316965842758364585952747631326691591924134042017631497314085008533297873581197041968303214169953647145265604337993181164262183650054987768076466411487629534257413883354103400728763388260759802972832661178347934022337934811362943009541832978519988186866013744999814058745680543081293761717081963045114689014941686450483867329044039680101797217880870111342792454870590552743486460447926893362015283406137915630717059809433992476922644007473984546325389179695294396020314417205580524681504670790116117875183209134885428737677998104334777207389355198310737591275233116458329256526676533385622463200951433219241226272861220820343211915857127393071308346437519580041415190388911885971249849068333158008253042712443034596661435358849003523472878110084019391345271984509795220443376082183632206312180758070341291631686548274866489900445462996009048779946480039286662129807038027872979061121229552553365602945492782146582350855732666022585137284806241378552943933324298505265982124848892242176201002739204547768628032565618947297387491236870291518887521489666785495046882560587152735422477378203197037546584467807855915849530535773404389246760807786502338044378156765419035115505361922424578402953768368227894304633143339360947411941513504982372169650578774525047198896567059770593086063233228131329176625002675766092625384998267174707360104771978390900268880896096771277977599948288404656612295895325856120188784770982345620703181931659773699601514045743437112706269853883427632339231732582107073598704964810684011406688365674056710372797475681854808387102344799443083368687823911457964811717770992558774155890882046920181929978377880569282764831983008890215242497480177708769519274502903510675224913994876082121097605379952173871711915660398418692168865861028838852944706366834235255673490584359560851182991483875032774958798077033888595459295503330239372607181684420468948024567835339150627420658738181002435766239036085398165392768382413276778756306230532006298316944603288114364875528114420426531276762738956551844853846521532113467214857101694370157734246450957073548186339700915797009058062054483892453766516498542760899869652502628836101145488905068214005409287287261014053441941613001390084544705829522060252560940559381690965134051935281466785323761179296344558111022813563079561792828875935525830116212642611820632241685491113224573699654857592324663345174805349086767074697419813542346025931642974411204172081696432732186239107812493044025635785867087087947047897558741370236713949881589788166167993681933741041708513289849644366394405666349177694270341516202272676876730903464150909747581836896638375383148175126228019165522674820870257642817963507459641444856085723902811699516648306231146075579015974119405404018987794226997398042716307643442074712491248143547155591644820832732985162501662059196870482344001419924825252882830076762927668047908092420113837325301136727386963612100519822487584320736909173260408345525013460925224016684078719606823396568861599045467965065544272218867208982406787644884047192139488402997395525733430904412407083264048491924315981185233691974766524725437086107133031017421864484655090144447901845521766046421509346478101338163870166589780480011379969900654014145913550589159422796926639015334895749638937551600373739559844387801333398000085352124513394624332081994888562508464016309845829624031283023702719330703867459017397271780641096986036626059070166791914879795731659013826701767380149800287290685154597234929806486982908179763608881645343603638831376142852150726622997159039085142584940620831327518411758912638595973506929062184384973115320753876495975563793486658275682185950083401405603726942708640246533596422360466942151590862052325665644333446231197580157864507486129745516294752618893996735626292753941006015054704273685740768535127608090901403588063060485893322351481358507117576378431751947376736547021473044179344696976759660500111089417193921257973673597390692034829036144557562210343265432636878256217346359740925417481824768685998549488118634319968265529302139081119976872761492312013063807440696253604930074409996328397471354940871227282551639817043865205113571333420753590509481969887513903365847466161302325257119157430421391134611534477294051325532854600255736094982985859966740975074084529895280512287165860615856655165662863960028995888358060648268139877052236090225674750772630579951350628212043040970007667623805470064939442313982232647958031868226054277634180586529714695211181832414835600959167636470580951471798811798918967446397376047751441483446384593121770920441279996377265493570160274254294499687020771371402880688332528843579429619003384759120895728286112533839046138923876691280512359510738253961778432505888300908040349331248777739046501889369054921080274689545150774117987240505484926895720949929327651754154140719390114441527261405154101425915664478282281309013833075637598146324402716347086337780001048084015992289196332918469554912095714336303486238036678670721539290530482902842095406740712077983106185413391678971636691862099992731860449222322533252898338757008783107144042080320538224005261845531394928469231907910448222747824776576410057196811413560085855262967044155683084470699832511419250188357793595227513486505720653310452823840610381574301384061067704913790451389563283354589440341733207235118257919550672442904702183113963833013801252238517104604382377570789308758404549734127333857975669602742731530239878983988847091255128922141302132480791499632845267424885365079274372818524467161016143522448256928197278649027250429027796435950127798568967726606196818134826595261084756654924121023620164837903204318833456096765902748741926414760999320606316708259817070713054102724024481800704225982799467496259994264503446420265103863407500636942076812528163024424828566893694657195278521860201950840234757990101113702446950037898747965008351947130695133151966016715639609832499708162502130709394013722036695362735877934788725411702925645424962768151791017646370451144466952001031672306921096702821583542113033460085513061162719402417094438994656159928286177712965607539361824199446781370715749236653968753023222868755702103900960526052711304018788691461480600161971504960792995666580275490717861734198559166923754320470154084153826318607621079130841661661237770849464557479191458941070482326868374849672713768520060204229029915342174769392443439563684790509425256413586586628658894463211123555328999611231683565225593542879137875974094641904925151177941546478086164826765593572256832825517963224859487442937983019736536877585196094755745344105170544408283129010258611010371569179497498407435625293891201639903471017089280191311640316856524427951095857892868594288597100329297987993152437290539213171247591564202306099708249741650109837609962197549236033094609820161390992449462368328929669302595737166817700202730559272771030846168817622254185064150301231730371604796246779131504888531606629202797569753046531200759494248288721590447711126910630586774031180513805990459086714045951095267810642608505640457122975020942263611790412833033306303366662128135601789279451349089984447347661842374420365989543822504380210578247893412597544846963101590829558388493597580782144216049216462010458315333562091371513087067207977803263564398635759075583679826047805957119536983890158702818690919896272080200788921773051388342696182217820435598039467298627375996661669161521905661950003518493436545096083600160601286727439249162978823622921090403168168511785057962591729605372589345286993007747508297835799033187984805552026130351817023695876470923388775136776059325393614709213270771272210539875517748440835987004819422993782220041106914191303241280365382711400364661182670309032306816541652888371820188133228610958101281254852817487035415814817066513899831937561115393367142138057968588801563013503594309149985231164374560571583053855664303422837627736901910007299989301840062824840886813051113909509252712843545615390354855704520006653011719603050283440031173718366584113601160860603085668724228936312701450973381385177693179361035704308405028074461274475986127580273045514487677270049479690864863717709339560139594628729635925468859306306333852118369306786164218564703521672275687165366494597542672835155740007738414601254565305958811194730934317799547388057355175366717396073390968282485839090402680501998504175505791684197087644867229209219504650792953233950980918985353475933980697149647437826279195859173941948350326980736964299980088162954500642156537105978629920503955625455992292984097199695010101033472015723754533921074093836591546854594401504326816569015281779040395010153028958515478130967785215077036851367075897891976983352388346663096617997064242409128653437176442987903306472513015820377517384629750144630774450460639806170779052432193939563896343454483755953714398040386104757173075927381585407722755100040214933146522813412319228874350789606661245770458606458123250229525048155954638439299697387971556119745413529380730935718146477680444300659749007369255653946607942810649341613395753812452892412951339426857601162055086329771034523288187735793469478916621722240304672401490391387014426730827923313243047408179720282964572033347376149255012929065807892032421739104632762790393081853010924972928290257365163638211799465556066509841484868887562164716057534131176304792019379551890050902248121218667476344315914388352948953456580230249747794750047483195184869778385272485385036241106376100519142316151868315557154838449450296197077167607955967357340474029710124499692819572892313063760903048206645199978648571771102919149787615988414596795329587301815950947844131200493299875206775997565521683983784431882001798168588575919104892112867481984842741884452489797542195447864572672575973956512991354328319302855643175080318996738093590010714030648046828405916483858813168673695910027644837236675315087514469023334248976340119150813438736953031013147943015562006397643217661228706016133281529927343265349091428113695329686223007396304174101074786839263357693732994378208045771424184200778514192679511737753540297189155386750691621090545939791520520763959568246398483715600054362332850941863186189316243808664553492144074117561503322240723759846075849067333743731831593265180235652781789269894108404753291795833410230529798599064205877988680388346345611081798284342839246913486695332750587517959891168388959891458440207808470252533201742031039799559202176707901827193183323038235060442018969779756418095428145560336308564914435287546851532021965257263536468967594143315726726590241640816863130252665630989516655334220549311733129355627727147507781534382745604447592598529424157586523483158358794582319616651405554422799165410938814881180963033371949889095939242477205124244747757357355393338621503436478529208891957099332314280106517412659320764674002645310168336952981130659975961737677637051651236576822722772172907030254573114112344053367911837167670098047083898290690306108758689878080501178882437916324954381067730992835217204331733386863776581116730846607420304045928728067458896088043285654734160580920416761318589773682123978765894456300908289618796711446573070945658647407548103299118867672476677805015260132005217852797413786530564038824899505112317964567326894410698786513045525863368631869658585888076427708522582459787051447505473824027627580400373505625948501068270786628386001504431808299635798262563701547926716122135456041765722238698270572596011078867768858042190279246143503461874975441146178213010421603113148629331670994198251493314759338664993237901421898733747185651593070189514105394028963105124364268815755948795802800603528815348832364073274148489087069397956653095879607345830416804716456071591580432991611655734224503524024506175565073614459188481879120479574775503220026419509466498016844016585337496159283662632531243122359221577386929672311876352564488828831097567676258037903289236781869158753731891886382104216841966151632960511806104608784847439279056349574725619793952814190206647251997437188330147472090270896019542962728301801131070627222645872080564067533651884917410732941498871811616851568329851646708265138649133704578190444788956515793600670864543406064288712340811852341622262512559936318454097365803312697825988939507642235058363336215481038958041940872334842324036174661473728481208547817183829403430468595961825214715160764417177737609858009486024564989324818839217146928499814584646483562454560435669296374130699562122521707382489753985786769456590393002912767590832113226340158432574329261379891472246298871586955883780049311220312492985200022280423629551737767419390120531259829031812937752476591117908569291548665352891334750197722652502837077316316807514616491148665327107551782467753228421859669835201097619704334882987908952985908023935388287027384270856644408867030731637518978384143951660834248794202627809021984598720974093685707009646238178112208610913256000734642435036722022664569568158457280700120474323625527364308714289668704851450599343976196803252383283855753664151212507428492370803755691302248228085230179103791189280994846367713545294390151650374682738359501699407626727061187776026669522149675614462079347463595774863654621176050644306965721094134571555652471749072488814908265084855817860137216057328574622986852974288404731830978225836733793153944030212917240489713886227565507890282204740050216505827224563648569165881734632693755679461514767303428706930843658308139141588797066508568103409211196990739841083369780799448122570353239153438537538929279218570456776554576448008314677117089867582883253201396214867283313609979862785511914355328441499757443974898650966047989206467037135860334213696306355752077100116520221517197690135807580383993351747459107684910802666120634526719789616868780044950832796505234227927810438695088638629011978032504056586551598537480840807759893473607170827394817872457857901933638767215165905073164436776635079088279461348619634441914689371541329029353444481701817157618292399911903295336090120837585752981722719313273643080198333158969685603434608064696333224760011591432475884484607364825326606949029623995986176255322259561513980009145683518945588240746771322990089010000965604759984666823764437564851730205134464793097716481236219839838540810349863164661269373354906629030821917438277939084334174360591527082655669355058011191541075711470053770375223124377015175124342331760180212594106915415849258540156827062126755139717058853422657025854816899531855369156042120466225727571040823521163312039519054862753993258069558075904180181078848315646088639781923135811082233032846693467985800496096519385287036098144517838407438411199021783100157883696103732390426951885102625009330117699391917482797475519453513642301956108488503258288991547520078271260981315862721996688990840409124066098280009290433345581360760428458868124277248340615331435114377584428211234536976870671913204916644083077564678246743116410533027371235427570412108700279030890837387043451761055812679069382762351882608641107788052269705898931324853031214031703234502455954742209625597555677680826532002638504903136437486768934829722798466011622143538436335159500229168890694480492780572412984881817413250477536608420676286885041406844069621081211595680194181384173207916084252057208157990760179884882265890619583914115484619736069557291102493600891452924682709223227083077007810564122468008027697076381795469053025117342757067457974477989788501584267168710879928195193098220675176717778151789288301682899829486778380964476393304392960587106469516215753285797874354118813783785043645385777874061478520382046131071641486557984282566082459803910437847144536389289190074392407588929711573662625890475566901979520484119262258169718028554672024934733600892409649036650989440582998694783021900635695823861193964546080089282017528255076281827861051546836829459539584798190418882164061742917120963929616403859202309563002921757074919947542904636395367248807288383509174316556936670042099766635451207582917250935399971013585000318449086768710629166868198964233988431234527136070767525854897015157211504219591048523878077688906075980869719553649748011104687057182752090399973272225934952195204389014194131667694065990874076811548451871475182897161056117413777963082689901862121665239443866929449999679404758370716751682675785949692172648604930647215293637755945218891406023980431966046264558951425344523367664501730620625819297602890718466332198683184498850690419297406606009163166402516346869537691945848697881383220119680573627514937057104106266191530698177912778375310361444676250279972214763901119117761200291476001671606707378178491218707518096780092059515111865736369228579575043304887556433884984622503666343853563639897855337340284325200534166239912455806075459643022577416391010110654591803540453721611706400740896878174690832357325125276869731286291378454342226498358484601299828507362149517790451717626876556216578887498101830626220978628136519198226381768711459295578620351685061005629578186200848317931356174402191040690390073210050815557121714659263534015788911363843729327162626904874034164675784677626015816899329286496082305021975895866407638583849287784291869512384749954452099868102821050236770290996392256650196162821811909673867969668902774122881557376348220050193142525018332424781904921199433241611555586546287842085042289704073027029586637353068738344773930943795150751849590426404018195311252526287825491147114558380416028446799192464305209576702130285730830503378135561958982521619216875342122338908780761772725816394081807193819012008027365649027640029279062891002585290789048783370081537019709731802159885119598860348899926252483263993737771897718205128209809009268822426849793070756409795984473217923215943598729427618983071128660395689121125547997539866459929817710023392341085329580347393328199930383047893736079297420861187962191639865757781040711172925506229880173364072297326372195455785451210078812075112043782869057188687287628055306954255835005759767894469679289974466376585340921247766581402220246509605144187265446360914694972463190772919535093608761791249790818572346802689767657577649079677128678953459916991987368467328679745974658056178089770620720522310098535406028794657992077443885536968678583058632498920920506524376780503968082499386284571940203809874606843900616815212343954772077684130394465380202630561215923063460161319910301607920686215067462636966946585820270063453658236412058475351073803905942591455155157045146875758044377416340343489318603053297503562614459401569682416510354569521473928640831608182807052992839685103625095839965156220836811239987563042568766573806779039780118463230998176340712363917357810301313668407302397098127405054596991557770469203864915308644638358858994762683481140195279898204850863681732267143494341309172060648784914828727102202293842699133557326820679640484521156586428344264453923140165716206739154613172661652071178762362220491159956856659211721292842290006181204676729685156860277149867147125883960537363051939152206800339381839938074245640441249824155792446459396141257920175372038545255108566867305841336786496816965711073767960150667508405177679877449337808558695060533382922989447767048154182153883041448965966678804446993749242129133859895469991660997017187457747964546351408209800306920001060663272368761698644754236163414976010760752141690208375302362151818591665707887585919983883840335956460005838094596698205656898244474984350371834738997306864405882364692949957040181454967789530701736693506034294003607967485184659348933780592268340142665292022890835505371624668861675928536024779044834823576623594329297179781468280245604406095159613115187096959206679119046525133679223853041184714276558607377329432852899913128976826123143873122402130804098538175390489414672499133548267330052386178453782934677326938247465492510141502538663071960621720026860419994662094585765892993947859456805455510018396173579491525667111560826195798920806380515658310933026855978745525764742315041968809795880313328434468406503265763682197025140024657278151174652794555745167417911544344517274729628469707175777858926615937126982892964062387573166113977695334401583717824435932814445143475738921590852458548811374877695887840707499122257053054790500388843278390824357262072927267346313134376073316510843152449436513006993594803381372724726312597370811194728188980051665996329121550692336393861441245941164336127897751316830841210920089384647629097544683607150116794949961942279663849110446916975646715378268132015899662366841757228244038608423612655257353435890236097019036222494717338541124271857232558765605143277045252011417612787942885664822800428204761525574053350468558665498239308528282497396924456177110230863231874870223121381669061543360862736813080055400035063677048607877104555627477590568517804023040246684089532423614739433942677156610554511138722172917630198959807784032291351285794077807024346082291804940836524147188777650609383555283946273702096763500560407658662791301640976346975506043809186254874912561849411592359176531607743510481394841190595230506051095416880136964994482622750376569291198141417810182902926526796528164081882775109050443953980805558360262407075454870100132590941868713313747148260422279132181217001561469916506072520957089690892123875001348885234016519061543682112035847806351242425054695823783408946304836538520611121864089923458790657860406162175231919740886436477477795035977622568233388016896895890515314525226704752423658346521287110477543371535294371886415801150877093415522130846104133553310160989580457188681132155604249479416609915110263141915599714847495700469023035732652586828681375739380144278086355108924643134840231045337179068691379088006599532302757696274806943070751059270274266848708624483286494743055869715055339061603765695264640496811972948173461183779032498743790992920535623643831866474958771160733743395605458866510700423001528888746228535195022598449226522883820550713690643707561530291051104694603925683808999233193787304869373498968358815577812813265231039632760847707377451872339241077905674140948883020902228906508066468276949666089028074801469256221864872884155806302297458646311886916207873400227903772525275976217912520231825776831470374668193326065978120981977584104460987033908362580807474434972835380448381917381327916310149287151140453270891087403539960106636866240720085534080820901243883230209229902549911269803807814277081895066456814827984531238408277744506505068780873619044404377898163685383003491415386460594606054323028169919874468589145312889014205026729928150123692338038472926855644106585162828854967347198240579443606951527744976410032498782398573286822723041538257625118411489396673267706153479095023608562476198537684499107561909121641554965701439490308656316347894524812495585355117621677008072572027933735351874708051307415350974624964520903849780856161253949593800808204830399555244998457243049823977633863852270541113704963790436893374400612738052378716994309680336706233453136927070895447217586342360529942640349968242007501432691464960598608589874673501744640622248311163052700065085332708603007395302671626884828409933009154515643080102201181335531566944737927161693127545465408698037506153821291127299548499869426326897279045337735820661675705857405778404717621408192267129000622999725455578770210939741509098287272139910189227724074218656516057844031202900053711331100940977308954573142374691764940714431809500497606897486191641676742694456331009740754329361030648517966175025529973013694392962902460744964782560528809629780954053631506556174779492948950715283983182817690591205357311674780636705682634566794785803087261022962071491038919345988769700975537980496683641385755295741870488760337448513862970963946050041985052691127760662599393710097366311211818785130950836649484833131246066482301769763776819164604251066798956194645519209067777198465589207465016760199850470917172923496914280803195389008714201462753790338368431325557945053867602464352128754316711835004449446905832317513028824411035808719789094443512452717085483387225661463111745377364607514668353207511437440634181338339980630534628437904606172913906098726618232250355397313030258688301243892253673607201263198629737317169966597672884755682327170936864673306736645890512043338923539895115661466647324906729638060954855322869953006743788545594581934719868033347229766894282074878092965438158596655562443775023972092154432289374679229066442065533625256103942448819177099587503037318773832840784422787918845671236171961453188581779140965413820385323466844364357311373143166058108019409752345703268812136249604784413693339779859893744257698929373066364242875062325034478834039461327404757803170672633669079955008769375961239448272841647214847347437354163737273207050431458942674036155367093936671399599874444429306025297623584608106740572027178313839409218540692262938211084398679457993027542881196065114864933647330519680915097415109919239140195936827277219656492835785904547621052901875877737722842951217338156695116330707443614486412878486685841495710174298853273706810661288187780987212103832063468103181621024616036238096411589283646164086776592933633660546579633729553250889986933273732104588176307896356809426686952011365390709891823868257675003524848065531822700305296198312069977624063021470127357566794583577628533343107140808227644351403348917940841223988205101237864356710174257259057099599899057747710567593839048719143008034645549578902778615084873858146166576886533239355242919301598309911293689367959452771768428099673798025553204887169796509227463927637846031597249707614110160820545752663816036597004422863404735268046459377203404233612423247118944540327648648851693521708257696679643139548249827946001336396670139854775394896234845097889872535549460578341348815006978397428710648321977672359727582892730081262543947377961804898491198005431703515507427740760145161720290384462191397093511740067016699453689352376440385120709628483671473139433987332639096861182261745364169942821540183973545549268178895422450898146868829605632280657961045626527837049589792717848255461889850977332597375875690343641855774677603108594655000878413391084905820368656494080626516059172640207905237384124596562541326854001304534805310383645112078520753302308970565610583619434996431077873500337668612247732253439112007899701120393803949710049084714072108225416748316584180431113227770761825784441602051545912277659067421134556915143141804761239536441142356597280525370712910033882066918771914743602048827235874422191540874345627439757715079871868684498404907408510650261926318039796216417610094034981400459192296697080656112038661209827828114215376244871238677750096690813666176243123376224768647248045183690966685088644260620515940119796122409844202623293212402455826006851360200015340038077130001917811973868552678721769359734543912219428348679452087132142435880731990771943601935463139064721120392394350684630760881509653201179297081760001711782073849031558907776600736694794357061556081433786586245404836873617511513049067940104364531986238343448505983828324703481535709720575425073881088078674388388879999863102204518617292119257395829942678997912233300644883119597284226744555150472744190156751419608854883992358695800324335093722803835893797276621077835174090698299842135236533311184061197403011401524093039028978209273300872235484849412816420189157952406883117831080366658535058604954870023668488959592396763325044467943682597872357337628246761625366134132718329648418450831057403695527411295883025749142134993072121660383352754337232755430934715281465171761671081540825826250342637102723100172748330075612075390833810322237750332935105240346416244784879495959895819803521183765411484481326307689225811565970887401319597175797052965937232778075383177808786580035674085945928610453492484186388568787478551538758173462835270392787520607020658123945497421800181010845120085672021926410802917111832903047179234735197670016386936777149650193546297941144622570436652652507944668649586218219163698046988849066967717311958528540297745045123775870041360084305437525774157928062461805301161502897280092866896997344096612476267579516259711186465304914481636791351039788697190856031657945199595243706823009131631222137115435839022959272992377799943679972475109951165489937280313703002278387997198607667676555881577843360475939212129943280094896631917402857088416262297864820157298238596481163862879855977764984407997202793653496035236709127392278806670707066461714398209229298721543489241691067439606836253916078063337928726509739763682561300504867469075530061743854449088200440639739267600889606199611754693135917600801595805071328244117353649088995948992748869452287776096411181717841375144859188390245949859131688129229195048724049573707550521323199568847853172457691861185177189421266077877771407902257189703014568797015198257428997748968666507308420412750031048557262211583760348509163788930070996951040262571231945012133527353389479772806786991621145128700208559643532488939181428519925383487083205786365926706665782359562657790473693174041381548975403158270700334973305531226529410540979886439568305010900939908257449863161159476565885765509747768874956873447089704223883260236687763034062130622924403904678674516734151664477931960014567318656115324150971478600989212931398819998982701664300316131609252490147740629252063696033643169036057765992666651366637408217163858015313393061882840984676176085234668583650205132855982554861814656152456517136399711204181283970808615001696150232462505267809104062505088965012421984086225168671033815614340502260750306940064319136450714457559938210137560222332217611877346276271814519542142667104585033848490895654182065719769634425906280610948447972457230247597861533551053466707103036372266839465250004958232791693427596837291543011634591088129482698826663329085693568036883583640093589482686884163949248494707194944132958489459391439205183427025927541518177851913754942630199360473434874588951504972460110812692877193900862859073626176151930941428036941218705463593686925814756019792823408643397323531408464248416998208132986444220969844616989702886827931674448007255801383300824229585839435429773436985520176719988431777986592486501746458132876439422962760999055796526284937082426069735020790374317024121785350024915033173136952488245107491712771510887492063276062616721018029238427842884335747691515172040279399719288135421001204109120416718595519814636569177006586968482246521513176827485578467891475316274179681118897463887693051839525895055526762224026471387652471151282865876058647195084856875128571273665182483240359052946177652135318409143908963007468253959615183810928282871940061908372998351877025339315527985709353941524025512704248272733012394040996246867421692107727859529357699789959969001917160915358233539306765590025914428104704655318297652351339427857653726667641502040795399777647856862264849716675598545162587107242350038331102826478828484383302203830812257748786224498774113559785567086169771305432224599964732932145426693463920976493961929080267504838562423805600123660190845392938898256885561028839941573114616137734157474764346764818213089618617318351615984879863449829746383956040898650122629033671026220923603917630454819179525163045537596084167282356799445806508195059694489700229236485446752523895256926934059816862091145902269926180006287520911737592991925821748976788485569145241453483625448911311968654183873295802767585883083566016463397479331988771698099398009316422378572657772410453416186019357002634879889768452972307430141447651286327112681925195229652925479191743385162021516377590521567171673475647080619934653802279138094416126483654420887691883100015748318482939755101657481312412526300046373590778252873673307952549435481279944961204246992902803767078461065108699867795613493918663163574426477762129277417543593962103450157218361225411386099265344508500003106389810861925843722536972316046251223207455839769023444004383260775940115537844641571612513320629051915591523229751737817077177097429840544389636776428280692993748196898138448194006068599240601301221063099278770664126998581043405384409229321020962319805509084604249950315200204104016384490717060938170886564171655523051758031119841768780155009064687490829546018156960278909313977977542342546110383179114427677235302291142461282524679419592033547312823943569456178188939781926267181444057617248955342846853859164727450855851615110005609792957062655759909124303022145146016698723833858112056899473537074071796450545288704288131786075065428662002027779966815858310225254597962743355278647515041738916288626787615224645491855520846059613901848570460912516523059049121812532518635427100787051794188077841831212190495047093170395182103904220308051404634199244010915925514070116687431851200793061151780440577542968469562974476726841022921668081737854623877478248154143669810030996220292143575817175659521878545440478760186065963463987926175646018464216119938105788986073705301457555640300498272530618685618766215396227411033847893675590855056870412049362261446002374053164068456947537037498493590998849236700982704001836777606701279899548549676969148937043086338824438709169364359133491635138242165909647123552851217291399265746950435736983936772483507980714746541088886640999096911961414020258852721445858399108217108450002994331324346314418685164985535571404252323846888220941450625362128224547359515880570043772834582034131477650698324686172856559973422083046150136466705860027244667132412535683224105827838923311154648392471539693932790236431625190270243528423978935984036336241715212503297286361815707879174799322283265661758306744540798470996359703561129543463504118450184656767247482179526757172180081763951785924929480890020301398316851654465698180863236079996620334256680920007683360147575936076752106483257110381236218203025531297234734074160044984510451888947072996791657944394279756610728515289308548556299559632274251542984054595817579871994328093754370553153807826814866192281351531711311759059602686722666025750856780156186541535361869368992414292015730992862709058216790179536875218475865982791500126310601844264022668662772337985053097982326706729527947332778254601977590408604498287351920626577629833195779348262479055341947380662536776545691202182166871078095996707827342713739665675613741665749990008761230171598397157493864633281624158609765568097168383546408388585365627449922119014913497496747123921907322032753359657420230618900732413042626594691290148287987447382862735778292583376764563731471102310039167502106457481103749072368678393913397189940361732683257547961488020367543446704094034589585856993832170228718447921505435232892898035206034577610497105629696033582685052626673454193696885882934440493898413930490614162326795542673983014904471038299257298703297777640614183363257524382249391746933075708878115954553992436711256080330457459701994038030831975662757095344987283224525348664557258264691792494199637932241492908110386734752395494318631099086347193647151805863214777263882060722765634344059883329662139595347074784570652158883846756111182011247105380114915890712987506283809126779854889536928096709585477494126174113498709953204928033325670138603861512400061057655619722070212836199021352294767614409736164104170760977952934790523975740327135079946704687405978025322592853611435228156330612261273165924935881380918967771865769839608060916885747037879087010412005391624846509165772823679261410108027255980768567870006708651813151916314166718856747633990325085989577045463436986532569472757605434260174053282864378259121678682780301354506406422354755071594194554104750830835329135967240956619383140346136025363142679190420351045532321737343445612154654598366331951757020188979123225540409496535458746646720114769870064340047271309338184011841237430145634595021780469939532662689964986806901708178008951060695011115449873772023524550832122920355330945514364582480223116673892424432408640586010127113912263945127704528922699367942615084775405293461439103889116376423775943936607185801745697656665644030457576058345346806226182543916462595495877587145120089162638079328439155688209574538151100684535709579906227516939290576863075327461888077249248801219519697615620469167438340524066724874134419293961038396036883813990511426297842972576659209067450292240628930162213438733725593658762988540651626288517108470918129900785952283898541012013959052982898414202943806055145302116904609509729696425621997376038930266994690710368208407910978662313310900716870047071187360054347264661022403641019517379849548836425283604366328920058841828059605790422878244280615635598893521729279391185812720774490326143478398942211102652346755559552123038436690330041884810944540322995144377485710356945814276968699317650611892115975695023113112320964976283702082871753881301100444814416358783497815203892935806162109857096578252932187357927746520779211026110187979474920178828558019702698664881421159298199682613870889702199252648390351658666832253236004435874352430879887991100541155726960587418945164412871159328365082830275968133527213045835182067429853239385357071183323129016070867791751914188899339404788360079655698300488668314792125582228493286575092674067625486677061610573323091221491717718364859784323322970140584589986682855297201228883743166131454625132221707403386923437598980814487809741992641191179147393288259602263519300911515613660796756399478198307698059088620760847196797996071979853617041513326974499572598355922883822376502270333830677269089033963780479822093131895859402631071724451562876356728820508013741570116011262957417899705249655194907418900401877080452878160357371208005328313204812291889121678758916015544736591288007721456442756028972453694417343555233858018316802191914738413730961011268080932344469067090634131336792788741039079941005495640651980342025213130772757770493910492066318056147672434973630421149086448677352541699672710071811989765874778799576947000305269008928204932457619291040081690706655290579708722179471048700603748239652783760800399564441510225814458133428127616739044865263527901652555128609503702482526751249771526325482961986142652757453703970148257133776214234913420933632680341665700057405965611004779661091699573146088568989420256249984567834814996968302134552605843602948601666635980661124273596035257823952834926123866913172819989758150377946068650783992878815079488794302133178836259656123643825639693407709784669624900466944110994755042534989485299445759706004965538103981862083131585896713534298506139400312484356334311954910298954972781576552196287813402493420456382935046858706854293754279878566886721612886934096934620688770484552580260058331502796910623828106926858367339032177470711967387654533114663345722724216988356164154644549804912104966746670638491164285843451113494633082750179453401215280843196097392353679518024590975737440423715061020521435136288438135942716781011633618573635605336423321159120564745455394236377725014597003023960915045497661599702687842149546815732503897343075532298763888832090611870226974514934520054623631385973063082123650410910743079433684587717413901696941045891424914576243931885405242027731988125149968920757891769652784087389324570873607489548845040902837854396069108300835767935023817672487783580026580902065682908404116876782488048470198849615666456903113370739785864003550182662709043429234237549546925287802356896081954956932538340177932308791466738267639495637650175531797965264915882198643650865800177258381597843543825114730079895140063092413207797354607074454937419954352546401369472460368617549993110111204718361756454435310711015138956547700312078834282026283831161011249894250981011943726682679224946827184731047739111693847117542099092770752821701915654768501731361565493730297175681862491898539521835473764787336792414696271776123610992001451004280450016901033662763238036728560257170149379306629655735394558529454171368689371833587067515643386279398395535145353550380190110623289779543527642992378136829177284905790170018049023675825182948698528029030179135428704658680614220144671517661843125094486470674720404936208272593347529800206543383299576679976101368352210048377006879793378822707692947213476668840049672229934383160553043818886668760220717633135860019492047723534251914949757056360843205706361123050222659547849792357401757027333693654514889941531921660732936732831376721498017663728898120846044163635831820346585994515762851944634870347692758620649001833411393934102370883282138186799679415797686574256758072185097743991033149637785587519724128461396598535796656542199762349862120388605301039510537457758977396376791473509172538100153392671455644264216953469416486506352711241043767014104370260374885453660338517061568052157231863361130754541638365921638416541877757814460033631098037051260205025661677369683278092814754224364317563315374465711745414984814427328554894163802841329719881494828484095906386183049320249012651676898236808089083271020934615960229813033394552409454631553366899245118984384789540363179843881205131960730764578937829628466184888650767122263875297130194458099951633118582767222742337248439243350885569015372524256594119542008517181061505311605896046358472266873019618112453494462451173627203038552637232898587299233913124507320349158834812369168491042233889083516890281473468894087295071719961508680577720531607738538115341772684965077934441730817865996118890174986386932588764566222101532984279351832020788540946602861985934440967977463836414021928021828182414017993474884446016693971979729637794490598204720074459829480476915623778009479785767443695299202913681088220144350919225463261816033486858473004832604228522313980618396434044232462224328142230219151191386944698351427370963856334818943781670607768441657681144348667672423618978033995836670369474676592198427807082388912631833609508586211845292435781540118410046057854749564157937087094390114802313989885190180674791351870624829951985140978372335769753475728023532057705008422464188095106818264003931134424898829626873638573774216923859477035145288847589289596393883189508423944197716250758902981278790221819519540531057190167800174849579979689502439569185364536472624612815482567362748460855381586424592842580231974919497516428060706921846311169957398502022224584957246225916869922939954993131429438805179642246066919405787534192551913792548598122328359209268347180350281775563220123893879426980713476493100535950961088741432680543146635386265505917386359667446375835027842957576772322219674503305170450505585352065708519366301237673361435479657001111484606458431519501851772165632138957563045701606354694466407316718688745905310603541793046717139299795861525194271573252785441401945931032233084326307408460563201360300289836147288533221618654402047553322793423935525850659804069115553690230887497450841866664193444553347763961678189969257623462857447929315220634010177225360558299440961366594015401523261146112064351706539845301019133373428165091370808340359364628514807954276783610934032787955537561660552109622140879357693304154910335787694880885127952152843782041578824043412944527202963395352859145749223512852639385488698525783635899339269306284196010940945447820689827650567488303863674634379986896167054463102566883177260802076382834184139267420565252493343834497145055736118864455207628168072509307082684618108167539354744077592597868941676847409996737022839931000571373345722136543735171832944350573624628416334134180824772178208412912190960129445513272875481492559451434860835374440270489116335353624469037752967763154129393489878844478983708113595957284396732302175805875260017260709544839442241313567830984924762392690836001772872239282396362607111740311785216549841969664944914262404158533438669907474015434853758430286134056080599864154498576855600695857713818274062108799065723161353636469908593906967580917310709810226795523664683258981550326514868294029902587418213724304612288775417052922430182585292115567450344891538424937315775540108051648894664790256266028819158916798231348798003381890119112327149603150904877911271728865271724511807408302044074957059572087325009361392105636681570134354821713908032379980307450332915308775566502161653729003833615424910850337112406444043788299479060016290164675252087704232001908881969197779425855433940377687404321526067024393005521945853568471099222529499333572714955452320538355844693616373848275632126777707542776616308913742493755485448321086339778765615782812086627234562457685494148680509406313846850070326993476645756499755782187004570947540013715161823340555153856102838927162058345478714106559017634075855227284501929887912417345402463239337510189437158035295884304286403632959068494149747850980686725897779115446535469253512493384788284309310002551344438691361924578567534387085214740547812788605119964985422088106366224103228734354819980990839389019030584156879553851531995698537666028195216952356382646131276079327430054366613321951723521634364358707721142546540755868552555951051039716596651903483725715995637274403969772941480603996461697878776971720109167928461742417473541250027046872584058894987716956734064962424762418313510275447798853624555635922663815008074042050390853871214927075918238597912416530512181126550299237567856580028633022502824587829185009210429313044896606778414226623919110473467759417338475756487926206044165369788898893211425350922039081821986020025197021261878433194603520639903397643059775519637887177833421404595237750924790517573876369195824278564691477048302566738985760386131673840954181482021732898156229240452075109551053435626075311876424001889944297125358386916922493604125768328493806641443875387157012824123091980150697468669042725754526019211934146741145034848982029896740493543814265027638992900860745936187146274049229833065227680833626076014960293288226014804564910378554432063984042603155106667900503739348762353078551631892527252280429220462654814175646823730008116677168627171519477688940053804059172851838137429511507661892741210672090695626469051605275171670399900371763357425630819490055685549146915601312071262671883886794278334833431287861038767820501085552218935593727123145948100380844682629779802928709334573813048937298942270450793564548216253915513294904825134730349951819822637505199661781048253697869280605567781833697305470621827995063830977444765324101598635957595075613133556206203448728174568615324266780466473459563938966613246829045854486828197403002492323132851841232316625671729447997441220628245473809495376195984133741512704778139682995819680693146160715366717966548480490483539308752503169285320479041695362292666679537550461112127504583575707945951463484966603109537347113545815819390265996643347293916055833396444728722456048818648808424404872438533517893129511571651546726032007295724908621074027292591055650616516641289282237802742960722304384937358239052190032463145556390885305030200525452278036843233984392778119848495701303454018237293724604900073063657539282924081077602475111423762040462266316348318129560187521062404724414051395335339484556565097850972972972390340537055229123537451856635237554200793839867842865575003882745177335950906465847083208499523514147730036935976244914741151304078887929623494523685675417173206875742889320969601468126467170613931975078864463360441984448234956912397580583919971572684010065013360882095772939068020970424893732320063091527853100845249264274974328386924291760855274998080054413409873789448323949503465392230968541368065708654966090387800470654473033178859771589318746930774344607363461135565332489158505551904314376070764757218445184346571259231742007886361689669651644972271311352329965999093739558485218167698309021590455415413706281799883651787509663416871138887452486510989240324175192572369385255470238260920749722440098007316665296342420822913605847437535906586923340162147424722510795903416083950473665533857867590955259110967495858847974467856484267253118373828034787491098434722095190903255099422138957398497468201124523454865088638170340741868910222634810770848500028400691684528148900707833688283634357565524222295468850862194656393853538748009708693118690499042327615959740540693190982920480907990937993245277741733121285342792152189039589340229322628223645833545749727530307687171428883522801475346500661704692571398053757082094457836010409004326136491243158321807015588075573506460693537934762225037615823458993247590621497313322308836454657369941680004964908319964283965495553208123533835946836714287609973394351015007135400646710042018474217739581901195341493284246638819194556217602480175132160748096840755859529931466995494152553522636775598254954678122790935749746628095673000129918027970760723204899135764723598387387793979895432727036351800222101602876388190290106879705617105421994100866031367920925011716009644095305718262507327928185335531595430045816722749559650548567527116880702596281922238108948556121845500523898713234964588643869277529616275310915751164641774156083721449262250851466960886706499003607996442616462822751477008947429043884556071816120516548045709325884579248753563308058843648631654218456443973050517365651705378416596700698261104340990434181965827771019006929462321148806298813937810403546581238709025969360772902707452432209538748580185381962441155631600034108466328542201419273658251551784062720765767535500612361979910583780704041558860921581240463644263064083758487799443358956180139000385445417943032719536180897819898820380710473313677334502513366879428548352500821514466632687205900740449062895135082073346315302022188216030503291591474998921118347788547465585416869803842414845293860626721748598130154767792787660084000941454957367841118342637859669102766851454729451350502580752942114519090391675578538344520903072927850949906983947421141635510102881580588518423291623570148776592590177586062820423051607510732300158445544990211865566746804281873310820319395128918877927444914109246229585543609750129248070325620395844770066477457219330767829645544582808700304387163363244232861494181205799198685506019652366310583222671174761038731756654617457122965997575162693523698969104749100776226013830515626421997880037907614433699158306972112825593929286091621337750054173496374637672157704311509932279186208222210469626436807949820099016923949748443066671383880462486552675091861007163240044774306638078868459419758000658802878669204587200901678961471998071223142926112325762203158540007359554835699812142887120881260058585655059209433695572124639286484024255136695014880090885588047443172404154295139012781289214502178335304163175912579224106345796802398777563644668442668909646827857848473565968593293515226579797549250770955161363157978303093743746370351568410699099470454520128985893081041906424606766385080562330694166288764505923083692795549094138645511211764909896977578326928656617321984184267840881202109279907074830302155746771787066440262249087401229013155916054840025393703946413081615924597693334613896918737370393068210540461199057705946944083048300306716275893203650846635602297172954707969001077094926599996011340899203472415062921636980445508324862960779170734462299731902857584959973456144567707448837549397780645132082855815165043969177032058039840792104855816739732856213063055412035087848623408188705856041075514497894219673303610970813426812618294396483332821467847793201799947897729429545770886724597980881498551421110240611330532810444813480047389067703778915928691538313776534048906664285972663840374250560462228986857231679466982842383012342136622484916517703614783698327532766050961802965837830709642718815950600396673557100100985199529196902236350035487988421385653920735199384124101319407445989710519725811851015626846559424947350056352639300939239028550399194814793929846523496500795776030171249515895452400624503505577254855485994915464770950730236663489157442648803132496647510386925935056350924165538247787336625806764800208396143598199223908439851029013684295253084926417284490409175127891999529159269472364874519632715945471330557393037910826781068460871896384892053216545794967727943467959198534273676937484977538710890295445386436247825998145256880695182578659325914322838779803233293345146218306534583551109649479091581886086260210234359295264370620948001717966555839378204939700648324123814201009576335033208454694900009809975194822057082117531889341609266070841592489640414801827881462240178750000397348379879095829120330191692192464929885300231847472849797683062683481306049225583850207500083928639961835876946500584476298298687843961487572935602479798770222354592732212941231627471413104711512044003199663832053990194178122609555402386070516281260541531048115251639375523807276564414013942882954906565103845317974068022926450957568116330677991619843319153595709885299366136711245437661817640182222657700767013176278593171613556945702737812052408774672867746893329969018467015550534241460123374297892097171827708185644657181307508632750375755179843862541972159639765297382881667382568738030270902163814445871672955183895759945457981302697230109906723493896238210254099613374541662048238419761890301500018583262588409781752477092768251175205367884483035306633414302457074838730999479346620769790320103214803977182240058287502430120587807484641615832369208444113653995888455449501717615684381224922782819559558062476564622980685810445631735978860263831180008754625245575632717049652422136682482548708475934953318562665629380831221094964398082229336060386682114731010606480660004310675505477879814098123838582270752054753516942298010802683561519088866341152548475153325024478011495155721908329332310643889895543785584751991850361430929730052551716401534289768716819731139820793869750555683620048834795293016277241665432385959733572711934091437642209376867087750231149176179350756325501460794126428865781561367564948456875156489239772886085834930302206248987923341344064682226466538236472639615349448689250848989891556859873144835403828439769453144458253404175426996522087916291032064458620277606796719458548490408868498131678613061354182545625492612760158636141620349624872899668078346589310711570541007615535725175939077606998197905356158307217414690260892050461461812577248819669616353948121030615716859543571005756909522181858715810698606913825560071456637960627084475790627263790219871952038358731878693959930403020982145244213110351107794886730761589148782002526097708067468970720352074612983019942139632405791254066087509774400680743581225384943130276457831696590301874810727018136334711142201371112036198788696773244298022240197359890139202655341591516637607421994297305366043719955164318964747449812607043859357732542211690936461911123192343389493009216643935439215354280528883276484892726733911473363832522587932884100372667007766165096938761268857309641549109932839537813571727092196436711198201156505367254711902577873723802677754489096487514102883253989761409996823890689881314992578053622321928621931622453037739884798931877938518421963414192363846886285265741738727592899092547318361232054632087401797608311695703893058401718443010074403916903699050467184929116869015985180882867388690889337499418882177446111472153583491303072779558398729386162107876663018723522773166924096221155666559371581245877885323148484784354545106652568994351976200654978851998418449054242662471298213426125036020577429820923734194725175913491990748374011620397931065263922101787219583983291007246488405455479851420908688487040202575037234467629958384952625615207230981936568674359217901878289320177596368450564194009987429253507228911128929945158011535538738017782972602908198148262806824716896419988030842341388339592689993930565906781002066644074782573515425348249378962271699118700689996455819896553597409598497106429091914497422094586547535294377076523334678138031253051494962704995231662767018547048199523560076444306645845918291642032289005483953049075751373371786184667710812235575887380688435715343051102954162723673469501098676535908494175448474507322261049340443155983088379134106660794974012078540903029404587884702628738086625168026054429078800826041787491594640892733010549424345021727230818872543594388539487558786915125478885894494734025572676252180693446732409183770182746177201515941448775110433647188927979938872216074765337677160635763327359394632013112271674218868005286211493741832014758442621161977901201775481796123213296051825184372025058519270511975597895340888024009928580062909530734233895178513030694735745664966454193921716722598165155337559228599157435659848507030996401297466962358789840972352071314212673804047019109191099264400391741512036243744573808500265959803482374784000273061693563809500797299361610804004979018705919926894987078212194085971612407835359095983945734578493746047922612285479165344110181524882681339047721861570779637703850007411630123076260745156025239027481049403480954797654615807683343432674233290549859596838513691511326971322898260724737702746582128533505606056165150900866619849165520976613017873478585548482871459771862597935669829345250239442910291104472543041715282569189679603833238046843098769160509103637683646450525072265230370420387501046709794980934091188370140017086225996235578807265488463963096855723137383785880774580410435818978640860636327731333933517570209563150193773873768296964613831072787593234531329693471362567081139659737453672965287766433237060158192790053778578362171039285869028559397764025764044653287635213543122812038358832978515650794612855699038958623818121839693817794623600763635130233612693513413792011434120869868775617748217163003079972103232156654382421039311053808798502925802774020803965849987978775527755795554143140123079143929077045212679466529418180402742785687386453936533126163684753136925856729639203248495766197587831658115871343984010817910180535289887919099455975800158649295125043055269416488819581986489545246331015073609492516194543094234999208874166614448649669060648702845449745303895164883163208548490130258737351471427832809283023337578657771876539007063982389060852149725431866548934639772607105693119634065257975240933257880151036943136696859726938625921133801590629628724547949381199157520960481118232650763476834440918763564865801574302529102770461497180537863639076912816379850500632975333054878860605759415601524452556953395739007053565974971280673363309505416144016811710042846015334787009060291586085051758446365905476742745137123275618676467926851759518045429093059628942127090753969427660368526522726341011232863194636834759209556938748887346393737153172016306580925442464019340951678859338719462722488515529313849786062047949170875093877956377649116157692729534010721841329634219701223226814295827801663224000356977297453168232045964643629485077688208157581233488609565717469616786570692736214580917927094581629421820114366506600764717058148154370158656253837663946281651623537674422896546237087521093210334955065629248598313073290192895644703841727344885426956138899462781191215932193490679278236793317813657139130063936225209802920604364596729647092027177244030109405389627340341103202964005427360250068629800838718286833853277402277501761942619166930027318523242076063253216808621857626130925396609976405343284740577129159816860981176788499669374253964491848479876487020232276146712732043240266794049294503994585567997149887301091674918363589417802955773401866394372849907956023376478496505428410935141959685194562818401116471456130411126653971284032897626475787503191060398698220641955703948769718248493364715255965127015704926106003702522374473146726505125733311997883841942110020909307016958880780345731833059982788988501239567034242068982769273865866253763678813434543379637413906729520335014087762925788860477259221157769623732214714682015481645614165689279158662472987615654805425601092521375220631340988797300182551305469984840223898545870687686796145669720007399798351953061049955326933852646876783694232810397150045843214916191539573392064271543712686950735915503634451355078491861522686560437480913161368339914418065492858077382299818118745705042300290101105655579899363595430963338830750090977129919367879988990558447227437698983314710130335835159327667129495946773375921659603731609539304129136545770235443299165674977819992097675294660203092700272783944857494818085835457794849748039945787964885580996365278212634703494774987399273057663437799650458743921851812439685227579740632860886163461183375601573972883524434678552807080532722432279195018392560047758835413838279229752431236471752144399484690477510155143368520688597478307341081451856860195407869598624764573765133846029552345465642655373935764091128396132143382782663008157954217721199117844677398795958096229299518690961572722884907723935690739904254365952050545678709042457540746052040819611935048201221222700645574414539167786749867131505133144796117291100308427587524337814033960243770418106510736047637967720279672017868375832044688817682373839047521531776745036597246527074160159631143374803443187133448226464747845595492522427525971591109382616057430745484283220306165218024043760842299115923113412490971803142467802280870147931600779674515580525277471234635921011150276542645662354372543388909609550731490118950822995594098296174831310953309613338269418307081154181684284692719096090577441072194954792362370795772417979969536692188115943663222021574841523345760173637136583654068269982138634139369892862518140622624964627107799578500565206191530688656614835527586269023565132752867013135157739385815020168547014910460733002721083945385883294330133086120646432809741394993389387572778399488603745502570569925793603928085144583727710048364864228307564411389626303517635228207254542968004111426933983996593844643615738403443601689351419212143230185671007896475404777685691851287682322751097276355560642791853239996157944237354846443900915497707168140419332438977485649157519520992192827674016398085318222686531524897005140981179077357235268435430843791277234187053516154679450012909616153713836773469821658335201258150855515755152768306818812688923584707450816537907570742396856936789726672675087363534871162606055965109851075650319636708014944938336606447513854396144580498835590504425840087132598504041950928243848878350798166121350422794496433724573670587742959055823994118475182848877410584913941510056146155098397005112145429388631341873402107725317323863660700362694200038071208757924867521125546256828090906072888149140117976023180560042444641651025835093530017868475510747679939291439596559225372908617522127075395019997763197910858596490439493804013586294664438202934632359635704588282499214243016281728876385726190924786861311271385321428916286250292035546500077807190945076767837343198660717158078977189769985282191124099856297668845756614823454111176050408075202314276758004190853929053616748301435669721502621761339801442591271523886728380088521490162155771202009970673622962927437953177133818658493885735339246654272687974496344055732233432552382790605740807721353456438699273127760513716053548662511150202683526470688338182695350009747075613952391966378422846888038122630695847115355158577714655604336378821490916356789487264331155141242129191304864253259269976994546715331030186849193984609582522504078226288234881398263869874036846612514546290949201969776969566838155394053078119449645792451539264612298079033113107219580141918825878894781534590148152828735579468186576776433867522710158819621376231008510105595601521588305675331352228181056365123771031671829079759980703531676567095139053307603870930614263422499287568519667436487413369116010102370982396923210816406156061638804621796728142609387660629404965413595803159286597990196370402831983818575697111051565279761566495479741562115693388703762506478408815571378750060150493839934713322741891737169938413568360612768715785180396384574446776704434252412893279395615243482991150753035870641065657726189650107444062631859227988461739123908153240523545683623934057605970159047034601372680333691463423391922194625275109873562837669553646717232514844408132957810241972272602785562926389190654855193549328752622582599606934496996667842501050759141780124443207804509192831180846398875689120188388972157230718553013274000918400619563338260477446257271838446880051662229115328695075195436233109265682452313183492608337502076921167598151657048267984869699413588784921753506619319359350578617465816755465766043387275255037775877060520440301790847660696846367959875189272521140085125124537299815896955292182580259438495572986482163221170698595144002782862823976546616648189486914066286310356531758871238807448879739422433302763333165757343797623967545752584567273279431671284981191230566238208739376194114272018787296898734133665496755067469891738926920270207935784421389837046100228515301779226432838887425217936201137195914345055259669668405866423292409906398908727466702351626338602564342539011092986184685558445968051897021082521714006897313670405583438606812528550752817476527071908009259413495958333424789555616586326096527925764221038863752170314389525788680548782282216841570242340601916722051876304031464468929120066042639250760500811289993843414419436792511355993002376784519011676750445318389906667031381157425217603342508872813633651789925623543641210742394074295433151281811995478469336013710050186813865986370122225659273619180285610980840366057024283633123842015115615549071931011205161851871121440676086360442124902681535740533768619322057593177256861160931470788785281469303106268786725419897430961648930842848217049305804992809469353792459194949968185753261141796178107684127677868830394544446754801828530835501901626575903838743301368217867480730275331394902884461520995617300548685632517042148684650881228003006563733599728101780125394674532133295040160093584329122078673426242845781618212539305723024173867061111273940519029733329821702902474004261367831740914308136344884474516305952991809433595366046555091870275491323167561666376569548208329054240807931430540966348977165686000309344068923253102767877734099576057707689292029871196681928746127365806273876709140563645501147439542942237081938925932248160374269612296044928927962277938359060435178231839785829390740087734344038944548513789438894826852599630737199633913996653930718902765741303011863854669250469824118393410701303929900104154571703355320501423694159444573539597172218292696428052266412143030357205948754824588897008605432571855525705629547754682702739786011809592501619758464449551717088574693674968645378126998594709993706526146085411882658329794558050718687385522010217556413597572146302153849622483204401783635929702266715884316683801518274146624605572514538098721670765846628048729486347907756949225652681835313861078527312511290517816207679450260696606810251953320628818375932771427038031497265534995348863942762308243606699752729499985457142438028145839514025670645043010246067623886170841328618755662565109559568575927968335006382509745798600048256790651686728213083204385599222332828229708625695827651261982802050289790072164617871894974252916203834306905053089221100944566122889409418527795621764145497317905800329795998378603327682028273809330512311307469078675417099770827720075962278507378314702738229304376855550112011546229875964139860504805373120379160252283391654490051189474369330608932639717108554714920902135284757266269954623863412578449533916677927609726119827535127913498764428589412338317194583681150344855330758067780215011523725885421379919540614066244138867241446841721860842991057152616015183751971065975735680145089661132421141359756783625945499827935451009913832297473234437483772352022284582794646631647262754817005295745226188997879569476861678304794823646726469101114501390364667515473447330968357388913597842693676759420368094437616852926982578585405286437163944963816254141135201815077300853182188491507803780543319088294113261541782584546216054440059620356583565437811316637012341572712390111681862695436295808984593600828956441159440066270874852376582181351173204026274664573057725446565826554184623326893421061257216633623140402566459408232900026943844779990878413288411691118956578354142612062826189154455593160790654276127645825714362330800213753844903888595463271107060472881764860309194845646361362743327915402104715183433065471435551391707897044789646480255989313342977204444408822411176953498351807334661911527828482851265688990406116631978978482204288897320796296926130666621717928693805762474930065735977963920038631214376379791224624072896787545665753131941013609984397869063917845324919565880400422059119476868432580193677021916749350140823248937488161537597234722348711391845701132701422008356586012763870927649256784502478174896091455370985049533901164804040619727433271330155574915087434150834722260566471693398928772344921368749385228899236252570005518312953000855587079801294147623214779736521675536840999537126446021422675798058843020194284995174669173621400844236307068713818849726598136480642707040883768762414579528693324608433127005328250617975151123502504255386782685881497745113529686293469467115735982273706199681650259593896423161848688859947624818223169647728803966660262366950541958837883786454993522564776571152040919235987012806310569726988443204699530883018848095661481935985163038396721464926757563257871173811430002420240822869181366631404227711096388618291878087758574505063631774545930986174273663042007297540195906859500573555429909487026960574202757073609035137304415172505558045978010616746768686712786528004206886703266080610471603096060618083913736495077630568097715232634711705234351735180543827559937120941457488607476426755713533197816466830612838874193523815848456365991109449010066200138620136579943719529540457607213719865020915079328355570020099289049812003540194240999908648665537894629444588429488513498851219160555328670474267209222095738676814070772469411606159170504221128777991958491245766301269687843229341967117052451102270151187624163336947978467642842986534391625132769533142811308131984575522464975217466316642517584323631964801908507981136748154399008673846797190294492322894350186078497074178481843117049657499208299827650042390652760264389470510314325395377711734603464979240433532611916895794987449378149418213032436063659468597618347387624135062604667822151919280326723274253799702943113368758867849692148653015596625930126252220063187250439408701482440687676645928239151523912122905464951014715681764530520020808889279358086843496902132990200186943236621750285943142985147535919486491473942632281907250009086709526705490123517448333247119834993107543112012496231305985832371535812418783694662184433787274508314887908087142863180603867643424205018128762145840741864124496756383411122335379872024104822057102184035941573765608880580726917639207338540172227081009580646485128474864484269657465030037427272690948244130250554393847172240288169514887951879705488735204984603284538797115633237730166116348703493435605424261383990577875503784107171762574050700210805474870903660302274536309059066699597450303013191300823036508180657177320679883629228617441633033236349195198874534923575526265728188423117138125906495310955073751277010675785828462501154040393926746392035369787741349859434739923967250051523971495784877867758904703206080695933581882718883687303970632727597144481030209748811298021156034537419060418758682327049883790921673188454235337014033950305161760791948230661897315881827020940292347444965376234053996402659298881560220102999774110736225585853369665069382666197085060081047690752857936936768576349488145533233753611987990190795929714385827900878682016744971776558940322010829588234304301527888994762207679601793817864606715523016157663426840156529245231901578076754695744303010430273832790430697349043790481296496131011168112269866990009495776605002386245342497481938151814470637609268422428172580116436253289702304193266395253158036577023000174610073446659095425141713839837345409336723455884297737742658555897054417186879870144749821860066208559645890144279134115845663927560527353162639735137951403085134075685791479957351838174340727929477557934902523755960395623183618192006641753605903067897884811747193980103940558736965010735507566260421921277438982110310237920838737794022287013138771477313824610584897891824523595869758081313053452925187353343167576058511259576738659438341253020054067655264814468186274832936181692898722965869452029345356569615014672596305179630900935056154188777481208040936361837292143416248007653792420830001432907761616263647932295838918441666032599518604757497629207034385017037439360168079314575965296941220682168512678971766281912857800295458969225618066137683495243169087885017133027779293543081719219872126784077664568753846413037203289208444369616785737869260798789806251173153668211254729977529827730679149319867335362293514644824937806224761167308764036193495614942117925764808030086310574344915794657095327816629222798080559562685809144652359293620268880049818307867310110435363094408999000610259970021889710636627157097376615224015916040444892791342645346841336921577422981844143407387036300655569185396826173742587994945916800788101303527306507477166806580386390571478700778494812573019119586290091591014913268646417059485771370757135514017230737640291095819442664505336991735246091824930207143834755648740486418068479844823685432065398675964383882358281153901706891752391793220760696699525482332979669788125084437089421027047999144774591075317285242856568882708582406980229616202293173558803051126178583820094243394997939846347386191291748824750724475320263849562127907108853761586036091795625755885257025836499539903737171355977592159129239779564531758681435716546231088355612081129621349380657003031614208443178786352424678535326241417040549071163480531141847297202487527005793272876743785398184875626853449112037215510041444094763209060449460287508411388888512929819935624439307299473077913290605010272369271462924768384361589412621139872190063716364801161526077137605710425021613113085971202372302687464222785167136118970307016337257161867165167618132343258908108480833685203273926828608070970353015226165993897790964943090363319324335099284455145469965527399918822042300922229285453510606149663714066916040605132807610056324299175356516662095785229612414840983096065455789221291745675779460211421101046205823210362556184393148776473790695346078664444296723662079313813339620350219594444215818950503337324920192940066787479410593004644012802447755941709317966597541307214525896819628987166557180371155032648648877979235290913458339356776330910401688763684054649663264370048040792783168061404343947957314212934131785473414629275398913099164494000079984547342618400168636568984919518993112600600839266821616330639567916799241365338414822264224761629537422037062460225876545305106414971410999406255250618569943868653411098214247046768101680266101571057560083704853146229776623154951534659605856675098548449025863413874542228872535121373079609924397732590689279551310118537431349534527529394569679262014327983759312297493345891136081271326215088854223086041398777562240495303310867994767349603000192280541240690851473518360666561750648166201000832490503571230615236658484257174495747778769499447119658995387622726093437527562010083376327773869403188653346636583180946348812889845018304176571890697014015602139033858282297254294211099451788526230564967890380977327371076093447396554742911985315592315009240381935494541259906405672182553247725195123895519545626911605511626111330109284355294160358403798433652397134923461626729389230706348817581380065270653907787736355128751950645515977749583171882943502492491971736467631736009334387885003756577141656161071006218041292289294157398271414012345413617767279468499760792516846857827619715583983690250425643607075124357853451386083486192788233808303086423204678060617085456445296077695605729003718016647157926799210015862307958529632435460356362044763441965238657727784580065005291445718371145473272000905089521403085403242312768113358793821464369586100254685801794314759692438965709788621123430937988218640021209390852558074806522088531222882931668565428976121899878931595032211141427479086777986832475858068714977111028367395165547634237035392462442770621453896685956014322578196888324084322760858103197732608406020794777754990221358568271664061530026537010352124400871927549981886766874863090370800018777129306978752794375125102136868585041627244391342641579909878353116395830638240855198282038568735605162987801746719100398383867378145310235018905800045453835059287881984056398339967532305039761892033390199053217923292140210980179486101053562112498357870452559240532555305294275161343775946441371976959562312175632476048607351824284673087994129729346407739220176035975342151197003561335081591091114091305686374456935278747530429717791730099278388573860616446211982846537653254864451293457371569073669432469100290010190073138252238091765638707751712671447138797355186163678795026987801234425065610547275871910217570417808630359330095428059310019600950421948822858767058832638183576390198880418646032651558437779666818094901903265052047466379424712917898832924935627037131658944412537134515808177585513496403126576150783932818623760295384254268942231164274047207472847039690302941532685481638977521235406326949839003729276052840264683685878597029160240885903836031412035342215261732601686160358571530117016210603291512037634657780535149588459408795905131119650071989606125448257292831426213816742723277922348932942721636072185107637241485482663501769115049662648525321882324121209193031568525673217314622828071190658698103448031722720508703170627134286279820300660981281921559202899715583842432070419648578885123708295906741735980810070908513938245833765496735577206606968376874998080915181353076593657481577344939041136941040698351672912953037964021341771959735722482022956436037114285249507716803047618184603954570206062657518021017808242718360326151368129748879382421752453014614266831761664664669109043141441091506187170423988078239801011672801104895876613272529272940749756613685197285200839774363101394653055909542919522249366745355400272401967216848465855604748138313926128041560531471591357715337810163709596418485541509000907121761578744701841168754496562988846384127840458973147717869746950965004869486433140550207097184781716262549195219534888527239170730284613886927448129384660246646771072525325165374609606325095363649776111591767104970906923730267717294914142437805165408385910006342808605315798954346896206630164258447791282068894857253025671850316623065989651596031182572003721887731046617938332920731985420736023647100411112782805310798486898623539968715279852664270547335513641111212695252694688146482492287631277093621572919706970121536411324126285424247969883799512136654435731090502245934999940555512334418185234860240778807610785762319542657613116674918587951925083654782232471312666362900635513850348342514709640021773570166257834071228502696018813802897398677901501007936455015069402814948656947065304291065523329146574575847603204427704068964973250141940714734055290220118325063135553898143403227337331178367358740985243554392600029791215189298127126940226785992437915602758722433338258089380169390017646067759403862345125730128543524492390523520004242766731368906337109885140619088053394753793388272032699296668442853317473870572305415243511602665144427637326765571844152398776035558160812535463218103081718450506133651935678087725530841807314657194107881444706692584030716125563536894057961186035124667180802092672497549801458330408221528916796373810159146755985503802886804813858133634512053821082648984470577359257864207361924704067595285498979158494748137299799486818845006262071843006169374411047770710224230431066648645111430139811232483236878013106625029409301925163388463006245901121061064615722767878273696991295814513913398267665584269472091378288575733932138439168577007751002118096300235298564148340787305663863066211923005526139298217533885617836787444032686336470701260779486926941070187530259012088982396782265668638396421204372414440390375663691853174325506729143328569032535834254050083807832275327318206171416334878542378205079578640654215822666259050612096022516921620008998910158145493690393900022496373711301614035775992442792152907773987855361082683960563792189626888217763625280488428054019152674041181042385350717116355277343369091068235334449346639395694366234021481238364079637577213155469683794709674527693806503392156780278198852562173993815144975205901651955203134649409718294926197627557786999615253018333724062240788287935559522845175515839228795823622246974933386797648048226543564947608291621864383978548060577951408172057717732595331971829184915038423245431844224638396845822037368014943147507993059794063262236293380508261289416027304937797045263468355143155959149899495784610283794497865038495598124269173854057124970624742983764031876819245117856411681556680252182540624093329247853348206588878792925871764958129402153809249846443487020959632132486524227810640540081385457049973126356513239827532131106976798433690532282496901195154714221772370717326007255540706245630780212345110556235997892031893916087345700903722846630629269399760778116612812464425767188833407247277431373153418508653737098717421857505183287931240175803821695271685907438798381287109337256128006159772700832494873981207458147929926102770341500099482080317238582520957801191046525979076614296885534750071713048163177717893035600110584963540377449241950742433397859217180154274171570927519490458358562859928517556372611339439269255745742671065763511469061499535316479073508448727992187490993088207029583731853069543722781129214601125981501308649553984113341611413701496768960599763669711588205714287662793916929722951395573194135789320495900139476529819905651187346634558358223838167375619114492406791581314035408494786792546708839848616240997977265157806520253249542543129612293666503153281850535811220709909980730408727294479573547108826340344515852134624569355017016674318257092709780363508753793687303756051912029589364820928310494379551456556246297064099449449935198002248563800725987021225476964410791104684362204110105038644095041365578613399269967660421641655852360219228026860338999985764767819476730035294188744583226872938146124043059915011923408786042130992893648967214375933484247652856859531645481323518155217259856065080879677688518409526489194915015973118886191346074281750658010183510564151337466214780141489738617969536148659682053366645788918789958226775016557881366145395355704552307376519249231360750404015992832105466010688865781631299241989936016046744504829048597228571133234294065287531556426360985691315012099049205203562307887894914750772093595431259211186021206579752592917847935293835111796498794697858670003532153412879788765186555317381232117376189537699609969104301548640684631499665981557872033138562134931313063480503250838258097973950982540265176024056252047316602856438712959235140492065023730985277875205183553924130996235591277626571007065648428139896932493771250537410958594011380924981319900856498239734083777193963924614442263812071652385185594017774853726573542887182712729302442278780063103522715493932106995273348083144887493584275807802671718224577391450896458294170079122706468772686852238295545158048200516572032470626675497300563003868595577970512723233464543187483639777126368204494286693612008131146302226201506796850223302847502172266679279167380341038776443393872893102569063664145364102558146801554010599496893663941827846601660317506015653430000659245146458793178006569817698404256051562806872862079403484472321172120058851222860849065420267574498517179447306033905911116112849211168863217733698038792809939009679241342992491428539478153853235476024834602858255079241181660620902161065211877718802066314723330992381935913404085244022560239228638087107444793947428519937436233235479341313045785838084205664414918132231667126896507480067514765124372092348200939198197400335856083098588486646815164576478067959505175569374721229276036949011512476734771289315396971632293225771794942044345171263742530122910351829140500285887267247914514154769979567585200356077345923459897758248900281913246916672272720434733080994378672553022473045769399663548601295186662760335425820585375652103201023656158949592207777859787662620395333908955334567575934510629581310993928235672874437018661363418015712829924459780892735716478313487314381563744290403780859215264117585794368193656515090884959404453457707608630645079038915864192943967619854944930363125784677244387173289021721580393929222959672569375447551328411981248190425515601375488660184160601706873520078719957003441243699271147076311937224419773615020877636233764663698235979844159504406226959169735354390042379857587649749056577027972914557880895218491343816562686718924299246853136504497331355561536499841745206353808657157215622213414396017858166730228062980840352500860212563246155711609668731999415480979816699802136116775440229271612160349468607042082201772911532288941194693182557970383848843427473641063386230472370588378243157425866715312208018114593710928144120729092166603157971716954789870197332266170692665901429599525545374003469154709390598259169057222571680783132845233056713102959634682897356127628508522174808664005503231243536814622146250947578269012808674078148416299704544125517102518218408468697709796211398133099598750468061834906829243121647326693343297861989322023307679653448361307344190339168181719142300067644429788414368904923091208271771692343286960849419371003789826232034608011599876939550492850289211190611902780931205233460133985722400297128429717406975025947990422516136814687916080634801063276177864467593888416481712327022019829442177720781284975537213097719423090231077855493928824517621447155427403171606797547947604861907905902379284905180034557559376983908508123506797310140668133729634678479230720810151891521325139800455464222990183688855360519562754777616433622920524913575256723928151647906536645850966858948216995928677040802614535673106533846775569326422200654562581533490002491152394012999283229050890781692789138486062848151354354641678148468651468059762481820102244151919979494261091228655222904410501751266271696994311669605131436399741122348652363495345820865399099556741545290472207701455129581368730120713305810937555964833406045200315135547159856745657231351578868637295670327890019762540573195218727986726936625662159474464961083348380166507294531960538394317385599629502547112240404147008851878657355831789592415523492237855360410499272459733226997814250829823421467576916559296273884197126744666955226987421477986446595543879504178969788967394988267027600854344519613945948868610336282130439292587436536186120140760943879610674751282125801272233854770803348602537565710181359545641672225323410955202052493871166211450491246456506172579398481173254476265371400206357660273838962094713396594544259460933170427051309729347418439756010672655331328215142272507257891981769459966761905381576814220261803674637517518439344295734106411820448600106100659119871646862416209542755589432000570764556824896451908344670159122700680327911271596531233673534581522751542838709892301538571192980948041470162399557651471521891029544416436520305369467033746424234052011219436879985855722614333162976577009246843518998116028847353053348294358446775810209552119854056816418500593807236083435626067390601702685947225074519366603709659287393247746792316876692903480651585151482908750068393254701906684828487464624519240354476510659814487590564790873236346712254554463495958445565216555160591666360633401628628371151685323237096822162015974962948566897258659958021496080380786888589371379549445581279200899003469116697642863530830327650245516850143182322130195012088447332108401017435794720535537676862167155859521055703549366077745621690322740679918494892198254516638884657681718839565298194981402410720467941453659980585785367236596840415403777397478765828150493733216332401694207169472498256216724650226303011398939802586107259627906858624037032433034902089420323573796153024973886019238329584228645703916606117900294973755513437086703095624312066561830282369350058012986615445053135949950835713109770406054222100496351093898259625131262748371248661840532988877431274314473471686793218649869992053019454348485527454228626817848824627257621858578119988982266284671069062949513092980519219737911042821840285629272768860926236249642985795614462363920248816697841420396745261257842039744321859193796750123089621014678384115454096425140026861160395985279148368200216853726294888316301987172880362744740465982129540364825964642775620683389767451693992780569853031477652758074630244317483330529826923210301041680850425491217532211133062217597084902916178395829456746650900047168141396414358962234301114905926667794513310952885962676783552609203157326985048477667394122254520287422195431141435119098406571671290060513367457786227368005199476116362622777117036208405746185307988988045672794489044026945471362133667262514501748503953433083177893887713788034331781743784948738813092145905820507796472738644754779896742238823904142268347295716672796757832612121461859291223512647985098572583580105270153663660077168560540758321785911564836514118019269196440231487406759570772918806266073400563969663485551303642076258956641085205413834490094455226381799948056928008873896143318112013025219464920209432712304354767097414437777842040621543054517656669273898426670683134661248409823869211746745842211654434310218909347640285220234972020844008689007334277996442432076091031093311782632466713156070234809847353713376022901686326878053219279581545790877775283813174663123596972072476763670441927639342540664748189047545780465917548694190225516904709077120815070515441881222034254431480470945728077794231623122122681599706640829398457997210422048048269999860981697448110693967500075074260086113891079660909340541549647874695895853454390705204860790742290045045045949956258697652323311281644462936403975379752079501750091648049116966217269341590085603275447735491817148881710707641919891838008088546876488074035902572011064412533929183178649991416533992584926043748482925447096028339809232027008225448262337285262232867936783962498494832293391779428425647557236252918713565133475058799816709349308787847394750425389332477419425107355728819006011338501790625633928846131591922811733729271899356209542544017368421240453028666479856543999540401795027789777132739935224711664827047863410351792376019703739280220712627519276988229139533086251778157668145254781808337847299646573414087371682718088144940070083235020754895369025680875025731977421430064919681402902412489621677335887659717409006080098354980928988113285515403005389848064092871525615727933894370689261442262670882858808858164260378298106073086873437464028463804255722156591472075350998706125773170326502708840793765985339588211526677788439523452165800221821079527357131103447839564692685314207965881002005692103052148584806481824559661673723176975777948219270887657303425599621752108868442161098977207070606764192380099305985822354174880519651198834267299713230382053923070735106734167969587806383417830580967035711981094721031388045698615024524575146268867970599521887455741329822537177496196978928953157340527755117659181110763745091227543904656740932041472430557141224912590803538772489547817726867909321311088967746950631295764899271115507491926915914152124439507318292141156703070309609425051829735007337496298688905827530240370815938092374956907634158378814154128832602029572468853502661401905003265716143484935835897625388947185706090539386052749876174184249470938966179530410672060151879264751941993353764226327049032507130197061801245858441055861234437559942263372631245256174164161870468718124413952201094886354254141116240943151217435330139834700026240474364293697643998504298618149409324568145502603945337690250271650245820756972827140358294933563048840385223003234814895194201920971836734929752796002462784879001801040649947570342353977565088721170444377800299680401292733040815727476325569658776025845246945151709688080367931823741278213078057043438192132339713214640938755335233354248112004890871462059137115884305418507229080061504455062502286587009347250566634586059505424445435433915454690407505581251211046046828597332538620225659556804546875654422596794465458982200372030098951370470368484229061318614449341728963374263659810793422784186558892546744885582538710151567418388385124885732896210215902288134607379732723945066912557989918784421364756217205448085066008899845577898347693351894862282348614958680797500418032664537435214981456108248203298845382157481174939827196522094501283434610790176137066676041800361254903974683431929195345081081084754669259145130958404296566246529804566687637386069605712639399153478683634040256921223340408481633396698406839119347584673189561749678111054385891878478929852528641513093348057184403551079210675094801049236907757752897019209635671730818648983091613350719196156372997192048233405151683986049011211801689102511837986352242194697946216842465785695531814200688038740075266631237441178452883620811816185252882833947935713085799218616403098086697521553826250954605807961325170834702983603378589870143759630044531297870426837139234406939421946028308646009905389737211973640651737705172633531476895160731402244172945906444179290661594507614937882935432195796457836234346951536282290920393255621687685680424012683436593118923232768322161403329939988603875318346464606313461719258524958947896551498741586469292835113894797265266413625686069420499864014553804695529966331318172506351995259507511083540363028364609701533764207479454024240080912432408844584620473651399363633642362646209312149272338244119530945490159048996991585577440548129528417299747361453293798409507380648731459473185671501313234632123149993014601972767591939247400025021853613431059278480630789704978903492200841189739184750257677466400674992563851491715041375371696379882585952911752113611673008271212467357797780232761371010237895934144243794743437467134448426454048275743612136285278312156555029068259557403099944256492841288804233010751406413413739068560701147502288676370234238056519981497618047522829244781649211947711032289399884774076926620552344844398937836802978453050995207268716036608186950010735757560792361918767167792878319454037551374160171861411936308282124976530835707603846331584600360597599798599472667117536718249669532253667141916051082486775375342067053050741759464945389246951120009508078005228141211199893815870284914740097403493896857892289981932637887167168699444184303081642252150245134230448776230442795535245954349084829764227236645537909910737747938761544498268080885515573179897746120896400493211329718698508290826670439663052348201908766866404776301244222675348626029508419237239737028490704157301303504636023294842463230410214692148071216242686154869828112923366127323829299818239488029746631037988824643718007287001088144352032900559161037974784717579468138573474008380718253037102108200664771200850663967706655755439811500291040152503113034026599864738390203031180038131898455643434203921968406412580127922317588520111278581019989815394659983518332146904406430764198552958133048695249151039367078015132778710954329412010036932655639072565573667263975801669997089129784641517495551210306189249365425974344141704396724103513088904348660218924661973788645185488700626345160504000380058126838241077044807315984083851212636111220786736760046724009406988298567987031556537454618799001034294266585610088868674604869023680280669986043258084890212403369560351262720683637019488691938729748511237144451884498706387457804680622764939846717860574138273356481569695023520418862664891342008638508711324813247819360031947148082317113228530799572941738417720186507031065641978516947052209087886723843982665093746426119732421797577656243405009051802310903580313462545973633768695190443174960122204090154377262422255861763168141421679655626526070246154055038581519419959277410863723099337874281863512994741146257999482981815741174865026653933660332181221943284417235612866844809596142049742571445905102943024806783619206298086822188646517313161439057796476866591166347162830893035681998750856076166174433892513862806493893443908556181682440460953177720241191727653887920174323605187331090182772396692298378590335061797101438273879245238676355880421252134908190314593299316355208565310512940632971472051827030273659719739674276560079562881411834639810328688013027054489604130816408061051536589107391522626772532566514451277748466274602458917129287048924314091685045994025402366130205229126415681095797977686885894659606891091941306523233855543672305796208564232007031685440168542185029711218371462011168631654218623496699396986597660459430764224431067170750004124326278405541077536908485537342050751293850371062303592233868683147917598571422131645070621779895908525312886280262598675714681434017601660865290430301629947484366228700997223936252686902390536519663457177896544302952619388485227300553703182826133164569555678757635049167661728212012339095934453771683865833528138836394720279882452387666044885692161882580383592241832615339430387499728143283575335923164280305265615597957753354054463568708716293923103689205305924411142787192851668750818141705659044670433092360144129369119658874870532734668870383091260910804144554030899492350356208674178270404454812916043168918642795251940737003902560939892319276861918489002821747026889421181381056763558691657466007699862117499198176255072203459077174522384970199734958482358785418987663425951174014372145536916884666330791263523673769735554974887175055309011967357461192905478554226579321593401811084465703445826666102779236131509330967226059068685406785983433631421470131671962065096164898396686200869924910986944258389286341973747483021621377214853191561367205626996802091107623429389025921271137545348584433052914688324230143473651692866584338860068971715616769686023923772126734032288579952920475803231947248139964948553924210698657066660391095045871623850386488676099439002808520954549676275927635950362822673571334398661279847182656947071184193236210659735560504266110463845702198342400001577156706593543906660661666815345198972425445630476672594534412137194476234673588895850262721588669384440021778775136247858341640393173151921907025985090274167946687904386575522071527398921625776925388826867017650450912809840236484368245859926654432933741199488220879731801146538815498350945491174624729755018428358585432752879280512461238250705159302717183443116244484494702363530662337765106066365364198333890255217509059754262409439481569005127761985125491776197039439105248599223126033288033357208893874363835672951182591453566785160999340824155878044491094139534142615350448294347550127530205559667573341636579954010239174936347823629809012014211069728682656204377407729896351244308731124691662609782253149856874515779733388891809053663149485853290601932618773963434537279913596858810011183786271696336518872313097540661024530095720479135945523976821693298071616189204649006712831851328274772112758883513761570134069493919359715199416454436156494747828756370128079334909494437463628179957214957606717769948928506588018248721026589130385771923537763679234841150204585127668670111380620922358122097469224501017273097430228666481660559914001856578296206233202439989877454193001467147379270938271058519209593474008835750292618804820447181622304134212644513010422186441013330224775349698317746310975140546979508120751506544885694003376915316486943736091560769002993725945653247137169761271794640268647755587239488467322687069565090989757389092324224261544463090713357896047519382514402328809872340007388105113391593125479016457782169922435661975371226938514880600577764768748435667889646209928250601406107858658679312792732762914840022784639406591637093226354787392928656770080555890654467184945881437052555827052969701829274019915276895676003494662158342400808270785199840094731367906271291810687422026236084119636110681983566228872114322281888220910837587157990794029157157273330100960409635281358307976839239262011787876227774956113332202641506123529091240392676136393520923786153846458429511498592695714972907971506472124831326261375342774159978092053975475557481485678787421532032993561736567679828932206371726739593816692770325145342900025180852546809008643168349511847493055883389574000283655376244931323350681406159393950034739045379584495339495841212308368625064670074380143953218952053126617391727018572095152954577495424098441378462524858725067823797960334664416236136142336356838606906038680001092795135761353308095932094425695657760502852207596314578059322242681294520217959036705078165254933729979664154684385028159895513576931047477256274577729085710600340940290842370634885060855703142415079831326577777719741826543196213775486270794705697448795116128030853096269601815426506891466104269112697271442436633557040219744486073973922552978861845789954106028515497544621097842669875587885549476163653129813729327653281659917048339049016720059616121333957232926937806485863761086477101228949527293227954168484543763634173910733761905314079629946061917222202934677070348881351482138324910604098357182884501864580909348313726564814007114904786146538897683171175889354261289494578211616232579523848392608088450931353136598054535675777734596389444638379564453958362103521425070793610204031598878706117156756342094471790087548677648912723013268957853787249297220343135077720821726441492502905413723214037824624577313592769182237342760551790708928683436794474504231708066963734641606963399484248760180753893025496442486463962411114829557923021802260632226422597116358431054241699850937684933608494694034169193543321350860199719464784976904570076057868562037285095271828729621664829865419982761349466166645172245895010865526592628744536681835744322558957319620944079217314154245332345382815286018191042348275607506265342970515346778620577483095622757382702167741820719897403848252605551205908687288283697924303499581787914020283311165235819250089156575977432225270280852847560485323708914697480704098499841206214203894549406954662919817385633535143289860310001163629829292283935433987066092421524977512701026202114318544453430927173582611883374207589442047824153583348764099696772639561762024534315740907903154841715159496121617810119428054115085755064836118863505124857206931506789922464657451131612816642659060091503576009327236536046438256397681409864671269370957116464013888030261628517875786405276782954778513984292692794215543509252837786906810039083714805950369472949381197388941353047307976475707037176694605978833571845186741963289511378171626914413734672364156761716149352983155047599407626127960543162889995295867792335414426623540872868767511072925745285135687917177589022531405427044697538651836210735476349384953742170711805834481183797657973034926204158915749342105674300730496793613017626454592285382578364317551847190412740074848377146583733416587870791502680706748102685512249289843660363187865578563112876776680684124914403807777128125151723763636238671151510031859896852376595758107364822532975773619212416070645980520817359330377827797211489711492029057126653842897636794732895343659698874430339743191771807488207475311205982216057536913135251450948103423925449779531961238310886010660940441049075301086761232843620287100742482128321541814244915434476764689762977430264903319812900516167340116586803400355170227829644353320145833371141917842031637182904273786739895698152503248667195047574324489098370102970869489012408125958003731097002559831880632852523856097820328708894367589128032768898090483430291600036980470051619063643887944314724806684398742739917938441640117158050550610446543479825042379634000078348784345245248436276258364026764294631029322161218225032782209086635525583338466973495640161138298374819297907189623771206782488599337032863719892946200141836222826479845238681222772440887488533281679218019237831213175710823953869518421886684598484748036037786923225067712340048033633423650754268472375940052367991737482307447828063859665447602815363157222145989655868162242362936185545873257260448133901492053758663409296427952149901242163647903282444276447537644583746381318295798928334410885772765173867983915654182421919554958851045583434292937991640550593746448093846456798411019952830478383476469889129489932141122932829580683628024157524524393453733754684357784971627160876181127923415854176362056757680824604753854656235942621101750214029300296404587998797046903529198021633534398252858051830880393867914742182836149109993875767367608943367808538633606977003007700686524682866113964829146567392128652295660512094352701041423825160564131731541020542950892381119405621672523449912194263156196346501753916698752708245062552270134124251706379936205474782207728152480548301142172127713053206863645513823674523759284959590040748496214198877681630153717036575845134242314970995434843871466540233361147293080083041842291171537127742897304217338345956814877880244652074830456387091101766866370903850353846414270577313898177744535082775120508561576211026460378077735862045304580271456519642658169900163216780867574066728270609962842254438204172574765756962110073046466437854989879323274672525351383737340421131498052633513782259546548798157223687517593970581808690379888270848412242644590877696228173429488781066513360240248492554419710523139822929585733892951404951315382807332778422266794056923975385871499855457198731724286941175036739369172045061055898293502672818354511421344268353481927610945527683769877851593553004091319973140844852638412309750233879190393213685285078046893438705462964360212979996523143104202167535903041679468136748564975528193056785741769565150158255414196439149978194617778303314034622726759991879366363336563396107705205646792253149168245754454342966539386992230511439781289946665365272114195752800556343346698156324009673456157386829480242015369748404556628595532552009526354816804480661929042565061341602727355263499615559765282216353903729857039280193107865815440476777290248662296670484527483170674061006316410880298177591425999170356087742944037431708624459627594182212233371880018236581813759070868827520062323611077855955155592260904868335141012737369204337116986897359156407388411620156287049160762796675417077413889093022375802560354548359861977695947351773952239692236881302403169808955844878198890782705437965058260574565748891003999028227654714399413988580460009128066729622118318548625146769855311606390056258502393042007049344475070046055295676801399574347874143919341678760726148322400700367418010992988073484369501706103244325144366892311046064637777369583842009462177987537357471973081087717874250924405918484461784290651753664186715649913294931576356868262006600629618742141531255413216311843526872855540819545722342635152278130423067827099215986837500636952455969552983963996065577384116695534000964383009091807510603957179823959965959242347332336434750121698362332372513502015691328487393191662654376280515281198537414435254400207417538972964822199200621299485843098826591477936978445921227638918883906134887635281339233668684333925176230989934420891184743233577093616682378884102476196695907287842673233804539069791758401091614756946138832465558086207183921662987243887114908289733955014851291555539866638820911883207482712703372915050684582994249938220123986036585068545781014987124266522826708370296767797850992612725328506010452423971143658202004459061702910826615441294325352335711905331785575941245654754590432550944121718688380969611042013936858526534913363307983740456102521779994925138489279841606763375631309432072866934467052792959352196297766973191798566847901546031644488052751755849017778872737336607557162971463315893777071090095100122118620379259948860153835472485822601103078834561819721376223318953072400454268211853894245430133055695168687173183770979981292726841642286517044833504117938147451121336408939645343705059738016003618068296275745893463935396469226067673601904971151690035246081111521775942997902142267213396529346561808814137386388926817681795290322383490560701820526557062852163559959642143882178154776160683425146333795763714254244542839500342997241455745714433667467217399768882120890679002714083807001933187749936772153108309611481813060700265606993643395965410217045058197013150810415023958766450559128309243417823598793905214590472598620247668263440301727707125541087917878642224498548478636731195521256772102495742786216346629183103299711003793429190373097756318924411291749592918310847443058406698920491696178742101165699482194273015309127167851618527280170689278101169939702243496870570648545117875092605505619835504108702152358883471872434466530465200912940000822190684961240011134013822011296532536936920331918835900066929126877958810220630381702288031190988127060639009321540936674327560907523859097235955810782851180506781229843045174509160102413599671403545391918729378568954303779154029599348980727269358129566218165356259535755098117736832098449756688906299911629158562533084995584636077453663275593594814907180148174529346552527032878225976094269756330559527886995825269828952948076832032374311935401851603555173617446913544127412415312723120217627991548998087941806731004647065727903859249961990071231066148713328026537657528874205427998911004278732119723191286868581658790079139773412832747526725563288592646070420385836062715620615303399239894630337568682234964760174665586392443679140147629348900370092799371948101684508906744150985454576032255986524847696809951407133849075571814606125236845227066280022228736747862457343461447556948778121782930100510143257692778427098728191078943047323346048578567614996172796633047992190227124088007527146982471400079215005811275853455461800386254995599627520241169806480049234122515504583880887490113678482859797472256567162899864849185048233295138100238503662191136049002903453648637326969883641885449096194850531629649301938064997005836550656005876720370654605603162766520832708439359516407230737684381152713830033893972515277849683473447577502801920462489252922303151151912557242940748798067609317029934532812464122998814133645545605377111512489435093600194671880908248992005351776749466247997418564325655594139465678042331668375862394741144768119600288682774767171150689225249430538090015351640423342049734529844303891384055608143508105024842837574736387589373567906385415385437056037801985108853876858881623371400432364682013983942938238755050853448661890431221070824144461879716874568808766350599068835719546879699947268794971160990206550569678298218422009195425791080470626009987893842976989018886135483525955737044082064616177608437818055468580791980793749093874056925782990724687716262576267043165965941634163486041350500979204707832176553645922718575701345755522379586662120322857695004254515339464814262390605459349836363322110074989138256686129142424299443679347606640242757158142870504692409439259656285788824629103341789097405486800953802657766969623198619761658478914446848213952572946407093634395907803882752546503495620436608027981235831413244408139200232123973764735444301666814766447807823749172784886183197117615159862499967000833670572479272760578243595269966529884378452975713837986323160154830753613612187879546033175953269399817449007279958765402017732592306918386203665651963603283667804964787282200118306635753413034372481677249572513372549387397849048206470952563233436053772485178710532324263198583031874545801871855239928596635018508613053031392448590806293580120595302766496646468648270650528841819978854262385180368251888633212018200895612264480089686727107417295002642399514345406228167925145219312081261129882556745295881581921175742081080956377637827391472276574448231773622509378560470276333059993549351513499238058530534615832427270409610359078909929719146156143349503239050119067850972335007253002834943791326428894791917279535843142337999022855980116525405650531928561594271857162006468052736377167161820526274379803118019944143439358865463699225973450513344975195318484563127199154839195807861649429680578606168800891527553701618875497332796367353593481987159174359240764276565975069483409621415050014925762081679977185118516117009979287630957483890599147565550765040672681825755752848175180652823235026476854355583237683128955152464628795397638067337298463232924119826519103421798628216871379931715745757556843026797471654059992186991455774824954497092734240756197746314448914559347496352483349842889738378360319486490725781602126294671615553513716976599155171523025461950850122066449846837257134773572869426728980542282189414951470995652530544149048515111923112004540495119877633168659458706673449721772785750707311968464568500691962452597565646025083069900944909543320001095995557348846254709364877372604693176911024425329554390100194960043352316671169843399976869242863713760470635351770451894705192749695719272935825854529514773939154659332152008459491289996883640163976507564232267855143199078667524317522352440706477459048114142941490861727561642942259909723363488173519727660323071673662541788166838117127264188692634611776808634091134450311762737530042152285514305923797799653132420049609681899647426282825192024838263413727933845009841620845453379830367545101361578079089552797804246541750736443691521229317843231132239081194529953267362699156078269423754512992443460445213202566970935764190387086091950669207389436760370160617212287311970840298172041748250568308280563598625735649825445672642810748049800055698322754384990931083398095863224411812505712867702246673703111894904480108840530868006762889377330430981667201943216351092909146497135619089479025370341196313470209436531266697959802018976713191274986831591537740082584397151795127027865095696894382970828962975706290923691608268873899904252490567819067094840304636635895829732301492995907314112613974882957774884291571946678787117337836680898152294612453308985712963000331314477186346456266745641922481112314089335136342247026880287386778394445516721955934876801334982680016250646246398910765141602069784290237308723975927825114232766847396468612762942372628517374350592468008199141667985265294958408494278222016169520899584652718299772321029323535964100078995079670001231425532052493099311219478913765632727849396427108966251311887367391019179448653715896162393533862510123178443321910743734425315668842381645658331309747113149020159818634157220358196107268179961160407230407602499269608778969759567551415136686152555228142523934689214036734007167274397540060936317383692289574962361228188503284958549644644783076873982291184664767488387796508299552622073026031803547491094976652280771184910105695280008931316547878443028523988634553127340953075812071099769177118150379811548933556905211071356780305248625986977410447429519833457277760755094079655251318410632599849085802811606881077761305400099072254062301033773283809367499585394208839696451826391480472847080494169852456545197491566764341425731377442040101151023177946068464535765286065786770538155621108120096835408228695083628275697237781409959724274189141552110103970768583979550170316880144573884601202106826601919337378173809849456910406681011708725997434793501764548462256431552841814749603607596663211434093298683188256121711382828077401710397396254303769103417880416904195312861680215844770425813991878884981480309657068200946974153701250360280579685338287385243199110850313705363656320688688646020281901514063750419590481630517319068184805996331135472299115651270158335900564432887990146306774929365958059826315242396123929874393360788084840200901716970240877425525040742846341536468030002895803124502337849906951693844754908834726290365161273976010699777731556096496262881257704696570213295125297606097669579191785739791742982267726353500502664847729389560340204339046664692317345925087105632165476987375460469680746391483298864557547304027782310913040767688399475187891794128645520405651879919972068135613652544648823023502604352377050449859507566438366378539344530919210449926702972076222374933063196106365447526250394142985105031673301681839722765749666090068515234536552040664376508468164590517896928480940498418389444237245145891547745291352765957136761351753545105407626531280271617273365239290214287213472972627079274727452002214128562864979958312205829992420280749789424861036424812008031644487545279860319101077493459725201302549373416001617561986661613871076418496439244775472114166992862305581704181490992647397225858441928491657451182706825912785615509378321005477939300363811653030388103388349782112331482843575746057970848671198831971449958010269299399334779321042971703361755028264023461754710847587074632765668131040381956106451447382933196281921215266852142771348942775313343941275846300790541401898283724332836479597286777369197701389149121103871550992605273422230298880518026665391954681270004123422487495585036923894164334696572451023288422705376911464233594766082747467511472965742125298494753373813827253294232194093264286924850115069365459475534520531487182071646063182856162335314516199740450362124923600617349623017218853679636788819504311027360926240884611010469179009019374830227592379487997837957797571821443090345911171972244596914756048239785750444788311574458446412703612748498055179995779936422849758987613875073194257536386679384223343943851321093352162220730405202138474601544119933191528704868773855792114348936922617382308219424020297582483941610517834214315623489741154020830272491958010809317443880447682342482866172513744729423197588892560459916634838911507731439227844053322943787068862736308735494918021271470103412350403434483931522136307104277961346555201464922057424041561252459857881142347084058718391908506928438023856161461432664501309163777818375762775174831796196868590731617982615166202541762394281448581399992828221352731834383199460356743802904255551681356085160827811701660959324402731537391704808289133904862509410669279728073177253831257633397668572959279842989542874081873135053442578906346008122667770084402735509311660333014177459377017304766748934685717412472109013810947678876570736916305141388318216256466198995108699708122685003547178350082843283121320339894779557908981608177613048975819843496288308883673911058373124204374320580061171173074468679272172732674981432950496796025637996440686841735097001767246454057363905938531667315521205050164815559668036667455169989645960116741779142635070740222895571241641717901647910894726936254044536215142071113044306484475191768936746409010504290407562951581602681751384251416916273516398933159926768093847272283458512978612008990387732127259639525748783396090667715453628043432266449409161746868154963706596059694724247247749938233190116469174962452715951562149567433433881205364551639275799845869542560911240032401572512108015223148634238809267134861433192658687235537275909433816793028446398563016336170436102464586440597066693968928297555534056301600777235922267771609087666851435347119775665030837146868593487848433682845823338836535377338469459280101351010968249548714262929617899024731800215485102875520732797493643915116371916614358301610486427300463802283321779996765332316995240544808375974285165021379759841259028532753365715342407448264722399261931726520616451936543925071603369341435629763437364709832009580967719906638665699927222056484412282408403474190894836635908143914596695262248672663462198062714969327442291872799989607734473743745173790525643853834593415469480021783946097091677668980425964088357404481920522969177816935253801987999393603560825730306674190997718043551415524866415751349760822914051750365715858084283936138394304385353147620322035856907161186161401517866810465840077802611763638395684643536448592743543607789464720759656324630921977781312040468917864508231922098824569468281563703152365154716694538863824362523537079170316450911227074961115193622648767191612035496687189414832309766049664947169594218334262556271662120329151592094384753792093143356170490448753594140361839295303134752029198369595716512427192767892154395133023522792646196552923252420016844466431793862268600182728619971810579684829061699661773148187911340489173227546979543260369796041133860727233158357853654506038951817207749455034276728776985673725645471719131858293240536924394108840268492097299105164555296165918657840964566990937188952288401851286841748548018198743418896347961503136507174272362318010974063943130308591636944518613772987543803167434709508293467661809481646686357232940691712702667977295153856259573398457867999214919532650770893966083213832590397927095386745963998795447532136935673023229785459730704893847407783094583282299173509993106490117099699816336240350876599048009007121398527863531066164193803102613775088382224852086170978335839949293814560597146752490169174267894902501761563674226829439707919049072587004730884158499902803100061398134010751618394662665630845698570780606864416131700048250392524079946191981233855894032576062294110355506881780398988808595172176752976831030015261081252609930213419516538786861662363063761875682530424345302839207704715500750742911017599378985870587273744743208136981994950167476342415999117199889238725387005852104219816803172811399141237245827379028812704923118899380719768188507884397994715182303929251658178645884531120450702298722650577100667497411012587057317261654630136474048914533725461227736996779450390786387306327554529360327478158882286317312172733662320135222479605768230828119288034543736200995813481536630879919965899497116807761345608679182473266747207088308595852407416622065393360195394338249042803363204880115090317223125916967998305800840707061613030752367129070257137772897425154452117426207644767185697181001442330770836650608663189476508867470855468076660303628732728849226631542383849589662346587396722796779990655308522058210037693887102706763557357198308091160183098354644086217654143105599727242255669324189656948906445971561738020185925283671748211464400030506142924208599145720058368106498431909726976816020584549774589458872841985724025499105528261583966978866525363200228353486236374309710563392675205315190085902758956640630859648905710325096548929481145177785115979739163223031000563197795968911750436410136163384013094584835547549125097053440520182487681578598322519917775861932268528464040573313654955815525951650872712255739962698373066109663795943335528508916633557664010292295148821813671576790434863738230788442508260707140338171174663854025033911791855480253137107512420584390001297891603645294987876068629226253360745362778087116247967139422117112088253943370043151883222813225056361156520507006315979004335318066276146606069545873820019975308025965423420570332149217412245438719849949572214262907558607180152043670931261978586774484452340187533410835087818802717752583876212975816714890139021808285283616744319600597633178176541431883313209743712945270387324393498662040525934171238806423051223535888260981893997506062502039213215042528007570963539933938935559979976954962149557622101976539815666766984299846371223137368576275210374507541848851750890023544876638906819525584004718803522366790285038380043415099544788902756823823255909326207895343096210193355420368244429008835908287408976607970636915223550785695135405166143546429402961607380988286860871908152317418910938098301652339509276413348789373398126708916708090545479646184741266265935645325548622820955924502491357965940372260172920748678498845392562732005973364737830681671187856028083112012520111313248165569960079961230663626486821997413102328495384444544587369035410874713225772250717543270631888924225820049408302641718299421184173895810414665738434381226291256093477810260329234780647102305981219204396885754343571027686611712147599544392308161031347109541777073627396373397653224552889554958909233552216104124209818763041462114267126739540555777064809508831673530923535875579166613157618223981236356167966243235663530720641053490597781513888748340286728590940550343284775507147119814614224712373977790465975318946105619040694969342730038327911742304405957784501858463508803348840456904476379355056230594957649777889290140775950144768174342507782352958202517041530098582671216626864763329939104268548062546026240987631524843969115804732218369988726976677506448452255606547503277555979772594136368437425498850609312550841752137644836864670213136191439709802403163582251117174582558585192604448077267925182391307742178643286885765529834379609758339200658333702374991134165881726845502224560838842996020377042240586963395443586989135190818075053406054496662032979791145515204185387740799946016948979979683120792170043904886162934140058270946048977916169457568806385264234559648293790799063721252212354429175716134695317731621698495909662297011215509345713347577350079977690461985320112545147481024166950697289816147269524333395429519910672385419545465952164858128023749574201028972701113672296528861519228636229821548613451176454534003971679508133472479564012759401598937433552200292506055653325091901905860950769427185172885542067426625150247754858175192252853681113043720328258303996256731534329329645865092999872002841745915314783860394709274149130580148834783777191872572223251922005909159457802952218524790253505218953850567229705105708427027165845829401297875202438575333939826807931797826606370091633146137871930679442756896232242373734337023632016986325356987388737005031591373343661929120786854012176136178181456072144299961579533382127191760320892816262892172028607386142639903922849692390708536601604438949678127479996062931155158647417538478340041550112705347274319620331318195672077440553268272301121946995380465756088637899878725367780799971354865978392941008254162905096460718840746737207967536218028488634760162897722270674088561522968133956529626755086037589502128702979825253355173567138719650861170590800452472233780815321670912811743622346390341714121676545398857647904262198502224358732305698449410320239460744867181757044039275382095363578503919354507284870284991358248069299873617093243380023365290413118038270654423668708547178216661081359355714327199385367399857107075504106646575014588333537415433470906937322414935429749749579801044531706444109449865926727714462723405307198931495150052193595668027052497151634991186882318876125089236185848244010739243700033392822685770762191436942723073603846246924743171081120949075192890065203445058645752559412738172709864752677604645547507894875906751211510206016371455113556514388227656426730879087662397906058349337166360958578019447283212213808562312779192140570239400305313417862707434389581312586611745891142170308521340047932974536657922600413237760507880676848585580062025904649970247088493889730972876819065488653091885860664713956794400128305090056674100439562038197032115945251596951703884345100501497673387546962207169425219216557445627638952789337549536521527700332050633321915856499883781355425304667118615652647801535226618966153915653310735651241892497335299045082763887437757526694616459073239306013811749941856662675664566629235210238251753134985960484877045853979167535732815684373889312161344376401573545241653524893029348844022053504012585814906592173255983377712156126810065753194082391241979286616201487977309996452866685846700159313551230003749119849404164993262705485277895913898019994574628404052521016500354133711802788423390527090569522946090407139117115730981508311978979493361527507654401906271164383580986691585262252927316918708845248407166576998622463556262280838618624609655234897330660485316464316226794546013705306222750003599174582830053387535657817460210001723629997471121014074364280598586306933088715792524922908237567829812232335858393243009493973680761788910493558222502499698655944988289280326318819269525842500549096626553494249619714920725158742831907311647293422350987552308686798843839547865371503547407876982533290097605162812111500350099578135007974630253606889005650402824347912841597220443596538603435216489769064554953315764468696011524045174410910114662812468201605155922043596191486080460664955561891054164028419432847810402408802852778689102983830479727285873249585433134876974156555586006826130362213276735022110366131472338293173501188264011771750848558813595768241963863073421073126958385094996172887767663117509782044984790319165129265454471061779073599369277091421402893366339626806263921593155392592809546721805509884730593709729421639138700050906710418375730632886121874269970445014881826233049570952206223142922284608128148609021592383331694139220943057535470776308746878350030663319015528275825972084341845967801744897959508679267699941884259730819847495453428713762897395846983156195496818581477952998494846762520429280457609571528484553670097449249593835530253845806121051270342837660413984200924084609476534239412775476904690646288678353925723708000465033748397852720842385169325157943692878690501255475033243234388605038356873775238727483641558515680705513468206714521289298997563913501400514486911582947641751502638627304727003610272535839191118464929265379590887769538399580992972959377610670156651818986230944205601337809493913947560140291277215686678741051425002497526763645425021398455156502261819732719806924957932339009504475230646751928715801241918505272996506110815956172325685111528033980956498696576869362864875441379765515715562347612629790724304492326843303293450574861664645484282356423135816522723968101507620820363627610010405881108008183194329889147559617841766864406394702715675851597839294510670179582680571455759311073572779186540760510048225625040854418003970550015657304027508588486615799415501135307623758813685897554195157783753421992953500997730590013595094284187816157279775085881432332846791943543029285412596500671131197674772191805037364322143399247127355891972884648891001726434846662180517580070480979927732727568940471762680319895641728170969643278593568535360623933942431573280379851991770459123478127123217627885301993689727024029026333638255420234455069785137914949377565076394613612787605580810053018870935671507792081835554486168006081372110831087259355118296773866704473177067163427207890673918572569549053669870402460640264724719882645018609656149545388116749935530685708734369687604813841640527289329379773842723888786217586449603853542736680367665875524648673154098726753731979026318416695300072087443206862424241931586454324872532895969227221472564006463286224616468635246398950301308610901107338095338064992900385028680603590503075688835030559655133356887785986656255642666458409660097433752084499369550132170255954278412215404839085917238795805628277243867208273702754513731032950246407548093016507567985482813237573719043901782966800102502699486780465061253408331480219851412799263871021369423143760795654909270565057507045416210526486928526661747228901249419058808745857897566577698343256455935574766211807363677123926103312611733026299606835065486029601011488881053757860613073758214576454424518200011495947168237687046544348127294967686872017624482630538080427479160225003201291627574042118566652234906054098849136477864467626426947868293843434085512692592226857711398692150251911411236732014896179436926327171164812971020691206407415666428185401670511568305130706112864368874058447819568972922443877061784255281062717648987787236899566177975849719843768064550819453180621380163413971304343785209213006601612216163783102064461315542838259698400912456346442781743134015130018132108019361445558191860065486191573202602937480162029569727871552798234157727898411196360645524480167607270570203460545452271548098488023536332576556643953818017776493290220256750456484513059552565373335731651517373995213593176579854717077103882449469735688415354051039692460337948518827904543300246823504593229531146190939353289762999458870109376550860745201831453186388888634590596547158696670428665147631650538409235314040624846207688252032948086740677498868839276863167074199624343504104321478800941633529765293333911697876803503402867740294379993058986396675213890399028039251975953447754060201804507642400943934220448219898116105501263592909248505103819557860271629400814414044842063657383279696866149863417059045341626077767821056217736145668824498020657982813274536025274795061414136896044622506713050184076461490631996873423134250379743116774529860371471386764876829605337224481561018913114727848037190765402636596589174564646215884086547924221339208957016890490832917361138468534133514854451585198173493112070970702419802221632626625325661033532517643622357727700654626284890354994902052215829819374910775904365886893637019301764229905999382910529307640616932319456629067409181168010767113533555692109474168534653646903923688303188368486343778869049206159766568854195026416126366696065229665791989311134123896104088936716809651654662193749465731324926834505777301040475265801920287992630163332016542319377611897508781741636085521862415128178255308114763813608372764437117357129251078076470822469120845714093967887860070816818163537656534243194182990212157227728574126119571625321336997643117827203472227701826671246862234531063189570999030207685787624072464005801249658205301110525372497449247687003910616880101646228683197230289879359260519500274941685586634062264570685250493977336329822738760187056505800954486442461860545132843190328264513706586369619756039087275464980680806489500433070828420682745064389867598995750398421034169409293125865521559730257171970056094313953827117089217192043837112596636475499830123800544855049922066885770352525240589285580126934158600634746313088057330855431882579364705203778864492313686789257627548577708889748716463426904367449075124154491855210663696508601132955643738619697548213234003263543817236779622645698500074785717930359023330486055967646343346706518282944021275352638533002787782827048857449906580517771522448841173161983572455944482071706479671346166385946321831140851559676104436402387935285862242694290295875526794991552260644524277346166903128312567137246181955059453607593212115931875088159439840739147622620533914138861104108503917531455784814722633527450394863430083588658471656544952281612652649983708330402233987686082638305533467141166732211866066198588657849314984164663393728812185688726698895032964982588595871847107536498473451771818395577327983144996115908612002297648173619930787473759821331896972945434681816989015287967140221967124576298381963618982914566180266986193608243358643202395193178249077884646768211544381378914225127114635610673556778200223565881017765369987246034999725425421437155110548000390825477328975504932098266110129764214137097365153417310138244764935217606132131056236834463336839474904827478285254521334872775649766960954516031693958218973605241830601183740204153221983609806853038158140001874784062172501835570808845600821595608911635559784870614344805378701329459179095492926135447711726829558972741908068683732604558723189423407315324620815833808403783675977706366701359912215258017555804225222396872620554429607438852845675518132219766153548708866706197061312134538711000834916146332080872818302859232254908759980677103454157809709101558422783882715926007110770858734904808706969906167182227225246966925604239159558894891147035855101010168736877504773201756611401171072147400869559900684968121926633832954301146466848321093528304362811950154576968813190886855306871457374687209527003110149132742441823866293035706564418009656659455515156065747035798806014455205326036427894965973416266465334020881601692024855699811189807187657403534321462636091159453251219940337621230980423677164566489995288736495448423247908877536364455100466056640024874640051391100645397746346895592222465969336102291466718685199751247494584225194434878859063654997369408222274864993649754296078886694353881983803013250988461970986880475400523566473824325718770868503670503644962398937651627474311382015775372500140752146764240841273232720615561181154500626441779148110486627736066161795492259129979812962798618827375741031312349443655601640767535953569478008524261926744239831133273245014997170355081624869976656651576746312965506330555850528369333650159317914304542875606390862117398184343405966664674037998811628644489600918426107818824820682513657930384050128913447174646899852250986264608613882829893158753416179665430971151149401972851870025357694076326860204196322205021822872932557025192861432317832479290452468521143904334669730831258363060025822644515742621545125182399675596519174748921555349746528049082175164921642021503831967524316595881780368865077638873962574496222116613945088799163440433453317888353526151741577270786473713479273537355963861496096228076245089094550733242150674309648559372539379997574588091144483242275405010191174998867308988122785067763602177507786157970527275257139021592297155222424894150877759620349405867189744341151593136682899478596940055177513726242228934852901443473954846654973877813183653758004973308871777209193525610262138881897107657518922045850490591068374287664278970879210365819495449149092708915839966665252807748782299280129466130599758309915528406026637817909228642004886516985264909599314489575328141913858623484914374928196942426348807239328746002535821694455080526569252138341262708264113044588595925240614730866969271396502268506562620299464137994351274764077575352797696199549767402965044614865693716307282799296848112229627804801238448257206266099546024747789181934535531398892679338138049421668840842363509777643394780065134259866469498538593436383082323892375072456713073384938750709843771849728780478413323714830182508726390516257053660816061142189993299840640016708801201758868434104654521204234793584319092172264609427308541908844547134913328292118305706007490060405727833683350424675011278804316001032510022136275118310598881607674862067459264084050029422991853974240331706492357662701309559218122575442780800221340161713792308169211747329920300550314670430406338595046229450086833751637204120003862552985194095903145016899011982742954432934309865839666301644630056603605635340827275749395179404210818847389373859464284461224895327791903771054314307378439768742324902998497197202519959313374959401710838270387404702532047843208554925109628757290225717729495313309965548855361273521685684586635341142647567028861485429282192309340768753309847047158141186029277692694186100716697124527769229482119309124376199384974371696755781976631834819596120550870875548404265414110668178342283403140119517639244698980452813802799031434530615102133663735173258522900396369041568936928214343113751341720503387919332767794523150026317057319029410805839300306304309552193451434146145347129571254641182895622543356655343937064361596488874902155992688167372786990565170361044677774296192330589402968160667758512883738599570613297792685575511909542884375502941987404254729147530828775556182894245958922245835747107828934590239469753074744672339278093056816386059026762470799876733742029104598993076212951235847003818642422931197969474126353024214375084850129179740026630195409367793624591925124821259753177952637906002145812227109031022654918247025657584330897898040705901912226834404844247968914789105239214281374119182356131112966842232415874556273154796695674508048675721617393198240623128315878902137351647673431119871609550170485137085435797399090022851248151269854981234734330085921269849639011684716146634889879899312908555491783533249359928606201771680100817001134016978942525336767739480017773546304427308178876771444660029198165782458392153474771055125364041000350783162407014137747616535616411163191796030741122652100504632700046557364460485631002367774593893285544748774383581932947152550399007637509143171898585020350565914091794488606610928385720341637751272635906165756193873407466481507365307856856565489153883064574284719023397752711989685519216095529554594439971655474386087105612251491594492433083712523111128179790260427781852245827174016973553920228373862510870830210943688199574279838454157241568666868264407082835008242758314668463067633472198045807361947504809117035625558983919236791950606324478927419052535903372385379304383007503841607921510197521500523668487654857791384623215914802622808142846306202489616603209662387136873209139912889641555531314018168766039994166365338060554485767083050921299336509492519813551975484609572585674607238977140813559874838569096467516721374025010157418628976553179699967324918134764094484504071298707320009956792347624348541421580948607185260430270949436810956126207460344156785271277016883811108858001172032873164689099281261409195396706466785583918808567887161636108723479929510810600252572825953021814388345374395719566574212417009841561842041286468286650045107587020580827132591617916179209940654737783964410198144790853945314825258446556320129711832813184295099495863900977443344818578699424385438971955940498582942957808336689035458833857463045650662307723034365694608623472967540868502993285803936545511278280292498056307360051531884513149256248450331834153029631116469202643843295741448891907041626005353987994153995747251841556075902726630113039680911866023863165137636372604874285978067988703534305649682111330118288627890090459104123432032904624758248325838447632446345260356812342560398397950165274689086603514782968457720526448937696709120306726526710398408396928928473748445473727452331869123996224224137487267134104856392394381097089743990834892594394684286118870534794756329954607525745800243896614890856940606263404353336015118139441205895329471930798906157872264209188011159907033033868401416456989365296149781430940850503551931719932716151457204225067804066648906023230715678345337260069899458146235264205306493135865712322805577187067015583746883976145798727774856885182740544924553210712730152032839600451095267003636650384873630111637302858137298740372980403991852531856535941242479586224610713916448931003152999306591916783093311905373341954052445266432882986529748194068775282172746323780073648015447825571626134991037141714773420840222381395966579534257821965897587655286399676338107679148711801248342628726323984788203821546222952457201376568232083772627145604221038566513782099229613239198049931483689501420437743784524206420921665164225208502808729040480706309269788447102354553427261483829585557164801146137940982549072623738769705697014318719015186151571404708644382138094321471237655032161824579911548240142335234698913117583884449494706856184313257378264351741727350572514188544917877524501295807980134043295156819652499665586587132590523107028784492913023889517811187755092555017807044810058792695293122293734782581031059228797024527781826979993575798269039890612781192262088363276586122932708202331289360673475153617920573804320089986279181734106632335908322825068852411590748407744976303529976505884719384576077191832215594352046783507215514340027819803820254640537017569241314018972072564196806826218599707466118694487841912454670576698801811166558487938953586067668319556126352785425070745865481440981890606646723777377518616580941497742301688113068905985085658668141095889829440833691834717015095127198233867750229845361451868107673960164767276238022463949573498687162060308309411631689360246179045272546213696246357813639012172213612066703022968751034199417563002805209714027426283064193696026461567966020351436931048259215145835079468521908437984946317558616188844103863496537339988056821257437435929919396383604020949930463921461503168324910941976991259820739072694733790230600168361659464727892889383353347247620260143444197201906836539772094674854902056167438798824656698879838742516197587747346681999022117429585284032043988413693853948662738156213233996752175116227261878368077261659135664984101165672939733637077152174810742938625100063808636166722661583004516518479599385723197198697530344853841788562918349236306854354396889681748817356318290648537724186090618986635190811338668544579546390373592555895856478649164408049730878789172162652796240120968388018024165908644604551134873396536009623801130145124985082161200620147424039640589900326303690937414025140675679410058013220461923755583613508936247403785580172120775021333620943665508528732058791897000679240700740334408194079551763745958602632698694876317812686844203537584824643046121770824555973711219092975253822959193215375220376453462886023392770753601963823862264372350630859003894264122908310377303036116575398873872232135868025137577705901947606577206583665318704888665763677107547898301500310349579430564751947703596777969352662978806253490172031521564621304058687139516914023165500371654536881688686638918786280958230214368089499922751671506747310500511333283691206533243230697066385306301581268764574625466101116864720214005230085664773495457981554848176895654307707140286319260741559955620154875798743331237207125255201299608931958971137337166999027955542478099485936383174158100645572160760397055872331379832726033076864039522908432362457073648570487202119511841546777759957334416810377971855163918406365760492765862310058126773643766943883881045381803893018787733032446932987886990360197011635856142343696563229708738466320322822943749875961122515749143446509460962028546256914603108358650697625357707256052317652126205244047806956424406220540622267173214252134729837203505478397453062884380781611138407692288856337524101951093384757471805817874416031717319835597709218502143767554991468203016743759044531687702772842531737616252160320515259081356499282365683747301099241371030836203907839022920838719675542310663933313288980517552935615251845359846485629369396592480783188236901023356304385071600622974529359538004574040784860352293834863120164258126920181626535484258408479168754288977826519046416549641826070782634916904480789560163814187448331378497161300402782420260941092312728979147362489317819864483881428225359377882987072502488624756962740167975058058246783768430582638104441184140914066086562666860187045517539317629662585188460690422179210869367637747136940648624716307503508422072573270281677704670143338205941218469985489319105465611649805600170024078621006584238775013444902253549593135557437466128338666510873105210499014345863916253926649455963398483094630300127229450185695302370811725324517076108704217877129025072611809560312368046071233336270804057209917802000704258578203106851721515339062110821540952010598469799734184894492621199486318689478911695045761351483504617880912817753665269147646179611601259935370469698686209279143788297620287024241612708170551258511413033304218658827395975317722570914739237806877377085384319404960974624195414454127615166273588976279652190466831252326506362082991369705509591118559888041219559377519921156454682003139148963395453994447813571138600437572462077059763447177612774328010706559266286492722957854044313851061493783035477018510943064805204290369859098042166261979712107091525204426335359959242039060672133725518673019170064170959286720074605757109364036781485805198241638766455931202074821739120911254294234370166569838937672372191891918942439059651734413234106320543183063909027127300563741732572888736430413299560471309903757708970050635551125636151011490652815653900426288983594905886308849416695178179365217844169530017439527806797929964763355531130368160338143081404926089415954221470545457628855723811483941414320254143810609891414865480694811366411017719788712666600697535128185311891178681244172600936742802342335544192604105568507986755142793267587832406602782040205982865978847382413497083716444316821642298319914096017521553497108841264606147851989845234285581383620327751038605299689791108694127716892134164595631216677115238447466985377313376146096054654215861774731963281239323019742745982953848938065693155483564900365826723774844214050450404131575078329744786577452758801542151302499679975586360688337709778492912733259078192451708886323606146800930812210661133000851281196199609620076556914422161837003872731459327678091965993918757755146237501706641037769305671992992468595808625564262458271373016712433550792118532978634331219928297506133594680975341503675470597763126676089571856052511022877586524282731038159499572160303585945645864990163536872498050342128966830012052235723859366536350749843807691384781513383241856411269974470019391099130706403760638148479619465722351834400484484085923634619342921140496783803944439013474238278457834677697782659898370806405402449236316495222443002724496161434418246017500728546311745314606776032238096258204332602166086621791117794730185469182030757530042530733072293105740810733207325120486902998705505898564426133371651904831528531411305166432595447403729276048564197505013741187610445582510905073543327245313844111565088418351149263861126216549971695202040206913820530761717479993844475782207070077251658473159706254399676389633554062283747682273582476243207817543962313166150257584147475815107962306540768364008251501326315085425780652460359496797371439652244416831533861724051489933856851495525822535855884464723374744105204215036897411067028572440880579819308303874650860754142386738622950162098362182540753184393804949528268633074176706486424158152067420898908843871425895244984857278038964753647361519026294059604570178929160591803119581939128393464123362915111312045868800823884434561559508623637840721084579711308994538142805679652939385903340185348495507928307179767991914593758112640685929697299736588355671933633912443936737604421068953743114951725921017926412327856442554779604590787129498277670670823259797019744296075207546094744901893123645590587144239435313957762421116519477406287151407087056248043788567877843373218660003009023716900037697342812797513266977136095213672568981389008440079618431755607670128974599581274591618439684540398204892187277202310791488906231952330954562048915253001513946663385622624468582585009332177927142273035275035241293477504581774819065768841580378239248077007895575426863849571021875084421761977755047342828412933347321890964251651335534498945626622920286620242723973404974158668350783501166592109329946322673971794253460324166538285132160879743947000797353871884870586838564457590740376204745281329593834579265020362887946071777512232303216822157992476611097164624805369711892635690996393261996659890933902682773773758334510451201591425891468019858678817053089037546081959015720701450545765084184836208139693511674616497067420399677175890563367087783357234211520401507949909424110605438056122689661726225893865830939538043446332119221962804367581744767957405374931357079055854735567576829456115884112433031057889553592967190854391265708059195581795452784851485205658438852839433899030612206128601604565848314094668433833275163535588306265542553052518158993064551294271831972721256970715171034466784810511724744484922019931698366172554629468464651359505972835459062813333989218185059366781037311562650841900364377083883356028572562946270660326356419678001159592071050169963674390564871227473747535756639982708860193829920646831314984006056155041543230394053224498678363406061234806418743405068176868633795577898904861102373770192768833030794971666213790615808545327000334420767975538067404013851781385786234464986063562941615822167411665134028945528680940777365523878847138754506963226091457795056948989870815749830978692240035932930455340701920111591706568124324673275341757836060749323607992701833066706141735599286712443286584685224168228345707448800508456889896556555729956386223102351036620404178933726264003243340397442695484348997347353845733545913729097396167552404073116747052073589661071005375111623234977481492782073583537927910471461379896524965855321638657945009910760716768750822504611835432172065105440778416764694185153612994675113930679137818433465511272657965508046823651293613822966201706813080045505937039653225331572859691475172176228642176979360153851938803082420280828928428280980794436459730671361450702746411318807276015529386854430998598456723280430149671079160334839164367678204362131510718512046795030974013227707088648424301268410054596621022497807468557686433727313525312470725863725616028488542342281812250551195987587166723021455190138226647311375518911298205041687211578420617366685205052632474577032348605665213378550188633413388512693517513723349435095692332648012085263399304541188925641329087765903021138720530027748858477321855179838660272350370436709878802787480025519880773955996743358378025013393059536616691642510767688913302004071643585053046104061638296958604219194008007436683729219103133840492047071486402518421154185689410584218369795612040806756002237038926690176142225744747770126945875158325092928247813368432639493955042739679503052558286311866922575311647092731176664625462720329190393772103807920635577997695873327045013735615475351996153413348998625186152836544982671917514879556001499299782098410836730503425030351107057027941308778817614706766314206485526234754307206155064452763305575505584967344463320312819439261957772681517796951425526205987451064848237593447357371443783791146655029135369651180320222575644305224152100630714177961552436602305359548240573627675944885421568454369525477357259983326900477439230902710249785781562563361411114197203923152857444875852529209241557429558462702374819735904771041054523976970049040649658062905920955535282283547635559779936670358250253511484416449604634848514619695445566631171611951368824237897695790777096513106284266795628799381750606625175196941550009425392690423673095332611450247214724772391937189181191721481997372183471567167708783919542391510428482342722549530032990606436369175273131102737689600722100574855738026198894192232848735215735901307307830407040790732621027590087113523866605029788091265434312372420485904739227138769314183693524943147346915198513749458602888577029668928134415980305592913317950970352705899909455904371995368437891982008592147329240565712653587605266483243599540500812862770551256641636877137386080510595155429382486476540765543662997132155029315181767816868661153076682081260281442750504401264334814585288405432183292273136011463467814665783029797838128656140981005284467237305479506117084098932687171510237942872143095453763090424190332030009036362889125335084025652221712222768727663640260206351127568970950082595685614920600007865189749214097280977016419773379045195815169303826817839915423765373539196195700493383458290078117804271041790794535658892940287842448598878815068888761239499552385379569627077409543272949008239376484453481028335855330452121143254874263160264595805175383221248396606062488034774290359371192438715990647138644575251559104132789082120874984847413996995427710461820099160629530438834295079264536792403279694617694719085554573511640992855712466674675361940094697443925285027371421392696726591659734267149898206146178469139081094058634607957148615798445120927828558338299755785604177603061634671144760936601569913751961306488525796653367155641275047256134283836533913590130264516120041756347452656251555939483402494577672555534744347197256075723552278848514554839747947974057896426484096786324329799938768273408227671584125305721743361418329325731676097435207308025802681576368742240042232318604740773445304709894484358282092001588023635982392759157693693011952159607473526432108466846154419477109708712027594458411659627391562454895907706871914548186460250447856673909854230031096252346235940013374401224353669615367449921978808157080022261099904043047003409479253323508079111051229682442851447196410912660668713200255713539511431407779734838955640937876998901068990022649613231410994319055029506136271347233110312436030761268910699898881029905976744500995788873558338047366139112731388047368131469592088660682993269818863391924612218760827112465260225770849574349514605651519895083505211271487670097208010631365630315774606740848666765361496282333172389399968091693200131476070526560306344235056189850711765375874753066356564361565092133877136241392729448532914191062815622856974805890851414028055259502551810683567581897507684932419286085595029291431391494889963062041839686819792810385327973942363196359773822775634525803778657936555478420572311169824221801842516006231205894923217215098293693975075014903895368859617561075052547010640973916228485578010008362931933233327299180011764599346493741466279373569011159973309923451365367806626566115558793422182502147660850455970268295210188997440452779897494363525017070587134671111110435724438684935892800543445989300055087159044613909334710942423962009698985068918049403545440315550601596544134807845679540358338314075357539148666871268818897140545092299054072288889503942696870784824659170674882502716938917153549327491499915610959404433100817996822705801679591332023622863098147367959729765829132908461855661119049313539496452335349412202888462077129109486632305122916247004419612315469364948881902732757439409420574762487345920834202668366054954235699436080894798859447197825806846930241241631295223236113946054696546951368577838550015733877311190068555591635966752590747050435490633512947338587334037101844367861739773117693875794856402733880625743002977341297097532405922143689738461862436902366097844161810147163562461132590224682023174756143893541758718510396165693365502830110479960370852999312037135181590737317136250619341517952562339787468849369973711899698084591592671138475991591355612556372585761414676381198174765369553421752095515435558571373123756379465077243501077660006729998310601326560377998391058674247021968027260380942563304508605433621179737382035271488788885452575405154020554268931572355780686149631977906026808272274443408802416496417021320922526254694498680032849048557556027315974222537377686674411525228396212978486261908472717080649449087314752699045859850760713874658197256051924832042007476182563193803774581505079310197915296052950602496555850872504472871339731623546220872246771605043887239426287642282861073787249098688889040922336827732158755135611972971530691748107548747035225996019009847354593887104477767466714482073351056064870195131361983430992493015790363052137734023341193412467053723330107201225373305742478120010622562172069951715663618424358849775293560822395263975684761254533635192284336832737224821938841141415116721234193823286261851683105643187672647249455696102457553316105269769404942982932920798342862192680543364079205519410181340337175354027266217991985071160339268665978747994708432111258409558039638500245398182626960888029377463584856357665421756824691674092394933789821683152762474002477535780209768313776339234499021503297940722157872721714072727245869944426107063199169411264763631866077436917475353231434310206527774736800914223999796416612503005583397590365559202798742437412224819120621744642594570569557645622173935145726059398076872330814796101416388657867915465223766478925184273000762112488130913080539524489103573227038498225542417391300985722570135534533934168147661178275174963623709553877866285884549584524524449314354135231276494815041180843165268715930317977162297959232238663320940678034171417840822181389070772049363116227456295448296599807925489861965843240826716869645734660252072783417793475156131029711010239630852458184566797940188034995858492242020276694185326199885214289888962275288942561440830212894537214392405232184144994109014184976582788896146236350018739849571185303841487149668343771212567019872857103441735490425768472036772055822727050727119335337909761841679258347897841039736075568103654183766828985057174894921757271643549113076944782947147757983590218154804556164864033532209974223176690682131069735756022662412691200320204128533714857367917495399417904866988995631368043060762200978400965524340995133522653735166688295482824169190241391028566422195853419162223859247140788712424005430624079163778675025880075780082463742294692950428262749741134140410637062929126391439030510255631670189907333065093284873153848353621047876241866978466818654251171978914908773785989961751789713824425951453336890674214411812440026739891729471272579270537021017518046273959828593643633675190353509692330699777033707365930692012282147598296689305065367232258634341163360021389160933577259836791951946798727839330959496501233506838800556481609812532964588476512135236309926195958728315517254527152737648233128358841761445230543393772017671818239505573899837510122054098571204355161260541844608883478148115010937784442494504434319524265381828462495900534102263419590638829015339203805896995074967246599271329964002018270405579707098453132828217242835685497434849459959498579044152888892691818058685447801720264153717861294551690703226907900597629424792561897792623239162402134425148272896912515113710985185949404443909336328325099661663895708967920959827342209688636845448142881375093331619069062162028609315055759262726031981284600483030317637663250503600236483950686272675769132220013140872733786732142829882295663422341036073779193259154543486137742435424434225328612163160010876631400284244310649778186742330218422211242663988744552806865521202471614345285259018812799166889488778892495958671241883625580278000419105984569898651317372892605985395189198336219809913682184814996252620541216575968939331218672361593725567032509992985200771686025858800293470465252878548100015213477641237780960212886247005100637604161044549062001512664530689634201324324369213076245085953621633398241002427086397762836711575857004268946686155344920103918457939573663591889248166648111816815643387017058669207686474823420583506322320530994318311760562527085234019084294833226516399569099726628168997900438871167598287216459393246805067672537326021215956248815060191350346804136665222881309493040401652904473739213243567256071376215437189008402551281599794972899802088090040768173710616096251411843161216488483881344078133428988823196242508701429271124725248703901139757371940953896066700541978080630766707561589820597651640860287256209852665698253097190776588086870435213831063319489350880851393702745984779750540409026843178919093237926160593018012298744744114560329761754186463845763446203124817822543884895808818238469239308415720134388936187006354314298937358993271636769153869087090627412010289862129549310068781196540438480803817081210692910031902594650947369741983527857555162240674790649907223974450288373382754876072432520224340951487110179418304094378025675221908708691325191346302237722440911268117022852949664231809695901097048405419312963480385691995064561740297948913517704316760479979516784269023711483643762390043809077846145139097997792229309005205211434774174884209300378320656001914947047177778376788519703163902002592557069089687781208874557498206780532679303420457207006417522466043362243903059787764423427579905710929930418798432602770868579038240981015003054019978715592897888725384430423898516095266649445873578212442888344523174019128451482475961894137523083552208047132083821002994984890394398557847612644879567051952424445757615861823260822637597572611060060621646429024118529214275556003210125167463912828688741485046540896375247392467025550246701486500962446834357586453675905889881949244680115151070043793407799993874396518538781117819421683595753749159012206504781229162170011417079714695568201539064429640097291061043934704446209566287314895248439709850112804838979389221764810191569329042267665522965795377506627992813582051707435631650879758329856171337821506831807856859827758688234513424922717941424140376188595013474895720241526376814501780881545808186270289016966372702996202636414713930685984011677320190669258849311939629809920468482481999373988270374078103930148431680493130317175271035983096708217467842652192363460799943557346005034818285930591538497584055460449665263247860136980327174044853336037750310639381795987779466804312852065406679929781269871057048217104549391786580424429544831272559083040663718734023270232404799153286187383427590109633130033880242880687156618934711763482013889399531277204644877391145248968319527895294817808443536340489888592481136426888242743348925574654447281877479346076249441233412997480954320156304628494721719608996941944405442449777765205716083822594038610392839451211621787666598390183083239464764132897921956993127013482474637675582613546714086821934463303880307215719281935621486990705149068584263519257514860739445927102113495056317722136842976040159897790591992294330350328519983705108927202539812773873223995322613124117337861542486308733767258028390078101994221206775371334851192845255831250702460656579519409963575116790854301877949339361092407216393038787716141023600985175828285321592963718632074393963507089245501035761446002683646941976852561997622977891872843094111130248687629954216227241953693009088999940234057728160767924780717237089704797200741211865205692130418578676765207067442158166673120538298728884205182283576231624179728956653414817676729341196951839092581572809666179561414430348158769685677175841331528247932494673924749561602971624154332385749721302103045234625112410445570827458008264798850694446922235177426462839597318237700565484666911026550273435779701565062753361506660702738578019909260663449716824414937987225687940632695841850393996122053627646253573520292711552247359826435526225430132309884974973364213625812010197210395042327116458720908655205272908292235993978752935036448802639579066848132293106569199386302063168955639041782389158328146982656679469481611588712938848207989317140968579665667882049089376115959519287508833418770300648846543203317743411070489846945489953165177272688095502254264868916090445820852350785042582313853391007512414306799626013955925818982989309533760415355136311903620042700683739628600699646373923764081647989040628152698977070970651684719480336066297292529765140741105008156790080430137012764130962679293206003107846320620621368732052988077399626031316024177654210226622600447014652710066632980037725734962425845808553757151690477722160062149589642200075338861485990771854120552535546818268700179454391568873310395559517015074843689140760184889521469646891633481663634388158532597213574839952504934958277013309212242749348628947728523632682561779274413984975492593194545216668637432806345517212178102967326149723109517926950836925143873997350309111348772573013591360132113269620530740617890953712047847162309844514756289779763889638622668933626704959889294692934027575598141823183436737468070161942981489242546620093407286941868955462200989363599082192781174005342159188160186063195600191040260042672809273966212120067965406936448918723225593981026232059287725455134608334363553248216610944667783180208272490027306418481278350132602683569541171781407933541219813626063828122611548377932962125533967491417199005073270342631035080930687296854565725784338438693461232573008608095322684842649899281207152324590721549322510185550728915226293927106623274807281426385459798578326598656444651315029128323371798761658068119258348583940071431051834623138601141458415404270217521245546272761449130031826780773625026425875939042538183660026188088319434198147733255347415384552226659211262426933577432147886044669776372512482270302884392682131852145928592805866190392949021715479132796264621076945784838520821384772658052098685436561099340496081286647305429248583782785017417986275476753255812761952228473307113876021005816181878295463960446028798348494566988186900430132129367642219000312071452793083484140842482480929188272839049602114214550016020134775251640946508115833225031721326649341911557202220579180992499571218390754051176065825349965327714689153775841519907446825382342171022259385286039383845986671612620946297588442873233640724207273814379398215332836215777591693898291079030979015469373365552949687295495919215928387411199233392828158637144759055023502847679269243568825653801641661226658159854941840537514538529157030399280776723997072121423857469522318671769798799168959866904885116108879173405858041350959688590146558315114168476246748061211478762110947165270431906341780700921069965698879318244414244207513146427709861747746038579302885348518676613136477813388064101269958382577957889892858620554182454917147081979847812463850611561617712325297513771985515082983255771613717041960388410576382053937381103418148543887731820608183356235505022069317246779740477129678624436502835662197389807788162895105264219717776329989489683073927762092306442739335547349656667120747911544576493858004506230074993603863733312148874979718223004754121706831622661289592023088403467632311531863616009264681188997263050266308154507800978442585379033174887859464980782516046880762993189364555790037434897282781174646944082061788469330580696994077132777641858829394222822017925358804485839511548130103504377958852944018872713225785272444899234613856197111890301713500650854018211930623255475129263786166990018678204534834932231790706413625398050937765527584108043243846263173260408739605397144979753369591652508427414812374460616286674532214054254788566746744113609071377845230106748073574032694955330829010298626384866944786937977540678366294024810758227983208311210589722043951653738869235317437619663742505663232561107126718868784527121677013993675013255739933427978137957341998664976110852715714283132631244980562663010698558146483678232829403339402671750932386923567106376389413307699345199544484294595606957888534130167465373959195343622001970253396885994242562623592886260970139485868942810820067614662492085617794682989041183879980224722810978547294742409608461723184736797092129050078293951782106384483872788351586221714931832295560083186652360525491250428320340912902373362700475095336244268883796368437411959886603630149597642449374525416235605406896036333299616386449348015447401617123403978539019121124466569974941225255308563761392114747654510595574119428989143044141357691117251000022932503539181379980595888763395614917277987445668962232312349517045914989075508759811254865140662756432162813683389603320202657859807208984729305378160528937719940485545906189225591945953473819246981807635341779442044121982032958725306826754550430738700500504413648317209857099725073782349668707511622164872447535253921186522124234096769686331890560019230813261449421353340125399644721517646136598256284396153120900802258707843082504448625286714614350655810243625958774276574147606911766136150773324499994382249701976042851319340622812640772532594524300334790688158968783332975240531202102992283411669544987585890887099907417807255667482589394016672583813571929135506237148470217403225645594781641575363237807324195582932753971135753502391509443161783651138783884124281042748861180081497839323107830135426099843989816267206112024357228014871938539685435721559957883563052289788512833330492322602076516528193153365079772041238020525936407918255073459052146759932638217764583815904789012238493590394345133979371566000468746148200253682698038675970310219708759043258142900057683912894868511970960020538550566371682590654856242213369791233166755302520603739959190042126245199389990167191420995320688436960704184365121053046934867864301434321115901793310288805201494819800176040352054830549112679674247041371483785086917821665559095452185384624262827325895540350495128834679351222266789931014829392253370839565269664736930245280429225849679964975647796745937904505662004815374563310543330538604838641413803590750337085023834865305702142593151325440331246480888453795209621595394630688003070646539178148945970976740907323091167191633410008901048051877229119738061420899669142719023440513133791009294015115595748957566680842414117719427139076986844291091159277486997498692847511833308491795369777739128319768167129893906217279212316327918099086160603494993645371046046431953371167188001562765111235604762739939508083559102084525196882610405843383558465668314488705039634409049017443080502037600016232649512476040127881819411367015251214446570046712494785091763129562094573448699987507718855622272074145047998808103771049755294540929330125414173968638867139765442890634070600022770783017219119011623404239898602828958375089686143573915010024132278400503831034703978067667675010083404979670508019152575796085405951975646095661398962407967516683836078576455109776296431236660409372143031869572613628871627863038919490624357673773660098340595095738754780246792984176005640863139361696011104839466131689514727257598421332058413855464942007135805504095241080460046313829929762003101435634108676515607722092416444888138518656093662270551376196269331092792259316713115475567194171423183138374451766446055380961317842436553786966308216540805633963611276001477424560510791032904403369740774414294011189696627070570977408183741483498797247357586792004274711153898972011709428075952859616783398731513962950843869410686801142440256595489745508722774846711204769587417879832783556741656320479178296688386269677984893997824946869750248212054502630810994939081705655460664485698459278641906388951343486731895882665834121077426327720424052446960146063916508068471693647327649377782411864339659496919933868600163165279079607832237118860445457624169846023440783819755812617457795241756343929311838498009246503048287264953895851962318515299931842630097295477392534197535403218997003645920992378405751741783572048917793653002959396341756933512500548796321510823169015941870143695237678162311520833170120742927358830544597913664096014126322300078620532583619351507816876244829295452820752443881810078059621337529420045878406266938421743771441840579100606200586057561456343405207159439411022597775125089694437316777625766319112475764609931219292853475540265997079730190776541319034426899253450262568800542561463890986048791752943485967687790707903536707170058023040061024653139474029899868774204826438331961008050507802668354643891128309564281063946920906830176370766255064702217442384237258439723885708693866899363983076857481158560679299449561656550873546636454774617262058430795248718926806981010279309486402307523525802209890398226734471113912576571427547216269901399305418522974253535042864751426003403866260223176216762258825455957500239333846467760563933860518922967085879963664669795487243017981115802990727099432218806492221242676876651727546125825864058240319564860200925433698213529874857520661190199931530199679696878600703636455344303994853421122062090647593365053430252102171269018767858524779936480967241052850837459226489281417335910166542128403790451606727483972393912105511387008093101592615250513067838020253172862294778286181632478977894031281669386944364286268886904942310580215266433297179845348865669528266924633471650550974662462447681178042449491622739294957332811955929078379831147446907019931334782905972731923906009897434038738807347096232242347342385602207035497442884773528221259518186579959173716752343093516173644294179913290267099376562859042421767901399628671002065775191832996246662618251891334075636612132742141814326953826397570736830049775768028365921350636031452226442085496036629609209913001622266676228678010727113784889451613994891043021151448149219899752916546150264792953671309334214944453574008247965173041281818292126043152145280232103985459093856038240759066323025606481684279724805004662304121980448621217489927762288130993687427615071745143993696673749100126277051343296809950825022377521766382280185715256294051737228057495441108695437189325477583871979883055881603889898513172867513253165744354765907661859723292554872180974271808459586029053674040732493318402487005042987696274148174062549971308797029204068825813898997866801393136247212014282713395158174327968249271886594622103763971532763594396315281364465733242448545886265981435929442321666033238633623989825111935223113375467953037048909683534398391515580485456923246485571893177787686791640455334801666121799652112557224567588601961977772273033481527020129896085235509068333645230296817399999873614302787107458225964350947073508221528634821551139450414271666344152304909525139095956931529046417627686215789450268412132350338847932198304327072148882329118416452564184023936254484158563943372788400856152088215153461246716430069476770936748426447136638100688608550879049724962930557009278423989985414690373079131158395108621295980671748593302331763856085631187154029680427995926707162781825224307241287266929011910625115417953747816693136652851208089955588976401880817593670027416571246433134600356103586484139068556197808541120661727373360563198242564575995608510635749023825845215241024056697351457630525788330804176671985439194685193187476670022533868913796537453545715100202748773071644901323709944122669889372084018466731423014563753656886742255132043150113337481807319176619513233720759463778301677746845080470965180565759303910981578808382006446797528209869384143831992866384733954504911232422927623727041908795804033347932116233823753414929801147327216421839087966456939486003866112383504367051523208481158218849567912524900370368983640896090819532881179208886724988157711765208162928037088121791133152434716721445642799256651282685331577097166271373644407608616442319632387035336499215024314637949774609663114512228225868910935668351948581300825836974214051776478103389135668843741593088769686796243598626472665225363869927227340494293049879936713188010960321311750067131189028895256301403187869812123252193259330260177501602138587940547823212769769199403899646277955115881853679129414449358496483197359840594126130411791742572714489635343399642305407588630872233236082905747529047267358379955116050338168123031076303627537623704558564675618616307996814392238301818791068963491811616073762452538305818825503177899821473035868186051066241363857915006040312916956000919783551156787509444180899916994114309601013528064852420607165792421475644958582025511278822579822815891277151722445704824528970125200330961320439878725479356241980445776991441020868365506051963696891397463873242180896175349869699325615820928911325733067285737676344474262565802859271446005223047394249580064037030662898912268202637487521482248258162365418300357567368309485854427668548005405784145306193390494670323412550705052316176432511982505606261802117199284905060030786720780709425959292439881202257224654967972970610489868070436704043538900176391494329088565676801746909363822435212395630874665877820541242364817391550059976913051069533077795344323774387221301154627990173744170342573646021327059026831196627468329298333855816736303661076735473183808164304781220009872598484123695210580381990013076298280002481009534221144844725288891768358415866535859396883174487347593788824587903191642791238984697766563508180019733463278001146293963326313177754860147169785918935238016127123831969610444933990959189286897187312797124066777503622424540084508934867510181603684367742198377660874999946892220671328567620416427806157578111794558174081165853746753485107179878643568708193006722509526892094485518788772530620356535803925022521296296791195236708438477041051735734133455801673442173308589697899468882813497568342367060942568758338677954498821590362911077128809571258177842847548805758557379727006259835605543425938743928182812834119346610645881422226754832324374132073583670190225671233846835781566777610617671532880078854829836409313399664747959678322001094956317927922694841094777795460774040557348998045842892173614847952644494767817843876079734886493036241252218343378543743571732398321694794724516353070592223960062746331965698235770535788101127465813378567275339612231219948088883782180297250536210509673804759043954361473715253745146278348492909630123333711363888907396183860800624979433801851705535924209173769852319011145779866652327468576758246852892324277265165899190451646871898926567711321247988395896729578197213188632593090382548023620305148161321873541410420753331015230857849416941336804424134340613855672037186898575764797549539435593660015050514178978239004515195568047945150885493095186087282868754651620796102618543396491761228296138113329924656414863472986664798831406295381541655086425604842173834664257308012867663607317552356616960872251524128979110316594154731949824455789103146626374304905341842647897973407500431436885558197803631526973405828498279040047806090009449416299059934673906228135198325836802000791804204640428139974824330237206805677952349570385349082483356744766848628686716465694484244146305108672635915762151221990489722215413542233794831770763796215220375758222719993187206743379360385107460876005399307017573348607053842194460848813761564464224302641583967468680688603741815997302813325362983930042790425711390009852521429724370131971384292188464463006121049091741121608384522044534577218547532606335561163621630738987497247609123816780466347269327726655176307142104040990133284250912138114916330233508080833297264324334238928042234712999280814271328385644969412339056483896522155127642287131444399547505767805614430048688375671232179961726648805688910315310891201500994669690141776524976442074782669157965373639685280029896988028650706510787434903430385920724602832529241213044076972745490673003834998874018906094141750436489200501867061915514393113845183274790587121353773395028077177196833802412829565498113829643973031688568731973052512703109524149049906053410321043351274054594509798656101878597862724130914306437590345528709447242641447106800310673542282744076839981298397838630473945561926187962846640630329072784023285276147823390537368713996945363449873466251652246791926921356499572258801528658452029349778721035598598414733303529585680256127075347532322384182167536161683960646540590829633083874082117356813053057759335268660659020463041930347623787927848406658623397724181610203558540743618490934030413713686184008781940261558989630845961941220596535921161095713683070451531711835844039275129988743001256362705725336593320412028893617163140835675200297373206524274531670202752526881264645692023177629469928204616221554214613377615059247312683060299331581933468898981860695310241837349579128937669672731081329987042815145789648590901724818436462930041450294034825939495743387687334767260340922264901734454401938783243969186802389722569661093754140014095489540268607928489512473969993241291737890144842720101118755938293252103877963553095696258547141933508143198092336064985402525837400546087976551638010759444263099084642896173640772158317984387659087606577753565717988183229536465625981398189153415144199096836853900248480077679803214036120752534826114635799580586295447586849358786450811431452053637682530331788215842790182681307550543492597573953356008460000166333780705380643017521370113824871051554715006241156422751997280811164102159621706084326707698989649755343654750080739019012227563703705782342193503395926966400840832348306927224110409545910397628165083795419779991336360730685636335213690544490285463566740604059975696118785825252893847848144041667946621988653654633346893136921330342088765315526369165984548993090118629740856447521258081719998072785704203897522828335521006843166971640674460000341404082528575762900893021342533199767832267932470735374556818239809050117422673295852273496806832301270495282993501269984533795410679070456161805888880026000519622316011829152650916756525839378419210846380213874948788098285428653730179681916581576332211710478834511860381781160151429338536969331178391065424096876186301433340537534506024097266905475766141953394047129069568680565402101374359541237666170067512070817930175698443827435014436864008827466910211069317141448107334220840859853260209483208435861112420351505023462165934696610547582320748996441782323609162094288538987817482923805486328503865527253349230229506968363593841990795531688842965392496226389368739654543166549315050093824549412838798839122700985928253726952349989519986051895094812336188581634077790973760167987372319319954415840329864713148630762990060567550944969667333497443339399780545728128244874977950224256788378267024875986332682863451100109166336033633012242500999753758972052194880000588480648712373825409930354333067458864177372100416343718101380301111665553161457730973530013255148484248921934349673960173943849728289739085061432392958803522425496018590017266481547931265796635612480849740959503901523179392899935266145189330301595333634533279045075375810334808802808491027579439353816384856041154961203356149626756788757218989253914877876012749921350198128790203898778916418473217769166938756205617746330896715093336785514221303770296130160969660459084148764471799789596205679347841340812595448017703710237449486487084169727273237999888056214357574552085248222330432526039423387695675136660894143755471560211483792928626733967648886391758787103359391784174278644189963208063378312942736804375333425081907501506385081430928487218706191923182238780424164595640429878544357867052788829579494272756658199614142354820644438219319207619986137970791817382283310298319031853596945432334774478943600902097891429935335700899136062547195727227776166603987222728340884211664577556499939615698019899461739032585730056229468805296367331015650326313290971026452985060630290397932876142627256667492725522755815480440125429853757449585440814512729915439661225198736495697677496051687253983525297428449002410155965113732167587820616440708351525110038975997881101887658028192168536249070583381751972038364753363946116868339591654144491165289866602124134316228610760479269022844789151897100710963565632950165817295984594105035522611570631768838004754354622249460834975753532778819673331397535125750822267179783672788415782564202052580043979879916909224009832760549885050241698774143455680257364272086819830209877722380474756707341194181319136488577641723908142133496963687288590204892612932091217776827505564958381277920150865751098202873299643629908284552218554995920922899573327939839487212677614763765749256785025936644755887163151649884997451830504206467324501890433471461311933794699901540922211019476518019348755971885730587692449456880321420223174520131268147537711704586651514516677238267659980906863407233504721969931658106906513683290185466482806292096805524641437650205814998187539774594211396148536672506074421104726284789960696222179863195341646650963559846134122357737919131076910632217056645124345459870850062759037992574670151590097704105573067675108872786554235859351331976633785225937158126748807647171006231339080131041890920773325432768044328185258075703472807190956010640313514487786358181631435546107625144498315304535168192379614592725914540163462772288312851078880060847653353387249803053561742781176351577626975752635986650596974836915006357966125264771269809760314700327257711609409216681372614473544711477028910165951254283252154508590643276683475180829168593493518862752466269339022787257812890803619035696911373218608853985793252133603696596687447384773071994794283148877148017726538472853129384817388669067403046922745743394497251004201678551863330044457674511195225006558707371452911247635466513152960473109148739302869928115403808903738943370040134444245209283721816709663354161883006925659892298033779467365080574481017739462082380726753690950850802581871071181196935142753399270897224469735838880236234093738662798056591901932431678335362322915038607862404587973100975081322440240914287861994535008997303377032776576089051764127293887732911681060335073140926334607677891392553501582293750672248177427843471823438595036617787078293670296068173708277664813564503705776237401049938585901665447125678360766261485224019534751673947300117520714984457557852540303144356548014971704421211925400609814304260928934822924785584269412653040329546357185855713986788510636802867137849003586449567018337421838515500973716778080270191963289366413573489473341210173831177064510799101972823526801233231791321050340920349941027388723935051036592513392943272532865500462225274693448007059166759076271086300542529022516133389438798752207574642707094214439493251826245578604344693366710453056301110328338755837687590226391834994459485377364330559869949487013729833565063460332623926971953490808533844992515419191433862793586284716868524650107451194273530418280562644883399797159015656981260716163177865895596945645696802387461344912849873303976481287815338881380397886484538610383426485982378811794128693900883316949078874784570850181687438319684040770329767743030371854545668858488763508806613925564363662858487650886983084761042795148829673964007537543396122988697324385028721486834625732344742978689126054705990114584562609969235026634536476243535446399052809964302536824003032322863405416746807345870411232204169226004167640610367183710040062270960629323071339514586684826972945397615074169044509930710167971264115905972042141355577844777575536505948624411103162802769947953051093789625642811422175585755803982258423845140875313516815001270500049843449337011561612049688016024467710672376055270800984761942730254702000655863215120399100574736736114327471217425321759417574071255609587585809654954441837048370271020803142306644832712590657068109418481155810397857498442591466991293787694705194359757440307751330183148922761367980208675412979335481135469004303786148411041973897601357020571708882733617215002651728721398349192161836017072465956175925120493522201018423435155582564934519499488042465566491201951888429574415566915530983038946253403178255321829626841135103391887763850431667078543227968040735284531896614743443572572584884292387345061704702471215239927632940841933407199851801338280664366159980048871926667154437659853202888338020752572432402332731852752214372848458058317134536159614278770718099752916773612814695291466123342453854384036830756608036342846450053210745614867782350581005951461071718853230566459913259756378922672765668583049617739216538418552296585299615141154011660745294377534746477818178723261999724291183947538661147486278169022308100795844052776270026060770052454064289856740808363780755285422757157353437451156372278307615763784191813882955877564504095844771163715737884816918264289705241044143662413643552347843755800042514973295402015902476362573714101433034235285030885735263783346104949301404950115969721498496363125878455704460575442970673017489354502517093362618333108035240315196967941912083374708452139923259420941696716095563447331775982986073212545253317589751385266495707759071574434281702009562881011601118608364191011522101493961398470027976153796738012349003930551927633470671218255977734840619541205405520448139633734605943761678566420238888241333931263329617487906502948541795824366010459041649378736303629061281722512289622645384508638101782811016217862627396812620982604365367911550659760872468892188589721928218066842726666354101258142063832923112287150897948273495683536324426486624496748062250285340638400901312833583307584804984966706248639415878715513492379557340552579282192733377309552072150310215269668180329766335033592738846853232090043385185161139219734826527901597332581835045753056355916077881560367354413661540699190768983683817176471629862797013473251629610443443619646226008089534266910272351016177471134663458015795783534387822513052275088741904470311230209285788218261667311071619251459424252366218993860672245281198931939700960666138407694870862252138930995839841634311174328700282739999094110270388024318349125209738188522110224467974072707916319160031441389620643893684131164145642211665122625221110539982588211335176159567514155488621546729465029036841880121476984894832155116549604355892348130686629321910006620903081057282644842171232572602459443839753907677426637338660219591899524922653715605867113721423597828502240490314871842867701642010419268339884369501242575524646432458628808938769745044187701177960334157662502913925959230078947178165043309428504145216123720265301233269615267971733714624696795820933118896763859100055494345040053423204226124590440292847403985123224187837740762828629262688641211249177105829712685596139444232298374041180174006386169290796149368614960477098821695970309640994980741039404568386329817483177930474751526698776454421559064320309186696434142254480101104121907280939263031782468608791520751187158766527787786231104926437073739460017998721968265498715237600079841716129780997290777197842821421826626671685290187787126696894156943163853556445735980394252933012045573769247393128118430003112999590648851036430233380909695931808909387503476841765997457171455060038346394393037890205771286768249004141222503371314977159774859468054258666373743215291798980999553015625254855693146410912626220155291658166176377849715230174801369335200026068591053628784137386534442917651214546424318111638790537305488228139865028185477463250285318263061967538881807084044904543218536435687450728290797063735544591646971202966046598381261775624321515606134760197224563335269445319772401994676722619817826940088288301086398077317734394111750169017177939017146704629732469183651994415519162714302057582145663718386322078728205102785466273924172960732571717091064536762992057817387129008450559541617847245432977224903359094471094301881705809891033238437606667157161149272150796735196735762745134117827906583900740527479116575034202261151169444856186181622011361567636079156993785446744285750491027442442921885130131327517315241089925407496379475500995465271623007995016793823664385889891143818760589005552413522044365596204902279703049205983222029176322533411652757915425332522980755438383100600496146724649163835249345127429886756260274072848483420606251838015318644279252406192561732248170334657587592654378981346802172508827338711523133090909720079988053185979258928298562314016772090069798827877673857823826122653136015475274555626246472273075156628720307141203386524386767077686386140227273133487033332833629903334206800113090187328466153392974033769107190199090503498421334196556328719671025903920285508605425630175437437125972546714666436058492801681184729112942054945624190298209699986119644325155505809229415763940031620213655929881986394684086413422576863147209146940886792957833420700964043448040037172913649773383799177066082646334041423402304134564276073369566365208797135194720157176964904434982771611457781684888886270575935859462885371208493239836120877855606971663545479731618603385106735517518068819839864579049517820949862784042430829374432094161271752635161095383918411062679225847286190673788263557661152569357376256054519040178040022647081122272883867541309194723087312015813204764426406317158400849278365909212629407049779331250134139515683714489255882089610201009590678700526949276828894918780830139002276765727340975084387963709977802161465316999825604627514014081525537556309262145934370268604734941059129967420722185116955688908393982634614426494700974464177999336792292297295885721457813774524632048937944204232118384989499511294974777881894841124434303294209891192667926466957271274747206844864185117818345270030969343842823590661712795335002259683068115363953873021363856189492575121947032975451521065715224255894483350348304132319517911168949141512853874555976989348443364563754638317086527621193192936617532818801862473303091753042862443564486291628792673456126224845980285640374156571793801488047740501764381903063542621371995431495055245088719578163259689843693413776196740484486934869942299989426787753641101113661057634516280067288790360640182669029891893665461838738979255905555285654315602594883478549041028920211410191234904169323085127787791331165284455380710780269948221993472525812738534937183026999635225684776636294285778448922612179266355708930593656979627254232367841239377928395113423180891925114467460627027596187557314222205425620924275419211753824931069410141748407053830397939309858087421458959482965607624679248817012788382779711245909256023428513618653140063979811900572457687045747470915361802096981031971876954479624448339352964224697810973200894276328515647486876490684270388384540764439439722720221501789421184336942003579997256783255683631506894516085582213542606553484644385106476962891715209969631913289157913520871253592032607805012114014495194495257685037330540204819962476891410478240980425635004196439497179841263985965036126951729901461968446055663317728373874587067710441708949477051934529732099680408410328957144862774700866906992382528413626799868595745702185928028912930757247313638922628572623596896634416015703027003923199578547780236093494552642637798385799764418288230068465800449790526199244401783346908978145878988989472232674806789159751592000669389345153570814530232592105082713503871127342804612135537885605681651762892512900861336313120209007974369394585631291324053664561707070423254643424868282731982714366939521512172073926849868375875908637087743379978493829538542432284618778184291874818908192180049795910525167224488816172826423134419690294685633208313663718458530922891364714438664406948787394430686674657847673380628009228923874463147903389310509693457922222348527881982743194860370130996076431874428038622236407292589970856465878886648582506225391478835099722410949359314621858906564335084920725033258232641032363736978530002654941326882232954610667282498664383164593365942889893180565441454091001560725059658628778588788419514401270583324752080177338342235345989950897034214354403205123446364241418706158211392739752374621173183866677614264523286721078398516805986231287826248955270257156558996070641305812837433612369005745126625986938300105545378673167943449584637759629898178592793523763229521553995706908699554853714345400781971432411358005631609292616748059938311788395424354936450230710980499021587150318652158109495337749645786139758309066328446404944939101013845836731651405396461853752032541132944031325975842894806264226658275066622607121974028251891836445101974853455731560478311532266868252979958208864301535512420303303812096541113872535501103561932400417420292421482785491476797629537277106818040937606256057701389692011082511704291421531875220824622688115466669260639901270070790294383028549063080786367518390869039771045856370735903024394211520778676376393063572850961674404938402595518745309740129295536173591325063739461208900417207377097936117456081818958041649129495464009337354574220266881026252962937846294047449572286378556300971668749279704166531337751641225173631984842606608477761716364028035545784263134296045342612660101061392267500099790339552611057707493297980222921209859486562230519686380765380901299179393679047000717519020523291815603933078038654794487522927397836850577592928673036280678675690500833022066248172612593417743514451037777589415068061687915735470805673544358389986934405175871460855314591161672446565233223033148079287021393721736921456796767893347434917001521015733526145585522645751216027368187926868764782996299031676696784988527909792216178819324089384564005866704068260750311207007065180271599892405383993886202227298225142190724564884124484499776999989968960265848558891823860436781162806502315358897048260632382622799767896600069073588998581313332686383487587947970414686687651487444654549260154029126197903871935607469388060099603858947562683555678278679869450199512066343625502397618437153443161880766374146904443972699081664791438882144216370493391647387576722266709099600343805702799885485368968239419182558631007671849933883577972243221039933961503850962449087130410185396415409687157776566640000222667323478878009761583909329467460930999745982485740222131729906420434182656933785404849464829975480581173189757640637654047654495686830484963148959865103712966750527389676903966351561957812356415909306373516652701335236267565311569729568840507419960444072283621914550222482951147493550366217206826766758698201300310950185134452810827438479491557364713646181499990143389665647768756212088129541359479004125839704974592853783956687791734085567946924085523704869033734961251366604963337708218388110433041308705053750067195174777686585090780580731263414867694640266533430673872417926801216634916205535384383618992414239712268454075298241342793311413391302978358387696382122817143542384447962631216040572964395573689810559708296922011940867183021098874619004086866661396747017138424256597014554875583504262121671907917260569316490761202521344877409793056928074661554274234609344081880556961484420453362027007727886223413892678902646913857855847862384440776144322265785884859088346055533237207090657404740476234015486429068340248813570803057623437850706207635367885487558017903777977792765922177323867905716209720305567725260277449867215559541455248879973531166444127312757472906446335596412485246995731332212807136241423695082848725656137208642983842882323567941066639663637867461353774598266852208558883519465141106360623026872481078166163500091534670406709347571769918636517974614066090701221844680286492632163461846408395924397275112725497264183975724216887835082952652894410797287502499894802645531180299844878457597598405891023666946098082036346973472819913712423573336543001671831126314204282881205877380793164485592720958512070074705647691704647763372555070506603873142600929198797031417150686992594842482963002162855006039221851952782530671621500471197100692236897497236539113756690276981478646298831494852509228193007283752210961949473797961826012786670678514984822023575783562298045647265208920004322028239051523394770811392344252587779533760683798173047259088363028186099189820001227729302139011843884450875533019565193825937917382999725216518836284670707762765268665161164097414729989102788027449038171688928308833585030241949752322046217306780266048953305935569249556948701494335347466507620868840390449291350185711880151775426436381883336715069147640248236050669177576568470765441281477785249233808153157702219031424456005629912174624179366445627989123801077188728343474068709628472442761932153844964469037704122371315530539406700142343856549866413556888990774716515422414369821444682245371437394247458491886069954770063037013246324515077329007629225185802380626826091171355195791718207218377980024127734674803981873919687266455882867912618516195976754522649328487096105861088212143868145109528691713298906394114695545369393473187879932497199277403868587617387184936643277887381099503696772427957739870192852491771324212572599734438055010059617436011774551820713765918535940105477785417266135125273873755788030558971054724530412433517212847275373256657836908824342390420913336340540092419849542101413010495950771965755777227042948655571631661449294555311843846090036540852044255246465358311471066503195501542749215153803042976914477647082731488715734110061165616090433849185696935388451010376492200179798079433757035421974800169568104571409989588324398706101920493168450366103034168158688032245501857161560667928950807688626497613388975072585311106757320582478350942486638151564218246148328165387127653500309841505895722489367506992701151157073767423008629812719610839767610385396186852007896751380705342324660596854624697708182135410175588419825512682989204117361612366692755357399464011895551235318432200710621248880210585964842788398518086760084741294437466716899720810240719959148325043609003797180860186652828953231843231642542060765604858150647203412864834214545648177438398476827832071230452349566427454002760574266466238264550154806167207525362990839824036303099660704592350272572672966284974996035367652372639683576853345542386332978770326202656543956751429244818350731596933439972904818401565166874130805431349297421733268803067765129732062849167518419906580845061146427660199913128332304451674824077130881814505395027968634470441302216716600695288474427518582193330736611779255781306527999621106149975788302800255024717293474059980656250101695582288209710270864912367003176643908927537495683826024696902438102408550274404398728619122246827387026417787422090119867550763054089226030633106628597090109079766858503485013194190769860386747440647417814642881417468847144200735389493966111017807466939951570325631294573545743860707638065073123954195378055620378677010215362633320483945779572412709217618535594348208908533558490992259069052723174054672995886852054124325176574318555693645058725348663981784685775876441351295509447293247824542990478438905344720014370557137605242433650849940816625529304623928400071382523345192648597693067244955469635114842877509357107738275303178803463564044726889658342130243849711140588925246034345072449372478340607016282512247166940124384049691722746042464098549082217366214299164734688311252621283468764112993389695170024502660586351243790780554996027736773021760333498569086127321875972856050852092186650430109887018154749556207543069736594739559367033301145227540980778228773775017468335057638626030906660574147499035874540186584508210009747223351890247213044776891680789402961082335809022769826919585224694509571329009911506128789636305464617210973104638483194107175094189170648214113502738686803276505445907089144597308731450482322596133660472218816939077836900599092497537564218334397779198465032497023626942435211646451710918066009570588758472746863637041735670286034613523954734864278529141306818912878165839781981959626693401853101820433433950608069239678284258173662540184058745653933630329428806828483101115613623221574118882290854713633335413855377326047058229332549041606205455217559413406917860976663012488900622869688208042054381104061214476583040409515895219043937042481438972231072087927318947353170800963761695176424557841141109331629781349087761314478156208507761397405124408718555332142359814574983471561088437028659505711634446189738101493022284949505000090886851202138953163273620822148424777115124219356538201358430568117351780364841027142729013829155511344673941087084099388062425143698288411171232092225350181653251515571413234626108796322192890187436693536703655832089596716353841404388268385356433390185948220162749651271857959570883553729763558016692358538925307220868709305682606203998414568597844118087869409262670581126091890689038652918392323460291451396616420693018870772643818976613878987507109938916595699591504966637496258621673560083185731473118642230743148812898407087837476426968735456772736634301572701157622991710474944374129682318792570073115602368459752058771842084255156179428284418323366623121598494960802553171537791239020827766027354443551359114428908910724442394899489358165876236358071873038040780759596078614434980399143407175312099254014578025828306533252811213319152365444613639015347758073410673395296418659684647887979930116217283703069180363742480737473797513831251875486976730370175531928096536616023358357884213445225769499169736477159518345595349553991197304443304060028440185872269314028403218887519306974433122235673282314353357584981832042637337492082640073064776033857223216029915723386163259087161862663194458368833890637903562426045678500503268504661138191614837028348212225687167224113888192332854814418625485123338942123473339996066931215956185226661614560995906194785815381528914893025107601281412578858538172466527393998683058628049660848834257020623350065925872657866374606291915203870675458250620311877621930801320566728015523098941941301085285906648014607411995019096851132597085606742405130158401090999727280224682896522234787126108765055115171878790699689780315532256422153466055714127571809328738453961793181501422969000027072173342015275359837564061529206828588859247661749365707821547991396324814206456168896174207832233224914553302114208071403925294384329298915762214115070980589482603241483315376735227933422807746660824271832272280500893287546590059338766063395761407238901219298470133756313055553559919610496999579054897608486362756542243927737516030569376033796794455938506160045090343727221052643382389799901256140047601746470743755466186967745390306265605672360997122604158465637248307316019593613714659700543210644056699585787315863818532305660993671519337897826441546675569561081364030873500642709548733007988097623923950398875851953608727246627779180615172788131598129334913465779436777888754951740422603235818878315456333292605652562853089087382059436642916624404659894636473817116050402916494094591362890776996376840567140011181031426489845968798330997197697105855191825402777685808265496486515286349861030849890571516997983286837954960394798015058121268361511476723961814159379738856159196522834062356555147533750618594070072696600014039656862343682624798940253662210281644951346428811549133963851242868661743096503857070332196525965223196871383339997105369615544614369266068208058660558618068124453987964275362884872301139284078329916884895858929970455510021448361368557691360548607086648557267026884108838745245419609100949003409057827809872069479236795046907931460049143555052867963311725547802949457985246613064769689719891225977183989865538439640433933299227720349781208701338152570424281934373943297715881129438713671219763209669247473563513996263946190051888216453271788492984181296885427176230898251802046970869426435482770471555251338120952204570347779208711977041740596239941497447417302896026648300164603587683811988987320484265681526818425734458704375025179181209631732286003692372687690039736253074451318583530532611465980031996096462725957567718748484620734791499872993955031440539529895588260407093816089655928909732124794020318513164123801728702194914419597631266694688247864472584987482571333988808255258594356237724191011906801366727322201279892794435935377723770688048293376606777562720218015180016310063845890826914913622023791766640638733173095756001769831697831178866802016934630838849850414788807182740589107034025963422674900779835747032329429959530618089798684686663788223594376813072607172932087043107642311582665849427427326181254999289588397004986228672928229407884797295782811637972449032863583215645573167862410210724296811702136651437508539945377831384167625570030505476383903162357180179807184314688486006560989472104444060890191572643872218109398121071553724388045463987091870917140154733433839669882171071174004336681917344975135361363659480987412514123673486831906591469342449813014162705124700270157618392047093906351993689863752486402035219934294620922681104479839096987504961066155135763703490627962589590988702295847129783575602609650631296489868250683819108353256323192081465551589549739446292540858682541394912959807730075755852530111612157576016952907597071168779673901852164804798715960447570782543253297371590364487923144547602570828336701557876677232794020118976242906454814147688847287119309487563211415624880074223658973373883161182831442325506004936171078574693651229203571824156407412997784805252257276352551015186473565196752420630352201922633931061252723725769591125986807787950700113226038909614571107893618204017479131846160546135026721072077701827172036310838144898489695991627009911707320829501549399417670428378494523791568848847313476093635213691349059565529596565077528860854994016611986634422114377541142659594549913218670567793607550456481533628259951299222087410313880496130845498152937141257941914536694108979802709983124843752635102198191921924384740576218602111269691079627126513322692828959192581466214143303209031447105066035116788125501568836190214803700306307413313289045037696877297735709619908736425869306733325829615502047069848278102497955713954185958514410618828588227063448455771092413256721096080984728635312284226942664539506869356858539020732121173820155767761756174549121426485036298357945256176415306525885350321330874020034179167066752061172920848701806152984784397236470008113496989235475035058990141707980401925176989670271354576906527066777349166146866050583424493430846063843398193499744116096110567734664139996564814940414477080507453069285036908516713423524431220318316006248149946507411707952530802619951604474336805888823986113026313065927322817835985988133908609835087983148907141467980328963432488201674280462969195754604485774973499967691747416199077981477000479455933537284596596767921249208081702298362040750866561880107683575441724503113597015401596317370358746102855327551538736314302248380878240279965762702609640968244667718759976279343118100292944654787683570678942320641164236503530125763181452491846456990830769226478562080361919627349243891293634944426191123999750071679793518402040042231491928796610020771932653922887741029838366057738487897561599036915500191162381069216804565613879215747001313446304489256934444308078935347378546703603690906595055955482052622931253634951045886586745275198493780552725038778988402154307867089292204412592158517979148645710503793711785660201727468384152463797402455548414349773203644002937669631795398986698057956535260724290184528664011429760781433727425331618474736815320025618208926792371063959910589960585782885126293821771559733694591643366275213030343978217938837989381465633797217759864976465970146128457630344374241039263937582084063791570593469133426414312652821346499559044972602759244404209551099346267165983656571471991241266202455458811451476775403248044409125759936266116526883370780804578764508582489251795941886574645079227331492554960309403561389849939422825121778213225031065594212314064800349960445991318030641883392945626957473472248442989242886161397660187210472219958873718752536600348176137628512977929212798355531735658427330886700660612669768176711487804072371902137479208704494273039548187523095822080683517030127596960557009218658840750520466264636621834676709049411375852898338278050148686123246490635016252354657687916183806828380036179360661017136904036254764712541376819515745121570830143800738685325944270296951504406959221108658331725784283460104558029796082943750838676311806143965127333887619469414831724328075678655804313204167950645785069998135276494939176086064088775383915059631957099803764016101549477471601606630954019352396031103633189046151867746796523521998598205819586142309089979819492665831237534061339135581365379570789892203173015091906733984182674923876980561575577403370646729205913782367904423419874326749112925122170510640999760221700591707403813954865050426956719716743990061948521683293818301966717877711347741763333508081614521226031209253134547781131254856462281103955194358019320159591444471622227356907558457082080289332600717596246672136866929684045236536906468634380955003801744477385349243704516474791993797992522886470429418592337102017111535319257997924434871417026048834128513195285996237765851551404495623859901935061511062251029993403686888179530625076730773653604575186040792327026764853930894849704837853643707314502513429638203788456769663719604882861284358515071858700559962821383302001801354752401407141769319395589045329191368176749832785703160860312464371471532364380363756306619178674186998238568498861847479935130963035962940147297363360676592632923686349682304847034864922716324411545000799897058334927935090286805855432178826388359210032615118672331498630772071746992309607922862583597525934886836618510031559852285152465907473892463044155889450902663326867861763888454096504061368213540534639910781390450644276310697522504956393502795996910570676943650946401547526866129501032981496927458521679120025868516953804595791788030136218790560892137669815886076748500539057444687621412191426247260669222795763903857534105871137665049773708425346400106606483426136754685862933987360379698858648827111217112893192498902599482652474081235824952471383127879239824287167985235960289173249893565294186154436053448869590313934326654381468011344774671343319293918984863707122226216986858235284932605835730242996031282856590203611383587050914935562019986803757028115592887920412746240322967358283270138448663300670341174902122986813188251524654443568265192764436589185821142533156192195176557536920838336978857310971595522267498042884509177317820490336040896879780961504786542692083311290215756089885716379081391678528113838265127613677103819359799388649690882605619825139843418109038697462768496740019363823581859820654357135344677150498658246103772773739221701172744075757789723129132998207303682523144525743819984296442891846375659970271261487044014213705808985501920355450982678708700154106404757625645128183915832086794284275344533263306962702313732371130884010474436379277714396098299071020845007001076443962215701033808468944060064449290838099859230628456695327562450099798601645230952849730376060367081504684721872345693676693684831804066650563249113591801019410278801657053395746277422710517372478935533354569985664551468244832749657286645937844543375556908979706983418728652752414173579394024043225703744592978124657258671920567313933255408111149019691503508208174596233964205680550482770039684234588798640975621618574574800078800649291062421592159208999268989096461543001155159332108859938856211657237139418407775829362397124906397959812542094752469170351125640849255527446986704384810317526906058456799593053541111436065258081088998259744358339170270549323086433206564198535067466060661753377018175518234124790675740013057806765969427625006232113227073848649128968511012434030452608410266342862473857505972478989040532711467778416444661404396287455381278712904411058703971728172685823859438411045877795670188594334284176821646428170519922701159272854359817985682726310829875945644262197297325570154935802707398373228714480008857732386741394006381332032116980546734182396742394522059876079387805546750450576295372950957262310133427731562924154060029497960154312677151466585606214168057457257152210436852811728021059725843701617935053459176220343525417164700699124112121721254518730748127686924246067839562576798919726591802442836705132612623902658155319459156226542060071749407487520694101799671477890019249036699334846436083507874595737615982288592527022839961747257546018447300106420234792315549814474159404640275103972785629139840916897735777862283555086422174219165613190244958379307785495945286678530231740560536094565914270534678828067831914320807413716859980402192278369189845503569011380192434777495000516180978397789485383222351426778029908713292387193417744726125047128376920793085918837395155447728915133834828841401034835248651625076887222814428478219554899405298549330863623809088561631461539443487045324153196201061534319991099878529034876745282407552757270506778499103973005939381609996296402732232804672746050405950970725993396113307295287073581658759236162442769424393718766297674116304485891479514143065414381945782288956663896825816128481093005348162021817398186038567910466764889855954133379520916796748943835870302850664026528468011332909169791154821461282433868826589054823448852192906130204302606983256399937783926889073961013410865924193607259319480782200974445475759786853458672673590429474176427726045572862401561632363555471772996177225310776748129928718904362412331674366318396978130106892131757860460459254675472225975836480766975225209794974874578236958556877451158441536633776465752942009424393835291473026950232651549885677785364012410876073683873944048962764707741164122460351196180878743946645228899154089064774801120663323868597617441336548302504713980079563285429597122679279000993355254468322113520121594327314291638967346348680158387067510828127883894616925214211076833992450190632914580768240717758666898848379579886441895952610329477306305734262117576953746686104839517487337484414985584662026640738376108324230726820964447252492785926972441513763235223123922094997626741513920690476467908125839729695367679678766405651403543124898650445233466715489919001978587753124103264571631689401859032778131508331982561123899843957519252603855839674484034209437110501024657778433576275307086624453062645593339618274460587853192103624412065440681119623431380519045606174453883154624334418874637833773442755574205686554360682111649882667923915562860143080687473756700218495764802475587122883040540861162757029142097905029174633739452575390518867590127383107568982960259478928443751890039334266262062526974487844527325724008265371621616819382025535332653009207278746217106923482682867490244207672120772255616494842445306471826671514218546586125599240418788431829751754588683090377564513590760105959139408850117993554667370963218859620655307692537843351505872987082981738528516346243242671200473737088457468995707541523315579030778479065011655474933785899206518835715335478169471608468033232769012734131530873047535438127268024568014713748174177836734208714852595053354171769293520997132790209814041622305134321610980719381609642499860674960309461321888287450276927216675405918144436895357044775377002798117908653841508008158418029505724250895253098174952799824261103939779291089294662039184886118364574631538340321617522916740394445709751731577847160515684994604512840872352808066845340731320379595769739968470424679593031392327862168749075853019465974397611182146491403875340124949960725540213419982049000797093769568772752971111744970615095709274210976584879819412119457239289944402316200071251030650947605020602226726048586706875672096893277988251691736940737123995751386930148766210882814112504770076192807893845084310924635155933273502321227042775113823302616576164169731970453742015862541818030434252691360848112068397494067694313733693487359085910561456070002664595873286049416097977518549831481091199545159060588495503151941383603223846567279538492689405938270239030092355155489562795010293534219137986734734707183168798087778470858883157406176854972015569011713423612629167682729354055831484316346504897681418480263041080701810098623171638317672967392310093151977858548807503250512138196209747562587558513089977397887641939131404831003137831148389767174299983240804345742025297826536614407085501992511013400679532881259743821058631551332153333022116928606065743793697300976745844614896268973442610523175136513651304090290622813642265667043776548964701790568698851231463445018486351184484557509332559448314770406547495237706143926580911863658343749879063314520606558351359891101746388559370750232198205975581190980650727859249965368183092034716909798399874888029346191115849348224241349902762245122630883361560921286956357193213208817368142964419413734553916454422993927383913448885634062729548308550596970642340179253461523899093880436727388971041647725444909936501184826457410313966424600399924666379663728349792106015299165285509255945926214403385972765925494430330918140842345135827716628359103084536034445055603723178509784745593981509231485725962661634912259517170608785823828032568578054200120598004212952597051323131618940510514070777173697101664757990010128341928017082971039220996814954393181162067191808449643593787905399346645094804863042468611595836245237176312785754896708994736491954384797134257702796469167863684327083268040540602447312907080991152987086451998311315666087397276552338298690049491928363656782261367172553799580086149690892829855922468529768582689936972408407999793316426549232323643712101707111429341656745470564277110895312533502458758958101121884613228394907542484490431818229906783823861304920785260859465242898648969907314117855834372016784912355802238351922505705053463277794065743632138563230356361991308093889333675862892136104025190139344994607943840028934234982308069421878787928788318209086165219847757867215276723531264742829124912349740549227041417314921343000116408471460035234311018401767324608165482345822656552227812909516812753266806898556093360907194974605036035212173333119894207477353744728294293553260424798391067720537952777046063757738832531844523234705932625173752262838108810308242340942348144400255070484075912006019083636110302038331630284675915917753803074429390064610298283772052210936486414496579859841013447454084672349084827853380492794335720498785137521462859778522287752242264105177769604880317991081004628577228304103018643799952628913897287437525480447811904231376979281287517882661924991376419513753379506828969140117877303677263418333826850070427103589245304120594454660562935386208560358758691807345756750658703449638146694558583039439535077847615625125370454076091959373693585658531204890127111811518519312300903629736811543539623845672303143354642507821869567061549105431559513084330665560257440025963681673996957788413884483469580621616995970675968574770398751761452590515277277704478497343219102459754992614077305651302112194400133553608352658903615805718039112264307273827464604414958956461257524690287753548940028665994503814077366403589975681519988766187230598234370315842436608825202930854996861840029757628982663491559359656524204252725067398441439614960614356967010012691962803156659422730477443597593277681974056413796053386758748896760302388305811887433385549822833812811431691755466445597193096778440518405238216568946450549811770683284983734491636860078366531011932180889953347463053048462246480316689240488152197887391517147710542418757369668766492745318368871634695876217109701832236946622358686568543100444768886134425431780668827252921617992103761690486250171921089477264451258617539644153303188275689238184152820752222649313338294958293048115821801560773172261553438134503337809737046718794533038114473614075233233812260041349883639026070114323063930287488981369352761826729085227066159025805803124296213295143329722415975686179258233967946824297827123484320934541455438575520041497329727104622537470889387424270311027453067502795349147766408395639191363214849928588802393113792309282627932870310702119662528445240623012674239844243643242635284491067729296120868384194335780341755027650211636050402108798050233202678348414099693797921387914570142715507050859509498852631531827464399611104285886734915398170243851485171713402449779371285055661440768509414223672389778279835520947487207311444877389763964277310749840083272167768294656917045670663478643631254602186230961037086770840915275472244813293284077513317538227722193834201394139810960752756412834371356601555428688881782792140255108221521068014969912921284762440251382218524803208106272541725976183465035526869559519363981052414676889897701245979054736783595069247833631030165761941315360216506317116797713696900987686209765286888730243236000040521441390723638844186392525782700993474124846693569487194603192588054852623205812752647543343011548340770920023238605178343504817647894792751308165139997511076006310818424770917748102587189007316728768144867273378883160324046660434829299248903365020077490134053014903932110512072877817857867938718513372194090672024037193660390171173281181729434402791011590664225538325200833392812063916620846571197622229679285327661373594069372290277645793419404818857120185783560756627150825099192610860007432395435341090559228056027601724984585795130784197623477258481020370148666783710679086826380253950816930467534926536867957867079312738596549402682777847351772316334373831850075727107060779208570883300683249966379130271332638305939171050564397379936564135422399737180718080439031853767661592883159494690248176098423805801683643639258126798336731796716258275154216677657307521766815909994894964684326880614728896387540902493021178311698157046621415559236034878245511021436307896490627831168773303574846763774234351463135014623216366714779535263707768121550342389311542844449934206457925101453649839363467202226558786808849874313882071218506997425292080425194453014756084762100889362622577779767326079979461619389117340754256084680108143448806930816185264194745221841507110088069230582180706031118394916011972490961407718199461185235464871138784151870373175957607963982102064863264926916854942796289886481527494691604035249824174355366401477136689924021800718594867216968696014413145335620214785841396162133142234362988342280020674905834870115421259010179770633371536162693521174571053033405388378670091708555192640786316829122243979447921754078754390224897573596614631255085626529120669660523448828026792671587949607819926203542376271036596189746694631057865495152543969675778198006722780483722949943802389465348893119312622043360289724942448700898153322121182239817518507174667951279973755270814998261645916235627357873082683140062168481744537902301281675743112787585653802139571843107563206710004084757272612603479056210791494322546027183789575169543965364691588020958176438491528537834199457181585910112980825532200582785622445718646172342297605783341832438309470896599752200018841481406789644068555025855715236333348907356345884158096709123562591482878064969093756217824435481621225091660094233907675450104929168146368718359499769431517984798267659110541760094284509302739929814613845209388711282822021653214505758428396732795275769511057414893686226769142471424456907680052731459669449751532522672278259208284028051182264546799792912485013674437494652780552635990654548795321663541540854180318272303545144097478000774285124785605186151172967809391673020759984748900615122611672638911563570889961343827592600932483133659579051902786007612181097588847320474220308227331178437957905664132230356036682812175767514598453504887534730075710125191365413168516530803812120517409927321649677073298617560923536233239469917578027072785143216217869825931638802948971019597832111035538465613030122484799089354391964755534786869175914836516426517793053965941284062890206729501860301430151644676551780226562787051511898489696266232658184094015498184083269297947201908149224186029953512766787651868201957058662329153473088607176229205183478081402707316706932045906674049120058416315662412059685159411784833830084810805814408604705206421481299893512265118702115238355760791222660026812401718685118773670870637443832785115539632018628710344721443032791306083450421819168923339087713721670051853149882016192903996535142193011014869269229601129358428290514835155129343554558645671528707888587646367844740059164609188509289525323132123974989267240045466292425349336605214972088588115704400961922321605705117879938803500073164980136100069996199091905898580028296848185797030480857204006244889733092046848823218134518058622857454751380877792838589636215216876721077455667018048651836205128723699229123338793788770596616744694923427504477140493269178838902779055867000327720929140311459850678504942500463445750436139120621140352524733362696393016922491527399661589315820806669018549280242976753838042293065611410305937487581406605988174115213515163209280680629687348497345509584348542876436746766634910737371302950933085592623126448372953964323940566998117353080412679441026898319034893334958939954505738587878279954954993282662147207492436840973765391181141820853697330951656205343124274904702138183522374745217450663025552278754124830401512512722249589192100841461091149089945134059358035239663072134124638019702661157281409729361778323631210534905189926568796795942968413862697772238895713197995143836933033893525039577993629599053721107438551015814710819185981006141095208724769285282796388340784461354554215321370651468649197074069219410950166485993326307846756974461279419343804436292856090692264630415797746457422784228792454334963613481995934413134766187058425093925019876309261469306009265084545241509605693778336946793248149285079289756107955326360613212419490469177499578835130108795370298858057936220201802552269894606980457472135712788831776586036695231775870730731855879498132552823105713313445917979021829301994928547090809348198534294654707926633313848185967988658531493273855052220061184315353275002183165342865830709049059771142287107329907152172508715795686152376144535545862254829749239334408618692913283539771556103602782819100204360650312776421595121181999521465579890076444267563493824127243468345284588617378959406868801892846933462696727694556183472615147226287759103216515021547922159699533566302477544406931983290093905005489952324955104172997263632253456911078642334582494486217647389863346451246459928266988810824819058445435628100559569842488593754051893831676847823411442219905909026087071795583983779464178553715170263851409405106610304737455536913981393593478466853564318259015293874616605882758529796468531150266835297245063123944754656330799627814861282349139733350768095517699260032570164234454925962820949167990517735617494019304872403001319105748823351376003207719828746330119656271398995334367110428442123060301958104804972507356101682779916943738654424907719539860922249511744979136987950834834596866379309931037695770826351061866981506986604796003254286298569703318878138173634501896515822462923175102510656183117455720277489424432212674404892095578581031022243149657102048784475273988673079756888095979862218090688890926218881234376861873082568395089291032718154138906237527606601379626006902114880740960143109172577742647078838968791690048225393068548096337348348162724607992282150020982918186713002729678091784515861259679422449887356800085222990991979586866090255532575668745450068543464728062323098972755952510893130571550878127498657046899594946749834113387998802202434512118843065718314912701795042203162439598457054472932194712849218056981200305135108949888038288240255991666905423261141462158582842324167126326856648306112872549757965951031128103311964689178306155246014387934992285921347475216622255064480187670683486692141314112222374409034593342232890300597231246067366006458044945168963711050793474969928987415334579946576623270543961005365330524525111692205752797995467789323100763843735216883422405320598191491528580724781529754332590348570876305134841874880147711025533180607116459148841679951292330085180744047591294452550845720171094433220559493855829486675443899765303983851205481106559191337606441268224593041897383961936729239005162648757253181390670247712619304297462373300260306909634165975098789006989637537431330791803572914773979049091530747599211121055491996331566087225660539431698808288394307496404439364042552869950303749933977337305256890456864017363353052505140569167678856015151942910325057792057830818510595322384614128749299605699686830099550649486434857142337141953953118491897566756824963842151919937824087876852579512917653085739175578608040292100933214180570002009410887396398473516863627937952675415702252435125471596162765204621345849626287493302937470335841043509318113036814098610401832683399939556959027613113199442593242093706948808897047482020211859780794611551956034750608125343804244242813929245919230814322543264946544610599347259387523749148381575847392523017156474762363340986645371938526971241008815431163994818685097833235539638970732171024933194809190576916269646851259766183104927592143599485233235495170732891587622398436374935618606985595920374335352221418374307262629140252071787870592022546924439383728525266959770940403817260099029070765171315121466513380454391377427746415524345567724010064966743547892668158578732497006560483970069670186101167900111184225017516374473729485380564892109324551264067088208965137314058430534951119207088995165607076423710840946125942850328504970289573395927529210218898050313631053649126416679731520149202618643752766211763567595011765637546644176137046874022683845469798735345906777168769724810136416685543243238179996562531795526154467236918505695262602482306380488502250643970849500013923939604148604820162033185530154361283319438383193147422794800163062085245458411134417730534431594562023333318446480142911933701907450512013295007027072696614270856771761464621714690990394224892042731680997839230693582958444515139018438934520428410501369919609451300448798459305488759230289030609784025889446462450810915172312102509095389613292371655900214206516942307043555932621905701296030537860860659980466162833805149090885498057693858596520734601864610011854505535651250279460896673260814316538892947798819449123252254371182451503343796528831742582066423951639669095571645946347395992076986634242078664872654091907075567529702911085666673377218147277047853917772344772273777196308150031239935968364299855661778806710214632213054111718970705112326345684621904656437787111554505282100967908739276606067395155339999260339475328356368962006334404449103631142965035574538924778155189821420455868030039695427876230481103808261828548113972923072511560295868265901465189386759109776339050091775755054761937487644883811776393486655413812130807293043350497129305014894465938802360282683425005590438287554909499508325865867004413404445016161714500187292195264317998268812487284787802781195535381326856392282676760047098251410857994419466517849854390567155112487225299477384780265043341523198518013963609165494926996866363036816219054733897609303251728239840332680747677017069583265095321781963168253325352740000352684258556427037547311056471004284337570248922680364643099336228051325370181178026538399813731902991558919460320546824102310316846540006359717166903397122393341067356561786974317774086777726333009444019200802538909862578956663608361206660137383612206360749589302668691661563000716560440117888865125570573150587882393806188532158471557488370146530008176700483559180213517726937044494472833345253408804595027279093080985463279784734394875999444637408185870510352777235593486353152027512574196756374193969051070770231275396371464358945769422608720302618072942977384016877530243378683300886633297569139229591504434497935921841114530879276762787378721243895988899416814455168548364843158599986877237128315097973586769830786456017984566936090426811324178051881051857373144937061396634395314658256166592590985374604056995381648053399273614708623532510317377281425473603355964065353025742028550627552828247939467434891812092403462730403904740072616265267947735496406786765861401204786619147329970143009283327476961407221944360275784010973416269642175663201212095483771598035937965914023533694728358338054343647093114479679765241265799376569795828719170096173822401361840291880174614497607041766790530560772389922732753164740891469330094958856552948186377319547395638900628525834454892236418654785857620451224395075647375652691221870142504244799580450133099082105863186891470848553371051069912722727514564033993463337453657350920530988164939456057635109840980222432390445878289880132458490500155108333583069240122010309674934180542997045596163672170042908235661947736549791389702182815537508391348494426081016389500459057897504435353368621496633860407009864876613278374187396624026506502605144000738869895583174800476874988342857404856513880213940923601515801435213143899762453228938095569716784453380125527336849759625444494120703215298775948750247077034955664217127787386000587289695311597855201606879317384612771065417646951045326578613972763253340514871813012272098004093788404271629139299155788340346889924378654065222486646222505158738553564651259066728218582323855310114028332067203607305674432782739650276944188625772435046071581456071228889018011854716389030529984668817784380977124414040152501648367525951391799230004715018588460798321513992358815425667821144679097532824781895957862813076450972108246555020966851539560905983266554237914293849699074986018278896969602040674734143013668011883788843139150134171352560658986564423288712435619016697192549535482894971239425190686335073529334516601663470365189810484887874014526603641201501225355332555669848417815971098329491895653775117393477746673631333750348326701108055741163507318792635544945686848226424535201766292496037829081599201003962305011491327024113480066277184546610860290844963832978427631898304625018499535252155130211361813517446775291510977510093580387266439669586886539666226995936983445952567618880933184562646500903909529049660893460154815325365148686477349545580614589796426887400402888895220977295008806391059251870983703089515051325342640354353285957887347266952678224268254672276388672660400461981435336194356442766368596692185706659010530976752358935099082357167499416653656915962516883629335658985912273006428993646796617805831177961586849165465100160452527762622502443228263919451130486288012975762751747457152179592302597445204647351689735203415842833072252547363667795107684871690889079800969619657964748718694054651248126648602390320850542650501501551698950863261817246319822115093207063389407743397795550831445099009159617527971569015861441436673734825536993045967191803283043474485453180567469552937953385251835595923899689514394042344462145114351996358307101018233428549652370960981967917940774915860293885692091431957457249412714155094012195552572095454957935789158667057858421336220762600718159017101822090485698242310767711041598668116986556265901200996283693357990911464392513997373059822448386533837493353782096461908701716439957556490458919382480570094262077631028699542435565991574945986043132401647642878193601122504892259646260342560367767728251846549165744937648653462211907069371098268392298272911613890830175257248705518050783862805403907797198962599378158280545349723757513011771577593510988387512450905290679215060304698161939369927724135491869989938532673173755672040955833169731626098222998385697834247752149665543924268451585983447001035474978343356206420450242545070856648946705497608118432532354010560817429249704819717761386448692576666345996129118000707542956772541785148422186310394149971812388436420241175805887520112380476406807394328241584588169828407602991505720355347505572998146684346532037499028860371521061124237502343059097158023191407250170085414409655730625657559116440862728560576597589971349986274698894609696472390996997880409382006941267566113829295784652095987121338981166627902673908648105337604933522477897219842817640293692080401464961142473629963351730481582039815859123133289243316090637388714197634279138596108882710342097409380980210417661258671369046113618047526193848856068721863446418064192917352568259757148919513965060203355981698418031812802091483439371505564972373789615127523688148898674157493574369828385976832972836393127083271250954648025370491289967907624445365537473054807476753338499830629713768535906750486469234102106903063665543632662153952696677425245095482934316022818600161238104189198332958362731982754875615003179705662428594901209197087973951128922582568163407047803367447080647331496697050961603813085602387655765615477113526333774002841373349426823537468039991719076027155079899572915360980323504266514875374718222864714217683683947628072062600055211266483949644089423026829468812342387559128056473048362479850787389533641445752926166428022326631949119598583479027568125916763425957091230102760906235991654603859606081315633134740390368753719418923147398072570011543838897378392803765554154935552914467217866817628873242719083404109858446516772942635297874228770169372163370216457747690059170571867602895135895982569096138869564793107512195934977765895410109099296430656738986852329088075684196924046269304764400111873541581633120970319001202173208921290674471836516363309533066095584050557042849215666384489408933494272816503666310527430250149007454664012347016454846605341752312858380961214906152969769193229273816910800819321623811918379787422608294877461946499895678594549328698456030298861155510090148354272723025870627354104232031775767300580041757589573711783414362381467178201282278233471304092968303890666717094128553125499436288575336556537308753890208095011838652525711187378522527795157756231287522181792976473893531333109802323726784056049560709115396263471095028871745842469398827070187525121518510721246444670288151017662206356168510971460317086293507857554598073539762961033204525370453510996778526611090419802824697957198792785574211501104386260986997595547530792387469122256224230337307708256838041458857876332217087164870262417687051393554634356850033355946182158230890363167237029720647300458844307743808854238537097025502728351168588651948206101012760594473839736207109631081392470564484360365816665693783064608896667715164216219349167707745036849669222279928391500657581749414306914767733568132683063173218748412881559053796854837948491300299574947233358399260172699506763166176723010149123781648671450156507790076652584894492313419046174640908101380774917691738889792293339448865000124912435028730240822206580576359989287058239242612214512784805103635623861522000726369865632334476759767318402480954423854634572804920475456806544365661794347660810433770176084100022778087339146332504332420384045267264081877318858421001153483448865789077408405828251224449389774086336992836469300245830005805855101535047993382076562085515707907276977084019729972066360113708568444422683643531719983873052466394866419445472163228361273376578609671922072226690979067326774499652338035900161849982761673201222719969937381738735426099366179447567486855269124654102143672902007243108257448897056197687724389314212016963767219275569033750715696050041371916453071896003479478289481618366145730314279284179900850936067836157476779523750003831869570206525145932028857722930360980432814275900637877066735857190679949386278264489928923584850095554011804072364976843896989990530169435508986968397399365462443834767138274530215493460339639449933719836168268835395457403847144031370233400003649237596577508342086028903980700653131939350167300280900487087171749119242444763750693950974738699142083896607229248503220915814479621801605948120796128633020694677187502206625493862755748828746789982193713025255848399734985444105497712083110420664828136111352795759189617947982689565424530280150225143394731451530707965668875629317698657572740357761542562616805255130874008223185721399659936385338516815997059483236680872669338947607332354697392301484298646830286874324170001988550395096859020787547519152819710251310014651027441543714425567021805939490544192414494429996149882100753316764756662349133164039795330559712326221460189634094358384387405089942708150391674129255042762908975777780059694935290826868568071909996333237517324212149434525833988024322673095631867287868600178124918784603626793139437476021148537743792651458355302502740778076915200032322496248152590297238131279579325146823791639899099070885033900424943290753963223615870932214360372134307731591917839162562236201115363875842106919141069290210437010731937611481641079042603191938275904279878518160605846040547391724648101413861682388978563741186277017171720068185850480537938143873450102997802940541630612000365348728842336724931280232953590136040853774555539165313244467437513122305494933643259917656637967273268579735161390974649771012229512596639040476450454598502598343409832691716300759882255718843484296170066450032291926266088746846396541341552062926926255118101526645386889314541790442975489094395626957656775506019546531658737793217404376222457838622458085362741359463269780758952741066563588627259949253716486067618727459049367534797587219042072696860921476280525064387890749483978693682649133736394730188756683850630954507473233487429544277936514870038043543538780941683458248889861443754560705872092353374002408777724051918934429373286216689180722600490998043973243896465453183147372958553621387839215600817647354331483443430109378000431976608491774702883300182863703321718405715617586572207942967705349209355679082675202872495795066147998622552795399991862719907094220595038690268663335553927438886047486943691151066966348738446199623433602696934167038058085216844015170810381638555914290641117999817471824621155419203451975166599245508511852396580393508473131751559785090163092919496970426482345866145937407323824909761873984977729595779567384964642223940783401716784500925201695294700718820491957434075054765854161270390500143399137807683670135690638731990131083704928402763046106005529342149160898636317919087692836158954808119711850476730056880279214270079893647425956912723113636749505433831999441118558740537141904967874267316301770775118794757950035212792273306226937327427002158480594069913942336980661698937706620488853706460740576088545228227257330222796195027315358525856371023271351131184382462246645214743572225176666926616792134567007909264667649269910548279319975232388667836439668306691660522907934727020038236980363970661724358756131670434430155274569029485468493894308722247679027845238239229395059705688472542732273619284464402965925911423315401078829267718101498217226972316734988459896978114461017400104663419015441575692876024842243728096976494241734198950208434588870142101177307356657596782890957108292111351307966852265464004737616284888360302642514751035998906155890003452125248418686985459704303174734805605961141447094183941914315681796742394284680781619234659955314658785102733846215173299713652335296671601662994934363835690625580777028163406625209204600357317890058481022246242688843936430900741772962487724721939551054252363272735789437456379047298693941257358022712329911679140680010175787021845597656438367982781671753055339710074269215667406085646457325723985616163645700613609719879056558638190428429946250486711499852659937991358739823687241793612171157246405067652009215832033083595435316878789621097441790656581486214066569242804674342391344898774797708240129924089436385630031178196896859823593854151347395267857032525508371314541635066492052210849206215603823496087945310935585879615032360224155356037189009206984651438954393767494997958136561381805905923151078815347895588119726438664279863703380958462291557853383657928088770762438892445574040104021263413354366513917707086285905528589859156520051204108405012313000144243209670096793659577232244565997470980010165595278917511947232670916295671812640876162492308793570001100148764446093879017686961814252459271124049335701677083050423946924943660928057593502041231699107973925369257888085044648167520972774448305120061740725829709568484574663105730717324059834855245465330647207519198294634270153862096196457832260740288693844818201459717486477626047789879653767268539121786912273904804861969605089702819211972443658824179147271989973945081906658336022167834361215667302034915686096648799856982297574176858656541229845590466581571945817411728121489348308887140558566227107839408965827761481797463835907901059953891011093585499347994888744485705315708992119612837784364818845076803722147972523533466726629779308937374228089702217583302412811868522862726718394644024472790016527143605159248086000316358800668805814477137616679509902730394711975395129866331320896240634771417503564839446243001696910747497651931421480951871631165821473259231593104254591650581295110169173599523100219325827497405510583849100528094684018987168671295062437210450145575098515338934554675559421951139539382209600024180534583638788946704712190295102490508011211797656802344507883965436487217402704025317174756369910247139472824663496371042661113637342355992707901666342261711700778789005888120512235920265071550172066521880588326292437072660705567505494758234322414214966873858000590631568829965072091471029659648477439653152724985044781106579643456835566790784306823608243861037504370781094620080470219256948812277440185299929959620328177749367690081801962124930693933566395456667116825349625265327823129358704325291506841417993153843780167479457406862297237588582681376146461239078157939568544427478443328379930559250112574937116503716259381848386277856146009397823743410122025994957678268571560743087629047105193611027262684079735512194984821392501684737980336887382397283793110395931593432647292405159075904003877426350623783087410537406004407904609484173535234858467025095860970974217632848124849603488042416614232714737522247711075476442824206441189651966854545600859075773499221688306591462842322229598027192121595231596076056719251921028939200389458783672716919548296299851426670528820701960168333705827687948306733869089681595716072808467633496100824536407460578399384927597932371327511412368288953207706779540943932484225481478989205653567777212366931627001187323897713880172189417527799814482497908194714882366207042818399316558326090982997753659772219838591568145023826244791321697040101716188299466826385603438044777467561277223209542792288397096915691705221977946241666579910086932472683884430117243733548423537123575384467561689744031431671298425901829101033142992078070331379958296479616283510408589260607311246738366549633466882219593141967181173040658704113660423296716507308181573302908308984607543976873973693685558627394784024865554042029780172361634858302641487244694908547752652788288675050427682404799837300524707491897697068499738275601612086736472664583874865962150326863112866078953819730890161062482889917104832098902960572679543056583582832203937780852888116202115967198573148237295668786690188789518606367442733595320727929781038691749790188186693778804127771721435509116660827510723946919396157073145562501734108084254000006768947549370944086692488109064725846501854160796487420870876591228902723011879915416572798998422159430387617979227564150717847495788979189157064240035216688321087072563927430675672131619734996935427879055944982980898517343236231179077384165650667669701545483842559457071473651419947304177244503443635012434755169198156044462793357676539615093554350880492399711504130937121475560309381357239222181036317047399500964859597451362642515844822234291640088094515712542725754649274670980119530572876956342935671561255403613681571098070548627879937466992295538483820109560784644733112380986966294148079871386088368137629075610206004383843926911536416827884698258604970153003952911392728517363346057590917127699669443785712935402678968031269478157807537166509398399371558232782686483182858972087184445832767384270749305013529527552630931786384287272665358524953761504076248697269764090045872114644230221841107556155418222441698819460451235597127988796114005330400444779068166841553660176241875384513060756218690856452897194828903162233870484162620483983580308172750106481459452045601569162652894186715383374737151838301305124130077533660144294066612541587579611163951847569358750923349695118478870220081280544856783599827002327403660011314561736066555732002771470530245138927375946196535850527863688796987357217882071638529555742359599264902459341953877592144763343896812377562318533852758223555434112744128571313038677883358193268413426066622432001560437884811236054553794778988212326268747416567185748042388813492428026876090937145470316501658078602499658834105252056523927682904278040505170503584289962077138245526870958084703784161002384044361027457204981156355343485974491603428989513695232247453476231040884156672244265000780472798751093397906326834201492164828153369952664728308349899207481238507306271381216590806400281865655648217383239349011110000432983038093191139085181932631105035200482985115263436149104440882930050210381420353263224574114750329668062136288420854375961302129293523231235187005660198580161111838109535786988085514439945249455513949796371784698981225541327959853009378939123976070614605443238529761902021971499981692067075849775847090584842084302978329322021144230603619830284710077117326550537092423458802544992258653138465833099895452871195504174928972350173071207310516822317395795891912633485545170440993917948455509370515986637854749569143249361719231477390943919592290115658702684462134559106584570081790108415473637547944424677134885936011289364769160579778657231857595179545738800326469839666168494371314761896739970213979399605651930878542365938369204279965749799174909126926629232135310499484289837277682945353855708879270191766704814349041026796636955009123593273891273277132314041578931813797745832463398776508773544200390894756070359991003510839397578359373991671524177903021624882084970469975692453440374099101811634976804901328568029992602107222351509573247104409129748126237553327611919656815404251695570092480230151908716113299778494190204262578614158593747384156231036489351584307116101749843955572767370902637452437941602858885709676856483187416608557779162419840769023055019065182080449319602054500473434032019311569650723368001748127356111328949502588492924011730841499157234958045711074072001125920320921086498047508585081514598650238098540124114179390769361613945584030502369769769592982381709678811489715382694896623130021886006154323474345696792150157276839368779872077054755890815404195009240496674454961561966732864196881289788585186396917176313024881252344439547060108387272228441132955821578070555434250453194448350542971031509719143643866865673836821975807741798632329725844917622878040601620533881648420196977616562314460933052583888151615045807760462045828159718803413332335306716437502769084926036461483744287463345112052666104943974148235148798376609779355862907376126728775790084012655662443432540368668345594771403690423875570762605024277834447742940684422280981910866729063363128854204112578373477349716410431735779739179735648147031575914669364854176121313329053882997121754495467504114890313341419111058507998023846422389523814445911433456830334325383738059132960102269590563202672454599178337897537053747727768296348224445605879358087130541551607434259394341982911682127898227923536736486315247825770368503054972714924566249087779867187266655693084824588388486256092570080904554485422402969198129663250710507634119918228899331631802526823899662984979506348462549637938308260055915582825514896195634794862785410197700528245863232403523668003345956367074293964369207974590453672206459852730664097705571740502464080139997444348459795803944744370143753699497110639653698121031401071245240129466213270286645186293598786833474120908427017953961760713073856968957319258806284976979963347763397865616187385185658793064493678779883287594644717970794418579791443547867237434969600475967101900792574917975344859037030941535348413783944204540090576740236163047561234427237467593526681043368514267724045572375939316516991169346373555632927697715331169854513085588132631315416925128289853286220623419589620815727126933897381776056809502369559727000196313466792680350337717219890536497723949808365846772922288619608705517627470904343234080817916427537182808346661413410999098464241660388412676793028002257863338219832019302488262575767119165536928840632691424603763020951775676746406869597169179408417079047863662863197127159850180700057736216857529273636743041458441195308641989315374232940202200453030020677379763636018292240780279686784695218668404281731156185905479597796205644023080610386491926364297989193732035423292793150624757646268323843946606758737647034801513555201657587197129963165357906762732097451690165812511859446579555225124960709715155791169236977154810894988743868734291259146585428345686952125941207674998627224768986073391637342117088898256269702767960293778369995292533843155548196748003459969952849530324611395192734826656992057722849701239252634127543271876538773482986749946183386148784502387655489774395515642873443286375779739827995929679035851929461458607729777436331739119912553800476898472918343411594053371391648522948243667734372596420922823966686257966284087929506588328493501665663098430038025095252940094396520962907310797624459044230899203165814701638463700175236355875616198752959309838931272612978172121313103733542864615112528539948236102729439729423084951117022831244178698833448253374955141058074840612499439798336737910330800721239899738860379434513986464909732269653803084531652454520827294395639854436314865439371176511707801288907028991776026607082098533706090532163697466634422020256894416231848050833325778821354684886288942041217306938814061958644848957678469651683905592666447229266467384716229875389364280379929551310440131262114686207591341779051892550713435938233318664883090634359943171225960764740880452861304904988991500303461477738807169365791662286267511197556356785725380830276626619871058956692295312105916380836169632409940890589560610648940689238701190611955567606066991982596498420169667342178640431979424389927697689250036052279105295982665437189512591565758458789861778770362924771001541235014877841377787047737685643808276959326636146984024510033788704231748947026942612355419785040623471431252256905739380121341936418441002156806244904150651642998470023898401255323250680876070267221056502460600127951661097563900458774687875331385466979151054477578028762869942164877835965271198322398664653840486359060937392616791395024719314563139143477785664683262469693923310881652541181003448673034630664681470105632192368158961639362484949352761799528921443329021504164982456110469972478562626450798094841045414548961930121869299369472723782405277036762739548212527788627348768518255268437309544862480099989279500188532049603939832898106307624492689550557781699540231414621008613847315078731015178059400527466466805406874125839649826871072875069247869496469559450618695776602652032411793196721230699378789815494008485345114687212607603527734117642586606041418323337138680291486912739555391449101337165683366971655726866948615706750099651064185098953635772417780005463263221901917521928676853891523684445069867562892709212387175453617900178698282699618886757556785844370387194485194950513262881187986582510384560524879825639793736496931978559104007449703361914299464351295799391155411681290817954228534508396557862897483561801530414808802093345921702412361391393144528166750305554602579844782950667124406779257468377847886465008517973938098313382732641162900638075985943803641870322613900396778517940702799997822602730913810267868591211011036077318967364910111423394740899476605474495136605622123292950643089689773356315574234875174044654664082383664501076763449625794133224684224717265501067307233926095691961823205077178243473355695472605293885012450161353308074968024010740212089104595023052277768577197237164335329389161382971215104184909041848431382931453635370038214819050252138553241412603871139291705672832251131383883800495827919736777756730504041144847368576511432253168831402507760257323888050387863897822596410948128198440624413989808559585340199930731377949866595219200999113495763612601262777947822761449366157645370579635605534519397235434511832381588738759713695413856241456061868669355356041848974190605076829700537663655198929969738498224538710668354706125157638749439492700703768764845669583544409721315373044481107842769765283629714911035509174327118277837348805040446100226705354320909102789428739541326963757296581989540985502122671967155527197129576702468536795901180821945832467243085932752612069580595827779173419176682986240486119869926404729934653663031392272475725357478458404411967502311429803219643868897794589799173778211499289746972427751327114242294249247714876862406676275840117672689934807495493310198582939941110218857524437980640581678252348729562319803291267829167472108137990876510974005675839499385933367873480396814710110013168683488268930864816025229872350285071673538067603520005724781690390409352520547270603397084531615400200389394591612223844090926365355710598309001444441846254354158746367573945807691787279651069911118651279732643623059109843623496302507753291652394429010546782037959699792263041437139669499316091070475769579569919059470433173699525718255153716069532571391715173473110392951779666909952630526599203201318608157068749649727494465123190310783967189753713634229910195446692729598579732965987793132072279599265219391519839585532479141333583861354064756131142868265556972115410228255559090102045000992773208839567095324105051002286375230883275711871570224933045725397196435734689194262170697539996194927767948474080909996944229604681233508400777841697851935416459575877847532137911996739373755072109083883887955040217965272895460903209073253663023242608382132898186829611027053992172030788537167242196524635806068145961978719605479142367386125174071676520558954341432993734934978057687556606982155262784524588044463991790442681659049041372373414743982242787957971543826329831088354344679980494430585521405452572737402707017322753266856127563684189971298556850865964148408430170191385414977472456246305919229331150913918799895565294148988990793582759420046518342653607267314873756228242906054261058807719602608422821513763622446075709698851162208710477628897957894312842141415841911356397909016777044619811972003852011377680490363542853619107194047262393219953279376776103173176582449962519064585801608791710871670103126756228189818821066823266697649131548192755526807153797668521427709253714641906215543466590094908939731108471821855999566048933946131804196191892874838578033831345598068019479390308888468649520696763970114060449217016768567230888269527956704036707072774615592885122688004972605722617605898943827382317555625795452255570544190762059647117830517751664294001720396308889985311894290029979765370910866390450964105358918205561891938068457282465843067965845148964072501659708845117327940710802450043084797349870069720262029405290596912925462232313678670905014169289302928085225141109938547384597279754557925060347697883946123342941257203821573899635507692881435164787997052119828524055178849468650009691313532321216440239227710771666627648113426109773071837748154161664458767820492232101582223743550853005029781729385970625710723429255948659574895028840261010264132928649477520811407745784990989760510761679356419325217880262431438378712528303970188238135641301371992662805725696211781507415907991617677443727283551285284175326735576079701576027086600968276633751205465739174096508816766646429969344897767915002477739655274581135636095286756340267081788487340656018737322427597781497944377195537260536994673789058054150236970507959654781348446965525926157992820028565605914568304785189383878005032413329902944783821803580589538829474276860822276057851671977590840898432427097103355670569169735526961134328147795742717343045440275977008601842023486540316178406310297655621686274279052959356231451287985550948759101776038959917727346969577762479898159728071151358670821137061065690453059016657007923886391371000386138805861861705004083469816317331170436883536182942141309748630958793644626085639067619812500643593572159044409171313299058044289080331751597659432721766206713873294276054341305013316121060239962604220976777382663928532423721612871333935265487637392649005734928609521011536310515034024360421154617036545511794911044024465608799956040973500674274190561780162188372625741834990639660643927781003458183359510228243266061526664563349126047791158563366270514237128471492401063015855089786712859294443830276432701875100259513077446581259300722714071974695687590982334684767696335022556582277773080726740654692608380829077136879784686991365475688265160253125429419786877686385894662195720026313431614994963469368368908858859595370154535744553807132139837771983214523648504523496697271177803499534270529695911244542791836229032944475733878884582949459391339895215118891420051433158552916939519175316723176856919767630682495954588112567212824303213190216153902380067816223041972428458744054725560398517513477204867227715845314153788958765460272081719659478464925105893414230398559634437426251559400551605441635732015424158269181020857401435058308355140970804328955976915733724309320416109670076137629906059153778513343390790431491160800366527256239771710190926267006962252092900656387732584885970232146526602204524534025259856952872762969526284847488672335583554789912459814569164293598254356999625978782176959010884714785227784525066808033200052149278883285611727625399136185672943754634990273542612603377129370873480980370161283165203319788206691172325734678356381822358245138972879330885260444127911923462482007290504637789782621810460057844124103358960069656960359926797921420974830655162685576690077289184103356228537996835932872127348219094701271246003302878031894445778773626183313674537577578354346230617789201908519031607808293046794579988562955727755165800913394168716071334948110480357865452065457073999843554041832035988898823888200859924902825831171702417158409391779130372605206136977930833528924322933435832639513005367060394886840715343809410503867128973561829471221785103510101147494753247343855090904482216309512463014849794321787113162413787558072562854880209931338594538396950201847405316525271130882033059211318694403248048372328588009179458191926021982585386182018343935981462170299850045198098643505207692440160921714219837346783900849513812780609426694405990779995229775534809209408815919967158573356902038936097652940188418904842124345479760379324827437556919115250874802992732935390575434270239680059858275059272144427976050991191340995255175831935860535308562860200298102068374163886703252824131500328477443437597103210273502893541637969285232865779569724707170497246840969249655301356296162836650725028110616631539510203715905257495478192771449316549466468558397582249613045942500126574613458788507117671454493282633923108836329793177502807589802405349986118220602850761350749222206678477015275637829707252185210025822269953355030010865882460494107193674292501293067148670852599091034919621069404844941098969258781916222240335657866113955883089109656745973896620791728531717046649524117345901282943081097281889519257306726084550837570697404240759747030779118147031941576241417469840921826519980777817907621584198723056148113059727807280022049702178051715692841346261033268037811294813570915768676294954409401500731015818895046015540824924800538235579005512268712131620586992911285679760550891284773251312996840885983841002996775775305666234589100250891445534303518293940562189457743254279623057039430413607874954850833830701213105363594047367190783645459684092802291825289987489934396440303365482558340305110204651595027656336157874066327896953015318583051516704581536366612354519035804804515130179457079712905250880997332579208364113286623393438123958255114070179633603499384934302272660187903998983375906628677748689219208691370757124201855050465203270712499905738884885809949001152941309177739300695930533444780723818261662362470213085143656710816926762619174580049966258909831490868434125778873100771854159771060072421576389019503821881423114852341439119489087089057563039548684970501406744991269316966734197548491570292774330601001277464970031852992725465631195517899883287839880452051336728170213363254128910427218798450776336333531859995923992921565368700925590674709486596865491830576335402814840121041060544820508571229946680706735880557153318692014079019784549159587728035197738656031501154526720037416437857844100932463279669313857556496738267244940887271881363105065954841457451022071033927407237784664296974113185631410952661087857599942730310648013222503888818441028853389038623049617134233260798986721870418529042274586839650229101338256301625021838481685118099693421041775596549035640816652998524151293153885238985175816381446200013425008439038148821830272964075681393824838719451525546051813138672968141653972631742031218012002006750255520350784380412174602046751626553563872098102628352198630239909002620190460988079955206814584654418041703395051087429167656911754149183063604801143530428514512508660441099896668517557131905090896531392381353252700692192681579883068142121483167304845734148508920719776329342194308889273683479491744579005517259179544423088558607776559750507240071214835024629686111723001251165068375029332426976498513092488196251581547165498480018572653196072699215252350110849684900219034064882475799453854857382815297533296597426856759264588579305443519871475145049733972900572061513738945530437261283510342097519374142087570166874776579359372437068500675394686560473741523965169082011720818680022238141637726744889660739985599859964079240708615526635170651338010631359028657301095948129402738785143579096735632330124713683975571304565444101172366478912525341267315137392845146566998096425976783744445388680987005853627238355938518054325461371521707975515981967157016526897876848102030893172049058336307706409275269166081901309897672339602651844985773541583237519929213390833128791314624469977237236624123582904829346835038001900004318157248455658576637085018534063340370888615833955223643886977296208451073401016032160712683458998645163274648281424028023006618779160764586678387349965410278701713510743636625194617570920290694845279648466684399242886478797190249047273311136451601026221226057941575935665590007020320703120718157402940891875126848998087578856961655455682835318322942227685825678370431920285064436172956335519602771144349513500391417210649346968756997036339261996986297723212141267790225720040012704115928651029025567239001475399926083776217719065229898404933377720557101355475703079681499178064992611365127348254412593878897997539536223470253084421528589143109564170860482052061834766965970151717841370024811053063344995212583728673322762215126568934525286582209625794776636176568749308857624458719036535778231789698842384637930807060477735589747480863750313937794824761151847968351042191450994802073659285926192871399070587056119059328745927125036524275611968515899134678853695836915860333568623224852975753609755308990008631099303253571113725834606491318359573189426167279892465010916683453853891538919605298542484669802181471641613993099464388328548284804222310843748719673341541004584084141184339385650048891771640473807529197404685651795466423469541508141027280064671790658036467402158440371474881145405018688246295859292956975593111315357173939039781222444916568383377023048928029120879101986917354072707339374626861505885843396948381430532689900513242581458432846429881264669539530392355531631135725462466408600727004357450311009773672710226018526716089975013242850949919816531063989656635723287504995776195094236502216315011326071930432654641062343117828037497067694945867217348270461734701799432803815053767197647178347787551052632455060972105479848594292543797231007957082402008245286553230318160002329727072984033516766712406503030740399907518931559204854433405786207790153217895780476518895971699779562258594632084682050015298429573405352037535354291515339933350231726871740281389350296116370874053089927699617155633587312573306715692289211226407025532576292014335952623115739312831118518563250337890513951383621432070550661291809806751986654113895188631709115621670423542469113997910478470606992358838224495649817611142299037192812941364094988400546236809390581555192024518004609832374584856573740019025370225931711087907345856811767921852479339941313713015356273817644152578365626250933953633691669409146577399606816777557316129562979822141194897060420196662578627972922342790331746929733436083778736947560220209186227825274569016334622196779003138382012328833971563125133755676584346301772351461050022525675096684303048370918994166541674132629140943788898636660253324081372567843043881866744044721996563246186983293943981945708350456833204652242361446802604397393688980631091646722547993243348678027288301693274284394536984096229022549735307330429616743946069722927010529411753084475692319637637902313001090642830010705512826588226506918623364317087705381102710322202641592288809549989365172160735346331288605888415505067891779823451016093103619016404280608292209325035117308467585098505127755819467362534333768454264815157185525041797709538788221284862351527766215114326740271451565282745073448248391169473543654516017916598163265396190248144244230372302802616346655773920182645765506955584937952347304158009345230406595128121480463621836278947081114927336642459093152304822733202106523873638547184488599422270623769532928776515625104016665150857314022395405947719761371677941178689213931646806147050806783816006109609908664736244490949783953809481273413058995183639126506493339248066137650959294159384076923644091168335712820070903361886521453908002123595980541016712035631908786024851900184222059100883995723520764721609160265048484012207643777993737308271072504630294341461784735819837064342481895090797527350046843609789193196933454262552229958018702569276358899593207052441539684925187579216951873880848459192177701598559054186764534223157854450870105926613302433365111997937737679087658244655797680550320855348028381193170386899082029450238499082143731662234445018808015192131731811485589910901996877773276694531474174906643870060918310091185095550955151093059552818424221790879770234867281900061845418554678532791007904434097254656380743136857587697160493272773378068310070887253443311466531416331431411161127496300517753766923782105119724413352737314759672094635828772324294627791509796121686051288442148550849069308282960319443898055299943239893091513138224656958635293502737940063321985426431167071477414651481742821183445336677954374652515420859955080351615225383436229840994690672840476951506387540939726768066882152478125326478296747762384712372438926131151653966765515025405407929400404575025147382630802531409322843186767285908722263521698318217406747309396007541865923551114958973813277080340958801271883376052948177350737225850847578565039655549671417223836612452825226740084477452977661355762252975857544985293488097690875825526271692987648469519585285806977866843286800239650575067456496395461862747051081787647300900087316141441773674659220176769021018254775739608293893970720863483369827689098349439820539183932747012227110272574586537802006372704344176068141331807289794663384926101382143279321223896602205074301312546336801468360648412514911095216169925539734114019471192027498604076927843346491170491932234310718695951707091342263870616586188692137109680780346314286080542856116740735930483247443891925213339122059029359648888340729199076078327644021703910277834073833328104320448194653611492942140853182878998627845364741175452293324029789248822503402068070523269922458225687083704308896907796481800956758163288496022561782505519460554959590542674491840262239673033221499315503770227057611214692769416944594266898727560456192836702043349262273353643418446447559508981288385959291034677905940929395816290754244146225037785549523048131217739109666354215426156108548818569017402022207467782434904075594696170301340268396655981085126042602924685485097310617736558329813637600421334018863586234596415168732979379653841734271574265958089529945540001477993114717608754732981851620412512084811551308271707323355268413257523861640887882823431720619890922588474338228855494180110098814085550448849440833692643928336833314292322883077411281911273493174772905497304289483054097118886896777198742213464337204318689817456610080247046854221763915379773501175856643280492307741328792424752027778442084525102091491725027577891829040161816742246963371477982836789401733927086565648015853644662207542525719970195362023177381987290629787002563616406259796350231415750452104389145372581795919395171184490334269975653622735189718111486858877503408809432318461556659606245586756062714244979490915426827108809534315624562845798365658137221822935135758632028836808131803123182966529544963520886888339897232757970778478369684845310511508320643474159855202071604100658051400266976722271590630512506143539863651560604280487168021416080403238352606381651064071197129272308025224016246703615848797690560788933344751738614833509543294843346363493233322403804298709464743537699772273956251336263327566173519010497350423985082588684603305516824498783543947801439638059845442328757240974661120785418596916448537041147737775044490090161913250036277214862244877417252910439386786612743868825571566752072846024521863103027769590645771186461820703416444605438353436589841710290505617463034431451216174620250152895146650842404290143906330187186324755031029076741300394397976195109419282872388422558589908632068276857273785786821666645889092132371904894480267199434215632222369440602726008663128117266595163547850177536035246074693184002854956548092607593294339298951425422097684384393565181111091718686984529276087280290684900689755902715644630186752628084080133481508304378767251021757429976842979502959709141573110436862863183982462556716191760249650223326768947623257202546696719199041988742734260653019817194795274778929875799639886579663278749580717614584369086824748755434675836366077290462463973380632980005841045838181085404629224628773422076632405247133807091430391532090292336169702411773304876147890701990938063538484580113171888866730612557227148300215967727543173499049583686255004201283578155330888290820669076116613086766283230581820999502940948237763387742128590467559765437698576165990733278554700780863154652436338469009723159415219271223560830037171770578139047169877373626596441015452037897116290823673324502301320189968640884649709101510305178162567356628628794028710414641874248737185615258794889788222968280739920679302334030084808958135047526484598519907397205188476298088630851651562500090679829729758488578420356600651664921415960628018432448663575438644949212715151345573246968067690871776179900773569186146607193685693003297415715115128691308578024792653434473034875121015640631232391705088217197778388018241328632087739965123542122398373438316952884983863045890839503025017078130636771222235062021768147746133989525887693249125776248063333579187342508796879060877031995955110649916920784158496747539519529492986255448785251350790239324987535312538172589764122076652153046006056156426613548649801028820943013140882088097945555251304492655903348815944124714414720722526844750528949974288251748145192240224148095881080539232479482679548811252902084753460448727362650118768162092251530413569923576040210011201383736713990094253260596375730965030818258994929972138082553210480103182882615930055253079271415768880363706954188530369027608490002371571770645805342140425355027277863751805191685975285455815925539164169485173136068967874844938484460216110779197795497745297037264098185315503444150001306973249086355090160485151382802364430386784320687672775069047630601433318198277168536010711817660067173569381107979162149818098318543607676779646424546597675095692067001248691832376473817158897629603524984610922519571632436359278637762152081041263789996493825373369160477465566453424840880925712196761455116133307603623341740361023759907229513844284269702626625028215006159162276382558256140628700351410787829282190684216837973140026171183700684514387637818356272544855079697377633419756186927508877424042451522340128982693007392843915174327951205861616166333139892616707465662703700278551034366907689099214339564942867411128372748271185778113354507304587880004484446175738653925157551810661152079763308489577261398897255475946026978770497610676123640497005810130135627137839376330917852684192074709457756317653057500809455063691119237824152841996111513159901978125095260032418676066218325405641356044515655282607988367223969560037434606184066807976914365136920597948759615051953707307603332604958886028747164842430582359061266761202506849364109390413650165400076754257358062321746856892662739508010317842963762136776945794753690817991631912933122293892150902735003628862414869225084489169772561076680464493774824022489444377315002442672549643979032606807167067010363273001349353492670346765167519049543950206399296725100112940598740791352696230888723282207930178609663764040080682943058509651238235432763267561748594534352592479236806745977108008385782908532052251551457236863190304756276578367918642236087866723694944273371763266421541247096558015472958090568379286424753493882732520645740230891593751225668456480952558042021596279136918927619473090756405652841103578629557283081801777816104230438233384609367106473400506504824397115508435138492812285659390801139606958301440382273319705277947360437412312681025528737176119532128206740976612905227060617650163499887776038957232240640484090420587528281741539960846683328204095448366055479973654490344970680889069976378629858901502754116644135080755379906635123586623137875356792468364203023179364923312213459985333164881563808966660966652161253741001878903313925074969593176269918375597383284997156693116811809431596194374336261978226025588837316956950487277507395013289158314433986883166990164487871045828044973031118085472911708397307027709324098225451005284561275558666082303845927270924710683988035120532362384094296891832400042951693153253077833640810816193530611618419281647045256934661050520322319300158236542687766669055814910851138222081234633674940761499987062351609728919706433549383527732316200796732816869074345444609167112805165203441561164352591459326010941085462326109570822826519842541347761322247428916711045107257529158112613740599215725239048582723642402949872265913604798333603855771888606099352966839343265322120330567495739083421835430766342810715618357941842742492549002324205239824386919058100546510090496975709219635328367309846032584764171274094925164425106507312410007552170719127220280575737502216681516187728450969893358688705031244042370986055776481110265195597850380455011496091467963615143273586579151672566808032330885015023642267558137740154649885427428082512706842880891873977504752879148785853304613770178650994197723482871286966709454339661944024134010079212542956463391091763460614782826332119069595606953951778574985716781297453223997180662869620317290735208416750847415573815706852713393823169487893792469756258376784544458244946772252833348751032877018306929980329533786902496733908441553480502579349120104986859773096537118122435654644614439977451830165770084242574322714347648838276153925119446307448549631918889023216506816479980990044102786638307956892884506977872038348388431411273865433802573996377720225739539109041526944591104510234302308102272047519387829386425695173037799492172218851964584305434453237912229803480490561274829059133466042579187566235975433554908227967182464133230112914633447827054958611523516493344658238700359765899802016816361505697285187547729505291626842124164878955007609745615245847299561557902316733818680259192746984720981571618338054697994601390174388137889502618508052351353141279847253282464173394535696675163126859080279542347224233144308811873942950303206525578551244135935950077514563736350208529991477710862127904324521770015248587265734942442649953752592289206384681423087283316555105322218704124863827765608688550357307587636844475096680817673513647821183763808704400891757154327559029091331479890096862760204692894931265569646121811230293948907059766347871784986443668854603948333043529338790250813499228827633270734849265916674460898315405459948965341174127613028098140357352122931579535830038830182292435936880710519559871142514918844646190871163200603103157256365871897943828503479779680615387374210520082661917519907813782184197940052067623620447077008365138194175338171692387004143383140602063526441273510948386957661227394505904844992787963919585921826609553773875684133324117825871556018816107140624124425915783410353583239768152002672964778566855841837593330336930960876618245582803267414058869900225317990051539255981260392216740375416633089235425683884745101474983127496709046259261491145933755837909807360002228654170159557016911256579008853340389214459919689096608566201111296268275114479535143954718081060576857273878621878310251327379546789663441084977492168731085120771071666912180769106342448996350545975799122106704001481496770983246947105787078477792581271294726659855570314740650818418231649408917192550532702251879795404271612198870997583040755420494705194103954100266817098074933409748311874254218640187960976937356590232368133294932885360006980865499894628504366092708492417734330215021480191284644811362993933317285519476712322471958572257116162019079162063636312187386573760302978731954204549939158083215328693517881824889145146902323195241031217874722260718712864154773089727773721660303411388688375774996280891425084489425560419153903938679778228833048865664791106424643590432992747359351515710978339628057491319679175821221052670205242569969184875488173893286714177850554257320846965769087168586739060667368269472775698462200066068646288400751078307470804700736900503388632217393251811360237861660495018168639358832803555079905246353757957605058699788225515974266279976227242713902012532701103300617068954181371838642215957255059210827473453211381053421797984028647829484525509712655978056033362844264699136371700944945203974212478501780407014463102809690973507320406304222604992445168559194509790027476028018822044441414454772510737390529167484365237990400279561029952816620601113279519809236342396801483222407182282676415622524386403256240869751204209849882717316577733280324687372053032776075406543931443007659790760775904893047933453903480304497224454150720868697369674263105799341191576930681035956433679288091447196177632518151866593492426396729942473458996607773828382790870483619769208178667478615987573176634097531172686026547182307970491356112852773660561899706542091232157184646109090673726735220914990418996214456064289847621007163557515918030229428156111395928387071707830082726410199768682740289151961777833683582233436171982456544546382163186317524097650441164546744797046758073820317513225245390560298079261251717974510358749795765461786120370464596015304751969369582467929146885767853121710391801325970023741952133368358770095465006108191275410666155653247380824710675126734140981057962147803867249148335102581647786790530158414977525928515233123714445282806616212608709068086145610833207951562869374068298471263448011089961343748787035537845071475202704169824282983877710686132536694862744841079483107510322044361493974978824960157784250871498129367846481385810866298002799460985977538006697732467841360823885128596140905408242487909146604703689584015123017287324248326309626547442163018831025783611073410655174891796707105637138071605101983470619810213650367943313836342875370329654210383081078236392471309986643301284971232205261514824964477067829507762919435801255419064719906506414023870724855436537862168902229969981328483927094411617433146425958980477546658781006238885501112786767457678490440029382566386915517603499501366924809959814290345908114856538410115403722589236671735544899284742857414351084728981567529962485182685977856325294712445701620987145462142351843391774525094494636475136482681538916359832845394476206473897380395689764959073997893035386755292002168463401050180461786742788007810823158702917598013175421990547336766182923583900804214929976048441357229113635058110715439552181024760435398517083563487561572946884700873808770259611336986289474812578805734109396907894122828462143511944844016030127998916477795728665187176820441732946317885274435090389014155469294855857468989311812592816274131790861149354879355361924724958008970314557327157961114944220398760506090148327089663639891472798212098129220619613482474960114401598115072180247298629254775794721055957839440832830552764701898276276683390186844977402950332082459598831638465363219446208221610885825655629743855107904302713646674967192622446056247198128430517698096333623485284173344782998631451283778378824671759823232096665808189322780691283158740031518668396737139330341615176351661439431072821761563842879119335615593630385082665989272224815115485403322015089896280028046341977381001880633998641390552158276531402952168679188836898636656835495280062591448222622937802116349977562652626637749538615904546570163495106590044361845509318460335944900466209526344585841119705282499880774227695825900029364313590126971329891225149646123402148258639229667313873203200173543901143720012220802763765801893378716982541311522134093719608105299979681835759437327706945962183678777880634846509374273627313800518437488065403593371800142315642053874121249263799062206464134512003248220359788077502017110077612191402832448537119028340113720442138007592715197402327191143415038951165393299673851875491478148574892947476505657575759081941721792399680629471831748806273530973171473004491657120861499711555357523904068040883436872511335155998609188371982184076843238036832285920931452674247718938425396411897233783659907290779048609169032843836030136915984433485687040581162171093623446781020057870432971879943712435965521703940283504149111614829796430354574809580660103707160673127380480740119544635392135091932532939013028821272876360872272206658475261217313376577955997078541125362887366867288282527019579951892123782120461395627813374634790601882824901797976227521633094166679090698398539632648675415361832096697334318498506426684185570720077350558777223501426438675762056237901481733964400361945788004505919180727249064121624163286895475159577358328648690395767382274667625517965950116328387874174934116002093102048794501850090930452942559423748828539182899648145681507283733971202515979819156871442681867823648587820400253820478429828613913748006169570443074135635256683610316235677206184061215220724843395615813827174101850750938344195428444843227337852395334492859329014337212911505049104058644552797216995999781979478017017343383394381112000550648715773853751494049084463589887541044435298392189368739069714806448535342218658163530891062316312118019092831531344112212620895045727474526710889604668160246687155845165176645660952544969367563149794063410434711372147564835908666425428846231093086153823331623833914063740502609174875781010219978980826262768630800786778775567108649797873120230986764360430942034364572573085171350819385048993300441577009844226672881146835809438536804510731534829868543632237180420512946321503129416544360358020045579022213812779749773511607876304201444021647025330491318478399332842590109020434810973236814879889882430952017015850496770162102078976562079870996000488995660485948606771905755444783437792397029241702196998045992963533698700807225552386815060758774784428097745610347654325878769049851936662268154668893630576147971440571319034847908023551647695011700929506713376578934010357168598506793651184597516214017270241921871086232834793430435379504278522546472100549531989574751145064900056352745783627225555786499997607077854754811528314418465908339136290757921678512536369125516018213216441447865061208910820646931592027235402213467172572960461437742397088660199503789240026460912316782862555005675295248438616029895759553059036626548981333176406333263567560469328291861962705249603967566095394702669927538492821209415070183464432735888133767073875136954190415503381103598831218386415326593984529641237025826102252521513977463884837390205061725303775386250138881854839625849014871147268182043101152604084505660281467601795789013211751894666001074822562821714505944522909796633417927610344931835123066362402323738765688532316569590079173692219816631221367998484376713087673037260472355398108398470132610480662127869577233778444530831560265006230746730081377462009010220649550578680732544965849003540985980807726659896856823994680523821777119494011788385283927946256619831564478178787089679855058035464839504670748870907258434713861031250236159733900882220222276087677598048184055643081611749586607036073349028126565528762243907545872496860422433883703832604812348888826881525302117094661549556405104647935020106547638631627526464622973729283811778627869600225673375542419711827808388542154540812958451344949710949441411762815916352561220245810488575343850543308679479726555367148963657985785616494788317514233166413358402352801371354848627088231172297779955328952342574431878028106373532075356082238782133552800521865138365085076138967040139677224233930065371556443447222550559913142300649572358260032589435437327703442608521921279259568981036462716661731340292910386548091778623572663585758766309530642681890237719866218755541222191268846007568279942135728299429945428162819391717874656662219366759103628853995567588894568488752781216950827905817900595371596829710640820411402033066433109159572797639476732641567871120266592849277223521393078540614506295028854758619580831360898824835866417766051294851736710761367020334095090983765238134462595963836274437346947404689537747280508972472289153649994199860875530012219541614441321426313312638733043832216442426503960966142513403284923646069908681868927463381003380540129308304917601870889038735799723937974592980076783042552083199074209135331555102741903123451378735074530308787384688083299585505361291798721360228220928552394572449423435861440571951060803303964979916929811838575923933581192429476199814966896334271173234973053173882329036927531316605624711496595021393987577480934229805075565629488365983852362430175789575345833671705912693115022546481082615698096193772928290024997451937623868035487409359010958800196974689199819048725017114552554674620351446507882328036578166955327912027492064644443087142852770293385764157075009378483974540755143512374430313803971482192377026635367346622071820557683058134097178298610534850080260187352418509478083436464755272385355083289619941312593149219433012464985827369493591538888367974687651725899231857493748544216280470128763332863867351059927627159257517561159670594409644993554443139757444692691201394870954833950768100902705664017089816489681962380130264498182618749015665259236758864730466095647829966619330533603270943988323366274354284332158118568739256146466223295922167471666710514055889525805275739268583135452521503782516857017138042443768689347084492434180498614263665260907386436525228701063737586674026183041623977018480134711665285463714388794190761483814861666590854890179555260477928057358333928780276203384963599473118046891008233228637776056527313786084677894237703843977630532924600990801473739356917703288742017741370945749018144744209023333766836340452292704897967398939235695799223262397050220793363566920264192441202818804506536589701708520656687951756438867891140753800278193406586801866149204560473815437251572461908957449115895171267100026196386162369905352843088107830989179477440039688754058684260897151341190156628399325335012224200874981045841657713097852827169160421319397457732278449219219056403904813684024171487170333610941908506161300560152599850956917240447251116753136810515045227003365852827662536079088075640317747066980612430564075089963022515393443589753496153957870278923834643741102696108308716104992493968803921886783407415472470118015601536629128021033886887652743135519447574635036269140321675841192539641393414776241818741049882512200249803777756825047257619369842610655907107019428331340973407933158825793278023566797998518636056077624629778746330664380634850997271380197086363793290308272792773669013267255764556496800076978042508659161257923407653394884917063744384696773762551861532286633240442874687780687597460539672552277284966200876603475986821708034441819070118404504793619661526410352875309400511882582132421795466694246183450093744123774757122177066200635739415611781969207703567326011758994714971372582047479174427585161169777596039351320968848014598060379224779404622414786760434192736044425689718603793941236856888229405067827479999700930415222218761151752179389002568919752027305991526671777389496387786301738373720038013730725531932237674701907537230222875351186274739032492884271303577022646812667843424086753006386252268739070524128229995319735906051415809348846157616496533476890051299679986542009152628685208045080034207874361902304605033123177658008308544956147304823754446757834412568253617184354081414035625642503177246605341683801590344537479608608351454936052100078060771730015904562849721032501227588956741013617022107995917616942582520141978637558166510450520332158261286333540477898837631962374566659129654139292797271281021326887726154361221967085608724629106730060084767265361050039103026564785251022541990906846916616690219483518752268847777939617173903178089709503996893564422177725565893826648340944722233374485941660226427663570625821870084634327479322096425825903372013058489342999810115649454237238172358262003220282379943139394582518156342939422335055684365471446339505937672312335192321412051682017206234598036095910685756573777347153126937433943948616675351341138411908959056387419028509041581007552286103948526197777780784187044240928396487876765694968915034354790282099833244040596498568920271415992328887653120617473491173897237242789585364883569153764529065710327581237283898116934317727340492857223362572669243041082298540068900115151722377609506796740471627440931459557566525520999726085251398786944075430278052963392692749704848981704501863177439373837381680656500335770448169476861042313903463973382770866440390247096819615427867927725041085418462402815526171234269299635859130188202232340924268743499143680574904694672415682519719171956509393170349897944357683757921815843941034348204239801611562318534273486577628751990973827783798530632079057358167259818678982561135093103954046876732376805842915064594166476857153523226553178956041941104604258802991675161093106795796856164853267388526995608071551465705657831563381077277644505574597365328925042671119712470896447347874754695444442207495672127841172564673098350905382204662132579346951946218938231229744019778922620388935569969079249563292739133308806736921853084889809163723441144780570251015318033730472392823290873473071916944137843603850842858485304396749250499305811607451987343008114735720974399063677085051517114173684074620700955246139877745357926594391982684037877100043838811110561082989228311420521156102551168219210115910346508774849289966310724810222476250844799641104295551053452184751295144222026750743359514236683281373380293879121521974687470334544071533337635871966223609650351049647099551031150678323942285609906002817749704611135180986784063684464809534069118550411427986392799189103352437470190149408044393274491129586248027544495642135797210827463550034965607593551080282364249716393006352555465499457948906940485993191984249612342948058386660755973714986003208532561841377716572729168967437665563115572584290011276350712629456524216358614228767271919323257100131038203625656068240689081223541298753191878985641085842909376157584875659909278221022603950445196850816468695723939870006813763494877439861161104867606613933750492349641312443528918882224260218020032513071753899955362470168496709162955797434965691804557028936408367032649264310354778647884572172256374591440599001748428922439277304593664009550755173133477610018092329230852785191996930251221937316046586151153583421104416433717451101811602214963900547241339300268014529458205953076793795510433128279659266122133620787395957459799963609960142642628657101054849636812256622914001626028207540670069118656357269900997177271498420850581744661696681988470198527215526740351537968451651719027109377404311101496303839183198672121140010465315638720871729460456076536425194806003605606205830172893028103610906036494359861725101326619835535716676893162514179166496802636826733758910136525957377650602401862107477805246735997491801666718421153656635938932564265753816457543853362638369098946208207443291592035729194429921262978375358910738378048200666168139491674620045204430259342428832994444912086142160324670536449434030168664671477182630530973708136790782023397144776950941387917859508718171238917811454876820387136558339080257841965630755957648698745204939182699812186402404728267389981317941396004364150452289849541033042999426027844585354945982787402449422295289862033588287813345550625463626752168692732275238083391222864707107152388550231287633336403520417211305853483270945457422368442164039315201349228964730901395277330675607815790926981479407448119676940858124715260591415360244086370787996381750962661160756350573341263402047216526013895355596490415180904341241922173381404148409572466870238811115028845357887207317685635504958922571972249276641059611990267690120417646562304518217179634303392592908987290939171057215960235577156808154584202369994836116728878685241239931781383210081579493525459103302701770233085700906218107502499792609096686700243814248843854675430625738535932043402788735546496597166557671249976234892837045960434320017963209444572283353820512525189341972700112437322461972866750672580170804000080800689938058646999602884529562724791710411748616030012341981598183298673481763158482297605389495220592523326905646044448416986206270672676134005831802581161612597804256304036174511667157839344614694649339806237317811795488711337262394688839971141493801068770478549279909674824838749768160758631428030890551427944605015342008905874003029486851843224645202465359166340354621551353470355291983990782107375430885568213874308949184855809113390331298612824396710082426132147227076032559558082591244626576934647344071544954527158947025317658589119578224956519440110225555273819160525852548193428633754021707728399399635677315774989679155020827646955355226867910399352710730741396121955377920665826199467922139989189085611232754143587753480303409485508339295248812881387542802386599385760858712947229509984956528050516833940966242630517272002009928072930033015670946171532823181425028081418814152017983843784882653280672723376278685135139149485274696994791190274470273524144296841393670093628704127964415803003651220738357905961231484058352328033274617484069750891520056341059145838374460957355480325629784363482295357459467198984175196649577853142796407384264155895033997581616818605172052199123523899175104099652219104055001591710430484990055591889406602223759464948325673813950478474728726651548736064503948254992936977983170211777943764223051652886823502259529078383458366272512507999387704589439079282634738644006891577081725710598774092109302143763477192908237147850204952582216071253977944234736659930753202340589214827353329388486422352242366753043544037374418092256143917923442652610509417937452478254225471705129082311524863603562155531304426139387171531334186185263504719343466249661440195339910503081490200083125138417252010383796561180103740008311013363136217552869197295642810208770346253645651377191586407362389447595762815036254942891662857017739740014867461252619985381733789286484261053549071098784547424977793155263398831467476819739339890957785828618945479968739143774579851333159257370677578964312094531522687518817697013060035888809625205665582042876801489169923937293188515388504826730680114799119613808286182875493008246790982459612253139987797919515846546036750526343066368851873571092663918119008654008319554433853505045595388770032087050047364367812162388217850090247598246568190865831934004704276651238875808227574173515911348048976457322662792189319469454086803266065688554232609581131620343603766345286084403662002141981171635240960220339114650249205677491618473271662625220791381299274408531748849941102845936793746074552897159780658607187024728878473688168324387378471898258791128705694538752911081963425868072429646708045498773550455095498200232132666104972336611003556204164447837308655018086284758238510653009944427266929759917984174374751951296416335324121951588508645934403594378936507549480981841035398699035932280077877369727165394061394202226372758620923896604423656910931729262073200787142677503848039727826001958257625451218781115340743705380394589358091496683403538667365968945099241697119455497479866288266716393216867665031618949132074405501262766769899802703139228742148837333008782866183582709826907091070177993089335170105829156121378288988514882891634842080979861073476394545661193284051228960844100018676708307699763194200866903953119046752694652523901835575968847349097737021107070196878842831471265347212666174799286276988271516945292722242860908965366591565547793630826727380764293914191480677658008744671063241327451064816931127246368183024915844442714487738200403115204625255897204989063141382093995184033376480306373393283487090102355987201259977724887579098532513835824594701780246486169736633115007430285088712629733383545798659401966595783785363532114099102420330819958980518961085757744543526903202447515125385963156879164249366166565408907214133667681023151235537754089164285076206963579904899180793678150704167041268418374722166735412024549449664030773934123173709215967263641287086151862364770823219174232369745554499283042834819936678952831802374171021862503755779468778958808466505813694527490889494363146265848748837766787448119625326052488238876773775129414482231859497087640030133507388763199641553532070690691001787345138382675686369531727562759156722939165398220522541724984928889568516065580537001501826679897102636497494760973850001568870867459169252214848327626748987819694985521437326610778601663564521318276418599373867620590237185077158108253598670031546955594502396629761080697522537381621648511682001493422919703477169825388690468989874387409503241587914304292928638294622751779343706411456630326417014680510122026138722420557807737964748646299032921060932287412860502433500716975353867593747177766469533388988237401317635788115532880750032636072411377209008637768938843653420373687688057575277908777194929558877032397308001301996067765903436354946488402330114846505727124484901996366116029941489228941466415612010070230477877867323261082093445833105917590214210552470396844658899445733293156318955837409176052252284104550558625433209462091078593406504635109035851291529714522744699747967728292691758674653485657388643424477458578453915286332668493818940040797470097474693097082773061870093435808610575502829555103674308206476208676141200839234326751093156787574420259136363480988941586780201506511044283078539152843883873625361586358557941165693656169692246895978220991821460839436080320025521340471679786494573566832051299803865309447829543457471509384926411216146868168525977154988889229600996162380079993732805280826419993618552914239040486324546488068163948512384563411725582871995437552395429849034455319982288324166963917070816363787863414641904499168730170035880714266882051594665253082981736815438866112639564285372024075536397446234901348575015962741612151881644252848489284780372586152193366222313992344672316606523450393612031268061302672640541696833754488626728543266059100057736126871724937458949730776323269358108072485412228084069698558043748059968797535474523900657268316724241559872182223196316311390644190724355827422569657908624712345478223782442022047549008546873858480690381624690773572139041140903954182035928035290874423395471187612234863365882852457469859491994586260368524161620751001308830148055379031419017920373641827415377053863737752857842963085203189119324544811992183475672168998561422214159716250130217850960591336912450089316656890551400576402381423596920096598224709102249631955276874405579272338181788993589112107936668330780319082750708617806832341229580916506378181412049346896502260880764476321965959412472053654524634958775593340741254777438982582837821712258393529392697977825922343220842338762526389825613405914658159256127464221812327936639915410657273477414684692111183924926079248791193200951267881640133501636333897990734349666256966993120627498835831283461085968266857284347181386880756633600677694878895927610686091708500367959981225509962035376872414789277381909320228963640440445427966998921859167197964740470123652461168221244385712510060583065948698407369976399447419353680327761087167374617692802435237866560183151727515732480461044962775208810549529030774820916119029139809124827320200865484020874200404889729665309159044036621759654031629641439459319517540118309610235395799746583358027965304434267829849853697938357842028654810828615106910282470173348079250511166022963780136786807790585805655194315440038349896031004764003607833543151617673631733611696358929829953523088095192355849261809485418673172200867800452010250514426590778514111431559998336782329490764727292204519718074900362428083123563548341575345323936054352243269778933935524243051160666766002728898580418707079971651480675135972622697555772040717820046086398231283770294654665257502532687659623818927078505071085166178068745592215863486548487919590618575163028384195639337962558077744219365176870270344296934479976131240905334242672077685254643101952691298192096646406002408806679743024814665227881196238994842635134677110988562113982435442744396221698539766267807848114439238976276262426134146292173039056916646698717696080114041301478669567995506117544213331777783774197617021729741393170348653265623615000352179274233594192692504408457172817878927388138653586536062020503513383404797905215184046238303605548877003882098362874587449969817470694817690583866614311540637340831395411413168648294829852881939025952302878002623575412201977134074283270243730862329574741903006148750249079568430867301994073037437980082606523380722976379290414910397332999478279732098609176943030758978647436377175423201308264476254798672219355599189410236281200925734653911416925930946007927391878123946422514294966574833856849835316371459691834123385664899043313978933273708965545270683970419743033182413243889338633461113507121037874494287449224067888635618626319783513305553794890991692469618958819319270833865918180905694040224934624097911034424498004883822452684158887622034155784899544470601727255360201324302644632476911635093966717780047985482393465225836815768835193370513952906786506679317446934587604442019741091252634807073771759598781753598208335280990959982265778046687643192816012282743858604782194146225013564451017672691679003778912907837003955626925048574416282727892796116348539222624151029699108437436650163131338875759773593477545227348852193579984311111075678758338959058609210444262278554483023667556972055965478104268010771310172230021709691928578175641633318146736989747159104890320995976112563206117039132251810028551213734335931552751584437091595467756914206524746066774856267966769782860811621361143331705020852682068648767598105426299124924085477178950663547839841102103995785113768678886056751000480352831399332128462960873268043522794707895360603012062479647915966240918015861809711661255572553765204700081759537055143127762059455845223626291665820400841183138327449317768479616469549270403190723072747583422999330294825616126014783107388736900835576173391123293821800142501727104960216727521462748891631883444535522272182610076381327809054213713361916775376194078893670375784350086417855259744377417370761699859814067930398657129751084207984577260068813783958870615988368864581937541471649439232703553870426566355357518413819984974418221722372823852709266347657878606347606357409251353052209701775319657380176170127835535989065364255479168211437475897402819464102345992540646792472682526998376813025935089226169265332465648719492660720187583648408256229442422214629032173447719530126718559064604024297025172196563956736080701875657817573453748025837454731879684841826016526356308392263279282727236644528546734960563745574430435102334599659727711527363869816043667684114959695637223516262199011745502340630720635729719369352449305425202018718806732805451384803731791605910340486008564586572183164397334519663800049359332554051790258392087868807331119030675154097271198298398674463496994375507418637539047162381982671542999995627504442407698871293547308927659319475307095062399649378797558977233435047798474516956913710388814134443936251395546368662248339711672876548099633456645544322278244526247652255070319675926067523012916668082018566244225330008279355895447556149292844860934366176132383624459798955900768989630880387521837806879611424582335232260157974822328860250022404082146885730939241158119503337317056036211787642986318729397973352096545862898237161986579811061069577229637727099887995670762885508011586186935755495186862747075364671036255661373822754142493387113332626765573402922234963629933116439596713980217361150418341717670277290803256166009988528644543488245452586438026498359459370596588477905944796507105795963235917159344435749025878586656789238442606985988917776492585847173283283044064350566154393360957155871981373447371974032008214512640988644119534838103912184381258429149821922935064344658025661525953295339112457927872965297943728890799695404569481618843700706284556525794320070191529509196810155360968387632487041629962591477198526736821338249595408407131707921706583386516216919213243786666741225804156890321078535639954455093690334014938969455148744865877386825363072033977592244983924410974538174754083722754941977858311664703511153319786388278138478073317582131718205502959206023486518387680485101379868847717847347880659386838983135047128613162358368924263280631980109746541131664891741009712281011527219394594519575417623739306774087300654021855587146479320716128880069036533867781329473246104039167953971360453162235032975925474654408284726776141262474115606243660794498775729844152114467368212681912375827554447169498863713902882956378429715424260705740092373922025312832286401929217783805271676811150800476637713571365086723564471397411813105799282089533384003318892750475158189825281237137278247825877531164194875698653661330417841336355570253042018740337686553370384471212594585331830696313299331085315026770204309297029199195614087322429561396583910363456095750256532877890823409355519975705398062582414365664091707019897489829736082742666580406376215884569554200832128131157364658893672276043322732509363099407824975408753433741340534384295092745271440893364836149862236107323080081297917964737928839160973607289406031102022997344120810436600334899985116012143083478586933352549786936118341761375701891916682896625865908590558466445425313939557316382178060971183135462365853028074824766446833815356641049445053766237381917081756762777572531864033201693189732685820891428961637454570891787077816164179444449089633667603347265867660565907928760599298111465509042183895454521709711352992681704675434228533956286372539270283444348706316167409955539952624806772225806016671293807192906637459708666423927610047562360761796606891505092473563394752934985612140998424158031750511192112214117223100308440858466056378720656632133202899112549912056119413982692723759598766526377794787319376778113062107639376868277352862693548141514760431788310722299671114767122357560125512079512088869740567036745440636988311722400974504289050025709764593167888841370392996549788095386076603235175397946148674577150862940490138611898527690559755383314442079996013918561174889047521150900841900110668783002218836073452505922818624076104188583779738498009184705259150723767456239044818735008300072233865496702507187683636414849130378151637649631005296817822829111239638358657795632339109426751372340788641172973688528542536285972389191216987421625624570361575099548904547064127951576534459263546157867810639065467816571069775731118358736606007662036202873488371307269455152867786121531371742203324535963206830270229411482777216685594962877454934690713872663011817361626892288127113954326562227984406149225544529100202633384949102774335757778601706270554560715858400265569235754043338826763225683393545981437911048213074626520746901579134473353726465778331260786648078773873630748181019602122093492664779281965346065908935043725500072609229981319756068790471183362497832681206700177982007656857921724126233725270814042259545073196539394784086715826766309837163194198745985852651334111348042162997974344535123888229448489292982811059486162922714915102574482313743672557341524188378418177049375884825479124210416804153792954961584369916714941814493431291037390315119606152230591773404741408951932685777047565827071356331119831075955092823501831508331370095441354105972151034215266566905192898787348621701205339200367243818110667939192555775021858612552611509335058044411778044788282140257075737142121807652006796779900323691515774857773195875572420200650762746906761201058254992766246855051444139628286714715795485728373995805168088839429197570868502369896594239224554589705057751901337369374282839487324095452071996540609837459147939323029071523982559329121081304026670545633026789765449866728719390255826253522391022182585930375662934313061494650992091821786016020367855886064604388846332818600397543353542166285753660210038733685244647222339902323901316068654634000524142794752485205389403402482247662442011678672893402958043215469912712062264635420514243891867510132994807028943745206191333048450334578097332812147331285104897743673150213112659861503302949245629670073512478197893663898794034921618195199006816440688827785786745240405569998233370672408348601053019461328842321067584595534654741537801505388164129115534323547980991367333092538795117905758085357851721443458481651010718167705146721390936606868396615840006867777190702707646109437770850720277724532166179649725338209701718572199692324442235490807976750751617778373970687374713799872400378201913204343648470760212139744319006475739138197623433195018479126884626619381742730627312941829087342265406128097090523322923359485374069186783372595773049149482689907830671907563536445872912363989861269838465803916413367197247171749097699674363343377176639735133081348364984145213204893345493135706179514032467209533300943717442746957350542856640206533857650237021300097980976479124239426399230419860961191466301197016500858228910097798399551562614769884729280812583720893678566700243242154309009137052533181666132008638072512613388291975641039483319494765825104679761447725262457084569511378716631268619939358688294414676150280859668934596206801557325380537025794724469885966347995456760993871535137170668488910313856466188666214774701733883270215513680303214873498866010088845957798370720589915511014022877648194866306297647495854206709855816951349567895929546804861873302894364494921276395683291095346019200013773157613524007787916835364598103596842670204554199405690916680709373644799072676283531849701445103733168661079042003409286558168893456467269798179934978169862654162322435936502565703881367878585505779022669125270039700929253166808046237556324503497913605029797107413096921299870988406812824824732429567797878857824632787867963761209526838091234410445496086595478078326163212777195510817397488298290299532152798858150311799556418539550611150977250069652429011707534029322856903243976498847732303762948634747026075008633422119135414705855761794618146529729150985427171373131617122696627296307138204973878668729691519708990591680816881873606928928220823136864327734609994436811774726806471876248390048109410891182500451800645378169226938298978473540354669873581166737528037655264506278472450573949313595866943859701802723983085901265291819636973441378452736737041412146502955162522596457968629325989684851547758772768149626783939310772567215145923632830649720228594644278336203288816104035622191184637736154239180062049672509338166929280926028488469205824514400814313924548726182587153527722958239469867551279322914987071770420330359073441546487260599478629680889256348083816142689759459375924303268056301462389625607900605544366060259209844031296357250922497824410498941668437946839555916469603238836619120844743476560159247083526079444080499382818646937540473725811116944884545368797465509462317503276748592165073930609471950814241335979559621131904279691957584356730668008317872497526906921603868891354680358557066859985179856018777073334614787945879341743118496606769925694882973767773974748700641081388642262800917263160569236088397052676621911735287533810990936911978600673654470723939682989767036297256351498408730912477589545638946778970897537229838564108850730254874547043699637193866066896384442218191650558362614547835668760103112925361425373858419465960901749147216533290749982396910682900769785824346892473711741203271242356942583986785291061349399887856727879631029631388126604937345635694531864558210667211587575229626260319776496744410368684141984142273515883198237313153779921967198118107177796317335783161856788692820441658118266031343583806827836700858964200052594974434612565889807115266262142157563032549857718046581502770396545680026648988528060882033047783340920406457582284679861419725708809610481807930914053122908500650392937511519570089829685989715130216904606486987781244557803610959538267422687848630219846287143527756162828975250783430588741885894924524441435110513167612229433054306106014113683642435998889499534379618625110030371349583370212114205436397131114641599249296406215925415860939939675183414602701881332618915681168260930670914980911638381930900281008329015222201299460705356264786587491974255046169863196812824564590281679181875055936059471506813734130330856217965028465021844825563835113463361355994347088267766982740206288380276828289270333652416489323189579577898928610282852606711677544868218989295094554518440906340607987218247701286967210386056780901340020984401989749262919703455049995976788673593735660263858055361655725466216132383730541985736097615024438690542104666136226421409277241036435137234359114210028518083001357330633150836334510900446482087113269591306147564761012779381680829861304312034351601360989696357935936420147354680337354817811126090099477054530603961603128081726354425231985781063679572666116488733712027294938756446694738026517942455331494765099233397705867768583985341894291453061928346408544604454244549702313682516424157807602635301727355502880731222539751059389537877981279755685189661114798870978534875622335242999864999972697886869841251042224253804878223054892260566784702257804629376431713553861506535255838196729398753424563605396353268086807375149419989840690205075892069518398498446794368687219591231129795210839146611823283731583376563756764452879685777303868631528274401759618307439602086616295494273820435980993087819449114018386821999590934442694115641967024111057966570711711734126101569424878758292574436875664281920946809663655341793227133694765097645313324008160089088932914818511760707225644516285134947686973938354677759541350087110333110168248191442035240905649322963950569928574286265570706896706762893774745944396087800147586858950630570810236809710039793636540754172579666186383900686683677265882641292653333053272599355668868649475842140299415649328864099721703024571833866933785104024948999822771353431176892875815452002195814498112952297619656424958505999507906785912263134804990013010061432029305778213853275802662679697320027699300410319493838172738011061737515381008064780147502240184843474222886430904176083824747044860069952612394430552255292083247639482767869934949536069521258637508194950299597324518003840209404541802911959141357682526135752503633586589347683593735662402660060937748595101938886182594215509505893714450660926648893700291482496832583316809532371527314719228290002900529057345363335895023086635523119459418093433835286309380164452179557164451947724473092479037297712747946136047727709270955105170709440481468542282373809464286416757630050355435463635194918260153385438339337664724966215037520844365013766998756287802843107227692821566002463695673436988673448076132358068113349316418609514356122035707471925129877422356462110808596526091916787703049309740103154504692027624741732181120933860769392192178269429388358742728420312100958085851506545502082374336283379792088636338506995156922890760575505723221897473248267732780690861900032491077449075873644482132906194067755182546673427131040635228683803684095950993455823422076775883389975983601631990420786524679593148197715639816471097281515849977832641381643650749312397553503860047435323632072217162251375527063544307528636830617864627994631672800425434722464298368325463462902606417982040779618242152548792404871913486176798591107140755534481999068596875490611501130027589502767052947899655944733336843254244905513919700035996366962035537299487434604859220161565232464428784621139857816704646648503120858134260603348059378721850534819577708644090438956672652144972020742889400049755312206484101652171720363241512105198385314651274785987019853601394247428836721974544565481048195082721156763366740097794868283912705218057989041815601314515290131563698247255518128117027791536309445676129640057038902967580111479590805434874630926757409186777934540697956067733211848197487232307015564046246425857806694587605473155548503226864561184323709352298739359946944701909179978631649516548613050421702501875891487892710848067059294178537844249933419335720143836592762768562928991010495007917987050513022522826546928143915000362723942185006528190246743252025723733721968611820892832080812720301414808665130031622953700700725571105109400929556530228462530312644779987531108184248337758243467883441787017579248773082164368310313184215566628281798545656207686306074408188745883330967433412865443388370561123372525538181777818893156964926830494812254699241885747914606695774380429687732246666019527908370747581948667014299429321297756631298633181684310959792720868184433608791725563392604577496972885923680330560236782978232650297097332671337612357847256231248949430154896709304411539430581787803927332171843939666521052725320975834597065303806678653916314398953426436050461225026567400352390086950990565726591231348926503242136839818739775612505086159842107948567088899006497025498687555813943231486791865814898706286864356882147533707035445613664198433142615815037732219789669083152561061406519733691921447876075608970081448961791423699633923464389501113801971814727906812608451997678639506904882602664938892180895952711473657927055098808672103832916122705390777061077048657138556640613875461479571572228077292844492405825182963616808647940286928881543975174344457546441034021157090838424450705339749200135374025196547558865446728294069524430174795344046111078367269871572457642106911592417025926683612888883496413033288241129769154793414424452538220129880208966536092562224541766672214403173421247518190481907473212504361551552834273476365475669743986275857374316311950298755367305863579924732686415082527808691056850531620399378886625889545850105976816603588821015681758274069971058203642104559988954293556957958511659873330053977353864411297269839560998936302945640115911276330839098060528380167992383463585702527479673576129757997935639894587841021345685915425700776314446257886750881865592521408203469408308730017218610063938811350713902458835739032167855282878538029464573977185830794583791599154507049337735371112083132134595490881600334384128866754836046690539111469766282373690769945452517475363727549035763866117245946659908283391734139940969703869080307007231584651792850084744120896738082398982139194741161384884455953412564258549357321005010665869729974389551815464790071178491662960896787879196073362846746254505150146826514428083882350897297944544925380178477566240401193448548256602434516741629791193446210234783209029654870015647905494967076039210328671198662103965790817118933040870850692657954424702368713052863041253306176908750952120664465171183653810838828964835102368058578804075962878989534838505981150143022356967799708973246566108086862427519185085245172681795441720298201406956628305827067235256025943726577047220132585714255415077770299635243609674106915445408795992140195173758414615198042912010556011137050431735196524465581629197314801927326417500037567761394475678380434717394009807260669640093933559485515816638248264390416898724670994917501383396677102357768695517525438612927820480155446125364762478028904939247412175546328407844224787297146408517487125826923861966492740600449743209063033288511072464871165932278284622205295737303892478010535302952741152258441255263971847026759159981830301798584800681631778907536162186133671601806962899488405886813428223674771094901145176230390937287712459102729057583754323458732990268958616542256362320332269252463743156979436318952181264080340677946703009467955571828660451633870996978062298650319204589127822679858001380477287466994619742088615894978700010945631880657036616262475522813588266293268457679614125300244105181709383819327495909072902000167088328065721826183049783929040166038436855510378646740567032006895257573070522869377835905161215514657701443745301821528501934944445116633569491412632882087436055651739203818549154749881837131684079752836374837628861778618285727217837991235374467904657845552169801116967172951933863131206959038968239780921558442233011909256018392485743678419916424862806243963832148154404121951956508645965409769953501555248069325872310661407776051858712399123940468329496469686831586376678959195936715273413658218442362482540600875358869171743061533302418702891643913547321350484002886500957800275767604943042585781541180282799470564557538629846222166176587314237663166608445271205660143991647863233030575246296159730106259812919179371344408091199458935051691222107900945625140661282547590597678290724206529842119495976896348692471182014487895711145897791433112402292237765078106739632486255417954621243182370230288639957775080631209380048176459118280746391555231924228129317239643145702409345611154582034804692554339691104428972074541081019314740659666146018812321887539583424181638158113023807707934806597862585834403303927071555785130439319969123057498893266642077767036329252357433265912842124344092834496911456740098518716281317486720917560937900797870981189268252303511461872065504068391786461812245941552095469196562382763678085058898769017297152754845763553347990444319309966898463716100459300446486126589085880364018882886085754247227729971725315718665482996408972117238906733954086300063599759625040222684386614149514057129110517024183427056661469563479782749133967204339451426629869026108643159332649872650123449001784254615640823787320466961677683614979479215149942891366183158244061906432482708278622915718589265479735258515439800235065422800035626389926530763216016182603040551237164876231979511707634994042553979075676231885830211507432352894499980311698160817165436025894528711373082532990084366581229472459646734130188970563183806599187776655445034283886129524938748402082239709906007971094805505132257258267764308059599790077367799956312161136735571201660215412465168084682207335938849527275097099160548485269620438211534737961958018284282315092910399357157519543801710699335247359225652624654415117864782112601787880298816932513820371090340978431117326091180688587101379848309975742194223806187958036940350211424431718242594517217016027653021603872084833131626059182893101496304623509227228232076243922703216459173286381587717550807646595946813711349798809606969716008974200642885364687384805449031878766144598288825199053066784028983265790308575872965721405045464512247779157399602831989168985745558920599844386505904507411742941483261989066862214158780072274354726098585016972533047174463463730635513730331824861052721711059828311245972272939809492261020123205477505543604130971639204107279010163010586982267646502254058482112084063662068886126935032675645407801899332387004181379268500586335802710728476669522202924137648347939672370166141094618141213315718731741551570508370452258882410128933619160669269556457619237117623644720014681035093541954326777878704649028021683591881934422314988816172522873506623345438438726032130774011881602353602004271166193600936576305712841715141394347009375641157589260261123342580697966541814887821208636707042771962555704720137524890189876783167036666091545655731678987665155235817807067377035213375438701451790515068707821178438576522067668704078781278001180794834615906823264450070594826325983348769393396427544829192690476880879504330708420326965347673612412055976447294480150787538197936024946031188054719347295150002397047468190680110181402872549684542720363034051563034798921249500321176343824152599648911990717807843053120261435143832571548265384460155875677693064447752452405809932980980758429719208923085991891305468520424945524261974347309860690545032813844139031630766897305683737460442809223474598586660538827331148007680926805957184923119351700167387662276067854421304604265687090107952853026711676452632315584778925028354803669470730555517419429640124684979099914493371511960636889346072628730157692314796276099835490122170377546662856070877604218000128571249961742658508871880474856157534278809020484745116395849441683429899590961640388988268192774145107513536581215005314371964349421418810714424622240862077643810853006852120662656006027934165109007919339454641428550276890495778617943542379845318005510848541973318117994514347464839519498369203364619729860185387213838943973884374898742235568286439555089253020336875319629772939594700866334747672611343063928271648669211037828519780229742078250714250192478828256573424515276726440851168208403270473156429025766707548666763793272232213774934215813988446190824758871414837994700829464345307843068918852167575121876455078302612746192151181707253595345380062993136381806234678739978769278163923689275281473092661763918263399205732410007556872755702934759662025362924174051999192816330430777576748376300803741222270248161794036523150349391963966087117241203912323957114495341328378092587633073063741848162326595602051313186684044391001136202216031648800038039963295580203176661491661846505855916127804589996000908430664355746205932999736828109101197057865160568748720618444064206919142879136325666446903043895058787445510529952189167263255775852529882262603554721631030183470258548851288891262256785627885200748584572886157220732174507280728586560935896976843084339089323082305622705768343675754444634712513722106493193980062239825868681569368365947474917754092786832687899852659090904682210565933289557239074087964737801610752159910182644267444743508242590902141574574804513316088314270920080099762833149888876966419579229156573982694768433779728665682750094379204763458442013401041521449501070613557814596633051963069142721266655521275440791044509665865768022308476899668830919885740465704192432023625804912309017862196995832548698899983305931239430663674108070030324180232809132247750127368345188198425774702189240474723900589600391979483023785766031324118280909886503110449759218887649794221392789621785694626118308737739024361295359430336464654529942268701919637779635939057611345858839674462726301893392130083829476456490281682416480172976143048650714383180025733631248371591715516288279260804787385948558284002339131995232704316408802125152139391643625453351272836646429556516701576651730122184359806521580949041442977584720828045385485685102137561509440687691348867518743105367551780272482240210927338076641820993616057580382848189353546399400264829405262144228750989221563464634237343847994789656124752638073243809741917015060270373171195615271183994473404560705366121745373226216954491654622067508837508439881939917768482906865002527512641971779641507179921360284997489576728820427184786171091830433836600121599841789634106849648610089874378871644982967133673144892891952139512136305389994519159679965873401913736758371939028941857907789590195567147334052075034319696101110886230953659665117859516749751051083399851425388947284485976004691889384484522251852085858503725553326434476899438049658387914276352460582383114220475396722975737236078451208807998311292316200881682343720671501129653733674903681156414783250569245874791440512129400538117023248163007941822192710075414798490992186303175340662256134216318796139954547192708357204789659658267886300637757424368827455846907588546566604293080494177586288331072138225630732114367689590310312895830063707340010673925604731969147885794464407272077516917246935077389010849850903339480197109524164385247977097600668748012854057043739451775234669293012398800050016837698603349057958468971758387203424830140708862775941225053915409642878249964426049994505540162083556537462488237351664746618977976599347969485241775761113120878978421082221458037532668265889713324483650943300395983978751884154392272554956696267614320405263651096739131346185894120189559830702286865414827572503282239554947023494165607046319341648905574438457824892068469729495155235986560066225068698467255248544102819591224220742114682448381992932624961859266886671504872832194473694745681085431156223534395791028885732506332099328871308387555737238946713625565905290499598644345378315826718210388575768215804133279873750671762495471491109079210255250194450986235103880296517111662461456289487931951064744767130142779216058874972003511935809547216311890215139923683946804779741154433387012063894960677088846297199232723311617776065592278631933256129190192792151139969975280129733294007850041078827753558252127137328925188183896740264919676876366055218625195378694732949052437594426277779863663985467695960843161781956913038854367080138714514234358156897550493738025158256667712830907601179758530669362019195153578578343859873184617875455009723993963104802792036538208075950419961629808764201924587902651671798221317533354110375772012399771992553374996861069386551851039157255445452510345735456028755984765542949096879570887222906283778009032445404662418492284222418712875031159342206596333747515610555825690213557259501883466348970855392330715470355112445371932049534947761849656908818412624090590343727884186236370596173666218414626833119096605494491735593692404718923310792778125633464857657849843961015461072504599644760307295513231569757396672014071513994476653189495729277565890833959666567485003086494866608061015722514215439868415683573503448438605915508056620860361445374770864662518570445089296555144556377520032602799179071842981705913114219035808736267624269251967502942243963370534179208836875199021754729010416809688192897688315267517639755050431538141184894650253476654306045812332357713859527787668108359542737254617951406898312529116289074179548262252718275924468782294147828448098792589564014980573826337722922310220302719510712641827554010748041391739231999164682860045109707059990741513761722849232595578028495144237324988908293727989766119659648389391532684683865062897685133503255028616653245624313153065228701230843308546471058815336385626461135831524603257557071699452541400178802067761993345819374136911114916370584195164392389383060872654913883240449009446166802598316437756416340137638067052637525892637938578568560203615778956080067532903614475802449191203514386476561686439697319392779752650790414559868431335055480633509048433484171990325509808213054710839351413392639640604860212023328576263816486940234484879609837800928895364535821386131083194540829927730224342236610682526468362967209803633213762087399529845616357307044625785234684759974004872758301472386518573804596034135928299368443045253754187587384994962779774514289288504552170939809388169344366486031995497906640650159641051960474786133740122746911461519580349709459497457283800736149195062338725490886337080854879249879613817175674764768503800876841617102357983133531229534381855543527724143160548434987151763328675684877406784972049872360270696686495263390620822030199086169437904670787742492694273797389202611521773330911999696535285887258508273738467009766372784832542745546650163373391891763802441570658610266942734603819244793596733718030798407394013679111615786672469746450783756725612030110065009511420855979632566373789975174992947613255438863307382346921587901743074501669838655742246219311929889290405816386051852959092553660274587187868804926876941110936146339478057456813365180256395211958771524670382211329932804076300033451197512457949256485006339854200370377413565550763473220229276412006665539577994869057598657579290906744098106791472102430290323920354865545853480881426446143192548036348361554558427604804600875223769990712963686744813357046076278577562130612633240629493155655247892816985348504369524021350493600097913052151430036892787048086317414257246397780659589826777897010603550680046242917776261612251738603666739633848066784051828525208008391177150220637561225898668831549383738071779338516117833322039554918501307350806824964086120893542802787969556356554968021926346814248713336889345249301941118791235569865887432326710288177892761190780997628968915687724885194245256528135161945402805423860555290127250942392239451670113380184764611969952419570284040179775097831610163134310206549253715637087558838846863403640784196601824810542191165391376051300334957810398684469517359477680752607454676682458055426322936799798396079820797186860102134737530216957688918602643340959794000842939003424805704086438251480047657260124586848722698511461232772419754421827639960705089189007742328178144859639508718979369803017222761720291784397361410107643954561927880989627623444334847458081714077052032537548238247527812584775802695270961016143737242358608623670603649403415952754833730008774988195240090274596388073213737563266580856207171350854696943868179716424448417081279910278221988912640181992322338990345400279489551731545240189676280457674578527792958879964298905253827920527073331210385523370794990456875150060085550946234878097571966391689251604997596517753929553410557673080401259529719159382050028573516167014140264183499697487252051721739905144091478874293584462341170182753540827420705098778007958489742872885291372290767767514605243494087029849851387323229884102923267724763861021124727010468812695355754699843253707178768117456111472867021783055871597100221376966222411305358505917978661430088983455719676700959959116064261066121015043293625734647961884588570360540692965248866889012438557932039971069697012515572056873813308942109525415396965421731556193616959682163585084280869691585180894505502126058649967098969674710716993022301478432851507285237921447481019446741553822699657420514492429551949405335456636667399222940241741789208601824960019078269326067700074987576817743912587842660705451010921548662814993735375782351221710761242994500101812872996082993462032795374745915225556288879077877204616715813092560595168548448312831916416545871753721620664719535484526895909966678164580657569860491669524501730148602593178140493300895389351832370567470850985495305742660101055529407236935562521034277093629500018470057587072507924903371194487838485601629479915865541548283209580578301797419632997201527161286691925150072014533468033983470707129010611080332566241913332082166174713326995874447011951702093152285863576296620489040632199710777238959749593377138121594505035380265512851178167947549912896664038561997869661026478473876495232648225284685468033700063397284498186342181078603593256112585086075434460096484240658082718055753962441018975289088420576798844349725759288438466348386054284430043096078930220741261697420105939771792178565759234195081674278843231526286480495796473606291182956977263813460233153228461783377175337254491204533398974026821371343672989897892534766302317257308342020543475407072369300260497678881644239485838461642142133782203184054302990133156191464023985350363126622440176048440890292331616361907987547067388350323756968423643811215024715443779991685471240198207831459299794587509872855703076167985541026122594880248119307662347438193020086844626044030287064355636553574914834598332700544664070014239553344695189087148597157297331897918983617762379031367841054273715271629461721110581326503009804829007197947588985639210151829693758929505593466873477721980813031171195595414067370372526133759010301570680226230782612447957303949666258190762606312208220492535610761066500614745167289039136710412976740152836998374606907768822884691734459046819834786084099467749209544891007054063813371930065480233490441288043963905186371985996111513719267227159374268072663549533577010471454113451175385308120837513069233585104023269835966513024835311722532028705287275475076086650567023310033821153630093093532106298279825052800203725038422090560519922181427566682594553434412372356411244841644373763873744677416203424704814846133610218414424133760348288990407224091762284335323522203132232143018848871229618037827957219893188028934450526165936014333083896327719972999645782544801484483078507272582471305982120791487827659984811108965405704942347812225135977856307100975083998455012734038466834948469573634834156651681371873199350880858424616890245753615510895285272310914357319764330693241602173797293742675319053340145088713153929505792236864869119502695561616716210459282705142488225489901033345635655959789170835709840375727399024207347897630025185608347136463012333430545189651724351202201676801422129952999193270668758844046197438137549465679609988258919072153814822860046543046523350069039401245288430561286489080733678532063287409756122248998884188244233367717568891293035417649350081899529197995006689355700794024105555570806349170638689649931802348054307026930464973910102795016494175793356886122662911476075072752070723160677209738918377729200472817320631041650549053995710563830336932506448405107783215185209192296644937463410868777067330275212563544788483178773988064528503653344919418120199237748736286289056591009645300388995847678399489244158587737293057199795896955701309181184376773488622425979169995535793326926333561531272310759699024703408531946821553222075974659401878575685100470492823835083150000280335830967479519589204209751091108412490614885517339797194987966407936224745183188685909107441557770064233928812676279916454738813958824115062680347861200495004073161744103217535649136882266345296944948478979874566826792558032812190570228132554454589865463579817999109393894383802334543292852401468822895117336319813855521847096017200246883584420637973832145058798910513367185422064477201861221960681916179200863704688632877250514582702389787719079815127542889975314952323305186649030025339728811023878080298177281564107182991016549938441904115633161114959814044071187987404197274529803587202522278603438348574960295729125994787592487721108370821459793224030684735131268441916424821932286170725123209264307949984860983370527408028965825854496632167518043282043167906842502950220126855308715498514967072324650611767136741098065834208897898409353703412967288803007206227688380367753433878066330281742741512603235907884043776677386510075875270834944337951931068980876051661302565979095840359798885805087654299801291081023482849380011991972147194484753831672113683416599999067112764108882510211799318247132502519562540339466942394565858098678710549250957110936193056262670120931659032477748422315534776186713189306982824154639152549692463471508133830607977188249746547661930559832950540605532219892219855669568164491016753314598825760667381778749567433655822476876351160791180358590321161119495971891275226963077122693382668975130059300022891322537725710634377529209622770098740466556140845655171921935493768146602061770821896752662818558958912786529959421898102122928744671244351092606120529582850067460803685203447034335302152656474573030915292604026331999952336512866739403713201457037995415134444164257669168325050062997807346867757889674340242261629377697890584776310583259034650624478874520235313240943132988499262056344239104188783305957512188921323634543460223929884143819491257290839955922552784471636919560362004620787516404670911703546518307295544728599672805129214527944702812281749777359902224309681316886016763054769732378891210377940189479850049895946861807863111205335370952529378512870654518009868602685615428036925645045965758698133995083533719364829174696703675021895702489273840090543699083892143130040139101096033586456975085132744139396277098831817951819230514930229682551200644364325414471175216708878537713254683577833658369969656475308858380502097836026269709951623744051966806033478904408770561556240765214820918305702208964932398793359891704535365677462272165352566981171763708725650466821335851284695495019784180790387020223385629272072392771793310239363220736889756921526040865418382486218026046019652636870862120649807426926637313539259284418079396241014073655547962879800912132064795913672673592672050099245906361491193116356361219539484790551914941224738508591567022251224570975138517835125021943932612504513164402656304902564485902015111366839378111354594575833326701302470024358273850081487044103504141615929574790462498455577403081711940146858349660202838015695689655284609603340599299203999012034292865099812475252142493930764717636789381817029463478440124381566437558920532214745438906313927168311850877925768178576094617576879546340440394925767646816299519916712945856697068408517440190722050236166978724749010079263488013206152605972675149843678799076198931986324684895716626084085458499363978774187787989713885333806400867404492252902972985604346116530166508818045152991386375507997966927847553308795788836771370132309268420833206843193587405212003060534114565995196977551557544460665100617699972987985749541862092245427472403095439148188220377146287365412958731749039487528871621508317837406383093168822626421315724437407935182351276366467720474624073061202532547137362804879058719596154046799523270530096147573092348886454248666597809328483503673021793134692799340085293349601088482681969472393698544281991698713627099735223120837120842335628702251962230015277051521186122295837625576213229514173748691762756224348723583786520098186053036964311223741059451997468191313065415781091233780658496339720536362016450306348390359261441573462470204683246163474010227132986600257767268309102757236633323826488130775476766404582049119615886501045104238978683591631850899597955993394500984547370566516820789128001138696204101714545815456930509535455983867265879782400960390834894641665687578816013536323334625113050966944912412802907949529327127725795333720699913208668725311475694490514966703770524647615857610962870973384354219123196310308465994494647532859079836169157265136545750696377174650980815811993624412835720151912537882457763767779058238340617585792423592533318266839450140159713828581756376911563196016901261321637096324541714459459197270572619833510581540583429595914716086416230161341932737034524549197319888581114709425249423471470008809313368996106874083789614659335738581458596643755999710830175543257445715673858400197688840834873075144687539117699818762015355082391140907727251630263984039816170228757695076640435363604293330113497670734273357167533801636545330834495299151178788385060682360379452249645054697479702943416465126047631846352347784075454753991519154664547679214798384662163389572661513025205482874636877784609950496262785151934810098405669714171565695208830386412546166354536093101987287478493081147658205065079054209201643494745525590034020837004571623808873467978247946405347456003213452889522447083466103518449712110516400971347860723512529695347222989219960294620071580424659585091024129021548093943515351244779536730333113644252419259295648797847023090462107213616337512684676310524491203798696820272344858715745820003590252717713233915495214107168332187423845397724380444386981210200214594935989777616430984845076127996970207565310942099062936369014354727986067676442999311513202846237063615818127646579326167504924742331193134387769700551313246524581521767880187820427467304743902257226516424508353825234899198804608865311148852780709331591240258394466650341676507279803324143135827650805257570671290954811612798069160987168199144715724598440395322604172099254490813930103060593750538645143703656665522431166631719327806360923843725533557901003200152451360114458315574798089385684137623967850099122681826089890652629386846955441509763258059961228158259758537814983237913962281805693377140485950149646824630557770283779045044653235155876490151933188983776347427318211998826079844806745498534374909759006969845167186504765278590506204648297025917641378428780939055291623684863552542588429887725074614276101781774218353953114543560495124892282712663062776621910089864788378910395924043529830020563186559664253144865626412720718958710582830087499979966585545701361173157043708525768553350623785738417712064702579019974983487953376203507906588446562396501119220372271887018822685625470838056601435651100876295365922047384053784173634121055060798264263275115680145422322710334748139102637145942317494885139128762134363103452154779559296476027129373590539912817643249860522454035242027049647747966532948027507454360692551284008725479561157212479291599637550658328364892449947102992334406738327088796297918160853868017655308305315361736875199179266244797767297821564178053124599042715585247351614939184646177646918363406250784676109478121275438488767848960253993703323651329473252715769191635366187478660922073363145309796661034076551252950738882183055189008299852790421226073514941343481079572898081381679016608403607281567393742607901654041882628418874763803275477923120761470263528693235918222675351919934268248672394964059412422131553524886497092430309309666514128262017705095732901633107102555364200051774882754376796001653663374593663264212907066774819377100838972658143313927697505573039796832071467609009337289538049493198866997140450987878942527886393699237418332684253527478645427385268734279763850054720285361524546580234407940423883956500311978463203873896907926275192964507653888236971528264349282465435299127847806499928416531909727295020067010909408208905083718062217328805200237859801519911004833972290543176794261607251951292434248207441000565654661332369727820995748546552295563053866665039742799959029783265326278105458028930222270660247887995845326941978042683177240214919107568247681624145897781864425573768755583506571506497866036887633223858809255968179874806589002799364282153654169747886009811161190222947225496208817016301383231794097146076737023501857943843071004046156581558008612292482939699533334592612778925603442394698530562240533605748345616921634352528258282554420106821408638575663206753226325802407538700752473304947414436453545199291496611119866968261048003662462026385324184568886268536723421183502962287512768934255913394867414278169267207727939094618551325750745376811006885794714698000268433530514617322559460455777328214750933146217612664131920104212658012648145249041979876045045720068216218200665533611951871853137517139147928396512047560144236020728643316782098232890154883280880403610620068350853621822004879160320985701298422943174324045427069971890470195734533388410643289560267406581004365282634724564747282125668931407175974181964621241416754279772069374956946223017110284432694513722750223298335714910903766687357441330966681835593501088703545010745122449570039333561945548435854898123763565638055221192162481003925013425613904244549425810118491841141460790580782546363374988439092077190967896816596310720338022236859825981025516409675195860255074071925750986489925785748931114490039353848744223170365464086687726990934074528822182184760308606699881921755898018363409030176815129940864381473066765360677241096477192612577281228594976085107036624693859852268938430100876195378387703665436156254257864318818786846395958270418571986646687459761924917050043990075985033405422978799558901810236227394050149405277241741045503049142111016280280365139563615281147969811168047572839313292390564401728003831594978315757946779663915401158411080179547619628345880825387485757745393693268271174609634421021257902285450327133071506965753674180576906692658167158970072161983776899002535117404112196021667226423935721533519064983847985525077826887323253685619853174597064971293158440483094693043626957782971960802024295741558342081709606455047945515175025720914121552624792364823920872505790598364305704582056248483638216055772478633611222805929580738221620155057356685248660608466988769271061807926495268836785613407107439734710119280590830101171139207012232922475558369283289749458751156961639402820663418435737219798893729933799270784562437383366016453781749023988309547926735516519756237170059148505667196498369984692179913812799033981687562984640706072517883764773109302449079444892748171418770151772029652486811766665930528820889513276061633561009330737084432220733544678035157572213641834656828148825561294514861157085805018254120449464113757274223419892387028202675072881671851878213832073245529231273249770457679211610726990453612416728948910227565793948083158015160846148286068854619302793823715827538328681576617239543618738906453143467627158801856603597909262710759373426016819845537187098588547898013975241895623415638567024794312714775533626954567248624935099585852331906712554077478503194278053886975770588717850659626865870158846289019809445519474943137538288152794694175746524741170564975916213723723130223289089417012852665065314605712539828614792300098457241238184042913695062058919185091999843902204045733819237837265092333099703535613573998885885240997012343213738219133593930401844119652417410106945753309367280545685789486980844339581551555563284701033494480207012659053974288101501417384969874372632422092959058751622495273592448357521647140387694976084083868035186123960894021495137264494266455447593750911365896923287375193160450279842609215909018288108236148205797645538194839352116753469142345644535478502167160401624481527527619651873850215193804257221328126591327805495457140407125744174650527874583800825723792354077350516823931563881858482295036270230568489568104028375876284420234443173940265786207053468035265249965975699480345986338716635625520998311392310705264520868694319989292555545734844908408020143082076570335989908614138343868800661046859068495859638119097324400670453471930739104093725675365311537160623729635548570366185887259007825067955826381160950513842806709291771171385724947935773281207691328952916211398419478255112564544791542214626889860667330412938108769146195037720345762614830838622708997483978026912216729623614827505224582718938381392229463709658894600037002005707967093838028704015639122339245975509893931911409002252069179056564426416643798606755587694482869523559170920404247996667629721111718612896473714491753953950336819522094721331297144298617655399607970085291739082934459884177091300586666216770359203313465396174993902056066270662169131565066117767496147508640630340487146884553701918093405496049564406167252480848507611880576234252197360861262775870075517948450114145127493127099439637172949748130141151217768235313942458506342332751882387469422248196373176264881948190182733811028037600939259027780158240167513586645280157140144461388707537828998772430057020298208858588922417469199619126970866075141998426322944051564089089899954786079293306319972760914245346872295085894086811410921580739401720550672201925337936519873486354167846442463365550263278530038836999133118378306577568319286742248642326450740131889900008225881093391665577852537172241420906668843111206873283830539329374075595238587082160874276212534467379966735698937941337392829026890908575886486371761774340046665342643593717834230292056526442818286204467691612035581323952479899590889642479466555823411480120410405477265989917771611701607129357973910550208447494864681376504085123383997618095292966133754028446549045579977248700411744286965158610587305641818222017100298814197259343844602128168840171254209177511334597234486254325315180431295484984981334122499240572301815840318610795505434688185933772649958512794889323543509768740621948832498867491746548439286224046473761416988002248660333307208873279142532138814081077573007968999892639339207737167422850110166083794736625377711170709264257388891264820168740523675897088256931421525658235569079033683758771472523142371827477607643735159832582024319536780436756610240056520538166603027146339425989544193517147284883087930424543190942707035014336872369570467986876592953500109373180361880519667601348756468646114965013269381238158256061236303940836542739356736168845258821708393006701121156713392800906213520523012098398561607458158631493187266695647024836647276220109833761744573764751158937767938742418736075504878194906749567964407364724822544420216292678342089483538029160585998395121818954108522804319244174771018616142089678586976192349762744720633701172097764007224945251411278201633645936353284303166825911399406903595070206901107829263266505725649980820807102686545275556493025477373475609718623275461637615867142304252047519426334279165570154253347122236562197403223330832132924495701107251092159469555222306568232361716480880414165393281503067705455894122080573275362991772934661358203298596982484305901685619869023891535925473682428578373552218165947376248861494415925388676816536289678133697815862852055260069000427091954240039679646034102036366379622934646956336667456334059475656701713382962523873732096166870461328633058779152429116676763522453288913600200975893603624443940031672533935514516354505174625996220320633174884867078758056764445956041996572695503747550059275444947174463639221567551692424220244522058000847719905794984295016135437299535653350041410011696425826335178904204033128664465721515190170854601102786633750851580344258895509078563393115884982462339063300343852972268586427751873966399724216795920868768340703899676144085220650855670311656481693615002477630394484915104123103951244498340331230042280689197536582291902642601396824285498693879068290332498063312442817562036344642844354594635654503775776241852001654478565915038259215659434002334853205292802212146821823178184976795034184873364688923227890611924953135249733839922429911342299274980767638468822019438201855653417289719432635816606745025812696785598353743413397660470580139015312604217509286068641307845192913746188240190665345354500465994421276770588505114467262900878066940800440059572378151908091677017687913628378035236713570803253405837211174087706204693366743012061871646162721586853386612383547779870996513767075275010938623993808065488587991927607048622127399181901681254094807602089512000195622015010369999283221014291762101254878045596370117871029348079345087592545126569288968245429433042197739319322102117028169110326036320836513500459838554557485659674896208628877531359495744404976850349125453657031562635811914480765266317353682775388473187382164507655063667482044127164713515391012481477068748130840349598076093564452839587241627300322345848304356574971102149266475104230770866417219530167546419683450852349786416207336478833068085868957734083677341444036541807357808965901771893298336100302433195011911581342575964110672629062980662059710223515979785773324489624097784186611764760115615202642313603228218609353618745154959480744694208174684163230227090840329010616441110088501027459995643805020774364727356703603625858772832997930423751780158629698224180456467415235324346033674260059082133595250334239695367824654585997926371651170635093553345350490200361534501668752576997385575299808198315758842908095486141816666325689069336858533670740994795551612936861171687165653852547487535125299816834473464656360590838430364901444415250901495895590782485561821582663893638361974836624396092996277204119132297661900205804971196070875179718219947262667192346279677690897095798756828689842495084052862150032556289162746745609048222369370794090449407751010673159633928462566676615265996586605638488162788765056023513386558425840787857592849612480267213582838817531293556949546487849732171215798121256387922233138522739520802488654931515973022365682170365889618703076901361128431414286684877629892567233078198517538509750441954919168595813315887904935982021048040716359771894734414284107520969090047146770781792371464899300055736276075650345701874921453534907075374569365228433618965323935123920091426941173682236062579294233998367885567583543123193948670404917797089166646821525438920900369242228839318404818741716346526880958032854594244807938219745802656368436355418077167989110311307215156578939570231619344111969652991084917706349468311803081881775585180959627949799312521484047549810978188730188397305602078964273492111282617298554511262201486741853999842930024059057302596424007052006973410748888796454384052548251552325681449288429977554139876095211732441743683632344418807076140504356313413412539245823705185135680654050181166907769910329869340806451716497077762077676057195376239099249842038338825434413807008656452172115064328092298237221549576440507029864770601924688205252613370043689225570302712627536182275892688840662739811813358418398879018101147133127601914099753678912411650098125535450746796388079189281292972583236744896476389883344724903745302821338900597595106725076716846046375702547410879148426451350491357988346309074015596832898920283844667555190425191599085991392668875030886744151293650373249154081992850319149161207829357936381472773525481892386939253332393781202983434510183758657082296110399010866715834311072552973596540714945189431845794882245508409030280196757226529916061862478746952869628751600435063308124995895677725641661026502382904201538235408374102182540305681369786321334831877347677570648039566729120131786737460324410792483732865288632315500104783146871370886801629475465736272765668477490560940841605314412179114730496552497222294088409728742007823292710443558595266158388586490265633566043058497090301606609439214377698352789981540582622061090865622076834516756935907814208572886089768994662760929615466544943058265431189535783720718630246917057737212196683735812969290842748431739338491356711121218495477132713575981861534622962142611423480771893604827604420899913044924844191195708663110073609168394432291067552516246938181840598254772910196114540359279250030346800704541530352302243233552246047595666539804184202070405547960457406938806645476525144938059676542607647377926700315505823838003178497405494833637624953400066692062513825050533329821113184935889214429097178693609258622653448509318266255464656922480491556085788137283968725357572609816230676882705905839322805889588439327981089166546704281486422685013009027896626945955408512306129956988576787975832265376863846398026932423284439870000496290470544350269508209099429435918312198464799741505933243236345683844247464865568209862395738158678361965720121513739031071012106778089279931292009499591834178449229936572351953932846284360809697103321546801424809813940877303444117952870121433688482475869226216586569026108669330384952467378482330618914175042920588138326299903817509797093795849131107689479585577314296836659863751226400575398311492739806851592596346701023878427145544735582785487188377015583143072980029927412105905769446470205341105237694909251978734378869826752719510654180970816024622247979666719438943606930469428861833435977822610818809395354855321698589127889846087632333587425259903534653556984974108745288137997069797110415441133834717418420804357833831557557372664150025864026047115707238528814489697381107929037192329576591549940066564662614322774498449055972166870314181425910513342041002558163172458542648651676644074086954145638570379603960016563801360863320554756147227889334306395725276065508817992513881129656993681159818195748698201514406965820376642672498783825753386187356026496201593583016662649891722477958519219965779375605903991701161586772645368919718251859998436146688396402031690819467153404752504283966373747120640824573279992958268993586758541546774196317652587865564749284235989244013804995720502439168303931516222846933021466220882217249113802457785489351675719717473639821407473861983220817906789888375031636221790519723517264982743146160798316085048659491509630077972871613288210967401671563705767921362283990358635071834690468587874842829635288113927942579034453856257398335841783424356000680325636337328706800401074557648423156195147486284492574498804540621783805839906835821392672843365697151783282709379215910805566062721986819854530612776398918861681876202840497006194615540165816126883799688263430335692593779482172639469752662631120213571223332931869875548366860259498541027825079677501362460801845042929419118060569528298265269299404568012258609140626278051284933279711191297950304230838792402093407323020571755016130324579016899217271794678107487045041327893166218362266209508695884522655021280776234929827017227687855474620958868605628504774958160403954736013470621997839506533893148604529303354361094881673429095714519378292205257962332270840175808207021914715708848443124754214026960938588476259588502326295689913974160385164860049481178174319159278104115563281462890446446245390491702889570286259904754247718754771285939877229872601804861617136641459700506099084700256964561468900304373329000343639864542934259229422954281180157424012116007831488390073229945370477110546502254639394261442931351514296016661469857256541025160910582486720118542611330527337292144778335423471594918048723306288399835120329955483216346743641869526862821986774471055123761532391604326456560074654045743519645558788026131165448312960031797108967410417508009219680047307358840764008197798482544653633860080521482209463313385540177696094244546396760234453945502387659350629512420013887287094940673512447834792076224792433044528575838643574589726521607314659794947496528194481704359272863617589124276789160009621735299588304499389540462963601197145817481905687440232068082788207794220946425450406454645265869269053011507192951873074824871851689005857398680911130530637641770646078854790775304664076867765746827981890134191021624919441123490638714544308612088415515681140676894858822258091368515758101195537102855291863328153318298696713835773167044051893360548048540370965103991672074902401911141999953138752605896537834900597411617431319430654571445174095179838888311609326545763523823699386040339735629906280999417050236600589522338349586156165580161363208730602806308513716335485357542649766660958144153342966430654533682101828850491520520153609622274666656226789238303235037085411101162182283160204434128003780493106556111832455075229731381003352591481723717314153209815150626449910015975442542909337394451484845546165206749079127686944672567157402898351457794968328475519091072555681007710848350335048146881131421435634437638124982777206154000646150204525773994244618715911427803023924403577680410850377901782367443979830267781872843019168181539884813629019158514298996788982158776793106444430111226429744415933690542246842843197685542553647155664532060462753213794484959542451057811752780549912066491150126756951266456084847501451679672479041812175469049756951493477706571034521572848662158643491159371533786830070215321952272417526472723095201211176096843195937442575000336154860890896509106355033325820784832921113771396390108600429615095259903452140883955555496978340231002474913762283606372481730961138506376313684581471777567309720497933988296548729463524458576817893463360870318903843834730494008648276888172292825108893573105210137787157920989155093680412346561165567562383580833828638436477413637460370558912169569249242513683799241121648841556915690230189555357374476559155425923909480520156108022575051677989751355826375987549174987229718922527971484154599519072547593362981756262593451086468609848009641521012369704017442142994227444151518718422641857989018121307656413815712023451709210851768511152886912829227089005597648608084810159824617159681008469006551641145671630428335845559720626059586883833580549152166313366933331564279710524467966912411867843076432545897012014996514158740014814303500077126504859451548588435796973237142825648134562890581887212082513619545014141201781526380379928614547648307908852179853017853444120123591055942344124614211242073975018557493060161855544712682697748913069437200578833964372002842096388283350892248357815257537602013625234832808027670005009726220508541771918243048889366843835027799247519996597158223637569435909082833403174341385872483551465528889241171808717577416674788438235148091558976572161461732552977655469833168396876439955989440818912530511570650226917792769285727259903320115956078698485766594770394576634241210008860316081309845401054291375024519081631044207369942771668284273211454034998482994082517800446119167745078158777797821656427777320509329868078710289944648449366747211536791267919777211575273744546461249321028428823349964493350986148420899659848073435182240828075153787083238860034863566010844601161352267918805126574821466505131787413158149462110989038770379779979881290528349761139433547622336178606602568997097304772046189921405029109579573461245223684339494740780998142644032436251905992716997551206055800390185234620703584018401239867334102152101165473445190681355567154876882721494860862005525355624756317676835148642869461599359468347229405907527871817671441184111615542836824085870860244895220364250428809799907308005207188657232017876911860255942298710562585436911541173891901481039493214851820755665264684685013950463367321127663335922295098187906580404460277853308685734843548501229679217908542569290651024667343343201423694901919362829751296164938726207034506460632783958158890754615062797302655459398134037810415658036318350014731825817205750401494041791097348458955390744496011206210701901501219872168394723735006132470141211383427709956939500925996707602887130807800143222840125457914823426324456258176259919210970796654254047927919056239146134345774999831541884884706187302032858372577473887390809239473782976826556262896706790190537701771396614244822902819165832359275703264013196569824283820866290492130493225719711926518410485076276080024448876591707356923607116604375248273649854299944639540960450513302573076253546983358896781827341822126502400369288715668806062879766691966990875409452799276680423411752508715816418898157910612750007967732857394797014393190211006530376274167169991135433196450242309948847198966780135632286565784231903490595814383036671200936298024360778567074307914131161093818360290851712127067555469475411393974092801945893953459418324045023201951803954490486277204721273342924766632586088521676355799807922313934946486087747003970880320783349149649612922767535044346325531140595974874239079025524804576324417585819014221145436974292330564141370146680043623238656958750870507198015040987843687703613569506053440740056318238548482866673010186089689021599680067097462211101988166394089542751914891180518090190302057822355372455973927916886442304259947655084258489144363462775681126677738951855898668195267427740335442121003559489133058331714489960938705335074105488110587622652912095846656907935648921718278213718869339607309412671650961322427813865817244696640356540942391779558859467774243281405609932374501305273727778607903419186913632771224831504118416943500531654756092932855518063410031192500736684965566151044768197653569624594196393230361688235465128093365211861928658047074128555832861441651880625443417978441491004029748185882283779675408466224212882981332821561421185480879230691619879756731994633055598748957429313886533652946077564168676495037876700889740706250655332653546957797267700713296263035179397197147817675211544899455933745522314203336229082131751700157951433528844757495224237038292511375131556940288495452721713801953538381739131802682235755297149021824090964551673891488318415082987638564541114918357254033815312458888192875673275598168665153764740035090154241771778380285696235458693373566632934615992354710904963853193436278515131128450689865649123560778070235401194019227014360374695415391966376582634674453590860608490215154924837796650395781487626813750480823194419919974778910235333365127274377746671804815532385729098794966949822535201918914873262606150939190933724723735583256855183191158064513832987734467282053435618396744848785218129456244488929788823414254714028750400726166888557185470387536184706296260042794083970406565502898836033849962764134056749525733679804396300482584569381564183529404590383373120606490760052892669519518638733536375744305711934033104442913145269411996112519527751810001192418483602383767496026595019294814941418763112167162602031078052028775936432468001088087830627241576266000492728426900105050646026804795426588964041667441290526786441825306552925653814854130497170740225605461877475549287192089270745997716504190226161506433777894695014087237609744679270845883453719033143377884876869051957935232813146994406680489263434921061297857121186245289003797752584340632010683514379248449292186656693500773790035929292328568337810919742211910953659832197544369447168789622788717402372905146169913293354135975620119343215746423266159877978268519837084625216327341723415861120206878665400985915836673449292223525017661134804132396090633546207069266890586231402071554118689722772786087308851180765401118557513382880758736418208252129261790991370970969477038732210820705609440288383228592559948172610565039090948042818377698436913664133156062746147293404342520512084259663702738742994912914710073277848966949395347706045690160988211964120603489963427014417348184622843097041781671548935625171045787081426889422124954536160781268220615958774454018097342319529931705536944561496731020640402071329389767858273931791879777391718239905298146321270129574066797536386393537946126616826785912617056002740706547677081980130331181690035164860296412388559414882979984958801487113528184690400087733877004154090456354360875981702476533104336847054721789272828402578596723070472415544901284878040913074678610628878858089457502618267685382819741578627466816875510596917363778468148324522212753409856353082401011257847717950860422326508567551638606857423287871073351116621755318670503979761236175022800613602793744603105807645219159935014611453939258909816646803841272113744333245613896857274999440185289326546605255899052803220975472841589749576933725623756683614266513436840250613337118071252470675058214762146330166467635048554303871182594714969064624124070951527877753494404223128918873515091777294577008416177051977245232192160543241867169813102468510682916232379003300631987165487526466724229482876864873699226586595586120307875457451342324161139617950874811272393044546813909028965070491775261074162583246020589185460021969984869779051225411116408770221237349799634473518016998248319874036006986493789020807701025527386458733545536512412992632276823609327943408422350819240547562812974214007074083686089258364122547745739691953883695565401000409689400269083226393048273116896406377004949184893379341517336456815494013302593667285091619945515347345911239940994161792257328053359428633466009712540347608420756592358397120764474031176191717707168723323637236626450476217114652586535849517522237645631353844810278426267966569491192094406691870010181957216085375327401402293332372742171955511736553321295000403462812217679891442967845553392046946960098678033129917465057859488817226187752364459202684104772869849603982393504356620297235693234466192786235336771051081654675022014758803040314500959994761869954927442315776249920432408819417550981266455342833408295929466416950724145911052068703283285537618970570383129672140423367973366903739039390318527543102760382441153138905792847733409080831054312343959759801493221439323667275828928342730526579154231416181912713718244901461848679557237023657889509686853207362185753671699295060593339155748309179439862025189707894231413492083902337836087165836779205638438369135075655164021114555110363661767207703698679888823344257394160070710739927254901870235437867916808531791042770716504589509555602486145677186706465722919138431262106760331596716628126278079044812668006015947345457724765037645704777356728778156759306469848637287434636832405833081261085569205642284054573214221883713265324193373879763283785038455134180205252559383559032959823332282288731641896708490360078717366300800409907782602336307540375552685656510931963010372204806303566568744066002295125141824096443267575316817543995583909878706585585404901372480384004772440586946323534398548585489211116621848376114093120337716224616409266828842564090534349078171405479994666490963239595827323813972036097562035166667440341916715838206452010907845266938137434079099359798346812669849885586855826900465109830750308117362004776711439427903733549920515345911068703520432243998812306753019049892508290969252886851146938628818972636458157031333826362377593445974842592340681890528192884770360013914771756975393394616534639089518883720961714401696243502499934181976099731222120731408998277625015986351444326435944598772660224843281877289064297840807195161630462517159156426387156483303314685843490612540500644840302257947900645420243368082746831125353495151896635705913435261417073407426991666320873186827632841469195815553491851940774831579131179816997684713688136478157152228727871523683944820415915128110141969185151291657518078808186431298923192112162976120533058862545843595315732670841497230330495700521222522253620455267695367442352874796716684539941880075592387213589433336587845385658568155212232297016091408211481102618454282830790705410596465437878129926584619242474203830688487099171191339426780954443393836014774690799494996627584685927163596842549584323355221637268829860986807994629486538428416233667205905863255935262277572351936618530553381217242089671894685645963455885721669576948310356048427384908206482482255320881256228109615379515539963323140958701280431076387480755792779454600352479145962295568818228991676256163742918033516214480250828247423013639070368004335345916284089055970130476829151810846285849511610415011643027601001971492997020349680789132510397069064363884629459747876424829314192065683066433425611871466002949827913168395410253127929944099744704543907178384125420540397047913256604590784529165491628005184232488564008981946835652774512648661351321790501736989785536326674488788730247771197672807398624532922530505032728407386334004654302006844853879261402687154621510493157410286554523846978069023012327356483935540380523505490678321347081029223474339064200659785209554591039266190408503909089414393895248030026683377475473242720275736309866669577444634491812555789777404052583136530677092892106650605486984058694285320665234112437708205483089214296594254906203459316671313476440732158079843875211817194235851012143816501679047228328225384760439633692746996906876540184442979967331429834947598299674575050053041237559144426732086594099114969438939642567582730901434566377041436639927355233246399232432673522845882332695759906670171332240429429579023374338664790674947238498413565555224155090198388379660813812733829821705402198595378964170792671885045738431783626056474529791844249895568234476163607556296815298508586819340473662866981717095037411175300535220541688324091991531029847094591463603872715416460741839913829088671095722933313654120855631971893505768930575011438132100074843524257995493883017124156652577851971763400334488625942981860382835062314102476656249143255430822108159960443079273754199083549123740810567105424776801208701694362296917551961517500441071263137395780150571002866380733028526822315500733000750102055744187725220013514857912267617692721929688917403850639304845955518013530947301770419550906232564371999522787953018395787628691552593231598450142572316350185623608274725515862504825687108525204082098303304833035861061215570826494990311838784880802302346607561133507979727675835582288736065224052662914643734424799796138603032075964970885410744499953149350995265355449459305042866143271133931659744659471040942179163689671346081704382201374067635887120258357769766265289167110559478919670884170865343886123811152853551262332289581848921700172598208472937080875255834420164369342587059860423782596563335363464396211860137889767776640239331597946430557218295842274178975857615014730992641342921631003702692387570928817361579700337884836211972014744453240869366909647675702837938151858334406916226217740256023003526667955459617619792598549090648887091704712634046066996732121836176942134637625933957224771189376894655418323747696262864989592539465616874767695274999109854113398752141331499945873970252809009582323352889504206259110760283070835441702430285151061807918800769157208051654673622876712958126775288448467008470129357588477045188630666697446968463819766576535749074900182747669083216202991831726345845170200014016340604774190044506042554980889972424288110506299231349130201697411009024129776131743331609035999458546543045970747555981134117784272156414959828866231101718054629587867543485902109740991249956688298144158316801411708262788550125896520396982175589257998978758070767023820580096934917811081216156702016690818411738464970328006254419416021399506780639231590594546719269323933162657718662580677402294243214694258909505522837732167571497913137696460107409775815925793484072611676030939600417712145266798886569611649460302742319949355286142503186021518053744212567287320526339252909137592474445129758833225107467597427837701106886175737219193971944832933514035218697366269224389868776232342507518308931153800453512995815238612105985351950009359095556656644908051730675636784038778359747758250965028185343710391785067429460292195843697467649135203467471310662642971651419640142209513122681692748928153291094536460167768403417179879940316816799784866622037857969533538968018379418219362165704979678864028275671278168174475027780813715222105211332326066070544346964943494757831760982752433926983516509770854229962890774924750849788655646023188187235671946385328974017705933734166291326487587557736279053856621324903832975426624664890120345470015649156390833837197292474040981004052537839963759008999351302224014688392153314231713402823573588082706190609492131834803201460257480879086790069016222850669585465706324936553871426083151868473496474341558508490368752265061610929615532857874094507229038171928538772436822302024658445213107190471344576154585150262365462441370800653795990801677647883711203686503018391438748743926760394520844477074735238761477356391152330867754885140434595488171581663420014020017454116485186009139281080454590535988862931854851524581631654670175274412265550256697274534635017146625648320176235741673349434829638019360558634201684922761345389015124599181793532765650793658207878211739330694725668968344315068235771515043373107961787248366517549180561490653989088459451029282428928423259688616121482157480105920878300003221301987867377954935064100756072069084272447658828421843034186706009741064067252405358866472504716841157228442949871995717670030203815846209079565902053040009797786423447949670553194457809751315237451842199043422703953518195491082457133377204846312153963396115571212298660315516248595004178103384696987772686315754591311905118981616455972524800076375816962492306425292051371085996720696954953876617441136679356316149412388369640239810390432006709213668293629494223886522086373312905693424517804841192888843975827506849251623170125838996813162708113592613490323481332048066904744510037358259501860298016422682078049512382189001262493223452509334610042631258389719095991249897761908638879740763696265460399603727077708997763129101315588361058013604004304694522606312200041947380827674842733209625294057682111779538809949952929737905455895615278786328733930249247133951605594829869122531748862249657298386157792481425610926828791464710551094376240886549734815825708094644979034697609212102635241273165105884087345756745436208186091804735529385459699431543767038843205469171563278408124449670000058389741686326795579267103331782766751417879605371441356061007400019387750458976543417688192916344369616589240833855780428060577851020062165584991171282342796707812666162236987552728399030154015897777113480408021420617766620468820410720180022057277995060273437808224951999087956373689300098254153558343293825591021146609082331924613382711104862665884258612263642798945951395201450670969062024913499127013895013889848435325481064654598823307704799757971554418258851514517477759221364392056339196277390141605206343840423207890669351417903384404614857753244730300272886332983939894278117798300039335645661765384405300160976435831164732147710504881726082226705208137023711911743748590735649919518978776037398917816359550239559917874844094581629062410535029451380584781886853104847186333057832323544808054012233024781138344851264319194680233181585505851879925450864465054182046286459064493288645717499120768965720551568525320527435221873375131151184676672758557115871378119255267676770410201557450710618066669228286588954001277835619220317400934130458401043712136950285017502373355026778212779926127085263408662678783567475588212259867042048045852059276357111689096338651244611700468884861859515537461264656425525834211868182439217016271166752656233422962706098031510739667002952039133421031787250639736072675177187040721899473977696791977879412848726517839921572127611087257419137388291976898090529109182672014479113860919252720909799698249298981282262806166377148202243385531013927425065483622040462399835401965899172625539961809786086413183313827828816079077751604163814495501123489726652512049592676573150829229095576684434404754569716755425067240765174019113515538406707979765933461702390575889394419568336772094749026253736215239855754832114124546719690722068881047363450763804139670695628355557720481701637177894803443600475201797419043559165967385143395358349604214435316154827976035722540343898963042886380307263024461336130297680203046226522669756120924130605552405367248028727883663981741261751367234913454795639553004399636343662829572420857114407812808368557374094773349616898617851167563661321647279302653574107667804920775013762491119079818211801374672709871789371847040186736697383571476208390748013512530353006485493942918658957505075594728480041158894933267421112868951125972720991689760295935919586895718294163847738665262523518099823178394490326172650393859913103932605892397927879700089224563967777949907997141912659409991666796084116617072714298555094013992931445947505759568998669875735088201416110360438423278089435615652301975121715838571175586858365894751506187225418453803768163601747214460398454849689246971060604063481570955991294475637306404471428052831493824761735358095899026498827226003696362500560588327596386601266258810372510380244624798645820474172301728084411917387439579361080763281118814001091984516282255474785330054936672312924125946912167095532471117732532131069240152664350793110942819806218127900196327726779389665100815688473959059828425194770729134572806875705302907066251049426518408698917811050412054531852100323201873485036602217502034128800850460027867417547923862967160530018876451839905118864571268476066575676900160395533954607523990086005892576599485515959418702991454027360177052058916221354931832839373822983101354319047662454167204823064550416691442324899387523487181753001389541867506643057597995540378230751543113364714068514553422328866202526741067295802914451093287572670682673943206237470854170831000493512074732704159038908986833778875972189753869511948334017294081712940853105066283667159138075104113163859187862731451274616131376773920696720730714288213567265413945560660970766582218448485682559072707708336686824077739733728341648058931884379183855987637149067018736196278506263846353592411830641108887226835729774356909486942537485624646567211044149482220980743019205071776361632429286466421046009581635745764304862664187699285919397366105488404181448213976245260907677031838683734088369241209969791014561990968278346955879415703441166845431561346491662593607210040846528122527038210149395495790935046758223450719791899689629378237746078505310283428607470109283663172995230759261542453314785849483527812984951991657649756305082212223209111380784001729884301117607921122438461226068270508100545919362048491332591355594470317714692828912255882627288711842204673695015986053231219457524953046794429506722415739018711004366587228225538072631055339639565420179198093549490524777829706588094448000111231176817179917427249387642321341046369330582150286665788918176889326464074790387003972193099485245604701112780893602758584667814090382545219061141510236738332834235968759761342456300832013224549951462722830749366415585333417331598086899592452084882906503472654828921292178929678984345169811564561388462180577888391089938183754571617266747446645919979158929645318287691999561906823697803990771980269188788153170184398373355202674377122330066333155930029474232551365436173123203288145691323989510351437001029133006868156612660203636912315030822865748433208491324673547858858664955951140464809931025832030266152590338911359665745630500402624375200807670823421807517626213131967506971129578884911363053002338224591433222725532396366085923682379651603271730366863629534655313686627787766173963947872140401219501438579628327794568009418516470690050747328412715847253362270825928342975563231296915898353735091463410881405212690327792962995068899193096950664851998037657545283936253597407027010724825965771568553375848159589510952282601724498384385977979247198072204060596751978158116884372101207320758940232164901634000278068337731051454733346367412253744029514813034840148093906617090291652981850350114532187646339420981586648788282175769540935854710324671763086314394572829419718182261865555211942199637831980936545281628107330690094992810962838600904887337493547905399674328652878015179054387947103317431017275993168960525546174909872432764990998252374570648202932990392715948320401630770102015180121076010318316597691054592143786823349928002700014468802191952681700395827738198724221652064860245234422783879272490435631035690803217591926662085498060050109444073691936002144170474471016061345302313151785556666768725858018521950004704387718363853731687015436906419057526475850869688333097508337578915690029466018781987295347276769288263006774019452901837371106616633202364435183459103240767547165681988745887658465087656100642773211231781325170114166005290836679131541711497308438667803307640835367372077767991593528481814819848120161571634479401346799407771740279951590046551006949294047841824889434747538943172674906138613192359465021694196815127647187703711293943474146383602237745317198618175995152476505674022996985230345538543990784552048660854753320626463365022686749413591418598098401842637485815840557519587203777337287714212992082515299757107533687914855420555194228402012789482797269698725488104971008237570207446473840242081605009916295975207694405551932862629770656568168748937267232777919531098676903422716287177970217581654214776062157553058545927393210790138297052738386303827399619382453232755403303077129451925986975671415783087898998045247268859702618387737290863052419324852837424249631486404016800410645983762335427958435444687041839786692607360210030728470179154741360468347420914491878462784231217223052327711292757255811325378343754209640275684214386280278894497535109813987651972324373248363997307518021657426786662983369705546799676292506677468712032468267314024016482730566061201060495168182205404750403796589657002178768673344982975748342609924511627722941513601213430255650487969850855859599406381790928290247157820327277500830011241260953087688629498934625120697155192449755085301526259719061571711725089725479234766999588066351120197679420028236089625469611022297551208560422300461840664198542387033399864105266504846248794769265182221202687133135313909452484307441784330100615528389999281957663991750948675369024052324102888687225943222688790699017745366594778472852879780693797272930027844343779849779349444965376943419869615539219023262937711415275973627398511614903361734880630334702892701143291642918502967495610354026266316676241408449160316772043398148043868978381877809617735338780464243388168641243339877016330491622451285004307068502208059769053474278431227776184587016497298609449308432978172570712877519447466251793759327738430118961866662299767420133513383582931469505589051369529752814126780356426673306610133394112116888243413023755817190411081190726969423653650294803979063108090653486042576556705122169357269668886049840370108242544140366621832637765095354749037040155410488429532381075326469405371242002294983118457828333054208037111043962488144093844267037633683622495189054359066882414907807370486184830763968838711567987318571171084947827519536796247553200121051662517067845683230990171449257250268067684619278469265210177679769213954788181853117737606732136158882027445191664336719551912774469857745166522130962793532615623405017951586135013957727828857318918032961736683949938313761134968942152457057292357785647809955542355696397461606391052728656152784696388980801323075350824514055268238536039556807259434588202403070171885508815415593502576258951341500855918444179297499802866066856779883769349277018503571287826576420148199186421640071521060424810524886934942241846929234414272817563561572599229051101211421309880112274511626235466068488443188309933756115747208314730073978810745766798392875722879379901311711110394472258643906414435358563378723406532406974135612942571933135339558924968508996722220684306972363132371276973006767849937347948147822045352213497403480687981099944182413916793881619422492372341377482525390058060863641495103015963528470237698196976203895452260720104745245431102023690085224097974191030137038430614275390230294325026043496612386626266297130164593839100128999301633475582913483950012032433905791487006726840718876583468604494103585239181597292501349234801848602928812336915139906669438131087892537636541419862471586469559760742186082469288782194594492803231530060743862420224028966915245594404649502334543614103877905210918257930566022422259876859038638878089239803391576933292854455534516133425404972814010836058864860766979114693520743408233237111602059123110402236338601814052151766723380924473363147862445660498185591051489595812522011833289454448961757815728953193102583605432152880547392194056477092356517257830396233888684448072462799959184383273270408689121645608061104531727104389756269379469463678754348924295325937847808792252361081306242401544976486580153291514634853428512610354754164382097618843006373297504305222390330399226077791509997990379028621259804867935153685994270475719792295214244189651234354566444681511216267797975973122408502949786033015775057105710785077740240361816563160944275626676821809484652606280122200701750415894031705308471179385911438525274752234634641320301053781628991903255196868177210159589870708902883784871430511434881884646817571702198325451050211521415792782505265424132680103853527588554389874895810669111228516247302229052698343556859981045302675913658126327135077251156560914922815600876209372506085127372142728042268687477542058539024677182407754752337866932538874131879899759725022865341511698676634309446850079814007286613226467731632803858014683351709908749655165840774267212834063090545022212367886634224922235084164390639705289036483432077173253754989084272477186287271982968124592988582616847513624960876471901319045542045945134201795018765767561136122883475866233706340641485333520876400423860510764424579155380359329957220985530816836731289739170238549218492317591627527565117156635256836323810571443865238602764202203566920845257891804241757196767740136609706980121997610145659796835990328145202162638736703477317469241174424811645315409953022655631682632283604837471683743716527140458566495033667268668584206619777675410596767836881268190025659833551140411513662655322300460982924322689243509018364331880188761448932672228418416379085524767782764017458277491355157673450894208806122033513906146321019264197697813372462116205880934873881969247137409205941685384485087078078777177181973589928073856059565745890674830144100620176060923854937101624114550275809623527463594369497235531671246225253725234710451262390515382006251484363945690220041056104658594784579948750079913744195881606590511962360652780465436837231946722498506623576316078383748230079200014495547091300072625961561314385036242222636730939465826332868318185209571471567517216864462123243460308868400390735385325255392635694512103298862828891407058766418523281440096498995453786349176544950059806322420711406344140786321912776263839847478015147044461026808965808716654620233446428528844158125683522728283955995686677226437766527844784028798149090114767482856600486769248823199184630044904528641887410554664750394845467632186760583012005362014441520331824583881635953634933772567255742273636084486277678654616354304446632029784567296517636426683909285802279624498045533048940510140862836358273339413724288879076084936907255454946749613042166828608480378300029531461058347483919507137266772997737844796424412100712980846289602055380370580290329508206361415274810256440239045842287683445919402400970785640105704047686586753537323768902874161980532256705696211206685758021022485596980137200200187453387840775326590644605046718090811977188179399727678359411724837913901653317028121759009065414696217886030574842232621876981259469151386486541247554010500000695260462491236198390966076161780479736760953858260250653366027444608004671367165481997792977252177701739440348831118799226982270065536877614777468903236731292355373610382139027682371269782409082857807587370499997494196213615098576516837660729842218570947164782865292422443626388487886788514793731926521767042319558144280108929322811738349673310175666428982167564991161403273837261546807376929179942128174861078919656634462526375751951246028976010948299732075152860655358104878366833281835877256096609111949756783584522659873756644954345996937874212630274043402223842576538748950098087503259625542328435303035873380805173619004005399140771041892291209881658778569020759609432581884916888978975242521829718886138129086888440691221744738456483573157867979947686835237196797569091922364715867606303869109663178512893821283945519962573475049114529718149294843980030332509295681538493252196852680671062341563616343595761113638966989670792032411234905200996514383936142624640316902572716167105091455706754332499521405278256783416371335780914140955176963216447053754484817854106579037831922962608677981146851626884998250005065773491315778123426352442224290688986140299952572914334374059450443064761183013433021859611572376012957838627198791620404447842931831877023431357428437299963378985614209511796178898589884805249960431865063588502390834927370993318001878073906754315582185445875547341040355406904830748664469933891038591411351503991518216855213403024554162339015502777123292079616842310492375478362574601018619542784355052588785726085416341405337960690554147161461355716035397775072692677718851084600990645182965145034335475278934760704597041323209530567363610237409531371660187620595707815335850101572546006380001115637443984941155039563505646510085156477030542538571008997318586722869526164761353898068765719750393245414305360458967726903165538450271162362176553402292360004953055448911610795596524699597312336151062697706326146512750667348469627052158785231612315764127100746150854752172632394790506135673120256965688267098928870739981399699039225445044496505291240369666652319319666145353037676179899043306517584765462358856022095786595910150230424047383357621046877947946031647869881069833452586627942070954362225378341352594505078603362672857997375215336723191175188949950744015503443408278831250435423356692406457246825627477296281619241238940922702532766326371506539965360303743512837136605299293436761446706817604649992065577964365336814044047176297440703562442679583167005579393352842319947019735584109489536845774149395906421717204720872042003258728644131363264593112712887534760974927875922629994558385148155653832860036017711277725108781642616070595142425228547537509405866982181587735096600382931513398454394407622198817302638108345370596593417547768902432777740083166137801119827687584023445266039315576538444024874293192942673159261604648206185802672988472907865658219723765276740932586403518994924369134314942797757599182601778843132031163037465530600778693327864010989124435034144929543086122284367996541540908456366704040991439557024039304706408749978531672601509628702842385692184196557610295523394821271107302651347929938210751433287900646267046459803570562467723004080152204177534050375787189175522147650571534469599127741661361410532460791949367392945762787842357775126730351560014334873540736602265665163488901104700020491644692222704416218512091059901062688066829706959930308824907332407282568091184826102745052066280902146861541907856203026914867652178212229273389106915972314784417417857841190832501205310488621904614386798409823900852824404419040286722209884003158050167043244442037913671070426894304250157574992647846023722096982664449237765989716155962476144354941224650899742655545558571174111457768268888989118081422602975256844516626165736204982354980986211544914544339764278153120648262350212425329347401624651274625987507577998411733724472505054916741854523889764132659481506843273956758720541904656059317777062685015817089432940204241590935609787459922509222049687846462005677546554777269572474113042081611133398414975713108598969762655272039819865123212954274420001544072662862051056084969985469262347798659186775661244019765492325555871152300075504376753007370783866532161135349291164754446308872651633599339745920099761946112646753941044162989515683343378281553495229855970791612988402261400121338626316434963613152166151657370674635984101029227553835593042513639168077889413514201749364424591874347284107760491084194655796792456509131363434516912800600406103843959317897162461324770031568321746602307675920702498929492046115717854538745039429505080475231169647842224869650927941250976668183836032165698829812859121290744399859877294868191350942672988867639547844001437046599313953911453266761710043307489966245683973319240114615284595639773708107253953613856900359709939348310231994011757565048819699892316114410206447203271551715865158703235080670229780138276685106000683628723930286526360237725391116273136855571859712881328797573763306600882204441307087210362323593662160375306774225166857207937356323967197370691464896396212549949627477991982338163619647514503578586645382933742134004141312007993493744372574702302053130355246011298088113629837884484325213850188686797373457198769873510081512336804184999362189709405606191270371923899874406886557047123686423179067518444654087822130394507808711220270820087625960354415941306768619768490230183684098900766260055999489962145886316896132161321937510868499211348020687269340947323661102976523816078709206127949889631724734345494924037070602107687117541468687425218339264757406051772656421575927349019061383445765542094804768499027184022597506162835093421236985764581369439956910513387191303920998320684520642303200684628495723515617246500246294438141735551194833661957454823705509004732335576310756030292685315376739767449407944849390511907174253280340725600025947237766082535640572706203808851336389538919710565191723440443418890920578750784190758320088889431558418158679973831887391570596353157519513118307110964151969121051039580254404312457233259663883980170306764520601399859953901053139438795531197628037334600265335682222310537987885629038366482268301454957549899609423597597168332886346183634135148975212858764997572679917606882137877092562927070209774366019574511757831833885760110364049690431493331606420796467526261142613481346972088815080936783995656738787823568922289966005047015081570844506422921771882487461585722793390343927871088144546192688745661616842835841026441394653149418747972167188696323640037614773036077160511220546519464405960629813085397839069763703896322522797336495277658166807360456703594124925691203396138296096829743007736545250732682011351717602850597111118682536411869759890001789359143607893015183498650287115213562588780883340253324455643284101783328074538293291633505541301941205217752385032501086618031430519537132832217766989156339342307326799944650884385606145058571377164025713986627193219799897887700735307733949271452636206703135446122924317453743537383599821765238515654133685315830962534456364264620567765736280501395764596326493551159776943863156868207630779472678345216678123871377731506521662016015451641557075032175220811128154172675078879791882745691446987236557209081649521010451051775799282548618185175639100343713788085009971477445701717324575269442404189735017097813506275962457499063186490737651602331485827068202370106232630875641994287235980661988330883078576136934566646732599453584757530444564138451464111455210703711002835235652072880665851601707962906516023581231637723311390110078453151409099716717758832266446129663511678607033671220026242906841865581773394578075955757475506955756834130537405067188416502657681518419990188684144669947396798932483200265146573061567341110610645966644772654421666317376137582596831280371829557570811956949144586670768780735939750595657720546411994395271681350376940773128083431195392220213560540897440757569754721420875247871669201818498488236435510988837342392461044886943291166937764953702537425957444780534984632675850747165254906622612080071974046112514299915360211387935215556254513589614391942173154212432872833861998410002869351326548614241517137587365491213794022496702102349042402542698939344495663827677598808716218995159766103781081036710887770991508674995925490966008453850284377367872621635018798522183543034025685387076875069281825874259480884975444480220396634959670496144884565251015492768529909674036280716808978106636827070582504592587694483445339056662545625340705074102199932419111166588704114128694192815657041932489605451313174067847677071894814304916547139507325534764731865627886111586457888587522802099879964970586761508035025369053819634391677524116337235221019242841449114183284560171790616127716124832055639214793068144518896366977682554492557580007809401264114641785710063537732848366760299571311450957634180286121044325763355361216557898271454256455219736110356562084396875555810796988015556181930695057120150312323006630439248833551200744464154017144651832692023691314225622795785362444959199562639196588761841603717254782157226388877370392781773905799168302568515660704057505853078969726880348538413793410419495797899387488744646087549818132380335654458187568109541078613291644547676723535743300519538211102876317938888850436182953878495896520025622002778950996394669359548521640555563619771636997869982302215488427609597988315468658108350225689446316991206748861364159173070964377026827304115426655079563536786504922413469483269593566086524729887208220812515736172773587253703410549739623362857767903373142409888844534610802241784211528957089700461507471640954676614611749493175220196299226014109240204101677492946733463966334428549860725375112942858002837717439264712893451994842447913883723181475371967674458490762607746704409162966338904231143464567842609012424962866374206616479702746805667206389275003623982471100998332504655161874630176224776301781373896639900174960906925898566045703385876463517512051588471589415902850165239770614959861765376209637362306273484232678299312400053140647065668081831729980853938870289309991088530607403795818115333712282058787012541473859679726991298580171152772125501948389020244566797192496791204281960850367395023495974422676004145360514231637314938068433840358107292150113275589727922971017806486032093068995378506942928221130379801969110921867808429995160112859538647100799548396234422493641628237665126642255041763348099086893999274193078807823503575405897691808805013595318022812842938922410977867803228718732195748659509299724687218382823734377501458230080154430373690700633670167136977214890076588348024442500504537849925468993429845385335042489847949687153555304641885024463296898521178099453729562982604407276172801336618805639585577309797411400673006159125204730058784901531093227149893086738558501822060581368294547709724929227962251841017045141891012606968612540624520578402504007309762839168878021529576322367775906078265902609736100432982794929261308832527276649395981020413435191629945286987335206857534018835304775337531149596788093116676000961570573165305002650011260153273275132924199827383087608639634999872798955079313400932428576108421256677997259409869653871696714497842156697075473292086782693307678199006299013527167937405244573033167848583845832250614843161109174272032917426926024212915772972896901932796621933705294909534104257345631789459843881589037371046322592944190952942944385157322992109788423725405150461878873885912429654944268730693931489913226828287370364115804163200293398592418690894114503212238006112400677783643338479149103365935473980414062147021157567563121957867051318012575151805260445347810228008401638411748539641267146328753588116504901390977290442720670478379187903485750256422773587770228096289374430210989234530514299384854877474547802388127951695234121111734889712422998819503975213539637152235105784368562570104129712895824958580236638140786347191142928812501878852722381770845083763732814607867479877807219932343545873443111622334491245393865214430969384148627789746950225930483761195063020914750738819193259558846982930838899699088457486407438051886539324413514447411183211281088096597650434586697779120431069443193097394926681122017089293057118328796548331880838849462995708575944186458156015144805257719203565601347493598280697866820457156040165555369680584263495033322081219472619366295455436624996418561183566453236863064628856549534433645539462521114128014237414247617906912422565696708315337111263032718576391154989360069806909580308661407713540737269768734170918749979133796120414742491114977110093364711803180709818261862931788432163157309431712865448730370291334974761922226176347797430020534470237040025123283502385794198556323817964809893434068181009623634044819980720788695788532731357502794386040938034546505330113112438672702753920317610719530060904681360833331884279343510127482897930953834834821640475008238267564782532926401246309386455942985421941635549136354220286091636547571911835090896629037118542315290929007668380525880969975836747939405649847063743486177160405867408025674180722029508581024766844844921003876215753419941910856134895271772929344653044269957062005064141686701709548922703847889276691057354978680863870663020558290546267923220516296954205109395413942887154668128039069445487428031064203355613736037969988151112510831343320384276823891284532143890852483750655085375318475970047093827941549151452329459262764396737643127857094584713267787686647214720379202955813857559293848964948221118427748860347965948531424250801695480611054067943831247321985496720665818354746390768619276722497546736376628442707366753660719174217333050896172560094195729525783455278012244815132990531130332254245216558161188570807643886286074946445260187026829419640508349696105710598874229133959874226741593760274456077597286748542254149080786650278119853749592945764491882465627252071913202430555185326042195468965385077687805721644603718564984269807987566490587827077034340948734382520408245312000565671769862071766633641317849881705721995346265262466991406787469784776966787970265171387479751413622113199903329139340313644871276259039739547107842896992217851797573404938320710367382684137096545345122990328850905499954143785569565210077968536036230694881546023632188205563450627742682836598160158063845611736846733586489988506820159850678284833692687341667775344379857875425322357316994549291354274700408706813752817385160178887133821127109348178536318972081996624525974309756473684837700049455847751695352502273874465842486104843171377792902846096309562572527882821846032920003975645419555554225663640815744740415384167042977254059873598583778461881607881482752242809991093768204841665973357901606278791068341323880743088246445347408920598625712013968348332675468600494455253177626346409720597086090890953483028214799296258339442482053280291728452340530240812382487019176187290910041384093536004717870878589098211905669683556563856211702985737700596187689182763880335979899843390967545998715944348841407033339760765686269898010225153515291927767210913194450939586625197462239301343664471608538531270758114604176806728752851588795180863892323381227035344828240676309163112122977111367819638920196797185276477496760806976939357705782803354369593883025018054617276833120443080696959966229961629987480555695565254330862954723492104582344259974405912900120810173001589902700150990622129084738794434877106935885768973594748014725129337968071364098017691322268884446082406652601478340913614982803306060174032472678466310725348271775713010941872016007421468396964320822670590517897146494025786380339421185498275921980027901497523389530140818453971752611116064635927838003294451856084298297776374124156323779816224108490588658674165757842414984033099744687852341865771548851136802417946169852481954458867846165563457417473606233226866255332778164486156644173923430800454877358823420290774430647303909615288550459076205607209446713009206860645173183459032642553205353913617689331044842977449189913607027381559423469007449656204473487550042081491434797432605278675953435175609789815164371345258039855571649040793704817709091403491501609047765488578618224469225963740959130092129830918161961542196995434859093272053644288630979373544947581592776564751484372898803966295596456697882410526830617851075788476271693750256808737653031502999882012879052591917876394710699516991490339190646516604481574238012013111045166559957893580713523710402890086122071334765082148116609342996209106053522926651500583970639424815796799583599814753549027762844012479927809662884643910040640209701923178423826126049392375272051187192043457143104876979689697880449808128490049644529961078658916854508267712615935498219942132469094228463007868262915842847023018890562889357946221975158485278881984210354596470667772711792191213347318556057386363125184325452079870756565151085194889678699072112909642531119738331958323605826541469958878594494965445882970187312313097066087936447146373045166732644242973038284610559097881267751612974079854511856736621506611985062940209455008179301888243634721696492641182946583757730582688603824977630036526919315707719424883037001364837554449537242458880112099307912824303267020305033921432412604144393070898068536017513178134776639527149403730822498142961451231508087419110306796171888522274268942557136489831415326187108954805819502842468910821663163471686722530476315982436409375917649305382871435367378327672657555803702203728545166195018144152051612240204441023710486422835263713095045967345856181152083022514449611870383941646971266652702869017951512790097258730307800430099246327277322585951811526310487288510271858806119509821916547370242118975993661832631209396901087284348500479774537747303073177419276904839630653268332675890770779100795869906655154706379610496648206384488732101106829192139354825327831744735022381358743189234190049584536898539918599123740968295336972854900609713183455181372380996776935780421362309872739808849733739551627847332112096372438466684005900317381986369700440273092709938073500776810393289727475851360096770634894355245402540985841300124041581623969408048558073914012979219147209205576560193688457192697447267573132247344011361391328036035255244692575426399123244542705746942928756073683354663636397335075856172397477073656959851105794699049479856586688013652977404240480790762556579929720174155059279012209300250181082764759080281407912898446029062613258361793205110497033962161433515360668787476065350446633106092859419143308642275820236615919459974135796666508116593419613278953854344297228913018364363505180744509882738310149882626229980939727610014222971805679552150673263501923593464625768562912912238044526902469844319695306928194276787981182616557695744903336640011001401116160740809231129044584567301993341048754940224987063636303830495694597509242651760642410231704628041502478591014006646152844761184826386003072352115183173594223582653572559442518926563184191327257946480338106038519529203731839802650295862859017418026742927594385940946697764561809782723116037799644057792565125448018121310733323849518495107579301155070803323200574401558661356167787980998952468617173107905689392995049015196067998704576273475471529591068423987268691905986923912589585830195588791910975313781000525077198818233038364497857727550666233697993180445604139253270848881505876852788126932416718660288815094223934798429269443316818744842379104186134105347652672678882402925144489202944977539696348180729343894686814219657510405233752161343794759584799278771450907225817234569692855483399817257802631430871207877428125319871458011777080808447338375408081668133949218937306188881382892339606305416572578409163835850591286936379709554522570584463044817338079832493058104833028868551970142922652665798754747399276662396622522873734912990806384300424562180563375288907808806987370623133827768564864573526505714649210170277520485448115652103201001961252526530002691911969718006588021583930981491682979035568599058935295091251596487386519880457931405840720766366904028410071409387362743777602016651455379314718923624434436235754936400245159335810528468472805978988383138663923889414779022566538293491491169034621190844206857369594986809767942191982134868905471145626526573771511803520873914380027058943570650172954275612654934068391357325513693244862396807836000448185675745855354763398489042134632315612545699823988474059135066108863651892782866973810646510162593691062579909659382564366109520141418092883243023625082455964050488007251117591834523221822344490392485616801602540048209289915389344377396502697085842119335894043485248826561016855748118025158230175254584060335903661077195948810308407527067293382739645912669157264819916489735296393143843153401652020605413278026979560710632594505857317831327310309997563261401253068438283151047650517006683198582708191960135063391916221561228371869270536161830733713096304058525595058613758319472114869262345544956877460800018634514504716397459225440856763649506137180715944940055889168582305761426077670279009315083337773516835756953027797410015892697647533485641604266061840673491036904601241378462418922963834272204781060831325458343553832317341538488994350601657275816263074149242782683084858625156148872270169142613885703013924116502992027294472039566307862802560640138944564783522719005274409852501041387307940037437686826512676503331803930682244500502628430051470841230476901628436903058274002194245754540009146437402180338491780645984557650722395435158123620311357253589890997266334263232929069547831678387013469695282646850028595371656550182644128441789017298687530518341504807003905185872703382002859025901424345884560466184181219734441258152962855566769823705287108638813441215414699085187100006421895175734797816871715005216274588366072837049342873206999725895730006291562893179274764803818816829101662982420493469847744591264097382197731937571644229403350123210648244861559887646855376739709148669604776155584172425021779863263898095596454273580468129728365561595201395918981439023053460368274078432783860647206475566319907325312222544944675477883904593998127669065875086640727157585184840043740606018764348094224642696767287443970848504590814626498638274677786755985848462155957959243302173922121611447929410126693920713635011383121717133821819094724132504603428495566885419528939704416852876375690551031033733722757311105891506859522392906321882496158153316817508010791173869986591468846134114769192769476844639193217127865294895331973052056751805554696980386880968988008585421571001936724025472084248326495280937831475203363156027875704392117499619471028332958008235256394918671722976065820430746589396862681715563634952141787958156185234961538167126660503008698273985015052161809606946259870321639531758558356934901375733089855112787642236293935974102328035359805389186027277905643302320147685365257442787362255617000182722463887571535776964039877947423381347052147464555290767754432830281255221906581708035146566203259406093873850184855957396653256411290846279194413488237388493493918785631734732242815981037463781159699620162790525365860698678264125203065310218095943532150839214813678948110286624142737349554414904570817088916859869955405620925919734179467052106862837796747440234223197076134617395674924975339937863960430904102405058963280827035257244275974486372614372521298315322454776375656015541581055170767526308521263568063439922524839144639802903678105580117061786276906049704744177085023348228329986544071755842166305198817449613714080057746323417351616609998968296076158070166086298175521808590279436033758499300532555215276078043969182150883909851302352643769212028328068511379243077928309103304490660707685083225523105168261996463222578866058387298485713623266860200993788948977398693655228260955410240223467932515546636498134183980206133831673336850477171272840064500440019904728611564642102835521129881197324012642911429557127728395951455951594264308745740750053767534898925686205933190661440231289538983249584660147554614355090031387077679288363259647946037116830296562458678003804842193383534377634150222240317511308816792480400027352318937482551538529366594019530821542289261689590457552878815314187508421412953052973156334908952611931284193414309432839437028658851680290132665654573523118371467293837767238846711038294150795308583003550283317383022389000533150843598739340824323668633098485864671358148615020960561623524690675505396632654192132913016428010050301598858381186355755923861825811151162401290831272023082721252727846530690342509784524754669880074458045908203381681673520325236394831847335295403845805462784888383485587433549889635611509165551342976941901142084804379487343707587731705090653528353276385741646242940120744538009006116396992388196508979293318317803638525182827400862582609769763549246404058895128200993486823451545737140770179867180932271269238734483180153124190615864678594932527486072359419834946021787548215715947298465155262406238152045658996234906583634321574683189435715211284872646792162750979858413411794556586047397229576134648654528959391071160404191236862009896541410384807475918233823520372171873978047101175950492886817287787859989346202898987572303730086400017077985792265515682251479628664237729776297051047342542261492484176765091411747674449666214489876427375008917563601167509999696019124996694872633297651252316484171873710741663528304421922441076022514131187804811291360254500310238993146384591654032415692207752531856233787149327167636537658742991418374854416615010118523624590524677824767076102996775853590218524392097909670738034470811768224876489590427884367172073128092743273187412949727888118652589973660051134015426172381826320003542748462222593350185982959082685477888037906003142439373668404760081796840665604124433332284783996782096104992696283310430167215871055083082316379895824732462459076620916197916943083791143384441728106702979893189320686374790872317198261594697392881948607256347807999297646188946736734269030388028706552811258639304500420194227666832567301642527316569058562721113275638714034405986791733749890288251020500892835505545012278882808624086373317889091358821119666130564635605868464868651283041138871792459698467279295048095812064804365689401582197034917162681038522825717884597369705154279248012382148880629952608344321923566101000571953064211894250340044982631772434891804182614384492262975024771710940849060596506143095207137420786606035432120118291849471947369505082031374187375158125248318312099492804042742649134880787885394798782627308068556098904144759633764092642847384247903110915807402808073079949980427084446485800258724950529387811037615460302810156105853440388501568559672703900665784981785660285552619238319802002885269345513926460288173104474331633195539644376242720845540501497823867289506520136775582939268450163960832015525737106483539115288096232810645882874212785765296691515020795309492468384380146801252480203820251534927237200420325375705718033734394075361795225965811981754505576968986902302270913818651171271213425322801893233393637218164989459494483126759114515296612765800859626006500515574685587010249197762054753807733312903302966984927178908108428778265165144465099457954014891644216928676291755722093625775403877505326276103238204517309981438367940211625693686832557710747566944972106408193934330396811326146252680374670884160293833900624616178588120116638007565374382666236374015398653138574450304198377353465996784856029349215091508577343847779760251734733641144499219126656657892009705720196856328156432203140150445063121129741155898491291629392860837883138470720557422915009590212233221807390795241460087939276421387724862179221996799037988586971234833068757772718653635423102079739901044296503038808822277912976867935735339087754516970959263530311784570325613408548601981057663727671354252974697736002189973289222150518066491316740272119592902051388285897989478268853384360112858431909670519220031763870718956804576483652695670221268965424994857627438214682242780543315198658880899763643400300865966121018517629922901774526537855357166125539855200642051590732627561068773479257717218015872498267004566211774361308920628851829161797127979507594562220595593666798223273054147783746596975228987381898945111082737692917485834953189135547896225822159821903437140861997213154598857591172793706521063464384844827255247964075078059777822327003167165677887542676362479834337829554584714236867500200119049901378571576163913253113480033895052718151881614772645138318629052789864838173766378695207069981686228811075362721632868974945728879948850960004174782446595807097283516930408565473793924771062193990437723703841940743677689465412917624062781211835666925840403544507988820515980588495688096484237729248185560636748691571576609784173941661359351982000553913792698520902250093421119863391232888236697979293207952211533399104890272993512464082797382622680200582165044862047200247320822580240762008440085404256727445381049149450384283417390026701570377585131279532123568396667757248342224084141951523602213084000258300172772509884712838681490783534803491016541252897332416675302701408176477202624633009100509067852718012911762915339134948160294921943766870413931804602032788335679933907490664641233125956265879921647851784408329317577211169441454424828945274534444180592561563162473466897357145445621176740895933378441728753654155742176207743701968567212203916599459490845564765340451015442180921154140802550385041466783256802258723668874604044041635321280141904412140157984086432329599142444245495082929668711599312332783130516884078073993073101091471487761342793189909575273001369503319167805464685282774928754608217562595346399886176331854233889798447812232029002854751494289497422075182077808244495143713980470867107337393821052191288718827970597969515967390591950854857512866596219749011109390353756925039382543739948573427904028157299770696296806295612243648620688759894919747050493443836868218293412379857847108750221998609197666558781057432714961698977549285195982505616574257133205329050306586692378455547359158529948960808355787512144337325657126040506213831405556797796576485793641392571826312417914975453565188845741151896015501407645195119464175160259968493768411852868566211462514405217167256735976269333976123576509201345827717049429574455705823753379621671450122390949117566315605134469575777923489984950380123556583902603539535556404156545826826591439338319357585974651506255100317015077914290045984458670506974807301684345684324699638332402172236301200185742838588453645470274709902883668673603482447161289567995997036739759748469281263132319935688506539200661176069436223749430208051717341214778497463281966968527825483944728349128578175850027357856259622415533636475555205000401652462834141671198142125804641785150537422355505634624015009018551973847844064327566368899753988467833966079384442439424858605963487642428757960387388304541902775731568763220255921516573857971395779128548562961551890864676954441554094679152625679103034404815148217931938802782831105933552361272207463591455895598273812342138582491746041077006594908559533158762449978413749370404423518591188820818769091432836589514267329313891783334202204932563224457248397326940348991431491516341150359254579047838388906930129241543994173993701081363956662999462362273491505163203176396050515874297398361557096335253777259903293079393341529844556856191723136408812912197439720387550267654595639620531059408947022190077787938796547850613363634617946681426690708321646233226330290441610295555017958720516946893788436219354528533917361023949099930371077744532435585361182172032202044622248049897343304999140062504061303307256251138361311631073551992276341609064391403112724724355230883692170123706317612464962689640362879782854138696987485387173786467662881334241537560497472784416473243527950595683534511358992846189271315324880511061047392936856936104079615464421359742476653215060543321091465703387093472920537770141129830260875190850189151986739371991590808139213088571349928832274416363883034489179715490329156972775888655402918358770091768589015184961202020752239386924063159491642249184072292243285327644977866159996489733332218684160118804394186354987385640417623133487565306625032389010687152813980113780761119903311296604636154027335543699487300475450660313344957928538622790748266150883602644941175201255174914268278804216672706112086753538150117686909441859885988718340679679321789217107145123072818344066202905443785138996444310396024014750356549704254644501885351238200924995323299654640414498727560903280801323302947034390958333356702011880496394497358109516580137590845454311592200579872903408445954195899258363225937026591067722329346123342102328536822648043486327075912604251832722614626502104559333870334088686968167737820844715387371382578480142196039274659594784458548497556626949540269224571826630296226445716652841819035797427363414310392782354272910980835245193399734883343388394393516062873433964216285873603729320348656989012665601012407284575744526628814767778276845153410202278595011471774280078499887400403399910511464899818538539533877316764211251109677752129027330690811398667119367044933649174347284289737922087828412831097755594742603312998786590678234019452254051148320613934639666278066119844557786873801841550624666774562047594527881474046958880944117618648936324398630823586186417837366936032724578815361878129035780840422427977649680210103140072424208547569731505208228675878449282007105179878100524804763458448938811055831989796519876570729316926506508504609913181813742093687048579822140299708516016586058027526519199233776002509745485985764542980359438220467046251412070274848743365354896245115422531113648720834716948136677114970719739196170293603820981618648594779050675775053274420546147869571118589091903680523547382848005215993630339406811657294564029554570298241762358464367395032853356000164596297167739824459606481197955622755224638941862975763931839165254547260379596215395051428942707603494775702100882699652843371613917448292194042650125865439334131705048745720711529590599267924261738970412945400147104138121837433884387467450761429753295902519885336907137734775955809179593574401487683696980954378740253697897001068551768218651825054420502434529395605044681947705413820850711208288151333530876162051378911240710967373334595740121020684390576151629078775878372643150022529242522671111206643583684547717731593653097156540010176456141280322527035429594618757903719396684330404374416123387701752652447177307813008299342058139421735767051685616229798744980196053591662460091719269481865510795703628889785616275469952940418881787276682128667392836825022515172512877870603203768644344059013451238204272484403885386326320630200271358600449854021720088697224732915293329476106509757840582865064859295811518851240012313790843114453604172478112837350160305976714049090055146218762890409018893434024338570832134950857288024965099433009458651891330575134731102737262103712938771954470016387399116859628562567556763088526435226065466980431253861572687461329582508479371743701410018925664134677963454495389450222494264192649986360673085469685446609895957131678661467411759068386433339810871274247208696207662987037912387043187275443602236653828895216036791647314101911323967579823397152349149075503435827306460130945448307423351326157677314859054607008952854059292272656940699935741922932879284518607762076066970987019638544456835153640423763616882676881680966544016232915771409245875443154999020248941091274926266211114135927729951718698307866692513501470329851385261383166437856283935968973208676694372805152844275719657211954202344387837249384618002176701878366232169788868676172305221919208052822062903475319248091042292289420700080834645351841260000907653470628835430230735066595680627737794572282110528226597815346937560113961724352242735313382361863960226940876122456955323488121288115433136867351768080959839171398816728477534854891536901761679887899857999505184657479414643778293262837419732360601777918800507599595003362252454309067916575713836446806727074816859979399349988442128505445188641891005426274770476463596952039072691991607119064753427663185095479635186850013146872911500064025404390713540042217984015946385929985540391549592507885376436918967204359024910198676693021518166716253942392520918764845522177663375777837892144854646472477199871035639839465024585259238836521693502362321293597810605792556464871181040307845287668035002602877338645813782607392804618530771176764274753948468327517374352429869135976647087076108083911497275612895354157330207011035248705168956521335192518426016234000034632820612022105673004475913238741478135125169705996883439076679120252089065473974150025253581756764866000002331518039868373529486557493662991065602865945000735799366709623046688483735164817484062011710218529084752381566558686087893430498123074709084115004437023065157308659392710525827290671379283151923271931432795112691540168190542206675033831783987560249655585164343237045540757510198737390995913879442292569969218306705859460556724817997283411972197433467905042321792446984350088182114368430442305522861236044495520482690747357752950161472295902306104792220136067668162175189403985150389328405407643921784866484994838477645240928685228792232320115462233291030401389449184049669634419249814212205946121113729465226175744250439672937493657272255572417564216123512090798335184657143309591423864232951363944565628811947913860563244097431842535462113765826116131355155798126899358163200586892312074202785132032512078624869780467987607142950512521408076110466855309772805814562321159183716122815858154676873600988534264978365213015503248370945227071774281819098344391430368237984274066854055616888743390381470859763403002533351789093126146893355899089377039236624037184956048036299788840581262589233710626516176861468616950346444999238520622966576595162953900069628263428920819073955893895392172368431360553793919264334167470808206339159505540477043545517375871446960034542389359322291193482937679475075521800374000405846472022001121062567257053703890979980571532735356506755558654189628934524812840065486018348554827860091428868765685751262491821618589923349121467470274359403350066023923232783591492319315154842938929662325704569017881090693763194806623333033258047798626177335689846533829090558548478714808165897978597121242162539891567395383367542492558043139721548188874224739756148437009255387507935511825885443866235515771436891934769674114926197036414181843614586417425765399368079268692304244486364470557199471585551351433915409499291558637675135982918618170541365164035086962998230546536120876026817141934297897705853444690713226548341403780222730620819989420004102304828090769208811433796189226363396772945810211811048197256243330868450259868765615707406552698541452533527877266950401540562610902869831165193128245084354546130122784640385747905680455153314055669144288246888339746605310419800956338410696893852411951393632471741282075682096426301728089999317781107064141647072144345288730049424880220320385442323083341050264907855736203724291344444012899731883064053479227113382729111073903592898352772735483151102540560519686463889570797259444950113668345746659758802324164557256409444699166208851248126326983701598839573989047562906753744526282425595889749752968730682882048215711818299489165902801649110391868220991044389557179755829258458371074968252083547142452888708363398079267922227014852441905367490457314140687639021884290711907249907237981957745430761846826599015087995889326625120230219791162077840054689345442343366884408482290047471768701284540666233756306657830527018649482584717671066235530796586903714838513124439765543907173387647862325440476111477380769309804372137006108393912985196722253147877180747194042665721165795950032002093593160268681824837518828095579547226294490136286671833852891026037232493733372544888377370441074103584664831129856461433824693413127432103090657259757261273524117209673060433123571259478983241071110352691928563318848195443433778532335826642673151101328461156733813643618277459922208575168429520948072921865660700467558135683851870207981930798080441875854570058428079644789076165610888596236389895384014812605391148743943336484990208047770789555758982821469513498979881384409994860476198432759779357532041336375392605434123081065827731453971370801867943597113911537642963333913804097755540163406791555115070841436799372602416552334136087541028353536639488319673727126883590359328552477691027335613161545204393499396861205369493041620566328497283134281463985370695346834547678348376847037924939625539410832940177293743621349662340496252545757468379383493910287237088693140612988623912344209169270127822542851826149989615900089177046739116663718630051383066459387622740705432618260551134592407158001309968500201673973237306435143207062924038695834514533424786304381773390334203705239029034514245493505523814117700002369929528717563517412836944241860492951572094464511728802956652877457293086181143467570020591430289190564067824143479946864438900274426919352505258683169944942521795246021819648641134385703781403913777588449644595186436674714474176728398184371918073196428248629220077405199017883052128547839273722393027697830025997411638841042002750610857071503628293613033976611998890406391051450795990781085687147455527621413553283438611041867292469737443869835794548526439543087171967285753038426951767676165249834673214295776663827098207176736932975774188517420047034249351065217679002271467753188226261550024792148235900042632790140855558102074271678860804819012421887636497195961553416673665937199806835981629720458758960323043304949697413706423892863455387391638579797713425078495555940828298000589299433646393964370882389699515027697774302567914654667531863182545841914915447057722074226734755769008287100976511980729764164914119418621124262137820827710212709482440366445607481765245708738713891306134088120081896526612486218178187696525989094888430867226817012263295222080980231096621959680572739898928758069527817394542385345393491430249516949750095403954760799781673063285253553242670215693946850632463208939072946577674936610993445061094187867353484937887683198775814733800450532262999695152482590908609953629980259084290182936639362822420494843736931135223049903419492971862820071492830414851644294112645229854500594438953243011055198724611277576646035344494493958330592548042730369980415929301732632128036185954962672020768718504405542650944262155034935665493044896662804841336947315410006079173155199893291800115902832700103881176280101932064657646749126419830386723816990375950180805856469491874425787132828901418950251931768215115160344126456774986195593711063112956461249612385687189239331188394638468522497040522915470103062466612681427185598831712492492238041083947921502172595507454863381701115285779228336916184757184166977919055630583402197918989209209645368956005858699192634138268529261218840657510397516829112173571475237646122565056260500262658765449124409622325754794621055898074154258995997060479115027692769590149609927307485000148616436887217600690648886056785332122997432676718657451006460583627413994518897482201085082745437875251437712326582262367199195408015232588192752442369618536512835582841663152965392249975248127822562026894425298627979321304413607920232028865092801868388825935048433150065854613172160719985129407258576487588493907244091490102933485357696384444670777693306483567317522552871544415745335509021986409035654486115412298398244200177117871131562996333667641275868333795652372508178918662556408709329816439941215056866161081573043321322347587246167333736963658315246499589984838221824681570602404585665466189832592711524986035087084436280885587936319820400060072587288401648453479540270215432571305147781396586162904130437469660729625925423450974703207383530613987569507453678269877602795921691476788224593394981937719622261382834029017233569457108163376436786045932275547253720880916419258395195280820579320810497070501917088422036637264885897182715279164666890672208222227071376039269223462840972249744264654382276237697476705520551358502434963621090534679486832406553972796516644122588607447859150074306332696456063819053345496579136987866355757515570420850651916247988756583119309464324956085257077555700242818094516923519363667631820925844891228456394649966444423468676822559631599301252643646815067573406691897677408748810491574273541844498292685800176626372227611442530687846681183931687960943316060895218601445730708317078305068953992379948065155033227905499339608353635962923406269625691345061906133427480543473226053384861498906325093226907823641565410046298767627736054541700745336816602937383100725063031630246211623669910371339765273512459279033412195887432439762421153497339355637852850728703321411709505950135612328271237088657846533273375757853437774370198037136198033132545762299688650226797047046881925518188832106955996007093875616089792888984270412652861376216445887966531299326955623254512939770334310235996596282803407916647982784122266065537043876183125216021536016826058612965968627286541520550625954763959266349454817835529248950074995482575296676546358743158008261254781758837261322591977873384096789926229346087481648565401242458547961121674529943782578575832423666615499415484858776703965157070255766341003021114160703715727215483241185476833491797360525439483986180221517294001798852751342445007752540166869175338048469679944040929005049580106765385799532444407518520910848338846665535157789241123615719350885739214257870929779763939907635923247135851159228781920046497908731813050021960896438701582146153203457633460411167301818306291092951166517749564602254196565889613895637462921971186143983638702488262823643675042288116077710183680766743068873166561422222081539344832724743813172851481737157415533164144791942756606665740191400174996988513200006478545024679800606663112592524318444297754828403432907913839268338914576019843246579407267744888726631171193641597415132883305579222518141300562105457640962414563866827178342978091241313544277926311257778861783199422807562590215821468811311854501871051601063326861600539721343486650792321992016700364312545235077764442309026134239722818895310110291896566320865913387288340296501956858016702119695376985951780019813649203241704944861570205549302438034309113811545872084057598967844762135449040488844049082943171941742416459724674003521852245679891463336764074733430076908649892933913296921503650068616354133762033178761716207757524731431905324400506827118531833774091757176668001498910231504171246503461844955944822259712775492318858051630334920634612230507916738954127475453124518849759146382160855705912247964683742285433184380795289743663910712816433899694072129167299398811906062433147283864389792145906804555539953968957644105912780699316031551721331095302604107150753596692381874500036698137868829199086229852065046827767676799172614287755565045025316503299153790942364235614915089447838904490315549287222327480730934612609186443465431432021460703945216537941854440062101720072763991767702161021014004608247473163452264895815678698949748715514353698556755671299106321442313167587491054951242081127769049294314934504790865846974806535500115728461148496110932441915672431591812283670014496858880186444596493235928705771871386706300105491510499037070632300399341686474198780060417088691830715115747772453961888256762248603014467189800243473423954388015061122814596677884569826018543047769240262203928062123844677310203831185234896735417029225719752915932337666008822231847940912815196940454711148082428539805666744336657606251747927387021806919973146156593652815562287975857735119509243480309118219751836656932229908497876423877950986115453982728491052450708561866906036608719697903187826663766649390308293878741638275865263195338559835249459393925581374741598298190097321183130866405185470390769685942685477815581041224385422324174211277375182473138699710754621012288251575602083791116706885851525903039668010114171110009380405025547155700994282165615323456976301647629958684875750589571532431137438421030641628278505360357836333480947587546551752354188215283579039595607990267341911563823029548945889843059928973381938385080680017572683833139638887621992873996584308352107650173049479576406951064704500041097587619526530592730581691127270540409620126433124550867458204867022948332977735915109502779090067555612260660662584987597223274690546037051638847206262453146764115597578093701929965965478486014141415540020684843996038576454378976223712664648981466072260742761129378724492893335574853538463867988630020828842261487384337805990977920379896174827184365086934287352749894609082324371302015187582872488335616382861713304765859476982200559397452046744726706615344212706751641153717231990590285413775997600957458017612067410612411230258815064262246214708746052943197525808079971889389465542638464350685836086141711470944218485454714622095272563065695645278531743969237364647768981434605255317725765900481341196583204399126685911602541054200744650581893576839315782454003121435084549508171259896610632948191182523151167894859964381987709008736810852900229682211045906842671786672943065196125104724063210398795185979928216800456051472648257683785280405142480028764380206479717500146244369879210856341690460426787365965445721985564949053112760347189108284317139145198019984282010331171544428527975118459068042891533015974087872444999586483475135455040128801010199442646713732317206047995275194055983962474542547889336957701819480224758178785491882957243310648713178174747437012283536903923452553500851707851458152575409077803251679549362182635525849581861257321729051831386027171424826800372143205991525943235862811711908575337750505708769882664721003414915340447227263851693677446190938498259160935488494833816473365686663264721799358590487694721807961488971583576594173488739097510915700679981777409427488897626378881517282815292964169737523941300320209805170509033322847125453168145507230708940727543114591550653228978964215232431809094800578368202071883393070648794624295753079264940460162951536639293027190655047562888405782297841493266942573296131211649661150370915935472267343134930884697149065259043826962553353947300177628136672832087618709928651893712845414462837164347238169319706149131677464741944427474528793172176544765049339246263098039958157577728593264117482205067739441676742278638574286670731622723572685577739822036583360704332559063804964618461982962159156845695581669554885901335346019099283787548242711759348629096920207643554723012336293670199631615527062176985373392978023563451857662278584337468838274833606405864783243590753163938782274174310768757789614343324647577396797251794735664780015624834339960146584343056206815803850391476956212299077876505253049356396211447551408266844903416415444753890664421536199270515798188557246697454639934571012204704741702308266820247718084824243812243085004120241887872543760812615928681941282232150916075236735243867655525439437837559523935380763160630806537974935624203388044287695532376493034760164961916169431972081312647857677508461257977914056586571493232877915819075653906900458294368216038147392578208041077446598916255932574281071578533777018228322405450861836511220539848341923659465388599285301063300981730654717771483562558070564710491294322562585379482720330629998661654592997099536470326182388425657680011938043813622059377685854928381235598058835053214223887353309037037439109627157312044870336533759217060616575878009028432662932299953575636385426381631242257627149033355166332888304769508389691655048302881396003988687675093229922692653910373813207291799058185325705455454740894625056624999070982342397637359285140613879374466885494173195653265207347550839415285088093280747045287269078740583804403950000157544373535955000894300087268200983390363569388944090120797202872202582211484523421867398303875056236003247089005705211409470410842166314352299178088010330670454511834615430260967633179890333268219701174857973569562828693814160909279201048514258012920973431698418108673946426050259418793102070637038878672423932038283649630892105707697505222570784806770005242174891663096984765523164095225494217921043442418233044087994600437249310913586708481160338106770549594188838199729287747210843348162203017147731848390640154568991871302581470083500980515116927647605639666083067358582315651314250169868776122134693989058046889052802548617313609344670872677318920735725902289454223734041442128932544352442560211664870240728263892096836884995454322440291106255583084510797153050151644682781063289942699250159610521556243697565878713133958376306345692256133351019033517158458224647850318510546457119073800256726534006829093297319662303955516404308760871695441311875479375441409880680318304087380263417393365300914426601835433328463683291903332294614538270348410102537273579083944613686883175009776323663121263040434092386319462472854793978749544147447617569020802109937767516177480377003102353642135639083616634045232242337280056187290846849983682174914275583612501725921430595234183807444615228304075638948141322469181535776769471343579313938451518146640593637432633901836943253014720457293121679901533476218713281733582192905658887813438164918021598471662940161263212855864923770372769360460576681362870159733001481735064018172674510304013447781771324835223544230022198811062588903889620544380532191583915678928551243131199929571918515900865230636036812890516454433124855099377720983449097351503629001126571493404397136664896439214830289364872459919054330622976114612454306226506729537619592025023679182664739570921466936970433988365949420729615653918342820661997374047342791342164996768703595685249250909879566890329528029736496516259514073976048101235463226999233356712828513367935119209904383805033361813725025137603359491327922690278260426856442132058411507472403334097041160581459402144395703048676406296446650399255640637012228607506714234087225843243729020218148777661535568267480652254000866402687957127452828349452262411782993783187390604110134009064222220077644929703355610295301464498218692993208073912766849887067162080980464713083108462681927979870811920243175582164123823767345829239108137243652855994863072512762341322303475984839028981857043986485304818189857246274073248451404573150919042788219485435308033711401966747152701135033292140915075534269063083834316126868972646166443549858527018626292851553557025866975288379206395317740675143239325958584484082854636169825485604483919554214738248882688241541874007093306275240522236974523699457356183389663450758773523448362942826194971455920626543449122231497620002171573040539283704609041306901483869000723833409611321428870891713856230698574079713537014920035533999434715515640628796786130155504805332091777777255361001106995595776258247952648540674277563776374202336152518233710301753510051057946738155802372225735378201749795796828078832122479306970160264623131011497240657619630887285687499285431295611363665544648103546045607876204848028777526360810626778211916959739248247296756601962949587552155668945832973197053212783681061010029533242633622754226049066711143283189465692206643016179705807870294299255241280328927852098284882482804853064993779427258464291748313016547108663863079864525594425547714823977630464297901002666929448240082575838892083904120810716566590635486761725195684225034303244657392828151428872772424768849784974017612696154893198651140780231082222543063405564643914551323141852003247841581099904554534760676511022954293514412899513385658467037459972452986982202231687519379699332887506647532958173051674059026214926063366954925156503253339521655138842087685958631819561427522412465814914628352447258449218255861926991729060901628388255030379105565937770595131839356457288424650702817092587700023268405047184169503379036724147869420962832259718286749524226421271163876721969462273114735323284896136513345330773065191077250557727453973045758857963785869376588877792895269673686056719604478825732437149215960059957510320494940743944983437954707945699728017847101805414670339967132055796315738799525570122444214911699666694160626033043777284630716622523006637196730087879183764220943378762270325461653397539050490362261794198961329296268912349616356069162893686620760752151218100879121796660884455075834677877784515767381893705554835295014869302348954164200125786863065948541642503572008721223000558239850173591121113325944121430420057934180283820217057785572057618504950953091455080140378955246330254735397587399397893724801371751726073484244840293115122830989969134566179029284029846380197301078904292355549808353549420007443694989139928750973169944535197685596542518763491712496768463487277609090409012131239956623482144387537729624742463812263743547293796929709578694448437085618499681066858027200246526480905671199742235961029571832362494518713897328597033379771409537798581734967835962672301916403457012337238794853849801258084501913690526909846220604544620389316272392148232630794159596706531729599000573112188174931150106813428452267937793258050791101541306060011553566771923234056198683378211172226051918821887663346381707566568679385752422968704423854417757472927625643197294433861201235070557467828443981282658029793226915714138964495572760118723041807012882058829484791338738061868862616110981848479780100947680293443534117117044047621332374899102855185512245103985748588989664043707195961174230077692499264020323525777234838599800899475990156175394378189309601853105158032907306767118338079122325038982177992587102066020320739155918830676596176404487395401949972892649991212942126108815224133892402795946661659936510786185132709987594217030590952643396558516577706677442726015014298756810673403790060694317218934689573804625405358619928059434710118280047031349701298955453163160850409303126165080268136087591377511308080555109342652764773720834579394260243240379088244173015112025594570827344422764179668587705466764270332278951834764533471144896609219120387178538309637874973072111394235944488248265660165933615319944743259853480443528497282727656029683085453483278702678356603051397648612099900880259684737101722926685236437277794603578335246695798163755545531563111009397438876875619535592777736553202846537265708463984046534201395141340170131696056867125419732742702306481007840775563624497050674193607833545023271092061667785575911989182737431401313836852109517348154213160887191621881390195101359048127758233800838315098766705042326332589374455433183810743996012264287584457447832674216634072244709791091210872057360240396707636671637955576454377208701513452027784816523150761182508447976490292575115547109693939809200005426216204939340337178278627610449427150834982469794169312858296809981281742320054472492112687185330933862726703634311343492121673075635030007221029780802650802534043750559694384835333339314570656899871878548325145292256387411084032597128524202320978116308244711926876410334406761116798015917598540035528777516920601223244692622581887147416836996827655334496670261676659158495473404109518201637970428370883475237163719170064965238429181679411454125408654078026323861090670375242046497642965770680239325130620465006446750600218777498777811373407183610356051442647137313155374548614500991226977075118894693780814407568956929099228986018113992276818487280367047109135130817786251372080202433340488782079412339586717844284707137465474524783647204374537796808396117092376766749652452762945453157947140710857659622250105560784711327590673964529515577455048796006497257279710209005284654991139859900842239416843630875223673561519531575115060466584478501846309000353766803173158223761784441343909423852681334227952136104904424907015129359017124093968877897131521312533082831633404541447132449733642314839802771815836782303045315396065997759507567180955616347215132432211036801184142321348571906422475544188843379447338000108630668430060488690917503232885074724547550372443012380963918834314145808176657483541328977131434151192489016778557844278999140080050317166034346114930907423587174893485825547084163492589136082859430907132555216335099866186435049277047501950989182801394835166523633005144664231915502338834619846046129055767640474322196756997502534174787051839307164229441790291644203337178411696579398463901674221652356713114008161762328683278796006737510675310220497955328289049917803819320584370563072863283969978203669872009323738481942840326804580896290089557476887064610042731116931684873683039093134458850891371583834883289480783697502662763176473824634989925091826028419141143100284342912739794316038813426123868268342349686258589379426686769358064621378589994952096872735694699703891931976120253582116799036053066978985387005226949329759698973176562987839860156471302990138124500178745036492338215888196919575496074872553759668814222425368135422316277031210061614971549476963984374575791825446255689952808285698529825357738378665205540556628733831404080647628722431193042385048654558455660257201222792634880388734098744121768076240645645906514987471338193317886204353892061572336446639747931198626729337169078998385752153487010433175192849489929879288982777538789602462024289324259979391890575875774063903847839865493224016338792797252573052131285560773102279674129123806176459801833369110130079453364213467752510323285890672599551671899144510312457172693457060776134614205060090487244249782447443044222191491555459580476295380811715664988426233577661438353973437807388915074998518744859400130768973295562118367538158566434220935519010981107308903890035691145628105916382908379434018347120302315527281437163211744731172481264450091677849855558498744449631393636434380872106296142823549526198410884993074257794041026023722711219760682859052291626632596887571346504300094652387327815639357223076531277014719125093974822418145650587586593320711148411761703396451519404640552056166849037271605627425776811670486400311270748458966729725362850737306553873009982517835425153511814036526427200393886314096893069216425704641063637563919095800361035805756752210194133810266933475870799019129886337614966150287796329671590750103497408152646012103776482526685012850594068804219587231771764243027542912673415195254231021187346607409297765671482849644470384431253468762645697164061519750637661117767757040704060440023834210646502567368436982345550268933350135070447062033458105891992399102793356787353811127196647095186590978441580387153535390787066468052995423084612659855804009618758656897671847630990625215144685904022660644686485706091299310030345636256807949381447930599431171492078775679426261320559281762770872366185116127003872230703728413703769043825910442603761809568090350006486449184995020842156345736873380341273802381849238234962758365347000396068906881644995789800468531507195797698099815098805140213155014120262449685126179436046405431341863638492422258763307234340457904983151460017543029345639118458748568322589822149508511631863694550195646302902077928918483608038991586834143799640359275900421503303594964924761898005905793891128884995188911261799537143184980565226439186513186001586868431981664371822465080330983582886090901562757630926287606542006391876499871844501737319460102527939229064261207519708840525004443826598655162928508126934158975960564404493917994635096419661225812100896460415755708400354671590638669979792830340061598467821429680359063222281182500944920248125025354239752289400941428160659378780798972806967129538638624945114415273889401120245774083604160086507841229594171572799372271739704508751918338870223791576486912067215245853916074207624328794968889035764275337212303094729056520898924154808236549996050268576991212210455541609156444206920058349029098477539750029974418483416457308248468667938046905348908524523099234768471632774173023720481620513011571529129896908055196893930971822114618887955665394751468531105338099956408390116962169042120077782358832018364589198473808172217208952534999772395212980942972342318651452728239662956839761905604839002549056368755666853761003327502034493377774208588060852414269363628549591538607285470431150660610535240940003798997921389557512064904903398288373891618036608549208732855061624592295771915448637598971698537540404448466761830877996590579319462288724299099148596822357794856747979942939025330576610855577123520198391996321567760419043811912575505554620431086263510577653574837441811159120351795751185815955407066255689980543296642137956314831725839362731552035653419568540163135699438707022243111809160317011692286813381108638737741618859476868151486984570136769657324176197178826003641318731272215190556318636140563413203820276747516985726933587175358858947111008765616122978389043347002098726425704833319232549804024243183084737502723002645967832027998799820959730412626594004456658744964521792171721148042106705086626297141662080720045354117453954176217207211262737983518610176626999007529838144927199361402909772630049422985849510780934657621199327557423648591222954996654773170745114252561312462426109779890203484626788004787862307325048252454193429172120821253474898914459136282891144646037922386014455208561291610257489278047183340456908119473189219730422583131615978947292238906815762933138570786843013741910270240493055627099095431318141087737487736645897404138657964425893257318258774494233273695849373321378023576569224433312012950462871490582987793874508426667908574570435924506615750252121103251608635680931489331777096102438517103689201151411278400564683898574991126988220558997841085978965085804731562118037447112519042942742543811015394189718047219311921580303856048709463393793332779302113836870066297381164642676196059964374008822951674513987902831595421739070369874023602427279189053264917984188755763198614576560248519557205304531878828615872906956049285835815738853211212565681743888800533918506078251783302985977845294555053262329070247055428160714948283184776969227350635559432193021829214183874854886974939999494369923135976880561156225789871827570074209861911919407397651302906132606660005147753922587630927466096359625361053534501420573737774716265482894493817978145300202200846808063223676919656856811031402069917698679283059749757429895176801150928148688078917972521181656082601332830767567933792577912071105088858907009692996927593220237125047723619964775133950934719093412713719305756328420883982551966883601733166265935679460184679338029065268363980593833108160108769516280869036312169460244231137826650867744329137119003384823677068919693359541347348886606139443459041415085642981290431241194852928193183305692038375703224200785013268432651305997062695630926276160619907167883078665756392016999892892175794717187921069328166100866708375483490814170257396491221482245233944948670508490195679810805110358728234116731579185796124125275866647878234394250412615076078946514869370327756408900214743415215616247503666218770593569055212378678122733757165383595162934613019355637030204254421807332781275485650774656895924327815893348736414399899842807256686567391780831036705115276842863050891492282489027274487765260691993322529233404091714079653240920494626202089246345282427546708820569810073359333833712967624529814207822230244992719529714472081362559790712710251372073431719495462096475299859142237197771334141630602596310147635337069142364321517327935169766238962211613687640280868604425039891056337480123419964752792145228249861964235339364312867651890022837620608052772276649692322305655011054582602563119617335006472959342194623983363130203707065747104837398878641188150883467691453426128489749389488982952963011157765775037204318280486992618910328782275700562909752001765179023918377294197108486371278026036821667042067011224991206923778687345504688099024672106416374894749989755027663756634487407173869127336829432217272555311774738950372282008188616675175586080203298456084981895584518321122425428028119771142047054707861475030748476528135546611662697592050803302137437764875687082161509681278972692251004044781304558706912861895759570634758990126197786209638819502586044345199446372726238166012169788658902294051248833442357476277970199258740494829776820538993508003511247777606001407067743570647625428818806137685232709328502696117566777676046935211975217502225803871629347800509174646243975988026308629437684135231288259326874486443836771085956926176250237021303148530910966118230014356330621014729530601404619054793873058148990900405325040297965348494674434099519221534607223463580433253864659392694912358486086615848343953557492302340997807862627761835811406441840433642187940384924994626036667003389788261017950797323846274236736179700165090914107108597174032743934461590307080098030709779558135700170985125336408211806982699114411097479618305967951015930492162719726269926540809940830903230349699866422235449212998751996486746422605182772086029400779901308322518683315098202480504774831425058728307842450441085395366816099130821384484384605606713144193838531252385951868881301316543953647224259235093424785494479346857320531985562651896274604639472845038274265628134606753066312281464533509454826951025828514874664240050603000757215596712893033859076200874394211978928224444733576257248705931179770211449590589654143046352652618370496730732184329864736542350996976754120484879244391120759670720027773519592559896863428612127914449915588844066501710325637355463100829844245612331969849790208745806525345022531989302467578366821531177906271575747245916455620888619347842063189062889584271285653029934338816642810158230813485881796921118320248523555201925789815421021516028305077404209201901878551864279019122743647062765262801288600826058655981781395185577056820448941781937859285220362914714874930590570898449900771548755134547553874316973474451052436349750765534768906885168999463471993218295329597931135540225626674102417565629761250142737176680720312230302052058393606996112937861013836139924111090117290876015578631336627214775264290705088755768110112252583970710887524354827496316483171462393332636193929487200150576172902055193012225595108581133965692624811370299340126905153563907563717585239195844158514537577817193095252253854620418676812982683466123857187078830832250622680966503731955833199172045327800750719465926876598466835723356827526294982798346464397370967838066003236505645981224690586862435907546569711371116964255592830942778745379362018675914044268625278017040595657254855713812710327917006923854017588357333380795823916266530075686023729718204722786198019385381347546263358132154420034921609670383171614472650758664180283252311965157323618578226612258560234235031941435390234934633428008039332778212911122958609591968930851611924757886168189564477577603015003065646568275732589866585967007720393057596416910382153291768745337437211357150442356473217796870505346082006173858020554901626511667430152060606497365400521114226995348758735366080903313712192440463232726017145874255823239256776596420873714571093236178315184601906723317344029643170737417704374107852150868439965927283081772538099689543717387216577205813732817074390153460930311121803590033143539639521328560644593789235576679194447928005326265867962720966960051060215272336705760672523552461063268479673219116303634439173360172954340462187553196280793075554550134468286736092618819426266328195530151846089152595904716285943851327502041585253275762724168314423928515822895591726403022922622709003965684623230491154145621181733213795552938839094208200938115040728365884078373668098388474253160592050967169939479321911900472460207455775336613394410343236189589257879714499055473481582257670965552242739393312645029994674723883624016659428999434374637801613470298590320552413139452919590444476884592707314936103156884034961758604698804909114290560529622403002370853678132654641663096694687917020723978274270741963342030287063340053414480310985809727604499212315472196309588095361130558957994558758569139932541084620570769819532945519144536828925152789326392980542765146705849316041840218121859395901982762880210363804659608202879907569409718498037540899861380122831344366511173167865736250655163600052974414844173393895638372179056831679145220297644866803115560108893172797033915845244105102676563800746380760504559031296813165431340416530120929352422872022531216128318724757569914257701933443740478789340086891651645016973933445314404526948696891653633528474492151104708865686825152132280496115105432545426901874795684761866662884408316080118275665268100298333778346346038527270903346926218213744802181528521095032658815441238125171339472537556194348377424939931454226157820960556008808434482953101239991524689589078607960842065531245877334640096941429811187244729165139313015002426977323807068358694735298251192993643671151552974248639923003356164862522421632512704440280681104116157761441381048374643550982468961867766180699624956814009307877747645961980816227890040282970193975069454812992383347379635905403320203846750327410914818823223338573110331781747832936063860115994556339003064837402840884175503962553559758505819441597292534182587215235848874784377921002595833479630757111722076809505792694611961941544235992148674435856060941478233432026262545828769681828588373086440754896861843797127110508486795367253180730367887953696575659689308807812434874801516881366822746967902793300109824478352818566207740300290489992598787165676883785434446859365871286248505918553943759231056370099494827268355599919479932393559579441750269915125620435216915641260914027445585874189526932467554123963442589323460922691325943242511414848191192211273553005380608681994856249754419735150630197962709739058411201975277905545137413593619813114785280972742811477504820483757142067064162212118200366094121806701311497013873318204317664134357632309332195022008915938043321851558922995841978815523553860834706393267675009992972438733356073355374045498072666827924671227990357467948942247366208102572538256274906855131041472702035198373722610557194167612060781295756849815656233749144747262905200332292866503191660310810396611643588151074832321881239048997918875018917054562273359563954851989869651392208255989668748138486485256781916682420582616263216160897903216387224907900823311774796619796322108943279822541885028470565713976849572214238205416270177959139139849898946281131053309032813544412475389603204081535423952084717854383750821539796821499192260572880308455367857826572640280721377973833876991216803177995546131063358125662119378005703777283732784216143807773151844389835586999302798028999356308645019152593007359043460170529049177125005300896963223965329456030073781928522819679466755964582864327458980700323302367426862890453833473489919890553331095573723669851151575684364882471954026841867458595845707917030085961493079413679198447036248406408565538985362391505240146914624998252489435388251884649158071971155120320015217417158073589939934387954170690096753289584171339616903746153402435443312092638116223631646291431890240447908205960539887368451089712606082739891295833060545251143127155764107293605821785762995981181670722245064243165595985895650030379344776202420796961734888088799774765298007810089840567481492026624766768427861502185022682124633778400817752644948816861773203108834503860458103996691420879294421822842971477973522458884204004352822436295293525430398363586745967356784611717549029365525032741484684246125799147832683602137312835103760426958060554232853348959079562327510408082619750635084893355886979453812183181341720216361717099168173630927054679392979635613601651659374065712650555915904782682700500632245853688696077325676456778975322663531687409746617201857727538788218390133522882197122132426019377929756039166471596385682005132119681731327999167331729221172871937776704543788403691063509351235395417732071716685674808384787128006475604541520206008119438396906098863057864482069730639275308106562566562816171109650614669871701719482406703506054874706262750627694882978613935927711110816201105641676792061238205082005767537691489277112592863781997115201345561501189899126005156968045195260426392905891549637668923664288809056915581347294172895654362569848732535220590057127622840810730689992780440551167949609199013082482947437373800721758700234332843907259582759030647943198613586466893784715941300893480536037851717167995936695772817387395812433588202717176599275105818236476072807055139478051132011728521212858683274193167734851309809424561052991001159003779334503151270720703205358872751476691922210309986317405915346967515891802512134648532315053188800861433256482169620385421818716937778215842581413028572526778794877938140335112878651335078723338325202958683964613159862985584578864371290280721956804203611622932714128240478552839772692672852530782212219930111200176859121533410337216371855376971327836922105777577793729002864807830491273279360302940505689103919738764540462119666850582508275043492180047213969732077770342880794920061074050792897381268645975588419685781978880184950351819095957078915352980097538392092254206342113135175283377704358791956509386765720608075325996419653448669686536015597762209709747999804932045240756933483024219027621448489161377012478966811961573065021078831449909935849285438343024677282547026906855640190681913340170528128816631557135866432389952180830526917666878436622906994888180795040588149532182630276232404034091297094787456505936315158954835593232963471496966351452513392215757533570798944475076369747515054693161366502780070176108706805317836486334055434803372856963389918887581994154746324864066204292861077287883708455022114626956519334191975078523470560777894338397872001269726643807891222373580664415437315581864197481539769501334030172639000655790598704920216719191601543571523454701588157907907674438535671048397050533505211145000865497199003501542716028909681422543752294501535484527292543799759246532902234379182589985270802339696554787182360266627279197254509360286421380272995826386899332398149957042775014756074958229958124925305600335365102268804539843233412528126122225869937380045443216674288012513853950234842762709384060154745095535338950551312067889621622474226367982798569994784690840240995631290584533531329444402044888888764571801065236864056814745860634559798613758677958720204186312053434382434108220009816800019082625899094056780025829321820958850522758840047438159934099087202614026282338486929024136445538079637009828651982214492061719801565981614877584193109276052344460084036386408911578003080865752269895130408529260854666298207278638420914401022885115349900481221405385689378315780899498703149338054281330360335716923413898866888077716019906199847551827162366911230600990946190623366872587024047295484252523363831992868180102138800137533902326054882143152849647245850364013638651239120044801174835468516955343894816875997028883386671547794053470409937201937724246671751107673475318355646260579391088265389074369970321645493428455370828908086626280769871097099305128696120654438567381785867488549055844289104804826791303293294387339483319949453852994235575503420152165863584256638283148143903895401117519069590678434345988653722106189784937367065851807399137300163027713807085238390143022983614442027166840579290493349789515022572966255199610119785648423286058887750399150943064523548844094321836519152464558643101410914713223947728625770737355995932049983135139823341437045332997538735482542266333129666660161738101141296209000011536890714643643990000795194275759248731066762375153891186648709408004417334552220771745679328846051905451448644544630720406457552525833127752976006478719368148535442383442634584387530150013339556249657049294597624945529066842604623164410786644999792738032349664260944638134157094582057196705187897911497365940170675842721238887966921741623327897228806490648420890407974628920326889241655271116495984542749900929750690147160029013368625446664737680626231014782451877314628713150774800597791009032228172446827973114600496686095994889487753318845967413374354087237114830484678823082603738143581177740665490162764445056304255666567461192331671629502244076369134776375456811294659290750971310376205297371503439509100160308274402762961833979012443183416821924619215663861132591492548357648765428622951190119020372324179865016669831830518455302961106999919676296731152700644252032739510977390278766413654068174803651851555945372380984643516215058515509844505306332029281992789505238908844282153250710931093685337442661261847694063948120899507654843611901964350677046819136214561454419251020049537446418504093055216388202993429991152085601572345921584127856867287760390374216944040150251526041681367580635148053327118755811322168095970244896757841332952057834098658702876496046460023664960438503582353717165560048247556505218600568245071434140039722026389391811058703860771990466898097023862230291806771330859189784664520076873378803094741068396623968018150389388753103391444839124310252557513988450359849640971709522063548031561417390037567157056291567131100586900357562126970595101070921912249951632348842239442927499699019086383689659001998069230306097772836516663747696469448208817565328353084866945146187825595492649086450600337694315547888296592272270924016378423324147946695753754113235434099771468006453977660477051726638772443140687767644644999677563806031845924360992821275019678023725677877108177126279581671306322777991247923762727162725862031850549201269864732158217878741697790672095855715717734631121349767178163017277158127825546140239963204808474561578213758344354375167438245145055011292090491511291715172881545646045313770976755849326474736281039811213289280637111973287728982130126046827767090589009544270657996103211756253483195281536202356948541067425187249499613088013308635483135910757857354185669715606386197811652808493928555746478519974730651809974246817832125308587359178578568730887228730195891347617669229542805466457376116982338128753850121143042693528095433876432314043471268921328941395713836879223967885338547460914905438552471985576377108977598474484423382449414239597291289392525860846422043277171748547106540669602628590876944505316839318263685069134223964304362534582418250738483564372335403689036259408509176609681739111770988518675097231718113410677083829181630157062247703581773225864180448308636596689704954596666050115795865423836406045958135765779922668250487651977550590658515650721048774529773836459873380773724189005079221654232836823546764062991014469170849754932966223083433960762487404988784079396118666555914900067447287738606003983065842099363938191240345802685824075991776366964184038084592695254132169172331815066930866361711350924213964178837471318688849162833374151186143911606900008772272223727115444275558062188620305174631401487193555308926766741230625298112881625248242816272404069745227905926693112350567230985240339714859326977902390422905389609403594648347049149954090550753202409546747663455237415123698014729881266839411207124349510848912156492099646906747101769510829067365300918475749049878032899422417470596362218784028734647522216768587737646321164507724854813579129055021789196039583666943234358681381332158681415675800043016063643924144926056938708380417555024173588907473830300832265669161944174305360211147496873020980923891424412426979013526122261922145121618732821848636633701672532457149805499650263183687347537921994946985740696350990688218222731434829583954350663510714979335252486442021878104858104891670921975650048718636080490812275096250719815500121605386527121419697823267643649737307127256644273656881661803676724473076849127746879116779694414793389527603721898765715849729496051440848340919784056047486764300177856406053410158259285434420547796124089415731819687505269215722584368351667019905600642048163635058762419980044625842810140494411238003746877691064423552806389963780303480498368791140887507530953827645317994185063533377101660763330197031298537665599794266939144432062227874248110718840168384060449894576415104760352425409197306216701621798198095702759659676390768719611724022642736486539246066538417466564614737135599662179988225042867185740780794312418473932302113515014903704502919415263370156607943232349761832588299998632272410251693122499772323773706015633471788973390825376004036119508300682734279622085979805986881151192739454578450798749795013351311903189211126064499518854202314717589902236879858107819953223455985628833360244152268948694674125749783928831246841401007650442976266147695877184168964990358878342835671943441003673151317773469066980094397802603210431582904203338746765510511791869200487667729641669900834370308020851694326272924301640231224686669344195371441756085719340688803092181962004038383574865893239089123559996444922875552589064609760610347084015144781749469783516748382319669737751556152572427288670193445095506663487483397687256848100015845647725930212505515808518224227491783527539777230504627565477454681922833994503107354791517693916698311726411792815546411681852520192717312840374039420945922898565893311050134790764938169944437160117397789365184280546574557714218184403159141772637462531126765010490974897950814567599319363205487757144710089538240990303967744115775656120788679796087878122120181046163072185029382426787985084219253847004118588285961233128855973934806881238915162763229896911347107555162817733683962403145586676167433447942534381577594873298560522231243258884234385759001759844653993198098683339129143950618654538596260342770340876357680358062239414072504285213417109838703418672530549096712474844741161673119712220237134581409593682236144268888469313938764843986809433060755766143401742479834539128204391970185710286765058183252685272300672856696298261009096724780606065268472929353815783062972553269688497307543940105080017215051260852339987994933556958134081413212220445573253669563891738636724650140253845886055140656167390681981561671042021402182391747761167536369509359299657140967787659409847263576329254262784485433421185865862794643249015254118820502646587252665250211545372089267170738575233165930268861088596426325360481322031724906346986059553951231088533259044879189457198054370525543650976593779598724222356150581568264749859426744504469783379510304668872808635605159324009448519245406899849704248834674359296433661213223829620543653513895772413658346448956310381485633370414282284760118098272229250306346106376232265611274669739643956538746377298517448009636075849866175106923424603394171720648570038804221558333215573388997868404685588452839693353190403386700741795489186304638398445922598177731421211670699597644048271371021502423146316448817179194570854608728209219640282486154162606173239587695192586353132891261560864963934662399391836555894348943576885421258273991249802610597125214246213903710311683166330769122695705600270747787100927064498369947333944958704380749044291444279412301508950165833257706711333873302605016312897106742940953049444471540652047074784479647607462238342683572360540114928925404437230619168690763506623911693884766377324042122295985882959098161360459806836739264313533087568660505977176301117704870015918072567734854317730410371911774855880474025122692385802750503338779445648169638115363940268405138418377033001684489406221550834816304658094032491496574613268150007601912795321711498500962957632261399389688963398666174154810710412543580877944386744399762812166521957183895897794420938555877516969266489021407253540779450799118666538295177336558269011245633116001211488833764145853680606672514085046909360001460430747644409433351710044036857118810717230351380025440062827043348835279357050510441814513751000969972714914961905861904774189528797862315321955977157561025470996951472066781139282962638772802518756996556416894698513233337730632978751751680766475461677357699791706794979622177077824710871961871302516311236051534635292714517442353721154713554306756464628543918510290947526180120729244871637585294023785794259363222153395170667053426917679484395590873780616957824984158600284104008704930246879799931119809393068766311745794125804403698595981231071426762417355709381707544976140122115996608240346612566579070967803125460203033188893069435247359013348774729296487019824161434737992530802398125619993982558186456636369684150631638619486835536033360886524180511202891209715785887763072517407315083012203659594489239705562908138170383727995448566387553829332782944585655525049125681425138286999083301625505735365916848236674955171701956444637550544256312739861193259660584907199108928790742147100200626552154565789085718097790888845158951265513924336090552629750510539700589593704243120379712828306377559992722628168339254587634437195857911569810104321942915090901701079048278853130045246335181183572499022815041956697590096831830066756198426931378727672833177779910636505136149966542448805030271797935812573565299170355159801557021902654571549944441309389456219160661703447577266761932958417757027182029684049273412733804135999179353686666864880321829989158358917335326078766063542787316569052194997484719738315633841192202777937058236886974315016735006344959077823559961815663846112115072739236282675674698042188283019273241802721090568945706329884191052029245220731971407835008147992260867753887942188673094297847757583897491251339043062858229404320786618931223485483161491788764754521891139408412252020925800734191762324868853255162169863709856599015802428709418472736518983938699216250987946237576891748983310235482903583329433533093444145677195848938106411066132395757474806376455340392718798264476500215995069082991525027933330849136676483693086097196503817958441269784447676655615587205959442496414446917663368059101604248912562413900242876251615241211495984066963753955556795168314579865465784526486677421605372241172147309572140243177814858044680900767494685754560386795295657324954442270574078525809931763494125123023655364612329970734046400158879463379242084074895708856258655110662056004116762708188870074422144957542555429126396957708114426294047743083019104228976440275758475729054914883628697732428877157704673992837302459223231410110710577692444973650840323127977100509926043634987233854696579439643752560609144813240212022864575063717685561784349523646003623807962831737279796028243489463346967471412840245540608668098760147799949571005406593460395944858243353354925154740972197095716164491316284805221055697577594144031549739889462068387330978178141014168472001308524196536444726307534477705125981595677524530395003168399883533116959243253824260971015912652736723006400084107987027161463348424559781264379684102348795854284597134724934871228389600127351684362578305696963125754003894344663444843048006299591440660527582115890877831520035400723875038481259826804153871415406282516055409784261117226879476610867516857692832155004495911277879872195129594491176583874294573010688639217564090390346362407736713347748368480592514372718534034527227827622276015101715876543819571697931350725644583554727119039353328137505513903205151637676617622260000290328211555036763739569455138053537542100934390417525281134581139349024351827270235849668297608008552626897251914154637512027915711328269424547336015749011813369051400083708336293756976410362278287369465436461788102983753720465326840911469168751363101438206010800736758883997972083302785686067148041848719932755921891553658653162173555071004914772389694359901993142816704840496724938006825502231137970591770059080007513192414935233187739814536144542856461359412302502136260263366443656895449962149679839715652820863798273801743854083553392011872919373174666852265199592344480599221378674537181295862949123201523441489988457276191384177527195689419835920105493713852764088140418039688823729386748079676676840162784087707489948150436691312557550045672987880179588122065923312340612755878937459611351503493139279645085511855727009795846781427065536329344227592505368288814534481268623645274404382311277337008081625400100037786955280420558208267488086375561713274356518519593192538892625403557908004006864328333139774296860018794525646000242550193717254027345339665563846098853261330032423978912724269347405249371090904735042082263624748602449438725372230418667559866488081472395854719256603242771757948532134972370279050956208291293702092222001232934274065073579717561763656223313598423565355615676882809316099885345214253450420038278082325897367266887939625562856580053826124048523958826719569635020017076403230210412746665137628814517763592163449919755323777009679563066336361403824384558362787850201066304760965270671287887102406719070164885677982132785543820341251937132991171317442970464011367371082146314722671412464307436233381766615918890303631404202697732168288955544003669790944001338844371842910192047142161570932297233173398408956368128172044565258354035406941961525785323772003626063053543622454650388178288048293092274921996390758500932821190325057965258829066290530674120034149138158557682954003087895607857941214744585754187364078718592381507281078683447381025828013569556590061778910089211153304126629930787033873631214770403429101888699491689934966398176990336510739848450723674360417955700047606813595862637968800554082445808516195822543233685469084420503525693645604168103547513426076582983124307206775111034453280487976998897375042533803755168793368861970833414005255061445808335846139365163162205008585928366080791969189622048012756263657830229255604139762631332670304994713978587854930928379914636097713565276105843782390327769520160145361654521248650134080139069859721043630844591191659609135274536037250700824385809546830208832522486225195071250457182936174107013728283457360426012475010629219208645691524562450421622760269294651934166851220940646644709669476137205726037183674625395655758860339501989188507724083387944061485674719331212399093305888157223286012560706536549626030594463065469113859188093939018007587311262442336479506137180046353619314348212177696472856305669482254054443872758790387717888074088154141855572199499111040630893903923740528246478427565087472121568980387866219877385741725398249722080133845420933784843141022666992909863235325839906067746926370600729122282977300447513500505039531467797353665076189861792509096368631537941723132886193772026976717730702841900936769982294405690477491341316186476528766510067622342518439083810305735651614566212827199423726848729450194924055256852740705470820259177578835987050957850785327726644170217554012838600326268248139249336039807437364942252645069554649148086432110651508667973962392227114531644055328805130649163807523410679681004786873574800530350658372068207321173764598944526818843798719470520826778521625828821745798163335085751823403519154398089183945672908483647223577784158201717433327570806370845253717839090351257685086425696178184032014648105270664017139160155897650473228899819614239283983285328959384730593605174463406090614071115612147355509805106652983286246913500893179900515903713738047341841803062632263456380008213180181146726151891826752326320235569219163044590455188189931609036147921472248927444728007725568538008262149012056395471076066458071890232033424531393875793682049175795011021928308119055918850126358448045664284747757440383660953907473694067054480647046535574855161614983504450875375827444919697752826323102748014447395108890058487143356625353123185802482690782722845432615729456840647158277281175434830715271143056008823793826808777341492896327112179209407633613212851178642712091194886865738990489082137816085072793221156420235548920651603259181192458466139326220711360290569760428646138497163353130128510526695738167060030841878937921971163931582279064341977333880509740833462391868407035589690187287220039802192159056201789425144671378052094047632521323839998091248343419330978493394081253294009947036157405245231674827879676330361818839361394331794588166364464006583682813953838177721548440356858695093402424884555677148985962148664307813694212749775936401911877872739428235032464862691220347520380740170405489205697694479090748373521210181577770372348986746855551922032815631270855724213821122156135125608788982659748168314354297468444958510920049815551280702951536707098017957167004282628160261551993002938269719742226381134860007964123374108530921119533725128753976134013353113097765351618871734610758994824059898654826393199635124188343568509989460244391535117621478066491891307066142281033137505737828965855875466268652464739753065804059574505155740991875216611190155889722862499675083811253671459002745137844951631283560896661873557963314789221139874759489546427545578863331141938571250275905541618035887719586007830833847047751342974482981154600627394776565009395715846510741360830170382706753782109817862718659936564833450270845149819149829208917839887596998132444140172806639204619227684422176842085541803433602917039087542033457012016032246603758565561610486072373780039777570609050552112555072438050898874112472241582733817732152093428342903413845889777836478548634242918176211405043699887222361679380707808102229335413292656080040250876471053921303949649753034915793475496574088714171905725795221085377857695859396576132745447971455222011268920779450597422867589467254444589111391081200623962247757598186732472912339757051149147585807384001076644765325915319430495010334534920303730697839162500796094247397180724667075327559093406273746795182470213192980240930567890293949124943315747941295921913081217786393589319005829527278399412966757857404602077697472865607964880026514393264559334354110026355198633322651009781096162413687658035346686540622057960833034986582846017951391681324631164608568172068233741910884045480487405902979688994224165494301739763444896652169900709027743439056743732923369572656753135187174230837137533348220284691890160554179859277986175390799215199292373004935574463931040980816784695650805433488455694022581025091214355871880281919779593048393696409928654671359552601148035191116015602653404686949777787682163740182704916016659779291496269364986951811792433157172313309204071123110472608176464897359037798067326051122587456615595964375968416287330272075288136504709223598474302215320545542052064313733151297590124661930601025496835034725470688872330720008812867277428635248509656329290621120863413875072901330016541733655613005852288512270416244619508893259497662182021070060270122876742034786708633810851213181412888666006599628567398993253309509446033968516428243617865130852972203989785051385945293190224884865705934723804031960088019446466297403147163018700813533795195719269044071972676975987269045651172714529298414786610862751682930990576847650074644889795558826038955540826305128519849394274352937143394197387710099318705940162047650507798693413974233698316760551608973854562962523104891244692080101388924327321689163819370547797707149660342982995442443198606870640129144900302269012392538743133766726395641285200383795469630468591981064528438855493085103251021463793518991410130990779108724245957552115231148099345756290459097209128277608502696782427046356944947827206546249285664729199751806649904439278956832928118226182989881000277378856983991921849972470561843566613279729802026798498263662119569763361569996461655099493575715764585463868555004715307280724009248364966894212099918423349416349990899467852933075528460047025737210982195613422336255844386116964912570691659362987352531624786378717259639253375046459209337746125136977584074623158572122198455332715895662238921630389900585256687743230951471520348305570379541658785934224120101088723735970242257223960030072703379652433843186276100783553647790040627559258637071889793927576610807290141167950985736142159560683152608125453438295674992741311909168754597158524249894509785333830397826925540255749011062350630723104508988049407348099177822974451068265261349358513708392755982483079258262427296387754008280444727257726936063424338765233856640045505991995579965215494135747050224313903080036667590984990661367823635918552319545690299028638444309568033027997192240194134143164182016976640321414299585562193006220968044196212634116038816765202505821526403422815688238284535331007066295143919741956271237961551176591581549320018689695430478119483389603769943406993531894003473466433872467171284167281461038000423244181017172225904321073091692373906198479489674914515636404378392324133586061515606502092448938497720047415106840306829569858940488035513784173583933697033865853774376288623202220216273715125332399568086702621551777928004632246481111292304409290321820784359655879355528752437072028922791853756358017315455886367997269766918576972835808956636246642537227500659196290286546516363958203194088855459388444537749684641496741481623813810475782882118760140861029875516471307511574858920652025271939473831481135934363296192575819542769673366939003160035828036486945062152437266559399250616730616040399917177253351287245318404094652455005774479366086775743864367675851891836156282677525637830260042036153187018128934820478720168121948329517835580580075977967594123255371533115950925677246653584542218249935486640675392746194616850299765895673661867384275567745637681758081516681580012911135855151588933611403518142061902132046577850714691587191165176493646230438846993747071140933488920270790811117713685959180258082652021471035444248807473900501127721132437770483574436997079658401549289182907403144132390571978437457032755663055641798184978691507732899492095733208050398350225907720767310072982044091812976199301354974060212852549446315540973835003484049833220154254258319854468518095291457993812800041804313480763296265906825796272207021483918154511780015495356501164193067310122332642031106107611015720123639341401421711741704198503779609590180373276160701808418610876925657310893493062175769112184761387089824175585797999963460034098197104741543240239553730368167330235864385387811120418888008354609477856401773731638681603153029954335918084505037843552509555889453230489206155356358617628392296922727407321733979702772968593730898031725792799179236831551631689270844004940467823712681804849885428013673078204710627577316952628933877550624064947580662792878749859389633127936282152993735588483081399904070473628733534707898264197436425034437902564045121169121253244265407392090784421781349726726210446144071249758584167732671676153372661959518753979776341988060009900026813787939766632342800865476950737863656029505737441358411852215990622460320938626056855707197017252829445413653076246371279956290735662160073792051584574339899418696970301683237911705691239652827620748720592046402610881193138275291303233298779249947608837645060703943749114486972642008527308949314363587879472418771883528986348361790486350959721222706807544031667949714947870134162180283373759310657295353370052159691273194274426555687982698629355353881645089459477179509189178780405336273592807052442846003618800254978216014012993795101305231412850586697579063957599661056778639153317182028722463886056597122110564828758625337562059337430561504983080733763400504595674437122248342273762583277648279015069811369924363996486045822943455294537448739211622221121564574913014739274608788438343731338277454884395591790190913793730273997759977859406878378928640778635301410074623138809103642268756644715515082615173159878989128399201958270262668206654257546984911188072755568228945086542458507712926132885852020048770493350079301126603710704937747365077396521234641474917460737362012001709589165632902730278351275427407927057816284634543360203321469456292037490990090684324128760750042818969758686423559001365753219193999378606660942915292625993848617824860872372321625048504634627622544128439119314830130544226529338954985209994736487536301094237432155669434754267024884266479356037624936242399301506517545374093423127403467607949215003177514159116702441578413790899221127484783286200552529379405401109051181171163311567327355282130176192136523179139189871419493124235210212481062910251147710794914488274479812163774497492394265359751951594616132831576276115997004556298677196063570802268493705777475081423465687038807694281512408301529068192481302701929261811428177875968846205414294743920074790489888005715279614227071595988762955029489928426927971136927379001018095293073967645061980832281418169158079184878970876273269739996367225156541798634482793222706426231619837673066832758424358750640851775317889849933176499938635644767033837189237027624493727705562667252707291021351716653519545980728660150119837764026373248083916722079819475247581081719742524650889844696920908423740037824131354758719035615002293199637613378241996340933790078556578914427518317650933520407418744494704934524192033921375725036950239173293382761132522464653372826771372411683493751675188906736275073252544194030799031754144358606791371160548099858387393456383620056836933808100115300112990281277127024192854818964453555051563874594037593906078270740898773546010822726734551597452188554958258776519485983049182204222737506852543211189993683771342266827068767000462649341108954371409074180648105016702727218228513954587085922293642797977723309615996358221318347033772236441615212194920285499641140229526712100490407232783306005016947185574908613611692789608452250243260376678380643181446234297232749850777773361483056075515941459219836696255985332426531308594254329149537192751802727210191419088419741006747938479967926737467666630205165520608665700896831526755539067377260364004376549739311733610690683796761143973603722340831802974315141501065242905474817616588218193158307870483523908591143895549847750990184366325100157117225928776471908375102300762809940181178300377777706380754176394818834336790114154047706259793212090507215557512096559345195844805467707321247095542716949233261240048097606457603149582445142788540677609571706660441735366481298184177436425063130541599172200049306563257031080747849730973554402744266181647906944159675387618881945423283459962028392949590663759555615204956046964637002967008450235125856701591642990051911796788337663227852889538275437035297062213219648028187946205123509386984625032461426319761770210883215194942059511720725255222385824134055629002122733471065642434055184655461858103593100647922007198177459433413661473930806546374015515613613302712336445531160287486429739427234815786333835450667822203868511505314692857365437336809748205454854844359926783318618495724066552798387070428760650251572512196225662961059470105777313271763766153022053579411140556157212490710378598876865379088314316819736881221109765706660533450814461953916906038632729070395150343312916631230553268879793209285308569214646139322802083892363014974253589500660512092771392442917438292668514660073501156068205856937025342571056085038451704247399782645148485400755731941882586390586546844087674512458660713931520446723677957720591656581630219397253212708590343137868695831324646218438850358939196561368542498358529569625134389316009072828102915623790892285189612719265437791353396894483181621960983502299977770144993757514949054119410030597345444368512527632483966806895835064685123426452015367189190202980870543334684342689524817021326749987179178943563692923966635003582376443579863465399622194981917220491262258931001274534540585085758579146459610929864531721248606508803227955348420911572527090554823959580974524504213612776243958318029772154097604861360490910251188447897083049785796414105665390281241631332178585489373810540841402190069679893924381881357303387864688923345124618440754949141552930090900668115908748888175601979511978599942450354704826771781652044399518593478524504118520551072577934155816857724495477172551833576464294527070125993100322975508520998416513162141114395280622773069609202607115375504093478335869713770020078062089381037427672517657780833043187209807844925347188177607106302951505852752670212207084371043486124209311601852313843558100034202044411353131689966701838700166534804390341473024024830490021603679639269277780815612020244060795672367788661806962186969216115890693643009094488477052040767148709496190680670393098512011045915639396106567685966409711290921043960690168034596766788283629207572010833677297047256265205559944843266917509336210131634360099218665355948451394728254428994518259684942145063400203757721450390939596040889019409792527312681909308887903945582389148221490498017450807887486981175337995891222271315289528493360153781050776794119409503673735309427408683017871889615732766841241777826008074805200233938154829440822709610445202802557416343826552624192691171161722283644682187941542840350327334622488985503230356697109604663176954516376627671175625288327926082926313815613100922280019852478112433474722606316944005125104032690403332543464414172615162820021193463954276485398410794295323422730444124227200592325306610626260052358084685022553382643719424233253507006783860943104397551618345685594815945449393489919808801197726148438148242248204915765507303148287762422163046271422638871090796685088622516987922235306784086949095486757579197731290869785633831560552675312971892698738695097751828101233742189673173624711653546010452175228033942612649305889660995167859511947420757860471866397766380954478776492661289115323239666687342188632469905082137824126302881513671743146081990720515259066762397621439177472352063995877674512179245835842446843149154928087651016358741792256830760883392968525709380306867355588238282732707709498168434334393705686976683104240323096234621129468083883603399526519829592938004055256442997316198735041647088923502141902912273816127742824984102657547371211847207747089328110279064502932489000618520176606692762355686854906808644391689819987224877231465190877937316465344219150985017110554800843013230180680568312304618578333004368237377597439472121899926356060110139375277470598076779886605428746830839617239315854779874364148485696776275381089107255422319514563502769637555303304510778425721753156297759540595674000027581161332109719273788612284565108804885235047014887012648829839967105848041885103794146242266470526415462913367403413636697216968194105273757660614609841971706405249078049534189091899169743177366941732476059794911190377130403956620273022431379743321222473288314351669457856597214683407881585657756411424368928420406951860562366860163639130453678803140561016721767157203436236716721139503040463449290712356226604944310741271309979701902003953194419944520554438909207788400653403982178956849708257591086554087108938552101268787059561735907409342652678983606094815073180515388063522803916366907240032391315911731139345730171917828581815742529981246093420344502922735075884421305358312987507159792387572979446592726685942090653372173179037154903305615874196635388038279300920961590223825266909335147088851200136784033390107120374303402264558287643723280176728971279318531670698410982742737780261895156213328663859676140295914311743194551194952463966014329486310758184649451669856603348429396597926337968186992173252368572858407601365341953369211820130697276147819293830383286607846914019426390905629849635944619695930981877754344349749419405886904853270089701631767763260526986734231323743629185798281872230374973787879147521138117292283314858584830559580692499128811674863353302998824035254205955568988793021698040433745088290527128468247131128293201305433793699300086663443619210683944132960111652539819626041795011901111156961664138462687837931332542615281781824577813159655449263816742795323686738653879368784379813924340746392701898970459388623751686289999880932222118249840237526546565523085730217281677134238852960143475434647055847894438077570466772167007354852327768741046222138080458724764358586883786504445189151064178887376818453326393395160823812681914953219154596625707246612015419644882228386579102312784004198412312444574330382451000326939418549826473120937704373802955153682799023082430473993975224816168001603471900972726307115762118632316146154558918063376365021909484320734156345901534679038416295948687105549519644457439481408287400525291054345696932682945695153617819744111783084897929750214086293615547210689004265203634538823934164894865741198809920014725946003200988223913734934100204885864210416730001554148759871452421967881576302858353876915843197394987270966224334191435500872153583243390239725483014846744275029679183843494959264704086963954270913327496143120996251899667344217572267298933166482995418599954975748190008627022719235886127065810750722745948706501759383587349950506470436186004582740810269262171938917759528866839536735534833185562926118616083382060146747141605685716229285636121030397435731790085977899797037270581687693583787187091608294250316266128959807579792815918358690635039513390982897753726348769354978102392155524005801197031046346690423928205008544578987591096598205988106524132485071901988654207271113915811552073546687642361512089723123334483026533431132073264309852316580648838295980981548354756395654653663676614839761784691715062915096262930584583262475686969623400632555720213310885068008794904094701330426540561346098933776330368986050157911485966219633578107283595381445413559457396693950182705187687503723653840134540575080484250878749108896830778354457545409055229556421434679471588474251124723905394021854903253640036688979237496700237869712612175859411405216405214917354117320614317923351386664651366969579351290617818154049522050926607788171437960605434074808639600395458171415303785295039537176818736699847164270149873593839394130596567656337352432026086542189900383123714001946516466698806044638770425088137401918071272989515686689035011672677057298071806120652870930336282478113726930751882323624978673691717436890808256778989910729754282812933749813472238082474700744967399434755355763064243649461610183871340997418236028053214317434881411376485572977514756660631481367940358435562734804849056826331058389353600979343253255120177990847496922410431327738377063576810991060908189352944473867689145742717428396179002009132574928872122684393697749092575844095242252211173633218272274566036917013780591511602208302208983079865675371880992477382080902120771292420156349061719787358859837190464217778031701779313007513961788355483671072789205515798137836606081232089485875512823399077947669459055132796008552038591072759716070772992274646055417872495736639693525708588175223057509049424969928827188848139316715930549956670505869861876574933434759002198740247671650319269055875098659477550980645095026025278604897939149151863556076467896179988121085200018758618895838576489666266313004095541379465419847756653276019393191188167867761892289429527012839026391603471309233579080052278451070277203621966907751957640605295601611777572400008634652127543455003227050803186202377946331412625546728303279071032594809468390012119101497833555275535280058781565879090031850268250673858220982330629243358108072961132394046882287733155490228419228045021411265515149555596391931865025881195573454431892762823432408453173896201390802174321861449551775825236401160141269662055708921431271880607807400217487221352478815667978406148654030415557978609395104634800169817307058667172667972491987962250908520233803515300490541671051726968049096060149460055853540723325061632931123316078072232749955762775722332945142013767476397773808999379510069931154476268542703938844697067972894923691472553532729077143813520976609280783385092722553153264733223564155382486240099453848736127648853475475544199001387300604335107766030971274723592733420794536988399169896978158983635788811049245625331980057441198915120632122840625446549652575270784145804696953651672409093870270740378282654353776725376297226248980822681673148850870436138366444858820772952585260960094428351273363425498719732838884891388055230253663764239089855726725767601941013792525263002314901676248316450947060745671519212825794826786523964133468937304663617650356180513138902801790631081042123599632993931000179170896463231642046154206579074043445221676962395601641372219790681459125420446565446275972181841327047932239747669777810816578828157867924314090742563914546177444187805172807050426240043190722233640669441916850530553614646546703958063714695763644874769352521654386970391185498954257297648254934127150390702590304987242607062649951715236459505409772153503879157367368838267830495481311131356741464099493468428293856051572242219860719076776902799929667635733531651024068048191094899208991891025367291400801798353183375075508867416382896120748898117537745035070617551734362774998384652141644808504076765759010012613111300405035779142498718849444978829958451601784770708401955696394585390886951130413535334681466372068067294791132569545747993772725322558766247481491713017570500754896123265737996401748761928900154312362288658411299404088118135568307901662318376040085042908993278648395398717587691547573431885482644113132367109738103234223838294165801726860245769201881358552813638884380902527899581545877580884696963700001736225634131208059771231663908388153841332901268385980595860494459169505729407455300241470372480850627430201254436497364224952413341440847042772913943301858520052123681088367177444091232547975668436307492850486508216832395224049976630386250132859611782394565952984910841609533734356658449377889518451675047033830896224551070838738606712050946313045525890310223380901873357105721372395106689665069358407144143986911155001994908734832648959820765733446115216099913981491060112776886989743143369330894212065262025252457548092983413043506597889529170352360562163306174066765264515135439216495382501313267289724383981775029080413538427874540073321583864694633657193834425363719927301465171952752509132113580786276549604145283578297706832092460334054951119458138872614698114840631846077133522559766073769007493994285609986682015673228705369965457220090955089285708880411945198240610984131142324538317983124489624866198574278756579784436274837588257948339000786218359618689415273259197588150991020839626518486292350996469145141103142005227294345444684452184330374405351183228077163006584365046261230493959339306908644221300352823745572944485802942312721135140052516201322870300288614432211451800954535881443460869741052288117564099319884609014182235345735000549040250307688045007030206402547268273297928719878004835970823709368965451644470148297564568645868713674055521420135503587761589692173373935052367597197885828183233246056941956599559637481612246197716707032609864312987304487019904913675553554897493734937578638036724757695676886801894248479659056505798256775690394099269150664725893680179016431582645353275312274764252310818634493279621744823116210203333492511529174048676700739951038238343337771771553811410601869312833968903292098746784238952638257401898903469803846678216169091031422507451092540922450427453415532417704263336280180871066463754412856104667167772953210383179642147441574589836787194003309937386829737552761943657221671655554755480290159209579377409449298412026189705140376237688323367989188545027263818257658515154177488299640824773275825869172145956784107902355556391534985252777663544626290850829943095664009307918616161725018029489230632351524857081060434974292277435215194608355633416044202253888051011697641416511254113328461074100375534645619391175271313903025021432699518890732481877761638519512720029110656866615707682873768325306322221991962968082957220882337386716198014512968096394961017821985007228417635095411076365214449857053878458793715791478723172250898629825496176313335061641709303165284900330815808209572247160660924800201530383403392095196513364278229773184856991136298844591662773846316500265666213802097656332013150232918783841613221078560247364672986775902856419449616487783583072066775610523049676581562418347618818623157887347950945458262087500495016343717408749917766349354557176643883249296608812229856768176346256331184143321599013412969510774563928551788419868666208952234622760269618269564747281521462207300143094181224105959724180838698427352051061724577117626079857796113905506928625922665809462989447569765861104665906522833183120550832006371520771580330834404323088713860729451961893414812779940431220217911776721195264103142274371767929998531084558711464534116556389443051816725640169599472305798335102585874713334996505738736981129389597137282234571455073342701386091835474953616752816939416990571082702995497158869451912024852308811151737685943984740466312599210888456451086543488981065159867631896470805905876453737571050616552855920790943765883836686268372650586503763574077098961760958436339150550991011750679433622134269388046470953053067276545019228637962505445367637552280206830415749576523976666256351958412608856018609846300156096501582891945880701502673381131181949786222274109498460734420237575340258980367316775686745640850809974868161548729643019034366016151974151274376647319908998062411244047289527429481246860052851585872376658937857077865027141235690967856185597897023687623053917183909908837127455209464120698511064949558329570303715565220688126026346651232597591167987535792566412731832162836087617017822976363179897735555835154874555665289359730014099523692367678732392354469686655793104426604929309284046960882193976232246568934090980823469214468118009114226492985299376477225336732351012598158348606849367521022355168171772720474754195512171034303227150929842363717957107122387621356059525198689074449568727818541911411006032324366534519558771725759744465404247525668021943708501743035315530625397900796914188902279629348496804339545499824192654322323205318252169109275130229737539800645482778204488006514667853277571503017147952283510206589901870707627283211413988115822054634038451308893043482901823292668060862081673050396117541502311824089893115454256765363007349156963465020236855821061704904686300243057899681732984468415124112218536782960996253429158024489024377021927440987912934247771594032229884654726461248288666691924052658020037134189940860893116953597123922415835541183794450803039898579130262930658910557546062305839981281351460470881754525556830926641471298267228361731847869861447937331519525062697575419116537277020703639694296818869864134027180438171069329017722811246119693590868212833321550250751088978823245735033504859630084159673649574180792972055022107771104870989621186542106497904381714700989413634772048441649093488797711055297204782411855258196609740948787367375235830074359424156404980145961246710607508159855334098218665468543461783675852587830828720774647603843133917111356680527992092250668550895619405532535138961483058916856752487842542351848770962147552717246580567838031512553067246422007730973328971328895223593036230302119184237722049984922387871773404132432627271907425322430593271239671754338845164191414156202428412789727150190450712246971716801917299590937456190548032959313895238102752245836682922470356448026599957786916738083217128678857906394666163749087791343540413146414003760996247130488581563686197402022138573560566019776128957407609208107344961220097488585588780761103098120202126295697129298133628895046989473234298435327580246131886783757753455492860597795967087478607667282798434762501618393831550101315439947422214794081890052361496042050075611560696435769913408960471224095683707049202031949138186164790781471173655036080945325670555992324194064557569954073181725554856995077793619204063567044369150052683803926281373216969997458229581214040081267924808542135510626012748965088898151536505453739780577197623133045957620223749982437846701316107065918362679860206381456294794143206478912506803424108544770788752396727981783634953477032910704610059070273379103127850778819641590493383568688789945549119642128741421732427576735331670528570706351945456382817017116637532746107472965816839576959683438939615920531494814196499398364807637378760052096324578620054846861231454763959646937780791928286699686913733773813147387657686878541011526854037896021654005999269660990731903946550175078123798832318233683127848121160421334904212309393197252134810085431046431387374258358592886250613299551421285558950175570567128806645155721970553016171283558361244945498408225735890416236908745409688639026127311560467231215604302283842115084906689818602601372993671136680034898944907274935081067204583448925796239982981887127009428907676478720783321964042568728472151813799059272591209308776491837659356719294552277315398011324525108538229728112761443911346705702864838876367299771546329506689305350530333835359846506118336169119384331246907733232018596709673048974333906645886348789472354963645232012609113813461722918318607778786104757721635504170946464039845674134232421977707454907357784341381993668054358660287717521989831482462649416363146929889723687914621724075731533806915029045652436099589166585310541336745188009432283467486977003597512202426714475949768154415642615505056039084015453066098383190545076837568954453895500130851465442445788055149540156164103550178922106663406507218557017762274958553656010385034470083403516146785539759268423757523834940604407743543414837089053773951462187322674729707553548908814665410785071397302499202831644026686809863529942917686783259489258424285754514804521022851798521334363253126429379910246442574186279959918330962890419531449061395410664869967590564806875541256396513520853006577833324603453422104280489693410723289095044972688299329342682601839977061500061229358021800777009579998668699563277892889947874664833854442410767916294805395373887387427448155600934975973732831567203163844140761319411001443823805830004898013361134874744269930749288249488742225210332914492098694918092523351999309727365841769304835301946907806883245690139947416879186298793977704646696441244654413866628186893356461233800931660970705377277201834551104894168183545010889877193234720055482078406950203033945776511369242722014105840418732166562107024875152933864265627234161284205785647189243567043476148019100523055623173015045641503645717038568110449198842477096377026305136908112079414099968022276866487776624933639437981941406669922548719864775785706010456799292601330086680344986964534955366348429587257764480918725631365776192642575495907889247624940008400607224354715634510834515213849705500748934581503771372640796005509187033277437165641641228205783465301237481517155333836453816140196364415639309762555984225740011445925443677610797349267376650191798716375057290171948284449691285845583144983222280245159362074591894780232222906197964343588178639331380408334188038634474996281364231134386150586657906785105900013826560807549785508102962379445159759183996007310455860540726746461000198922134801894112936983752075563091913545299356351178856103999706049969740485545418534830959388880564826054842389413245833695052657332929907901638007735152999323910044403864286648655906098921907957759648939766616134497316456646199166977763531221481596673994968784363637579027904239572975107172218161717980133169828147792299378714447971061215016946552212120412111452242536189625103359298110399545757313819227655396328726339846670540462609601496331846794383961042501667503013404991426031849057335403935064916352133823314203242529772541932628807882411991894000179840387779161679116278181649215527355613964834771630996305542021984060892393021498874126823685035894990062121024106421254504079949352882570909308399239531261199015441963351717050449576315872601544768842410934260021477115844542131259772232737079206149213357015672119472560254579199998440374825828675580975877296090502926635830859305220457686798976674379799506299137275758718862617029365124759982792257046153835919488343097688889912314386307409669661073250199216604426035997670139451555955977282410744186400913357050173508349860853399859734522266932670902665093786141196946112561912663121196757805762815391460780702836427022550201997716256001448546279872535463787940722093401903617927990926833257500064746269024460800686375819081173665303410597006943909130020529148486203832466613822006757507256953005557080212857136701119648059288500464241925862194791681895484626950955157363972085052855330826242345008691818254443405656594281124458732259551715817737460779176306678830439339846713876749227855662356844419154456615084664628415305208343174384018714265051306336871054629113395400309569809151058544192818369597767881919950123749048183972870358801736162773109820640283557522796878734810339988352275128622893401594396938763909490993143151847484167382482138408916768329251979902779950843578358559101960140940587504562001099198980376052493580540943831083704116017453824372114713875511853624086511806002389869065532045028107973754732269115885031834242367279730330471241450370947901355061209592630711633279547449896602409641961421414980801850677704872917313295891278769929384756888723137050057196947009845878176391110882474642371803058989344696105490913465707188832715184764633149094513364157932877055481487641329834142971313120806966611815488339063608256730441282544318339938572706534130224592102430344981237137580677032700243911696903220179544901649292875982534646908494744414765998940199035880644935757180215869279731786919562853940390952395829583422179079920896281387575372895127502493085222521412465804584664272163499684940525058707260270271896159071147483731582197639017987204564254843901714428696644461165322342021138390480950728202146810834638839661692303183902052927751155593328744954253256673665930423065856630354970675906319754414657476359311044929112066364300173444126909323811216971752236434118182868507501898111061053582488951562784836514362354752908375747000444107201312236238842164307313548579301846087294736463336566176392822118387613813211662267137725469266825105519026623989212491200053608966916403842951408259798432704214422934877793961802132098722770923307880044703213033215436682768531009739869517395940716226719640761206251616880243712978870675417675859802770259080300140221013706119927104498245036854104095389671870602474063314576180603218772675289609797541019855126192641703713237466928166052575133134480511903182418362164340985284111786748254303179160373360053820927743951390471017801119753311845129556258830319229072786212541498646717284712234281973111804733607544946362857099499083298731935511041423657007874226770813128788164355206354999544713711413815674818116309431038663306372156703286181858030499746424314148862059810775989588265704752621374924395716609122627893567591189675367953606198847365251925458397548858667037916422001240861756983373217774697849025361446411071826585561301933377079530491175719949207610906703378421032219534540807339861226105752683563230552771935017463995375513898070078096538914530753215920448290478048772056747959724088116611156792622498502801246253835232201130651689127757892964951451381146766849054769200102407653348388271083639490997480612663670014847834698127191196928535231139627591646871633928537651285324524479088894609293205546336921336176919840180853514957521536546008507858524905178944834057678191994637383307859415531286315305137167101530242132278062942003571179300998982147211071962927630984606891062306615409149691619759043148868566329439132657792621778796027543456870213497172118739276643805175828554477221428646812654851678726667545055798408189385914512081706986299989655557910746910355229336970120845194892605177570211850785100170993344694853717301935054231631833519930765960651117686455954640912398666562713181563265457762778451224079872493873694660763436231041075865636577464008234146997629936621439707140518310394430898288055163963925830137097471567557672142612536694271971249972638015524855309711703842053219413208138123252876977188428415712214306507372264412062430082170203829188443736229370104124042072164778481753852689125618129290835097589082115269883257409281378024597312690426987424488863963288723439572421554110784177153084844444592296468799592155930211356154579888988378874742140146295130851654069155576141890411962250315762586545418289747402460114102057747837007180095192516079080570359112177913386077806885997725142787680363274128583279546595066163812078884407376918542604817188343482200394218624266202813267674252447044428280145395664734164783457846863380750143736350235315828755757422778239433298391729978475952173641166287332423059225343270896316112515221906577968454187404391851650625614670039389738407163816840680744482936433675353292459038607334165387654344921668948188954030144059408658376278210080691680446567847769297200300909014553738252406084347234690580893555690138072080966126134886335427248958759266685572236676606112804867332536956380231362067850442309351243133568561239919979291582607361995333674303192443032706407712260169345147073394290359777935205891767313670556354201633704953558239507186967573510226926209030815853437722586315221606916813859115819251846817672610702132498811951084176070953313108307435832720049708622603730666171894256144331395631421911597967796477436630393475117692545842232307916464272708798919821139080883891466135557742906497049622626045296079314634312998627011702593717343456940490224546731841825208402142167950358913393215759400473649792779923285183912512048335885469004224195525878051758107309444854623989305991002288801766642566855940337209168400586874797712345789600468768753249070117519946188354114076710340221826293298108074733360573082518580510428667761822450572850641746093713916346372158322947105978461477133327155566973812539511913716058479937759453328241330879640948348497804784055278992153259001141241600112413044001539176274906202016280799535273207666998992095674876055864325373686890369162188375933719482260559603414517934261476064888836614067318881319709922095975178641492153002160297691722249528221301948114909465960200147317765766073478323572104636253576943421692285621936341058637095514991755452678171458123734904902665215545233293801618274485908446221708827943175088014873133388420296786904943821730355484929924275823083296389954170694240893087976431480984785096969224774749834118927496874516125970633069041150381884683932169380001737113965418119129732974939113882678493507088865129313234879193345534887496144762212768366758902823453182553249305251378116977624092595100365859922781823837656044940518757917712534677349597590972793937286709378264477715195535559519354510208331459372194617049396122920737690000138717377412144316343717519835175077662833710353662682172537409105989051434079199884515551108204443511217218077055816172732962415605883937211883280107686705946314307628116529313375705461000315800531438519060666866229435486003584672651792342454821093194044272756934306888428830708615275719911490982079529599870965044178192130615430863158056003168384027046387506267090732088142605469497175957856657036747729400521708133429790185095728681862546740922589527992406086461213770677707845780275655376160440478469712162765371964788531272508664705916793109100716383618491921369517298175232586750797794053438143380781916173517769931446858804602822595623772246930259193181064382340175176954013237366109909729806307180508788477522897879415232913245015925232023896945026755778313011420564453001585892139545511979765974083197881170544388110674432523494071553534008309494455770664445731719558766584201301926690075906549276796620388595084562255867745928661075984413931779855009325066833482182779785167929256136601458248462228403165686169208534319706658026428247369982712988082616862254825448171738894999143928305539947025105647311453072575989259180490666477605916890002330831212286373734277727175595599980944979667104648514008281748942826142404662609833261146598453062763573400093800573630629152266258747469648373602175561317916591401963747579004919963513474645979403427055017026240184321932981158488719734184103084503795211502153950469780884812032396327715884233820743642920526185383570582883444443166812017930783387554131261747696912779623132428891025233505246332353293319476133889911891805161878010129864858778244260153022708486781406552870429299463133919142326054993726544239424121634866233297212792465170784330431363997726142997171337014732879177785492066675094712260261076797612634364305699366475150811472121260572422282605537622322623170844274012133169084977902936192609346439094211913550655722470530744906493869474330049510068442367067795794912469921157360187552031075054745127700437816605352375256498696964791794645386105761572085263554046746215577456593380330151833739782721453756046148283941593296394479691865489043357057750234977548475403475580087414816458070073143254284801578022629985624926004198785403542446652335781875721789363359703920442533330285372996827299505541244978115123741483445186075658797162265748941483583597488812218679783668946844596666614345537348972095648426460067555628072807701286634254058128344437875655229451237073224800201499519572014285690420530752669767528270998369820191424204807264280430140096844764512195717972752525683892948671743084824834220044968249569197546551514296184469298607400240543661202491058895330338698476108918344095003957223530479723934356483275974139998215773727378638585375208167274870150074414769479756564474361261130622545958722097845897827616469236281735156837593289048420107857788057981917124646131608461309962836081027573370625086558069783454217805182866468859484817280803632583144310056576291465250248974964910490447967134304130308725822031335338844581897573582506186932438508550431434996423732241827613469084606832855591086216945673066988256217192417691347960488611129120337788703384273740502215250111453723553699221314680487475703462759257027599811362875169006373920010673704238184169332385121903236683172877274591313899850944451627034067485827687901849812786344851242986033200415286227238319950029088679969419247393993680633446356888020953122125760059964741271183747407577318971953275457806618646932731460323114902767066787434681900459584523457280708521511738266490069177044272705239721672634341464173357695538986233465431533772181145224671667893827468042724865884378529293307896299289141846105238128068298443830972702029298153509185735889485483662915450372416974739323493463746426137425676807162025625121064323815010313093565140106141748814851584612795594851874353153881580550518731409009598067539061276508554762754912553792052814592145175319296637306502220531997244054521496204535685048204214681352294304691254123034185924180748592061953198589531610294910947541565049739004579266369648962212918151931710934135637540851064727154422984287008497533482667798740066700646998418196982869440316654253271772797484411944589790407796559637314462525378653821599985810071152615728690827104117598402169637635397901630937293110461983939840340897758350313568666486160143216429919616991539948136365875957180085397927463621543686724539260957057461242098738531318553655795297518815924616696918195836255448036401062201769845923172343384810365856720397752817871642356827613210648566950995263079901451243436158243677094897020561679399411856889452020803661031352457814457237270296911101291935802059224648618033631355970263485427972408336263007110489181068667807343429223455169076478417983339043724068905487148566421364161524503738081144528564509194164242737558350957658642908651753171671295167155512831510206005264455869870800553531072025202358371434887160554482491962879574235774749894207346317838309249875634602318254318624428820360126378642682044763908012082696486623610318889952337292717825360817736010128796393623837941518534158876857533400550290295732170141812653388185221736997318915411640677660670467722590849934096302535661506932047939777312943957563693612007708748945833984963778507797417615939013629204386021971563984960701653339214112067010744857673719494700997435340445174082185520721747166767600095504447291828504500036601697665125220408772238276277356317148013562516789054129466886277394110874744859648292558989210934823477712009306810893158036329370818844453596656453848619163271395244973513985396062028879513407267130574943507219716143473121228028144981082072931160097387300652920023407598986114740196633265403416975132946119435411079717872231819069865929867372068271383585542183447272891426437949131090389859558241660357945034554049076981525027760024264736875167260636543596584743442947386187773835352238013428514989166338710327701984888467731079559274692026134921135998218039275589842285634377558241986270486373783071828192152852004708681745842151778865789643127673184982018398895333465622864891284231407580441453176426969573545941164072295839388698770684687637605183788292047362512760476736170773068453438181023663446936798522481810362162070607098321520332134984603844922603055218582865898331087225550932247676419747294153237389927812509159569312865660180384106106234570284263758494442745792521963444657680524310367816609423738483988861745466733187139840043371238602520701213161225038740131784460620262488013913698549206288876626780064376315687917177319485899997649926940332017875415858384661601144755563162544606030458400072153922929314751965314362076027179130850662493283161279445105823769010784640005777614538204196772609346627623657204021810573327996027749321638218149588892908031273112478086563014913887374844625141951054295940084941660099584237287590369147883903333980116949261341722310940116495531640246787999018746348525551081880169691543648550551074272956489727362520890353332446389641965894646821494639364601188183127288210928875464511387555891353176965555987616921015874509729061435014201483960610313641584150875995174175083666500189381147547730251357953672756634134663548852821980811563169482646200152246658110515703117421613802228864060054734316417089683233398707411733297419551180311856832749808816202524592317553084079762919233646691675301160337263901265713161780539224500180392863758933479594855156085771804424015168845492780599954951654381652395535570371044613701291065998538431959896960094328018239909577401056894272222920556200381223245145856973870358675009977522803555670713546524382209364088650322269910579564272322890985554959084143768997701312429528104138365381911832809829982191923364857495540228205722542168630927792505262921604769537694419690208806828954003713286415829737844643287170692067718745170907002175454100864182931288411861151487067062347585809179211958030753704443935029377465337547089143738693508987140909347616016997215057929655700117631462007564328546574331954421557326838818568081968426487440901037018555573064918289021218488753670479908777676468322247930701678982232639475479699421065210753438509606589374926589273327910044094965133405525708889654508906673287131043806803541956454233644228269904943942679444530216021566411602913612773551242404397911359903903817744860233940113059122088314475945613017535968146592499020799110296408207518669168378153903353905151271506374150089706766454133166277560145044293090138740505820483270137752408490399749549956977726844556931353001096608241666562691894320530272359591301681028157306761186871564375261910842537876313497882881995790959326288367217591161477385270175819808319177903850695969487935792275166854428661395850661941826973339594811449749646753349737233358004129567483601897612136382164130346477795444255749747357797813212804349805438597482251828272023580623431285919565715907481944748762369150937165247650265665655293127451182719036408614721900777766238381495676074753284838121931284593578948011783007921041381994373003657175478743844986094284007428367720642871213406472760681819565988810457399981014287984274184033910535425335111661573685976790296017121856490864038340473362310900716969296634453070372434077294296595600269658735461203897613352223211039310844929409647063010004784473525162102116002234407272192906130515090625437454131390492727730893361298879153107568941522388825787453999755858540003822671609283812475074596318378298778398057351405860499991283179573956590762862022139065573827217229821081607436804734994060365086827262917957975875658032053067674717903438910720038696900075363351369958463986322162296966689858826442574917469708341605968456319863900091705475220583380591978744465056977135207308311371493174281751488888030458975807564780366424482769832003959252174194307740184009096226807451932341164210719764006984527252412808448204126611899340492393756524272060899745061848374595848058389937704817911421976283258595125396615236626351082877567958222655886721512474540043342355477756079623622536535707014777209823324505357279912567275280721355432542503314827702992144067331410983779117417536672910311698971583676628366994460733388662280566516167620475443817066942600784957678765760842920208515489982357034763605708636988603173181793720505919610361474856985099182166561985160861817681692936720549704591864764125811783859109468172683940172306559794329708240735763105562252628533837184344274557959288186033382755498678785417997875297008052432646636382645643170301200510436172793698104109266189289676096580279284399367710079348161853438846366255582522961046986141771879555958597203568816872836165801453769018058318218296582007859852397565309770073639053439893706147800486487088798904434160936836165651842245957017030492795361811882402340755460059654426481184929438539564618041460511180538623381487907110502983945736084190048708233554378999338273629359895094798978584269196307453292135993534558210845263977994029794306738176035625533227769902235436889425327891880691503666285750422737684698200426618369285429941987007233959312434218040490287064760538649164701631341932997583174547348703285606547762262555027609280856857255827489961403428561521054505096667092520506339145225625396096459308100202731253560388925232614327655479772620401098487818493676668454338190022287672759864636365128047295967026087359481661163554245801851622350715780992455416576119030449843261129209368607491278334960174280250384995858164629308546551997746298732465796685815134513020524733959466177908533766533954683431245754657801778564472567018771031513423544021256087367478773605357556077371018808191392786064316420931634163560470228222416301379515726787684261988857005730679919478947876537837607528970681167702206932426543817628084242427061327166713594249886628279114678007057368250922299457057704558644895823269701122309388786923128568853276989406019702779029210389799573552595914807679823346608783918267242351954073612384706057482139115371911284895883388246013679777508876182091832822617490025045438700821647591636156513768949726087773935119997334345405723640793218172503049862069941530285212895537000682332561712675079380808138719135353529359492169731425088274041384564272910087077278728175282858577907851746756588886104449980543976897034152410757886378794891693696660776613002941533541276756120748622933333553840086712885278654835020458878780435736549702115871920040418360573966544608852700188040131534286662919981760756312201341385921482021203706757965591978993464210287963105619878370056991683946785435180416193630069925806509594811309043712220871607396741055482089008077409197672684613695051938501079657047479044026640778702185667457860581074354202028411167180518432344737263590757299735994192126299676216025120556554495197850730341961348214726107037199798437735192267119459060855361286908326572800386754918648392170670448335273444563364067664413948576960982839539000648588630955716737350764675489982296803919458537021272821470080942301581416456759172066256024822203433458256667692182994542574971545809131648693477551024178559475810695792521329629699033458080000406253440541460413457687755465884317236878084277310824011275786463117234537401686439748195614136319441734855236534301917293592625418536396919542019905221134949014505684605081459339967029796824661122999319480264870563274337385190327411044865178947342045682856198299711473157992644729677633331981506810486622287256015550123573984687040187616564469985292566997739400228104898530275224749835734475373148444358973315016649800740727640733204292908868210500696214713049050675098523245699040951877334930340100871109706559224042745486701224725596132700760142804712987354624683291352765041671122493317124544043768964919742443047666834380089988223665083832318522403041244928679597569909852878133425129938031548617151861801572819612883812377952044222209060029865313889050995999691274854517914465243755259507404394376307848521439476406823399293418217822545738724449148081679337043366284894221608841754354198193270281160858820454373383232128551197242509261455622833889766444044808142594163261230907840036318719509345352681753377803518028815656006682243550405236088644169727174233842867827702624999109439543196576222559016665048849045512912700334726607197354358734498239186897476879500124190692684558383057965403592768382031569728438972999899497783139388603702372677388739069831283746146161686196525630945413040312807696511071289134104417138823612632223722030142721803301650845086949697781810404338734521349370381864179380309569115927928446094848352987900195068451417737335301593921957152147719974642085979391499948877647220570574914225365948659288721577685316386823986046404741508395907923776788812900892871530223242642476204373345946659363225278818558487405521965175243342584234281684184824196242567980835783412325016971803690655608213721367521694842885458692076335763160311659244230419735642280600677711949504616113531352802205338078341735357657144155276479647581637605860564800996410640821980079731817154381998560352532914242108518271388004610156429818514509473625956118311516251088561162239289378164411085442635678078938739547662695559531846540313411888150758910209722364988992004194293070509278463147493270519042738098408500493777160895739568850238395502707948438163205592303469814780231657105052682139388683369313387824536371031742290887817487541179857466103964583688952157411270249885472772714462505233497202255408201468846489395974407802653521959026419474740170774160222362134177469761564726933562287630221770992288805381254719214662663651864577238396615978579289022468607059036332244883542685761676765978455216162273468583993757893421224778472064999613761538208732828580457285016924443103542934263762206212228964989479886213796549316159830404499599440492471263594909252414954078809868781664239661457300229602926574537751169825114850471276036226941592280088223981735233063569707221800329773882765002457356174864477787058815957735733559568801384420563235738018009411255322131663750273577575362657369808294962537693957735093749418762797730511329381278683763054164627201166957693397262877492012120444338175196600619445301970172199887081567835753639997524494940421484075405323843038660633711996028760062663963004141213062314774021473462425321594166774182058103750590569245265628711155809513665333842420801121234262148964499146014746397732373974955494380483701671860563070386923377938248732836897035406330130292700158199083006530823581513721944615684420035177603162901518111626604297872936531435560885963439470890270370656430573370064000087446710932197115621338119660744425342845743493932496903959061579539075243037278559830449067101239647279147396277443675193957255633567736132538456378625107857714691217686983722807014764812660805631790906509033031856745421621790785159844775300416488474463991573042788665216371617943484196469843999065629268436857541941103874371732750568970654692898445841254506746804102312321802613933903280382017131556045301143095252641327531310887445213263538989215696604598046907414063315021299321979560258216854620073708399693606207644514004935580083863443336618162464477880169262659795938080681480620643991866264557688949327487796559436673474237886970357799305335059487691275159163954674568161150970973881391093179490533384717873674252992932724497942812028139288271474916620509662839538802993740595343777895849727236905215969493238722497589957165049090357280620647017971368279753928851952144001119751580403698435672554106501303479925752942527935512533806201269256973870507111298201776842850916816633841065495311460146025899146990533126396736669742281195962658240622289809843296162846687296924709421336346194421773246307484296750771582760641594510918998078524365543000439331559141794668218777861122953573452793143925889365633251379756503992375944910728073431105411346712649712787266136623598384505537030298093511626212989087889372926364972145421756727029854782452808814750902345839495995386449720706701631308624514016316023236443763160983579242726438192065175391487288994614192084535210727052659120625472261473200502855289988707448471748504120641307686925559120957646791590995216782714763431620072938477284561633249298691529354816761232885151107434946323089538884233885314040989669448149661171782626864132585277492868102736189859537943750650022973444100712186372954214999787242635498668416700539463849260836690312328695981335235099418683708516185983784261500605360136474347045585749552893891609404383318496989058271594400464464149975372027893550337166913128831742368827291805347438906869770180074425857236071008605073847804477661257447000209795440855012505458956855457651473889300207336211827300719748244682045215840011645831988197761113050128422731415546686451517531814164515662842599823927150677508757219151959696152771855674786336908768137975170581968925782998314686758630647686600921432071470067025749980940304708231541134413778330380858516448634941458822220182674390803745077865495542040279719747584007626010427804804875803921763210345398963295927607721666740314048034293126365739213392899132420871232748862736555076737412074562569699455959587232574299701288064564334193972157352873942747604004318203698185243693930414062832907475418051237610672410934801017879523131231434646378226360827062102436826427363864789697501371758613605251797256717276199893505406882942482362821349684964597225644315972574766471621001912994213252079979915843582086059307743363652147830554990527929170015153915050711842717243199919967661787938124420149930857046360573039030349846002084694403241581453529942796631953416323962194431241696000059827661908838407452307602834717345518728052378963404081482595577737428256808024035952861064140586713747291825820839094268877609064532569399676122079366394950659148087851357347512286280881456648938238819979523245549950848382466236612189675868529161883216918462190636890422032847547096716682967306982084080278166398329815888131287271215547395264975898924979484521407898014577915240936482825597023541658917040826909581085014372767077813890294335767922232034266416390186382488480648838588618537233560293750510151584289813614927760625003285037059618356231840408994882458539122389950366119136837615817986738250403934444967612952806111339022330563443996076548730584286553159197164192562129133193150480929742975363692405859575508814310244598866220160976512539567456615163749783967789401767700807882952257254611341281336693855660163696746350215745410157612343493201701084897321666437181385245972014534421093600216412702392976870470518327226294389471068605658033298407925047004076449926123360826490082776564874602006335211270307719754668742077422917857625290928027402516931789773752138491233671123629107962424689953159857988992154147257011109755201945755592820223573141756410790869970583029109147401029174448112787033167071545244229713150262852048778379271483450759822394819759762395077762664615923373405245791120447624427239874371791639838555486651784468858494360572392737113552671582497697757998113828010674300828001555799459197795071165391637353041159531954157217188064920302854372492764684262601062501781042975270822038977937873923713469402321694269070166210988950687233319490210063558218348445129266924483311699143902639654416225122435464425712416410786421017693146294422283479420390529908039447778458658263899967444817103172976339712278132510513678824826545410012990461414583167980596625083391067118164043816310288555774845331075266710731455088312321283247827981132333749472639718767772749073548621358040955014571585797126077631627533392885229071887187410146884572153274668901379078664034172509199660420385905930139757905252832511316302377191161741900120925682058833624647329176492067162445957713060084301298055480749803675021606960975110957832917879683653024867885641467573467378315725136075864517338583393966701957035339486153434254434830186404753600218380658300845578125001537802371006944076874020437545705330374085969147331942222103545437326178071638116288410502622157154403317592580851848840365902861668448698197280047477850968769086808576452119844260187799748729497615571530503386912632744350502525638003586530176004564500907744748653055812236623943406420566646467342578609274586252076041989272809457681240220473537970959826351259719276621509781874126631484654320578737000460707402053566839436248675601106135161846509562345121448035252647239343193987369155391190058885541548096560055157713293685868429904945252089319415293703586814433685295504611837548888551763515667995051809660749849049258695464100423166122064018345341127161872269403618649393217676709956563599103474056356497765991638300368187229808895244911193749843206154125576154080820302662651354854353091418041876497729084164593786300993478534694355699217961793945945733874935044897742344280667812489853918567436319510230429989963999851675037432487727870447685462302161375746300208751416082541945450443068980985409204977382139317294859135564772195631468419271638900948537519066677242854241981589178080984331214186070283986403556900114083281484626974685480741617214130041944444769965984577065790887126505643947583207243451536506495690145316459994448290117786349622264297526922426779264754078117550453499117386255121461897513620249756591197411713719859546724734588365314574842451863114122760932001195889776040059015438635821925839639649441889699165610363203124992404084529681512409981619305435518017290817860741219262546681238569106333923804703212158904930089851419551957961637425105526986052303114532129405720374147407702357244508868905289348395301802218994537158714056209217428530459834835754060131969505071203883360570281442317703868032176213674368166860703079990502476486988668126048463005293274046226030508363306954311663074205413412785639553360965648281423324250677403187172378671826831341470045290977132473738761639495693465506503427116295424413065573285990850095720795085655650839662555115931719531013405153142613481663589706824085833193487212601141230685309184978513119517078547036454008184420024018512158862136851960989301437494123275687347197304417147668785027828265966079825792316513730976945686915311367209739686651408003689782055181516021797984229658485820956964469689669313084192901651576712267213565960797547081724316594392539045060872404075318050344463392192113058523363050955147466544943699641474180364344211061541380514269008318156365967439702546927768666090778518238240897508882490813570883324915781254861465340559617305357908608341821385039791624784294516112795341332852678815912464078405458400210910543170494096979147072103126943823518905020836316495426926864180628921509170303387052129866867699954313084818658825991929914903494586838011583804023282130901046604195316556744980348773388113966610366736830263840772675446434763086566264709954047084791910804658336325242154975012786317835472196644748834281765247206727835556639652603189774521449411832816289511138677932116124992997622235831514438725245420958579541736653553525797149077897476723021187675641857973368231247891146315093515029847392007543839431630793195950225129852859534270429810136319806146755681375123244730990086221978142197988417515432239513472690287774933347418508091022893372930863512812736580445699184489782471244161148646724926743743914635377787632493990496736745667430479077003307414058433769124033956394261905207583392042900418018723389646985876974505487521364590868678111069222673627033519045839333900248391673125283056648397399769127418396257959328271534952181120634366375691757622213110212929560202481047545824565946580730752661592064387602549908279928379110081958262693222321431976116185503262623087137714429295441626391715515965819534287459877383112162227809675459935441117668377583534225330288154194871995082725574268458768765461256482775853543972611734619343462315326708915913011504377461210263500010047161969801000511496723158591740641708214431776473328687189018096501791108937971190440468789862841016773200407427374554421934494336101135591778676929445677271784227629400062062077671819615168426228400353907807649335031517412188269420571347408332265271723012368281706669477913733150036638798890660999575880512664641965880475517595505337388083391924784789565068651293459346481460691493133670330485103424933069484330591124026149396102568146518383607835966321457792743687409102436623801242154485823275310844076214763451546085632547012472129246884387144256585342322681532455788646781394068759286600393078813962011056850238068153550101932505231396373584786717711754225716137782913901654066168332637060121175555301839295169817139384760885690487360548911678743003128060056479334331031344528621274592367946463030360050420376165067842744045706599181054831483853090667783222390992623358409040864186006645495599327973967317418916420874924416942794919758481768064763835659760771854002586600210386515974211520495062307621753760308961491710002552394581765123161263299222782154705052170874726803175026596702259835069260242455211691154475240057177255561065629213293052242059917474490445134295257939142913191728032035384998820489792689791504857733544983753217258085876790219309301580686450697538103622864930820178017581287588098307579334102845491513396364520414250399138024666738292342778046753905979552679561206586130707526488061651307711477150192127250498047994352511563617662670292856186390471196282979729234970943327702018081110419303385592531144961149828170861146702102117337397670219687892494424780876332100749679247092657778569486145841205911226069156430694111005805704674646514113233163631856651804309596532415599587315504985437164410234996904052789110876690009907748395437492181464589700651007778452645229745332765784627171528245034778332402792464778656620245746232446213554255797958258755619742117349018983887470149255003754577055961102421420955649540587809772110346913871477832829806681288132953857741573080476921742871494863306213994065252893507569091610742864831684631376694640309921162054555094635870891418011112157573747253951375418427691207985021698374375460548767592928941033118994253519445110630294539262623385032821734735331831463860243021352827716895155794939758747642773917105163565198970637420772554033094399432800316057994353170168071027448819739585318026422539994076815781288606646610796722952853370216418742711756007398155936687446975182679318312896102263378792107208185244255898345699908801985324524971546448232106635161412119552458034556036685629438232355443667299337839438558411069234560201931406305626750577873460201225569537431527215599618665518087476879354921367825421170080057921120237762571854382830801832350907408028419312649431174173983644061026272605206924394979034297173216650317045399205482467810978836258699407916903175258509544336769638991037043584606642657468638336512879174787172009680856678677929861118138066802074324478781751030776954058183026835100870148622178668714147255250511590469348734644908347477193156697165640587382656309454692562252728647963559687315109287199997476379079359231880572920171483458449031261627977226488765112232350130233099482832228897714327054380048273922767755680177352076656027476066606738100033025887103333658005273987840313188941753966813282250796352148942637982003646895473279444731120798501705318250464779807856091343931246071216313815694802547160144870108056076550591699607985251037773063165405299881761472406988016187680747847077371653841255285330295563470765263972012573243639370460310810847066093231228644587084989007286705883931168703478015858205149795295142078577135033016443468743547427520804050519274470021377402329355821860873240592869489479766720220159797145912769019107571854696167868593633584258627284386130721004398025144930022921973170666289841407094934530551944441874629882798772492599669867250268956584531562587346485651403265597114097087614902416683179155603926905584430054242008614019480664403266880299250891522774975384325123546884095374171531632954597030827995611496135774137823553552373126256700923686519027912536671996519375586155618796147038387067170842675715600193968483163069628739823950611592431443648484827595883571271300674898265890269374250761268336736171469808460548130046998612818522012979172836603528203298944758110681875100863263901946909966892109612621991979342149968980282765847218266900960835933748392176388729155671472455004121264763206652833482770985186024738940434202541578465276845324329973140743633759787250580189316735571823266151609228013777289447300403667931007257438303073468126922229450973047603034988206751089749427028414088011173705793891607645328950781160070276958085285005086081809442578238150661130611210830815196499378844372181427951961644689503381280246793096854695622327195532785053724008151782810442880814341618214533542983784962419675946738615149472971307020801316028391974773323291317889039048768697090702348396906972361283407380247993030491163273353576664129670616708827435162848182773087593999725887053284683856514997587397822750990409087725139063065743265559465544966584797724791909531671383539264275156312069008924433362720696198941368817905284536632491931867920356980398292472052065129504118814770982799677851021968089698918548548457273599541808768930441674732063171796491255193010507572809800134399063638292240793232486070821298937261394432263211035661113059562276865080993069917040180472847433758698826928630523540437185105501255636139910093081034083540386975612302687462303522986246028779503518385305273427614670784903005371483888480660074442738471576212993771722892883771871243971969218174621827394046758866967295110983287730805009680977612592909266640206255317093162054947840533296418763043140068447863353750730663170042976926356677662174633497286123071055355536809571662865221914411324218254894348304099728292782955006761258967768565036090417305821730184529114251446775895117369673613866472286201651324253125173206802801369392878524893715064887774802574908400076421688232449557428469982492892785427645685659222043495198873184444410859145229818816909304120432630642600113849567527710830680383446663830173907501194154275326507968718649610782164300530296778072117233787245411675589243558608144614255178069446282368449858512138256968985610440368094955694674706613769787965500233108480314365434483975318636722200748873795410676890166327518406819144685034927322825852434874886853132234071908554749653553387671169471271504482981387364989130277258967471957736848237627660329980316114434517236466257052595292824731845791034322669875976418156007496094998600357431104335878932606344112324807420204713248743855654755502062341725199538839061514799638304455847819252271661360610360940575734192206498843711589994911884665246712349558517642833868505132878850797386096467464285925723740986403569375918215469238398083626271827594709639309160549864235919432457308120243346649787187164443718453262356522810815363979701515860530892095603513630887999670235290868280301003220387755573330246225073234192456869624983101548814568032680460527221595254663865086323808617018617824689787030303870100913703509352573858572833113887503626623916251714136811738612539213321055407115455357668711020566710818576124919276013135076790765947097818605211993183501766406144978916597346374622265986425645541172275921044630598588451140268523225958335338412957508305037586472802749300792517173717484327883945568693275611499215755520600667347652270076639878089027026244216257863361989638934804592507233398398965775188725157246323022474124430278904886815130819254223309413213942609391089905889293068066781985050140275517764283532845762899891635711900192798080193779719434176279662140788171666830863262221798263785152938369482373275626464717006759453450516356899604521764584850912960594704819526686266523457308735714379583703859862537138901482769398819496430732128045917442721051810827065671276813418875308125205782903741149566012863448369556504479376688185326388370452547577777618133161919660536662852169455965638510418795923693239913049070006283405716412961370541024660431179520706338393650546634288532228607825212012800557724179388554418705004020290584335909318794955667234458149676711475885763482964197611325605553362246874194927920370007831199796647267329276024536060967323698027818856097221361038131352721360858481274725755556707691778543273908029025475917275101917817122200693218598806293725436882868668633517612323515508560846654432923662594409382793003736114640445105907757813680737343063488127386900043744510464545563755779485779855154023826869464295476438106261321308249754927551706746984046788685488360452030869786010727417005467721563154785673197237927181544941717208820439047132484442952012533984592210560542206539577789722340020307493741134497865758205938905263332872440503395852250552026427856815461902082503293216858464688111471438147657508978467233828330101474078871895562788216092081288165027033114326627113113583967038347911146504231190554425736876013472401074849873627924922060790057740673394783930228067511758368930922143897879730877383947554929752396303482123732547277298113538626256315988193412702123036302735012270015115471849910705286234389765753324566714245169324001318776831326873353407694575355110748109978332135931879158721338765456384183290590829838976667430776561084929323415460136904768399546138886713398877687531410995703494737716248168854294780749741629529963338423015850475178085616904705249293295482875764654071860309749133854747373616495173066343338257536822467009893795452631678731025234709124499849199753945980584422380899567158407196359979287695954845101225860555325659247250257354016324120974574983493719420989512068436435945014615805645656837020371987570408419188639260768705586926346240804942675812681597811489759720232009244303154396696949422513301975261637837404972808914265873306020319023253402394743086323356586267002169855205114483181386235517133464625598389683814695208392430350689206944746562920909201788068587690426397647642808356448028519731358991149707033689621552711698972348956760634227784803417430604783293770469163255778751939441301638608186486296041577167277050341244852401804093907403927135410272798073644878045592920441430469175527822791089213960429289616406281581552629031055258888037975113054348256023697756001832913951651212217522547174846185984289368159954002360619828462633719986619599363625490231675580083599489855425875452416761889431156382976462920515332520796932611385414201125549754188622759226442998339150217734385509311662374928012762382341682569060018357631897393862531713165611662541785454152443144533689631339611851262347481448517718793763696573966522713599192307813382851738048686827488252694384482825806183621878350233648642404497654864941858142355183456111260856147093785782817100428933357261749680006449187543950327409853104610842280397800122438094103969238554081898662119591022513015483244024619819160940698484750836342112687827230552419003859138691051762526941260081182021341198944353053397047439977473256931449979531371635210834441573476901033639922061699271089469949634922968218318340002632815569731440474151533331966615776511694103337186642328503419240777716843212236010353840936999565534676152552943246773137830190406548047976580635142883123654146859982135016732239664586759920172111653877810197745240569865761049912281138455379486436075407291526397493571343815138186904133088620642366891296401524700364429427122593920295189653718472534868037189512109125858636989606400413211047485687016196110865836685238815359767743541740063814243039235323173709946429863503866629993892563740400633881642393560806021873904328141162154726539829676265201400839387492818792606363258455798447892102147144494555972792837584323156751151432420444182126012334132940637607792184742484737264597146217670798196576670473624354616409513037229266017228849912891647870957084740799346809229574660321212706357873926646262820246729268870031349336624548287323237620372907882714236375076676120756112770184210817408197589285859471017674110241839958766815092610730090265953200533386955681308690115708082409614222007103625326933161134059520289308627895503173394188667049559593304706979672152470889131860596644685756640480514350496234797753852532039041413987239355551916842547869499914857912222206900076094166239727466445199112341405037417436848405224554235337110852189187566716472837332950412016014035701316154074943749208019033896836049589672427455987465067082867642565709467915335666873946370108791036984274596419541234844462789532322332980306231099951557272900247669058541478359087377428975253344028019424420940554047471473656630418361116523913920890998508709507706167302479191392492885324115863126410896944143438202680454475044798641041086324923066001215169020123257232127562134768808102658298091474268014549080551718626470177398385046166322419398772285089065003334985962420064420393286155295964517481678891674276959955940010128350775566483609104139962702642643449877471672437676042859656687140599914259148653488029045390954251359824905139965382021319625543620051324055579494954383653441374926916781233416579575366791747758790257316501080776827647886088932950332025567899451713070174323043650333026900948317129087536685343828382657676443025168995851120379205235642881464130311061115624609477094796709418535469383991956156202548374237957678688589239776826006695552843293958914482997403643118685358508741245623365048883198765527374313115429289998870203873471430794535557043316722475662091930898142267986893103037928731234242669184780851774828898058138885163728775852894978180137579669969725861326188136699006137766984032066693512134127205591146631833285987682481426666416456788352762935638576095461193162382018751438427204632781025560606225169150356090098537966711574430876838955086934424661828442201545546185098699359732690428868995947698654412991007641341725965309289911126837469313533222594673864872403369469290334939949225793368778720902863921055810007903712788242507118111493560664169033282095643927043855086435059546840005546363263106939265397889012630320445798014157066485261069256778423058216804402218139942163054742514249934627025439895426324175860812265733711656895451956619634093251880769114409143924490420034104553203281840884181851542888664384163946393440984028004354361726325663283322895446896367150632947577496100254949691569537359186625410969789445305415461755159518123872214049034787087488216207855104849995111436155386337200937217809349560749341947106632420037857289016805822727705553426405548085088471110379640637104064109630129071170672355830356707177127535067655544085634130339049822353805356761367391208190802255632787338675842313139727800537007365085746711820934505022734822239197445768817383652235905589911687451794782475544033870333816908076205288000535634738351816492432705259043078613324270625577115359220262716904764232475935611699509794370032676050932843308351473283635802270954530866664472409066104410110226343491427002367345717608691026631860511014535176872884975963956233520315479523235995402421219946468746019467331429166548852574209366694573105823241194278092140014328190607103985563128105189140104912105541872731214693419571388338172679113352017339600532936778489891538654815002527925149038160108084822757425216504851667810572142020781657759847697188987634830236237275755944533765684794438314984803167735693517027933236697860813113057658035717662875903742851125585479204025073405915467353119453492698120661114749981985408410600824141012415681948570093883405719235622675312411658265146802999884109006384807775557419229942152183751788456815964280479647069909432433043401433156759082719756144554587119544780587236076990343860945842464399685741254433024316116779829258011126753236658727672372924800908954443345673338018142681078820718766473432081846624153702084590528289772280016674630843325844496788799929482141797210171985968680376669088482038010193621001155257985947470951700010184397634700315083873959178185159983512899847385894317322455453745782619239224092226066916149510732836411475182691068565159805817082289360163165165936611762352495345794595343851687750921554100522366790366956990213582821172180792529644160863781691934351719289451152758880057765175338574577899664780181754482229120967983564203109460960050787783143271510620265437931409218176135401640914039988614992644320294204523120718989417986779094274203521475315225680005402374466241825853659036946703791327440056000162929655332028710970296793986444703697928304189640195769191108188617201004127753351861029422000057043935479805582837388165329216578578300398548143426263364234185752167744228308536416364413720407598325855427950290966142906689275452604013135799355403401911868672890966035287072624377732423146509570520487806176363280986488165880705562697531175133408761298181882509518138383938050457607396502566788271875180914688912804214831189467253088583487505529176731627972265063526382854398788127834278279830023237865437218278728557496480995816496085215412594616858690574521177160173503123049603636169675258490055425380991482142848766646697078803492372724995939384921736762719690907870827449805691566851882135348499300609175600838397913544098783522314120311843716021803339409137905849738114906392914986036159831431944021231068945110924660557321292305672113453909133434488823242933602415853298206947068880568116059101254536680386785462484885357125015769012948267712850258583001321798149650783664614170976790015394588881885869907106394127043271617108277276645183717098381555502040600235842525619448147501179306373769704254489064076376553100438389013056730379826322670827026933768948695764987140890035183092362408296174016573934441189443851343340141519450650378993836114107741875538656391510035591833162435682454153708761586681227805925610605663801001841333038472202637815500009670759731633841378154131171313882339409420633956823341364192862952070625970404587513126640393835989266135368688556519019528422016978733568278544985302854545476841140698194447716103652864875199423355192369560173775751778800402230304762298669627349424608700549205588089467181513132326682948279143922400295942062546629783993361280285695342694853816369527339229816894959178939224754747769355058628626398897224654640570161140678828390193818039051550145233149595148626896537583039617476970671035534779113043026569442264373885385954206458224316068097740698762756785842744246649656160156358530612603424736911401662732587775517832540544413466893720505413698656512726780555992165397110037317918741073640373584413280166601867262181949265296606343385322756433275792872366808900490551003284122307272407371066949126374512606915614015511901278858548152958514880498682539586087941995113534628442095972650318416860662320670656925029044740448396785874504184601818572989665386939952086067624156746839816043310568705873370620793897813027482240151518115595079285574156027821329493388654875053128867170193965446638785366144209254034556367718355287860449317906694592991317676563920440603831687048542154595822131974815412645563124086736745824369608931543056198046490578032423936462214159205124158387542037082447928957181165589525597775369223274352716114091916919906670082679848112570448123545410679826915905120263243044443688285673403579942558360664437784203430407950357674534033241614759474436785851949242237998349721535465259297832308506744748081097888346107207926422634627508884954965951711212481178764946720607675491044826248428834799970139468084841288598956499255374894315214825321850431202268962085604299510188534282599625946197152096166509323029420777921799711397849307049957567729502293925020523111130062043422690608100523963220921098996121949656801169422053248929377575314546112083543135318370485980922392126509234311083316145600757373199094982481734395332751312286027358079223959692792197284507608542759798252075963595912407530776837443507858977408099259017593450249323530800010431715048146495288347353091764141586806651672746746042600672826020964022293906527773910812893590971587225202437798923411082579230283992914125560067961673607022539640153880805047127825465613010765944013556964583485818169949602517010787906569396871485423076491705294663497044258194168361875243662344562021297218435178934754379642183380477357049112172503520321788041500847323394468279530672647312258070476423512228491885756360706991348031103573458743354843329151141058086626594361440644194837383845197885072692869150416479786608209424476793350462334521922321624668879811039003990976022934944559933225651800757041758231192735008816824510298776523671329580505251646712530280098080233593535896394299061999421838259231984906588172584166231497120769844565658535222400975525242385905800232071855212940623214961960962734292040127630803567209305803498277450548092805724865600478101453124376856143311406211868015847532382579812454209857408670225261521500637131753933262965223998936588824710872640839262416002158042471264371990307358225046601642786860665028442616883904633899524793740154654357910939565277949112669088471978990480117816624733602721981873402957476922245065861625538958152941918978527869325566835391683301438155149104443945269312637709404205310078838664433548710878074862090282726881329934797955946890581671536447049510202525781976657377120110715893497565686424648393632915993016507554790692790662701530523771589304396900100053958977487519730028433195045918091146513770008441573880378081271201920616427617729510524206228378767653256694032086038768214061324321245231216824883597128335222931100471202618567523970188238498689506314932549271125236310019530447939437251079885493196322653736874762499562325931814604318832347230648555557838998061725361608335508894894527775083105886567744460249756167528968077991698620903103123510492991386217782127365113383477498053753392292093284539864576794778541147982362967134564535388079529742115246712961691665984601705809994498507559061280942056192935638777690462756979715898701970630689703906838034098464097515173669408588161234636803434881337272371236707070279823240414626746487822461758174659785939478769266253978782789535158554140771070444600421086023109953654522494674987489491662366602668397898658893791992393139487257250656306405064130183503616346229031933455749761112019439797324204814522888786045458539539781875968926118297318957899450488924169074753656872588185331087512676750486183706177093750112796805584764529930059000202797108225555761353172433634867199536992485686107826294071449531333399275253603744822281767108169879101742871216805979985427606801116076427992992434167794737711298674806801559446173120604512078028656083941795177312139772998958848046381537527576715954936609352410617816496873134373494602843857616287690786533894170486882238966520218790321909188113245564879739552248503796700187342593845901286354209524132648640451578258531040348110100375241487300654750475669620743482133842037207625573434518649972784793740081739972803116816720790145754804995529821162153044866866957551419610139998595001125386510767615154192121821265253145888806186350134759816925219001215900496653142906762859646812172216297972862393368911152268631747715703850630497668541033288077436770934462123720606350517759752149912152102150866540071158495865470785855590913317224005404516034053545054618632653347081264420623270534635686172125112473026689411873041418705944976782377484565547121228336117101418307139172022070368836332992004291458270730931140370314136764975398845284377467183576738431386550210511896659648742174663700742731588927620836486142582917964787260733284814672416474208279658838082768921352567892684724835835795650356306805557739708993004231733491514359901133742904992024631187630084115472059805728311871983380278403489164589157644602404697379560373100440230412849898483743852675301462532678682880069610432897950668063857878667281593689808990372009649008648526030759115551600076830822911687660351665724456486637906257056152318154206422194404945479384802339950414266785772751565088213059080989632696591020974838271776769273102396329214598200536335342683844974346222248047983043499767758916983250726905463546276378091246070100512230653115797306047637503043455488630585671474810276915618914170652090289680759582344146225772366962689648485844326341555423479802163352068720463787141214104585877774233040837867983806633713558689278526788603262074241197516915971373970960307120553438152881532393595458366704853251296004190091920971238276232688494515440172835974687241386469504305387776868631523969075729529064774231572569449063777989079692185499431045201936111310491847944295124999311756193116360104724659288048518820978979904490751882171159753408515786660156811911700607392997347686877039120911573622674284851840899390446557016819095161526923575243918590455189878809680800049526027378465521689424315185567994173905329974928508035192573455745090687256868572712629812911409872101967101954028319192245897197538336444505875194487680835793566503253325053260937354850598874347439672550199803242013759917678625534521607239388193062507650512198650354988795631797957330395528276753152684327476393424279473897115248904584756009456631659096944859924570265450449153696759701732507925017790040305796067034497515467071545978590242835525423915747296847717647615354503872893263632245451728776742479660714425684744359148860604834709136204043817615612556859156734286336800493776226379693010847759376415665968831096125385080459712852701354169486088173419881362780389004129161412947092732059509576721307178088371288360698663398846467890065233756457191656075779848062818846054377970465935881498910596047625362112160663356001469820158295845074251193032025850452132669923973837996208484009641354576539509307274884318399795681218815189023675519649688134036441736797595479039444176346295629335644625422963428184896482266382656152262918571462676860443136535445771861785197905293395085877000590859606300219668936495966490868481686028138470594396346025750409761609811400111443459381968794637241763659980268661526385806986951377549285149143242629391115237326872475893736714838230188164844455407738156849278279534257422118222268960545867870052078833708422550225061068241604204086528145599787398836122376327960397090132428291981939697602314840984876459961127298098625540526951302807744434013420437518797921552848826757417696314698817824796971539408594920284426586591202912642819805663747943490739244430090978650460794799961620056563180003061672033801128105795776315192047645924234557371165959770418802529109532193891020137789038351896538328519791686096943715240585894679375370702787713732054653767885708259834409103353955987507512143544255176067285011768838206671870523979172306604756510580470417017386039345389619840318711578872065250090469074888127970850997041511413121038490196369224049901524456821894667658840073613726703945914900988416230985654865949068784483337682637584229223043296480334202788029782488444070756699915856563609695448855056735468521112797848509510246283390186417951178707427363705897940917519943756881751211737921274934410003060029143742004050963073050689972890593031410071538478196610425997715511131424452286668747312788059581568822033555003189083205962687258963741266841400818997482116855772423598801738567885814450627481627138856512934266536964609469708599329242856525794744686214031564162805006137408888963931643500991974230064580920024003611656759583505792141028512474894975147272168546536945515277678385098687139897093983942108571959570764477004843726729481762250526114137923268662034871985898571311584600300539221032019273172621057788469415856571461763332156759316725724815125690513494213240780615287570783405917564948129244786764126338860735977821756622786377034669562858379948328812500761321205561759980202978023799181283747348282040058258936327117977835169577462391132028975278567527649975105533076484639170548634910806497274587171846559878986501868627064170908144627706111404557574850345089328387754772036745021832323659544497283350411872159000862602808716065197612461336531286216862671191015778068770706775811854983848164345582135263251460567525971304597792308590026541254103639514560612326179360278091431443193159294118765056294044889758155878152408309195595623666771635961622453057283363495228687314537960241428923785799735866819962736239903032251958855840959351399613416780041591871421016280218261030570102858028242906771794362075734461978321144865930098548376991466748301067817055920689065824701254674709078952468557591031700101880661899850633334157655429835184947760117475510373976947545665267632476977410204996065049112710853978822575220725019977318645983112104637987835606255609065636400271462973996613224374312643777284742599022792193914183116004470699798585562097658747006325527256804919096636376667702610138732670490858701792418644927484879298601845011519785196651371199996989997913117628215855942359381061855099118128611620698774342049248800924616416773272511152237665324236665609116098653202035367687644934492459021969381409301440581810604108402408256766048041986149712491635736585763686694076176645104956578143990768213526368926788579799125929311242788786158557438972824297434172926443102132483851554156880346327959367478603439672740029005528026303641797913702173615286291478070400325036337600599613197871783869946274229614946189255643306182853701573607363449079139158813537179686844694116573137591005724799050740139640020977166345712246103486775284516773375178073167083552680242613085863753325726047420277953423691409317233692048970252864897121093610047135765967706666187306931056565866091933941900642128226679306050510096649381934396937243247076115797466300948988472315466493296026240603240752315651885095813518620866692501169543813807818050374715036080978411197797334075425760581905807758897660233282360390965701137226423701125536020974300524485814749411640225711124522810181423577141626909777065939546061417697992218064777364272716436494354023151058857217185806928893362567537971493194601170536549265523349174110319393925868906304805599640226989551664412026127054580860266007145032507439430569599964386103997622382609537757154874229426580049371972203263731943456961802566347740783713515631975141272721569740249220041605000557499886391863475044043058783380376383331938094365429003781782689994632615816784754983248488038920866878622059944704935549800909718575519829320561115808468819299854563210167717931991893337376808518544140429067887511587003729773525606143471461632117009306774586768538569901049791711893078985653608290076305035717683870602291765523305241514896858219678363308608306042827722308711343063857187313086342246809948408150439837363598681118010750124877065510911205428694531180328544674907575429367358561376675208481834354223707980244808072535368370083557648481643860509070578871302054425185058299192825175614215416025681853975722846681623597055666676683253189469010441778723205560396780696869911157000322004396043065779382589635264436203261044473489167704024047573315586337890470072755234666470053976026654739038068130990697701184584574202181722633993357038389184891321273809650781814028989124556170588006561153686277619485751796740120269905798438879408113730027096125749246421508697740984902069858236757232101309225733834749163692837314617893440345276432024407515427835447309484714821884315995953909378086041465250312818730970860070970436719729049505376862666003268765047159397108558299576585947768495569840815963050722834991933632476598020085342771768923347138674108460632344797126989933905743694966019173198944711907422986867610707098151881667452758526487227201757626837308087863918410096663525279734956083193136799773631801666126575724932299975380193865206594101177425600444833147302895224348918642283005720826930895188853207167568089747451220362462848835253006244420204041859419530519443882341738883175326887099349044217755960285587992201498356549281102821458789565761978673517501881056720198571904135210185357959270063561084657179674396845695701936399344143818925499536482830122736828254740934544468629749688951775112818053558815985468898703047178906628152303644763695662439057562755185891812171311242798980400866765624905282078888805129663131564469046739787697785377664894927583702411476079600768477809342673909899698702050584755804348485747709832199711980239373782255328599955236369043769489936326821468277407465949234304418650837760689269304308162009441834037537369664180625159559818012017653808668126310111459546918653510913136655230520365758731911811792045087219366853394120569500175429173921627953509172986178385677586203362032641070576084879859271730757757842336238918962421270806423837295389014551948471121827014082621438366124940439927640815853152151990742151250239128894774777144300018942071376616339464467448141162161531873720800908320121020384177142179957753717637419545190436189857840711453227333897838002499597148267703412421358708038691117322564660811702865420583494593467366360067450289759067318986650254407083056757068698743722378291727372507538754683434375110587490812539052715213833702002294094154928912148806640652923992485965605142410233718282732791296955061103416225990600225867123067636412643315754904658268245469394464369767947085914559824098561703480124650362316691370917335372783375739864028456162691054395970991221130981754092895124450269426031361116925053887886442796555803986501830796519305201288578970415349558848283081378410318151250913363718647325087631704826764657783959945225548439351931976055529552333420577266755677795287062437632630098232495151211335792081270975062351996851848493309799755436692359036979929622941153388430119526451784498651312908985701925917873274767069992584222060288315424997874857715253452320288013366841504957996747772097383858873134654114560494887689971023446754913854495499350415328581720520001642410472604771614664591663758905315245100168081256700101019469639121017956517603118697627706741406930065320970310550883471599883961600783253741145805268936114588715100318446402708467483851879247913307170931452142006780603696663069240163222280740891171576950094646629575193813188404361869758695662170314664376504888785579469565881553087299762429877651287464739832839417496551852933190654673150202436611893253132025783218943233866449388756071597677417658011970522181731625772205485753509002522961108298816545948915606004828763095754973066556019095316023513975422698641860686764971052784929805851963726997892315202500590852208372339768309900638462634522195609529915098373030821279986554069272827528659453899226762223225717509284300550540115010069475917679916355494423245508221651915954690105283279619321698244378625119687253963656003731227670477487312618243457880711066450102303756925819641466446852531753195737121592090907551344499036396690417468561152309279745847767089302056566292098303574057319477083654790060859508663307036260314428826358791630752646949477622870531217188498199173559237145125110315618876400512997637337242400859009181058703639337175657140947402803047328053807601523419639556924047201290636428742340371225341607663779911429173135020903278901031341584155099216012771341755519205474042930772064329431949679194177010739505207499697170290581172423436936703724091861466736294394293795532892916319827141491272521694064109699965945861587980661256104030269171023435145884052180878655740752918017423819866967418615249054927507564851234198602928304289126746017222265623136986681277688223122170252390776114384074807862860571144240515517559333149189743820949681994252002131425418928394039471518443848690056118748637488821918803627328696229514290416474530205905285776962342544252648865586108735685573707331772501288352753189349438665280190573334780236608032391985240057809371101010855731885474282106657391143761659105970959728165428875501189254753910841123622861651909243160192691564084341763113444302143928052926797581180173204512471359795383860942946179199857594836407473822214480949518663903965341928593985032002529380414548814303096920555787700829907731795720859977710715013493997405102790332291947186596214080583848673512561815236866645308839121994081400849374226473665078692648010141552524058718915184773204159356994244772849735582987382039985298458322541450322296180792544271977493786323911243235025116321728518470209545020593865761890132240118704704681840510545138508764792020348569355946965262692804214507800010134210045215100297726103006769419605026774077536911387645165445607316674745019760289117786179361656743610997773233824925178532050748413995091386170942074801940923870123590455149921051321373178723081367488402608972600413686704506265113014834477964133846553481334642291846733935066621700565178571255205154908238259048082654483095292967333076636419830358477252970104749035365591814122486998169811609190185477419114944134507518916299102408933415705639840993897576120244354872088084885126854514416680447991837426707599271173174638651388378188447984523688056936325736404751625927000446805986410824928452606738956338277217202822011731918230475127160595115477268053354410702329043669577545189171691624582947926347127318488361253358806834441284709939392715643161559483392013551394072177600878305234996286008014815178123795966615462731643643245971785367082618923095430959454313312199226829146711567128266516081723364267958315697493342322589398783245557542991368178461148800809812438253140482417934121499463046583054702500070639793094947739734706184353966529775340821919353507737016746287190995287549308607359720002387587636553615748526449347916085481390931604233159036940007807874967561319482794890633873093403171669019172245691890847068896066139000592165414587679591640552121992633392038890007197394972784653922016637781702886754683276606281867955594265635872728393979162831353303828985863735779359810541056753078255194534250718898768408583899857243955277764334143572405434723336421458048619815860972394068510121939318786975014309613063846888684255044732287619345729859776240667171384072116748258682165038763959343808676349918871101783038817379124599558613678903856443550935049765673688764728576390442369068642018255165300548005216571124567634077142035208122439881224836021410933747413434478510124203580024850727225941943220532813405341919928079931164725949372703779938717452526612167614969486382013964148466167859140757469037073820946313026876011358184275909307649357857809632619144427904368306055017095267548842993355325803798945291096762876589012296215954524958115082636223330491843897634626025046722261245465737261485903381756601050128232694507189308104630806843710509402993977142667902905882261371522666125467189189687833216152428301846896505698096153675864584075575754562704211444147231693235200146437582727462902819118096379941320567164393532796657850577593822644581953152729751819490916089468916863526996558399812631319642230538282711292970363898287563755166527572884151252548601202549983377394554720276911924492517103805342143945637998388471970485085795148305265053098719324762936920762779793791753554762419850982564290353516380526765837441265381238466301852003411247271138940001721920584997570506709107019956846564568238685122870035608839042038501995257202701382797124408830520515267280236136813250825756857482439586530360388202704918017305660821041416851335232469734937391067579680981642235016349197808299829689927700374630081163181252093741500014484933047146400209079689678524907727746417232893283269199264809345347448875496717439674435682991425280357086487001518863655374077916213734923911151409490862567124130981641274537654483614761242735545443067645416977717407082473462351381703070225024732707744435355633326681725066913319584876430589605042797826156401636951677284906343384915114129989786442046479219540630527306725620349107869979383610174418475133369541644575021314216293068160694805429956092259268358280294016305706524364651750607116433221620135431054282813506478484069682386567943953073769501188046931205569016290077101687773766413091596582932167377878874915758440828861012763917774267361474624623307413609977611248179303831757338315482500834464791314593206357697271807876521956052856130955349063783234171824105402897054687588074840180295689676623996268251576431945710839660061564373751942393486557868088515243803163671561470409785053914097294651124936971868506655323006524491938666462123635125129617431981106935856143292890972123345199370987445499896936652995670070490960079180057343647017082905763519542130370217380756207604148209985760245579297700526002587096798001460613774633670187085410575443029458300156581345841191188465033763147547219997434757516070973456993198811089073294694046111012027650064015332448147753760046049161840777255588473310565267506188552328130759293747744695397984483629383937228695804774043386153341194113872526775098342227822719202117536999267753166704372599058474047114640328829949677645348024691985710471152394536206481819351901027513861963104922100898385430237964507052029927916796944795142460026783206163345496562456360020765788888149288221968732805351385956086680807183355438513385607397038885517081959263608974797717784581715433836124391065574781176865224080120372752073502374349696113379824311243168368299450730786960111215566052177468251424530154356530510583976576879846006227754918063244667089035847111135223745209216988827072698579759804188287726088693821555952176276614318887186380458165790514877481362605453508918336427169313760586808021913998769645673875584659912192569222398526612816355906535142838780899971793449322140136479508946645100585692129293969233567273507685975443636459419634490639281301877623261073772902005524724769145230403761139894264255482163654127316539309097727246055937371658781183550375770785259812080431570645044018658651041767368259342519542040489015039319864849295795329862224859163320423127336548446535039322404137670148547454990151243251572089197539894585845550725250730658572777083382387021222772362586185622024938579230349848346386445304563114104268693045327444508960592641447829400718573200210471422476952267654420973618642107049426567550708593086353956805830620043714982226261966466641926594667771950990895067234471409102567764721678264070036146665897078310813204069143059021837136357970855420287836316698806477726459960530090867033822716828770509820165955646184511372776916333596910824520515314885204673155050703541037206018434546919803791905099747956087563046797217655883906654669428017106813132383883129561912860201452945932393436932093885951921365206568681946763042766913297726240844696776367619647911164457282968657611155018326524215691247032110269056575274587630577928416356414458670556519896033216616298089934051218897430809612577422978804985412215832456688982471739990376035547713331394522853485550273566968740413231359375573894669617750986305317870298618379012988968197065319987363473667302447523706299820699232418173438891547005456166481482486423501914242445924530268069532858953323322791250656469841462797438973754150269446434913023183427705191295665331157234165150131316014193996753757977356663088974600923314947209428658198496980057928297448848289874007273880265829733813171862064318253295909913050100900413873134974928903877203908592735873188971991291672074635992980485822588001852245072278029698530922055952047724308790635972007635420313259328446755212221520405245053944991879082160808511816343874052311340247385920082331887669633105138939569740625733275959402727665818157079056681504457556876032980153475329571903675274269297486978569658991334524585041047290450783472013678792674954815812883575426191159465336477527955119675160309229233310497882814835617727348506503352184036702147849774567445396107591773734310250952621651599790269656628110435231196574126604904838371958021587911895170474693266061872650940111745363692606302578716049153176783984890376211947639159687528749478943426198538484776772754327109758109950599011212239619229570620788294831391965196701321977754357302358979224905866840691917894090537017531754407488195120691584265277291137283025595042325111890474756620370423774740811476746768279753337413711462011109544564297634202245150400816416504428883874187076979925607700753913561353396004207971165839210506606300659298286134615751855732498505878569569826246244542766460674079057790244951383006759797853284973829092896446016195966727238615506142376481487693584643285137956598430423940228270775776476159066040618111456235847880902384636910472188543608086979578267967776283872066638149470998230284898859125493303760033768146716339020449495469641331123353727909229261360591055978660989276791426051032991824158656924789895775207258549954675767798816982924444392545011545732278752555335512808668719108452596716880191201754875669871728948466198066722085576678399082728905243058343326388070169826954509082398710633624579735044845447369902507920929348950021458111933404150210501717803065289905476208842964431856821151587204667883766561481063289455155003588171895461970271619530615473874464829724115276830008571616527871804516754123559144419795310417474996997628790603101577561463115084786118897876511888769312444378586384686754543364899682760565323595100050727515989069209695800996183987187546520416999905466545141097222245224722197655280080164170786658558766370227619251734010567444163941007041545506870217248899245275130420942107194900809629714595522490398643064396978873924934699941670185550785765461758175986563782798451770755789777584493423298236059363246102214989186680288337354953055681499569796114215619857677338488337081872559184977157838264550529530405228578883976967585754781301992921785565092656362254734682120583863361247271060487462111436793703549507913287544036307689755352983349696901487628715345027168255999377668141951052291944351606084733606333634539076252957326398044715834107737012588295138928412598239521731839444385475157492339514294874710680299676173209072337435382197609828290402619431360245497139707156276218717077306253449594122283795199938854183035176478669451111770851996011622115398003388052515238187524928503407261589820769624569520041293922592907853079133968344307681731261981222488043632682370297492359244166351047109998953140866166284877310142403179339679595820383357299115451881093451375117889446352526665253643749349501855593323904123899934290139658427540880654222187810649224828549727500218683252817250212016220146757097234835015873748458825940679984817219092260005283670159075851323267583869399146604405813821117807720853747479112070916520306746794393085259658926239967704041317993453010163596090914449492801022930530481471529767286093929336759695552492276501286987517069810709066558824945986875711829745648224095883953778868203582489674900330099478515310137835025647779257331733484729607922406648478331459130111134326616177328730638147065791707909482920938525697875597757091490864364021912011533023760646848456707048236198825135286762380028247279036224141701171138524898994863918074056848328089119629266518951018080103318177613432682301668378287186181467696057517049810092940703624628636347601062805481571600526494930766684849636993842831296058120328454275436628764293063929751220997245001445852456952302088794493445994248481921460726449125639894031585858072351349423667246726939263066225971625208868523113428813855181668775718271362235819129132728691128889461263836127287303687209104403591701518133289135044468627616292745195997896545139960380330553273661845266074404742972863569646577117132495749388398251101822373163142821190578767185366054222918874324714664266793249425577645752737383863115811618095332968130656363380395064497366525517585357948126452379910883562582066767721218811859780054446882997269935983735951679906761967191052476492989932777180836330576227055349246793661314618326069592728972731144624183372514459727651807034049193082675781320733450041881723676356315280653489305143319879371051001716594919252462593544374937776423381800088609949330074562010734988868786463674030997389934120776751883371643227112334023903570376574059837723867894508400138135419769280709031880103818274707355247374197594636542228259008854074225029828243759467035049869716939700744656196232983639424891006802495925577722538884312087265603488430188380967050922376008707185691911743875624884720556761740002818577127101554589741774605236062250892909066486389845549772739237118962187719459398595990692731269636370742195574249026913717316353556180327941223220582945438101461225787335482069020731422762418556318440431875277381021875300885915269760083375517665193524973037398575251511339044457612199511050639777614993483853916296167139865933813532008038244458933934222168001163396504607191847303288668092361560595373524714430739194759745882423202964089436426996879282027838096707389274155817328064763844450255969847804362037374323065708918394168809575962898174115186473990959154788887314094298153041393671866651688158027209970426452302365468607741245519670462949884497628285799157698002026029146796090523182474824728298095502877275494704684299937120053182583720562772946334624772478820374036655736755501434750875113468409093316290583804096073616341660179385438917140187286051258281552005451842226216542632187969271297552709339814700137910468523581596605135985367422575006902024941664020610793917783917930655774412898333470019197397592490738277433626679533001379695160877539559443884148048135170101658633749788915151208085099228897834474100070097316758617800205573701741398299550563715306471241270364733268553211015365881711681123261374062802204496318532224729706396601283352351892741477444530741952845502564445423003179075846640573854886910441753826339752698530169458610629189973404927869732182309844655321038878807722841768536775576071136821253822932242222951460648957264159903492783842054508016131757699100278389015065297222892948691835060180723420369158967276512160315792174728892945624606399377634841775023657535277865695061849799734514429113690540879384615551894429048419945551882805476879371569095276988224041939908104162495188923715962314349718133181133066629858976259551123357008392836401013034212272372234139811890498644890969158751088362484051130571650220431470093402389114145059163554815218769869587586267387015266282647379575706681345748106391895574201937897389316711812772326173858996944045126028785204443557915164720961952752069428715984481554555076170884704225184745790662965205820017860945201997159508632941597210257316354308829241448146608772646560337809107210324276786715560318148805534453596529209491594034178606781526343916630238895940631778277095773737182201896643655404403231754259309127529818548555330688085122163252044253740475109336778306857276884711372618098899125639073030457943907246877633750040862466089181001177838945827183101716919914979276208750793561849792571528078639422093434514108262884583068416218047787689194188673150477558266497378090452833737768319850766079374773002972249573103794091825293393314982238509688782411823678032767989862411243618949411975394882874592240923191381175805506286709686992886335015455294582896832630130170104239048691344657193342724824227045007784941181316098300551687328596923669416016378283500728633872597817576118673236007793281124815221343763482032634505923136888853986569932349103249345417022960846638585446545153698063138379993459583945199729320550529757647933065913624308115883087494074230917253413134161272956174381612858805703654444631598382950186005574888955412253232589244865826862310581549701200352509051999130368350283474508679390402574882710077709411114200712797345659634564147290718230829848182179194538401978702688641930273362739061211475263320332583135005232893592163491089548362337073204691875103927769852834403824548026995251042286895011919552337906141115149256403915425190289799514067479933812418673949805597245122902668528153632620750595660770030823221684912146170829471359333092810236770511676135712600081924948470032092829225367498056425890526251339357268603189056758366653513188920117941728386761873741209087420770527576117436129822587812310380993723138767134793620660295274412477258975999791323526656432527879970187360283915489187149955122155371827078448328936602542879832970690187070111477142241132819779981115244722150822850743071505232959886955088684489217573766422121102975767234856580155298485475621919893974865453711469176929979364503335415014526928909904347478356258550373496891464070482213075229143041542289487435675456296690841715739254930627070148291821239349845936128564442580065274019852026152346390957189864737832506115207620764677813813582473949507121954850793648874684151986029899824895482995072848625214608360101447771412790729638507965531894118179117363589127035388354407470748440346712233331547425413080504471794600356390794810379754644125580215339682281974312722096599357515640804686377884349855390782052785840445156845956249701050436072641249263639639533078326865183186024088449381326325550134443510013776528385327057682394452092978854064077749298595326490690714249223443780486422598970373154457389627697003101080810435669447208109298977761289266943365527663186755403820930074778952130169710246851224983765937716146289248943710947150008859598566095258300884506456145083230299357503972967028890894308281876876954751146863522312404551447653487680739378051267690768155040769139806680902674436140495017535532953961358778239460998006191016991399269220074972880300905688380508896384693799367723735306185602634500439436193207928083178094133682725948312924930351436760170515507792789882639525045153312796709507405956458908686893884245045216171423107489919006995483481133030962923779565313389468328760950635644947693143742522590892991935132486499092616205464804181376341281208138373676501443265382105557899068610784641547761174747496311418128769448436412268488311088705366078975050366478775518412586598175760218902979796304474014357588204885305964512684114445871052998370377664086071608251653701890080277100551862594361710905363965902873581259622368307781555246313974761873590843773437842134082633292481707216732366406206730067410652331978897455920557304723081300170985470109278809264652677885575764271801490341293538224074880569315710596278353897360673642977419341440894574898968322871335433619977191312658460425773260962076067474263216192608677889744397352104042862076445094417427631874946299769585265694327977754140041925881381263486098687732985803466452239682613665379093710835454815166744787484060444465851866414785373087687329656268597597157537977325964614982079191545210902006410690493802160281751141796399817665668005551931258388925493220463669786571211614402953878962228687508361030216042057952158557521493583544181460883765317782833872293852570537404229882031619601057763610804106592444319012724195729509808921253431368389692478066547970065898518105024584853873293250934434933731954570941294684806293222319802748345780012353478353720845332025887942018086612114156630208228473452824929286433944728740010033125314378717613933125663880014436842682177652442120410422319132545955477034461142075573812155322618839781285044211741134775942216257334494448817200885437482686517271305828978546244411106467214504059184923202235324481983158532172366795101132825141353535253423465118109982457900268665860273799472085691225650142887570570357341730550313431235428924923022602389290181991787636232824025546124693101671111856941207108992285658318788421432556633519962594453438455600766204155838412203896506420330764795179128415518203031534004167230780648435442034829787473388005761569261694639610477926923868949478869529248649247843633163396601057865811084796243264450180886946924055192205764886805669934075152653717884006124954449008715698189602520995509274562524080671081852022032060828988899091939640773868169986490822232108994972017150438704000927518718853698742944442672682186600289504372603288311168563669432359832471373467466950306211574330696558607263067408893497212063160069752488182951325708038671446848216439672266617202633240650185355790063564044777375844608019338862431046198999175282099755353241756108894797578700624301859206646518387636041348551122065925276258570052133234317162137657321730802807038704850726559228228301491391855855745344981793863713167942291669277130700744454599944717727131775059876296789284294795178775668162827750245515952592952673786859814202789325142482781286831633443820778533227635084879829465717629401300586175242040701017795463299991434990297172203855570372156793440747831566414352265618883748510934330130915679227660996722827819860159446403216840155870954603746553119975354526544851260228177882935999232068232715271388572198932343495050420051290106869853868669875839798198122941037099310142418869953429872751818960168379719079713845183090017674966402589165236367320851644193700161439429270313975177365197926157934443205088305742036501387553876804092357570310914323903911524239311532440665023369642701403234810726593510221147309348352984469783183267595521436559168948853813570161370629833449305237241163926535614926181161201207873351017882749528667050112989668239733701244607247947987444770982955844084527110887313971003433003841717355039092542368765251461887409330261686870885457600990998484797744280987225423674041211531549924875079709638851654712801878725241344366943320470046100580685981279441366906939582849200342504109519648133249183017635534543598599436444463463964081282318115761326643746423004836399458698296053612665431931658782702269226357128079726756004403521341500072435357817358181529037481151879172196739855423747827078696899076234549653961736928161340755257717329805108882477579973455734845103252947772344555263697350953177122055177442612791954760095826856303994581277224561151711166711481484887774477985125281568383308689569110401200293608897153815913679240277324863076434007411059000159003950443213776766296026388505552658262626977807024538285506333068864219897401947148590026785585936807754000616439480745239587662681586246503839286837833665997670750551359329013280340130293525241285843180974174550726223066796574705065004949323441912378560425261884322976495428908728911899448425009742484016530788517373513603634068612692233954271865666428452967855089101036615245669225301236838666243699835273748482452579664862481213734539869762882819398058485659281811689040009989777885866951408521780733391067391655943813875170620984369133963499225804805741690343287534579664804661894670711253877205221877834432396172438118300831466599136552053993971092197951829583540928088947652668657677611764325940808047610798544763376219523835978932866483675068473222982648781125402334558453672377633769995904084776746789764001738691535811123606441441629346451299055031418105507395230511483974203005487921303643985538119820869156185339726020209983772148583172997849067148912100184327563848551275222317658632269072066162934255200006792043577080222074374148168422426244032521340645873795664184924194316913850262659623431136188465242116379722552307021225768310588713642219145372084620168632394857553433298023242782761209265168841982112677370921173577850231016268140493812109951394127747767894629287048713630416519655574170214300778923593623698975633227668584493555291788966385245063199145077333045013271133154416746885475548529448535794118390725829904243018415939610175637707101553710222433008318612562919107002432812124249209092957775150672035756862283920590167541102214188551193625647829465602794134173926728752678802075130788545190871133994224472132739589171427573906239398686397031887484479444143682428194248496374690987472388417267421464544585568176718709312235819598805276187537884502683191004128921169112764627419405268852252740886254125641319849176784577072652184690857536603798993567321793603941742254329229400647545874865215776991227949310130005891725600472679823207348005024793417639383462118883649231651380481858898635362697863732999173666050308052310379358538528547675016202910776814151449450324079769842477226581676407512730784891880824474529478142961804415179357245545912085211918396814276269687369648200907931235104728071445858723690643073311345965535686144601054987609250256359443421344311014190130173040108688725648388894160699361647736626148822793001501053249607940970861032350654120195655188036950375585251766889717533418711717674450248300384828444535732671578487572011559070879679139982838480484528983211289227504445285714198823100446633777014094376880645332427258372822168819302590291960431067529406178450720398236527217093737898785079582186463119151167856756273642560699853773341712160687605976953607716673019791061374253802157648937676345186389578630278269023916364847717380609621219669838955067767157360423131748050341501181065116293569202036582728418695403908244648307349369994225130313595958422027618141266899661107282258537865546285333703205921108703473431358985165120674292415642195895441363882788584117057775666511180038887774310539513712421346162762767873105472875625979260073802240801187002992720527915063925866352576294836314107242327800865428073119215106777165456278931702720787156042679251993052749054825941097282706911015598881029438500595149153379903318793251225062700967053728178950942409710550253406562614859909351120438238966783331518366458153086625094271718203713631510816339230258504561744028256347853770925578477588385683972696878380481133464158497094393694480742514077107286562846788622774650094886976468075835087740133380387602388092759299907311056434723285283948263529175273822642569463931866589642275238544770998441819079478422187594802094124258478284319520167692258830494301070716036880786858093419077009555096340515152562197827928833418241475545103268926316118349371764904661836399760498592568734840814599550793566340215208817521885488687579373564765137603401669832052121393992764086549500320317377834384370068305532063392572774207072466707212765427946182424478120461949131734585936296886138427873527778244546073268558144032235492799057229164591872097200363607513460230905590806077519303543291601076642708563562854645879246855114820798553438621446113351367333242998145703029191254252734807461331397833818262092905092710168823713209005130355110586553859581987904982501540764716663641932651504376368981092117861831893601883258187858780951650293586687035119736917683773229323717132158792770331849490436786056761786259521632777695519174507151416333070287865018687516190591964290875146704090857027551019440169583698952990600094402386875630771514892234996237437040963381215916691288275758348922594408045286384676894604712966166159934137271285570704374165091849963626466938527810933414388805801485355900232564659718722321773140441390306098617716716058060876844559718750698857412141955192172862228106230117510007737452892192497990262203347011950987110617776249923931685162496386916152342626515769748595593240147132845138278048032001575942499869572869270765296069256933379802804380599380462138560373821722728283370105949859258549827058813544245479678829500089119745673683751257629092574358033562030171421801281641549668713405115297105101593522152531880216580348462745938951891381583047997430650687423956572742792487026005757637499668541532722254796114811969587463235654582014332637101841270569483094119465252386835244946619108621583163825820348231577547567893181342292031454024297494173850262427471488219423477328425600865187392492490510252525649122695058358738000689261418921713607552922222320572819887654775425442678522610161468347064647357841754808252261877303851507233417449740725096737091572407124591465397577268328343933429903160660506308683188261805038451039069710830190228326247762226984835341572730438726406002563035027386036900133676303108819684837309534072239359331300645306667362453110865056710605501856254905580651848165595230252677384257678737269463903499612800709255243050472034884490434077856595911729854348329681097659455818079658349418395759941104054086925825247936359838466519740663199858349978079000110265892581263519755954881445038211400250216141744395500701666346051169646685466708748161596795315407974849638129366917407765020200898727527023939051349617457075552621753501505721261625452943194673000956933670807913928765597792893431193403341225895760556436391879474225691778063788613974152269522359618061940233373211678105296853719322799797877207912201593969914382821336014658697631839390959009207306475128508173901952189780995753334979066117877701628239519392554092752940633001385410400531385533538290867389254297456308764200570722659461899088883758055843013077001820820656508151959474912246989474614565769440158087981881280061320504272567509534034091311616946620883211440946047586741861753948543783108566060342000908357147637865953501449499859953951313469401624128709874525332825103280093984573220340215048272777120083017504248332045443314728813830904219286755652790666715393938295444410440782180004191125605585732383334279639851517809724965569611340338908849674042592700229126883308648432975129985777011462089265274668651496485828036755178661558688841644738317362018285287824551843933784815127334384285037852060206530194327113197910021096482975239236753247533891465491739801112640669038529763700421397379278796627144746323192225384103610783525086564725436597237323615060855117705225907613828260079315291449651929468445290616911795455255080890223015515189978177354898648311347419551444536008514515778857900638245376774715590960301917580832060831732326133324600747668457847848240127084525094777644550528076226342576498818496133926357869902457912728870368613237284911506423248285061726014902688310489126946151966934270730304679663899429567739848547033296475315552641225027212133594118072979838038920407213396857116123160007180698687916767018263679513905967771574430631649525263444825532336349047690915806109566186325752213817921742848614175260027644212608509599440686731816781562538297538323364538639882368874958432817217916581595395423909211032683121113942314241223329040656209729520032173155832842588284438357373724610820174028609573219304725991756384731561382179790535205941830773593212530227068480132654289843438448578968453456841712918680443171641820133521451816266798442372135018250131699517920461161154960697710182451939461754634908097752077525787182018411730680296769194627567008128130017587763902401319615918925435770817169926464652256362497247321585203820666276005427844220663166338770150829646662366670267892917993448658969364529068596165881522395516829028345688951763837137350718945262503326481354600160309479509914025643584149673711157220512745741926910826747132338162976630123120830592116807905967410368867268772152584016879447339442573346301692273078398607441856702998279052346514027955761256443101266811235119185557349189571456470431120876663590568631373672094808342629374433961575373715770952282978526361367154063388386429083116960556505440312937787293893870482648383010858491181972012495874528337550181469597320356379215455349427306927090339940342654054273912213630591058084974202429003181848893435934771340982580303100245309805833985759156064706140618235722707495283803774452798891003148938519763724565035003944419467663950372610365374615746364530163867324658295039277078325659973664625317068589584615793223157869098907460365051172903545859628849016000583594134134195926277393268405002512187249096161419527986664163604110520337895168818591085803457165990029152657416926161954622529937982630562629574901739049237362942537080842616130566669860605766646260806799189332018010787521626301644559041349027994133223765633377005815468598498955080246770629810277271197862958024996847977012100151138810260061919405064270237009811525226467768921739286056904681554460113908500660074663978487292460541070803208795682065679449950812689537451826803376028127405428698644861456126809404699837262822749748077725664101343349261937486841273258202582113724964078299027213964866685947446928416543304144688348902023203355197216547789653533452088325832850996746991874124377513255925428578474335912541599797245895457004159137173725274793770844579242010533454122913307028831778627540630442890844730737035524335390421963463178066728613207904238994659823693508353605020597303851182617605333025828085224317330917921088117695392542585110725465329349332416117132191674977559314805975593385738930350107365910495432184663059390074135257776916177853202585192918044502922030960712632588379423545693437794857891480443571105263649424110655216710245338917127274780985668079942192633970255054046000386068388898255631842119167512496842771448089463637961235101436646202231327442987017328258722641530292071412143826283591413544667224075478099400263821048278709779586614803085743422409467899405295268752395325311661708728887491451756740606722468049439661773358090980991010643784935042450906484702302419177203930048623832528799122030056787541721909134010105891535045919120735968898889201610438393601990692556734720722013258053380009858984055477303167595598389514081294934752765057203369785733538502964043576554206083926121180392716501902531471800778231875082622383916357716517900111928700200694533105046781252393112737368054598005740722971795384565373207041017081844692855513611646346198387981278994693187142667312507630034896400018017195545307516435451497326173703288238358056059951211073372270693211173667804878068892991378508655496418735363312465617639746288923226787268041537214652956643045238710915361142189543667379661273146467000605603215637832039570478079065652375185783976177494637672797033518489016604727023660983725974258604597165456924283793518340487828497226455496392493161999370807283858007382258244526155237813509905217254194603372072177681700212954303759847205541922296444452276904537226885769201763803372432404986207136148308671275051749012990893832560970857254371081304308296334893413033702289070766296878892480958186602248180573956677045828078192476107740187433124428433279929891896412975471932356010790654129389519475341330870732557910298624260312189183808216315167141574711838310659608661091334467419855002260048633066821236731302365926603889117781883372324369599545920479693339889413312561514366695821237303442731239300532661692766638738196696141209322140861915234586852757787411717596877374866109990444471908436013044624001546106971854213950883136183318063703396874017691071137570511399489774392878821779322603911411523411400450980658318683810632600248029023755661356422875068769271159535081227570654334618893072535295718380557989069618564156304328817764822424530997383522232518535244207039405821555606166615448273021262855017154896699360865467756198209739329914841777054574443784402294215621412990892122715244199046434546308099479053100664020450102325634161848669774447364950846839577464937480781763325141502182701120848848506559295731897558100570941097413801220973934274599455337109693336117638816497975580087857007864159822771713666446147831112126164240796716531191524587696620940520548165215549572405101135516804434308329301196606219255386520764563129433107011510323205696051923901751429434850974458157931127376419265874347201296929561249003052838134363823344536859866609986750633613586028756316758818198032409315834537915062057547187903768337274123174676016311943111105609004664823730579738327576903238829745443838873250500500116225749163404295797679149441269341432507839959198418497882573518292699908390101467354825381776146112976028292971830531819771979547982982859652980582031559300656605414102860534984272719273517659119537983506840682446936896098668153373408500501209188601460310251009635873985533684881791485731208886060361361702179705204020489195019441817320324141899544580163194953740164172775323174239144981711250478848589948091795855817292107615247229959653658592251943960011111538488655461242606232585557343339701474142886217954313812154289800925052659652823110648934642604506270300469954802051373837595587550187628327688590902510351113054558648637288037708445535720047353127322895025774370509775097780033828836029050708204888284616262741869028557389991770729308767026804777335290090766504562482114019392012794987951347269248460867302511342862269416639445663068695825154581815840909935677625662614955071163510299381100039416710485086162069448293935609288041227104930720331458614039464462287249835098624960027599345202013567368441515797433501354556803054021696590454683339080561401900992567290376706240091549322553769042409133842223716151151486711686861307871837958742785050579962323963081088930797563660820346929360510570623463835673949283351667085917879587022752426790255182732802756580905446654867559239839086546267259342011203803044304624527287749859573867543107055887938193944371713390429319051257493901614019582747150178819624224720077848507880151006008042667871501573278074175661808739424997905361926076387621894992521633609736669711698117969045604098889678725107592063418516751971552408423211896480860578531521083195670913834005977290078746617865272788473004306489129598467275072459915389310851708877580617444762744833637516141367484251506088493671946126968553959737583992884355555304570689117559100908862829361676094177372532562197925821009112025230408396406449204576495023620759491799354235741756032435138388362327428400896664798281325811276591175771802260253843725468499852414074794110137287812697349868122772344509626128388429888741253537490696249828140864731704209074836116651583975691335630335070033959627506651462827237070585169448570713195829717514593345095898512997515088449501481600453613592807764965249671731987870693775068131519102374263125054241079879637067020475161291326351681485760871330075772663804525340600947153337898656709527373694100660918721092131197080320998881944526326404085826907061800095933647993100276669298866022880314075094475497920542607986673619775000011789829511837493303398167298176255737650744771082305865535321636808747872972872334329130270242530250700729378618171399235958125071770469474949096020651747378225328967187772168539153026213525457464885138719464956471262489318682074728255846758837405770142034445141803275216339099364682174825094024787693828837203619667903000755345561982727990647457481180300630552544720681695332314313475953809475380812471904550367426347072620884532364167856645787632120688141292825019943795184791562311995421953616711782334653869412562803458966891192688481546008623114014243025455481638711753925275546551627028995862861947538257232496463093515287218058980107653092094733595287222946797734048446740451942237800208406344233509433734117459119942524999979673458469169820427052059088426549247842653710645480149409327396649244948825658994966849690770960218707659576340864889095056751188678070359128652316660871893188162061364554039917912821470902704600817551791349822521870416108448926876888690970356427081490917012197588077396160040148224008004743546583079010730032205845352450182392834661504212505150076911773019349024408965873094670224121906844629109552516984298578353461131206777235626029952610021983990978956678615383705713764944100979768301471037338299620761015721017774508229452705403793195324681500714842728912215119936771964521865926049777657135650866848836145572509249088923946704265892797829828187501291684087015201071001792210185693111142506339927388244401710913771645421067826591246399406343554760725678836394488686663933444554688832638074275263243359437559926952592617601357156484122951677568452093332684890017307065150705793740676460921581425956440151568776670869739188089084849464140910205612666076065605340480352174103117944464125995134923935728225718719959622956540435263762481622981557110067946602587723200277735517224639427320326440427598812036804915455490676276340009989223375105240941230135938475458041910450944182183862194337075792091919523503511450297072989950860684993996002859772065118794821574584619100134056402425632281433382433459582712429162210140684980339472465253778965119291978585058767434619072955152905751407195825760422148500073808452723648072262117946923792059938148596700349933844734991400414901123890315002804756771482715797242684570963250161467028366915526037700417247534724566338316463463942333077210016988459278513583136779816720689225841885646637730068627784046264287568014633013448562856618897831453850065863982961156313680850782063931388315555708258812183934077655174811742064070300712424549609304548875232202435872433038042814503995165709365945037079214168938106150669022367687996174668643940328063983637117960253327306118876653592158995660004165055445828992716023764042938884565293209517640692660160666332041070062133143068666142311247475993842024516805514900625014357337012486888548195213637140012431862914034531586792586580227437337831139618782768905920408926833015772746510687177031912364062848067869119410344327676244728924931293917942797398073231788688620774053112085650083157262107462607788633132175962234585063140502474147669942789226589855529639877664716511513370024116055449866248483583535269828585408482543080052833605507616071235041322102078624568358270630809913539174239899505895662755834804887565716589176855266028973494960895773637557440893566032104077740129870808975690415793621523078066034008397367603680546092483810335649634501762591173026884193174427790047619044817336415209401625461330966407098907225001488588754620277228112339671368137044146096622509180444206568285093929325639301870046395385395853304161701809680476799583374063762824879678617589002507458543670314725385747049125369914706834140528939490815167580930599566975587226732040069048685014206851843907348045119217571864434820729432997748913929347633345414963079439029177629583731811922131611165269810538667810060909102165753513520997322907897003936528366403792053044398164935146738578734752528599923367587385306449652920554267481256316509394580050284038774485614186348579848645424426957784195930637809413127080871419079191015367930531819819650546920632166493458920860667169917242958860176188905242349120903166784931410202572818871242136063393089300340707535328717725506567833466493858801045309824040724853089961565291675555543357194941044438314815937370239904494922248063051365634824141727656053982446859370667482597112490190664217514033828025389119128378305389797703106266837383729698497872604339338895002327482004463758216857816121286076972280863416642753935964635181101876150832889649540347976009044070553149925441999909981701295757031150260120366558011596120288322294293769429507459807767263526363438032243103134289045844921161438434702657724036492167288835934827604292543696267758251117816590999899583908175025181727321411886868147927599484682501860766539527417518214768573179790026402892288670188889632740094495716746198040373950809745426073733081023192575548011349979515415383076147453692990656000646603003813422747021598739570288863920921820915594877317594798011403888133911009921681128256493900839994982982763217402705884093455242852218724288149191392311646162567613583421564875481002093790858090818963356379106008913547322946216593512842243800644238248049768872986006598962363043293024029360749090658344390649997069881049684178710192379566917508183324676102527737579044646154413024997687170189885960590956942207979912308225133918322578099573318485507019576076481209899839372488754419658303814448007989827335940073081612919667616748859911666788538011283177768257840595174322521145593643601253814595301517269181664070372506365294754425201681921745000434694823077204542901998239751027923709625961552826843107198221125978855512000927148751471262074324595197756711395627056641176031945627473779228052661903114861987892508288895936876098019178820467488554241972192196957798101052628033371179157484072867633405166058243531698511987512800566429622259048152106586590409389214595685313017080406664309578845674693753010567710582725143280111040390159858824763678832363205672554215084023667711542297826246391663492442689927551707627339559799409279655918023976347727966276674849496600378431412043642326564933151488995789793526255899889607804650610682280643268335831880113878467114414336796368658083372951065082294383752043447631011782497171596612713211403686383211752728411880199169640301852333314685167627217391498358034159488036606823884853797144117730537477870526595968034240592348055187969845938735436922280364029354920250075174746373627971328751194676141624655470049260381294143570499206895416088481942065530002663306352400357024485433835511899173568788025621979645389028920130849554512282242623884484746371523241586313859458963390212303604404408010473910083526313635035324292234267117091068270581212444045395404280080492241028219974884508519511527019370026288208345616590574600343692041567975331730730566769197379534305263137718633122745412236146079946565677243603694462228945649150034011065934448981540121377055170224835885185914450500061244619684170135258669334527702565199687993784692391927601154998469781691773169554180918803446033073193190197240931387782304564328131181835409453222620728882978483206649341797036927183258890421819514974020038703653322411508316939603979371627961910161476725402758408182272095842371428551017718947479291369501407241904163521101762949565793707460838575194945537493863255216090777397405952088258380360985872683679128864327923213160529220899280454850016827684137475460104282676253158729688183425016160661484698862259838964311688992465829043067880918432776450062552959194183573018463416467968993230221053429606728691708564194296431183625479578877897154324120856843483019306840068413926760694409509807883318193666272929978414759873815381972296026360842719726717857402003360512468637823097784234429219935942814949771448934591275466493786914978553895994376996280410291491433541454592669083974600460186557974433207092518146731588683140551196668467509739607651471684022515915392763533729030800277225026615767635522415867921367488963511020816091275191439975684125387281847427617203411738243541923616165409028913699435383245708579416262132246982442484794734452808284249126746338586204455585592263004115879164439988318524872606622882321428663326990243645949287320417617981915435197973792501450066337863632014912234414476879413912994833916548645987500922757407628956436008481911960224666651687391256876231498019584953199722707529559548388929203263986966603275481489684969737907989647518718303001941026722298361740097988779503657734103365935818497516142091222199967792099908247409658350414092720055600845722055926063325817255989469807623002030058669326890672540345585387854403132921211645995670309887542475779086308788791568886516292552071788409441132468351467792443567180654844898408813495288174052647610761592296793406830745082500708104813167688553928805305536192410161565138273764517226575002668780873684894073617978385073778373018913489912784250758313435496541746619194619047856140353169382995922936075357693764786257251522025545623899759465123135050524853728426777969770931669183021055647884177133255268127884997335408854783560142978326632414016880325290365645595211539421851079893064822389146078336122070260764205408896753383344122903734852869982367507345546781598145618907476084634558948186089996940331875117588881421847904404689988870886026740802741713909162968561012493661526116253192144119670524989809741532548975870995436779659558677930710949145879787056227787129755556574251333458206144831949276826297803102416108287093389560394240370440740788341717028705065088283478471277390999049396233742277322318522104981855007849710922799054142317041609640864531875419432950596851558105602153456659506872197502694966781696706999501688568398891217954227033212016438920103516616905793404644875045316327122096627115934178280945974719002817207101055559952923034165538744348058158068549261434100256359246516227680764103618179763537997709168764162568412848439059737569887385783189734748527777795148263910201059242949496071973266424626490308521752163673237654394477935196963410204306673149761187650916243067082384690264687262462954508273010439393070264351343668185129924273249820477229826525481325809703539852580015961511139831882206261625684053503832000590352539733299919598316222765278989037972727810523627138072687964195308214005095625001395086848567746661198817315886994796700782033786980024356968998862654121814755121243873360953698827062062898686966988278099489225842340630856786424586454677796740580666985011689012174761095313686188509712247886514153563099945568370469404742869390790638862189514357039713521043049027638370204082919864104288336135831936596518640449892352993892240634802600497040531211586727865765061285134807928957759704472834033946245622174289418596447036985244334626966071330971738064690287009505974234267316234815350519637862876304717146311603478318923882154374520745357107768804694642223382159302277978625137449195126155008388519390113919258998010510688010250211700279887519854597740952632108992249855322973959660269499840734481267338644648630091071797358243850072489266492526362399458424705818038250815029881880562249486968629503253612038327844784455990168639836970068803441219695603663010805187470716103440032317793245190966743560314846336296984492453399231794056953436598945119795354291317465798326355584246058836121448324025672393136227783724675016173651139336510506924634744831286399834507610525928878111917964931206511793915194115200260085614446738365472010610957075423459885439336446976162574054619862732513556159331516687735415801465357905314283446205749393188701313608067886632504551490260849995584560335528523687890972883251729014821241903776705079352079795811541099141063243081883115642120547366999769151332564401852877342626962454377325094424915498046391504363974365029270821960782979351605861154820151312168161913696529002936370531401864769822497882861688703599980698125972327733940075790294684532499192332595798693723348896195061256653199697348763239086048080076737903570528733454027820747134611447826013856913416000027128920240120149978114495674555387094587634584708057723978205743286681616429616288208628911419686201869581862654942185659466462259069102704177374261909763427503302433878528980902481279199864456711314201086368142328515697292220952643270066159900136619944657951527354010217051985497627647006057318011514162313480987869007245551023179296882868667875840581713706620095169826407710800775389241300582421510420839159879719135216585529155761555271365337242071099902833847335195827890232048484534118969416231847009015289123539921372041368556305071225228380739627133302165797572023151907564226489722814868660606597587614685038292992750413368227160945369724944158870646797595760762764550413869866628568310122630209731595934080566917101240511124716754222040031900589679867169886861874607092404412624343507380436251640056256678793519804031643077331108207732102767790765807608418111179100288198365852056942818418550244380399899210276454026951452871607246187515929368463096378762509557744335986834621252227499636479150429888543114057165663849769911350506175666422132568336954588911912158524361446119005379319806815061991246642677886276558555256605777680219551671050167201648743322167866299579480995270914987088212346034284434323367335872802574426309495364447999686881547905818130122381088425474186722361575924973230714478075726055283290731911334497330190286291955230661873959388728694592924290409098637403626103505329632338111315593212201525407590331778454761208233006015225502685875612840993433346949063688435654722003108989620413325653650395854343579352357292133406568643290643541914846221185432590158171494855585496200001650416095381011419362814946827512948223283058306275591188336792684700099788883135413072552943376343074057130217928309492733637568769296331535423982747612403919975857422677078438753861194236139127556320024853713221555670058959820690936098861826604765012897840864569045361921842391005906382482936030989548492332114062092252966305159912456168550323600416842365594033298704729935359625156664015290586809411981518141843290402882844179286949633089376496116538759073261476353483999240186251322656953286654424321738135933809162373452748605532713602023532362462082939176118913250123849885170442474614075033291589208527598621766730406191610107005655386048666950915050530090154655607400500106127335625952668210919146795865354719413232667636056987509217811774299380344328673002681795634126169664860721205078325562972803040652650677593385095701003338165796452982560536437555765702235800207205063710362126503732983306472824487546702783105139018728325454547470076813920191273175884301581975026979881499205816476939902154626280504835727408815726731698380458029253584758770383365736043969576006076159185586131584387970461818725903544479111333089567206071355004221916389997554459915057823732284877042321790547204335727969803510448860916161631783313095694564080299103159831715683184580888516199087394904217119849023493077293000625698925181194147148725244774585094692524503176705078161011679275824457685427183777856106529436649269397823446031909717983279127764672030926445370583822329327279742041398528675119592158896761594470053914692833389778870702141807136162168367421260080898729886911090675998144857149312252099562899049269083026550814004870212366444339780000267880408589331658751689353103065560202510668096240957569280524503641497358723804824561509545829620827941697642307929269204065381822005751070750242907848571935522557543213350487681569460262614421000809108420299531453773945509673996156983651280253770518047045436552679500068442778265088213188835687133454001394200495770316351648540699468050670042766295429335967549499663811629279130041688305003786425882296635968558429909076011400666828563525996214773994369492218493552413944560756484688301332436488275519089745175932824861305572286617367705483183562609381492911668610567574983036744343614907592483116663815396132242984972969653825222886495986832437867608875852566133651878582822700435860094872574183476362034389079974501881607104933765094038745829141688999894862858262036881399184446976962413503543525303164563360137128714394628378893390339026829738217937074139600503722127735358351252223416270471230814643392507374146219981757880903345288437751350618866428896909225240471896041162512111864930137785288372916328204808713927703417514471884814421540161557716840607295227518227129722832251651141416613537155851323420690980262354379892372885963809759059387112020883506537365487805161097459971596939642510091111143422078750907684113113989007727081118472530955394842960429777460621846443532363530338204695576944630366958695914085164963885868593868013407624489318556109762856229006356046807159322109212232946557413157876819203988863538326181951688981900006595573311581422205444850286357805868632955763185123051572284454443203105473926319534661792446486892267095927836657715303550686519612556743708857706070707285557953823905063037292755863224239694209533848010154132870282258489934785230118573421644597620492751654734788295430628670828803065910166826146683969508002613486683227763696068468345583003719265440793340189092705628339502486278623161736942522063199780667176171276364177841003114643367392884988844878031371170929393201396214117873642606541331824381816547237559174946739719545808194947862608652540065556677127855262966196911082426726428428442566832385173885496365870371058433736076557315123928089819779690033362937585760515344771925258500319912801141395937828276324747902172383924943380735200993737501141108089261315896693340509477633221682207930862473075067496855931756305148652455709076345614584689654906848658306095279199612471332048182490532888938912171056918351026744823309770291940514106731726888805619110676148081020710407078991007964561524581403417327900594012276380378439541457178555953520110864315239987288394333034431140477791947321195007249332191825076996503001013735383526034841614338103996237305717359792863622646968397613218032949394219492950117077437624611914962724511132708786683912100179289580865944713609554829623793990880543122655703912347061233798482576261234961895556254173795264616025669313387813001227140112070409999723445425413046106012482652640862698831911573794520308139366542204934666601687660192319360395197937065825400617482335078291866681912272857025696406806682972041182480319502429791033905774989476148784392734077888260855762596197119604765380384663310470778551325900782361629308313323115366694222103534672966883197831541083493004634780887075950704193774342673108700527173269610211488603396312388504058027637518980289620083031386003767717674633279676524615834865449202399783786547667606223632103703629976582298226800913107111157209547697461777665793877914744588921103496243419992234186155383517283498635718474591593988433214850275497393257399923285016595218936381575208695809811505450102077715767615073655235027197084406840058896919099167037034312460068327450941289276092893269866650630828311683557059369505959441046324568742872564197981267182766175492855532988177743749673214812023273409450178358164717521301910580598281304382046061397811185478063422004989491214475363205140779879240674736562095915038996957783245161405536376112244081201472886574166089972021682403963911806368083394729844051827723767056305524380805988398876274089410946903517435930019752062489901323813278431682497748053282681831968755676798340939382467459277067900219935077062324129963373310632857766593717791933848517680430857271549332816963843612791787888407569546727941726336219948073835134668720810464364872184777979570595805420642479193767143669674295608926197792217400910804547749732408850256662720473494220022640802963944139303860258972784570761968015176051511570738257040451834439137154318289756734615517058651881072013476346350126873832711716434464970189215490782753120641321816782526693836164091232876129227686831001705725296308790744581449932340355444040997173399562373131120557570267829351843256510614406007480112889988617005438794355646842975079355233165806671510700983298462195639466374491082151176216425272166237299763386014652458779397348045429535508502084621477369467057436772589592961380834700636223653664448225801364704472459803073738220679818082970103778657035330773952465070996838049724148534201524193131080102663651243600358591725660305254235668773977794087172921288330097175775103403289114914243981048217882658926710816099426656827215720130454232784377086131848683157137308406246549218421900325206514810261516723492102111027658616354361869818588080430278092087773446321967546307887288592630006115126592795012282475062418321678053863261217964868548654085250563581525737103511466560854832871276288471704088841177838802922588137233518097988748810724052940159886252804587585904913028186239322503474314372452118679804229983823858924798877136692308268952749204642536492285019310027028999078683837387664436572422961805341030805743081719792747589981477201183423040265927548269757881909279100961903443108675151047203296664341056382887253900996348957483732038287016998536080930783608179161336893186677011056528052518174337758063083222156079382934950534630483819300510051633000064994367033103444145432405516391867362979464407658913775589680786666121116320642030027508861223790250539586607515768523748185405942377080915988073732216805149833084024646595479973235887769428352268489174556988822474348582431754344407656848654008949593416002783034353647698645917547485623354007848429420296826254058113082949928679692321601944097788505746283738711662454084717026451796899967255460988963036209385228874291285340025587488581962854865229807376420130809418518248172051461480651457356999162235291451665939838663122937859397028262961250936103660898497911385351653979961330717254681008074253288729323392528549432169496487356044371828771101898593428187275960872686669334929650073956988972566180027064205804476512285516219868604018964288377319068900357178488357019065364499858712667207473991149186137355456662144775745740006984535877941210480560688251258502273006659376988003320194754119231208538510725183973407138230450513552824295377492724993075477400848771242701138216428161447810316724361914957075625171020435192134299423724863424334099232881884141584329427987344419853578400296546865220954449986976784498944659661896757554125889057505932840921023981721370057942811637507082047135344052282513032255614405266586036235833417346479312049120530416926620996652037222783535101602588823759673593536481649370808534456144526945254597300482010671407359973277511999133217488269881150730560712622966085503547939984553291345898562183381508486269140616305459434787422256392785349865805972999556485135742052792613358730485618457270242899791738482525070637416877956772401174394027004886527734464420858758384891756476653581816014310271272752999564186079231774480975485472723607034483115261716404577410063579397250985753654367161221217010562660356960339315632128542178882185471831354403295306954459465707611611773820901237270571638213033955710050648805917892748053497708867121279981123181757919970871646773138299157836337811545701250757025543913613131352858052273126524052517170029203327804004951597860318057048579943605757379011070404130596174768440100964204703095922495753746331509017389791550693458675373155121128549852454464911795123721173922411642771311243770787126868417392517426810286402266777055634395084520354138132830732527375500941908982203583105093648350146040038774059360013345400206105964011268949805847255926150275857610393631231458634137938326377312675682318333296053973053586023232570451854765321269495214200880870390564393544860692234135921161917645158899614072871118260695951876648765139273062844755289010678496591535804834480903648669612473437460439180821180588331963699172283160132083677846692335872180922065078168681878833636418427945633726164761606287300961881328608586930052529389575596424679218049197790932073243572440215278793270995383475457760173364620329574734374232490796451375593552890542990568765593606384182770656753104538777107640630369868309994297689252063722321766591247314490318980150549251804184318667479601907219665628085603694943471037888467399259028933872846633440071359358482015130177025933347618718219178804661143482413287146652259038201251945254145017728394220043181705357558555575692457864973417321914259870079008455530945792678683615144907840690157065247321640096362112737449055164831696954465247367728953426695132720376797542480676082757224234267624550431748067604140915953280776389691492632582639944418907375226083068335660028714279610931471860891993959623361047212021721900999558677450642220312386641714843500803119586256469827390050412253504931870943836152495369357163560718098600818061924693499172567932611451554851403049020758537423175086268652109929747223800100512921780978105272479105436517769895593828128114228658884555553783825335180830628014058405159489533511321608876733044366082346917814235336797241983199688024601991393679181781823251668831381412475176389265439433479448279689468229990891392719960787211032192461364347343087312748266817365652545859129574714577904924690044790455723479400369462103884116890144971179505326210205509782763369502354153954885907353907341249084639526394536742769833990829439104468153493902552676364392884506311335740456713114995517038802353193263348944232280499746814736490354498269748448026655957531352975300832202081394482057114656565188674694643570121677122458504271206305881989979662648218557671040981860928411191996761148066948096505795053082919659528107062351576524182631517358831324709554630146941496094574631139743743132643853938283701273310552808552276882262083897851637175785203518134039973228890791605733823503542408598879791958260689031575161887090954225313392745815600212872782189391142278514456312602287287475368397898906201560554105133735064897547043101845092479646747581770370854089740110916077756714095873223460910150933340978216306606044072413448207069206947196750481557375482837507634359748095183443616092955525341933045690512465885820417220923651370059681954542690313596695928266899032471902460552064499192699600176118894008312053355506240297210793451065509850267391970645271388425959765402594974214384423407714957271984057262252778611356140776568413929115950940146834614458766017087146898826763052252421580316629996674479952593381110858582740034830479463762482385112537433574357384256870611555461068665686302842748514081511719509657148411384572640385504833950103178425791226549248049163786020836496132939895066169502663647928289824629686736524988264528404513358288006843510432302651738136010281304500441048610544788701610272284969853605323022278795474006735102830540316020806056997766301448572099357283955693923644308405123808481252734414767213747053648023608846049889945574880582128592431406111327507958773083885076144582150723153952621359312010579118977318228248804109080594007966471470813645467551285678968719395646727430583186481334238756931381511979242852627906862425898028326528918823300861553748029090625637515331625634312295243939401428181134202585125477941899221882659775129910887547077021337176003804657173713561764571538973151243712283843117323316403410260404315441878166995872530145645218033206270340617782447447890347848971802486597035437783984515057992054512536972650314590293810343125080455484194124907163724394568433733652184596269573152167859248208298329098717725051625123273705229634974186697541487829454555516142434297020695944244447911597832692315584321106648492631313332358284399200405405796712875379609693887869331411578649870620882902533233625541082109874077723074142116147963962514797135637169370550336483497136004182091889150052872548410236431835239745748940316366519233196949094648936311698914355039738994540926785979936152424907958841418466477745010475513459213349944403815765153246470106512441351029245920607864169718454998992076393260974043074122431446721662872639555032164264600369624235562363295897671262522284796210213332549441782311707320025862103545064258495298989482342974744714456156133861238788899377638120870875886227844677439657189404010228350279982274086269409518943815892747285451652778558428316119815606503632120075199266472053421234737072548813047856287284716061432466829417689213660306152785910626163402739070921223879789090839358276332995971014624216707910641946000480227428076911789757988738501139462170269530194316335385353106426481579450937534887000778718197278256940758860724710468888533634535435980728348324406314376706110613853464642225041158630436398267414549178528925579166797698760579258351991752481420345805563964942011411284088062999590994613477319003440966686930412746999565915475086740666674864111756391057748781191018098530116882758080556602486879483221224686017809158194557769837859305861614344771901613767720345292456081915133416240241421399828034891975438854910846508682213795800638980740072449927548880060222960238200544596581478088254354196102037715903606110296020226286402785500157479742368865278415852078332437751776487531172452104835806505806476745649836783395403594523902345595255826017430055034558036558011039762065075834174527920183883081794084353278471415374713199942707607389829542874883003324713244264882501925201939860149316361487743809552806336022292353174703817254155950981296652251059879103070664539427470924061719531786270932489851235005889127992419405562573145162981810985803633186534364495949626946453347314297294802753202226267086576064650994198490127945908357720072133300370318925165378671157752269502031319300385204627770401738118390493867798737687124281568615461340765681042508303320875727484142593764733371521524048815663371324889398736786285290396947048264482951930525386802649922313563329170392639017488752910125751495773767860012008020445499488292372136946660365173231810576978515171744771342621998860601585129614922198981445453119513499056389014482858955897593759257331025470816567663536885240174447573268945896939003383276603818440872015657681028301884176441480290183329118297863975728182259698944550127094954316599725754374528070962714869336701484333694478713873586496753543807049576887309983767996324448114967378529158271168910036623665944142931703618067934842171163861683257135255337904240538838345775956069135041402853510702816731189453909291142664357278508512416130592649061838776987347418972629599069302517576700048811773235746065453640284725961739669499555216749888076649074315582267225818725189555370173743202196776165798889924011317861005814660288958507076484148215672467845013621757747749603081155714750091857841475085901323343868633327656185663326995459735980258457430340077084691107864073865140304274183395570221136850379290936235670750172595953065498504876715482448587681537580133757551874528104426894461398250824626451750077353829598363419167376067765434163421106878943312411744490905877621100229122076820087513947790269731417657808559326953019573997834016601429020054040009305958213121724937318174057712515295722149526322875087533699188354168032322584572939123630849164431292065847435683918112241542348145680229277646215483757106995994823753336776078998233136362601356177650811463164799458714348610750622504094474118809995022916380622966750277789926444683868740574477782162569702381870391031967984269708243108310053464707867489543300188654106762254774093353333562981740127411494344480203360846455828358886547226247272437423037120378666925231075946411606279054407752473776234233983047939067000992164541316705189607304809605272010618878257409965445982790083872510542080768557691356759041316394299633604747427515989694813532566395750279960949754460651990300704497659557172534223748777419373925625134188949576525607392656284193191299585836395683715446564888598960879791471808574423259802919651216216917263127566096605510761365405429534195334517052849674733984043570093263620020832616442117463494159719432974538328908230937366942875375799741953910300288827136385181815298831940934287738672415186171123347420474008625511035188565933883984383930239833398188835072030840932095880969339181469757689939251673253063704285692819803585791618965087220701318372454703266176183851048594591325585116707863243024768578315888298635181787802216147230646111791793755602713107882630019756613317468325691348507459799648178694191815481963975824158637151856796872152701090675743882520619663363362982040201634372998566289025126453234395736665166122061088110660669533529360474193433113889792020459269894003047324680095226661488311380339328744248151148159305854666720465719685569118612100095137043687475138625445358009035908032013469174033944833614436457145124300837821641329036437449551932436821195807853082054752491369894431569517897182699233008796022473637811528834786557143222375114467880623758869068304419055241501073199396651179659590145099118860555612854768224579099826562988507634113257995653398782951337038161714375781768894631780935368375930805799510176566382445833672904807189002307464076675808124407779088715824545946911371928409309979693006214786016666350443906056456350817575488469483301075139899904706125085227288866946054885945943715448537221391915272858222366647656685107187199874123817372683456219505650737383994415541571442492690592528856779507917397029883410026866750616973558462330894209388627458610163808829969031592651001763824028001935003788430066945371340043349025202019113976309783402585124340858664148772937440735135848100783324914562527229601228593920669857593050125505608164657361524352991128675212841500326522269674005296093166196053278985921778865072652557875320720721754174767719632341697912703013939720966156022615767326085105011057013302493101281928782990703935214999106424747874392246613630169050906717525681345401320860216264681865625336784596452598307611517137063619042636827488796915947406486149422523195882625675922382639184580339885945372767950175120396848517237031451891339478090313413974506173030892366088457306571815780486751211984127966548514132577403765605435225704258989100851260413610705565572119039340005513156541033264641992740283109409438033199987958719347469539436123811104448802300012551797597205499111084621271457334742620009810938836676836118048452262228185618133710084224069049702672219327528264140581229620230839878425804984260857791530632468528325153017555218891261795030221855411192291957347115536695322856655971318112022310633176839556326535164457635143383454206450702237069253279552329661276576099199438704116579422881969119769964552600020837277477255574680385105486849366640483592357497857240021863655127678805115702710477148245576760179071882407264647753296009098085772602913581837218533000857383667836686939002063028043977972270295143982869469519593425654686042269640753052823513646332984781625075881077013332326673484592837666534853689112244400901431099583412777611021450523859416207559903445295687593468880633819291043837905149176874929249011315591677304371824815370350271804621775799771238851043576658306012475521289621353313532556489496091818791003063855586555720857841527739782338485420175126233636453743851675272708199700365640421550494982414264602123505493651957352622011077998894429057656580994873266829455952569851756381598269496564868455089329589253783516796582119201973176390216230929978232099868349700789219628009840012570392990692367844976353436997326496196585540195829396138397107087942536277792411995045058359213676803260249552984969912608024308762656432313659272296401929875420755217863842754581529517490243194946501385917252560428577404473386884223012495685601521090981338269935201104554794661906494654738505118480071700369351089271546641523804659474618448259014010427408123900402806391379045390902287037916674346943262959090998815945011109998529273161863125610306208101611780691901020631978549488964705763076232500128677331029725991889231017552828670855299912680885399603548752715151922991272888917217735494948396971312874310088174964812626939668604131114601725861098037406177187528325280980174150025680263372141369328720891530925201501106058222740490060502490032014398361265975949528733395297840799338334242627279798003509653988970499534232921569079583504353977856006247838110605319986510154339907767781891436807235637125283929006410066258812486137005436566088409223858884404214964759053101158301893779169773304747255124236909761819378503050683470725918849409188746908495133344658488642098686577255705928714306279134476357191133234395639241256532700836729574640817156454704616118004496600427730137313079575746304795053180274215908193518689078345095790514947726100307917701042051945209318403969253918482348744707248248508986062361630774302431274383404461197333835191433345061529482862411731734092798230149113508262702555094665176097546422823463595460718228549670619525206993785040038894474662549717521308538583615366479903641900075751523721986051540274982428052289349398537228013604003238793830604260413249724886220885528387738640655744800555069050371871120185940218825100523668869870595143515280188843637038555207926857731366206553155588117240790911640963771566061772173306362382966079929636215544377012385431745959950682838907090481157387155160369261673552742454565715000711467639431573905002873820890851785033232325606016684093896444558646709909721959167546671582288917479965995778530250828236609681015645497091600282451951792758844955175984394652399715485648772388151384519836856237131167674286051013155422636330772239400540322363881642578179531917172381819290437882258555738939942950173700306896229956795421402110791182396947627485444819071531151958289287102937400909420583684112206120041817193889849298714008988033092895790073571566394064325732051082172862884239854470347022541462258735940220722927825620661099679955571201230674950736143415855492407174817864223041589310933828734371095934148576192254867325614673865088804704836841785560581463375888491069366116648478086123183191841458018637945956493212058515025794132399406247944603326120720989654318111159598826281710915168294526471480588900430014460395737474289850561463496246789305925933975930099842589266423515234425909818904523172805981982074222487545435661599941284628279719752217779952712762282023145719094877276602812319611862732391641745771461573471273671034175672159576631398515986691667538490661192115512559312587589532101500511637572543803111614838295337442664192711890081412016089572754865253490159942385305360536280976926647733127850487660209271781368015590772854810067494186661826253135685260063720146905877421479247099765823852804635164657931954556400470126320002987775694367443068825155536333523207585177518848543647157096676572235167591180854400793014299748150811507808961445083483263478686459602607958900545835760696294771448165057271488178609238125700833177378627783966098190738136237601441887040578844884571634919038662045595592754787797578815587327938990741986506962476410368986663927828489628568223503536076599959164618497241868779806387368395139105035922803222788351130387591390810196512554112183036060630379359589226030763918139059356690385388179787541559152424511687684384492134446030717903154969184775884730496096703839732407992319206623007781138052115531849758769945632115453136094662048784965770987417798166072101905054718561146558276288270571513266651686928935704667379644208766170727714123948036196201994009055891852432079291530722543127251503611090635347944128798587741722876761336666055447835159236438097475662673846074246556462951280349401275437067471476758078401358775838085254338557469112842043303510330142368114818994358906923576376147091997625411670259260458625134023966536906851201003146707850699232507581312585901065400162218601549041276831237101213217781568615424671937538482350580247418395606765222853732897279512649234748339111574812769828747325487758243496154948428505660306013280333773654095217248754385764999571026375608273685902999689041031357266069941158027261458423704617971931584988178236569748566039367772769733055774609686486046644376780336898304478596956958709867728377762577293390251730198783020760223784130717740236956530447712374408419829314572122120330745841697800733488784577622971028530156266993510360742485805851247982175574572265044784043123330165371494056308907856764448513676395011932378048338783170684656636709137727939206557847243678177597694270286176970479325034549333851592405096136778792246058493542841852373677668418035197232377891252752853039631806958383441421835771225760948876291381124996380326535841715638413015997230213652216706275669148707588281077565353132493791861644017841036400814095530275789930368079131370366174926826616824827279396629948445870764098335747064105629498196878277390391376550142360563617571568495633914846016387173272119267634857306335963899203912902029104444121833720905019563758747475671103358317865749178731615645760786850429723803380886366610309467287060320324031508459520529332660719158070270538386696033602626657069983405130856435298123093852052303083411590664846948433176016313855747436166295252810051525342577343358925379787500200858691229436538548720099151853740880641391712304661820475130442695523033311136690854976461554285283062433983635155303619497076690470005612735421938234197646755386611585190869165625416582067247950770655085349982403535274340611935968486815929000466695263286399855386052225358704027612048602686534958669923277153413441142324641888950342768353432690695825926377689954149241214408113875782013899535322432373783519386478612840538737354341523147467485609910353103555567537668903688826406265435510777858086442006877727784536072873142491858193085523466950928869319882041019458875855721656543152694612855993723759132952061487221290096115954700890139198985421696737099387240732817290123266219709868241089756308483236331552990323497404137401182800865062618308606114221233998918629310689211652524594123023623636591536100743397668468078929937183230130725212352539206721744628915727191151974746490897503989790603206311070419757476272950791811648774457874968046714268797368804538865222542212004553046612256612608657745057343993151603749897146496103478699261651696365109546350860237052864528533492730831987901403948440608752863496649473874296034818404867948143888187821675957586194244988677867965178015374757754000867644679118386637714870071028095030227901915740774480474331260704172324528741465029725261084176103801054928004913069672421610965459974970210388228774972826146375898058424405939592708509307306183065109742929551640159915930425070517197750437572707409261252178665085191906118562502322803111071633735774152139670447163268279056001245572617824909711114187342438857743167907708143735608212020201745893800237464877470604380729952151746594528501539849143164450871871903706365280019603137679065958387767890966985963508902534159039229765441915290951879034687668296155885571040169195013981896844848230157897548902253661392478059808324490509507656567804319646010716566607408495402693604745736600560973138457907430398382107408220851562617075253182088410684334842407070492386921395307335953045602016132984976029111692642467473053145370283180245310023892125195777581867148551048861061498425994597672299416725822358533053672687233679774762433965920073594436803802898690640778803935121342747412994821198295148127138134148688649792569336920723184079990741727921295378220419514076521852725996603797313628162414673634167974897067129944534573190982321482022406973713074179476783028881136197552136310833203171786699437063125085156968605473547532565225571811749869056940438252244677090825702596720840502840044628816844685411728473351546366271506278870897493344667930572787711779872271067249517946397258913241448437728242020593717015864706638590461666276537100895800735086803922090732650883940349280354857197029694874206047825742510586873275382986328545016466378714346467792194418233811719343953791163191416639875970329859304571867203729685758666283105571194403608596669264047108513490719187853859507038938843535495652002401380332132791772045307716873990264801994666986202232077783952719427624337322482073381548597590134111411263193843941676453255857978204918864916469488913903698981074956156790816135391685532209617287108298510719557661453090375391379261780103754885990589567321055898170068858174064558504617091246294588646433668053592298526362000217234070023608158049884874521331479500651408386390292762224048531395154380590754049925016634974586765502646437256515242512590405241263527216862769788356150173149087571955110161176553175683296038693333897340542528269590863932905019584917583220474604412143673679958693609501305214030486500364392386374422916548669761479538503720916153823606895397609497873449169900172273610427095908784897336080275229248334157597773146502433742242966637620773670872062424653514967915739248339817529300803999858020855021660490808617610913568623794720378016490801622963423755775273211241449807632094585749222140306069029645168718278778882865711968247247579681490849928024255835618282320227128057187468317331015921071393859982163732200120546099382678133137709676950569748553021842962705715532944727217230123456974371333240768138158693145821135252518848481317309535389308953308143413407782740744202648300018980624030704459851910552059698699598631547915589204937408624350408230116271120029828198294986654969698841749257088349718817576351240398520448012391335537047888523135926686062156462648685896810151204932925399363350438601306939985865804214257541631669915217421406870303342131229953890108238141493678072227586029783400931960680148221408351349714992748091445260182445366942830728648897345736853893805045157562037150240737612573708097912502108993348883897020466339523908168049161732619503456440411470894589089902184543457551108929877740049585629722159982766213982473837072269889594536566936087676384821417270275530993933263190926376655308987036992176491983441540993615466637547531335248465669534500638439875417835829287800965525327703157629249230343604371714498726040384627075005905422353939846301133337613366759481775295364672527658269000291406434551983995492942500477359587070832895625766457558805137918630575762710255164919207735491688476746343757030300278792672471817260801326092434799007633626591037557310719703834288208538652809458271462939018819613056099119696114770284481933252529392989708843704964849235473521661249148958576537960259251616948584583032325950597661729228836937261717894157977718009704375523342223402365138050284468758018336614864495329629556554653293133709097878379215744401670865736998631284858738048743268095100621920956479721618347966197188354729770221143336056404459605628895797638423796828205752334918321052461079668768967046042392456558699410929398719025771320745891798894529832564286743460776397352154742912030999425601038879674909895790605724933266537678909278673064525175493255045117167708176092295246273133074520208590522697566344862663548684362897855678419313262832566903547401680971383254833551203174208854599767532710489643813126529347493424816984119779011114890719562747483338267198005877023259502334230049835188173277118580138863792105436542466914580761862860907795312276336888715602535529659085541519856051661804307897743664485564740680858349003008834349814703029065435294737466418183236558838028059467561019154618999931166966803622253903735980852376922061395626466621995394809027669859398505975239878291752890030175297456294897582339052455805198359014412960736907216340654624428109625209268916869996135898973939056362844596033032168829809863125332640123431149314634459995394776290548888356925786366335897154141747691139896599239294127862863168217480569336802238683534066633014343276944326876087271792140192279974397710549027201907296443788866308991378602329123774041174215428962824534180617915059676885485707895873784840671330035109946659719348414359010402076443881769727422568515717053309871397545797885048971151629260100261017349357127799610617098818547806067130242811541850949258699993491418269781429956183743774213030985621479637948878840891909134652656385697120427259382230263116489886598166184943729638419950799915370635434492590347622071131180340781291186068600125841393342594273998447889636847592734393957105787410834414300789384855750207386533535399550244143869360142442091634753256145236266211720642778749973827373213883305034452974992429756913562614333610556962373044948227730815643598321903518697752702900258603405987633449982413785640323833829225679249614549693286526380961036484105919598362020228631604109009964604895562299384421746815363158426085895601017587010378456257712270721830370184837255343734265202761859900190881727470273392945327599544578831522877649028760610924211136539172389118368770784709352951163486170976000736738099500947661226446204116676843405310799288764668267356903103206486460965823703548493412770813038799526133171190600404028223273563723012516081317862230760054350327715848178743549856977334749342855487656837739425546584117079148816043237344691223687588345833137788545740450271326734712690833059861897690229342918488803682113269488191140032069582171051777249739222276829611070133187876817561518435011193460307102290048065519678164439483913082243589921976300707500121925944213466374200946051281008084950517858566626193672517580513088823334016504918605721528191875041852176542979056685204096395448646187004552433197091471819531086462375167255273995305314684798805510363606224872043188328303568945228604316100685027035808688338653292214861797152505481002529712150107463565844040748255071486828031872441879330022456470730255486740018568642549501659552587976454339652886590452217254898855505090091389818676331016826049077938199841181117221857064966462316929126409195808944076310929555780136163451843880020871679123532679820419453792957842444010981205990526680957667269339291431454040831242292473025462626188430102056549366831595346380878146381591294768135493028817739672204313445439651446340317448337166080404028806269111745408783634892796788116134688198989394774172205774994784116775250267793205618657962250736997589077502521338160810642999485430306752392593882320228612456439929065760810479631517941553673677327129542108396042126336313769637092347695009661167900377393041027703312862337274868909375088679984724698800238588926054781323635112158911136877851315852181480832290414555286970531263575979150993597360702453245206140724337598596100807383676622366092264421619427078744664308814263533809666203922328761132451130464260083728350373588470436132248277464973496112085447798276188261075944315063431624211313564986769455457122476124817838037513768218243146391528274303820463490617996435506022502130078483455991512509765998433435834225196499157872611895536473662006531297762576326113102663028517451211273818237532489414259654635048997940172609144890633151570298927331912941256985494078746271603337114884660983747789208254300368242576097914056943018177926109902172055934447098581334310011223294709219589351375753936145942167914067015400849819111209820059926846614393708488946698576868136198456092659136891941963905428469250277127531330252168348291753621853445244454778513561095387144068872343750860689822067211333465243859777615584508053460291509842382302156189385301313490738550257357422050677327333486440786985838927285001709197938318800076564553758933668004470231515170396445869397116050835976092063421187862974361148466041518927018131266786022199558989258835389923370471162056490303119654517094119386071434260737263506630703756378984554038602012461143301494211565179018784919972296977119304690399543697679130862772483591919937842031697223481155906627526317542466918624560922877333888190887255975705278192100250738461164523697996875894186236816452355249148852028819794267760987521740828162140241491558885107302487315350999633735333402445728947244971307914662608075993140711203504263539787417994566522184487445694047549196483401046944009930069410615640274884915916615053272792319043339273208840051470626428622008437666898898929318669053325314032771580274994350246483958899998891867081704466006543736989026774387425157791291259241955694672922282010373818794811793218377471825978251030010938101624439993952955704520332342581974204841900406788600185103772570995403220444292793720015719235773733668510699729706136801058415724483867228306364510787581709429744785084960392006607566106113310786619564946795434065132788265234867394950699729131472351823450406101089348620398402157434639471748015157310737573383731083038675357149702304064108825564110068366254894837577528630322458575227635774938413659545276213551883653378876972287428607109670669829814329731944634723634232034395745238526711299337507173698350393371195819219527514390639471595172468705885774826441173287478025440599168079760158313507939431255663641006099694715164858090842102611240491834646975069142282476810882451588299423642725861983517800888926249914553246122117352689889896273495092154134037149471975896428825641412885885466124803966458496527453343076623964211879410788762294161239915121567403101956503106943099121157340907258144721117634036578661913279466142411304784276133823324458960331350644722240829603375318026427755067255182888228265566487529724260884567970131114312158313445778985355708468267013093950378188501029663161371319003210303755202149318787081212184083281662887402015673270733575645207116879056820329535438669755409743633581370080803451354822852993129760391414188760214772827548555378332101636438775593795883553501225655775911061571486636412349976252871199888441233145649256983049315481648232222883514894393436025204794441896665206739398196480904541221689394495689060326846861083988737544297561317567933895946114314287093251837876293618182657832915404490934904655397440208089361673298440373972934648842858553541267950473772878187411372480832980361534487512454550032976114651685137467991626791189758327490843722356085292950660602772741691155358853953189400807672440787553411228005168876150469802431287227030392967554403432795373082287764603266667625222690697181998031080641932983446989056360665969443157619848298668415225457790386938536293965594761608722937582017714464880796014323990111385548168182089244113717585318265458953688241688636029091735981551763551024928312449944162625082347054787948686597943717842546758878147564556391723841937545519562789112153977780375479898538960983080501378174369087125860683909134361231988580922562603608304481004644098520660717671434200625150281878827835168571569562542073478094516532295190826638030387957175032810079738087406764867924234739185744269311555307601419944025641529008083023241966622018913588362315763009271818306111207357928296307192113602617079938903222482524948747649324252323447451343615347238986335570726591490924586380899859585407101269492415849151688606477627331255343329923939148421490930298716340420848016528612123015730366332640785751922568814112799654606586283753592703660951802177376414516876231327361578377221896287891998424691696900617060133081218847062885331024308443367093688576842788041740152979253260137751336507272875662118690524994994331541635401129609000453860332971533494422837044061604248326850354729183230194570954988337936380214638199512375145620378680206686328412363081074396539277844129156643321642277719058797038104394877208068104560307942506253051505473725791027845897592699656538448180516128210547953201198137481657543006659120411272708848412151733857229565825497979868978469151902815224084468730503025714438266789755770560938624005404395270511763135757004146690460455922375326425345537119501692470408711073891694313034919357697401678350167314673584618637319194506507075161561346229980356455699493395467705438569269720803606720454813865890378382926746839294630942600682673823781936081371685712277378725232193789212093564849336754392692312734869451114397570681366961670276752274679037404904062097064187988155597170307081393535799203414072036594084925176687471522868394853612418401838388338643259992344090169145104472202183190067460740982896769565564114532997057588628254411596773308191666894317469882796859937078636239310539026633551983025966986051270735829688947700619416104185041993179634575070028384288334646566139589937587207597034157103359349181679472600471647362359823059419502465564394168009893993751180047836323324482876307753852435226060246720634502307820658147719956303621439977048542633567268028308826247957676011980799917721333181654046350131693239005902378914766198612632608596138540548374582189433923134243917899134096160858512473712871859069448828175407866650175727611612996036200247524306355441302736795961473366844722943114938209777731222143493187905924799467586686346668420167441509347311961541606858880762946334133190120090163152429997637503212290108623544691143002279992288465265931033247756680420322596049827072779983800336119911721928966928043756656657419482386631955792292763993091305423106205647062515941782166431084134644229769745813210722396307036426635687893816730105286832917368673347666068085356945597546580033231757144421832976780748163107346003345738841260382148757449367735673559781877368557651737185710617439920752692530448558825630026785690726080320768285694821974710935446106343161280406005811319752619808762374632140142691856528595302819596391366435000849159154552606048459564715002347961158507624896070748719448838070266524641707083627583274579688627319099129842125862574118182160937663030862547018047570991471644635665517028172309937658156385999031363982205568794875582465216740282342393300318863618428562187919745594839341527341609726562545436727563900831359618157820829739009698569837355039034427778601756713203690596736220291508304944333921162626811154918362168105758820449476105439840476170020650362820255203777680704160868663398917644607742277175649675852983499445680713889438658243835681669418031618804503827451557000325696124833736686258849456552715319346527584067887210350177329575665353717296698918147076972147395661206893141764245203247590517628003630739209588328186219775505479661951990299573966064396450017806675673454636677429501475812059522932244319374782944955158684268001005889970304995068272504910088409271215121417471635643087709303317369981008257116057967426169045018595386453818960135857851355152876081855855118259136605919269529280996411209597844259902149332067350929240452453256983268820984647371285283598220839449280243153304095244602330044592808097344396202185603706709661354109479046116322095977157538661570088599772273354549514368464631793912502019621677544056027256256359179769010124695259072547551732049409722296425150778201150058374699422231371821137374849848554025580506345067466078723389933240293831994677602604327974467744584301622513962309583096991339283751562233524852852327883660460082425569334704290725641266430752540795884900262509583849725457230393521280183860116262235664453665267200914850823504326506700271005033453688954520494841999653739422782851142630684627167987126755213025375586417701306137567687670089540555793243011952695021162300393529257193582735789451754082342774010399235895360974080053755616656062178346555049631509516381759983832847157623405140944786213681965052548528467882739611820938016451225311233701075710585347156228311605452401577428215776975032744882235114301861035312931003624557258286874952465086020880927854829927068400989846189585340028882203149695070780009414593152317101467323728359767221504013751685836838820856724189972554545445919257812474081813372528341454535578395570877966738422900131114946588649434486361205944507973831145717707939520775564655717597788520810255280973162551949110841631572117691757360086270396627737676885636318641551284678044178514546144938107544582848341538246586651552008598987273859145158830263448317875152959066970368684986171357747344051983786294046943574811075458710814353252621241936951261132824897012511910888810238963796690439494455787498317951558552241288390259003884338543075730175766835401093481010786448907171397671532085220906525105274758674273122704719334068657247379010891332739696577506603225670931239110039705159363102411680081915953803578708748764740121035241163563713171752148407086116411145950791804544358877867254993791921850233948375103187479677817951983437467566593841030381776922106223561877574450288011883814817085613679850969857871335064577917023120398313697640274053013105977915602969931349413966731000687638406765198817072874941927568687176672224265438249546087138370570445106545540377501560538563311687217319329342868261672532459408360269590535741101126429644938019463137392064148898392022801953820176141361726968432278414572817277538655030269267185332428332356877492202460953531115781175445946084105123796923037579394022901301417281065485838376680227355132743279621120497384929078920114781875927446254047558408542111339227937393127604377321930298391351576437163673812825765367810282287971215763775614486854278801046769718793659151687832535097439938598923174504483172733868300648986724800959532844555470897160060357131926019775738316484709978606490246802554357137421821441404193348892552092630792636081970859723011295816402188507009475148666437863733558396582910047207430292927095019057782642645810824458800884334038485037610912542354746504982517853254481746549914418673608875012398036450883080215403848293140377952547930070331538281486079798541167635232778838142562427703368415892126953023612740093503010130153445961562933282848970313790745153987673533354306942003638949700030533483087888872443083757600262456689456714218703317045338922661172383935919239904272906722943025495288418275116848629021244684761396294705871392215017231683568924899034255226704268104955340404816783557149648320308716103254145059064774490062419228122454283881169854941383262330880586375515269506185318787889305346116105663462491555336170387303211205265045552662161332490597400269901601278282494444739074999503192530835380735696444048238164108895412458201513049572024754687620421187933367634838172773271502314880963070981682750355480651369982302647341029651712844582953856972931220555834845341740578561885939520105725623518130626937521203904244051133753066260477140048454607447065067699676956692873283678699752376615814177965709755284920572055334781755585532599505965079687220808838522980185626254721785378073842831276795720123601482350448720063784108570909045936395470320063738691939421966025334051241175274753728953099793783851537088253685854368952054605918437708889343516870066140438696099683238301040884289443923775206596137974182321411037378677912467038003699717241719687541700405175476007962543055138124576295215931319419484183440775737909506179083879391826420147226516350941354254299423537838286664415570820025011051358742264599697295858566732508652005567868173031199535852464482142137706969494675525227658140549810384683106017357094298882786751277386418333834477261818662351145926689742272298609165369391661517199479865396963052902002736575851658731079442679044895493654569209477811619247657224989661184761149111447743166444020020081558591909586662452551542659426499626023914024455487561766593598526364324738342962082386999348835111003882525042793784851124166715997733585339082969088823590452299490574809558009130390745638879527942471514760106855773110212179180378172028127053379330187561726804581065022869502702004394618355805822958248160905298590189445226252669873685665282287857910818931139911187600560775770215985932728240775287349652178299624501404047900353286376236451308085153642354394775172204612739532152067157021911345421940477619635400203022468281365149249314432265723571246172664008779631743777706706052957336731869970079467954232498287308351872502178047500077730946925637776896694045394708810872212487633122657569366849350925902821820556515038429810051428758998138326310849806772361454979648952773174527522938960210823670149269129342090348537422641333980078894111785349922973035216362196571727329127047411161413574570082114035909161693633396493880450362197728229914527934418557794304547148197077772171225448181710976371580545554141632494808167366862727994484776764917886684679220622020758571299012291918671885087390141416229712797566752821192535124851946201657785492560911176394789523817874108626258231808985021076270885851170261468223930889080991039786026203288496052172870529506506882085013948402756802043521642541393209749348169647432999349554478511754856412432906087655230693280832855044143349729838716425204596102288330683495092585478233588506962847195595455672603002543035193609766904711727139870608042554162559119983492339005037661210348720101117990536952707896504902018239670942481248555607885198407852158227227453849276352403558363076346037241297634972350861388100683325999647178805027158942458822049618456852585657561501514164003801956097616478001199931125617123955410061432828056782348453699329249484152346543163616629913975851374498807498193066533131823017883197306686147895941469823383942577817418302287335052255474519384840900900029697933596310498958685762672594536478912890935984215936822475755085041550116782348064859184531682854846452130354110213039087917148115261004867013521818220098452898116664188052227185848647144004502439123511951873747628981046072331845077289564236924291046701342475014387185904284821653743603395972250106861981720815615904568256937258281562399868983339398445187717567932403513111051730302659747321391961985498463630542057781902854731639320932294125586707244099075111839001743341028615311187886775861309158605482258784560898150710359635340142863849100392138171760325170192208659841025038336031678668979259493313715263281312472208742026556274429898312779907780500011861575556584725903116117732001175447171769082883657741821015385909108318196758617624362084810637915048517446682973977462126052519209212194617675943079755805330530838691202109024479017049371648591549384959665955706949372881754025881206522326465152042146634735914536353795457566160756220817070559804884139267191406564353621321718189287102289678230299020355265574383375799917550499324967315844290917617735661807561652617371196011416600362741034219546862337578172417941552868861115763337340528087936529532594227058765487958699475050718845388201222593730012648956177170000751280651595609151358912486769926798830910401207258467393775585021374369664844335361611759474058424164519051723311388700856605277673459231285102587951980324526892895158382137350605633379995618307808077864041812312796473725273780730114075414697465593385299757109874187717948462116216112284090684900071297469433368014639957180676219210123810594786564459692638851465385498075612041637055818465416821451957863037286608960429040210272377094078155869622416650281289285172928455002133103698648238599647373367176574139365967665603660382576349214025620090758329401240525223299151071116732029949220981519966273230745324131285262803245637292790855128159184504327341910694395633107296772170647511582190297163599121896708392744133927548075485725732964007516767909493713904838936023660835722687870126290698002291059941397924343080515235973015245680921458822094040867105025689902694803480348941833437077843998691818502052550268539589370740572647055290730216582299646323764176057340321944190726166260959296833228247526303438443899976348723591097373915644905564641787277961160576540650776053608004084451855209882842052623684520584371899562416571088806005546243090354236409325965916691197829412772706427652420075104898281928569211036248231297379221265519464188812806261536406377291284612017754938927098913870729152943883882505262107114552087346979210868008085106719373581713466944365318148264506521340922672808011021268085478308989350244282464467140810505036661846206479695061866791957358290722805264489985790288221464632151594130752587548563322784745236631994072325351095027998743391686357870916898010518310642476292948491814860469888010073055773326228153080460769018543117052263649036707696349621963924797574041174193485968038578722963827551196018128974773159617625469874325706999975365274979862951947419767061084955584313111019749320852210690123696368170469684482361667343052596323800542139111948398229692521750571970329654422490762891196870550178026685232082685088225048302461906364746483660756590789358581064984459698356398532526267990677691312639459905015059676893846363053067677968703029708839927727593880637127307872309202199788797340060213831083563054420259186992595855521309785082055659692466673933200706467073382482529478793861768863043192264097839352771849898928210980421402642899500653467915399383821676639310750449788127144394962174003126924693149682562186098158202799444247580104957025822328592301333902212592008145366109297937074203406776173665023060246539231884874027238901552690234147305800615743671831519335284082681740450704660078087171218592022999733012207542164256881587698021108872147277936363880205120583432940093177419758406480394357726974497449061147213141251281171049543978662177984680103029394128700296093737169065423351940111719432676317933183616510912791203356344796957942640469989702568341628732749880585690011819250344530605698939989388081157439584240809136162655030558291405377607567571823314522132269794471263976651991282016531585271373263343538308380636060035396893202022712617972610973568051982778647186345706339436609352889693885204999406552549101001936345617791701058495079596895730391144400364883843336164209574884187585840685404264544490799383854785829289564443107562221731499510355027676582637728964900106044845693976840710727960742132711724410576220998144729110035919274447655856731425920666082007292094483345591086741221700408006729234395319258068404464636567341653074936592638251080741052733762344685230425014394275642888862979997755522411104244152726538160355761366027085704862334957363693366607968352092964164865296098639785280600633130784183968146284388105528208928195952248458421511544588625436450475651541971573557740918677239399375732247194401500843292797668622427566455334972912744308235090184067813234548641481767068044530059179381803409999582342014977203264137841774688701740782585552988662737683303672235431051861990254137322147338541306752084090403707324752129650264621619599810309642750717555720602581528517043350253006768890865050134947053895352009829987089172039786708125945325696510023917618200073982530910349645089259060611065920140482232489074478039730449980017689895849123029373129543537751801527200125872035807841089087408308941242922078084753584297991980232856512990990197390008987324129057711565941936140525743577000197145368011929451393198420918483110218283190141047540776389808624052570771878694261095594128832732801214038837112392919444706901939987395879287122146364110411573468878421131084099500469772067164204708368417685798894368947339016045812501344307628903143511848565988415890447900637132957957172934859671682154092893369096128415020552354023991462158093080420883799388977540931356161520044799642226963749562018047688044779421677946698363538978640079360135598541309589815936523963027423650652018852074962806583135639007920616931086501962688830624375241427322828402707554617098916968246458244304899973933279876010623907067489822016494910289820775677964883563535696139379290016123170780905244890416768817454074012724509511885148863968143721101833498042048073337528590292374879700735957610782695515376058077520544070902597544266102466846582002389020159732823074525347231280048045344393265956344790660313335947280769921940366409230858786569548752574287453914013430414055561718019837902643181617182682191141773382418958161354927712082002840340444087593818943514641171133875763398674549435156499060350913531497537700016726653190918587943253403989129427573418328833876474960224542344880337182924717143258702045370740090452414433615197780507904818620583003325837871025921347241525226518426418417507870027732293492232612760656481132488919341220855815568774634271134069052715456221549810764869333571598753228416346711850492177723109335546217636865194616163223964121205802782535861596584646548890836465376570405857597663836513949877251407727656052792719413568182427539270954097117479187592535157581660240401162350095000022838538481422680579259693794948734171134898984345007880891843588446951517902318496310486980541418199745385138134628785870111389019038058697450005422358256682376510970407074736479198416034310388114513746862091498084627954040598758314751406450544128936448174142711090506518272235086667803771122414968988968254603238325588477788311099376299198436987548480601405475551535462753662626647626782861461351061693337365979600847489987530431595399074597233835119532731202065026602672620723257467053642279285349332423572109150229163188582804713083025165093362510046633047836011007038626699578456236951274426641134924875207524482849975518510538033520706705969765497324737082496904051760974069887114973659246536008143230262611234811374619022880285502607270386302228609985964470165035930901564445327376232412789589494419414729750996237579351428410857461892807354636476911867014664525967720331632178419797378226329811114302825716693747445450225120516596247017793243274332630510294717101322710316181851548589310977088024792680027181272446964496364749357392769489214052782530654447274988933736886623629289707471931895339125726897831576939502106077272313301483011254217059842397793311932110729171329908907224187050031734246389788596444312804904149608607525260827447422473163569043877256926942245472188468151860112107132231518179451087784498148585603319567661079922733779006143961005617293170863694452009230018023333989522493783578991790405667263438283799927612568283963492213795343715625731801792097570439495699806550627370332490990112571752237435515060485736098119957268331978056104881200683225475156040321923175226157810171719921291954955318933198368173068836552722152100489749720814285321897492361062268694526525018211105370329342216957650036568230147415694291732342713485573565400537979836193946889876235043474908144995160794357378169601126856427243269227522697885111957980226918514191114523202703884223305007820265217569007978175355949042067244968514085622137812646361945464736672849129129175784456622250354137459557642394430893717700287391957828324944577124329227218541106847781088736933361425224853303187952914581130708052658982688015215400563028133846120677422293014228482652629482256932587972484190209706625748781789406068145059278006943524537046233841271588301202366879808284566213201116039278659622716274273313515523674121103931750439927112875289350604431658843880545777187954371833324282519139093728912995774680047156612648121547200937990888048528816737581389436010787545930538497521709940602561973370832894731108328123260046525963505984426039771349285699449506994811901358162907037166292165986628750033165053040506271087021143830022685232994133059209676838764742536203836787969619991802984467112628649925386300188846455233926953111875601384854761670555380645010836175056639746525813488008233621464169699645694752456596059136576631841310530482337118697174183755441182150226708674808179459632532355213048083907883453860479361994380338883384252374995178517212012387967474320373606243001269327385822713978868911664218790075667591120154532434605281274327933761650618594454441266829389625604608167617825915761454480558495178516678772380894659834690408184616320945947477235767012593954957471171728328669353200815917557306033479391619488110775105441497317201693500088711737248424748165790082368100746026845440602176251754596999536245231471457241922282399263774974933650490491458401012550324263041656553963090534476775886115092656033765112517003825644483628157509918818187338857188995230292929113130411854707068327891991817734368683049239171887609304370177667056164515555991050939121837142134418366682123478470545198798269483930398007483644085345584345388287596544942220711845990390089429435939154341535175844419486388859494835212112092273957418404480611817750876616201816467133648577498853526246827073492143603373328084395070494228511685312140291630974678460749107656775316498456615305680475189694001340008839515389703554342720095898948200406638312350287165628273532429416272779670269327216204530314977900991140355052835927330193975563960384547189664649610708021198296333981569002950650296367945422041574455756142692744825194013214671550610861382124248919149997371603047241418394810332246964592684387353568267703066172980994306611647303127788235833457644036119735809889855300798184417809312696651614620763293311650536382658488686683057701947862018644782178570084162216631446088262886066863711148150306357896894599082980020254015371713083996621523587192319127131236107959471718032508975561496133470487821696294014956951847774938365646811246921209897502539657512020230785728491521801471535109841942722607198882332415204307675130246312654185436344114705244859632744657878317003547721328224844795688209528260130833197500947140531394086856141120609534053339601996418443181033957020632029436777433582834301162695262072537313571907826147699856069370163535210334377574190360695522829176004269726692338420529298091635235528455062131842551463284563913210810990539508926765019138772798055316806318039955125659348854036460269871681449274854593082962205335154762586808638255302599535131570842615546154674677419582675859734746804229361713549977538973445619627147537348918203491934339158292413101397981589371988140935810943370257093812501032084690397528063871192167216355290727946923433474239015042098375663714309016849216500271016405415464064864726022084834637019699995731701819991145606496946765517339809112282345671754506417968205831729250537764288296051229223204822544742534858542033300206636209327642352694498428873910732995131085241386304231244885011245396177616814223251815601803263956454114057470026038766490002171821017113418600353439941816708448809932214347500063336895840185405281155475461048836267648281560925908851744242875374338622620278676221147970040247455963256045268243830482280119296452331581058701424130623018775218022815946143892424905467388342227079760684925087323416143150461095155579279406448131057373328007818378130515889746803864175164814607534598418714135379227856307783702460011859266710089293238434280211928346749487535328268330718655067785602752633676603223731319599325835976011050241480815906872211303520987106545483263327009922196290328798559284566809716526753593960104905907864008323360853901914269085723052273987385776956834364448900281245346336092071159424149812974903630182725209049439898015124005294989451117669359053679789771803393793993985906742425387054617706087860302882167529454427606622033656439635860066955848719570145354274095494709252615960879362549314453544349356732664699175208109797060506238271330591524584672366309272186349334362240662515158195085422537302738127896790803029792092097109142680889004809810872085102963431613910844746870066181905354448430371027438257138158675266157430545290319294999003716486073083039337570112098907742730578881654371074709266833619394534500956464862106457344332300176299704107803903541781565684195628497280216605297254915413028596268182968917864998543599408052947482568726447086606030116282340448103148514812107861546785798639217753641268244497305564801635538144777033947238199628263789846682962817265495474079710669137150540603762917387909160612764442529433570931269659468138076360363828829839732380252134734962043081940075609050611911152273253832492887857149121571967462977859584516962915872657129859141120509468700269036426024956705501004115680160574792373294245054354215143558863455586616328416331123703280417388518422571968358401462280691767411956221296420140373022204265841605198760172972115647950623120143689743237421081197239433820235858291167343414683138392509718394039220442146951932779069804840456108508506972010715366196286079557238084726321071794684156396464821377728440869212609779533017319552869999138185513648539799751764609659054665284505975295572136380747065530101585939691460104727634044004777034474392273653109681196659956191730281987424320640174782668884627982232723129302565703902584434630868639888635657058021187935215557919929400012385505791383104864537195379048978029442129413979718645826572485331629225060774081198444876449903141581329444134929608314405286738583353686622360118596799483418928302929187811080632983515916166280184127270540469682072622132444021127677461580814454929984857305051017099924989569666153971547179852778458447078252426208393435913782868450877282688839097427981865641055818164220017014140103326842285332097812858969063563163860246142970553990634929266240588537183576915760346884304278556092773705915004404506732524469745006296707472750791105654929840225380703154943809730830996739050391678651149268421502590433148842567670740758577021587256742667530822082162870073302435797882354023531282668274860998800308703276814327984218596145230293967256784880054246623073480733339549367426860091403731354867717339829516985434865743830823409474023001113266197620677471854538487261099071638302143648751179877660303142987595462780037462177481295848904606992840343432840242011189557951689473285485550409043517052847608811089817105151668137446077343868807384744619723417418445934579175011875704217631131878497009447940448850422934534123274303105479300374141491505344855117899963114016918442208575609533486602949364005996681150694185371753467687006385300996129703725551152535917009843721639564299912370668546020808918078873151403585949290225235478867053308921132843617851213944842604128872442947530699576405761442709966898946571806248908969900227673538751362056644887464019282783722750859116635468413485634030039456368398932441479205655612051526769747691722492434295746559874319195571167521180228457823489126091879639874944945127154721917810477864057467402505355497037634415744234663553868363370508769016327574810009737556809456721542429833644257296222224768030623250292782343080267322782765826969505628309386232076406447345780757390301134492763835892963152139833042973945239362294664781311089666583315929564271716653926018648124903776713036492082346326056477565303811166386352314841469614414243409981149701994762282266587822620975670286108766845418450953619411026173384413164307669410727990942307524171532900567958852655708490447209732248658308137002333387620569006317478003655439558028676306763375164436406390907573280488249851334382751749592662272218005067338130642914329952375669069683942476931229505781119949133437691105420168781436342872295944368455135337156849898540652065801662809975976879000556782171512630715770320408443872186831072635912722155606962492240609760272577462938725340496166180781852290093309430837723209843592166051336969091306409839304724887677302584854366670245459551062509742921632405352347655027862893449980966121917042257071355079951209553518955517687784187985214555094646813424876112404439937098579341871470811189118042473862093461973314296377443914220032324273043065557650884166672121782642051003653251970115463827656499451655678151535036232086134613953658168844579036536132687332380339437174460102945441178418598150447313287121878789160713396778906746879053626579887974877728460433509624880678112552527440274012383403217641514032739587967978579804988806983358238806680892977197847857562382092094204254105672439052863323912687570554269152828400001341599417485955192758488816691189121336409237213545582371720142171554411375682366179015007098708673177232865997957116639717443975277839976700561776879049591635316108986169088418478337903580351904818006644962229142828312583297744965609958557240575709297295507760355332387256388197467158142186290676551237528030299921526621198888257449164280374438149771655656281896662038819114656441919161618529424849993493821170968549171247309947568534480473867696200750599337383481547841638777720028346711187294575006041206747062753166481802991042157514580861126662545995499491102939837447682384427689797730851799846385307844921370525443866529668522685126021230858580211192327463285790761814798191692444480869341071086313902936449302886459480612869045137103619134348679975576179726254181315703608682339738120925519929997162496608530214935991053783819739488989462495210205172500084035105934411042506894312854499221633261357845768868602226834878801874469915260902972310439660986245006282272335781932486356514570254308027530482298583801737587469965953106915487144890398944874651633586669939752025886815746197772002592349598958519343637863871865498888481360097844736350827868507013557730070687626801353741107633362272453049689787849505689508892134612318160127406249416730169750490805753421576793407768953989748173669945849986357876423335110384191054529103075583663239167830996649017919269085858439872581113281554087817791255864184969295439805966810775634498139274394878883443208455887561307371895198010818665177417628982367943088716247812267176289157580453723393477150563873232607619653379401899106056602530746111728952724626520085624608461128531663604932854666588225702875116196342157270479908744392224631320015573380696471134628593588392868307124258046825768680491279383663408354937273011190167526058545443147212350302696975848972099237096230287540954961547833111748935457213275458512525021060704780714299725944619059287429097647841395210660535823157865873786326430890207999688338306081261182191668899912271134949517450754107033445782678799974337588773387772087099546637644153452346511684476168853791903103618457049545744953655153021175535103083241364663800256899203229790208197868759492743626000360075319667905151100680408938302735221314888631552273418431978315906750299403486999865204272988400107640930372800822028032839475079440283645896713449779040839835078895525669810093183024647635961555523466287145489600383584735593819492994968044605142359288371595166967368136073959615919863429705779176630984713999695796539091565611799711010888845839029289004292231822219841170180632888512509141239919789051901778957542254470870272049135810390632678546483798828024925510659594260122238993303087573117750455869428200473842157908798806471914689012067815899320992206850753417212719638416816959684353929427759574274448061514751000447298649395932406502917787307942576025475970351134766626393282032637571488906620043177791544977528234032275238201829094064604029531729064869013861981482820650606335131685984021933896135759995295000026091910880049909351028878760196247759586862382155711268411961739590935681675465376543279264555734824587793923510842646294988688633669375002065447708952075838482734587228205353602605742132620955051094010288473574787643716356783592348850723356367307721298418316934816573318759373141002935418090993718616339874026384062783001611814729773407897686716057414383801912223668391198497043675194232747112541903552799349181304892569776408750369746351107970909566506000445218515230975086970956126679605315656274533926117408781883295018809950271248308892649826575698689752130453790588062304331488748351907887817579827119385068105151635319887231034484945150670973836549296438892532733800892739424501057524461675057618632311793369420160819942127828664243194535588495861369498067166708929974750327444400349335962982787189676733223374572273383748088284526296021484062678890920697104471805392535073539173606599388908448079013591841935625876211933850591965799635964663544052542537172846503730835650266333831750117622498630600437774362361710225296118394590180398246566311680103048010905363365789729300011703286526676771445461880293492458115676612853625128008314177589794005733745171600912892201300739019411062933808364338099009565135727808880707665751241779668517957056672495702011103202054441361615484529737382299618076705768571503523337110198864859735901549829100581532193190035472072411144196954831516722637896255265054009927223182253013187694909173689883204146999945820845459031710944682690899557499997255412931872961294412767958536947343096132628260909158503103402758720382533883794774704920707227276904668767727126944111477918977800793249195823602373884877042309366556176232051720660650074990920373637521842098673011757382900759881154939088941198272650613714064365926501550931124709718380169084228935385694681933829935968322604758119288278710781861358905876354770055988503380458724262549404835466267221830573061151631390598721750701558205876690812849219888792281302666468532855869959447681428652546821823262689679130539314787065236809685716683338795979580327827195295741284555703071197316276005502705890128093999088102397980734041210288437309624415878829580298772263874975424328577683506122656694983464473200530838154163328897987413629309437753178681765709786456315960784340694242720406014676340195016440802173860737435261145482696932824976746069178795764382268793121069515672018170473697972782429251467587932578325771707151720649055593072350115235806399752574971850353459250765281195357732183297836821995754782113298697815357501737609582761516359821000394694460843586860560330432559980188771713979186576102166027437595109806686515358478712999995439292108514863400645132825325290752638702107742392747821127688379718768399556926743547090003715704181282882275188154427194923207844502197575204547068575610246247665053225789032861017133321877172267981371253103057467336374591336715469288092907222126110156513228468893455142046678277596413158803386346797236502649356886787813135813225471765332506743163535536927406686400124832017020378923842283234176082098873165145357622748599436017695634387194277820126326773499209031861577743561823476815319589130029049910468664470041215470551603163255171252939830381530878760616771614871438657239484162809921808047314649375984944750833185894632658672691170400667699669628412143037508238833743180561249678326567574956400485594856913506612279737198472075619530084229698601565973209761940405478871232848265648651693090416602783368247714796894483676747026974562543756549822998149672725044111176782786170973547756984506928033884342380571436441964799891808040971199323945933865538880104624414081858034415002736729472385167326674546056609314269987429878960835316857979766148659734805312068383379917714224752057126373679953985182771374994551133057135548607590597222243709954664819327203341200131128742945196698872659164426876961152736514615300450839195851654279648798639321937713002534142565165298797377614070352389020182436648213998145917082448632385589461995573764056771353838502601306886975389586414847911894020350395797752313969629175799470811139064498304932358574965893216431422374770326678114325567096920876626826254920040420227872853116485922691035709683944740489745263361160414432902938911001406396882039646349780585790224616900793484291676418981272300171662745291436777591129580189626858820918715343026109043000593281303759265926944829084581007708396151009702010844360071744804518711817059224932665372144432188338328591348328596544439947642905769191746754030655650997676376434449084969222245570399442229310570863905938782802728899818133502187996018135827865008934391021665672989466086251249119940723774506684192823383748125434217376979853178216211205156879178176450636129591814922210597387589478787901567702319723096675623981302990656096286060894059303992564689570824997544321872807713868985510215901262558612430172817273150375789294257880069235646983499111206036281963585963848675524097667704008927488859662078454042262219495247588522315657541560064883056781408222207018696336393163312750561852546919285310772838671592164955080965373676094284579577479958785536173401190076606277704494503164973148649432618754011029158184975457504199160873421313129247697110042589995912561036920914653624381530443673359704695534265984329233615918380015683470871863754260821104088770585336685343912474615880758054005403903046938788517493197466020364004089672500076253231039878441344160156563820111309698484253949670043507476223071686039699695532174064264325509086242805800030445370356792391548042242977009664764697173914799604077911114263850000015540528992690777765694000539930749489867887420516492561608760091506999998182874943388454772520110161302998598322577303666052963264130669935302657712027021185540532411710353665328604117918315677599827377515811522154982436767939718589862076673568932166874622616523195870084636684072077837910843014816944845609610683708796697553133914800491146259331651779507476529209077966797178792495121403310156540135082485159382200914245948320288099501488141070772280982073103652009612231286267726557694668599956691110158032224329814660204287108884095821137560887049191951043459362285913618174687918860421301293389873879959228466286269234013748460444330209614646874451103040858464640072820284378743412145671489285271412013663505226562716560879775166675486282370009894801275135435581776986669415740041196991431642717596643432462668106377752053423582571757932835818789690649638398780683766520376846076470535082776335672671238048298038394638833060171663435259422840951618366809660182185075198910664310581717841110381574080368738059862142743321852069389254392773841623977124405749576977977833821870834779399042806732421658476960671111331427641064873799902324109835867615526642251838470207032873371289706664104955832142659480322370795465233831369570485843409467991035843467674650704865973819593194817229556133859282619424055812290704067527950647608265541230756639587004829009290107484766077602329143660183640131987541144817841560036447378065660723153431942063853893241552875923191953610782039175137171840963189796727331613674705665984213488906082825599554758041519968492317521294813951571660101089008516843716039457357702534214917434111828560477535416906656174158669524171838245489407589942471039201363630554814853260257822094927073985534327997715186781445053194796877981050469244611750731112124042676219085530837728221475573825415395176443854884141967726019727844932989506370074574973814032811344725526318074268616173056370397199505440363622792685697341446135639986511718166101183135062869235130763451874689225921540979994578828584721907439833983928639217064240119977636041584915454418938461606150714384777371021847553585108510127799260288952381073463647815081907793552091238170520147211098123178137556382549540474306777298877525462691379323240689396837680917611140549312360674074325100718797074638036871014855780127768269032631796866462582279297054918332008940791198240284334238309292738137775210605725563835360360324484576137384631391174339131219959372241851799069366736417131782701609155790443889758907908925269260424027509429062261080923686703662441399968990050606275225425629546882233231382878957615777723015666969512313784258343634699633030786864126326571462359882724784434751662982130005507924596901340359757108037863428072683072116957611455635578327553701030539496847265976434723196690555844284833667228000847152687234713451608340843170591612393877337961797691159152465958596592806797285965320603133988549256667195959129789881403473736232731361306674664385058194169209550537918319732825287454947089688621368886145475088020806878491569692211915557164977737511068688146538002422083523747597191669031606072936550966734426992877442694135858700053608107385129067226391400311889650988397484656745817274553258320893395683409775787851660663897178772864323651124153608797314988003040168693886031225323270227938514445713341577127996294217674710120741545129432602872900604069244945490850143064715851813003980785640432762939008638473142297857661909364751372049372213919452052921357872277947936656471655813633583722187729182858935638265897489671443669374933409848803641646968179040997336876516271123595325830361240721309889501168703795806533461543262806682729704366665581403017435661371929945938663636747709433251191641989059457610624304278837815539735697982647916173327794770878053115111741274657570572671992703491045533466221199739207431571754379150385948928480105099894864959691708576904996405888805730868482544103779900920464510320363362542141320540446716169553229013718375287906739682921388041031460612209362039948286299776059941697263428615616825841487754504787392301874684558639318305631560428507622239408443990141460995160955149614894734826315834560007517947548935654961031493562120690362734945662342205615877907105644714613921334255688078355658970695822838151341210290450695034188850946871902411392093536341871008035063231057481620063149544482458318906088926739745254486422511426896920596730412152081872262679398353476103669989422668469124826749035015896162033022034529058512043215144974487660812692394818970406148284899805380315508617072722873932695156957775030063923211524733409645361131298451799823706988221236222380641361260321475058897128788933836611925276927072199258165696336536355090755801292155697826303219151085537035796687969409050064840791063363561137476123456799197142857374693428053074160037836813488958859250305388567485617220653584784515440715090065022821009569885703618309521503783554246669840505952358516238410943488947714648117598656011660044990006775017604802318411290237366827151184877779918963149495945603142976955549207649111202429542146498816737851169168569430546612069344381083131301724771494551402930083503646184666086526112816512687692060804420594994464620456971602469386148986515121750620775741365577294865486434598973435399317629184117795562210585139523968057154145004196389151981714394119653254870969617113444466922171136109971932410307994300811755586781814728749653101659673243890718620348322819100795872232751924767616909242616392450056429269761436099641926530762874157084192726722730203000513297175037475987393311179019055416680860012567330552685769324558624950302509394778957379521038934941521130940804692079051938456391090731024691501111482237136359508516266709383681912650838781115020195115998978052784614282070483365404581885311389382186904683038982221273404268493327516878350936389495123276498391642196827252213873856310667785608840171343963801238753423265085452701637134219269802541018926234819817455010234191919362242188001812004108583765439638459496339226042211157503639279168907873417914219173793170137906306486801841806713633596783596324133924615348095057288452557596777168735695217655584606252426914529222308812974882836788947629870593144033015574871595649895975822947073863105808920196560595123546642433942559928064116426285720397850052399465641320089127989697680521752951842304765447158980614184454022408221367359916750682056115741952175895916981655329591823014762688774492858718043745267967380676851913705714737854289003939053292811494928456553481022342317700241796407414840698511610305459939803064815519576484559424597031650416387200135221329389934654896940483608893954634407747689961589362470087541969577856076094357856731880129138807241239127788242894237857551377459100055290530765001846588341445385205143170093518226945186929958697972524263010206266674610768835786490513002220853900134391430866927099657537193968165428225339110076031289344694969621681148359636730983708070723074085740979001556554440182838398547663716414095796968077557896301446845520469007645788196007295645046517650670093857264100650451652038811432723752448398562945492635731253171540748871248832825035126212426394215916128028295023902672100930191557571959196654997865897594566107226207168078307308775103215543283824038364227824328190574178992876558293256122689865627253949553755079830902722930375743906974515195974808966608947022310618544054629979966118748565580301150303721938459427736475419854030408594816654066218074716909761777582549756038400110174192260960818409099402884568839672411118202651373634480125456492043400120010493026378007784558667197914711657602243417249683312461594210907424372892756114566062664235072073022247337849928296313478215838973826375260394491113910650102113523729663975324717760964556598260713271056019391923623254090073889886692939839545354686602615232768589014556200989051360812085353503022474666386712037943026802222578379396817604843944866354517205739172839591467514897631849324969810611598668860084230800620757878062918837558017854156099688385962029907017802035211555746429251619917932360227225268657511987596031764469637563889458605221559883457558079472941385744754630864252162779330084653232272391013293863992159981855541483056516300048789554044496726947578426328838864865965073253105403859973588392941817478616494810894528946702466281455402762380021794598322999331578704317072736165459452460738523586309414307686097966172304822127888466512862088206726102452417973114722977956582388080867691167453677006320773078898964764172431669029219290568683628413299361703161922283165458714189051744825914008072689305801072161965826357226685527758061788500939712415461081221477903460052383561655708389658694838302008285811592497052327180372309339166017190970945581543018178069772254373454083295204807953507235603412675361047821753625040414025076173896695932307243021653531718075803669790121835943002148808219819390962541506307685872454595885024038979084974998210331394470695485210793437045668486883372160452387583749183176877415553960960291811363666476118367976002231680628801627437057109054642613896051339879422611274338065706372490448468487701662735328707339694919344253491872196258374606149724078673564756461856658777223386056705017138368753784549725744661614552254609953966747935743752601273868185641671182703486711418296803576542952382923485056909519474897257287002346703589001631294815635370106604261260969662463800344564476124442148000871834020594605681382905487605483471294702151435195865635350205144504934054829910180201088335139348643439351295692352104517119404421618349757311967149669331055913544491076758653854155191511916860019837697970892643945827232489699214325298198185617206853389804936062103093856542504964533199683653752932647645535335567237655304822505068724135766927458313748854019960195979601146669965931685915417507897476348080259854990321630456990540827649899047115147635208109282127068045943041421644963349143752993331756963841633163268206213445735771590573882833713154137249677855581613161878529256015404905134602920664333811766176467707315360685967180605545162047648270446854534188995923633800361121153495852207166254436574372955296776995054066734277156571012153289000186805881283487735407821706647586584103849291294340652408645516187537564996881911909207638767848202642377061250200870037046963004912693870802284677129048163358675292558412786839024946443820234037005784157966325729900047812093996142555826535214150627281686487545895999348792831469314351462886595237501837428786146257456331106456291875824965822403927851263801098684352929087126304102453440686482681330488494892208133201106565426481184714411307736881828319768740737138235381730240842276161426339512176908956426494253393342835520045746684198323374075458627210455736751796863105455175466227917658769428904946530794876247029542671828983566131902542490701529697459330378618614623934264045260020252553180022295812659654634264803439227463658863870765959577507744544498452856728048198333708948014138454591584162164182501236268057288436666347979269268065470244506930277921134462435548705051465956566581184284731185839266170289129972229713071176349870790239127222833576798565160980272453064442749089178545179209728704220562639874127743729758742645973489250082651221823338440898616471607695426148633142246010091902751734686218795412164105433070593261911766545261697020643849264220827721805841664606272609131154266849279825414351387826975306247794090141477146528118869619088762199545793127565924369411606863216035205506599654056532579156297844104073130756895258865202266919989635475229005981420053450707563303932432944111220077409479465399758489864517005594781836819228171806141814028623174237863171374736715365831230408343065596555113310364598516261060753225721474462036286319408500388893278916266817465596938345519924578016370165420534290120307937877116989324768209980114108059990338306809401189466299333648777283942696776418264898745197108291726519742979683587312372553892210900394646468918904533393471383519957231023009953360015765533619119189830557761294801561642928176373264927284059376177465010544704261158383598451726535227364359945629221249131280030722500453477351917865734913560270185646101192098097752297821826463075748315327606278045406120259918273314603533051735871528744674766173202372691500691076555036212536630628060238183055004937420192838129212305485304972863593922679637164198515570815662073607522008599087716697495030349977438517870113418785529668443288495472439572235762145736016796816709309486704158207675366339537281492910433525738451561798873809117291322793680638442456533759241097574968844409026092128035347821291475368802569941281438966140855439353152323500029540445166171628610115083594231089107055575587699815459316765838576318993316500173828277431554251046396543389403585092001687872449584751721115007132947396052686909798139808866101650475546974841752294445003583139832238068680494531114547196926093706076773144148417897606814610672628527871861441123207424114826844143745868703062736522848361837409734824426528236480583259340204606669990924279594381855606535153500178467436632200904903827662241195057996736145110599862810595982902384603359526444963052616005267757217866084226189821762250315134642106270836245332368336362253943631761349513449306798832677484211697514550918052800968520008317693310569244023322713482906625953280066921914456756795857952370183338064949188351841931033305914359482459620189368671679034495183272392450619452573656968183227080161041729124946629061029413708815781166973089078291812981259554323920043850617861735375759626571499927667115247953178989797105128216882288477370613559681952792916001599440161541954448420288128046901137763376817007240854767565738416310408672469614092947162220673301846985946889197570293281955546461295917758653819570681692965103975126563832197117671724397994081693990737171762639792608935723860207946057593122674032035221628540822874932177391426004039085088538687956236728623824663498367996787165184445496108429806805710046745922607627549599000881826422359447490707348095111843775654750045124030506577482742462787163328307288188885015474990153238890391485257214918356150158748960082411418458843762985728538125375349149209076125726867727549044619021707552562075489504478668249007969527165474688666979767727377438600360980899292300123552536026584408558328057431527134190215027869885248171789590433279182901856990900580767919302970455430238353064260098689213751327471575240522816455396020316441098903582853318331974053909767448673406656537450925642642339974922541382641460496536292610117601490206423672393162595681605776783390568019698564210917768009270506184677818544845275240965854473976913966169953412268287459681519563758170408732034045312274560033673882726463956894008459350928821679312341728116704212767447960203082808111865052375457692894057909035832876627190657793360986186346607410445080730774593994167147652952443232110365069576752703291183888565477701579339523391669498350050449904950279444898914704574931643902784375527378667309030080413501258573513078592138287150606369563985737083056816360629565235229789848464403975920790709331664409651521847482645489739339725909552261045507438220571540080357921244803969258420408817436435667647455063951709330609856993397529070708963494210410921854241809230769447891783344257030093946544073198923417906909581228357606986599502034776508196027549132491992538282535798651069643803905400049586165341662977011203723830300255577981180745432711950724677573578353148711969960032707972358481299138276794751156492608533150156388115479466689362358252926566190739424594966686232323250725714774935202302110019141419708999910083624466146055982458488826870616828314465710507777942437418700013383015861243020924424544617134965024091543554240635718287568164903311114586840135708337092071987986473363755602123443227769107926677308230195819575513043433131349184735020322870672502021414417381389888732714823146183712281202409169283396184895842127915927494405140420314817334372423597926072054310332786771086561585273066535026727858768269225469931137623459647618495906085313555880563009821250927246734995602700386476929388632025655502559533439463065698105899529583886428246464163567320212213341736097723096554017645266142957221312870011650367389971021326716734245131677642663749701882515406296148290944778767074280267932570740947661734880152980689343405061094602953752207623166271645345276127202330212077798313110647157969686081376651850946326509438229415921027087556492235667363567389990747401758167253502466999949692510635953794701946270235341883295452687563316406071217409525657675712506210489796079976113022067467881192362338651425356436555354309169200420921148533797773690808478212633946213375024558509477471570122764519038319746339673156687045712905365636447053923961439650802161267861381064879131842260519687969311636037186885226733366540002653267524360406423141012324828890891444946319232045644142883801347240289692549823166829905472880435847900063823079104124754387961594678205334598816805756979132232675023898035955419146366633536720838056717631197747698329966300055845043224709869186533741499008074410519121543349642284889389006236445408121140767570836798387829726481926601539881863188929408734398281334922191913625625587074912234300429174806089131816889949129830172915190040594955798950208860248983253276827224137914659235057804400446076351834655169107874259776355746946019447198713972595605405636376139370977045089194435497505596012076588425166311829802473004302121777945520899957597677714234366317928832338349990758083235255219586007121289839949165628447801779633010763870732948685916648756494136764851278125041796208173951282463092770492742142264527767629671142281467654687503998251978887125867532952682797106482305690500873828658003300661505104895656653104022688799861639200414722860330928683368636561253096385768553799033247793057341572884563450901864806304229437261184513758993462594720767653004691775340559352511546231865081734111759222274253856788287196423775308209901390216152080919000953097088500772913807884388937383372956819172275577095028698548622982475204116392664884420235395602157718276949257763767476233026900335926082642698561703188415253396693673083527472636478399202671008535527849817478688536975157194555770917893470506618770060580029937469342627226629065841989162538259127158864626185474404257735872634792664370802338694502892867500915694860804955504111788785384748149812250897654427997265136769665466808660723769068970008797633768333325064887873466049223609745495873698601171879211969156799669793202669962925658501323916172995558306468150081846373941770071694931049946028696473344472662657937621846856565485776846060262308541508956463857445294407547435099078977664320789286663994676925663577982390312752549155718510388511237681451315054961254684654234800662051056597860726886231464607714808888688765265631216783932932173059888607188046037777442027803220213359446053972327839185316687671540676133515654998665179976230646691712455962822294680545138995288003535794853299677528214834234806327921770109052512418480438035658972616875726462232098571516181071640630484046023122780947501978194720673163692184992932965051556488065252171658445467578340225696246126151970624913686293348268928175359989375563260402987148928113354960218448260149398495260099067092800366119571489525314133914724152088768544876163562366917999571224843414783341405908609427883774483654077148796193043012879373973088609040693474470616163383192100201133746709487708276978872017932826198083421799267031352495242211771182777574291893915223251942477159784802228607893109921609816072197910771735595375217767134295314421874067485101163827516216363419626482292044999889489105051235227552325630819559215387743322460950546690797605971807192060974590383258410970623268707389106685539647087120255471024139254968495731122531295813980800446915575933039543744760788064642932995312531638264397887611560979641602300869419060915778692921494201619799511580000243758977384605734688103558007277948676935459337002395144762461509396280115157792140757097584239746462451450660978525270424923534800237780496939120892650432422206922299460766871603807605145166173940167617257705695934080037540281922122400589435835824724434732796539990792391877486498577418284148370235054576295740275792541068920272684938125389463736534022704476649681828371625758726722764559693093320379427619516230411774513372027537834845133480820449361060077976899843962422013913343097699820446422551746364568673732923921134716589110255558614668496272878990660091341426571820827724564697411631374069826243173700495252089748212178279722270923880934213624541210396411001458615010754127235725948772850656774622582213369563474198978530597634301701663032726433533632719307844724951407669894594451215363581558102019973225149341590043626916887593911730273593252267052615249311517558405963798429260114318529875553307077690885975882837199007018330698329615957418306746930627175226088009474355622894071752965503278356882840386572376640278454560148184289421177086578924565217201595844724214026119217914801807755080511750277126963176267969456422176928602896127641108042884139365237953157626488082061094545070719231289085121236800874403768806679479983706068890765553775446965989277499772660088792102763490415599726243226218105585251273783763340726047064276431262868104157160735119441721362419742031394388001399678545690739325311147710178005525916511318448083644879921905466580095946361941695166785991464805277643545105458794504341814690395965082711752113939296756819522494755948849545330433366134734472619081735215416291334073990109309246257147489975632767840689688114012866180992441130261631028319037510653804758971513516379756563694182296975321147921433493280544974476497008564070017368300728156006844100914505143958877604962791989443941505427179815682903678036200667973325659935407881337648662524529899731555460918437300979800708192009536043755352096134007490585431421355029437302010083092422268372076050382997494021117881418894981848059215576017475924296036465486374825967888967489717417244986590907001815199895414050100406294586166125065465188496119669378873106056106251071593028233807889923736441380453310722769623833068817370765426029659499602560222143377634220076264090689407645298280849151242097142292821292239710461748765847956126166743021157033444519072429809092066733886970568273341787919220822642968275575539144332139335018057707019238826367099093063531393496291663773738199511150217520410419812497613567693973189064428302025090772594408419513092174809911416233242591164998736027616485212201743471197307909625034357018480536959795926321449105644021618507535703661077701391967247622931914757528797122883926849070319948074010433231341197462361504442340108140032498034972400977625804886411476332019431475070430172021669476373920158429561464213689045541186997906841893410228231758072562266290547255990096004420225499358840062497892188872100841851954097060393206861741995558847825533908194492592073244688123482933315797512281139809247220945019703402748187412625071693388305651341409675349786475382381238228802396470386846820273409958323669311241528093677230946101574656622900856950263717912351251417567682548100257803605776043363052000021399211818842697340943386171930156195999998124763512064764773140769937121183914494902515875126863158827112996850858242318810112403097794018936067853545655835203576742483223504536034605915514213702885040945925927257441915522507018474831305012518886246397958892612076342252461360757759916138855580463823078383692884829741401330412961236382061479373881069673153237022818443760882419435146450478121164639260264654352351969845708376179057893532409223689968399067997365587144844305396769181865374841847665014468534730737457441535408463331097700053294142190557360104866536144024004847601576363137060517309524270372949304170781212784769971522557857332269671142103831042504035091037051057806316638656785682705458285160024580474989959738051167737394795514120141107811821263999222622830081338440393006862647800905839387921954737364853066802845252389345847892006832153846865151387419535481207451789133954243870762794971016972570933261173777167697889715076615473562349300885577151051819686219517206410766589035635484584763263133489961633733108340859709147634170253011645295580017338559643995463749044684124951364423035297005531880113199445286810421512004322300713762272963165524374312580706815770857666763367131528470245168917378361853179763395214301040419856941643874544858244377513171349441306079587743274572854682369066203387308327883104938628059792844394033585991200036749565028184881590345293729724953486557953170431386020088782763063146568829274805349133637405779829751568742517950693260890072282877871602776237689677530388672540597939851685588278502835191672261945266104968798164762720150129233482381058088269382015902852947067787983560250471918141554935539017903863450178638282387688336351092422722688239476718003375725403388816938565713605898767950542693519864444196318072039417552246274045319874635934252664619137314421190128842547426243250686856288667487502605377851606788188560128660470831137570043615422876093831934309706860565184626308732286191531987751766951283418080233217522353609986313486814715041674373697307831188845751341071613652770326010221831939095875389143177673607116877496875088818888775139811462549762443112216533011482625302705607169149660016474717943466161607884841183323886270173187650946688138835808083282101948775037967557034214012899667584757452092067602837105172057220446050292522576409607292247366717529395114167922742018039396720875159166793103765181035957984784258362901221532180932405985076703701564029708128858144981916752911883046445099360216115732392709552587670302993867712302486121448733495581067128279262126071199754655485762236041362755027596742477796277086302329243088474901528030846630983689660943174831119573704134390117381306687420072706187274805534032844855587053171776822580421529671277909085798968769975519181372457959173878062655269709633248155926936444474519555583375824111896399482185465521520930874999845726244828124430360166376698801705459269222952111379562480979515184056181944727247696943892340892870083743935369674175973930195906894931642148974787000062141322851355632552236783652836022164874223164442318022702483106948443058409592157507061362981586454484724751660236625619402674465466295451505411309680751184943737910270261975073383957240464753024609449303112931210402064575648474529105160917695970909328669251184610618835819650251164770538806043893686601266830243857774945723236710633145431029787712948069056768757524214708225124508849216959262372406725968803614734765979269528716248204596802738034194476735896898166270641463667705981164622997922778705299700339165459254358786737341285296368843728693424602349669273488169983152093140579167933723058014560252498254149359563049982692163664687853197522068625218867013676654886210079238103338368421131845558651221884773922839095743412031823064614454684560350527919856596652646344366328196365794599759511314144395821593475384454582381742050365921225783101389028883017508871832564109383082409059631129262286111574590285387025318686363024389506178590606397298890936799521847928005200228731787568031359461626507460754762328253053879773225702255325984806472022695771076390682087314587999403513468630538477463489867891003075560660117114194111303198980736467952108514659623646906319625284789641711034483433503017230848265123410146712153976180407065207840830923322081557823113592891090018802031317198845156932937202011837527568824862680253064892858047029838828211751747583942925869416566632118060131466741353452779645389701594139812411517993346738345166646237343912688536209376513069261965221027164745840842280635926663370895803449124222299929796799001969384067541255214626496812935192744436424604550622147135085864357930622962009951097200943563395730068311071729755530546032361368569800775500682778509068327595793544287934637547724495397435167995683032267947026581267571598254928474579799299158655381528184334738501441458593933194148104128726929192200120530512753522184621201227138738981870792328002949909187155444483623368112287020878678969368805191414995452457830584744786721431060658744556307627820535433883873564605936304729492373209892004691970457968029385551631537109893272622641005650607929624517319022826149913838948502543896592279883891836442545690412247537322458514822165394941581741761292040461645311375919626214682039490641033220605481653198994312150942092370047755277823129818515928382314080580472795714207161269605439457328685756896633214022352130715135582147912916338572106351769729158706441802565538563431410552701328236514192033148265796999402940498050064151065648810391130889369266802904502851329689614603602432036752343275490738222497367818215331488681036136852907021007343476245337460157229772870077340888157960000779655448295692985285816561781620903948460712544104509493964006424609740004556448538970738400470886529089749115494154485325121241506769258860278889676211206620570741599421358248827860860595471686170042872731710988633247952891868755861189889898778328721639792347898050357964932247197924356163777893737284761503231484832636495356173667164724544744953331764915637957164643799580850027063325735637701315913917195045513144139750584290481470328523616153768787828554124483390562092222847248471011575035389486767367156328354921699690418428447528085635469926360349948857064975603028819945246630115623654498078698421171123484979757241014878278744420689079690937790007482729882176664907190831007433156776861226752139521385282498667345373084482213749283366386676207713957053785695792747743831374149125095577627641551523917924563626402210846960686229574714436250706395685020082812375934584855384932152205485853794432789199898200617419504537283963201375937004418871739785720548148365818845453407095032659871075512009918105368315708350557414831840736631178985885077163351175496540527469953426499009080562982318074403761390389718446113871867467839889797727759978628544345907454315509252420797380323299047728787824149769863815125873951243435065216917551361885377489529903770521228177691266392020253881355482560422503990496626681553109941929872759444117083234781307324733846569810696968638428024646985663950033391253445345481002799900072633369598597376179346139363453784133687906285964720486711701745572240658392986201484534082137999337484889055323223117021555949904603636427313333889356689562017607944129643347942741529578867272741561844243570875953001571809397028011929931527801508827472381409038740494848373928460851619971025668177035338680046728869682864948535702724445848372421822484038033741276681903540092080453633543509213767491627494024370794747548145126783028921933585939261581975359941502920887712161933174173895925365987973344535895886311320208895897696357105354565251429726204804857874588520268222236691740768030171025190165456925698906876164608662122987529207342942039270105071556558357795870010258789233173421947006975035389989009729487630277614089242895227906563360252848046571815483008145870372479204547063818580766790678015634563798380324327163637626104544271580079230004989134534793633591427074749190507311040171683211356444027970581232177522527750456065268798462721009470910857236060003161954582333412383879370901354377801017972605314314482694948175160364467428931478953729202760990252207284722213959518391018974899925299204948863684266389337354523266021538829387183176167134071511857189115525714558629371590492660591210123044144702443707478398319514458955271999069162344588676857190509593178760703207590509245699380241806443830903307760938283254506158620569132656267426793019012111265798210711571247328330021830129128562488943361345091254475404940104833441671659009631218369772644289673019148403427423150368133835094513564745498461924326579409118666877979801388248205327994243314793084203062407881080725417628477814059888277609898777049353753680524832782925056279988216769152552322541563121393823845992631349508027073538305524065885372162283040865868409016876635371835420990775006962634308601687387157456727759312414327209748574450453396831049869661940136377255420725083673367901541651168136540663415746778753117603793679271609362869482310562993523298305526004386834134976433888020719455777205940878232600044025788928075534019716989090569300307408542119143147894945759082968904675998182967617664325467669263228476740136316110250612383798312433219393477736623844075341766173764533390860348641864770725125518672814413930550818159925884926288012454999733941513278365818545369158695510353849857432886439005317049795885094760386156340790733545904019481570423571892422484985468092290861590744197793212064103861612073073644430764440737732216049752525479690056877787575100920445210360114995204721204392008428573859039212175442212367513907003400503741812116577526451738871522874548240338789170577889744335377252899298484270942715909818205822346965207755690583185538930561250106478740500788682903759396918645541141969231402818977395740726678320273764572196787246747882291238136422139710796712123913515383342058020417012847673692547200147745359951793896906630269965772305602697094406663470082612757022397602357505251496901146138650964526411445085455196568588651822225249595604759292026125799722884617118807079739640255643052341530857745608578559088173671081917076800904782185762105441730425834547577065609505897771730354681659789605560350310301879696427137393209983655765956545473564538244403881841969413680822765444699465876434745625918732600255063372900309695792668439544606125855092709076035667678827070057359070842444970018618876699534200720523627062650156520855423506983899356181455313279323317468463699148652588459182162286059332088480069312994494030582951762362335749910713630821719557159814226316147001801836260268139087095069543395036129981428488496110118456643387754459074924866853805965270903627047182859710207268164251042050743692145037102305383156012482127340472752276970125340338947953517895412873312306257484302536640461446468778015255605081756896585963901430523888333249374846739958653423462667974237617157405370824346245227931250700123077903438017496748357703172516755705892494132393831181992208406199848091310751359133377042214280835904256108943619583343328186272683862356559350057608332088399715691967877582317413530548226733196224943800352344378830429308978980545339619605392549737707837754166362206180559142016808943969415715375941608795669086039050312256210390369647315485680088971915959496558551652514213601785408235945778029938210137216174265957166779648468890511464839956059118339457659629320406784437286354563699031556476840060735123164903079624126518192868852217467968298580552754446287894469931212194831795859470035025642014629802253675875281307128111787283928526088249491271218104159586465670499948977340842457867309018557739808127935822410380062825691297466017306839109571909471829037991822471388652073177485279277472477551434723887232776041309776007058437529427986444793547935561589235578348517262186369728693672268031412661570153528970555873757387113610897000147790264091460524869852893351508491142867741526359982540526826532899569332213494188179808250155018810573598500674657079142391280316159430074410068524743515633259862091345526187615768205512856787745997356540244911228116295133303898638071514564575325402396221271683129300737378536074419271117308040937152609787275481962650017647801199841544962166726022840046053519034932351841802801705240505865285420296831361119438411513281480379867417728765192547577304654941303656813785706267407432240214629465075329427728237543826651363149824906270533808745638400144537547106934056811526804558188210829948857407238178573391849693551575209886626667768742757290152451885573156411781832342486267144573360765697582059428001371097310154604897953255680189241337248651922286988445037581130283058040469760386105484199180368396899474388456514102357833280316386000747790575169072955401715804022066100946840397024785399044800964687556530574512378398270784225039191754177393569135462679054748821631794101420863690287380194667271541876322493074810033329716288272592659086040705001053180290646280194345523922456422455082193826467345814746786251643006591389549113406410459997548280271590422951645457117616507889077926422909641404242333067145229574337704474923116276140792766664987784707649650153273791998450306613557041879783947851189106867550340670180019295103999492505865521443713770933015801288064208187591789164717053506469041362625899537862464113222190978786384090194243671685716656702615294802701685919233321617664974538181186312058955555320037799538087504482478078819083295467822712133615108385248581079737029450624061480115722704001683449854706495535376500572171718825485348870072748460610324842104170713506427743721692360452245761001117988612281377029944456174209534243940312832880764438582196440212857416143824549817375215510413001091316072104629478017328182371291762832935304596308324460144525556855036733428500511868113678302045944831920046612741712834646628953094773397196651006950250741769133393897663090762349387549886780393467557082892358585174655348953273144761187968325086864278787320476364541080311771222792381041325234484330868278295597377579100057039703275172774626933393107826363952918757235983946826807178334757648370267307191493309909832047597274132144837598473489742209240005211060327479516946736321057760617446831549570912455678547754390217240351313998446382329866829232730318782551473472260230268237667858302179914189335067727671042096408170153114435269923982547309739695265374777483752377517484999717224365765095950762475052028175838663034972321058731295879919952404103484485049676773034388171716311572882476939530246284321576774361007988423418810261548322497139467739342844978153284710886873052398662692850381867453784410646847971918220028093560834632416644282795563093692073423350120483347215223654928296958223813686856490827103312722392053226221223720911293111896573326833940165035740721410181018067003687099711479296869138485457527274621845240093358890732748070107672979181393379455181933319484695622442977619166811676738285192650740316816465109315310613538431804739943153898049730748119186026991926475208713442079859924852717646190672310500270384740967080792574644252615848342056125162617740112766697376406499300203725188122539290718616322964216827440791601024128281259870644282447452411458371969401416429821731960904687097967125819582907537162771234277143114448782723618090012799504970577857246676595637548040259692976688187973231247788366993037343668948984619270426599691736295950694673466725845790526836721485229370839785213269455893013418035269557947392535959055074090628534520527758471058945963845484805253733700953110216842862395551985856652847362582180532937643236403235838678499347692087656112104525161930374145354445389588560110319343087890392835210940899630330894865510138334097163852215936553807564551553479726183550647663633622029605652884745718687601475451823294737710289009474861028159159937686439089948963345532530835895052437969533966914069396750153498041823317331147136178854073454050097069109018610965097353195432817637537853942433236026811595699861608447514478648366607900006030427580136043195146613652981784728199603791736752272514300993212429174261898670903615050733509525931142546454245549732063285818872212185739467782807610609193825782844624803135507625834280402069969043496610537998233220113952579245590211167971667593138977462603226206021394487422088174392457705830273561565401643008145992940468388475728266706658512054671741475603393278235106472889374938033642715079800355056969078776898298508180316902688557756393721804646341635090724782141666270937588680447028858557700196306499805817071683874387997524668988824561201365098227454262610079809598906995377050855071711292661432714968849324785923026708097827735578781545992989988439975809046754791083459031776640366711826302441794827512801430531050838040170827809666388935392918433820353930406010732484224810692141344463956942398722108124524469751600710450154090263672454701692607094652092354146894112241418594483935776757529280363546286114210008638593430447767020841838549161253150591427806903357776961371404330301834638180472159860865729812424413241656603375543241453723890354412357944451920414463906239293125292905318822168931298978245647456891834021067015767545388302655417583759708946882867227951181810470728043500231556665882646842055976779772755742178326319373856951284766995628702444279651628063631561405730693285139716180903524470552764060828134225538717970534227695862068528199741785063566984973773853533920220662567083688060990044975187213077476649457190582421392919321830320445031488045998471531019380463262785220668069992113914849124380536892531261035278655464798571395416908405777278834272745409518250590021198090348042204711503940068705178210261291438947206026565771697619535899006419460719281696119288346497119091223307534607571598850910022499951180823647969752443208490994270159343799825917771972222811531296000518133259559772551266692099981015901330245519548439581788333307946165233372792186364325070174172640201222604745735477681214193014681332313826486074624531646933852391251918062880811972852822045315857058446637831543726651465341320600794268395201337505296318393554112618982024699576133744317243617320789081923642292648006766654142311061971359013758496285432515935386706052605588992602824236424461622277709671610029626632976893281153631111039530810047226145236043220588788722059801683752505346811901495196506385589878695264202198150125991105980463744285371748376967914168813367128778781484440402852419701379297225054754294172362324707854720127650875485632661314946447621396066032778061805032075129791980895923446097244361104776134993588347155692100606616898540545613326715330279126069944342997307263751813441775174959099237213314222409925210715231599605546336307043323043802629558454195537871339383770789462356268931430952201768282827436004315661805597895881519053579689278014392953885858727888661689595674464710851661470431777524007609554219124569749419002231855855515597989155541982110498381506392904222244363687063164998740819922653638372669772159624791487786523468654018666056764798452848272565835618834444766887601254099298112257207395745728241738365158648024635705818708325053468498387574510543579659133257987130223416080511959458741506588679664163796504889383621748759687485019916262990232052012269006878434140928546046903587661005889636323041413440912418749199414359763792820960784261918031147671846193346140340218198258716128015582576006978625709368558207318069740809349777783139249439538860097470992048796607548667355559344186267356134452959965512338861066404738811877964096795882614550335750552638979176208115727907139024657559525948412367462846139571045148026442063391571679714450417826515634667292947271193713711056027010421070887868830582750025079986412186840228191413367444587418642517117549665879130869697558579306067752227881492705220860751278928591500443874079747193576314647549267839550868015216089009006000262719669374615847218750028482393821091245880000883095176272584129432679971977877284627035312356687820947882867091841477618577532974876696225512232715733261657974013464994434519674979709895873806076499285850265203275824095385165069452859073796149799820039492534577182764487305486200802634120794045577478286171349153239807440079892633013703534945881448729841158004944261541936180378120200378120299608078038751621658548754698913768362798794330889988555245262380547018247050670966854352273288370189680723952113692701007317054174449066983798896466373099441377760775652265890531430859246058326501746201550936490090623693903554326195247621838847800998631544379120947555921230515633986208681080094344639422881634173709685936352734233332253182950239844208755784430980484109946323743942667798925765781999165606814128445646331235147301516314368921846328256299489265948836141131694773109669101405990124308087607160810085396645211293185681691410615208992506138093921967828718757831425002119888256680393248954153459568041499314899839120301980934369142961279679334896512484279115436513087805268029930653327696395101307054231939385530608076053942758429472554346822805132111584425665163941554360736686660362428051393083899735883727539726779347018176680386515900477704614967550262703363076823077537925548378129680813863695289719307779401390559900044844065085230593684138133718505733590653048646509145469961811430444481919646136373603629954002768003851126799999279240079335219378917209983082682494320793285110062146779614435353645535984182223993249656475522029104872803874387623223043813432240378790824079279224072014083383179584268708269377394374249185140755569618357281103148889564692982143902918777203285352534035625494344428962681639695045202544187454992302259063267799635650790965907721418066631869110451257893336044556528640258778910407359840834354865662826887010091476227233209639754435216804270014989781679321943352560731020690952024025327319227917763797029577739788171130748263313129661846558188753104504290911270757767244633599806407985713717940141732835436206904952056094629183175898296639117811072140470460582314217415578218022925910291129775005263003129851906631139500897840671688063415593988734261878602663783537721003508389043858167759148416209823134726475550383485117948961929768105358131965503481552299747834754111017870772981312114209147447778161910405965033716372732774919448229014665409114311459156821607644251300425159754369595197555874345013675832168644130490265428114199466390353605079049563179126211375712757474986765984730578280743229884457525721475783168660142417275462347562935658812682730582961025684689921460320092253485163374987334258662592817684182816787843181061580633841861672026057944936773880259553851830578952933710096749501342115879388123168839278637046814927925361535726528900733177159285234393414203962590857762629127740213285126276845981122976181869894220225868312182144030106603857805402456419499607954339089094622214103898661050276014232227775380002909407370523964612955173211455725599585161481884904057055692046162150381254901632452435672496208613342453207126668115383723402276148232738958545017958163357205875441326365172667386378993621911817559284670159091950976431387207308310197062462779616281440063368834093157876574988126018437706627400902324382498852186857018191098899495203479849290452551523074693744493799688182043463794980344827192320010174750259135354135335563313370910805702360732229679283559694661240337138600562327435841241321686875489685501083799903193295636094270064301129395205769112100727373283281635010485416921538198510755222033418169374222085199748621289665847197823233818018950377318404506542926225034922821810612080875067398407385228521818724803412403856531415403315814607781887530522706803916404087295533802475005022235862414475854493551931489104961230378125129740766661700572646840009556302144848417804979219537209622440445742898133355444347301169237089849604405161266470696943960372618437023732516998651970501199669179858744403565834539257666623378201551839870772915492154163278096076446935179163232046089254676870882817101698625479651635868080335657831352754414154119194046287146963073650282324072793397560523660810635517075746959862805479473921672123274887189008869317238364214860055688975215998432027565567368432552442556189424399347658987125518948750317601756196116164873844893258479622218007559511964454700913466524629111485219178685192521122420992852803663993316479259228440579761292553859060660961594725556362226454025289721171583959055447702174229346455812456992464565609503925344685657415309745109542522818193297844026961419355587925913377266203292129126132961754700978930510385828780206753635762207933643339377852744142443981458416105134993470175168001812174790602506891990110082665227669219587697871609901265460065245578731045208041803930524956954168526641332618230779150415179578378515410399873793977556766275607443767770546610784428378716805994427385429040253571342113257584426366571279898148902736760317633870767364436191265973514306929588603307172202771499282630809512322028799974791996174625674327033507780242053844269996531428774643708787216615408054007152663601022932166994596467203286892152891882094648700907120640431106675931190474726345562410278387664096717704998414819097246249644784003745176899498551912774606915497809714199443214721659813254115437306643431551258366282326816362183047942655267165290700263788539074192053476419054667102465402336616981886674766286236981795381894751212126038052637147186266334109725915857165605199331003433460713799599330431696680545412462707597224650463461699638424042588333842677322379980593792439630242109121079417853503667520700256276521462522021642125742552212647741755242195066067764489577333223646760663346911607433355699701459538591466324417786271395252609680955160288159911885733312776854621678020609167829853522599132572686463970738787047902792482139674642072286449937885017274555670739071556546205548947902791078631225430614244638548535388727534640412056828512131592064276661114130924190122814314773028335777754800935905900817890875913559158857825732174638073754158722137925363552280940819788676991925524332335160407609726809395703930078960584614689230844538791430449058953644217110021968315897842395197794951479496942061138146655395515961926116848317022332026867889134047356819191558819778964905174952782242060772300424316561244737207193849186827678429886106664223025400838901082112563467497606317363470215337929647478982196417025153749630739840528198994128294114534967980948938011600381377735925453190848297986711812369689218280518177874137882007587831485771469430018420720872423036192830291355788966370105429450782270127004666865383352503218234450350670001312596391609553731502393632474450176060235421675622211912413208849048488951001735129214306491579982350587802269968925151792395097265700813787903556832269498555591643185525433220722045209767932022414899126075561716382750833649918731029647852458569821760851533406428523157784987467604437236515090758065774497983246799908274514031597082397775621386133608736539690961169614817034718095039668337918015008173953492621732487579337383521776101713478007661682290987357828955357140620069667156510540922364869012850313241331763101711098809871564012151786280082308095773601387079621970164795536420535190674321138896872975043820534303026294925220425253244341547374158821505752813879566684865465366364081541248984215753324027693751049625309595332243829852957868630199818057143316652211478822922640466422743321086105255735816266386990399456003235867478811299067948551510442800441424615401278822474257487958023275204478785503688483228201138530015603690208758808107961551297467482593617215841301620032023721498421722018308189423478091762407267095896611431302302598147257325871643206600095515939982751662335034236000603005089026402263791075772660738549187547897371772402315674962124788343176713824317856816524305842243138516610958123284616433783200241775036591744409577106207614691302468369135513846358251136425897951095451116395990664762708593896951736314665053625028618313515087790528415875130279832248879254991415790890164884495238512958708605887433634953084736230726032108549390230374561067773245667791854517081454488298587076879054291170092828148761867062173026831191349399666639183101815062932033649960640694656603084043361310288791457949715079907280921193794228373901495354477613538878167521846123234010423920318815451050731962704546096814831821769852405231890503589891517647190177419813835481688964931976742933981631852266679168320887921245507370197044141611238195862790130969777235155830822280726725074230585406222498880766273516642604698177522943060717457443115020009359179041591708682823476958522346088420153521319119472336832386162471986210047447203101830844165206784795379184689283335136461091200108486480481294150923513383946701041122758678680581602480278234528710715762640995207564894067112086625689551835165081448946412196934521206897349710951102771042142271765594604941546007171113527733687337082251182085370186378648074654047976055487752917789689266580945205440187273127043286711078694942971550827498444505599878590947377255146953826456808367110983569371928875310405124287783414685103724296020163927516332365265508300777691666656396454789457355182343748691113518906724385418420854878359626674683902379585746161693792213123050326421298359821736610131856580355493871755558939559518521434313274115711403633744068735686595071892876409190085031732712805997389337276755665609540548926956590890353662783837711612307084597157135522473056800928359018762111222994194359197488504812835488415580932361319070514578184343213421178919817506490119100500056325990362742199637840571945933867456951206519621307964177328648113596190407425879255161563862263484646016189747148549076697268597452007574408410287796778398419787728044256463849515380545012330879584076340079316159533629855106838857330174455266687656580001443560490262379037485578321339807170537215984974075602349340459626498877493802123587165769615200042743890412830765091684859371821754616702303183777512303610289482383953520705378932700978418361391385897739576053117962423515711352260115699672279915208999109216340635150557218060347746939928278964023309862422715290734104254882988659908992088391262290773877093849670444118233532533459563990232457253057880671558067296459273352125549726713489862913507313236880509173273661326996052068987166608658064748686808196305467949807362111888976745526498406190044538164896465844400990612577934028871714187015868703329593457565223027348967451967502743514263613484786035398346538953578258309921976710273541173971839940452267756308276656225608316819181262859415114244896937252550445312455184043621336433165915225379482365218791257763888961238844843246339733337290142254988277526865565557955181203873916340374863273171541844297094718027974820277672881417331079796641343075490450119290389251851468737658464822334572173485070158289067881739863639097771801940949787166613172940416173755097979336745935454679931309309648630830049651330571340380942242829554889879097353527428934154559017471991984698143000332737422331861071675245613705002217191888869756358435445395941354069466383377753208845177690167543350948162871687034654904745484807352242465807414663585224129159238582218327302344603452948555398456924663210192054331736134172521023362224024755633881890378395754339205292406893633323749860840536059235018946417836093679398107119903948487537340398171975787277306371936421866983236126173321653174800780675923422934087307114039119099145832563332681770027846981475852938173345270416944297399764048610164767738978781620830482465202678716158954892986394341108184711835785918129447713001594670074889914174745263090855138874531557642359460088137906509936541893453703021193775811695768243912812001597012756856230544028784918804904880910756748105181371719776928161405231079487397026809003089641027443142428264434666163765987710883056460817168340425657737679267701930102246473892597906392669297430248725850984936965902772105588069144089247710386129903822161068394131617303068202509012038182362444255578704418123036872033151953196494426163830334153495833099597169119248771915224242529155458800109843331361533041138513928053756474782518203986220674557756214851722725080863495764670467465794075787319250117502899585514396531274199934924973227673631707601153788576115995951452137050140462114452639523173699616499303785636358583647329006778334873874327806490159151394860860199402596982265339097698024734195801661484969679213259496700381732598094959157862477832102619429315184623350841939635295860644374647671920464812904159073621525910974251383240249880588721242657136194413072451337981662628580980605153306302126152586568418518595035471976872413423397558027276715237096033894582571240073792773686123396337053036842686789020921606591243570197026878791013966384758741827126285468475967248256507224368590197505555198166559694534771829071608812216104749125343154543099733943070521346063281426314090266251513606410410102760679127170716353660946386057862624647811785546367050233424287487251252211701747783531295408966361076361757642127592174653045211889333819282401969681344497589867777450698191652951366016365209667556724717485934137030027983657177634949436696382478495529418921022717872993503860435530013790042033021095384681325221824608008483381751714864775546364511759285789458405197800977235466030742981587698671729489645880081899972550542344952140788185632269491558989052035691688651960788230245867914370466833393635983519929130056707306057068372878020506899459762161190539669730401240987889518542976909663285172996626930063456490684738009386672727626465192236400603251134832310964024579436002411986529953952635186253162325973395744452333201482991157404635279913696560387627958765639318150051840657975447840248348875384636875787937193496902281761083935439700860037654415321561253281049246227564218750307354064117871238397595622788891354570175382783978568115625087307682056358692240286758304666600317495133661597489724437610818308077098597053667334613348931561230984566536343518415308010676811821076070026984374259239382019536457798743654202397950934327474468883523683033247622673230953841521232377195462595061625658952096890074153307439961179309687438295062266650626163693951129809417148290584177857624159158153629874784311858192690368391498794520129046449060192896516482624898372820702728552470549666780652411635161171191801147688332287933714107954322840977344340074881375466890300959570899553255833228769160770387406784530528395923619520672164337227192912603964652802293115436894826635615941115387055888197898435840248801664525190795242765306805422186729820042619147050153853606092246583747216709333244865089614655986071454871858952230192816049443644869089058489706956742572436596787834433609566177939797547337341417915515150137434149559599491652916632138454048801885831710672638190201814833299102716828868381547778649290323214027515484357326918599649218682478039071716788081345289873507212226152987309996294454810165597783418678212895214955522974169441147060767645577114561905540134070898549194101424514999547828443313546251458844893691053520062781979985616394693070614769598574141657732234907742633707804066939919476003428633932418819990078646701003530285533801274411878871322371471391984683642490500356642335653068292382447917042199461381455459564746705411574393107422766685113704096738764916044029528511144344268617404131443591443054631645227258556775425955500475237720424512103001404604835162256457032769790779314867055140293325092618341232153889175249964336827915392860492423456290699162803034503678069409842515580980211554121466141715616951787511208880792649040602687104077249672638507554000158269403542639158016479014899873467144582725005069073478822906585278657227500658299533284250046255698494552345028284996280187397863065445777968604997132437498488437715614061303799726959004654474006899912564651812633458014580609321859391622280456641984350241148887365836542704304802326924425600832687828012906079030467008556122353396577353488921845946751438070863131000240191954318123347469529986402620107831782880456586559619162268583307697214386730769973870997807381249409958734464744743930929131747676634251387327188052292514478939614902786824971994971365002698842634723782072326323530621221791139862555173247946941966486321499466142130424997521556118093702423534214529710859509140216594611456241047990210585049176259801347927467093868381232606162194242975931462531830141664040906727154809707400350623694470905697706824329057532225288430611400447324097047222125830729850946055315857588546024566708538783892511683091402076229786568465156398875877242632693620735038818076925692043898596531085548620954460775590183182624065159731571938222446229399740116552230605826713303590200293357370521823483242562442510703379284542494228324416967248985117442473596411550121079705208156671276879615635139622920662407551633467270591152419845903706323112400266477861299478482251559124323310848878958622229621484308242348358437621374947680496768055243599833917232629107053082566117789831172059846087699897020582222646345107586718436783006113086829986083187027364110475073287301077696330433787213854119552958147734024362544108484623210252785153008695431639885053660940404602697803905485201610764009082594565111849312994277084927429877001438210776221064610725142945748644079211881073960856994447486806351562094174287676234311156530870892711490705795793728825656684861740023744667683255391656332575469507245369762488973011278012870256917211303136538817856780100698797330856351756569643925258295682623087139693302852971931657929635057319373903654696493165663409471819043782663589293966704293669941878660198743050430723117584413994421907068351277103795639004587536903070676694688548132421501054967456406850289245685278161071856862254942615066037522193180017085789162829693856190529747747812244045234067465691920539556019808040839902303388778012127864988435995641871615511735384238633322237778731363229679596715756205064169946982876280424762275459318784100318337751197549264862435420869338587713399630527429000299860669277519517059068221134409108707513617661643518704383374050780611422894521083464958603854956016662826776050933027271770975394590929388218137943830651773640265671933642297812785370718053851120833167638487172895494170812386950951127419430792179403845557918720049883851366303807984358622518026194773771128421263740252460898505062035648120239000787637047799641179770694190586225429059872651238413242647844983102332027243265526352015533058430532121000633809642818498359291296219158981069895871043576429966744071265090895769665267058819210692936693854846259672182468809269794602521337924829734475298679013630446509830233797814520341172555045782192258908468279392840059094705130443923612550264226739707353287247823170818819613731905264091691860821970228706613628624453625224568682347491102453652092013423208091179038723666637425730758336089173108132274772559990699799742469616508327218165150510130766912952680364244171252562357883743866135073917486441571605558954989148580814985600303068256901248393202869626264242809516369063253156201527293690384501761047559011232844726088346930286874241179853438824631688188489026755457079954476467226078739739341384296684778403545903443280095940201070786420290099461807288484629482446168006846808631833500403934548382219857891142488521489908285670824122887534394900326251008491435082610934558606801097784343306383450346253085190409359789008803806878360690329811661993283056888089890447756746845895451947485319992669954091993555164821260688288051832203438287243252319837144192665399119332704083947399037272368732144266667481784628047420806655371699563490591328547516061557983041625749732043354346816620266969757431216616324047510854816277522776654532084873862171545786033668509369119088452087839778607059102152896553660661497349147352817820064445861662454598253150287838469177887805638672217613900819750474228707757093194098499611053609985524718063578570711389697769998654244376517531055986187733749945191089602946497323707814298422692276642108329601761284308508249609024062989940824029656495773551907380174939658165334788160549113462768124498086688736112498221731800994144906408780438978246194916234226302109195034264246630455235310889880446739077328474100978453610542659497555139949322682359485757661565627579882785836143903977255632376817869490545714618635204262030633607655975806495446774710934597412151126326008051036246358189946454460330780015638533693440847294237435916227098202023264088784785928741106475446154436694815090903970251924786323706925420675002505300075628609306448866313235288725318831131827791798606401014294599827870657116715967037654019457612419787670127475658176661180485844344059278552797709730645113477816871719173958138152345729437029580102725417933087149583834275343028944565365537412207111563056394247326517319434257145784736929536402618669575709800146182535735524267069389623875288920024866844128303462704768962288277886369565312021988411404983714486328585781084123839236339666761587629123059810411940265052662667599314473848287749853606540823577799648832537930134418223320744235055621196253048445651774489283945486518757290091406016639964955011451255921171002033916611363965971722633993817653975462419217449285482462514145748157055071238385499280120912640926092720763340059383339410854243135918551823279030030755153092714556508520019956229526102547707184611355253013665770317248093862580598425175529586410236040067393474113180205536867121084684892586333927455911868525991334512729556072799030217457890441524569697879158006433792950459525628252193786614912083209455937876439656996725958416743845594163096285363122060270508934337389306283517237663963677582096466319348334163628724652485886497043524246468626896086371952644910600721712663646332407970457935782960383977923030655860136300496323609874249113509795264582789102288009150455897475530555776635251407015472997941377481240725575720081223181584027554087517935036698760764636490700934761468746917906468833479511829678900671400184841173134301439566358237771512076778627131347165941280664938402882445904351974519487411279243057413238514091154852836365807580110245960200841625745001030158081932757737964287694957619923971332337562567138680473488558858158206800433731253404586093194172368596365542996047675080732072320374881661049465129039247419818997329038279472030727146264372806085178653692043663860242377245279817453872322162299729757230549456877639974244240200147662239269664684326622150409337865846444915418241807784313599957376176142620879417514390433453574466816633681486108972394868148348990448656002492646946329858211261359801324013331458276771389985171402152758681003180263219476621726120052357251341376761822236547499843302389086261627813373083308336187836476653131972201209660453160928653396267666765707169342142857797075076663850297550994558767636720874805226732565312489235042805477787563305619148651388066915621354366911405152846997159918385815489350215691986502954026287910705821491143377656484779872477674791719004138314930978521545084712238586157172712782790350364998723356445547941542563659772938395182821169333580867274842003738723065856300256615397313550460567487624446516221797717192690946081654743266256052471766795238036206700450441186341664665958550057327186131491034256246968249509006791610719845036891603702467440649827409114728082250431426492893684355387014461875143915126939521905798493190279991122678236857560637976703617476808371263876294616490427932473656270058297116265164449590567925208805867398253663043193478980153809637523952137277013301212655230292239614614520595889824101989029901540126759581493709153447420698717698715832140465394834056910696744272776562859698523222110660291508724316528194103415389245402317463118010592445374569256471191003182632648736699131608655989731536649103344295918667929971129386709197867259247406719770453833887519573259734410390331891694898199258302036335324018275830610435051627922221066019180885263634181029480586262032350170290946973434786660036256283913374410341736922256039722223809514221561848880123121233094899962261417713100766824199082893456228095639593127167803035850957982575074585726376687458150746545756098128035403257057408245653874580361477806021074553696973702981329118692245991603794758250550191494869487703587534520613159368512455888863199643571223120828847254324038668746426324030198262545378514171966790705532346378482249788043584379021145116437102961063487824628186928671583079359964597715583930865956583052790748175181580780470576941945438794522190931539240636669746884901720187166784981441062567933175109442694756584466290440359853517380714153225256856309322525328143979785475977450567403687819481992192326782466649705469762895404062342607884784847484603852323208573498605472617268545878651072897909168854431855741401364481928431751664803745501828444764181164322693554990773826492040413161325959744916568489625677625466132224169869324874879831260481658905719536639204184371246890629924818395651887382169965165911469499233570133290109878399257791646050224603699804121750145654663020901778103249158954769474698166825211738087422991727451151097170143282747729688320816157175551570480757542808343198193159630415637427576571134800305012972234810669472634031189765054205956131723395747852258127714325845867679842724986845245412599944220527235782080956025186991398266165599187155557896284583000587940774734723907707784235933002652268464398744220864622462999930312772184594004717469372618130043220849372271185000997916003156788691579281145680368268587793586117235889999915006034869974856057030319709753589460768587006422003253889580956502202221083468012820121403579147838221755688813241807102298598412076665116001309152542947378444014472380884710593748005948747285625639138094776752615497732017873479802989365388954122615921927545307039949855015397990975800107312873696464496711320067932710347649494962837718452907061777850589011146870848908137028964161382485039045582098783505265408232191238583585257502213508786338549401869000530613256858825893775213686672397199127967099038290586887161638236694428307747781057687373956031310942752558202813668687323111703311206029172406603592944939380926532783499599317763134944907760854338255948459925406510188797314192067787494740894505514827551461609699671482486057356667917406731041187125296320243070976707116586355754174019529971356630591288893837322788931270435393368586268214911349292833133026565943100071230125944735316970160066813952013806398729858815519415486930397511097309342653740383611125454615807885024998498720077074675319746176481411081434715757160454127959154967978036348630686596665048823364267817379084881246808255986874821691346223181985740813401990425540437100613073563451795059789380728781452556620966664225733070468573622629071338669850203504535467172831539024425168749661876386251237360348754211736318516327399512472953407507189182672893815597360143349165054031205132510750857486112574966247758883742204227171924983345911544999082042341305562396163870956167681177706107163857665814451253823256963837906926134582333707028006224357231578913226318351575234388743749006593072956460180138779939406227634003652374424874942864268799695446072355432254568348568693665622793417801169056976433025178184049393625363887432684619423201611275650003486161696919340866386979434131839472009986184419689816518565391645751698783256322190527381175214262871352261990993838477292279937752304871331142305177284623325238051841199962983285748164158927175359438057766742091211390001503706067903297786859211781838802378609038080750100372328051371515249932265292184413601179963525066408385264307715068352029153897106476405091910679837310333328162436900554033033280416006520642354680479701613007613181126730849398752160269827724712001948939974749943133626997722791543854305670737841055491341150295174072743762792216899889438570739195940465379602293568982328951783349433034856790282134732203482831286409169419630735850101727843992265703686765917385288641545689717565650380863612237023415965672041393748640596863086076874141099531779276750105520010615988711193176597897029863487544973293243758906012937283768440485508564931782734549758630652904411719501107996031727646648018519251314498807230086446037238470864950503376103152013232559022271998513690100187706359059054559235982775419058038824727433604443393845144030586218422459298320012920882693639507593972217879281840020915565805278968083253773171656648411258772502563250313476028348391751598665103869091902370052921778373063857544841531539935503563037262720331504231134610149437186417855382631143057607627020198041587326084514837361256085457362611161009834478663108936358651584388445015919760804004116857045236106551124955648594750917232708784547589344837362612066406682671498936823462245966054381298228658769642061868451311115295648768178972209082070711282137159749943545730044478578802666573463808873742255878483056095038239200748262303885011428404933712728622723046813546541311784357659386054433826124173309932252417395803401855232407610202184791170913140245930420084460523103958047868576288497164031057595291599158900936865599769655840089927725350225409799236135552258427645493016332048940937167578091704090361851440847826172134760326141863914443835009498512445874945098229809461810589023133768488340972241013996686673856275831236279648623500645992066052819163799125249719663092926954961918148244252729153843883000324131172509045972626013516559498015266962644905855544966027266398740085900313677842348864126944946880271068651426585588654193546018758539667235606295096153396627852271891122408154773701497753374601269033484333848948970813562044550662993384837276569433152814070016188416513438627075885417392074588892660704740421184739475538153678109684674191107160271548605537920260492934763372897574930209837308831773638123417705082290941331326746316322342401942982502389271610697180736830646685705315522255898837938135058772380299802121644339911028295669957370781313711917753394662942088280579225891344155450587810768195294779372486093139093278377761485112181038312821523405372854117183040284113441943340629245642978002148582703388416858805284181909743115006000581839746223122611052099211107612709954435545311743426752986996166441859852777130022579575463921447131850317810418881791808782752521176419532594617479324437479516825183369422108179585978875886747437661835997784556807485160375427155750925053188380164679107196224228371354668616878331674356458024268000477186186951040987745757350333328726756615755755749135628795571176769954009634187470653934574541340871925943501010328993250331355416532758861913716636239981777605853490889195508131077928330071088572787979649907721263865936705424489755519916568326136799531011312972870991433171781035631605817991537444195124690403667177944992373317855562036272841060690432221683551870844271826912236292274026395261431629133067065348146972423189238877625393217104873709797455572309757747061918009305945420400073465544816705383841008909439807466809843558997553959113075891308170393784206850703858159380341887959791226779743288874915041989756444909501006556336102953499642573849446630503224525354088897250428049989793095658857654168878328694197327793161370247410149912338924435932715822250879452925003787069736318249780503890309098744596681878596363528835177549245486975428290036586949000309472214042716200056163600827571927487812902212653934504797981414503906001538609791171491416504273920475177843153078123587760641654797360406860708015194462512207976756647134662587944136408168585241411139264108871527508364626398198917246070666273853677783238570853217599999308562407049062176464362602274641394878461855148841971369435027741353214381825145824915119180567139911588135720562442937046743581521029457327620979238270954034970074120729778883841988567481412779083053808976565106604364724686351889614162263664742297326424566868471547572207615195018768332908856015271199944564372533619931314659500591964170400751680828863080590139938495640211826054355870558893205169202094397186282634367395211858378308989183854481676960211927483207686275003462895969005394348319514364081247854707020563329124315611019359432336628845560060305769275136859682476382765169609716431679883835220766459794818549796987453132655512597190257960926281693173047121922919642793961129554479416097403298841314482720828384516247287592324802786279305880469459248730005860085778583199246308603195337330499126016007722655760777895529450146908229441049247612975384031322083536144112738106519753376910043815273675261770957119561163859399859853120986392883514655171508519439423933305328250666732664403232137527976734954898608485763960951931704225597239866895819770929051436386700732754274717946746640669980770965305851720998208654978999093910264486164686807441842231106698248415022529274059024433868352906255703934177363945152072548017820107818718170706306378141852939943223354130795484207443437442211047517735011491684254493782095817312806601348423575291515135562740319398676475073031911325124933142123745517796177421424884559699831032467151988103119924336728992499562626176231965320899076589344459549962724692606788662405856640200527692145346943746942871433441788473399232453354412056370044625916172410535911141028824635833527469963374745687013338681991217188564553814318475892143234442039238489410231858642619642749502133225430893458120203244371516293055706133387704270629336294041441243126602650463864356680844379866007476305360735155560248123069805100139235268558259722307904752846810218545901301418566998638648796395453817948509531296677398500672223401922850785242671320722010149047980644630723837330348657785768169584714280515217174353861181026456118595461036453083263363785274297328825597163394401505202445598833229337566186910821930258347496892326057155410407268254645017057894342291607132827123832712039940887328738444723934902480848560185169155504312280261108306797918085214213302684485661335716347066890634874222134576118345171548557161212768497704258360616980692695430925156300447598868087418358897316479048399979448268821275194390296021728472553558677166311586328266833112738633977114139163015779637356056755450271305166936401823339795894499057772923481211812919196631207295793162837515005007115808725881486810417481307479456528990880058891117401766597826902565618508996484372004566395617849183504023719831497214618565624498693344356941794907027472302988967777477423134007903445472564304254474079065891741340856464171877901099332424102028916270239279525458034409974278754362943946748773196467268502352392135127175736104556374085370326014420956188816998515018271919208290797975582092109799089901186979164760513512785949158111301334329864580517022270882214138739553678362208936538631171956392699746303869812679684999285882345998806190532697410175714023245814269243042425318823959997579977478430010465306499981138858233726042623662361182841141600817523477336780469281609340051347399009317580805283870528838757604352774580090668865886311088427237066272259950973800134828541215928954443979046633147703098890400231721267706870388451973601178744422247340462208661321573370065374077441601977364029499585059561969537222288117356247685468539616201705815363852455222622400806300260456370580388472820865686388532122871597745886709498068649851415589954620052241136868873004517804851213740969137208036249703138786647092491153885004172021303039780246779071702411652515843602545484542449257221062399778051595599308940449803458151887621221118508269712811855299476415147743887331476314301795462819006968865137032109622413234247414060040364937448465037453925473908041172374121306286843963210393116803743820273268041401752246650672811088315880082247908800116114526782410644231166157394608860686714105383135581212500698742956568212769398066949656319299126692268429573331944674404339906117223711882376873090105147862854791334998216330915902431846767049959030767068299010145234437621636361184327261848420982680097431992623765864769549956628789667341738544258908255640309593725051418474112629816280616375707477798522505129342298954985756618715137674315650420565877260857159589009123012107436127552143347031042098977666076870311727638827383191084413111172897310397192417548113053228848307086041925406818895834984095383529207602561930197923408446747981803189474990289614062939183562491141695529902370342383502222681621205720906295496242025691305741818938683269435333462252969776853202205662826245182236858921993311572156254625378192711201290257256104899352774968239722838369135326887590086374317419298548335472885541642340783760291889019006822094929712533884016971280679426600144019144713586902619031450837677120185013481936242884465084162203307795583630496335130917192408567677739203612988137626946278612293383879365753077095597836695690745903095905256462912258963437848149674684464490776096432685454219356577554359609438898806783479935217044071911842847162254139386117129591274980838202376444572808322139050515381700520346299479625040041899650167327013845895691582219718653207719035215759420586338350277440546305264214293242680489077068922233754088905151579957741814948571399172979662472304749809304590977277965461339868615708006089302527647814736212854809495717079984112324720572729841334694114524179918909572968339506284201971810482265973296383928495281200397100015900241990667951082576245436861405289593874852687776474397058445548031806343181986410503776656605760035690960286994710778715748879567454897899437811509589538309531463754664555428801487107522531280317905597148581566901791482407013697632165409996240814087131407480814955751028261321253902306444810563472537386707039384069389339592015698625387745467657971295149447457156444708363821826374925617796452727316309733106292389007270202511960004619230181334004900139884801160543862725411396432084013988922460811704359098840572836095921228283197844845121452227201647154648968150062990458827606231265423986036023188021366118561907939473764801926543178679010154228268316217708606911889607708441655864070316346446780636936949167644182662402479662092808134219475094066356271881110183106163625030702628161344218396362758096618640620952561009602739053693173780842411911693776290658932643964803531385376701475476922497102905571046125076029963182039170462951403574802809169506525919314433668694834557374784709390117143545189588792091896065197204142321866698594310357432578096206373968944504264781962581294077701593927827894357930478297781677320079463472607118365864372106262600240446527502020072394803517189375916813332841768626558636325853987362967760484780683708268001610893914775201060246909194177093466921497984400016275653969459265900895705536109599676504325127976197804419628712722670184254624203598155698081210027275056211678896549794707398485785211849713936239141009183134345472516862093561661354680174650732855268068963833139241593247152742378253784816023486877306673963643993176711226951607809126224790912342430827918252326000398787358466799700165756714839944444767661668018252220644881533972792683752042031749950783230396166446170110924916876887509019895321372068609271690848761288563534342467439754608817323917535255559211853593322774787203325131887028579861868405106038827638814085016634865991109122371403424747024491683570492005519376433714142575324829812863601163028722655878913160564580069087695954906490016808566295314156086002126498590785356435123191865347582906926950369173119620166775298445071607211425785760575945598017577437683086124257041081986397801489113730890578661416064305073220163066961994580425761452450206253953957207532770495482632369251042853325656089401084092251431024224549393422234356180633391118048243947454604487883859141093458135231837149232824085848881499513338271529273170256990696981851696581936461919449265527061604795524095375786617210643325836020297919619256924321002969407982660932743992739452628993840167097382641781211464700048576007236563577907615656544249364479572359653596119310322222440022008421908537618195519180540682962992491949279948547386514299284661582019004586013084036324877237278253049145475771644635653340991071220729780567214008022216939484539733283063202934302502811771787248966311171116251355872858508738529382605257777447029672321964320230659847493477907348974453458208823757565331701135694690370415004982121534735105860425284365854952737471446170194631286137307437146424056348988774321206412700992081761587484229427608656465166478542192309220954746564992191723733714456422457894818402929979969771774020887764609887645809032811819502015730989331307649622218291275680068680928742143130375801252882161925828221930530099063015222767501342183788913490923325812091381817088563343916463381457457363643633545747552243898456802920575617546968572502167943975830799131180979991915608607681864821458366798761411326060169261238354670498080178769680506038751772549759920964688659981581158769779424783995734262439366351170815230387879491456461449925150531724904661388104300404846654286359655268997560959158965786905747503478008823163883964765916398381870018010500003261969566160892357423305900309795463620643994738044082932682674340502355692031766708030831768951609864291413892847662564345407693838246004009056849118965715418913579938829011613623717024855119423525256103466949264695929565885613206116418137145659727019747534161217339293962837281056342281058234192924780073170197943699563226415646821166334489527688141606264160124283280526979845202934836185124293302683161810773464284056556545348373384110096942145332372622366341198614719724876592690235530186356536861566540952964324695420106080603460281571046232641805213643121188270877963385915934517972096835859838135656209843641563678014597412064744042920725366971379107199149526855712470861796855915275831104789884925533993713531299078198680561018391577180102019742259609831866176564392283334910163278486959994337339450863828629925810852128779901356688473828260756687013435511663415877364744189202316809624309904096238626759009797605500259430267848944667360681523183612750498543003417265948095540144702579116463357802860298891768975648893721938953400828304102451577531200487891575885213818127985929096596356475585347967778067330717341032274541733079517389036788824337650736888217370220778055432456740024595136391280879148024170907819960519580819879464201167232389473055083072411267247578402448554740835889541861448980088059158254327831149507148924684225416381309446101405630566715870431529253460992638708253877591754514044303693175091137633970267431781887021888995427165293965458218687469281099086380920503162058343251443419099132628005132200108812353956759111580699046387624144142988482595314517481806713203950157365771169803963017814425557655681825724755120278444681632547073855298772122929735217981684579422414563783743667595375907882979085000768460867837404033675509781282509663315638089790698580277987276021695404487647593118234205425713065072546740116290582690807403831355301738646632872963086311577494249856908579839672715744588316357237913278055947942193626282598233058923399958011435596385813563667140308872668005771954511012763679314105927360588604382832929021642343615132090474373833545629376034175569406101687732444945162508190031042790070104555531175691525739801156919398441689398439082473467004910389748415204119402106953939446649421695627573023679565706851379076968587295011821407823433961119083070597988507602744211235424258576298547333200816074614681218422460743298693245818686757132353033679222825177628481737213237819817566115825998997664043322473979208344441800247994568187483579489351368735979859305246909570920429571314464070321324743350173193781069968991543162731759579086124543237926289554469008948201563893697530488723851880305052673646047332222389221791038830504705995254383880502278236414882362898733077704323731247520589546172778075972569587403850520788554390491081651498490320021472693715569124881990933945585764899643543432983993690144260134071710520550287597271529435042304499994153676634567436695534748570290372562017202804523515283065934896139490915184108580080503385900854981278134030556931920319092021643914221195645388719688450847780318901963739526942864953510437231404373582889078476781737389561921525650957841786439595612697141889475198577597904525064356923987850321604815683560136316936195013786592188186343285781082680815773999026625809620980640220304935228071955909812433433771305777952407201645745653666896909437065936907230186481073599155715904069761893017725473265388313025905198228325679434225355985582539765901418972964099665821335102294367426245026663473475416178890956602760315549231968884884989720271171844592494711786391989999163113808256316507972872395096447040927153397540470175199614295811758214727964970096744432932211240626013203714608117362614997770637626034781645053085681160686552914265659089076798997779747803795894770758551170535956344617210119163834974454230140914700530627992178758149778085203688967642928194640641773551741592832650044897151692386494428720190046372691580789443939831830403373856012250341776715238165056355248753132964300913002191938842616749237826202220095005162189655884795990349759787808473137170514691631176505572645205174370671282957361927795050318161242467383887657346190682852376265849038479834164468704890118898768550440061388692311566446558596113189497775302854947769245566455434520729040835575322966851685185188507596954601288480239608294846457976458763529471057343209562108005977939261906914339453637059651652983786297756182196847405809905589629330436268989234096071360374396184374109164711608696292035831078656928642643905894109810322780387546692945720460726945419262882255328876527570234375584394338203138556345944074919590592770432349019789548235927109147494594360555232586979136200430754892355695910861236429414772957618413473096584854562970282587877249991394511380320909906220425609601145475982010000832933028424302297180028874912221628293657216754223332216707286003686037508610833439860768974369811280579574815059077614525721303663597893060434416925877751387244642905887148890129583277290617623531089988916975521287660122149799904519798343306992484101551907791705212731369464372487671266999611486036390387879517874085603168547760739354895136617791073477866558021062512694342055016168969419461047942055716743612519872426527742073312799523845409589147841377298118882847623817619116307225417468292134564810499753870790789457472938358254453206742938512698548280847255788343431789163950370538887465921428950390761312475498549990463086377810522774352215235657750713628904578406472718249464895410734235686095533720250163819685803730671299009817764902926718573930198089489247649095362855311734800322391088269164222640406128202213701218575592165526130344777231706492952048376378527683120369722118673875439282357042378451482149484541378390191554462505557570014272958453901179391028635574023227293022928963614257125967115047343131538820126914864936036613379239206501238220974628491361038853793415403559587924920739917006997985873574078845065965435684596430140605995291584117314095862905617512093921377113322772201110421318332776290383071540603186687610076934274333342506922327592304935655136222676072897808343094363863948443783230576818100209903046916677525189713164441204633210730001411039148214067240743828941667094425120052805266584325005434975024514358675767219273648681268986857916533611455293094410792768333452578232689246401487229709455866849381342692714587628400991543715839726242889633008111110333837271925368306079208380319672856858945934161197504777140077607778667719925730101098701166437121234643882978870891168662991041660669846076155513238977850636963308584329172338701806248966545624515359488889801414591976695982336259758366328175581233009174511864417645173020843717741084570515854247819549705835083482267813667834594237843660662230289831624760840800789028329866527801315886765250702993009316851154368233306678718276084133057287963539479965228410542825744928824494624283816674807509735561171923662924936149670520519119872708991581759464684790493628080297645912446499981047122199207913786067550282301662864858842504305928118392100908523347350993711214579868158029222568092661851855408077098175665306762499612457283735427839548963689774530620221967053094996817910971204133308898399297273314708642542963740683962689708282678460441824969984211838552983563878906265377051541966958269712807163940353175836952194733256930822039316525594405383429271458876740273033118416262063777393157382671458328402686598487331529978591643671665960138156988355932976059196604127579099010357413735218953423443198577119317744458453086713730117394049166856848205829463713061015141911985765536933780723813637449560370527316310614035089634679594905153707764987646875207851058062884286131173164657193676838416577910604068851927724063713019326697915339746108247266730562581866082720538985105425908554588786108089488788208071621411731048923161990497709404989360910566560195174482635096871223099082122540086612592144158682561119667476288211878358196739478069569696414384524594628064687834577476424001764534176721377752002591509270432699578939451807796692345455505807686783254990853583630375452012621755723966315670131669526862772043574321447203307077191324886191376801954208965506202749544753629234368577320925820143170301646450912806459597721337965416752985324674444218118574272016224782989936430384091439610977619048133280952494763913900191497422857698881169875009200744296873973117924758353002825444233099338381164349390499392740621794755438045719136326015830770883662180597493984310979936638858547266212386884552219065322504590223192832122372007401702786047572255992495905088583619992639035650343011822698874280459113984870956856364626287165287395456836174566040083192096537146698782329467866583388301064818282795108874300573202749444725476854719247745955399027006698765852986089687095276203161411527182832454828546010771006090357136501637680139310312662292931890862596255615965688824855889968305225286988294327439908739772095091522275490993389450534470718712574047081133576811353860991508042027002077339618079450411935029110932953245204340433468896368663133879794071380554226762546438275648690820832326934524957142403794358883128097605649044926176465050159808183031951906336969231432300707751027157271416890673220067819731505980081940802870422098884734508968307374463384301252666487470732923581171760619332266879114865155172975718759722345517265872075287294195943296384811509127939349157004358002401212732648506770226992449265441271298276179606248667778426143452675936009536678039360687914634836417457479752578446925126863467339269206281890759039195703371077794204410310653643973039538495202328984311489095154102373448170952603788835289452436016749392782347477816737040335604595261241547829344218433204233121031665291765458688108658849588467794701312353920179593948088534780213946433244968793707943117256950546865738375117561894065902957060268979232498229132078307806090194593731296532984854228186954759176329302348719769810193461349968723751833299570944065955195400679450380500365347477952883871291059750845395522904680327314425841925206422667225434339813272959168397489863932261326047040927207614785767815529132236048777090657742945887681174141913384385854665663905577545347077068204463457922058410066958489213838241526148751230093355821237745068741953189673339107426936419744967431209249111663033540493232288308959675294693567747839072709714164474945564018876433145829681183677539930526031147338123189604090948714930617387799308484216467897653489340324440136771926689362655543189972723009374314122521472848504000427481086193058019782838587299798805982177242781455508669030837973912255201637978781061810923172420822323954767866775226861718408341454269400017881635535686798406033808707398443990135646140591254199114104757162585117788697855149084113312968619600381926414650285142010491465190224964622607920668239474306491447634557648503330145668580156440112247149082371712724195756682994668662611089759078664191295640149271039517679805355147690991987330332694909447080758212210057679321324406357198947486961065149354661115446366650497173052919145526552591054313236717396519119804335347501218986388638946384607126415483388081635377262696718837921882395457358460285626056591876940654631884447434204326738402286939117799037015461929348788396715988442280396436894601074913615297646284639271997834801229594550985241006439883752525255610894164366383446665365716527513765788772843731550405248200586588563553594754304001901240202929017708616897224901832259052717127066600615921182573109106303066656359567221801200494098442943734318342155089716688928094360097943223497601002628414265513661185042362013411128159707273168362537785089274485116612234354176968172343207807547114132136839977298875291023575442698722640258328252125261825513731499630271125913700000175982423356556508834399334409429476929196917548615403845809901727421200853549365043225677181414001163454240746221389005323422297751015051541450675061443041969425948355332866995212133422927393015574215880639232610290106265692453649715204512330714258864576655633172270141124815864421119164401300546707346075065337648689080807051197006720262427235688607961566762371276911454302943547175747251323150474415018852372825251760382761394319040967329491223509397644443360067758796680392460732759358192559431707415661754709911017448670930188294062562093831412597458520369454729138792879401613459279680694565925065880660617870385965210837405498261771148586698705822084453138593390644955142585683510961657658027074748748671115295476198728000794556971746219789238080082493217229192480674900751957787202114022034709444435245373761185242644879443291965914351875595323022024853343335226892316277243011591403220819744489300411883865725871246132200711878052389309970274267075947132963023689742922136170831906856479884861261929977361835242874517451383459317028659899797668377921664658025538837517823325816623765488213484376455718335558787944393586609171577626127478319370664421754435423045375216419628322185541513821930068078637930455109715150501451703246190840703664581008091790636637309307050346295421844937431613601821483697479753671813706076128187740911133001234307812362295935602146721342543439473026748479821147760476011135297815083257168339206955101797670918919097597718008281630811537329611567172833502491201517451423173896582874426113191077559400623035685313580558282044531243625225308015044744400740597917613643232426180873115004079020262605359161985790215178395384758495960602985640058379893074206742328970815433237421103704135715030529906053230990036042567896569033875914615206875999801694933722784864248187905227139204688120857093773562153922760682643758015293462977395609223767881834120219487125885846294476234049863539534851411693715863609595838432978173728458015929031499938915487325059410995509244002527311719063619851550164635541986619933019044860070109915525365469415388071689709623983717901669334026224560388839315115757901142733604334169052314771357850446455289856817956306501071127289724885480090035021047120669551175325114176236902687845560233212931878477983687569617813237318800730303006202430836214612007141146871161498150983144665967941276487498860924689926882719277158678565734410703239634946448212863539596423818973320939753347365317282878785764298930711971592850569518849129805264569805200133084172462573766172442635619783506037340416220046567495855439304477224748379606400942794719732446025743168197865687464178204856152616957879269437529699859884543505027994016882965057060895517866763392583048594144521898356034056133108998559646170375172202304723322134424989107211394381039382729664935857853142901246906455265450235666650793640195761381307119886730047516346703998946952568543699889867319369966795597572276967077527024479640827593320271569283418670445301093980978874196992037712726420639453509868739323002985002856206453239418453731791562854034678303453104667757273560169350848483793077862919847017649122180285250456352901603471164752116578937213546565871855549544427371508099693876407464698184470711043314358269940721422445276348693851840099233498957692838630723360021611373875797959473883697127816719841147661004754530972098285145970523708960239472070370443328328691754700294746364906833617260137252610783099114636757014395278092897607327977597321083252567111143828264230610913538324065883896609046649867570117649719551364094009766382328833503977584405399282447565132574168618675063886779527323980920589195902492890004953690274645786711858911168849638551798024540971785374229778122727812283609230144418021297248769794310337452429384485913827037914948637063542390025229193539472770137575287508537975707151571135304365271140845781243620600382729272158549196657327731953658245216770772284843732094378892830697324313414350372906680104546155721717144478310107284007481097296915173952256417836339445379276769743373131092668081502677567855673615391954572189486416947933219522898091206680525198922148521634279766820315949229668513406406871473586695291198982998550002114421662886978992766077004370685491271149607631731580177594638520821079205036947017341519147804310677968838458263456554979943954840355676528715455291082454128399421731933927045786729494773761022166113090975384735054876561863782312388485181062901631470531180880936149197719819804613262146159749427390430927735634041264031780795845112777972282893973246758095194706398767086302346349259692551419498757914392264422162372611485356544815876928253558743381024844342935436098853471308199869983823495389178895063696387065116023612070885966437319999448174580592673975222903817446396896834611327741163120228663999637513031144371885997475956571611535345802408413098785103435359777873524673425452410823864351654929489970893776029727427250184653299014917412646895468024855196018190762145599841613639718082245110384410391860202511134440049132888235323173961536589079419378329064608278427743486202822745967342581483612662025045861635092745419850341840860407078860843785908168405032128736062211193541287221534405679640129265118563397666885126321241652381466455251159005347398534218324676705138504119915380201950679470851220344837600009888591876464047842554998156247711399874550024295600063009752775341463545374597922594958967993931239054464462992172592235997797688541403013225103670236079942293214984640819271529711173299312614598376849953833020029574654058394817351999315043463796482779028857761247560691633798820054119047986154246561656964513985808771236130318479500635116310862476027679950371328224770747636528005441815408710132358639989705756113911403526150281296766525079190749708279598301555318374066850468808830178616589859251658596944210640257315813206496183707145074153488095577278470746690993876985059375396984899119361511396490211777590079991676448796509866387544316836314093136646488344019469158263213223833566717724650703821254094560450865352891132674747359509477609698177466349536215240376046323070596348018106574712634392928326399624186868588142742826056305559582678134259279236949121748955531874512567131274570792462396610636526543068930776441117400028252034382346320944435650749254285410800838749883680355723245083414104560124027069522214505205554874531753824485493990179530978493681935562731962524012318298537146725827825950997420018020043983262123423653764580038535197614774453138219476002140519802884679009511796638253171411326748380279381983166238677130313521014314203528071668032784814160816356050217186506217932626271463440577060518364150308794578652173576451276225124149458709814090413639503985002828851480481804803099745352283754548336546122322495437830677020861053907062856593595457763176408555874182805039888970389576508998386588923768022560023998284605192918273146879597028305030169599017822837406646627280114192525002290624211584545230968140469349545643735639622081411061628429781868253053750572880678836045974179100604517205130647153807277297400965354566211657914802940476041412253886835704256771435705511961047447554892378457421983364236350931141516764243286389666063419329518892616477061176519336537911065975767899728461057199930422482858998277199718410942285934000145856140802535230885191822927656842892065409005470415770469620971396381134034694758517147753516676747850438270670298535260375896688890453144108240319121901815478474038681319316221349981080371011887191056754208580694903644048280391854487017901478002813445065285137594762429582197543314669225649622621211194158572716948372206259485478158558270665778920341873632550598677460330486649782973512305924709250729465053918396764413816504211841997101601269097720115730840534894148093251602563378624609861399285380121763520307460083505767797854843960107649900463925856271067834257040829521715000794947862771552253973930044057277392974269511300409747731119972121032696826480470877675814177166398167420142599647317993262645738988332631855828719341870048420344704787718632429801793376132179863498663556629763076002129922284914680908203267329199613272806081695927653012999606408746411774815837649525907645655901784457576645185563220066140467694742140615703148663446308933952116135475003803181396277140560981110956930788386090969056434349268681983765237685284848422947789089634904437676599914244924631791371630809358636031360569259008632763838737775800057438763061889893034677750165281118028968003600757417834367489097750210846988371274155565715438207743301378167989101806458078273300332256670028538471327080542829038511512488800592776354345200734423921514658174593018861019951589926485359879139078253932987989164614352774082086562778904651796972384983663389195224100717217307173171152060827411272883648026370499043891130511752909135777019360301350554446857455033309720225869604614738667148636795080399888327036104666188602754169984911246704710702143717817374351678066073647221445634454259312502296693366047704116705954041465507645743801314544425938804505177312511763183751716971455046435820443650196358639301987142086227783247860043735274924091349490055003575596102921756593854581605106211101980869529947320033374495506023666005796224683826213942384888013090545876836502267479128727083984359986660852974319072280180359672168767181626468652095452834972961409166886304334819200514972789393631867195525821875818671637688210489177675522362999401586887907819841193211273728156936427941395641079838479237348114493720072827993027696629389075559180915689653678157553780684765673656434637796504292444290924455080150454249240724801967588259623819076947952012885171545064726852438606356770964573514832230536607136992888617216513709583176392488451139268647408792638312706489357868674174057186384613838896630238324809265705354890367075572120320281270141952367015691916776622291408220377655557224040793915086352522503247506909599673292687697036719675091251836694858977460580789645059442558113298110860464771515587170626220369613894601747909673735168494887210832708320235309622165116820068712448670779723500379814116830460924601899673691157807527492861142170905718330427208742342084180143881455224258671997972613758786897031041902979525470877358268701669788010004015568836557292267046134226276989703798844316027231548084969371558110389369492321804685842045783310927721836173530657591844309331146676445505775752074619853566607590956651127425507313732617979826395215295995168209099007044374893601630381035572006517082468995126933581388455853729536609808781886334990983267660108841768718078641964419655604523587840677820691267581849202593890839797732782983108475991723014624403278361932595604250955412544105229850135396234422097953347421642383223651406395093249064740350338945389915606382057907183339238531544195309393669992240071246864923937032273394367166206075800589483720992463508067472809274950006042651524424616696508917349825852961231395268513526892721447944556463673866277819402879861403327099721327040623747985668238221282245553272700870190208546267026728773495969356561848245201375178214561230938432605872410718291846226974347071908894083729482464906422385103919326540899510149080047188874684765094515293090985244269191143412631431209835358786539104901929109574708358461320488588057218974575573802482330974168580460840550636919150633762972358747099525380692253687239097372511309778904707499963445613887072480558107442872880999478417317119765292546741470441098651889909679679391362697934033491870190397765147974027527797489730660903339399221354406198738526964724755712714531711227432703558509962601162521170288139202560097787922260766994857208783722526944564863315320295181853103330125763240948275753632275672315826774925093511272931473052257895346567543654144185504656839304183350157963654195569819087096131898630449889294643108239551588579991813118507294541857115074509241237046537029139332095648414590878833935083870298706381803213502497874992450297710587195317114308245712702209283431949172103246865619662136573679272874480303845317113824402948459316717104022345003142024698188797237109854646712634434265869933336980280743378992987101768783137300014325444787864730589152881968388583147070957256195849334934756457112361914056769356321079838149352355183340833416193024400238047822316618187806574719677041952719549009159988390704588424196671036377427323327983501205160702202443882982194651401852276433414688971606215843600757575179838869982804228502879689237692828482464532963141132459257170909947115308230580761019915004445307386012835404909597930819134917254367095130203695991681340221913880442810109021090232780228192206076069614502875715320054457753826504587328680951662131590430246363079547986194530204916581768969438660044222821585346948043619508426095530612584419428998624755401807459527652704861172542345846739457353026695784737390799064550520421718835856828291729895932552678485215019620092533897617223424420121021696665620421312378152361851711910442488554218400487846381242211303746101795449476214325250935967018882677161506264112172144531863533941835327273332817366845553535190275157648922579665901381629702160563234789969861231977965181397080958596080162970950511447648952861931310044634167357225416254707516769194944264227314547621819143493010249395121077083347460574233264693488673906705604394607149452355569360190347522490970591804167561912839714711151380518438175084242720266633361495180513916530221984237369255343262952402714595238814379362831136615676974274573333038716954460719128399711211752939141321394784110598866492018133009402593161820854890014828497532566920914304674943302537711237197349490553309852703599294296742306497396459493919061962175529670999157662268788024742646910499500127631684218003065896504133709162566964704294865151381228360287422287166892059086610397145856393830414100257567102135382440974930372480396727927964231963945342052061636074267743873529675468817123995205859866234921817949043424343202878092555892033166820881588008914057892687342696954284786418802911075914063976803319411126486254887865772483643806844994316125155016204170891170809708610241251418519925360729819451392360980130270134949925412334484066735194974595609529454885377252560862070170023092827535732836304433480558753534497536780252321146461396408444911841460096157430441920296401724610682138794890994590582926774797694770991469128641090879036968958995840294131026341409277248559072745237977867674724819614243643466944701318556766659782465092518180262883356524385809551627837222988584714368320142877397812989448754096184127079789050182531449003953179728146978272975901234093590603275690186003647554964490376644945727724969678930568058109347949595586179267001603997770905631197419176387981938409548355306582111257670808100999955178719604208024611390820092083056991945673024084746911720127822075961012982586188596909749946744134686852924711821528117926807715835204837214220768083000412032963976790526699024135224543048221678339236289803407491872700280567962360533034076685881839505777218600273327745397553969466451115554887997353364981312169445509623869817133109456596435730425153089673377039015911008402233645504386057181127366301446267705980149530278855114334916483822156847921796901826560379928683796956946009430168991118130697245545769281177094757841158457225258098492447290909979719952931236621589847355781966952261496443510839851504756448075088850847900447913638252569019143282208292577899924503880348065199024117020809050373344897003749858863621274499855894217555428420912695981949259041746510044129389943116135421070514683660396707766134722845321990103746898044829417169107662570045248950296762979596968438133486072908031228417480658708317465279678267327007670192746013161360331923246679566788447931951186678360805738845948468925492615985348812372749742091547170542360936146880958157776735719390801394275687759428009724857196256568646566781223144514652030252115921574532902244330564111585000207429494054065765209160219511032840295771750386310868536995469112304324247397197968848331725346941206363928062334034603821367348875376093717159797835342879993602275879232460609802591257963423079750662908220842968975987765024634641175977469410100274560937738334126159322991974421580526071084590048719677326207170764643577634246354501656181428594953023657502968425956890944899418464459100868776237704133074755737445806346752707938736822231256834459164658444330992981727686460408473385107190097841697541867041173773358856670108911513140620384129279883238095423040546417220689615206841353917390241676245553526844244123510409877750845231067084868483082227997060422348508065087782158823972178775287784056692235010111014317090209246124618926316402525351668218197828953962697477366170902465717060201294791585476100290697216486193484330227219563075069006440827105559148132623969732228017394779223764749461439368164320419098387643682037190540138043329401215929888057885244244317469972371579640100322615990215920397672245541982203151416839868726472997773953736770138447894086247302217099604102645774024530958096061424908215554984909232793002398247904098260488640756220924582051225786158913200585461918705882057427958850545155823815474910956562866675213355386569775015186365813920638517455701457183912160706822253939695905333484998666243546766995702614337616559665936336477428896676068828011026778429888872424145287623955306557542112939043099324680575785769038259094157022533710533431142393908946422392237361465033354063082130420255449253924843028024189579223706670075615911785159639422200875315768559381887637633592949405882940566940385916003805263174339201634958130413310963974156130004276094030908622305724737655182033022259130763775013869578076375830058650997595988651697211497345435145116690051778919390447701662531374603851995983624173235304945177570686828418307277174245621218255390685649196733427979609172069030046230141279954496598355174724223532051312611254039555088594521535125519000325096634147159280222048681589273043113189079068295410237800290994866152298971401498126164874367327504215962965035343836685366715369634955818601783186634495592540129000228716787497839306574297039861952102932120386061328269696900178890621936669933694256258902040176818676555088390523554266464933308806807135855277534838773053113215691612496123370548103365275265610424921250849301454678930446482667792109988078141764973109644258648033372089282375590311509275045299594069225334141372060829864863532300891721555830697087754676609042463952785944601609979680952945846978672160282959709030284933681094152990267418386267505180978874839019101324847771317266866047963637558874943971800657302630127757387328954512802183633667068018084367130488609081097443968808286603020432091559362861369254887156708756088741773166539907491241488013777692664731708160952587992670419743033420846170523496043231918468012516787647974101273743067642264698076278266052068622264489789940010632142375518654334931518495345739153106599065874181462031968756426481323059562661101340886852383351928379166502316404051453479165411148742356309237330218638868041743193529674579760723359862688838821629766257181180397001294221857948131486057278365122533003820166918259342057972439407976351633062948236870256972765157698629241042128750743334322352266322610539974453163284505200950478049225897940172780817307426507711840927464032840405510714422001496678498192065360365234848243644154469576516776731951949680784954259144030464750413359710814560347920268559841262404249733571421647626341751945268878869512978455937521991122100281886448157787059001009649350312976505166379246045873949069057590462825690565036876023533675784412205420563136013191122100920686017967092651852792714648048763190768610589314008038370180630010884514487523168517375372270493038276577166936122473296938611908633345301623650707472654812289875634732712577830368835395807537627380501985330597039859361026183285516955832118968172898332668847195977108221135949904307394819207012263927556167391296422809784835132468304385519418219758232651638695636780285113498512250016870109481923644544298216404916633675554841238947107996382609019959357226457427514491100803949608368941615805940616556455209521024737290249620437960887280484446537873116149779305073545750318509004384194023005867824295428718082973866400760020298931624297621831798060467565626916520561713076351986863115297725781740500935465185052528985018410123568713429579499750530918357957361683355703474419665812939620784456447183459816882081757488308158130839692747217913006095521675931079567265131058331548922145943874080654319967818185324334100284518323785820621652587836395082638625043564580166946653840346276892448589185682565464992834277858634344471661357732564288688211849618492514597268211691833951259286683997784024258174627947739422863672141088678954144372587786221268558572695708034043659830001280216202201974305379029335466734594929699299672580926978346350231498219143313583584697593729022517793538693538988253467306941221512105067980709550477035584841122857516274911188906841754209440599549892915066338292119068850482860923282978006435823705903753710489382052496775858313965029256132577795210248436564514407334586727328301762202348598162817515780580236248180451184232414147915318492084737570622547130271797241708059092637976623942021196153606369310685727951563351886402535677689485735389739122391546096296059461385182659329714454034512027180725404917089311728972992550725834633794351039604940529508928430124742273732985782523299683877382259272446706734237398828332257458897730685808435701968005237375720608171291107270143088150498449499073940832918849411564535281268085333943835131438807281698904557427461423617095955496157416991462849266910673968162853951598239892047389699236395670396083220958667636623968825369374783343799640332969666390634076606295227356534548550901992045512111861600194428163422431068380654086086135617091916026919177060388205926997851614951508004621670819732374948073361639854772014473830816722322203494167124067357285623262934874656785813107687872266734766522272588403624905261975168426393565094736435794884742632114171340461661890239462732315513657896572858587112245123410035519367770960058854145727134290337036875914740634226605203808352650947486558142451741335325232674083259682957509905226658789624795793441734170071229526794435329370154742306555181033180183479747648726461461989729565520419393456296390247315755898322941900349485762426267327413569171621561158365600857869514389469523692369708495994415993481373806828564344215152322588273274626800325012958863429729277046150622647501071395038896417292871255642502594780508908470969229471469253113562501113877838468864516455661081234521055265009298095957155044050380659506021760769862809720060662686283055638732918642729989334691996789866992128844144795461879245112591458608149819925196204547783173095649226754092698723474865645774386129427963389629723462124526582030561111551554152944164253038529757989087841833975355716362245184768980374670201931836271228855281335755724496831487880649438565357813860333185971739926619131346004866329408922120015045862928059472477024710700597189157871081192241502609688773460694804562829491997312473023738447487550445844343898331846566843837613663242985890633142757708679488039359296263967829834676647290643423299737048158582197721931417949884378090681025349087282223002578123211877452208453303257166516816252311647993551523294694863001376540004891058414546036479099394811052277020118679427431552791330545557836502179134766023278062471545416799766642356138404597391184625619574361654488490478361042713501955641755644699001806758134863573349179743057740352867078397744976852247078798612018663441623829686964790855441680395129888462609151426270945105235763695653157835205456981019676215006345381699062239069245249756379579202611933142787068952882227551683362566805606620050755783049682463662747203819260380543028062429294801736878125563343663184366688545354807232031768196075104934725663168370293682734957409169627503451579710007066997035483769524493071061441261678195821335884530611835829050305720102343886681927445457063438259816343688901924627474842859556969182282288887747859255811328416235492900582907027905224605185295031115299087446567868124306507622136323709672215420477024286364844870971911614802208711641322202646039344646909181365457035290648164149110260636805027712750241343816368534590636786502276106063861397430738687151920765216731066316345810546105754564668244180546101078348581814634584754627335897147589856895945465380635067515497637617183377960494325208814178714300057038321733793506752636264989496235741026219456203155479771458722768492907245374809708318292279105343353330013225799545399019533028210032171589739114945925061114148784816066181348385402332869136859571414465790512320294255230323962219604195713942904000043746988021156981890175464096131773106352592756622651083515328143413085089745472490986153205456591520053500445751526969062903305277483757722086516456999412582152688418410935531203871998508491343125208366635107829882557058050048472110887955840447615229222143465027906358094536814081984836698598568775107973728368655745086208132188006762254910986528948354161983569330442182447855837621571573683471570704806589315935750850476396109019016440665371875196893817504479082548001493867925355011916733985312878178778960177747999203917625574216425236484411897599185799553961330335969232977297178896523597450188927533266493370869666991718223866401721345862140229190820618804131281195849622535389339153573273877889449896327916165566920644421231805432379004086820792296110150554315322966776946047196535762209374021485162053904904790790691629601056551784917754211632534666082586668217868479165441337701684119259939509736259837530651228878005596520679385333335677096169093682242285455590506274929425603839448448037494988372033502283998964436173574943632153179894374448787473088431312901086723024026449401603266135963240089690730965518757185802051565235332817219846270056991858074619739535000577080645627861687593098584824252939100272808157350885748095988852215992719190065644414060000107885731247556430236582827085060010142718445252236033429831084856863031304914750721925443583667795776390631204472358526283115031582361109249048600722910062892194736849568524021973219545981291902396083963342077426895798660236026256528817866021418593713992125293457191577343608544454355381956610113543005698515925433272952522286112977843645903298216282816844627318010481098969581924370068582089655964000252756630354086734604132484996941896040733340945869628332025431052723963937782603331032175643041118449638623889562871080614104164902430223028940763196606176076527289786212341447094825430174536203612561871671394132749412216017967422742660778678226931159746301703205915363570335022245531166383058205732677949302841340115491042560750012120683176582504782145196400837489761311135258922321549680788777236081992004891468571210039320055213203370130993801850431468232864499357599188503266629478905247460581061689481054532916686775728823069285374762106867648654274930796713375675406111056561139645185592658240875819127711340802179472208345533282220530842069410308862963577883525963620011264953624768372324460216924594582777367081697082594635926629654801837635580143566795235127728605844497401420649340693553614643696609391226253718446401894531364876539281250525402203661396041858136671957110450148287043929914869470196749055992420033166321509388280761999234351528031729977356579797752621730043384469240784977583513285266258647229949920889210020104779700012612822309604341773370854008245519874374992886911498027877289341966662493899149646585959334522449236964788370706908395737609456227580838173465266786781671710617189669177894795227713166937974990352728148641467985477441699624745615380960541279219575298102841121269230439424748353179017685396752990464031640801603722260633892138789289053736639455180002037839719075045822710917942144903909950825101120738515428828207051090758432085922547413159457492354580515458978140368065778493101735025257470835720905714082723565605125639531339865154449701932893343402486083459098826188759979103277716152653418323686341672202763941298946200784415661564042955294550528627072120140017459342456891533766081306625423255946538704280579459268951308992050728331717901476832374888506514840291602169501383135400905855788531832216891533938815912039697199546590660207048669111394592940352190622116879605844107830100670839467948895205781289034252286291907137733198352266598239791652848880582024168223133949985761176264157981708467912326486852347644426470125332622120086412972164572187165609384415299660821516396625135514029972007441654176052954402300325710307256065621880669284203309602328623431463901411298466187206795047293974468002571311016976478925774165908627050621924927023923749339696060297000762383593212682421260149932299158710601250234402502165478262326085891492650802005667619706937651853290037018639880800048706294422263964002949967534850040290985890673507017128808620353612900786497772765095034859000877728142347861488307024926669129179039251209686086268954602027586375152507672718895989083135084099089969345121584392106478897837811891863131967583530504955885729021816685747122319921968446766741488768097286577847810951898119585372450544131304836319517084703009138373804663468976616723295295865291772785732845802230588667479225250548357114275194357226112857538476047229364735298670419700556863188368268494599621527070735568215499846487159654941365712574837794043517528017623647522469162787935683838102592972978957288375723002963990668217647922275188775829320652110947608285473180423363135935276672464631711983169739143183708267337562365297703134895678426517174420163689702476490058020815667047371786060974617973614132845301490611194839385245194282559001453568216252890304488373413140291583630658611478898326795923174851671447098622455939481522530347166971133340552919163909712543839491591599581341482478347721683831858899753812909881886320983987904431344057078265420191283323538103988021485262774035766324300808057830386387715381083164021454506137155162334676514074647280469129368814760975225132103723751650892899391847354682972094327593604702384179713044862519846713658812816113734160714792248853509081568100332887974151284522086762901016467756652505663787263039685791915537761620806365948233129891308620814161665930496559988601595690810104550221570939463687853110165274927081733144267666157638036354782551351498399074335251810950217943480361237193451094398351752600562235497925607961984090440387058554071071775782611243661504743290250602141168950401116838485328849396623403789012713350986436208706028631896260065892121329351165871688000357619983114723479161735129128769428209039106313961974245483936573607635218144782461209716655536398717848411765895801632795096663769620868981662307449996676329565464916995059590651181355616121998042721580850882813459438190680829072558991560305604830420979490407013919353575601287301442691364461941084842968703537949455946017625545893466745166151264781020315998791940210772633561706793605347830744652804396497420302200748714289145742873207835087950335029018685570165300754234252038573608126147325061770656126664370106934756674951243155248695768137132362781568587939622078033296675828104526430853065854519921103459353727558566953103949162887409630249142019015475657440669830256309810568797877439030153131501513318426715418949194934525890122322926311878617847926813447039128261857215379916798057283207636546796265915503180497010536401809219470148808424807525384262901082160712257675890606793060817786091689016789010149615617621178943050246478026071350968431842666481832267449493600138578628974637393899752403161817616195090910454180202959985459509424813328893465817398118531064389909392071801988310654860145744536138125751925527956630925279486777443040947670768344283626033502532107115065456183540579605436300852164724813237294017928049912285056872537858447252503410936408290862700170820011768503942972406157761430289506413931464555466092522204475085992233456758885061964309115435525530905289471708187153535584527962061459558266013182237309556216341546704136214718837245466686246537082101999705351513092666476119777099163240800758683645293861718500168108992700123205465071453847055220076520510647556280129807021961341632115091324980794693726151285982024998042008760786142043343873838004629300600275104449426117629601295549594646709736018707004992979470192903001335899130450495111836475164583358382443145101468209606304225158861035612354605585075094804238351187620486428420024225811218263172626800813657331480303279337990605789414917997331012121918945254075545981339749163105490672882774172793808752042105082564900437895659803367313081261702338100317858214214030358991428289956396218924831465154731661972392153244415148556797792262909408062625027531322668076463906153573395005220863513995535875708928125684210070591651407808233304766664726924373122608807670144764247555244702494693072553618001637507099337970072268206819450584317794231585977578407281824108282275964155762681333778138419011489406930085616435961158674102959542884564517211761161280903654053942950675318784545763803087735423735669767094031167442004660254620567337113458310406241189879587251716262645185973949176942838918398294513556025137273790863790995570099386655963211368130945161080406386716600330371250680850606044540496188337111641108053564801777094553644782725193172375652580348052105494142229074382876918850538941891265068942170756119646567562974783072654347237733617170424318205179228263570833468078722500281840063357881379402531813990842558710395497378682158593414353799949617964695573636410242563426435889133263916732417890262663434715671879911945859856614182502482941060928781708082415130076802169435201133251856403848249323664146351846644850909963202920452767234545881568660511621219372588693191640087570561636330199353387202641808580012634613193100194417673486143424686022715193705134428711263301947044574738337993364714806193919252314350364215606777611538812303148255674010696876237509447479098270244207919628909686457647799085190721936438628980122015551226146782006668853932885081644151734914071163267169277730890072908822550180350046488839083722407218004003328573411810886847109073945806459598259435265341959488138494988171383748569264716519361315941096530065463287125183527017817831758245572469428816343900411173762430072244403234734869134127981118634000967890674342207156642420530133994184651566807162702142558852555227471140110462630255411509052594080457129825736101894130028628705225280514872704095926467020993572778941200141157314328311647518394885271685827256010048992735280925242952353985430170456693745858151507243180149559007918300277706488275605322579885221971921804354793664318476936899300678757895417114210678059714093799621793081712020167988439114420353656977302385130472364928539514058162948254196402129282487129024769463867589860034499235921039654911608163425736405678182260338986665866205238141201832937910832648189715487583224908522010397798969649972610408746294414398806267006083406784698811310874866908925915473425506091639653084973573409125379172076935558413245159305409307370528691913649828123169740952236863109273575874317867256852575913835579252683381478803592711925719516393574721277534507772310675540060124531272565468537437373884417963741206631156582821998393888268263507533019386580369516333498799350904290962505964695724120217810795254115366155468916802286559516954049992661203771228123862659986006098377008776408276788556745758395079899445483094117524064940726597212347404548072885715661019567654151055480103872794504161330002243540671617293022074810194944723144820375613356492943227813127211432113390594930740296461212643421713388751355999004801843782830171458183143746611160891591068725475667781822510939193093240138702943656457306175115570887243297622231382465144737530007319418736843669573247990687479158160541824083765860552204719525341620236556428982997452828693163042994464973501279676677511776389112246404329320240888967182295766745458894146185055965960600187134884829802359121932385148110085451851295717224066940629476613017452174695524012908003568992671886864200344508103723393353252884914014227181059076296872571100136665207605046103758242362646596478990116198045561960212399625114383955264995356078197580448289046146138720208930680647813877031515763361927452589182045659385626221330723656749748100377063851147567893095421016751866182302952960691244048829291662972050758500285755323723123931424737591035370661607839296593609550738958330524243921890823810567585997200482927949750047796781893609466719051746226165927646036773486728557800983313267498872913049543868816645524622924509222795772178471563884781953327128662910008783086731946236559324626168634105426894255719631523774207609026945380944516607075248801728464835140452342954803232737110721222021751221502599113688733682316263226680861278667935531760071000164517982110765878316856143520866997939154014890599939189966499514904618459107239849778751704615217988409775201929091506401888321280679906373736879315011048149085254643692980417885443935477347540153767680722904078738747792798901721346894013226242462340996482628294305806618338022162572343521561937079945075244781986244476105058191961313528804233991996264685768218024446888440561038933159452735347414063183240322348675026623922050735426520459616531914596442657044646354454728768798225203215221931077545028119190056781700946083003552564830091019344938953083308032380987107294986301787863135809212614678021774892746007007493663680199511211325871125541043815821312836087647554523085828546010280902246955141541097499758802934562990818512359528403953175227571739452891841044621050665671552269741568487188955806857595321868479064143322686331425042384805168254447225845976562724816333128761307930201178308470364158676066912320266612998643705073465576091175801133390190689252629818832006429221381585522302083690674379333526260190809435864186709200361563864405456703913749471485659113348416494910487294745626207648819994393663426370013993835168622846122640949247862158880382081167303622117422917664381727589242707444668630769333475533458154697255811551694199765788775296946151579171815020453340339600359565385897228576245900270917485820923265658709494541988178081848127031334942630040719232049747388297357992760268505613935583407745471300174615163265985933198461522498771667966694331050756396862499102922548886818459279190054276690239987559668601551168716807474842491080085781456658904290943982862723020870418518239732406180848663723452972958448306098557362991205597365251660647081346830184922164672462314022907521800202629834842699283978511278040141579428490578430405291266727210704415739839561070115761748533445957739651305592458162959767254657308398325366041954789953389541958661475045352326673074869691983215493776399014013935750113698810792252750761129539321417976514559541007921132493089663482022965955592968783215946325112575576519261768231218321403641875805095276138739207482998410669762406291444356860301223298573402660351837876071255302856606204866352387606664886265105367451570791108913093018033868146535350353172538187574983935809888284874515986699739465166700191562822402065688634471158048661866862872882355520547582675108379558468741075620588447458801002726489045756225866703441723652830518767164402899669688368620503643347413973093423896792167567779419065094377794832286481889279476906107908034938184556754196012167796460199182223629712627262158693575841303470199843672639554525340410899093771919108797018711028125610073712546673845979851954189607897809345045457648788365268931087033072946478217180077193366593289037093458911062212884412711451227141968875968352477071926059186129139673513450605250874424895215676355441874822044330819860761541673877804370246063406878681940270957562190423568222855496640839229624431608993842500824518797923862250991240510586769564625875454066370953086407476478352804693375640569659385885994063756391874976429852829793043577688403627475346385263283737132285948428553319120840540367965954718058740968610858485522992916878538088866928630594516092409138202811341942996817288350634288017074459890677858310876490400102467697774473362671759467399184936429768307401498564596294118051523319475700887914400546340487735864370190419002270386642575969265063935310847710002526660774169039936379149622972778562628756509604264037136046927961649262919977357885461333662754317240609540791020215054073242544132064967481009211712435742763520034727035618447119342292059516784344191725471115412961341192499691706618596463437277057601813539675483697936340583400950222815362762937653409099239695517002464928047419889590045564076824680793396079510920473265174898313814356499471810613182578280591205633797103213634883394690848750293650469852220604652132713350225291591210912698114325169337738762357872032618141987102211677919939323496970955174064682568413475571558558099472868013262835789724963947642115930688866288432074824119572032912000234429068217054340724696110961977542497390271749104903410370220694001653102257055792095897946250884615480601692699063601712346337735533738968588498127857224567148233758999407132331871203915883878202481921474353911015209101833016519070337495522445137049459252698897671536879998860971800061723930987318994587026059575287270696589937154521380195295853275531707927052974161492783879331947145070696402133671682371063415982512122927406869065076935718284314666917403801835378643821039031995247840381568779634567019656306685502226509060817647281307307447313858893055539161675500864800304104107552365370152839068599594533799310564155691056950164653805535648448081671798120648625842844031617296507393179786127906806955591615490878814102226926047695239643339039269449258891623996998669771840927639758892952794827323222169036400824918261213317244981410141218178482090504818389243835579073065662262755894300290992251405510622974066818409385570789036164190496321745293193388852735159152820858311576043133350103881589911130784441847411870387342758594427840530683855227236885723278496320492830371932479662246383894697368827687512048529916095780938768404398161595993692107922988066661248594234683964767536097719655164156591896038546605936038035359958831419881225203647047938788561827552820465370516766531468116497076582859980876463246289814015429407338059459305648709467022050387115723260842602107068639458112406321707812555414271189595128079774622272174804205862032311206991282147675175395648436835164779514971736229177874115439477522814893689475147791457294996249944599879999373099473188612000476007483334877505724729899984337634117130754397869442370003581604582735374654182874264008234801940197781750678057940190871682037720990602745467039997596414630140278324229233542538901029344901086911352342244316246687693404338265518398295345891416555622745052065364051816051190656767987573941594737651070370827131683956170286999658923682787117277678339802398078804298922217877959413262817906592174428747591365839275293526385696176416638193306967087340941475134971407844452688340687921702986215797307571465519795300698183326405476034378409031969518800920955381137341470921871658812207099696475627197348220310144931013592844689945981245670847002495218451256393402814662584142354775918444805374764520381852579746091211929419657134459142934321783613860492392536269278788341837423197224459910081300885674877458364158864718770698755604747180510516874122851804274600519571981093776250257046235427811092572243423869675421369442656601639822977130072201804665521034273809300399591647892596072335293537852747757664412358140833051926575585369027245459561728427720925249421273607347015232508446537826474951675979986560097873965800486672092802358006677646812274550754166082736201574631742376551425183918183139934908340696670659609501440803838110360269688644891379522569324948749985592740252824996212925126898979340919583758893258327435152495922223459108895116234167454934590943145844581455624944884703273203735355187637324679886387113448082815079302564781012039311524926282237535642522655246352073088251466391018192721438729443433941083171240115168026719092256586329153106585122329730972110659176865156355209789757982034757238442518906992969199114575752975293229578461760904842002435494055875154072615649462536644059843959950281768849421341104242946417878639118244653324287560819632590645237919938315290055060562792767861219173289543950840156808943822613156834643960073839791827388193913139132852559377363548342286681603804626367280632969059890568907874966796783084399563633161689337812074011401905276879399124484718832900883160120002274606913520757049194309919344782278244889560614349126235795283264957406190107619289068366508669541907520879093775623947795506291241528493422712134233661339403792549843278295985169399102303436975233540454063707936110449245694200981443389122006843822603050269810936452845492029394079084851468051573605234670538379778837290910902378567561403765130164450316644685797041911580385637296637089362551831859535311836792896724179421893879596866134230985892001146033838074991267219290946368767222190616374545786783313187068345133866446515651218585740885123572756319225110987316862000160371992760967938199660904232873096232006456642476318944898169075387761210373509376045832889291604496556196043630717384239396961233515810010690337830620130428879819756265872299169865225385307594436734125342765494011575023476794097758058368412991316173678749917497150746995060491307151071491793357819710709846068886787623447461852217351986233257238601681499171623821237343240883299669156458526033931259364839569458798187107995668591735679485847041013608743307975271100658637038199215577647769708197872839429768975610915602655219573388495911844327702066469468089027584905179162423553642183999945906383661712939334313468394606937075843659814018858826996812515842637446775614467511030013262825011998623069540999096460094143510377474097818928564553702358736609386767858474377831976266045387259117831272440883820571254623368174187954135131176444217276631188962692599456546792618856661822895206449610377688401916136518528992457177747517841014162345723693912577038236051785909291424555895798989945064973797941400035877342983858514685740693411589586640566615380266714500317271365158279025843492727984154710907914426518458775536272751341510139731123110751118093797164106533711893290541260429948568972087711735117556375983457226030268702419447766974792345757264544936347759889204513040634563492920449353723466278108692169127158456657992625862327892381090814780033915235609021805354006528137856854753145769323820673178319835302752457946312462235755146460555957426560894611932210075665255414381427611566411133071218329075392498426337368452790961088482293552535516248661037589756754433853475434856774290515096768166031964085736621470210826361497927425833542020556806578144183704952187196714778440892439795912825087889597406817939731509120950179800353660083260352630383695057240127025494789006413576278366786542551274296749482145052786864798198391415392968582987306877175815780003485769539615321469010026888320844463608090201504470381382706226405374804911642251567657692534449300182651018543238776560026239971231622040216611253412521405868503425548731235494978741567187779740518187334668598970854564091509368427705678507704950052922649732216017164298696771286937312860683935095564236749027998486351270338699119078011970262534250909055117568403214906027775419140646739711725232096154510448169402103456348963390899778352770276827884498875705071457877915153290970139917019231952019163075462560109817425296178793306571116003106769904516121530896722118956619601080088735333179480405569367180850261654662561303335494034200681192815275964908908089247581716555413249574157972551794417993647011075583498940388600318191861525587159537282272029093714035454158815796915214952723599165546971024863975161048862204811241459850328244906350933298205923133922312005999099895447567572025658001645628537728712258942020303608243219783659312226379170026453443124553309675048907577664949996797618842890982387877943181657974968166547976855754333627409294432520716362570974109434060564227555063492816514484131748430958089442009484504134269977592115650078429232988295757010548608338565734385039638139651209260458321326475765286109629267809003122525310981674657656940793035798079631330498507926165343839500451447911972271712661327956742035393966976550439590021648553528170357291810916152859713892217614064898318047352164661853724252083629125278609131347929738323526899857755854016127543967805106813737069263507735741985757994205012673314413622503031055169297391185597929312610660304092959779990250190958227446228205865605451575564467940238384996832129423285844876195260777674211266377428160007516501294088063923903543626149942780876172640008634793828807155723881570833578966009432512041155151209628975483288957104059529202388978018762626956221116635049309485386560068113429255020128584317137072193620420189197421564364496094928885042652670210483501373707127787805305271074387323451192728973952870726448286447121640342058203222594182582747590740298096394380515141328486769361529033918366250174615705431443717933381631356984658989014579957064109282203619230022775499923185598824649670875924570143740438377087895250697030311882064799706024883105847470557412765721076568328818849354233210436564614608487852729520626157551504323643982892991243656461225697913787988370571804687270077438959815118719062479497830734768840320848071189695054771166076196132560213578124452235964811909706307509650647421837963307458557541697797693568075054712757450811140604683159820265357445624414542666830254457299088929246578764464006797627029940363591885460024174115150389969735138819520029661694426493312666892194739162795218856581286613274179308583772621875221164569938287132239752837723384322454693266293347324968888151218193969309750140957890234357276658140868184034261950851425624513876942515332897646746672826250050631015977629879693953470160790602920238904224210342008210637078149833525315584508114567156990984071597203058487790010165836227771295535374140057374294359358212348862076618332056639702094797749222269178143007620206305739836451007658407019216104584352149689600193969717797826404404494939039949931141037567148876000643519522383226266081507835953468711876683391893290194960544816754303873378862068795080536758400592805338033710178411565200804398564765904374050286292127800633216960698771905562539661215343214395880797526074082438962933517841677694644967645145488333149203756519965918472086898653121618855531108267860680898507758815313692619639055871066182628253716396756193163486068535967149479439260584509832501655090018523502406121931334197215132218460699249207578867314367154352673080887309093026814982361304643191234481885772779140628417045790948797480983575810021923424556758832044498167371967091654033601139847806090811267433393334266413300552109221526409011265761228660714569651547463394947572039406035412899715419757497058906485663192556114879492973741456589597852864208523808732496088556739049984583252728322759449576899626327382624765464683446977531972568124670833245043633644648904847077140289592861897849789433122122741134213153095030620081091679538053280030464552148534958393637986726911293382732268225771470755531047825391498896408679956240005597222948579461473218841646690003466483435797391209570030853878956069333099337852941628996057897351811041854492632024276236088284556885025018029157221787912155217352603224754268755410254860110670947756698528007128361976172872092347703222673497806002605907959610237497806771621602943631574153797814568762853055528689310441663875929221965950683239477287246554719585007604086255519481182547003181524124163971680841891236526652644956271836099126216848233913548451855143438354697165574938280818643919492762916049972775443720115242741592563096118649383919329241124821043813252914519033731986774494961730830646983910622006140514223064507375487017740589656354447922621352201998880666491707798459517522405225059937259804490482736531217156715424549437268033534363206170480943412006801994799619741555639724152547593101210853387764074041335279362070264654459365402372774503063680047472901585195929339167626498373886192886727376034871078323319052561469171490280600820919155757035049634021119765896439172954849868984503433759559572157982267682352243393632202178497487299469780958953292620297020307934530078757633016784976837569826643357634251266597140657735635188037599628988663075047507467078953735353495172255841010074282517335891635767211561268826885212753938815814690806014779584830295145514268424701283444518092632480816259268050699349994284222612783471259105800066412885216772892307227208130134512764637818513558697780664423768035719173240780033135962425085065723296146778194228291605008488349085812872012544081593516712586871461738615519215368324499984839306583053326645449458745850610423500956289931429280063280061745648170766254329647265192371569777080730081064812897182914588119311468163289731991608221517267552591478998350073495822620406851413267731883169315497645414771843708495696759864122746986312480759054249184414496868932609601143690181749349250859998546359912436439065526358455025909440825951358005003468689997425450197924335639900680726700863054953154331475448340076793157879125752777446284177142924087042871068162161956800408469782199452016726474175985091760009564936642621976563041344671099777861659811327952502663762716183483022197697584491689992892734854801998452007203504846030322491550406179131949984191849571528427346452714554084557429013239266926372652301296416145941655207572444044051402159794636085217041903589925918567535902252903573871185540821560391124435819320698626782504980282866286291338119297416309535868167511687922842873469079745810617835147201908522379680967657249989757052692033049961023975785423040247625501793348673981687034995042716383580658450106178134348967025939874598791057004129065570895152406391590176195826175668171735190720273607503275085533862294552991030599918068879376535467596190229591435093998617601952968350071603098187256256983649389219897322248836185215204454429054068927709969087637717498350746644343598494553819891818212821946621727554687798141477641139520999382110819664692643511555152347917113057874117551736565837773466259521649142386236427450191867522971190337757086403069185758272484532242479115897722702308999354943584362183063586483489655564202574752197485724153800772941039608647951802655351001373842021217235720008237464904218138552922336612770597518156778671359757350720463260180214466087453050308263129144963006476332733426982032059204335443923559786573526960708565459757563406050353291126578957697239820104302267734766182926216941299811545040980780598337006776573070712414245940288139127870299782314951655851533194416228856409772934189985388708960804474924886742113249977560696703406203771565135719693043887680676634231916384991264710720122684457564785351050819557878297337151144263984100128933505993670576435860157421238147466518292667039800824846452132068931621086826312794047888900694286419102192558936952276257283894407585399018436221356944593020587860810548763494439456157927265715895645101920238541374649335629761063447938303646310729560031642890889998855943289131469683244710016430387316301092362748861144224070277816508023716675358498212701852664948569545759225657018664634371581727023279314309798073323395701029247757756115180164022990518617536045734904832333788757974820970071961236736989171557259196018338281031077092067954959311175525424642900659798322380804892253023994278358492861715739196788160940043050921385938429195827103548762306087506101351715124360344902127984056376020392060177652476913050963261278664312254112228147403835174805086817778934582233905207525327787783878056808337867806145685877353834425961117783507046039158772801883721246872798732367452777146059274492679248365354209843265048881372812895362600986433388451542312612157149668730790535617340698035008975420498100669485992941797149101715568859340707091984073711355660648360229922399512165410004948557056133445927317967160092238521484931213891135176050408340176615579966517884046022851772666574768155297796780680085034616289000202798333129777848066577535038428977632311887226171235054403694988784916645835348803357799906458657061645586194427303257926624070859026616550040562396280046827423752203037143570879232216851158373166128100502497737023810592518950660068442338759256025180693234591016744904709610465867670537714524613652829987815109302764465540471428084804177500442652814636706771285731878326145828823331040282320468393125132489526314049706574075516298579466451902358317406482414938985113442134595234184653507294191621250375859207136227610035455713213832181270369840871245718419714936053846924231217799087842823455511135071364956512786948505747667065179779128496179731835366979640669342451871509954354757126135832958885996865657754320401234222539328487418788683881186938202815271341461733196115424133724621373009954076165299272705024442044687992275736387757252953950980335732119103335194237827801395769988154084699052322967080885521685486105941053986046560805188985027527693329546606321918831167535910060796079327786458544746328707430595406755520930207085706875983934575862479494567222571625449426268306471696744963511866136624681940148368793752780851743549515838967119207456969808068830158902897414083458707261879408542410246614675579128333101511911298079808549346273297457700162861398212261026422426265675620861125361614980674181464368082217994360593767470674253014108644590441903212365665325082302895565524709912834266807269612823440249770340837922716267746880345696148623108931345412429092152788215033011291001771741173669596966665395863125161508619567640234140101841550508796381749632141050851403566053453924081217938563981821994535242830040351147581688206612642638272653312926667880168236400490237240378716478031962887428966070324748394855902119231538303808059665212133045762347765092818212100836718935758122856374992328897777587910329441570848179249521400043467378723665237585970164846549542009417755485327570197045872899053384810982797643364515159173774559506511583519900131025130972702573312646655743917241533402374677439698436955420661908236397643290749421118235870103402115839791255760083358373130958255988240878518698457397629719139892499577971689637352211354002281031814453317763738966664599446413515845602341586476177444185094598174266729198431508860326351880451968317927291312385557029018539919014309524009307255005198723461610054686031852965776921234563308480174995584749533922036760606035328534804166609604404183141488244041966516540612056523235810140010131059520337821314481255588636808232762490528435364008945774074551749547637002923977985568016046902575778962765687367298629369018375455149913626687906787188311870453308025527072588926386152583969716519792055541436588883000046663729454046618155770444384316237274753766743059081878838164885226942491926813391266133167110164495767974519869237409473275546029284733907396695638268430826415307005480406746061209195480456876118828209101116130990738625353516531057537821836964417330861692639363240985180849074083008999969528031258241367072753572224468954231356215607651612558345697541118175402860498659140476745017753120396068937484789486632469758201600728335201062897250681567544843983838608563589453570519087979232335111357216197282477020046283978900974258294104298798940243875759639847128847660640382819865811465169057191503788780495762737345732860616238245572960944574100267641542108836690505835982375681508218405709567340092841455748127428310457909006406493314212694148217221045783787704421008659139482505499985783960448049676946818967548730321941996503567680275715614318358186002254273134462644207380795073985708965310595058255717171732682748598008135913330604282839783430127239327819697864139509393808436089574408439306549637512495139198013358031266395547207587574877427080300332961179242342269812003031545429447811028858818335190747191110259662011895231743523124278851429727276248639248800074284102015214399561795634010311238615492513982509331087134104045418230677959835928760505903454357126728279333896918831103144982032467071401200975407633827611138451794340811871787595042283364284936322943550026253787619451305658869301420967144345171173492929754520384580349856516969339607024625410805882451160691810013007690800812016677268100215670624421268252499959610741095391521007086103319180806862890425192534645460725603136946917638500386326919048647908557411937652612232727086228113794069616131467473918160735814558957344886222134607174414771010610591310289861085742768643253201074086592328201501452322494092013004335456609077698136279826226602280231346831878801768895521707929724056965518415397436860817053759276919199310806809935026179631226002786840817755630473157605008750370727642583193976296166195282626472846850367804623505288932261823054228034604996542999565390166242129021614892749536997839900410595805832110081697190499866339344819541993124980146745851110932702315811637564113509398021558035613674451825761658843566321176272112863447436921049443467815872956843607145983808317219840638426639525428216547150526723500066190718734994436518957803516435212304150641039875147574267010253375972503176510258559787544132507066648711209392526071121014126732386435436771989437642131967810309205355751731316256816910436071759089764882312399542491025937548816817287009246820554567993565557045800410119604406786390537614750429290475246378871057234150815052010342618106909678232156556050650628145322715614053305636214007427892083347092030537234898788042020205415311708374326360946000024518658570144703387424579998280872800111164906954724559845465745718032093653397089984336072129080025177281015256539565736430100493664258895905549087506654642843516170042696654216258663997132465867604663325085020406312927172555159303735881318121502430617886723518066583339644973489449188883575245091674633454069629432753455670153835599611646019425322781994725251971831663409522959101846150565011186227445602490058887631702775257361697837310076225495936833042248597013048716860597414056357965799110977993999858699896963211128075711724846430956912617544476136883753896672642801557932647244441293864563740783777491885027235295329549939691879174935839704001687527602054940045086917982799741223819282110062435700343474462579859125132942086063394249655833113529239306693597696639072641839724762894712174174226470717369543832257225541562323211939780162291125114624409549753120473770890933164677570583521972749836579391029306206647467024899010176913877239880134507616227768165799777136782917334324514068756190637435043716296766880440136755966671234835226681089562542424813890635094085911473402711400700331641489936469446816769074683112265493390194152237104143364055218184227832368189585912087759272609966361420606104534484440248388945101564959903747612859782413518817522082196994159926633272814359930592420783809070529001183807144085688177492685853890424492660813007542327999873510905736574093464231247928566959739390443244993599607380734862232394019795278523539831606114587209069933233395735227248663728682836586894469457678860425244014051368825790423853387182427538074410105756912819254871359503813558926154041839238007374953037487665368810738493495830442228357082580526525723763842900270822739478337021664900199674733907854942399237284257100192698678554641799857833967572104322377081971460254043959636790684895965574242006286824981722984991892117551989301466603932655742925628892042185056413326605725810605505930427212560785070905026341270359491596559334674965266120425598270664664300215294241508199708928091200016188815323382450702217124926608927263874312871142427017515568165009928605481185756223629619267874691890307689248579103719676724183832369196195450497114364860625648493038346399663490767933365459996340855514903989415175707096031169819812426107021578367129728797697528482065057223945595737768053230775230957820681063769863485989005031609861843051478159887139427330723992230309672771569706109618424969021992759597743695215699637685989761447659533446952642854086753269246413991557759191077286720405241127873045792448268855579377757549289118902742310775290743919949066069883363804454965766497939881514534034446783271853842967945046791308778199128584639964201632940231954341481805145572361168228519210862827600104807766891621929884811705834507199179923880231479731365508738134700018458916943260370817794848289548509558548392727097794257321476436411247968236596627403523757524150998498805262467023777580210489763485561527658679157527421208673307096163508924802335464916551091688156646668973813985961166730742185413742091169045958501909198441638616082903302850453202363389066310426800762975898665309587070244375424178990679360889156427170550070647654668927774657412657077525928413137089055564348745562761936360714028932179011889324612206249435645024833537918139575931756080028783642421106857229712820070794750214891544027453141505937736735536613848454909852099623795877890492089011974244092228439689826823548805227016828211568778331312693530303000117591250565736530944424745377166024181081353502482940302905313065819635460105464376970628377875880002542374813413319239678367019858763948010168335477377382804628878978290407084886539200212251304415905940462817678842896874239422629747681123070064128076053585803360156161620431451341819164836512412003554000901540613662341342757730194757287327489473564706354571505435136876129807655535856799563796199903467099644258683425578092126513981837527569102722988143686878490468064105241618160739992393894891969259665209170053030141141430238094666436204659040659466490200676320774691560242133589369147098140580575138833383387889746957637287056590145324559108834609364136334618737394664443598973006632054400643763086629068423765242042473558635134997751844781580877022475426642489757630623988311599827333195743302458605598552372817123054022349770530487661444752246781859709616846666277471230847969319247294841836169220253887514250084343319071547635261995611134642823315801881579853430624732847935439597918372640929272112442668396794488326524035205526539372752949179252124102648683971865493146180339031173253416264975347310101761474223344856683780470266131532955184204342552906102407538387789961435459012914502179843494911717308294613067043898044033439917676222819523206449207633775376654751889039133443173007554343392256305422425438219552340526723164370435613921181223401450253370483581039752588697273681994578581664414920993865195107734737623530092758776557173425960467334040812060829942532920579886923685867251211964166449002340144239794123969554192773270375292137534776153848003862650432595044922607646772352609321156192733158891620739657561199095000644958737300050786994972018571907415613658838617214242637613575064402761301960068168202529154195298406258251387979359333993268018316998088988190127999465845657861844094233367638669545740875158082048464762318104910148668677133890961689177040834354343815401305991095677309461492218000991090795566441226877652407273358331173063429770386613959461749274679363208189799485263493533433586234392588976378297584077519058640680267906785581490612562899245546405760709746963344287962907837738357219755092079700635438180057698804340932304400770976896463168888149927152064968780728484632870332731674716765049945831185903859166550872937347673906280109460246536285716303764643339644795730406823986096038156963981371779858508176946527564086307170883266891332164157826913904678393564974468346048350407208630602045745254599398240667862195540877762478396553644343170533236930305993103925260980509174588458149894824300656518471609366877171327268068318156058699745567288101640419564689958391035432835728912601278856358299203509559753234495787961722764810346975872706662352410735160525061401987462642591927692964111586461579497327942060908751163613645067720330603927793415051016546466843484303197917024460761808243121346639286616086240775373629261136200779604341967238192266757968899249124502110817085082510651962355166385511398594070602559973458985063369584831860402246210655924180500749550169035678257120144626460660176998777098034567953836765450852795638242274114895008434661862875585863240996606341649224141010680084227461086436453075306151060579032979194769343725389097008947753305554745733702944693952503888489073258284769759886620913987113526572212837205891663078722698546970232023832927207846087429504857909107052880637903311068947088002502120526124213850767454808703946979144047094341356576531580711213916804770779441515466969352122260111679134048436845084694417391801158897843187475225728119013181546686723863413839405741680857708407746330779965352114746471300953396406426050950800812923485147999753811732536773287962063409840201196514678625188889646241882774706617801400202991444144762612763118445563156141757429471225307109830380598979712552882422279774169868193819393936296958277647202595456315003621830940144294647378709203661980578035033762154396382348082765269858526433997817614727060807994244022976465623575690641865617468118486274800020973647714207674229782851832947717608776902073503681578752046259432742757954136236236507885624024400418500549422655630261960817800688046869817059329368908479872779120909127131740368298410727625996010101494086032511665809539974223551143496662050594301606397547122774015944962705886605884652269621076150225144888098211749338186895071004047545762825853484813555403549913403905823489151300260416179096573366021624269065593233853352964045197344311329588398800817233607937745220177253930162200232567839698335859971293828595663035712129069317501308677789659398950407084116473671485490439510095647700956983071337600555710610093948977057062466086486064794469291858314802863507727067514378515282486441923440556434607519243858531378376734112892106842115345551367807293014169375494925488103011456964978147440089644250699938363235968521189530878687627488515156499964330793629705687941211693273814991983991034890203950866037487384911070982450593505716473087923136118746707560573427000052536912821855531425281076793161851475198855453115349722051805312441455693695550851998584398401350026611029203032104203604563711712839275774685527879704909417548301594229287915458850966864969130621176626861011614152937507044059267611045246664618501905166816309171204838748678872447053636277216207742953259404098936486723896493925666173476910936543182253470314988138996141295121836691859676477966362071283254475615682601927669833198852691851795017010695032054756292039306876139802265668412229247565887715619133463187277418369446402963337274063669454146716966864856095437150620332963449971113655890672512689785190738813024418478805187108462335634218783301410392567050929081264962256718620312784552545207987393650543742557233893825445109181389018406394881466925511014521354787177411715151947213595472600153454345307744666135660162902354136770558740134733930921214614796352200321783529946721507187282265398652692247409256720975675173798468153229084884269549472601693643149979382531576545985468038419409999292595585114229897184393490926023544836958766936404497051199231306176861297477551126733271140079708781497731021797760052006939886615522483549470802983248420051872078403847259483280155280374948215155347810237855028736520971551193688804368028999504949600570606325475383291546753224418658587978439480008789661575914824472142328835966120445606078198012314296282422087883619283139149003351672076339028703959407733044535287873928702145448326646443457955132137314204522162986602936401574788907792001452429510615266460649301221837392357858715597716827950442683030201371262536008266453375306833106169846747450075308207721819565847312459830337644932810539099207465390562313984478282417174092821683843896998872990578273049762676321871713628686107130447314277024152573193926205867370512062922004860228259328264260354682727610132653898945333336396501335227995362632302173481271245429955601815470816621152097115708315069704249782773838325702173122931151907984969940275210867607019541750730619382794075225804685847469696537936341858907775385582593927884737416907406218717167172337748066403548700256131729668814859423823217619726106703357414214647685714471026746335091283537748852854353035413670540608135280427599494202483698080661402485605870070857722171576267166231786215680210444043164996634958167272858675316126228827794666803771539434532126836157847752479823456884075171164913375583491906854436397746973129390324128947658719824118495284997008862009425436850929452070716970507802254550661704136821623013797839963605227560047872307717066937930215477308259708357768447098096367322211329278496856899784101283591405466184934261228930671161512641414477948023788567392529794244777480841212732497829417712423474058113659174927556828246626229757803908362800058025218984649102179293473594618909567595182766303774285650996697560579055216838216857008339620784641351476091404217846801733709748899427861466555298239089845512390114872917298607100998991436055752205662874560745183206608507171468296986430850214294770299396810834569873840861193642847887975529868301591577131633347364761595707653398825421028836046527044490523185026136869192752630899228253967246005551394854266858606459221528689013062135658494048728692548914446510316238518608993958316375179771998721811779224077789688486454039837869243646526640945457672237671584465594755304325492787932861793376128520807008216432651468638666153036297470593876283567750584579234079768085185978755033194565281956936867996468143482327506478659233040515969663333067760043202396444170336059880619562531954308593924403846374676559043356999841662202342206488395942338432187029100053714445221448605184392642725711850206990212283549195875578290675871058466765462916358169653044410984957162220664126471523840601342056734725538390961094352858902923802930078581864975273643526041880960163699111951080670930114926653919751607603018646238336584677375096407066087290401361079911227874136042700226817815809494162119018144299197897152259134410631887276828900216941222653851205896616860302949596963364520851932285237185378493024768673695493257729487923978834303694236110453828550588866465091071594080511549477277427317621612524188372654148158405680047635889417767602004524174822220053929090616744509136696690991709419087747906259860257450498244927126205258301659707885388377362211385357671454498185017741277495750928893658796259325218843206404008053725034802919917793870588653849963928094071579109125813782944550195128274122176662006698577155473026002952299872471261047523660460524481956934261371855550218064235861834305402821394595616869678357872328883351778961194709212719412300574527530655254371842159946702795953382845205475228136687753701682700225855422653861015498245580408293179930657876390756043714255421047956416002408833242761261525622665393206354171307144652620958413138864799324261055154125152004007042962426234985225661514130227001292092808718599592478612055299640538684944427225293924821177454797767660920173933862904954948366028108713763640061558516904457696947338379519379656030751775539007403050286693419556323250670835220168160200759997053427581551345529224015243496866994462347263280703402242106499671379091303839102548281474477151137383114965703277582548143425443750192992002597568250497171146597015967895435989843255180244422297554479597081072430103328576285023270809608477904848368345139370670568907088580676457780376649914401204150000197141887801702061810453200302112305300226640521017592953145002158101588257523579545590670471489042343077884698416680507018996632921581169313192462794319739070676824865194780197832317033557091146871670735222459375390801987417447312280377928555897032141818823013352166179591142185625067066889183159700916994047215481187737917895651616255986556671864429448313876305630059475763775087083459104936704890953876563930367975480714387625398557640569423019868132552093705501629956775391399908671056687625070950220631999388022450013139560689185619644035333821876949474746792806475589495156210700574376712768920668386956599354183839926938244965372884843725387733807490594923107023051466310188818434288607137717529208006162326643171714443150900213288089074465980932214545270388076489730776215056724436253168168370454575803900298688282396535756566800049861881740431532765555706502037021018405569981916174775126256209834361844943268664146732427765585595232338376420662449276850288041630077878143113515384444957084588944018542586629529632256912891183695883921234463029602649977735460169625375614982218310303540714610212504616571707551755889025162152373878843662486789735449897820616212818570961859467763247602194172047787925583568172410390639415324811114105547526348834850616597090744136230276366964220797232366962871538681819932437910208942522188931141358488250188148125806936112432401762486463661593152670563201364994237702448161202479481603876067714122978623632229074660437159108668078917836712781974200155328647616052977285368931442142720064992186589025332427387526283663205433400349874866153845827201211992271298639620952808979202892210264717655708852295189286149630448195534679290432450775376782216567533906927553086501835518174429075343267232855474563501017708884253587187523193071796801529539754382462805781217397186582146922317756441350549251060036019102414545603082641860193160179459958875616959794484629043090707038554328831112100167782118415704169305103199320425074349283313990892179171303923178207052961917761808269704441813842313582781597810437104010925819335956492167299798984741334935355185364811924625564429546051578208718412917596092610972213458321130219322101491230132359584236990886456222904334896267605361146666339753000843750511714705635360242926056525856224592842022461601124626799713502380942706418358445244193802939686797937796654911838522579957363767251711085868603058316965255228926096755094111354607036179197551687885528611776242631656921252155077257827365676366356292898840682992795984211443817050566819166059896010931892917394642044868250585521067608910819449892777391869757141981466289826957036530304711789482678725054983465958500725613017739586416841358781348697957744657045222792859031611657821006628360660482456794137974590149281255427050801163827121211525743913971570521436786608514102375918820237506230351105918680057597325663089199726413069348744388498182440860978909766451846093280721284601319374709730820944829375029989489136992639632718226532341345011518179743830692484016712710554081967925521848354428441834738078615365974826751583938463539052251899456212053867741505518397532266470470696699923158484501944445201889064278243346350070176235662068680056314331966823378775056416449071955120634294338783289646048359322080458190577626244308465921511548235591928344451880358193767910594563779259256639171807677918363387477717872953896914707623815313047708089425113457666063276265997657832874691282425408031798474172791503624427288829039756248980419882819345946318782540904694024225447687399136055610174526894671443299897699811536955606807420384214451189728114020960334545442994995927544264835334022290401369662156937372344306693290900054018795803816435000007754012765114196094886446437338731601304981767849565160849993326752885325095520814246527443040952850749119134069672351286165052994374349385500316538607543719541377932724452953462095053462627862042654904634334251923255270951068916617423150645617345008984655443007916456582752894303714408672460908187644715410315931405578538745513667773166559593053804622298846001798945933462562974735197794400647215520204605348503105197805671002756999577481512647265412062110958937067800004800364592895318722974375642665378622103278486016152464565136106003213639149205084213786828294997818754404849445705732896300539508540528105103125772181756765978932319352902183226414621009369677331820760458639085076613072848863762179793778175850624986934151047569724946501610757715307227036441518046440285967832481599875658001805264660059093551048677819001262307696431220304697191875902105010400979143719180065648508832637815178048500193920185029166935016426198132146061951007382927304561018574225914357195324563494286195285419873093678828322646979714106160054886432422961496785844914514176467763568182451751038602690327693950392957880156412731028344726919934870597870464275484777350673438973068199160796092807956123782506977382447525416541018974447302219831007301194408364920168789880362475885175804875272653782840313050827976180533721667345159096229398895840539405636593060607349906693527387044728363944914346812723874464522792241443657354495248179712413187966268987866355442158358744187973997580758967427961119467581445176588463869067506294437293536521656962558382591259436648557986470373395593166103339445081534076756623369245954817885484029304961676474105157131864031089893026487320227903054209902780447520126980968769209329952929505637905791723407591655507285397007253320481546574867981598361922039686190032655222278479414457646470399167976497870521571287432246209880747535211829074073240212095032990270917527155690269796212853988183940623938213996530949616151164453625262722539852199319756770153928290579525586176395325636561581200016339987379375840109624210215370863864517976385314551489139668263867778996265076825804192327977461481274041897784961913054721232274959144534879706359902399838706683473876875540302767447253928992109111345004366523833460336777062484367456423247914745970789186328548717059957261896006945893785655922625142064383186290065401463755507255458706492694891633344250493453260809728887545474778843319648831613882452037235122933199528867108497225223192011663408910094529612068115763228696713137300984466913052937227543462211391152937746653141649405885404452800945680194094899549036168848514100504242271829941362147836096100468446251075577641176411871112316352417315823669447739037633119797694203490463239650048151701125395807376977943487297978206426236290939217367355427236954401028675092034327258112344661762689428514399675702616514726258623574490155742128377297834074338284790115901063332681297418386329007883185844519872863537911224582376744411924879880294515003636914118577854180592715615365556360697117948859853967516129233866330279715157612223965755903967973708521922981297460807077653029456416153880045857334366546650833326768634995929206290860574947338230364871986255150990784250170224944409289677406076070651159522577332963905033354864232319802148876130946828917708319995687476693824850473921639069247886095138693626988091108206619302318369920512559793090524872345302143530160554546824637934190680020828120533003994375791408174328103128727973735377625904525884063861360311698998121732845175375396579509109130258098768673806896144694933407823220852625878583601557165469297236601199312380430097077296636323096319634987682856159674020140352646409534264731214742802620071933655727230408687492439158510798023019942638638479155069391063278107489510457451758332058953731847454547840343549389585423487802694727660168959526831551253927283699394926846112583597907876079988727498810246298070305045578407713244705984606252598460211313822217273281243443015683599836570816043966004468285495978949959560031640656243475417991375863448867933594949491910243681306038644735898395226783833763506482290179919592916339442867571977340573800558252631448339425043350080181095580181016010187253391216438825745136801292078342892826622633987236710823592327183745013898869962559696159454834146736666747869859617362789248812323336529335859273398133594749734691922233530251556925207057738631858252678174952373001415890680091786450852610389173308487335810876773604586968513688511778150590342571689015844011007845918308359730653592021277314981820775745308194978284458366060676069892252110158666942979809758486095074447593426032099219770161337199095896568972239259851307152127989902124045576594733640791201951629684149965050180288548730220865550438090758909150045026323625911229653996856656280148699694140074835728849454701336673226787624733244493751575339670744726505047377127745601111737986657310348858727186344117704204408485473355972174146503922088112427491342255859009795138060456172441692216154286789194185095787328148329510294455638935668749559713836415099772159401422945074934197723228769808089357062415877411279728056353748675148757217367642798118404484635523189661896914702078991420460329961518868163980275334059787026711931037233849790154298350389244115957374143117292537307596408809094527661044174635234282214537399057740018989013216663452931293373351541971291450019281715608137592458062128178208315873841080311089553584519351083650319559996988782158141932458887723563984044643314179774771938722232889700638824303813189419918035779706964693640415013973055421010660523332134398514098019904635899768591656460402160196288120808977035591762405724907622437537541362770290914949863519519962514204194970765759244540969486302468691356654914537107484614698735561582054640785334555512302809590864222298210877655251258740112539205541329562868280908579034603282463355276389991967349545629313167680250717992156732840602565977609900650707784901459102671085494444945310530656277643603643206911984339986204642302836759498960923964512960542094181471884049095211808873319321922212271069298148575386008835054081916075661684482261397844705645837080976119705163104276225262424694840701715001915657721021122058847264932732294769379488364238982287946853610661829406329335630960066909183698863937779682895885489526955592975299874055844998187298061964597366770704729270524659223424715634131028858380533956720919255678917225086741571597408390041443426240053329583420030135374366383716733592059470762354217233714473381023093054511266004326065587938486354915767503402967502537590102232289504977083312425654855181877565447886897694124975221723649361964694601958952045579905807064292801689973962721221113958972802652610170176387812189854129856734762644040593242408890191513899796969401812578665701778234384155975217498826380625454117718618044089362935387012654436434396752912976376116972653535366917000329417334771123875123042362935750735526924659536823403228273475964162355173199908396399642298890999276720277687124557345128671292962868246246182027642388207157602592605743762077336619679892056219156235646827164415645791921748638931161068679698502909407042981470652037704750370671537003465804084622659924517534565531987889041123326995117225424264890908765145414687158197517180929264557800900155593994936315950292799258961115989829618298540929029802227632054633040616677849709087856848331186177773383201071162639380353454695459196473564131296025309438402945479446054334093660587892892241881399810922342046147847125154764177713156826010797777108886766620775324043643645170064546414250508627531637012460742733589723968868972951711309006405646099246263470743810407442152925055017210453990771019333388200828551055605595862822659135143348399372550615601199689676402450260295757415034758114214327298966412088834419472128357892354450454334647550893537971080146127982934766364065409528637828898852945482673392670552988311331029745165043889241891609091401324928984411033850840477765792508399504664224105275811244144004864491915878026329242516086648163280796146442027723127725719092363498096961037899503363349655805459222148691054644847772554254643512623089061237479282498338254851916877742377637117262653980333943878521460827708917461133240092586981507948344709999511181465372211954092238433866910890108449550824895662400758308337234846848060877825899983374460236025557830287832670982104202893220798241522194039660819636245736345471328824441166941080686838815189452800521834860114053664067798568571857233960983373270801965452360494398937498149700104418929883113182755562186859635672590191572692976325156026768184947239100615919608274001722951558889103121109148431977540076738213815412454104687586734658770463861226607809073712056034989849430528978627082632947455991403022086991203256422707420114070094507005867656773039760896662757561099835180151857787725927146711311987322786164951577849243181761826613121989658606737564502512657202073257088179226932681413678577441085886697174648534817100450956511337388083062348152731873040595960665407667129805803392327212786983226416506133395763372342052713195034879278320681806911826173145698743534871173148142416882937233643071484217150417063287505045634843067681900626254359656515646043121704367386561492695643383704560218909121274830520913525983574684953160543331122670638374093404144921402376538194800363491650224514803553730793219346858978721032086241153364393247517967535877897847850202190663712702145884990975754360791205620291408934616716745511466893453751398337242538516392076598247798967585708720392161112491268724730761817773017839653482574075809716488636207362962663331315620632413013070035991520967648764906715053407318873802061266856890856067750336712282922258204817568152234074455152788115613823068175175179684633829302605683231403272962053369930907601664032469550995442063398682803403096548620967463659563550825747461187948465295787425469779489989534531991588521396388595523058649662038090941551594071003727698203160219236710972016432682738730883528685444790300178114041312626212599385521994220973937086977863409297226042767765051540832145348394434568453419258471354129383105284225181281352747825861970076603716279704533689689938079979784478379098429334662524970569026188182888950535496922775815495496705319940133894202016874589274159361844176109032615151924990627966735111655673571827656943783275376508313162075998310880413561519528185632101722942631165104997754574054707849864140387170964244991489817158661438332041745575120705094260762027443967384612285013694260026951051874182705363018705322531535450180300844388309646798468006460194116400091466406405279531619512400883370035644877584339290988119421433593077193960990731465829771323161020832382802284339398611141649920661771616468196887360121689407086058154939536927752391609768798887195552517558792369419513550773933539570073469217143884905594120245474975886045317770214624470776139002533613321866458003715661276961399467874873989579492112415612552138485182880021498609089802761730109384282278321375377088901556705986052923124553177497691497390926026632379130442969843182620424709799561768086220239593994483178350813319526069313895676788968330019162360776742728101826066372484154188699480438732449128456980086101989959867497275450518371080272112796461667443031698030709350652465168936810791559783316953756047348912092095693074392503769596023429709030903455102054322687871514053315644043610512194735519363938407614510651643188669838976595766412196422529940629505513757943944532052839018497468183528226902489685997008456611755163452942255347266809939366813557933511342086259349062940540616719600932770805254519326472564992875057043411094974937835163326226097312513815596518740863711655383828217747382766742202723520159019799566626213477949147568082481813074004949904514574665581782475474870215590182479674578304879793154102181793866057558529226547807726798721030424402925256636867951012977391803879800569519666527470377841955083539073287666209576873252748222339723908081265721134562258302530213731217246667862322205060491297078603301556265661843634121301908966528636520420374114548744699404206469759064786106121008711319991222824807710574944646581673490575446455218423702828942238394993665531725861559956033245253482720634351524588421725878029900277829571292718419945716895503332249921160393231361170140119202816459121080677793180028924382030077928556998522565159174264962490647765563645540345609711869330745248162251708605056896561691608518150594804695827193309335520131144057603673386506262886500577660157553236779906425115068640508574664096972061520127361324186216359606088215782891799319214544656456833388065112151237097704454157998789873211636375740941613671411527733278866103562073907980877906353522201043630224584043579592161713815038371676491550145710379022093687690526706976992477435030917810763368102877098755490997173452143708229695481355148629787696114057341557178232333085779684974943450065716123881846562255133593344797228639257214520087158944083327199267876693300884752161965091401430865081280629523109825813879165416010654691848837963577363500927755659251217964493454759500665637991106887897919919686381432065378496491870035859874622971358711902199431380487077316318397977074854185358309091987601785594032876452059389354509588520803940743942334376653508561519301635719029391613336109914992153013221386700063206701749152477742604074410868556828227172942018254710769591017378895204159331968181757341083934762396517452821567369513972429019984770675994301169321064188644474677142308720465052060483576710630739446348083791160478706524913401475734768587042325242502110231490425309932515160422009400625654426477688745517719154890963798845742714559646639587893726638096884195400569941281682627094612770214879611808783055857529943960113346092740797372049623444586930639250745757200067061393896146902891035637981366248246939002743054254491772979068382630068143139620136489296513681870105065802892719810381848891282324822899842646724604023996841132667728910866806749447729052562615231958421422863715405652259688792522487637686062863732410122641007391720635308517305280326325034765191013555740611086036261248221919971906477120398312428015951247738768149997964863875092601293303506756424281161304096933204652241395357679359296457871328650170819346939332204820231440162376457329252506465815118768868303738340331289730260455704060154343713665052357902486833055308395094049510061190882549935443732635828629717354601891426997358820618507819263508509671343228650701797718434883542685270175872991254939906919222709634284994393849700920172431719368277915423916165520665663363240414440027408365257415565008127180341122569582930486885880336961265244794484261204871098711333469893398277955950759440273621336367515241412885967653293504939015974589891935109230869338153965494731186464268778032464735200243802678438011792755582197263270719291844207771245754162589396721669829453819580206527938525785699899495807213011026292787866226091963321532494714201122881765001514375000829031075959494583657190627557290965122776119756009596828413073789485978306923440889140054220977939939593784398024853989552935326911070990720693301235359533139214142536521191084869059244738772330882342292374477496398304605105580524474368897582561008374673734471527061442255279410100262786975032280335381040345832414385723354674427743315301723912083132693261933100281922838306368763986241254511116726486670377553226772935846440022714777348607413355432373209434290475727086600761906815036304672285538872071934377379043228064677079849487624365420267624047441224094145780759461916903724993361526168713430284584768880192540623752574805685622747852324991299216282975474693026835551657118739957637664704116852753422730376175910959651379645851039138800138208502393565456768287497599747360127631428701878536162512376046423743341584803956620367935306890562252226275492173311176373512390920162354562069699659255469149119757446497648463347606951156414354652154377348550882894606122539612425245311887027741786421893344000992072173909246411052856082306209262709288617089275169198094621270924607232888383918541203012225990778766329388278642669508119003123335008585763734536106131135924117435427198743949038182406366368745974767149231577745135669224346062031423069699608864298376667079273486337575132950388141129718369224757441176217459060756028222086176153558976466111461889318022186500546210754010408177976376858882390977823234591819790946497746832882009238119128275218720169476272564400159145124953086015708295961596000867229577550149103584548112991436313217748617418400444797833482903778969046014074647346516230003070822868639169185893711361349449655462837055855667044348570978281294488254859438486086989410683044215634874738955284745030938198644367511950082396443615870482864047426564855673054395452872026418195986712735660017285443729968539844083714252574580176054175184521738860041763066044573889655594142061253595903222824878727612915471729756516727670050992300244745452433314993408215070860719855571775103588052738583965025828201407615857565363860276244462341621042858651988742816244014903597242138590998120442616877600677315543702101946801383923625851091778209575961926078326936816074094501783787535599546858295998316283361565113015181593849776453987028072751005557951100654118661079216042099319839083524109366198808504359621875576240836384877196000811011858500846951112815495291785964367417860880765919514174693226546782837861509190998577628270350644583619942348332640788621828427024161621603038377060238075800452821752012448427277883881037393275540753618136856889069622247785305219500375217241151114686293137625642980560223018012584338574329610422596565508939588837356432654072173910221003780875491514795200564751214698929809342790139710301458869495236714051785796376845742052776424315150931694553010185163728497224487960194732280161748969432799775239108724064350047809787735548644058820870499043982425748507667519442101224222719078161286756873317168361149534127223771327148538818813839778380964941449618809590870771423443597453537183235889082177809548409533111487677388582919740802063712772844065589423152467979738413743855533515651127592977595253582329963987178000328859394866780101141370482819432981119854931163970387756749426555486063445835704230404927491052780080398286370099428231783444752010149457445227315570680762937217808645219453611544548999473597781447114319848491650062926736143926965450040374683789852608060080193099459923689528873384035985827484061611903373135691730759704768973904820416037908526873712229787670553405135849054772131731142126069624726104104522481697288209430721034955726058791476826863265192313203051968688892990273309643465155455568581327501466929609568750746281201797460072617852853949908369172700013639881542458847412003271538339801861595918989044436582730592137547516303807744336869676966536424214840007565321821736663274296312746700630520548674837308064622535641172215980760028700469879283714219218926291028830333371881100911204375757031055450628449772544858382540500407161715252051481626432903891379457453879959610983590460233237582552365434585175842779362487429868484567232692508797939967439694991667793760276071540430647679918041905531705695035411657160832700290347908436692889832552240962683920335912630664005657426313418555877547751326522557840187553663233711138742624335469924661847103229840097691963293559435829686859027412006005821714579075615564472315342119569658625406271511354761247826767052800725572286166416904251852222386847917365108673676087926872486325088550699758596560846044676872808111229148021070620213267775645440183519043934688840455790617502275429695382873652860027626180566326848310232753169891074109250286295011036791887921348161831671576958068474922191896028073353099402465678630587697134244432233298493425868044243276228581753523323732259916844320913538939626028754692020014135395075152259195317006981598895743094548809707453682530261982744724906464303794548950458888672341762987999778083793860617351711566528765683071244106801737155972282574751135193292985133856815204791922884759647167848829931767816800005643194858519736349863062536071674199198206279136402578717031095138837251588019084781236324256631522557657882142161448370715348052424638828193672157714455404793757570235309642037826900953361469668652707645167612598130406869205676227426113014506759174890103807262368350661678333192331489861234433733950623623134088475237654726297963111867903007292816987170800161457114051406285018784968741212675126376323522396379221591769136711704077916092353035348410117146507492240512470789599198733785268446910041175615288121518098660011020159834332500814622422950322076298731717364744787376183956247551596992795574175903869057933665119346201507010125840065810718528898648531071631712424496961899735792896416128359051523624500824497132218055291276642807612892889705178372974756718787078846857923436301372023631745498460163317508267241655761944127038852605618098855212052879370795298884585673386125449467179446925267994772736270566090393567860965225742295114416304712196335352887689387002916889170034278951609788461328323493275109966679746054631606698492150721608378558067379208594743381789489194282804707387465013371945229681482403353624378247225608390372180357812142376069136558245358096185571998187438813287848676459443544650915764058256054079044709093545692182163729043119842708296902603587029176293517608366044522421314357259754847725146373901500824271843924860715083524002262768634924128538522998079804277881750999623634852878852111700888015626512366859593817557500564571289561494718395166819503127682055431843964473628205495661132590333644611868087996788794129005965312236114313881537069060796701871013669949035942036775462569194559795319302053632489864558584295646854168203325723638248934830312703514639629342373369659736549981511169109300496640101965556246940089710052281677875693525109567375219448912163285135232896777054858476648118253234082740971067604822520567605528003709628812923848071076765551202835521872554697796353626181846789542863563496077955062528288774012692411715448848225106493088017806820240601455573968192050902392366361047082657793952287607354268847551408680501004951868791734620625095985905459186151080038308043233690416896960556347059482237976794439061086117924086290504841804053624116306811230056555030765952089959435744018027099083275231676373814412678529216933530086116311730829787788952866103403601411753555823090226392836497722764104478626185574765235630016779626624439772869558329267293939551407898751041525684949622157407259085440709322259534369530709510418644528498723826543428966285802958044228761584628860104458795617447285478854831335784284562845340233581168895315082596634922137748958068188142281491961697590163939473366833370415633523026684031980744904152804071569681017979927407027660304775587273975896894516660470554025417958334711108344282744441850157176383145177022566806175343664915869994951741801896223388635839850861291861002765977566592452567395963333118408880109470187508500109543589999440647987483782897433120830656007579108891175795652567447251611389191829277897119296268207901782316324910751326012187674285813435236460014217853572146940182392255554579849522694791556353166849863675823515350945719413627759133037239955371504250322322968382216441192373708879690954713448389147855317868010356404164355124278549945354874935091579861957987717272685305425448512777710397297251515927194611876107957741697550357805081556932814764530074186935768632130972857886463612596049624928162929784791234841268133762958353504056911794769610759509825830262844908803840792217978792088643788005416326743998070203759673354954224357196725204711113051532447469038245072875390880720397343642553998687695550963540078608279050199362220203788990793122127255735580021120163244451697474195733966922985602831658055390103395199720192784754003911255495147471650030820780751072311904252916200061068825920440667182300459483899433392374545597704776041710347943814060831379865342883261927064793825520087397289441778105831377870438678002046336515077517905084384086408199182844311740030719997687235931674460644841880695792219402216793073872129558609912687213118697402812046334784423668543923158197483227227235994574546733202540852069717123792823532521284224220406302061584302815271512657808951140252292631470908383091358473179694352721964991140536899761974610010067703555860292962084007319834755286647947763329516962929823698957213826408094056045240233766689345545969036117304220900252340275660972575962409049933370788193646269539770308382295089187878478739209351154432723534209905070233253316163992713380992181240852121949233829116973797040677419012721176524085634728505103817466164419669072284536564996066195240091687677154881058130429587459470398366340195602987132460122411806472655260807310617762644184274562674077061863613083415713043653272177501857498560369967066992381181199006820992160729846177031581161070196858071482793277542515472110552119103499219578831849249533109035691672930127952771336783128230355210311813003187915264487052728665476321452077292126660883697305032668153259101240894459208358655587960031022876745126166204841871615437694508888966829240595226532605958131312488114488380553565312374477780499352781374746366769832999282711630650438870350758223519623917614135140936609894538021735319737586929797724639711727514741878628856708528584701489314465601629072179012891793314441691163438494030004595376668790886682920831275091555127196284846314493189727492970599282265522586253724843974721571096292126599008571333408809057846929477444847794726123954165213756166652590794086302202751679440360633452549526934524456275662263242465015495516452277555276090007281811491266620510546216790052836254399618019502914204973117620853142476192708315266990727421635337455388204947210765441575139658463511697149987036891183569800025626896654470901650362273168046963410059578858490953959786368893106688790438139543437226070993788660316944671585778620599629836087029566921686612546013566859328995804331005458744866658812740548334095447404611479652071926992355072559055665162429963147007522114690523518261135342190129173218450104499647280036147200874454824446323202898747212305040581657437061943082596477593646795650027927566324424980975343605515398740685594539833651320064052098123122626314006146961052168158335788981556481261822094632962415820176800691928775262388970760169064900047397070441870071733876036849481125868917502294887013778631108095840000078131118748850740638232847161691848075547494685685686474391900746460277216501613136537052828213161629651022491648396029108241123639165187384753667262871823572125406688255877760821453657691820689268125950014871294172957521413586935749427500648758124887149841842628924724607626854124323704962641743718233444034411717459269757880570312039641366744889566887275807100521582677842811359483308135015104416615959882991901127939763942715889246169507099548191552422368270549930570052832020361138148851765928990996473504622280654041175546275656867008022758645148175102313476701227730818012759648706802855720568673055689529635045649852477695924136641148337773035602876362111532953932227860794236639758112107523887065119169568989120929592137748289198108590422430980963858409985076068298048596904405742731973712516710332856606444691562035574829315053061898914648255157782764561810274431754481777765362507873321532824016173430441638885568259869999709271762368336779332349257575094653455188648700028311945409225442175382684378141435189009794242030983039840823849350716856852394112084863495849080546814603295341828193030923549318916254253430399650723575295168645900967561080378052571980538841241752970004308627958545364280745840222188348001533182170121575695971302928009324336149198978973390797400404439289618653529015343963704406790439885633588555035500669742443233979878835237062584869058519996065793891022730286398007583169762275657631024569367128529572414211248594012981071386964616028422971131707121311175799173237139540460715483304457223615814281154419001484629599460445334961816471575701487308963313356061220178616563486866472651134444193975998369357948260782334545774191336467679125700415154981319135594444797708407912752805076340520218410017981308450741250679698701437787424258259390144204139952971252419935811052232549500587491277403773367999485438771114307255738456519733449041766318348493051475603356049171771543348223782540899357191021149157370602817121119089523155490641082891004212971953993549530364798325442992711665706023784325239906729684934125249991920776233574873748808025932718472897607763719206511777727103362147643865355651075545904320062544906897894555671687345024111670272216494366239022447816889801071605329804856429369090569899090528254778735017399723710218944608549886586842542936484786461193942244044426622142493673553647891686246949135294316390436143139944026871826015896774990023097765564879363724640222929716707198624441668958421533162620827572817173244102606054795063205007608591050570156693650254590059656180366498181163196637124534152521872329924896023998336218468076669720335847304893704858857454846210655434427952026590937698376697583966513574081872219539398685978949850007395508914440783380026606966854758483325901449210391929413535280553135847033089129236609879079974864136905475177220458750916683599947417660918530771108233620430535634121504378189860492811515031109132112432423721961814227575304778932949620649318897686537360205533711523108502969491398425315352040772238361133409255995427294534895245831096421517860932330314792313199044526212619028600623378702237399463247275614304893709667641557260741291601195101594406262143156054170829987211515524519115423430058746834635182584865983062292949991517498609061758555924577323644534185222259021770639694937113800785438541278998589884290444041333194438468098543363196717897274233647193245288996347273185336628733047195785654785208836725252492324306821420617109681323857270955722359610761285627277585360679984918025700379785600204314370661928286738356578510173989648882649894183424141845209772166938775314301333189661033709731697811589256548793354681259513972549684791826546048733583058997670745589694487390041426912780242510185342779648844877692752067054183331784868298931950917765215979606190585646323498814118266720196464925440612090695947892381817502762824502772171757277180331954639513038267048669558386298489236944098584608554914202934645469386302525433218265379044323196865563088496265629515299022109936901026972601410271100374280408258871941418522345640811379655928054005532484541803234567661917963933454318736695012985344512018961490425330190470182940156202872355002661082060949491906338227166876143175873563145801117437960670799811120430655030371264574966585822940503357464130447526948123936230562081839807594143881126219462541805453691617726797237013335018599277569709585981602876766261276479225598701935351266624509823067891215178860645370718804623656162060414682441595230124113265368337710361776390095736793308105542090556065082331791596948131884984656041853347821072313333784682745023674668909079543534296063894215750719013645479169767793045187547149427370656155616638166782982535721573592479973581482507237203588746867124933991320569562834871246601563102865572039627952363833781949542822676001689329868379826160207202423677829259566139301313737185065501962118741113856488929795365188971581312626127210267401439518895566221308973406741152497362432174254135286799326344587683622163959209590897696059568034243354271665920100837286821906403804637289554765382922259479869547983525939209301354835037607159771598601205143581675707467451578448610529619624878968680807496424924589738003529709018892082504063259795182031343698185585185438656693652103283441731163327084807970739041282493164746079485902057775432261584814412317406827636031028652364100306448910958322849128463177052596194433639755751609698911331697181150761613927594425495974811403937964111187644969112229131017704766864761379381348783521603883414447583413684797302893610455755770747132618197035559604266475516473559033996534220922097178154521475225448917085802174434729896461721467475386231765334469546828706996209068472486358978498518443553219978700945439029745731077003277089007408933904468260230084131744422242669481078602533020264954459454817126106412880717165955818878759019777339990802621235248014511130727020267060764437332828792730441086343055593474492487165164725517628317093252679040771024907564952792966772556262537390526285787457414697622357648719452493937142643706840487193958439497697553794664631827650444186105019838300110500842392843407615859337787019966683380333063425997251939718905058991059418940973386955122943696740673787666530051234487319596707469783153977807773447402134294339181858671709698472233767349572941940360127129709247606399923126713559318958638373158935861464648847691993350959718261649913667519209797346213223424462311974805634412447095303387626530531832472196478169017527602247810272287904783091907698246464132034065941447156673582244226394115387388609400532163971029759443480905400399168011907491647562818202486863142042883025711552844109720929984974888408933480149941856985163525983787031278947098370410566250474632716099129193904943402030906045558876045539723503463361980731374068702252648872765368166961642397254027581108813009296673162971566475356040833601737703475729488218974957921794557253594308840483137421341437669634938332840641137217177399212166914803011123178007577263218331148693679913884442140699522830810529097620262463378556567306080014498857598189163735608695585378521117757072130799364617360197654422450670992631098580346529829116986034807097291816388426446620688686313290774703827197638790517211924629205628635257856153671205336579529904380461221397071058003915264845911691251158813318171229225145841571904064419785703952862426376983561740203020883397945193047255720782782578040728235644417982372598635143581806713815620908526916629192916965582487627112641638818486794911687120408846401433273520339227471488728590192744960364469749534488814589283228826689573838563355396650573625896393559472031691182366790793133420009781550668655856109466085848699295454310793711152274136812912379252703004870761125980178162952894706414156784099790093893832163941128910105717254098665372947267694943388855159716414843494631645567081116568950112991679411759434074944410177846379150663290749240557537340726845762051186741377292368739870070058225061201405231705075738951766798797779624042845467430056900451687213334774237053193338216879534557340820143244439294006157558644878365684754052961619676900880195054060232354274700581647361251259114444356499027896350331229986353008525858062852513975292266139233001311671503208276540246657757707464565613110406930048456968655593894025510914150736931750142199968260320541437240830346530013256196999488420686875613084956762114920501969443082603325370548557184025351405052197603303288650342600112533066941694213696844012473684332525183873325847331105820488822214058273379932365126066028429113380445718071146618603576577900395028534654919391902901330124944603557302785856646825026195226429016776251357549218858602238459204585113198295049232482312337601274455819462106328046107710231306475731803898305154736730830463455322599732217262183104447163617905600729729966345033327649434404380685775130072111361346705863163160835706873943483229475985089787675002063460377691387045421406761585253036933585421431037482641921185700341594640840486114961889732029095951523364647621871157972902150754905136824828647343798582812116832467237027210828276473053656945515127447348691523956260043541247202256677519023666248139496347385851406509280127310965421260799871006036705596038935256868930516826652594944902384094813366267692169369884953383705796518795934768149586217857932300785366994537017770114956174757173515756125628435048180797608018406425421116856501214204982774374763574660724680384630812224327364884731707082885342160311998197530690523499829209151947530749047956346706588893009823606513691189364452935199461046075128907803790239155155747248697912803835843123718871360120162461111104115566914876838352483600152240062328132754886568055127825571383800961281140683213343365280621441262270246659597982284366902632273910290986280108044370554264711153014216121922728449061379725268568002446177223347966678305344862281826346390563026027458583744404977165686622851605777914325814330369163109824764069383606641452404093424051847227535007910337153913381023752061157270503229802487838560997034266470164697038407092194112437184400599685053599701229635306060715646750110516991776100109715550242150370026207169640441926052764347572726930623405903374081290839061668592842811005580602154640105768000355672389240963458383089885112909167711431211709760933510297925407809383271986220046516835673821451173676920050166502076632476498638084043796454641221941466199421916463502343326398757450805068998263166803517743243304880184340901456951117516009525299422750429794852482646678179037842497134113042308680815087198105747265602434326641916841870871987130528184732188722041958795808669278169255523576814626504800051812628936302125852788927629536885188781538612167239323892182251568199668758002623466431201870528474145167641925188493837481847843628555949531292557533767090655335697752083830198882104004662897679840492452183816777647700821520164832276062226387929716371962315588741835476173670978996949058302396413588366057366766526723691347616149752438065279603107210411603846994003368017945837156441898742999492116194143705599343750260681507152769485756839335816856584207935229438562064924511625878662549066605739007874517837682609967975758998754363552917995009371184317640953682608121225484492723763217660976331548702769454573286887201404374724922307567159225541329754866172670879086065751305092848573536614223922881262819791130873109632403046342178451633178292110608060269605457196724110195020887415607457335711555798720665789956333653135544981775777153861492419094324120763368167176694637636325472527365220038261732994057263832849503454149469829910559724130337727916599188511972496931022612550093834746456539614218716686097565000978229144012017703317097604433377775684468852099732605413730300968097056184273132227861522864588930746050923992628963042262046385567401836593066445964536519679549421228847355697889474339354842475398318189628409453284764842812451122956961804306369034559818185090887419507504939898796365263720058945597352617158665279894643797859978744348583554639648595744470280131151532127747255701130378070182163849284080977179638808263224130728112876500282137848340475166721835975840953507889438226619847359034075664058587400917365410161105069074895250972720573568377988686832550032820440326130994175895161156765307525344675845800970970356191134207510158209520087184134482846952594527269430327415588153075158458509837267268259613684003726240898762911815083574219811105151304397539842105580536234101838009442009389864951679572430306747739429874335366761913308014776084624715214703823531087915565328170832035427909085092150981336697124131957477072431323863617353369861727405354510301651290737278429514927672960011813600978139114587472314685588822726825567452544345163870617722580193444632405633409876116286984183318716272666749274590840393297441618836663690304205707610985717347414707802807908780231082468146318757976476614445188366198384688137595681488956131123990825058537313553968304485715404976129657848467962574321208533970577031831934199059529571515166362313150375396744756372986226630109292239872056626004685137622643421574706598085212081994252042834724895167677405054497288772056776819280365736767535655708422336948907408592271043729806751192987050768981611753654932932652506848285102115865651424601704254681126511095201347291475601195744212174812791077189605324906870738625465173255279752424281662276453279913258240841935372030127294747372612712220171120453082824212512465705458918948769419007233835350430933225534314494929130669360354191237191645736474324944384318597968667508108532083961250941883149968041273528953757352908104375727406688336933360187696243058916541871312044113513278401748067997726734389715600933750276445577089227528838963190157850037742017997934314108451298447675122951949232759772268620570464349078927544928550289263064034312658920717292147673633179895089592609082617163673228350014300698571960256912676027579189735377478469317885308514467005547430095777013735888960889952081141091373820324011582286103311319353204664187081094969439624614152444985868991786277215817165324639984415029492565413846403347849383646897314897000832779285035386268313111012284635072886869140871646683380863320356407292516699497819174038546043654298035928547964686664975878430085521353428381150193230229307095923867030684375534399010345249607224699885778690039251527144243265912075597691409229823241078314647792946935555541281611184752214792010206715418238262369488815793048855013252073574928460492007955570445631024781712564843490720435646427311295134180580040082888638161751140807392368921064661923287581965236789627713507904442036025903112163079464764312258080676655330408298584643151914433615693836483108804947360643138983693819819341413438231159955535616914406838809429944004728218851932815096329792178218255332287229570041351807891281856475102938665363621462142710934380378713810954531058935438877397592909241251611092786098407525472439962037340659142466064180598786898835184883573626436987963848031532975688213207955766239500158459370354433430245750690462867995650934611095002523442949210062395165267930082985874287951389607429427284862393210023148023875404988964837610804202932891218542808837708427433563062996969432639603317702889308356691593462595583442645337502141984873975619338261192742489948256614527440004616808192604119249696278878668420443628358699600336522215434208214141604822730763459622922533891289406712713101133265428513489713249808655748244045350350390291717842240150653523411578942021056659810647501611308836594518432666165452856977684670835116580486157608300589659824794446943293909152217299224143055436118092302050929230882790187693899311575004119614378348808434127163072027966883469505128425482053933013853077934613993377171368306658675161409842972928603858819456300427201773061849707092883104440526381526728850275881367034786380739158736558762039526722739422145957621477174745443755758437531431259709748448080425966358000046298444122214314923403293667373098592904218656476230298855366150677707550576015857529691951121686671259893488205128273023682552077663040700330281441956024963607714341480224041460971510665902402036532294137050995301978175424680651224158551744365111486228277937565562174564897854567065109471806175265373380042071548973190953616250822513838997398760107956212280693568622916040126223757836180908525085112578475915902119464002599949768723500191472440949605834889146947041113488508829259323953317074920795777440131435216430289692232345064637460210003496538468692688612895673380795492178555819709510614827428846518191076617177306040613375420198794764809536219167528964560900505965343820738242989151986720836916506336064629565371835600603528581623696161666058630149771615422796339562369716397670256481509092040425611031722628143545125802435890334093794642120393543250264138121698282498195107982116027325921841483838534488061039387706339680523252702990194729094919868663695092415240954320418831883157356157043061990152496913839511209556840510468574850974654298864847867575602866899123950909185264405029943482184623736072438209757259897740521887613709505015622653822638307691146517323490755932344310677557515339647885395522959816444062930200683027730382857047854560996587620217038069575432863106233731298739880413967517357181887852902446566514809899722634392823511933221195273130749677710146706213536836517514867373336362776680614235347372941965857957682144490645557277483246442495223485676757831949523385159161999866624095851576049717965175595432692637924091349661077695868942720456358337389754588460357531207235699999832681284046605393529786733916734377717133587312453969239061862859249687234104313542420292846669789614568105869545442771871095837397673510767423037374543703116437867923917124376108478378906183628862703280178062588648613643162917554019246726982905563498133024120875320332942143151828563276344951599805117993929752878538933085861543989644144627497839139405296754361436070261749109829832133855517268577256521590953555322154634318752368873951250264712576009991687506083484398266834473292638998831362934711725544054781572409334119492101669835822047569495055207229789224485619653684558581899721158113078064366175585107639061656527520353756892950681441965380328922877554907542680254839898324736460634364043947901429695790227962553772363227211849510938495255717689540777875495456454831218021263854416267303582740222684404408308667080506843884533024776457462210308897169677537770880925374227961084160435639588894446175072626216612571687416602002239230482461274231711461340642727638619456585088549503470028720339790278129630745269185736159245757362256875458807024612907129624504120673926310081414894600713967688295356602236758307213576141568812717906167811532498380430536198391815710508590536302777630958160965220009261346224389456092259868774448566937439221467839739650766945290951439076189492483222698852038970007038962316008306128723954542989488103705970899516225279803952268845377370524983381699888724703315667140704347105510793999181075473184012152000450868298398774914549490555437130754036855029493967615856955938176178126542658388353611718395632623994033277833712220406861260603594547241864814991810571258201893049250530337621676956631470004385473434246828739089185163008188304079148501425784497099692633196973166490522994244570329268636985178061588486898954658534712036240234306226503061684287376908145715758346808368665825975731418071331317217693920095373340938228057410361896180717371391507590124078281123462293945538167505571765404504259071244892015631680408330953966769508217221184381396661198325065915756844903277605186205965018313431632547129638478799069343359815216506218605531827438513852343040905231514087031904414800321202397690785937049025813094434746810236989800698799724819900680801343852652901259237245838484613001163154240428689801984642122512147673578921491664529001115192855209401298898069788717741754498690588644193973818397912609687672627871607137284160673887913275606543785251061570128403842407240867332077610979811460787452286172935444408763426909802916901762827997995583341029225194895914759366782316077482672145734199668685308129590322432530822134784471508173876427857799947706208907210018286030616935247175795489546266593622680517470867918351612806585707168800537435454494046495639579394166951609501245257506812405142682424814074774631538057758979261509245166959128148249890651357238071237342286383404008607635567173128723437882224235705254106178233315423439711650684909722058853636518171049439894055084969088347773209062260777541276339015671114415828511671480861824329231554691110918104401041670679633326442941622689206860380452965896618516392517674815590997370677442346730150140848666066268801970458860306754481978364704027505103326236484749467750386902501961213192738504893090955452493391319298543587440137795647501855839238609207346248007578734712215159513195082984227216448528831693947918704517123385353624350819800399440818379152950918203291280986593996535652202952712179236724788430618502159839996545364003754672488591048747168636222002638060640700404236161935435253570675552201173447600577035003051758660080284037319282943191198236727160112716349959795070202810360449077118694634648347926683639525407772206549314407847729239993914851030573945291117670102018193350362445994118894324688672809367585957113033974857229380058244526839792383870791011423673108317565132956485289605151131343079662198590068686538646424105072839989380239511356754590933182471089271978484005131658746979835454205969373862557946347535837475672664749623133299092607075579648809578310959448859714805711230374544126532425232099497453338224604052803321560259640545513264900299630282193246771391389861005513417236234531738517213423531744548649445699351415311399632952915877903538858606178319791075799840864133525327442439964214152838830896082881827330510128745025389072260276679724786426037360038397650537196404786624401401058956476879589413363173239568299804582533360257902628747861934877837470362551486529790496487700278159705747314360438959432080674232042325864894603670012103952691531428561185979837395623487898319788899181412759676284689920185543376381124861106549154249518369017749962204417379260189149876312000922783121657633136628711022500897020253859411470853535936676946589870736854715049242094571991913233486337427016718312554153649077913056808377338776417987244803537515635256838721833098665308962320675449615299977642250669904333788087647306421620830017788805870148982805530645233164392263204679648495121706828528648867324591602008698997082543519908043168999515044989525761652568549072046054953068425382014546787439265711924840809933129497615382732232340765804419366436205230497547720152505594933147165200003238978401942574150599204796186468707704072670017389639184312558971273893327430261916981796919806107187786978291040405885793297221144672538400617572730252625414519418484028996443859147406876520659436782467995269495748844245412796602787739288725362706433230121741023745905726509544152717863376325360595426670215477158992544439247037109430632912907201380559664631176399820068445950418268880538217512601798444288637802094206209457087887144488197611237587374215122275218668904095927081623081102220349890709677261526709139001904342994858570909320638906003049515083704793598823536006740650583402687123554476372957303710148688636175723533176639936055885132706162384545754718729477970786025076379826446913352831495745853986304675089521636367928330933156201647074317800755798985249854660897661335420174168326635387173247055837351341641457827808475190382001931993734298547655927736424693056282202066944488320274959006059769463762964859573549987912379845260114216728859951894948498325657330231035537891509456445766565857972160868560581275992956262634368174923495657224191200357562882675330599369506610599944289363234442021225986492695779400650582514985781799487723262285245363573157469073898252520519101520627464475965652886617572850327289068832727253068948969108537420533005754049487753560901187356170770625799454382118308356651927248568648605772791247555013556675018525268021915861826443033694000349531491107645031858375584245631853286986311375193822732091244058149228261423345120059214057756667950111747426788474521834588141125066455526138033007379168442607364624023404963307660795168201682835019074288947307926922675191159844229542569189426818684361413285201001274722714915184999528494554228149226656649673251659879797918730036505690790657343735758300321583586651753855431498031480952761839655955126374409519993313863109736697764845458459590836987338028613937464084779755753911233499991564983672515499685354262025577112002282148762265800465601957392583865923481323228869562271508976106287556675565094945971212683610599868586185340487327675318255199678265944582798449198127303464006085492160315888797785597833295059878938509833905108391669679669678704238383997493365496033408895899957781163941095171948427445001987252914284927738173951930992920077421012041184029995647160631321382805532882931965460901870099408536031192608318283657178085306315352593125903803562135861380918124691233625314922444030910260603269086667944536070599568752349705867521825760467107807638368085047781945505463549586484295442149015703004393212564389467393996762355854566618975276610458858870057331173608625783359274932978049312744313135180502837396635189185100227419598225014118840409307332879359332674743988593425354986889759478143813306229839010199158036227825448506418481324746516295538934486398447578575049822474558317592273302251672211576510275410307594664997303139653657583037697004092872014610866830654639304558107408905779207771070208468517495113618397972650863115603013811913188676891448398536125111543925994355202717048889754734864217988420610870642703252482301200796998097510989512459757811303763293578168761649993457589207728767619346609569027025302701786110350307633162630805550033975434374636198906783565330524489779557871827972460009273154686646191955733813565507457873703713623043918844840576786776881535879681524712513574195386778447757733547926114454672208608288736310939610514450490121588806941665113144866016048613205043483070873442596043417704841553427261255769774506928266898825088872290313387160779749382506528692516247263655130244602316213101817331781003491581207967598929542812714558868686435361750721044468371778288351411213512701009629606752202882739297611156807173306709405035512445325736410076105894305174832394224702277915014023559344494182355344444710097686382873185609662385898399248721224320556762614660958378083852070899003440733943058778073692083401938581268631329014060410228693528904537927428507637031765671539704320623685605744592380297435825171547080516971807247099748852492635533240173968855942534673744871012056417354596263420993056300129168097363283237986665807175085269919139852286898862336293820265610782681641757984277861126891823673107375101075260562106406278122950711673667968120971765572477795573875804941950210030118667920606939922634093662127776469179267965961378676052792138119251836655128309116229965849889559301240959312653054258951035832234723449230304607320587421492104152578310975790511165057054298895362423017964719478741710606607910598433888966397859405888049459198169385167904249913213427021115754584334337523031769681302589914855624178720942757791829148145444754828924560345240871971798377101646853681559382477094651811670657426844959539477823378677436046191865992478489226336515597887361220389115443572634418778685955376657174198319225138868435776516408000655545086324916780919151103331342322517825835343001631471287515808688705225567291346429470353505093226550462469243390625847320318036037281273504297880509058650960203770589848369173928446134916105874352046969058398957809336740721592347322050923913429842042037341772513076170371026739914945937553325033229237700999819695805640516741354207386459304956186672684999938050057199758277403992609795337119492827775458252924169518489426602835033445474762509820341802725556833328627509162945554154529733896005851680311985704003536558477409454226332638377412996631677699966059113419719995755065689421381654810040778004491404102838950898965396844859618600186703339796943246822682569562016293031025653896996779580301072440369076716894075475266723491415239793184031963487899786100344199067160128458995613632155734187347099213052818157856747889323169407818969366175108904108277757446382342493941653060950265662103065763211211622536172891707112087037672484223049412672795868197139190804311039274151968063046850445198912981899174241066842213303951559342159426100149396019797408242295664294582286734571390250450361320836166806267031910668850537054122046592532741200894320080931708342908890759252520133822588485801628970788996009503654796854995636766077961752643824099817571864545749661494924954609393359211237422228344259819175357148429078337521783584391649066366035396825761874459779864497332428341086440770513835536924149078575620270110426648694249940461699460921520637071480819042722666839654974631341557994808778953678967644915220221032267932637331173999179805738785618997963941661778853854204164171422426952140504907996430733798585675904943148274962420082949441976239075184431622450134125362415803099026768093959230704006827102338226319099032806900229662236276107481577816885810589577952034068624113027029790145273971480727932469001381917243361550128626709931406443252691131738728440585296658619582415381513096092453444032019751828813011554771879372583709801109453324628690580228352302287472521098753542388528800497542391959805480498394620874032954220378906712173837897929288057926248057970515241591912545240633014548058751682678224197293396817466288175043990415905631873285895010299012495323766577898481734174245823323515355324400513327869874582222353698770346052737913229565254514715690135617752451948358077435384923291552136540414058866917716845589659089087196790280403267948185197791538251733471113736462929653584346591062204833353913191466086500258656142979695283957371143996477636650860285955950698820469211548310436276229999713262876448636285416075313775007951719470092991757193965223679528597369520679393777791132419020836935023377202403020571798240882007553422769756317550207578426391884435724302446393152881431973542919332076646583812237238017884812544480751257600993054132760571610499646154693410965593435126486071918047093801180902077819182573326343318216362270059181122914655832179754975602875079662731763856166061007277845412661115960596194361684919774098658921987690357742972308942134107986829374405010728768494519596583276160543916998050329198216368582265108930724114668265102082031609017865922408634456800058358629241018957128653989181040264061786879169698199809633042776872631895221970030203385091992050878445571451255076005950005830850440611506005791762172399639916632510542491827901440669329607239643561859134496956622082419528495302743929451972175882470272672808451675279275951550976480903302812798571747328915893512239717104464916933325456897887151704800638780433447061064826109730278057367937028499828328074280622978844427370273113718096028141507208203348657500376587408536111638992754826219661392343721397518549581627943702072135250803683925962235221979546273244620363798494760028893954893993981729508610210081586262321982748230123583932975057705208544097339714346268174382401963629868462505059486584389131248620520132320460229612397308877354935788159090713652687044189655694672045851925467126832006787660244129269879020250026912541343661831905481914676096642210174688413659324873837138520089374550550849224560131593995834189802492720937509241521372976197944347247728895226983951633942707094244676436783933570067313354189703107754315729563703282437983811595362093684947843751122847470386701871555120301228284010975801461388909895068906356652727336889943943834952359829576109259790778867996165656598581597363133132778135914883463073111730738057044525882983899665164229104717614498864626678303382537820626989308911076041710627634913168771593989277118246914363799474561321916161452677923048956683287918209624268671034657240461894069913228664887146106484149412166200848174534746966910024506132582488697312021054106216210468990757012406374823817272876391047153677403015966836148038448931797264748265085860961426078476143425270740210258912533278232244478720309266182914170116429265440649474768037430659246024643430451673879242911969995778243346736369552193500484092891576995755356009094205116913168813529679718881375002609893573108978792716437022657375672365198988375029679914990805318633318742852938761810503581820029671687383136518929231029716381158371870708477621002760230699486557096103822304028357861458999366973179104476700619849444115865578769193457079130861235883620371765880697208910602859129392965484174067148829479614510781677415471760629837225823189187634355945745720013353002534490726254773935788170662411564524259256540377638668951828238373571131614481945226137638272788952830800359637798139023144945843025477840006028026814253423105577353593305173642261997312709918396122731324812020772358193912442653449824732093288375494477770930571547024197535517962026256254132869077513051385533207087137644049836834268042243239958768452683438479475508108651082681103756173327682106221970891348480508543025949344752775541039957187199684962716617054562321199807664992445042138976254228297374730196632735488957589994302923102314963077615171686694555701066042808123586592203500074817895256951172438638762621443865454776515456406234590228716429822990228282771536050589303316997550457474970856538964578853076913976345163684707097160181604355284603671765412484251413920665548941161654360144131981671682330371495978051760503325782237884212559449757927959849148905137094570073029813523342755553597326718298488610214877579707835939754124244807637052009939668754877970848997187205251440233341527620819243089723325745165385880099549332275208022164082794067283501198852762554721583977195890469544443424049632018661642139095207996274614699250959965781149637020035040654042721399578572327020977695998747791751108900857965911270751553380767030383747740612762517994816990785925367263863841863020147811677828205679258782327217231582392397299787910281144157925298319691876952466679286793061711448303343598382798615655664695982154008210815969159980235683193088664274187967554175750085444437479772227164571224906348511103574662907169057133047953289504502084740712108011341786937424531767547412304271909737075737048654869232933664494063323356770521914822231188978426270102508545085653393762854989015841177972098832266895434384282703714315826132602680210217077913269013184814718397111676020844577119757656923370895038512347044737545300136976618581482816391656987675188042939862524652999287133232071132672557612481857844280573584736240943919408865494716464604062369393850909644133407677370280961133486034364078343827907622999557001295010967496023350906887585833310347331397458927357980566726300832056436632943863453415771097905237672578036558707823852783812142401095383895126691980613842771286575633889393433762925730852193069542733273847173502018981300217362154783479683206984896100140939330034223243608631586004208246420646575679275457888749148640767958698092919503024555055631875766024693875574851700577683061072839139731752124875326556829049601997934914651645315624193895722973380894746764015308617652286485870818033336930379955233282251193444662645743460691584527799708685114307446994315247758759604575907609306111722714704875771816907388687182362077263221509564789429196849358823660735203225493802486914999591507253745818556347888956057337492796454672547657715691418926872829948984675461126738360737285446405792459190160755262270539887360898861163085747697526573183158224523203838066647694219984997437665606500983165007347401410188986626586192823351698608356176596765656899334010400274758753876400502406049491334561612102809494565821405071483155301778525951795214721568885474752463847852741888992692031995226555071861354628587223968219957386962768127666294669203530279356168170036360905084925267255994398240108151326979215342526743940714072458243034378397667338316429154846456996440702145875633992937074148352450433759879713922266168211179022150364132194817848863996310890364448398386170968666633135378634665995223239944569374752758684796890645764585150385310811189477464277306455792004182240363442553963644650698951842581505924121339035448762499892879192719544359929815669605834767403205420289314274527321617834880843605211486945451370873094109106036060645409354162277422691070664498593264152685011022645979805986499285392839852363299266304048745504609159454893039530543068485063589942880777375477837711427735519622982838991240360345118022920011382336372932187734674368790085155107910118488393943390078955030945971593817094762142329694901511330086319826577273194349773769816955433447358240527401776235409779835320675309607569000492986913783423903950081821122948509517554816941692519717273223736853171100750006854061923573142471377891158074880199627737935625248078315112651538571835797920088416861602066722176867645564868292114843735134150237204848494900522728278932157139904307681429470314137495697448939218214853139530131012717526540910110959462745119858733068418051549983177802835060144748810850404990206468692356127505297807766752064206277194354615948397098986616189134199943491386776344163905542046732548784838656540959760940423914902009682466154021475947407813707534468591502105343282232613057047446012922564126993578663885437028574045689364882729705966791058947158711697258001262861647640836625303128539587059638485885493921849617995520049251926276254471547496557239575952414192104341447474802015693569875581013433880932804715402135912801135272153898786398681268418637553837563267101424600509829059049241593089672074734136900377495128996392124238680386742588176084780106143489186878422915266046830357060636737726178939470873878576675790430130646487370273810685131321415326158176522246796875759880898668269373826005341634314963532955600391920749624098039995985545714122337308922567556555341690135793769872305276900601594921198467600349048167009004332703800493439929065438900690956158977870344813204867126717986333936152773523157896573847256775425432307145659309723526316639276895900188860097584573274409985295283845121706535275076825470444448095915358556451154605132687165920455238943509721394687963999839691113718283060169464481403359780359375164438902082075406772161219921301701745595663314704522140046184932497930430522061576488629752162771141452224432485461144166723581450902929929223726564768662955164104128105270980671695882078701092938639611562261335185353910737576730209035566213233167517074186227590675363739683880947512825949069516401282662401958504513794843727148170292043331376413168802596513445198506258148944395937574405293166613391640988324929785394626660360339191858434484346193192270129087780568797793662527304567175240028965829480096041553562553649399160619565391022193204701277320016720913192355366462456411544621235274785768350062764813172352843597508069257226818227213708229674825477997900718453304941203633821554803517383899373958244690534011133174320007109437925987157031330097381782380015759375532311880217681933125515150538900460185453039237395357758763030518334621643093490613909232504555450379255322975041566690508139514567697334429967294456626952346000851216893217423402531610311938025518972604471305986360717818521735207375968011924490204987600580826478564336826155655121896745872012621440534289704951580342588311035238038174620703828970148206913491144855178291405982266339642648963204933131441674044074593504689035109357803275212208698960088594123496966434575430045373076956463561565904321201577328307094650246969968024788576213509562078374822121254883582244833976442947412665921364997170255597433556580869988791263603406036006750493815338437774272857296600547322950241891744889793675356448384799665624170299295681457962744118245546410622620050883476532703115501751276897461504996708414988474488891498649718334500068541780715802683541411049651800478724657795388196859986680295138996101025132014668347099729917720801975611252286242416374948745506172236224454447067321390184244319591138550448894229507773385474243370276023479356261866818209939071856245577337784981828413088324903464717103646706532936732164608786132183081283556754524304839264497786280678145671858407449450027097644716710934211875014042813051245998036781230840652907139162918649043541053760369253363457860879767272652484703418036735565415243287212508216588036999005486958873222495175998511919162365518227665959916080379325630823759826422642899510700781297759615226494025996703856398476885141786248016915365070794833942316109883574813898186249293647110658169663337769510528419484612354920465334470152944160264468301445429813041383442395447529204422069975575154532087765136804263407188051468226826579766550025218049422204109115620659573125202806880523784353228918424288790613591029590249559634832403301709333824391424304384164840965954874414058936939955554393974638164813945802342448785239723875747324132007648791167333956321253926518949359069660205129231957139662527008512819236591726752301411842254547798474551757033691897376518353423743571891171586324796169424871783378131935882940024909008269341629517070719174165372508280745618588340743251471647439729554766406031282077925809434392768144273417004409218912334810975824896199897560212611293876884751464581198952090965597630743955860824639968836388333785062925068171653069751262319393559617590476987588329833603308641072118754768915836718472815964877926556524283536124598751680439960136288572349449578870327272951290722080675371625833246297985674238450481042462118165153618553224899222447421900647870182005714860607495258196129473691819629229451321186041939651954693885678074442595895529342336166854760197440511161852617220865715007965860410367778304263098922696976131382790365005438958177947422104206921906294369511709855653944046115639538859393068558102899042494619337769970721743992182820331375110165627864587790244925726483327457500607349601845673585192260551455412610252741486582062047267769441350869366692838139031359322622383074369410709302241210995078562787894059545677580358679534934685324349691323967486152946931795782828171618136880102245799682044143389245141969313815764825236291842700201545834121374592458024595219707981288486012193312117240317797066465040130998429847983745782164954434858226810848782487807085395715363863661766785582606471138698766280837395965250239488567404160953319524122287957017223829804839286927618923361129022836788522021692017388624922283854792074520567382217409280388585639521285887968892306165395828412717694253638284387390241477492635823481601410063416185583758762883467109473016543023154857118058563876890468686538446024897834943907055972616855392241226109656443607787348217111098189681518921115036458900711469561093047097027260819195760790969039973411002487335954653222837735299128371904522481496597596385485481705101332374828189916337961392364144875665847393254375182512691299648806818408537097962478406856747830048783319197132221675674683011422555302373698971617080415691758036952845073972776317777476205388546213954168635681586819415535825387949917263221490320915938186588746768071124073781082004618312341499462097370422305481128864172815960953327738831307019588348138505247310693497069169194681956974893779921673142719678295387441117771160438618320794149490828664257608943905697572126744472953673505155065309662542141199113395303213958488990973796235659405890107355145943597502353881605517779741614698011048254068467196885415058838695981421810890281222568784956584309857723479185745377230580783009232812763437125994403425974347912146001204046960377257056760025342251906712368407085323428187204437914176563122031805206457376026979900050047472951461278961921393910847248714388069738161855700689732127131731537502189258165953768979591549406745834160386074925019328782668732230109856203027786117817737210136764321555485085608301635271569465389848928092782468324219909908836639449573745349084817587093521330792088475192029268550179811764457547752209363465517205815290588390831601015620448141390219109159707240276411829998551171212179954287198766498749728731875050689660876970574342426200424805105244003112749878567760407528029540694634420454819691133104924812373428127360181055226763279779184934475423625046420746544141496278311947630987349899887976031215570453045738749875910372211450620212554061946426143836139246011480668851935471682465910650145737118258764691539811471380686568540788724342659620237144445067935986249722308983454237299356067891651955222329257228097310333468022331922398917329443814634282391097781888315373915477536431255548759555134636764556496034640206201823141276089422364794035985321157152166919334030376865874037448371927048093917667461165391061919937418528117237204890479397321079245376978130226350763564535587782226952986732241543338389271914863052777471539195193025732369802060468443319590821704510827657078547177740862413142201034604544637304477257411554348702152277264284235734133072179908791964473027637393154775286096035417968812440913489587522698482454595984671497657799790054617876890307332605364829708530573931507918526769994268197728195511415425598744461732795933149529613794059001933420596306890622586696045459205728590919370100211296883723854662810531116985374072615217018692780428269338462485906645982641871918209633283495215321311667418946152449940693189993794147464190756703624026449169124103549793789750309839313128580783560947943846241810381244338381827271362978060035291700371651513427270584967590855685452570444163879675054583706341048070444556126014538698190830320141811129228945612444715517567667879561727074630203519217569785912085680062965765186743809424951861414242707347060009822818173634689128512319632120188281616008707505918422604005011333703294190273289663641680209687281109204395418201578416963198179642223413966694498558190456527520476646269688372733094691499931282850543216401810704552447778989155198623647231286888087859751033547631194280387706449182752036022511857115628763718984614892384776042103449241616146713163793481225140954682079060972345001726240330954544853073556784634505418152753665507455682049471534083978922105342086138778520715537733457576187549747730114059693797611150797989075449311221053532288869889683911855390437057185597274278515239982516817660895439419145053781818510119054387446726304541693222298262075206033078175029725031133025824269952808631146761675025098946258708920218032742034545656304958650108253639222826181308130401085536579399777989000054933617611030440428598348591145200848523629995741220523839993136037248610717614889964152345946101440204473441898325217263244540858252572732432867368118230994735041806584763889979787047766962769142191240896215047269235233540697341114076608714323243411549506011007693650456418003943408545871287407216318040065161698454284788790954492018898474535990982669401028153400575376582071361585073328098249161229732108018667442995558656635553826179539288840389452690509744777330371731552128596340103466642689261653159510778980424635149991957833634718027271506688529934120735459923224338117329567069412577031647674451314819699010506065444605366810560462587754299242345940509797402299268383849180386526230683097097536090541760594264640095452160786101908436008087347512083293241865303925504599732665938785603329833532726322789319578138266653652404872411112238147385527971269157149791418827334256562647999638075801931034101349715121445531624088478394555032339592958962067340168809896885077084927248117717584651177793805765454636162844771508171598022062885919069317354983207095928897525175516688405917668433283316685588074124243220987678857460211248863481360910605886167801908425992690411385189775199341626279631074114089300735890841513777744852109512165353228993530195593875448880227406967906581066585275577534601529261212361476820221664802982337124323593715784646315660076685576741957204209553651451338742549068998699482137126090330342951781824043882062584151053358725150931834711095106069597198746111451549154906771347515392299284153317179242731340669818749890209562523803207557096487055538715331225413794516307372610307254687922233156107724655386736123879550205204232598883475598237512751771584430348661670695666630978472438909095280262619697940373180235730053748602784486882153427791163545445908569321572607156955406056763230660269014566836677160138756856551889477610565584718114384479109314259846624690238349376895138245781793128046002596812049803278980596642985017642836582781654477171800891042176888767219188220793536893458394575745850047195402509532914789623893278093781602161411113934399515996430571264116801524964753506827181601126484917434055668662199787630241514352882731923598312440578172488646451641386476087478000720457809420329594238642286931994613486467884220062055157230346082922486677347245027780152066307821951336757811457487397634021278311404008826263371829142738224825431253606288121309198756605940375725778764305361679120332687213565230960728307548254028863659857425226282852540514632654944999894400566602338294100971063342460708513582105008235567508594858708796040537851478239711871367327318628688789752734997385296047004356191224981263956088263396739164529928346285418250939353714950687871675876186544098880313749870232149879556079380754995554749611715691486956525415227251377328040847688965366747124279982577553492027937453336295823303960258321396425609475744045608105727891331103700447094921689484805091555062706337816806268450234380498982953257425249576445704131309749046971380664674528686064726700452564034020734283631134791892893022013281315870019872898982336871939491165822507457030304981300996536675336559159738992486983878164680463925028711021254488892068165078855348628350300211128615005408578027937692064081499510382364489519636352134461186186922868041127736921227062312379397246513649580424332476526564986266870592080282438810640656239150754898583875626241850919502969116577661818984147313042980188004178419766123181887110002031543381766312258480616070149880523239030000840377713844320491468244614036225576269312386432570665170221174414651838728730788323373970382268496878434753607092492880485387017842969649484953113845912188370678829639002515930573033108383076425615952865302442783900483634708649129498709782381876016809543134153455491119799400015523252777946020197506565844525302437040672554273565588041246382082292399873638334178557784005125783207757596288463621085086086604529520328980712551575330947781432855076627822815011925040246845341966979659297494196423004225237918039380474539906242238306317646804738091034542160086078741490780526778889639554820763350991208131471761772008813244629217303793744075202976338508699721428669332575252302156402849263655262415927502229183550741942443094328023337920784599588402294296272994315816193045302372567940563975894522133423731123993544339824191882942452425308162187765946450587784293238909112537631498026211143770753348430614361290785687854487078407799098291108385405569966084000684154263445519366603605030914115983418178137763921597270188578429324009047836423118359364080740210274417404845513132567837404128569354319776813283823912405919014602711889697714708176794332337053669601287743085686342018633020654327782546200619022368485069700242919857745712673355738445807277671637968554743423777791003669888133936036393420927904273356607777345670241350123353818626618053614739073858079301010803094835449134732430914171842702657823386993062713633773170537933951408367169311568918874595449618353608882709781766377914542713152586761584929714673142102845926024950687939514598470392568477017213498285623868035872591933463924602457058239775829842623811264420437939865431837229732477862159816691672284496371386606274010188950297224457155242594838239126333881037237683183777400321539587588414711496775056507519688337639123474046424220697252425039464383488667699026578450915462663298437774344798049126402108002099387468822847185626804023513383573959693505500740398258251096159189007072096651901068872351266643522802374711921114029987439170006914940154659570056815314496774320343494105318023690999487127387848219655314500687058960981717626312346521859330555129071867005280564465317237998774184807920895718915029664644906128930781009560854081868369601311467314430328250358203653404306373878878276422410365893955442503874786807052638589593403593459293621551578097051363569421924873504925149787188013441291197166780724250128396965865278036319569860676197302915998105500913968150387334940294842350616519905138134792544930865165687524876651725777780599918640544123533868125189102648798137954088352674151936062662796183744683101016315159663601136502980044405844327428410107050874290911229762338991223782217756522418914714620140632638268570963404414910441210038656214664643444270306923659303362776000914669954929335723128621136833483491664630147683661091315621027837433712675773882014090011459949583607514781005875537627632239727386329382722748854735113659930027165222119159744632246013999817849133640581875850247054413573280684305173852407541062917876379027386972317163490640948739488832715256103099163465864159787624347588483096995208274268629124669321698884733443436470351934837383254741699886416769552558738250666798753202149799392056330090919201039107991713683815165954419170312449800601320885652486541878207042113618795327269962224677829523519444505847722231201617515839019282981293241384842259762517665119114011260311821925649855174390268651078134018075490181744420527726099656061714654554948554298752693341153513778346334273371283075654960250687071427735747570455036364228436236436751599597107171696025060270884726687604496268920489999933232148957225488500985316494059205199025297739715396854956047893696700903630574758922300900719210949548321866035680947191109051373865963476881852101193159222891844105658150598056998964454688263509314698831963152778150832417753966464121437418791161618084805186280557495394458360807521093989853412043113571161899821505878903415165344282886907543556280573442673387113825860032421133680015598575045764313631008993821478772493349264034505280216963183460930953685639775970495590080629054819594694096576585925535369929123215962284487553033261890271312438001048559460707709435558261481613933493537535289064298680592930339881257956181988543390369433981842731966412506503037605025858422467819018984027375056716335696849746988895075454240415341289845299993061420334805210382203863717412884610298488495856859670910320761559949467232338766108685608274735245224670710182114833796945388536052373259086587366365007955187693269484908214969512659692957486038792827261705069674284680677134139374878710169852603583705364190858357294953833427523907095750471101365559709069480624141922128679553604268353639409190288931401002033108751203845533826679938737948119731829424359027951492721028996298611750267434795744003637045641409567199250384402870716476595287715427319665810364654391162901779349834698051553365552193454166557462257426287049766717029201649352361923091381019783387119354589171338136207838249837738793129723334947662874769167544585090279531677449045675967800953234126512307697943830233693687793752799674035878884380425678779568528358406197059842683513722507879909583295605627891410010723497895331402217161030191719612571369869238210381389879407681407189853932930347124885867390085929242740811131048830981001074431838688893645332581055996954302074307856520416125884153981407251426140821928138804788029685025624471225717300774414934013803107907749472423109375928804422600415837935239095630104770331093761973787631414655984726986840700473854448250600375396977183108102597673238102242291607419141683464151229137707624923203580755282252288137941472421649134486749648586144354335502856294626593938723510319409412058149351446586931664447679198726330830842989651179393484255633730272986509570328828757001229871154282568028829969010517831649071724530317209858961501792783229518844601280778362120077389754254215461163597249021284961877749927868780366492403762450324565377439561822182167840866768697816159705140980102393265480834041343526355603546679043720791900452284793871261792088330270460807863790930066052714583748678333335396251342290026229326323804262827736743275378908474833016834516291775210889783234533056500642748702060812636967156851794988693927878230636320568671466308605874358095857029139075677246959982688674030034592968812832051115642283666625907707068769020471618938751641276810665476043651179503930246122375543750661934775612086470608973511948155834493489023687504016736433938612444383770621028233119292221504082009159107900630531822051113492953776697503919807171377911545089152198396898731741639047120619897371863350840580027465181335951646235487382914930677439003767264827052523222094922058208004960199944632408577362626520998832875349071402752194887477210530900535018037497657707454810586806994288714721996394351954792933219411138747393069481448702498635699241561108799119833300573801490365783099410249345983015969572871121982728489816684328648174826679737681280490250236074676436538262509949738987179952935695155422984766772873118175333011357863340986614547410200684742427077099777578771196653157676488524618624147515618688357964871141777656083793695938797235779013512997338378886121129891938457361249066072251789928748484486321923807804043388717791554089490346902561787230097322150288052069655958858240460098349535117519288065245854262386783391623431757270209260214914207018594134107092133014783819988442358428928533076161000261407599294790391044772769349805297906831970628344238255706941002319359492225949154144826866845993478864101064801803422338153888398547512950984968234052660623973579322850934657296920528294695786133748799258477928241071328261157327300689577296748628846835711649187321530368833422763289031006484825091543073145285023609522428579061728686508911041364242192061636644621656269705523874333017885042865130625257375024031901623656963656562370357111504340551053851555464420175789252789255663907012874259423313025580056669529335518758176630094129282983540860457470791637044818005396149987244183548381154111740401191474938487898410005766350216884725716783859598267139748665702683324101259744785024211230688527562570112995142866358544078732094669554226205863285282146382008524598444463241068321978544407514908677611836238057171239208980080212807386760106433920791840252162638001621338796154896707143679502552457852925421093513205380944285941809867602924628345276821253719387178484914873660618105230309650116866761843922022889049856694798894623439139091275222168750716339976363786893483304440608741012538275956449252827786383887239213273817381149392678175930880051100330329285702060870756186651405080442517724088437273234644979984853445129161136332734567675764927675752946597987214221356010264668248423748137968390639822727244529139139777041710635255659739763080826139334999563679957072278909320626903923221611551434135210366004405071897774861453110827320007194830937869730765765885377296743091215757547803462454680307946240908571815882354796160342831806774078551481781423497365510345838151814658629467902470956276258051018358167763888375194108734250759799874364593536170849760460346659074217091187207477124595855568371448865908671152398060760760025160823240985021071307075340649927512704446013147226674266715180480863075828338359945047432801690271895271902990056523093364457694710847437621252916752051042295163489646482933941396297047062160001772807946752627268306072710450903777984974482985414295116463260178219338147895521948306605595415000455545845545679202555412095716382175370554547061307629681383266199274223757273843001675187284310632380689693476324879293832708381181565730121719389175025598375055262698594276875310591347049337803153630123652394847261086344076925317160243877943673211452991077994789497660927851044752333623838483768076022604624486512658014350067404229560256940961046349061787081653301137129845385174386550880147616311285397896115451753157579916269119258152503789683915486180723840200073846661818019544916624291634120459789871007482737813548124421343214830287117035750232263813943807769529986243161408173614338998582483650574648485617103934038395723576565392216996166275177151051134981094751826028064164772749246213658213724578875432971138185385229293230629083935262076568976348484443965799591077054494861841140298184412278844128889327781290167894080776963605643417483887981370837378677686876727182985511718139431675652054807568632780710499183176299192189567248314690108390985187740032408915786754131592304726409608375260844390704307904138050817783870463561484491792748651148394326117834710609649563489288825757956299137418828716105361210020405995379134171892745990505478281723474951676154186707931892454361196238624249090751416282367028132253811729074643319790346818226973780629753425359702719430640882119859788542723887099231790326104874792186836156969757291168057900522062385068625021215189057438177672950075972235811583390640570301311485256158448938831718997166281597890629167304068813029999099650923677702763475001874129551229593040102346657238706636206127829629372554495942668473555855150296855828598847069972246124451298137742943494627813417135185481443760619975887777362273871412714329885171018221495837926803486500485320116598299384166060130345770063035157215634108969240219646093313846169050935095197422242863002062097195313368447502596214761084456374716046997497778091185296202511743563758551807628667867064987399959536827283034119205495015426454171508445552473451971346618062612236571237876588265309401609840441096274838128568879673333934523479506177582021002260434626597285249799028029622518936321742834525241556137860059334332504782548411825614752151344359956153757105807217892221073659492857292495625162372775202230094449962663508784176076947753015241351969515416421145690496760881227473318894800638135119510837552505870691136293105501666697163449671967885631813266077237623872224769225304598032138558429847295993514632182041450363334892047084532613216128580996280261736392298557142994866083676001050170805087447575105917836984393326699313492935864722194123866142277691729635354722131252184555895216238680439800706016337212221788620305493738897533432608633310934065095745150711053795769725366675762212286932882511446224956754057120070292889037633788739381298134982477051589949053036107338384440795320682266523800010406895291102047537777106670982101844710825681577377757793845866604934951315770520559489915200623216254747343135302258243715415412403923155795204610825319319560967974306904699756431524737605316529307664729052237825010719515260901597695105227071712064342874030186732723903771885034870965993571973997433668056304051678026981209917326484056192729343722328473781952322680746999554736401049871893025595839882075750244899443921528035376968846168352036713507660278118343337843954533988821318056420714420641742994757023815554622005647728638242353962036736363026209845755423326186477646612805507313161732356661195261558009795793693209106513701531808903488286214816746785937254972167711379071698304374366767982742418024552528263308558563141823432907631687954996690152049146726212511844830701945351957304000935297834953321808041927739057438869843902547230405545361483529821425172268136645784224846242094866318674067536473947071927819765049426762952858622319567812472394325175595912139289223259000384926345122356494486349084099356596978668934815546731680980975032878156559520210163786710317230570901185632523440153358562158427472754490072229687786065602510824993732404895794249874255998957725707348539597603087470179299171219803330233063168066161592563186618939458296476289554442802772197770616300796275684935788377418371031528986337675014059975592822270396339962299554950161702491810187744884493600057205106937946473858785550720141717276223250303234145155882273799373534515977670732993672993313814001008310114157968013152433856735781185596895041300572614970859543085174810886731345319067943429622694843928788249001620013584203294865020753785240287836479362463706099974993130147155245244248150369949071084160735020581347483150072329059524869030856112486139039575604908217205577556092421839980249634109693967847084653224835966894058479043171787342244944627681894777721514306986428463623450661227356189780523541620375922186733620528440384029126629281612136514245381759412735119419901992304005636853141281396266842123371483749072005379973043435526001917163558814520927272518519630600682579998331032626755553129897573939747480248186873182511724743439031697046791194597423198171421076094074370245119759955546108919080220150954691492438829287954923507700847923517269229823324098090203796264191590827932016357071786881043439088310129662837166773467157228323886012037902867184044671382185654424557429347375135640910946410246012557603949182541126334175843769582840900628185326932825268895829056874314560145245033469812621767781005126280827477771246144303979795941771283753505111156081456116540348826239385407419279698097187414582684688093462564310554119336646773824430186321882261858014188551052821653109413591161609026819670435609733045171500023159172112686071368402696060711395506016171279204011075765994319227359950654734593096407826656512118232729034351174427579290025017847952039329692137745857688357622062212402725424543837616822193871954658765395237725896200453129795352446519040600716021837588765219386686017190870469607280537007642664188064654271587200077377447557845806997997727013509309299517221690528133823899049347979777407156513663982907997593518791258966813351222103640493931876771143820446140812550035833805789350501218263993649369444948143912150069406751769386891549164126110250154952929928191634359829404256260453760763555783172891941731575050029808296261214173194707764887226003486025263396641187548509736123794298223995650357745810778066295367689219633498642832368626510715057435479583848234596670570379070355064326663795697430055234633708186815662448384237649564377635668696669433679099281978268373985602149608571967978971339028329789267957068756043636674331225577408148759843517868430617257577840776017523097663814370273913728202902509793177132137990368073098325753420628410767106189911413351346635133671419234604080022968712140582275861836118152258484050487435177262355432822613389041377421026761657750370627205230780591903102478091029926955734811717687309243876677180258554080688240406348234367680579023633837960561163513546975423348699928266944125720386092480532483214989118348886853041178220116167019820197006939521147186380867238382075535248000460748978091639682841799549119113070795344791691938308196622516451440347780393256097004259200418623451024619400258273764791852883522957725539986925311457258066648715130558053893898697851868022078872418683083540087851486986503096714531705206973521388292303257488607110112068154482765449081890083238775874803740590297690836977251010344683189276748667512889377044388099483109589281928369458715100863938398666177860513316438978631377902370740370890452923071133651193354418324438141036067013039698160343296671861905369556204911519716078340348134638282359707344239841034931647720857498077211710740546115429450033620203518997977997346097166839191588162867876191412735309658657578229986378556712950853873803158436206801128423097631817375152141291409886137114858034692100669964808873053767377332190004611721898130471905714206243418659028682987297234797174321545064138913365783768708126176507282162085709166975724577779805888975909044900168557203806884254587588057604857355108946065677131871868423102781135257185965389804214997828654282623997431034893424607794114746703187114861018961183159642675629753275213624597503888526048461350795607010761970915898016928197916198327423626638502031863380491230386230705529462930988270113513434540174147065524955263171507835211129897891452461325122871784099084893955272653766986472416722492088128422216645114763865322774771947004047157878496765054962149574918643683325041075450511863242955765078356829312440992454755286996593471864436984811041637122094563150094252003497536846973557360488979999049512267313869197890359133913146737329763209594195736224149962129321960884518507928841255418352099094555611982891829515122719684789714611101765492490453280768054434961675840796563204482475595006611172097004254909869138737088703818815249355958811873441736354570103490859271260365580370339243219608437176262229912894360065753321553230654795666484652139286905203721741339025762100678045210550739838056749397796407812697729109978219213610762389519097734891105325208935102257230619489630282977899599921098036507257455442713535285491769992824612404103345847062791415197539207441731439875153482056389403743671895833369424662689107395847371808754720652460425201508293604157523697406977760696523703281877498677220319783539145357676245744128585938085561886139425502511262129970878990249417309356006486196406466229298424369906368602921351610459338759929791143657367967813892555948928432364988663573270823335185239896449574444160782417739955114986910448789152852829664766524572112859652538349039275973012293564345950290823986079248038708921928836036717305488382414980999193566859810609350821872682338763215512742063081645359321776201287087854171551471953623934887815990926165660348008113593930128771911247801841857115318338187587402292349341408630501711044756059211744978361842858629475610223445703978587293027999303086627524884413707999672806937000729061240363418831982303710377749381791210653923133540108853315355999190459320339137799754605088360245661155763831466557688382325884272911181747970356058023386612187631390413530738220253801414495219222788259032646864184098184893223315956006769738329951507104451554248792841522064350492378687703272181631929745012251705428428972228182221794579973436164373857737391435082024716185925345042080595975035835421769534203694422832358234576446593707067629402803922687891026276997977829235823037175808367143582858922387531318307522171458923226609292550261415189209051318771780553325377347166526599265797244541449105812177598082070307764003832584900421844936708780703616676186999847622984449394868216516427669191329602734072634367366343290916396376325421255740978502578834268086375376453299643718203562504283732978517671547654995862211685281732148110836823339494456035326792351841661833112987668642330000628557428203658367777354546930901243063077519362543383725592251887740702211541763078384842557100080936381934090966381267342422270139855527961325202841064491181778858258655217574653346812687900544805796801481701671080046347523749402886360851953290767045181047195320213747336945350413382403425470626296299440354967325195805029350366090175197068439770636781795601905584166078096175233436010594447619116647795459659186804130103633982222612475732822821005459759514030410775626033484336139090173304170846807717211638814627650492798513339396140800140458652145530270119565195852617147818110997992989575732994507644346747878906101457513805097905402439121995559793979608482353288590870024987141438759318126038584478122608821845716554384441881867268462780783685602877887803399786969710989331178791700649591507014380483713186390055552693328462899547398945955062935103638973356273044526121100842568042759243386722932370334694512635966101605621977527941082108365516090754970203667883605814414355024969131715963830909692941395571750646347106877238781287149900464815628092878447168867788417519050864694675868168035573331106797674438056347427599249258427642063021005114211312060922946153050015388941903917638820772335785539498165600337458651877357832586119541515537872920302171887301132679549747828626681980571272036119194966818255436085467833845235137549346890017470631318099791805628374158205674388213704221080273996956632393589699079522198007114273434344100426637621225748672255073751063465150691529167378950419631434478996150042772435802471055090829030213638434487353458970882548663549737740279536627170247012080145624682956930371785172706153001395835017062305091757893564086622853209567273968388387506459501056617078072362402327209005166702358364368505458752094892367434391677922361030093909828000144341343472038763238372363863882035442738066859388306469154228670490943984414793741959059483119752555020729943757956781235119927052767884612321715776223282107333445287295932342241383575453511672491685829939362908471941502698394403028831010411999042231990402194844099838210971204791983499582522604735020298521696699517679714870403626114286942631424295882167053237124919727397395766163085372521593731147270749170503188468560189347536036360378922673902559459718746838327124813892755437007764864029901572273841014738655151362957309800202213323792553233989622510657815298419646099337474865890782494446182691646190703059361966616084394674963370733192580866117522136523941880068782017641266665102153004861770881478142774936331025917072812607164995740192085185977607507370198566994953990675164878468320769387599440025872350037226358853386101220627364218749157506279365037501394568348234099683087639540297501552602614939877682247339350285186138100630672218971667940911428964865210080318858807023728605148017192476019891647675317975730719285279902434623074282044557788791903528174096698136098185984303181551656299872311716123057424414292207350807480158206665288868930897634875699385253998918321279734305408680775987432017685584019780178023087666163680835517099805798611442421115269401994621959742176617926574777188696241829835052643007748033554878168890541432311762377599620279748280395166464456988130176969725558892114771170765372183344332126826414018463106034393955897379346268175578498104556963627046659843970823717399132920998634460646365463359939658056360197938331697396359097224058352124546886519342911311898844177727131140220815644055750960184095823548346612386522724604648473272241313045298418041013826533662278062743101432804750703835802394982728459331556372428087201475429518046549458472610717580423264045444026192631963442534646109846837065248095388882870753162407458630929270957719936149804055980753439588161736498786309318930262168486835688581110121716193363412831372225940036106674552762388614789777582955966960076422464942451485017790902570644326550636125812310200954747864626158575573929050317639412505154105017783355098123755149269300365996504119381923633476511452925973331897547463957784572209389375685339981821145487870077221739316822766810596677941375535412695266684322018111518870085639561704902407214769029210269327412871690357973248494481955496492145618090609596451376766488509117808066597728242169374586153121974708437440387369000645055245831670691485327599258048127314053260692908034832700241076678255686659393388783227463323011499316469545215618123708006951877166093175862663382331965618317686117418135770577890606768295879886913118990654332794935172376785022901561735400058455198264548957299030802640747799336980539098639653758717176348468794221735203781005181705528265048110740337157996158158199180723011022211030888284669150317745772618750700262317850291358644766962723190025712492817099306098737532546808533488003597647992429335021899890335608874738839762315600929907724532504696941543490957620403248956976933685474677417064544342770884872096472164823385904063230347237733991503138941169374433265810262829427570798803784394475339931301404172353299964192876416319572372339144158874217431956332894200277862953875001787215341484495541173404517048029286229655134332922841241321101663112592990446273320994887161838169252167500839772134527210475850194002357672206395461775176126889355342055326882169689871325307234506459596932682780667441337642931134769790052814263433976226162069485341568974294029302562304059773901085606748856813264699576925175844332068735512584922441410421179055264234195707893792867239554899249390296818779754576934871324486657510430304601507234242527125981328135000482799372804931303941273652134551249408258925909111261898217870149607251475600696655271581847148804029864281240093366518138265217817360459345335732382609708754378409560943282973041913953336345628952149433841427252553322130506387747544664467663206644476552664331864562787562120536468064913627383997158169039395027486420817912464705831431662776556342609098179942590090320293858117174901805264112501958183176609413133638601945210169094122094061025738716978049639948024415397763281927245345888577321347032641384016108976665711607392389952072604455064417154843428507893264710384722811997828035396287127827334037823650287050478756015686426234428992582102121385171438117466971486867287250509135726437565414834795223123093913371974093007252933637979419937961452148184478498055090565652528919149917816544036468143479939726607119667357193801041735750663879149722221628779851984708054384746134305023219852247003308926899831168265003522328895984924748364085631214730302483068151226783533944550880970713450765758795632687892094499845425103996931491798913702539362616674421847304674276696229673007658411825671516682940135833844108586824240313340155327945350572469789518969645310967010603979697136367327205038570512595346225101013365440939251605032573366427846367264275069995742915472835717285581948794143538404311434036937728202349793348622479039633185204901328691626907946493640274509065642115032398563269357545887711016046337641961960622999150494787736791293993344378671359166608351364669061659882866459094987010672054610813481981238565185440772158896755067575061546569266644420986852498779825431181717914255611063036872051659928236630086772731047910242454355591028091433577640608664533868806567178025403122911003034469103210753500783632511017430338581811144239290383213582016294429149904111989626061841891437338461571478465558349524749365429437851712572200591057224719007886165550449426265506559796217768188035304192195025258153833253262417142881601356494672740277017962162870237055034375199869869139926355201796225584945351742237701488879789099342551213335935191965317545315886022347874044522747904009183448077572779268563261435276403514108218150329341449401813206073042903329839570187476182346783046051530158767110907277918271853639777892927567923391502800997136104766123041928302689645793562175176248974844821478846407641258061313717563147387073575141427617731637168714572698801617431497046258463401276756512026736072133480326045939341155975706356842377870175834918829035790590810279177536815434931638790693713560372889411628367664737084678220262262653052325070147654388223318237750755179355796917394761232841057071131590337196839320793469086241475930479600402153183671984250675415958073147743790227425915220875130618877481387906708838124471278182210732964580463878214881942726477105417916890486737865227453372383455435353711056969172948478919908259117982960491661339813844025653666068457762048986589561943693023788120586894916726408578698796595623528288507138595382623447420720854850000790689789613877916462217528409230281643590621990112267135479432181500704914513050708660747649467317099895035793432262379072360344754053031822907758622842398478508555474305434786134714622642908261645506899287076091617221393305837154626248945270414332480142775791561073897263643713374130170518064373903324151240582780226737305049363163187742174194936396901358060589201855902763422815784713470760339932914278302063067567282052016308243937304408552812980892629291182439931632076200722586085402923804412974545398362946020596569713602327715088538759889401434514448251331550691870888574453863282432393137535730438028285939408684525015949244195028819369755932935712940821079191260547593724434678424349075633323591927675572381336664250760933946538819289718590104128503554222073293271769554481155629366945587524068451868527257275156971908099576814136733496235949520456130562308428593551818548466088645434447290037241607488163279419690256394583195294573639103725443039123172090179975728948365477525616588249553740139174101267123267412835183138508505272435384005025458905740609457687610336790702332934205725066808475460397849119904346164741090866994662103938414727031092348974511946452820638812765648966659025625938476736927162879768480794679612104760944033470327655855791277444477180746759223218561128714549140174078157595606893558532603944530749302741043997829376919508764134897478476257086251926862066435911203142499269764012584952039324070526177977821525047697479436760693071014287778596648338978836936796700949275931664092643333798831053173025385454410969753483911798243400900654630392592196833533568349904274194640790730310600611505379693195029981451880047167387482617802631811169650610912921338168891241545462498270462389421928556743459573976406690990220799897894798956236535148236754944918194472251512969149526665295400451341580163998859885708672679772766571702290022981988668922879088893808091112258287849777775747939438980345133787967259209793638574960898841332044036950397080854728698077493636822711551927283623561252503085733097115768909988917840098224863992388967631405521894946661588342255549872325544307246995765381410495951091609498504092102696396544807918844733610123007151559304652011954767482719367438321728874272588933356284458460750808496326598772795886553212345580381733286847113245246315659688479816889047054604083760724631691384461164009639909184755107090394310851895457865563579079867316238170802522427043410820451429889339870382042845512816654359190120120727652047462802388186610583032464636674836548061881057378395711747983557164548720334084760232147076632807148493792595685388255807152825296250387300279951798656991118010897098183803183706357146251413359770260233422873186066259606570856369643856158972680225479055276125387631260451580265121235538485139344262780857418301821066729571300230165456089252112466980462144354356724244773921666366347976818781850724162870754676692223532752980170350935737200114606815921329118070322801040509350524019248384416789050937575755104591649833017604423520034495241353347193485380937432897053074581161377756577125256372681073025160218447766058655792863562187385986470940002114420316737214563753166829758345653379872640509501321096280318846074725112924614010342735133478482823572087497199752338728730025236426184356088271695370681347913316855095903847298398292543092719559652349541505111105761202756239845129744728350858250996481529088716589197434320333345476051634768200855101885947116838773440790513196763660030100224337753844676533868031792982502360521666590338353271675036390664779915970012865849987283126179449948164874662864898402828540187932149786827332688170901740286183652953360457878416989019013300313554374093361142850874652026676813383879992411502706766190617841034927574433565795057901081603506646369966728271398481217322691599032846638303691848368568208230829945766833248316844575727479325169209806816950843983223034881181200416440778603973260263691524536068995397161408625627613388379363208704688695193083445131029072808939389946261115105545193757907082856483402231919398854599161310127192676294837175259241572184621838683129691113615410186326173844278020090994371384190148262197442627756042504201128612770942956365174741935817000286699353695652747664038653266600067197630910325201558930542300785200195571823340476318327467153154285507470335704543586946872785002125912368177557795842844190550053958718262152587737874460820680496064156702502522423324036718149222498291008511143447431873337222362218898586202743576823726508936563355597874182035539643533074970088270462574877592025005431779552537853043015872202146931646382651351621717335546386865926782579293307579255366475526643171211007483242244360293018081952381469281002103954216418012760218002041046536040883841863986586019225772047787843725975753888887663405807554800058086255549103000685916528706260863149966316634624397239500001096769261346764443174337263256380206910817884708902035095196027183792115157754240957188572661277228234472526252227303812918430030570244776726261273924321929896721584208640526650905730432383678208407539491726587992348013231868758338706942582617816198853552051691778430920239234062873407314162125548854676279863660976057825931660359925637802145502273343403113997297453093827894091635116541447339506347053750970605140014584055579850558485933823050444181894206554412210122308708118419683776748252556725547511042659153157264537526154666655306997066306966546900789908154059931050753296276962493510111373348578505980197734190178774784287145743706128412474824362158864099739190200384192601159809439121069247066526051776088678144694875246478919883267382149211839175864197182175456780714229908764029776164604304212478014366867917057572787568027598616574518293710724875171294295007953739797668464157153035218019383649342756170952119348835622996824294220685693558800130280687653305729471145144729243434680907197278872134309085302138468401414072050930744244301694707909631520040544326612064626824963953954376877238597111611263015394885396940382783665308068952104998780556708785234780715960212691179320205990571114650852903203684242959339334428519865433001790205216442860938454413011413276027022448523854812981697689449525857139420253971229547036481720565381973426776711123633518329708107903746653936573880666755456969040552223052602093455763530912236962820695962903767042298198789775919476416319628226436200427998624138060826785880829628607132112741778382077903962470942463711195841668851663039929850774968873916081286247765005420432835370454178070846438424039024666763615996414207319743125096426839713284608903160954271255633882245461132598413768474780145264070754308336841216099100907267173592913021664218895548416844397114048853272607807009327955543439495219682636966415115247788543214276478220645943110226649496575346139575465450988100237289675293864406982266476160171761139615505318865765488950261898058308752796344889275716105118529994698241571704864437760613128602840603011435733231934742442049129126780754368577935437765497670391304628821250081445939865005332057000379167404736754260563948667289731550643192017474140400050283412589043036669954209936797752000636256273061735634519289349099634819678396063342220240281904651472302245378169048550627661027863281597075882554598456206494202220370476152216169539886916513273759582749718418601341379035103581979561659195205276921519681810622469187904381833078172855036112852575972646007079347254446347567099764010364107717800771178740024565042262308246610970856530262430109129422481210034017115521625523856862243272759367571783246059260377926867068999355857308991710776658131429853475702296030540713073767268602731701160324093696838295020319073873839089003025528593403829106846269276891397424568899346563622200938032837464218993999876408476293986663832666149667085150907599898522820163818449391885597050715732041083728259518361200908421071837968493369642908523154374850407345784628860212262369058974023985924442385983193899221351095269820794588145953146553447683569971581372338080088874810935053705257389969025407209115443894321086866505121138653159374154996044236216625805131785673504915268859052071546212275318757431161852926512489117423004239521481128528962927440951907871236228790466308769893749635800911666363234531734772890350311760092291674904742216155761571331428400945851486315571117826960926224164208997030876977714717819379882446974574385094947190545559107356124966941995612040299087800639870890508897496655696297829411902408923857403783722646496393608293995491914388870797743298097826998766586341698268024839291277186469905007435487720175346811846962462495690849821702848417188053201035638337443297569792409195009912401582845032786451920686153051205706219137000594933290600009718946933594984907380258103807542877067179663470538574112348508372359302054576129521538580037674786952023866330559018440045645646695845141545224057976836874285674678097166568458295454552487583677772352477896122097821847395203904482867970114084829015928124139651070774329709918148400228566522161421648581053324857590766027614942765303870179212500948407443281504893705764630073398341482984230566578691764194110822236937901184238393983718183882600550654943198244422512022801032603858973814192514390081588169394128614767420740017512125768770143616357167345796062826252706439903252765518686741584919620420413908918703584267068409531705233167778569971289228619282221543641645276812197824960500037129775448432320027103836409821805510691974554848832773252613817064041604903188944849963989578986367475757686992086481288677657142189024551360639980490865641153806099756395943633398779597169210516352387587526334036381698269115701142318019047082916974848272499395429456806568318433490829216297564441481205314849197442265207897588509370436435972248203565676717445287903363933143680650134363817023583332484803749890800685880969556924894342555047505759318844559902400537452803474297879220367389616200170427764424999025129377271492694664738029626577036833261717524661324803365999057123760760220508798426548334587957920661783568613176194074812428446429292042997844199645863096819235895564205962877132268004874740861216822046277112684080140425749028728098375211983876585777428279072482233605451469317324747189049502530127333409156361388249092368155182248976133790946552956741302121692423366924795034694566218941338229730382635917280346591937725951424950616171783765706996640300280575887535451687001722346777710414572963414998066103705269975782194645473661673394287482876373292069148085523688286948958330069355812176884704146325676125110810965071219080921647942589969802644464215520725939365163620616684357215205173327373550777929206891026434701293155047973555719414066458477537294768155355235272280567461297792596578275321596790754095090542218670547694910599530518918545269143911603221446154513857743606265517197948130873829614498695465638781138562027861300396421515046024838251399686286970675095848802101032447097441468950733038027091545431581427525015303686825169130216172726756075668076792464796279684110542029147608947022437664637743177104515244873287554178879884578558939595221212746663412179844312539550551223582123852495106753352825962786146028866992230939538252388030115823028271303514146011332424983204543519119045073285060777321377268697593654166177605860705513167138280488798243492171685168286644140857214303144959842219228735004881877693554381706284962108770966620340300207787581553466605075548371637034112274992321798164977331552317752465900262860338551590394461278777700543392859333849406900322204678091485811158822902877002898066879747587384584421695106149222120364499595396372965678507008916933365300241061954845117359326171929945634134937122960016298087680827113863062350137795017934881720388920934457981714100714594975192376086686016526524471507835979553236886769404326664150233408819770166645627460919986495379163358880847427895659635684700580009278773974427945393597066136145650719357205664440281120896449008597869359017160012309725553003112508371401471548112401172184836530349334651792748300782978985795104345413788822698881301857929993573596406828243523793860270391811315632491271142518393876209394605219612487211501588641197899671291886997024329891684614176681882507462776744604179235285059961387473743259239256711516000651998389201565429418996765686689707025872798429327399330173373993419528782334422659362879218943950564327941985571618984013745092009608659464225876547823744320411597591875486577333995063535990694627333651473108535475775312775522288035474883392584778617655026280223120097954239802880879693381054420310348826484455567922849503138733353540174866696059491595015998871712859217865064077765217206970032705369487949001565352720702433924495525025910505174704007172221176382774239584815561196358673407939213126069770652583362870021271951427850652699407594424522022764288932345563158008907969203017447476959356026342681661541892201283749410516652251647073145337111919002310069103115703132510270109788108005513929601662658762542250170072474781804252886251534046891285595711746188637881271329826440157498206671981766985460258973671321713512317730314246480252754484909682407939101532162072708129131904559179419766479359172568418618888871918234274269681625657135864903746108779020162414820858275397855178071382974153374087506390560919788574470777157384573976303839022076556185076768239848365406867265819560500542654101040289958270698190724575902915994470453450992705479557584552129667866934087629256132292642867790155930649370945345772105063005487057937670823534158333480889509092082951168486739958605627929836746757880963143312637969613634798685977869250665789503699362368344376686909064205180573494210781422812474948673906138128915815649633891646620051085031384088430062329469237925125375615691172974289224459413321255951027743728603696321785747520897252796029019446738154890663201550725202045941946200628137955912488238088501793474498906375388435905673501701385927814992136392650916983336635661311043523992217831109934585626232884858380016661636581060297447975527093315696605469628208418126652478946036099462271105280722615678500255988716937519236207145089269218312721429986274065785961441878933121427484317508628038359674195425025492983847731529243469599898263427231683618125431374049326651218020664901205530690662412018314806843280545068766887151510872560795375636584409331421991432460447322353126954733700988178012504796651830444017546836487709758159629478646889337920778510240169964199491442206127315195372721116871376661406935801250506428418657555406706240049467345799305495694075160597772485245924104745811284514175866683812543787211571498566445120985808774619348063146280396107058980102550746173551333082833144856949297076268334932895711929334670628963685434710422667096140763438478503295294446102055855953021645009892218920292834013635879300780173790200109459633846109888657437879148628681218974823381678635408688993151691849215259863111197170897606764944913135253125031005433743674368373796783670360084868290298010070232513557420609434894936622716574643006445637719133166240503790137569447033810490646876502042540796127096975455116226577476122820815950647436145167292381038379692346441208536417715652335564679344890979386584218289785456083023939343308982431383488142580882171918743540362826894955158637483697371854667187211887687611301833647595628718501120244290019117735046160165736595094582039961876761437511173109902422392106735607053858229012887578089852322034484987708099499621490700845264426148729314278660750403043860202395022923353110537115976624126388382378578395363245387074564038620131973784514015132946071723991838459984779814591182167398004342761042567462163479984542358495013891369402336343525088644864913826003293743387707059658320538343975282716751139375703557593248989842078204588341054326829549815476529375845108307744262685646361419923630238658915478740895874433177300081570513416537784583014387328683419397039668793773216590930417341566112184213560434148471397985492333619075720173271232876714151486966386106305813899820567769200894367395463751925324084068138432450565987349962667641251704201728420934217096850332915874426887604227342417961564903564584844151316121323865263001529556329774565590040224250961584266026029089091396286217841304217936640266753377706451690504615272821556508968166616037890002094366743077086901300515925590710892351195256527379960688558361334297243380814867011670192427425193071763383017384782060830572183962123658002804272151965612306044234269890832388636639951988874740174289913088973023597546843872959120868346314339324308461826503925933293989251885622565037765127289245055087054248816890858852508515108242979836375714439265136330654515026118681050792535555543888640761230462165108781104719347291417936440381639073522520885129195204299176468997716221086113211827222135095510490638632560677619876977093541855673124823253775211746895508241436924169658817716549713899456769967775507903185248154650572558559965492329788570122585091664235662828915016390796219975865025986743362643522200738817692917559835457721880590184803669085571988074112280232939023494362497910145299894709471111174352076659123473333481809747713365743093576472300136229712802790450977910687093567976923275960537767944677862215426801822532595634372239950421853824011823578291353044254586772785229420371129202350742579237097886104210459208637677835300774800762575375464990836407805424728511482308118249901384322250767453531901345906560092352023397196950204602890760674709283063028607458727349203269995053995616860101660553479328541497940162143004872591469987258079696836855294460806126715836858274949818572554112965718351142978805745734870671561394378142042374830928842730880477056387712611950458025687041132608963333031751426112185672229740371208719908190211296449352166319616396107561398289862523080572364030277065836898348127022230641365439989937831969881765291731045534109573908772157178949476617221050567559749182778806630370928506952311872438429504248643987632948471549543376637255891220931137912923911877859304266625453867387005618125410695275443853350562715335818390162554773467430967870731728572330719067925619459696095682006154614658336885823656429199524825127817580342219636353816100384950024733336165187752424694761003032295083219234009176681519472354479614357526030197273369909799653015144133879857633875886510754938613392131508300127675051271179754878889024439678920127577146838614420945747872212313027707372061872583380066632494718114567134127421757025873147938890466695579502357462132329804407313885210947738477443721069271981559882636514540360572541169856684443758259637978455589847914616155042501165228074292425704105455632587507077726704938440004882188996888365785486785958090880957603108771602475693523336746950826986537525680601172463514876522037658657276930713393254012902794808086912286901839426085216572263584459913447364401996584471379963859027865408191798100996878864884776002661281931951972631333295548009821680618118563840197870833736801023433386537384933347955774974668585239941129605435389776857501628430041441687025149376580119305728051852463072754135264250969244052055459253635112891976186750356084794937883039614954080924400388680044588950021931555307392676556347431299166173541763639855674085864680000238814299120490360680089348010504850058122364011434337366714561203350116387061868483611526327840274857718219027620730303910228407553601314073305752154749126056398588760310934020480154058516576852397148310575322073285361533657347100671589741318520304341359836748791444587778207227102014149834850101593861282513353914680367988859478372236015919653859958493398940204241409077324846112568212747607644861983524653810205292427250586012014170109613290720271755818940490794426885860054550264828957821696280134135054363873678947879712373482896410970034434310615989000766759498620043593859164172955815679920439828229462940307533683906380463795438742303212737969685014413152503942906744723705020113374130225891144010914491308587645932019847566511513899169151717439957933820527794131285892337273718356868811861476008349456180701024162429167877867584998168637173336419977851621532201755526730368240319528307961568810041629241774167004750538627175431732849531381518100724572997790611643622433670050101136929424543512061840687985838471039385927056290424962458963565085810220800706583316717048926295680437440407712896371670094464021299448597367575784117503877067410904940766526445806815412527829258522228911530250086420270259999919797632335248704809350060528352868262415126378356283110914778865996147237076624441156268813385133087340532756153824059983810335203784409975839113759727470845764581031890021898002824628098144474047126582348499496965242036833740263966136749452970880269166543029895071834853131165697042928832336279105565910592484095143847900022188090759297862004396497666448555240380742691846724679720251848958783592364332827521268075193231129218282016695813231840981271075788525782075328305041478054574335921397359396937564527369714994682958884860103066933719936393333215124800096007497339268411982731223669770807386644157662068367277036358551900778585487309451486666269387587785162421266729898970487886435505370515696333021768467293913408195429926100331166938133306092475948653318449495164600583938333955475661403577034895996679684452603315353403416898050776882850466782024269489323408135499461529785690635076120420973776341311097509922711418036583194926911256669516348030514192917585680506283702960598128636957072850069485446194291497856483708365817947473631584928957960467491512207407967657280723609823630453541410163425134256506377439424727724540211143471069174012343663865122772703756165838020357580247616473380837790747792355906630807334423002143277475429171242279342689382052750811892432676857055712035610070525381391129745057085870137199294160497988154523795042387189048729819925388456237710441021081424726874188792966460981088468685208725824000664016112248605825869378474615362105211327339260549036533266970058051695656251460728230146135113523888715745418885634063276758121988905914198219964997201427362743473963766431372849217579241182660487952049821285687199570256618426028507096120244783943485031413377366607619303137383514617205695030954271953177243083260001392439715832781562945811181834901764182092197151781702948965207693607478755939237025283800986276113209325598665494625989171760184975230640362133093653122572770326201623630019774467231952707084107260318617684105701867003088651631577430401738526327212978979771007260489597322784563948188373666286387936508295394508170642315657785866173893220940710708836040937230853530959475493910629018057863560224692185896892884063953961970788098052818407146076748819859034521153363647261494069485747987138981488296650027960190096758378171585559722919519722466367220211438367524534206415373555519429713871103480153110901712902708377829252319435477178229058233631046790617355792031103535772466699205465869600437610570729257805278018785817996726137549621337453932256405788169714880816898540239224105901899225664516735273806458717567219059506531714970131688555633565798627425754223798908721785460316641711718001008344391689264205747204794066903814029419874493684877052378103857976319117444077707682432018151070738066335193691430778349907889795436628350980705776672562273117098763591800159506106883582837816899394893225633335554439942563617440805200548543992569690102730536426528938905085096649672997169378119703104131198557889203611851828933942864883481722307346948090387690416836017105942940278416495327777314434229957038811676693676172986383763466921615929514347393883250212201362998604920036443537577448903474243121580022302679186939692468908567462210970205497282602075665504025041989003839065815396630506898336742102692917062067113960316201247875516273822538336267985531091322814136169878245199507557091346669800895395673648695564444291840749993686169675063737978122545883785793508137431882100668555294288013685410833168731330184133110910977866192320668829012431644491491259409639808484660558100183435481684861703316826356102342166545646532450043514356171257109462450282831307158289362065341992679659971564024712448811148616488425507313721041871929502874475780666413459729608669506167120178479224357570952830967401456978414918295221517804757436731189403680479711828595184052361991091689747654079135770870490928794069433188363148287875697509821001962796653845098295314272188287896607697465684118018435424869555300825186659881931177028623780790360253191579416701530844778463353672776920987046177147389934182292501769261160601715791135934055361455883366216541040696247310238177727274343217648536033520049581090862175877094358155349874273563366094764898344353982435958962906842834274033553334451165427782720083635209956433477459332169531758358330355355035583567180307776130650609140371246721135717958848501245515436897083161932674190105096808267286203747849704031128019532235737522340537340159275399282306534410209622260497670981022064615507726812770163360386140091732411561940302163768556929501772505919900354392243380118921510215660208733372228122318488592544741337723708599341331530964325830341517600124788350154253780203062481023462351549035618537910522824300212259009126380467701898175311547119529566765731191111535187781794047990887445268988264338466196371693273911824655337931181263451078461656086785571397218976842308844557966829136343529709147089226879810955075116027149895870697525885028268514206786218436190605014004416617601677351286716338720791135607481494270604528272547707901230407187136929023278453675710739743192398017156159173734363381152839593544234965747219090458027218368585738440130700412709745144173752871437171818260678067708384771105244454766465380741772407866226394897803175240642512236990131403604580282216836139790402538637134807673263101974310570009265068865798892702433018872120862719344673687301859929228733548875306862801902415278391164491124558079516102006680272276147035654331641717502310102176648602852492129255187182739379427877863979537372881157226254966449988662632062215794415992822095292274499464156174709168585484365589445419037431305717474344533138554890861944438351427969853025183841979304742273700143862083741497272228152268444546910301360205987619603441634452111479312624597895000841521014895880249489198574867835742892257472414524984311081900442810928806169591927623430394172235057990832628831282510158159555031772998346501983431344046117426181878703520989981276218248518307519840707930012630049844516913505263656655064819096034280540432035354600807753573646857035520210009642986978747450836808433821115445252136270325573948251068739217226886166772656360578725839232541006736206677753938372121739981822301738649323479113347247862462512942157168044389363961157073255061353210253674640630470838934535889571356236021768639643818614197552016549606507295133190756709903460317349066335257083450038119184503784525082990580321916503626990034719413714182955231978267983692786300632944405782972336072239973942850063113059158880852270115844082044845102431827923274233323863366691000747001742950241826724489018116480062489370291202392753222087298848337471682043262945132576007379040903364188053249213427643650386920530089617702096419176811013774433685244838813972404195970255774028258342559917763362988233522194157393978295776643076320190950302054442314773712011754163405481898749249158151190649241933504986688039958736306897554075759770311273373036394860245396917531513322600751057832717270244271307701140723782643077147429500162634336144640168351324692114751296798155786177919951091727153992108256428017284376218394405185172705751217236021447955022836210941738791421841953213199198355255976437194512959543273520966969852320937844838906953342242014548500648057198853151655902889902159848191213734210076481529009928610011023187026037943995491481529124833436317051284892915719334294468759266676069853730483201502298659060783248856307685901404069899368269956112781813417567512868895073543933905865408189759504417115083561277853992665489500975221822357069703391304496208314611681051231737479037107182974415661683032334774329439361331742477754561515295244115836055497754807861921077300062441893163199406979395180879782487988581117317506736301116457436027757089495053776773959465587762700776045495234380306468017924928924970621523637115324324618701735293240368284202370300094583438565561240577043782313863474682133119419106610720565910279720566137177690710266139050648659813617929315093881258810790793778118840387026681325021857261851528243902094054869640203649163012248676644784756913555866860227734448296019522170265105662530592157066681541377201340084796614143716446314994823284671020752268459392558115632105153111047777720290900786975229745455727557323399346713370401106409530773383753252597888029225295761669768544635071772421774027390557270257933316829711691502323108438698254362671870283185935053337109120270413418608328109087990506598223959726184661142426838481466395487338127280380010812663058892272607809984834960552065393183737019211668272156756161872258854282349936701201293636652484787951072873711044041545106079099908462130164805011539879135505052447090286350795908736986704096209878214810303579743630868222906862454740748115807148378944799736072227998385271724121908803192042739383255931769827610871414765786751949042626282196560438182312869396552027627506905902752129986570367133338594193887891707649569593713129626606681711301702767678870677152946637350477114797210858020964809474570355543005904140663571712337910742555198693916568424472852977582070328896770257182525293677458129473214452775841448959725425864587147196889235670181199830298020534723702174833069583508910892427120501291797441581391351126330876420998188480914953971796964808475232872893018626833569409845122492663243769466117553592455712443919552985730863150461178871169137498350975460038304833070210765331158690314072082678422804241839895248940251080329909698460905603898433736538059365288389003338426178113951379020665985461807248971303885047661864773740256863559807105566022992610027863555904072497621356777247163777792955710828714742114820035799444389912998925047486163371797284682004640906991381773150430144222693272306111010242338083149551172954404601372019619560625316348143457912756684781309103854238388493836980676464649678229797574266329136292602173682761723912571413085274790861465134102059390489361039968815678379367313263559097615978946004766486384876632190923417407463748642335892085145837324447123750259985949066068287720815007965772728089163243041928567954317291148184208028499943473822492450055268236548629687804903254555735788265806358987934510740022034894887178728550248077100197515107680420481751542769323783194111628036449337342875363689916594604227234666238736240067607609805485544922426854881211675004724976406367404508421998494770998114345696259992660443465237178661328808610731616847097027978508744744091070501352784191534441439463385966209805791753330564397997379861122134984378257270479630295236689946379035638566986459124169149131280778417385649386850333704002806671684540739010723984299555073475980631205682580828162054294964695831255835221643561366612269272775036236902391806977519702610353045554137704942951424886034589748909286948402590289411388049440532233924016339955452280684001228322943709944645910752061008203278688107359831626250292438008027719454337646263397791609386262907794059471024403224222093273807073192881139478338744707939621122975037725587332827143764262484201085596622479295650440112032306646753364386659233577043003009430395753500831001605983021430384259964710114939010835905625310926612426268313299196192810624222267829214396952032755129500628909692532485293708044795434307448210084555191152008363487287226620804750268025966213939993482089644643961201307976779620096917229771617196374819755113600752517742240018295297112430856887234757094059667099969655104830098826903386686660396564003721782529152105355042036117874131163481174799849544438271868376909575753453293975212935194705238851015013575368760790376385975353037986174663876176650599916538950190549732003113713485320661471875624083795911911537501518862923015523343684984434290891157291669526386007572780485984628527138377579056421597848238320045098856210417167842922489671171927911862391648394138719870111818838488182053292268565056015008065803877932369075400816147205558157450520839521046071708340189219103226652152656973046540614669868633418086461698421385718751214913870231192519418166401609816708694275163950102316429754095139031799456192111825720627227468140808258113100475682147472329362070067915740529633404709494446316339480927751014956929899966873604942779683979705425985263897440226715504967812317863125490736542005079157062595622537357698567649044269549550780317523112097511299852677042655271691469685566083678966645057033285694498805828953508198607482449473588544346353535331452627499478689725338057549258196322795390703004490615500030136691343192603752812180859277406892181136869813696189858797853216403102099234933933809114052837135635457773966412927274201183750872899904272042472352882511050299371269202206145316114744382813856848627981710777711974004798530044918037664220453783811843789956989030182385143360050901686644970997955716998588640093039303007295340285280810327872398001588541531822857742739684833627101490817166198953919735780799620267475575228307858030107169194242197637251577988519816972670319116757375965045805533843117624408888911165549207388748614632788461506836777281049430134139191762571923994694306909818016287915140164330133427935154746497317216532827194492925029679606673154235481229985740452028112234093394714972336063756210329745037196256537078780192397004766625802411877858187539221776586400049728744674694075397492634841049283482198657507534784885933425820588022464070940882036033019345833119802220154465222568754256247850495831857969333285934795641860381124210559531729280461396021961765932905925955273707708069522506111743857643885926520317279620051133064436112536509201993607072725391188707157315495076734767622176151019213135839694634005309172551452723774081389331155122958893523833488673643716600186183107233163057547540143731098652215085592527206637359744051065530660415386318403925347670890023183108961527300732281768287242386991362465193685687493849052111589948226200922419063141748119014482837733684421081082061619319221607092752366064049427033832521231108253584397360333258634817858073210817955846480261612682587807293681172848129398589625601088658945204792580867653216743312501655602987223559363993818089740952014082510585666775012394545833966695257324248453489663630937381212455283901379672866816302501840689670940683830703829959726415895674501080465293458693804356356654786313922716591123179591986289569427157313453725452786981700901729696096435136377582420534411693012769432673436177800566366128690481405408108969784041233281932010070890483349109876139434810303758720704994393752365007157744836162941829775522554085639904725537831888194725235676134575147651078190637203555278794706565638485381991171827592493373452319759338897496412733686985044371754812761011512416226388364209509987943232365651420029105156568810542781196203575880300029961111861314724632263456015763739519286631870456030391465267656972836492061629193944785327124547970021337963495244980234150555091730617926962242266319812982173944748559869214755479909541774307782861648302429337312519477323621973481820498196576138808192409597003255798016882058312946511625049747822443156292007827088057761608175835541668257578031923111700207234887029581636091592802036357682701388013949021495482142865999217051619549966860283079201228648291523075371198580701118407242942862777649830869165990831836928153105826338092091341887973255184270627028263378216184294054540363632306459512992644953805457765235916922701866097250320486617364136262305152180710774346308687311110944303497512460597430869784887627736888933564474644099981065277232705328824037095849492700496429457851139766529596781172814190609482122102771819849984502364935563738186671411457228639822160720395011380624625904207578316427810813762228146669496929538248269150876069756996460446684312375652374540570317846680937752953589695567902210841017564352428454624158264366373311351430157941895731165272766864391257621420922880018233844184303607452703817090430065574285028589202620561773019866539357725628866999078332496625118399397287804738691468089973832998937429378107055900420912007189147536506107462852835104642504015889833128848854615064368512439318364731505174950482412494142548806013014010083561333568418430332013363151107316356589804361423039897481187126910181867315648394536060168850431934570978713778103140264597627040904086965661364258259905252073706307974803466302975294086962583655566560321954959473266577114324770833886851492851758409437624452620127465491715498606843131206591310063112364903981485734124573543797547254136445583568467404226198008787160446462074854203632273849528477753621319714349142144241427299650100134109113982288491298302170960152754733164188956814145696425981748340440515973667919388127042152075334521770827884804215047708215860245399596870154489430313972205226621836914681333701538196297524392427897813669859928730658002822575993315853952848653100819552753836214906914392890011370428483254251278056074826257876578478295847153702045790860103510452680624771806237420223751522754286202520557128036934476356184117902442351407397192072227034072864347748703237395570689544284443194992220100568563781735432716798643806239030873474871620384018323382952620171078979437093292137672870884131658248085162993088513689263610326883573491103650498928182163570140672304825753791975647152034266293599055095480989860721950217738196907205101824272490480671215205483286104783332166764015818357533846698275359556778409977901135632201367491156409312518725191943324091849117689284487917144827118461283536461587432178775168552050404124476788136210335192227957203732518265027220670788939958234258750039725003669003354988024429730218920810760872860506152757462667884973638376350697848025164242453638189303688096411688369033159411545010281901770390593536972566205780870206382681304522439337101235378458382090861208450529136976813732494004964822625105799511254952103779865774721097784240608221646227732786556315118927406713695541355395016094196956142181035618071882335185829609683635775774929362895093463633565732433153108513094345881615721075153672568769918187251016172477503056123448270213434487773971040963904562920587561141320156063296034604936340279376518348361520557189964039792605932049126166848962304310227710111500460942231345007427077865891979662488155416841628224651045026813828671649063139124426626826876389692394407440794770261586575690018109076752530629120471904476924089629043344799718892621440134822793948093045316214619776778021747913297922984667008829714953745529764172451645095398089285696798986579985716668687232423639025581367778213235388631086040093990413521215535360162660159412629256176673216242777061285049956431673296511028283298967424425365844787146328345900309504423607335718952211168924243845746096253782046399829818309232750905241023696180236126679640359290694788519626234177062224134730203642632715706509196433681213718464358900432883041813090177545166137020447383537028313676223029320268800538351419392550854808784039288808417370408104209178815648453055532655580343933831896140241930519718468728011227352682312535650684699182309252758868174780436535327235232413034905824998045449940619985513885404234763199482197253261170738559355402918454304210041943550869436410836085900914448130712407641080368211641674376101296013360020134140379208340223180945798430463069140328145124781567970331312582683894120661664576227029054249594522112002563639504616134059452284996036254458699342092962570690240318410531421442451373819584643416354810550284927432958772219960761136044840112981878917650593713633529715025525093579784670601729819485443064594774855370110994783383598007860658431350892000043465540427243800061083405301110536113441371888982911522555679293910671305608685068738449065602988148266659198615577020302012366764325270055920555556254146875396106066741195337620826730773688779975585727290791155506426807864459621930456366139485311732591201566033766035095959170334533462905164936046351030614839407556742487878231392757181755771111314329262789529345776342924080045728750436778740039813057881703813961198468152862282153514090141714261394001626442519747300919847915448057920589057599374808648718740781414764014799181272269458915296922725664530398652331635935982071225869290469544211537886334636860503106304660029016701785048949897470328028442970969677567397401074632482555556093241609222141735850205218202306722178207189202239615771425912628191510541071932058737931674149446558546725104847686107652911147097281629811712906426778527663686743485590560280587882371308999844964732944743869681774776906957328195472964607588474145834644467312156864910073916204356888842145555835358736158901042781942198530502118680979158294230676357620982812011735198947685849573969349705085052481474326699408361604229326224884804013239943464786010720511667052982535297186839323912636676203091549479294634844256603819850311320766435745289693281078822448121903023151648567778432666282188505004022172103608644352116355043114052024510839757089479446519513174784818503979317397264503716274640771177551015664882093000851800577143774058428134716889399683468145033863241923407576572379363186917635022449134027224755132286218330957978454983439074556922569896842404804355307315272380907735351462478648431454719755994764208572611388365810751143084816856802346570493277953284458730263080821987267810890025733684073860322392277750852855417212600236474815976898404393381536385794743584409343674485276273176178271277488158808027557340521953242104068788042715013177324065714094174936916877529613777251220234183388393798339372952756996371881511115365351971573228010056734077093509648777124445950230343835332968062439247406503519042861615319288943460893218862061431433977631484967697018428958573845046432234845118865354243155746011065185059486555848805352369300949771604952823308510492305319965138970086756078611216668973698481644275088718258935068908310244586217856395450790440538733415285180254909614279471069269477531936716938961336625866679866172778871991547024766509403047552561533001279072779262898923176141289903538481726537942430026363637300601792529371537114676239431143951280521573932309995409838045300233934566862905735445277134495103892111823550054484261663780508363435809892105780035691665606060106933746703960376194977313403172811982239707359363124470153355176017751515556639653740372338202247637850345396495638015577185838287172995192773253574715257071052281506415895254582636821563494715695175080731181195446071007651354544104419496618759304264448689784684289838611321498281586372349628535095473826027584908817636958024009343227691285966668391559004402517097727982420800552933591962102157352528386427778965143163231110897944095937752661603520957395027241550921352668798991483331748717693460814203285533978186194923055767899647087367567072390923927965100667596727997336297595618716392481744949114155245876005341386043854400668710320348435958721359205814171685288528271736828828656971479610051765222564348946289434492690198706396244989245094153620324088668687548119096378780501869382788387626755666131064214365551517502446035704577039620963642413353384621571194593291347963975528635951771701211900613439680435097005469119025922196789892448372495998760599771349600882313346043173310302985223328953124677143612033075648168705520729329635766761543371538648305186952132537808270412979491073700781588283287270713651485672481851666649786879084201027362611470293763957722869475895814403155972992580320130177579843651059570218367594651881753804345319244991164680117661525262672475729072534096901603877700346408146535420759563714649111048569046199896937675301910882847902328703611258259937580983318471047970323175547976197726591023410308747800644106452680969400139648926248844372941842772221029827626125276297542743705811052151128772532119042919764152777546725888463830936261587054120938039344175895970978709302502476877721485792910231432415949128470004770271307882900694954022756358541383095024080592638932014781410034135993319788159189552772971582863598322045677327663248114929110808314857166438592436244019386198999083888197512821722186754471437577977346728300014264425666593025177913401535562352411035433717926139821459174983883057039569688728496168327211417703570531471513758522254344059151836142060912961617807878887296610767609379289710964231304481074427148575427250609192499416777308831119147772538730643348269148230673307516390892399403661874120002874979065937496797616596632853689788463181726607911253270451012351354398298832894295882294544250474400598919669401576854544827439215722719011385304487243116519110103329269761547241077957798736892355254948239686414096253018274140411614159109200491079855410902299340780498547829384106547305167049220645104283309656681309329580860034196651142050981455000754092758470440799259296706708917941876528380731144979307122843445748196672652552378018600340510806696061718064464188658419231455731437541313326054957875091026933692536710146542847341393901143985541198178228484939269255070031504357021138696593611682042691885841382383613454489950015698153002072371283953046379207206721596168525592387571520841624073063062398873279743181636862067191959374295438829946054308259775085566081940764605391304874096344088198412346590416135339098790919453335429020832879999888352459875478902361501122595089622090666087131214098784837702868928834489654466664933851015199841315073306512959772359803484281874454759168393748488949438701590104603205969265570656299484727159878891374937369653746031394501089961058263246507785335309981259923870663853180192330351119719690556342838081700673681845238751586288476522082063301313553196931419568110068540301508991227955601815652794172448877908223839902220361149494944139462950002354058356552620827777863201443084730723351185897618315899784402341888489176035153360035026966092992403491274725572493836456390630516404563368718137664358767801335447982441016740879177500531974326516842509100170844363307518271058668353470184881628682677718815034277201265093444819277709375871301839915199563151022025869262930281456645859785145839930590395354840540967201300040674732180871798113487745917932635920877604581659460955364439128197599466889235260701335627508307635578385542071782306579053522046155481306757564220006369370482284572011054563594246467194849792477463825206035588501895891130540135202335173916871865076369471541738108070436561133593854463547876751663778349914619125614479135848609536785227849590784380554153849405372123698800419544614858386506008458773674491923609292084464650569238501980898636082979437555346698056448672382568682617595272084851591883304721101765548000185196070399544461766895824645357724260046367858670958078540453579883215026926152553750791853523802843988866204281885306700436791695517798765844955523557369255330331983234118975916467907090568197027384841355808970260480160982210629403354068452578295514434962858257881004044893550037679959425258052305783003089849890097462053995159725930327338846066803285012971890108614616464229314348402992598611340108339402216548195065037832000156967624681715352770016300848699691018157220840134256213434062698300058414606462693227072291367433505468343227262640715459782708607391905028018968694225220609902147050767478960690545650901579981455951821326092497068088526548731944603391769795320136915346556841977873330734230759936632000717047388226032751461373175716909875080698120542039318049878362480775288945044257385345128011974780905022756135697594993393663629391529700253720217823933466689400602325297308802853339027218407942256620372691501901659826410639508007197489726067356441397020052542009771308439249004881934284539134608305362293765858380168786052452331438287254838595669837002211618497659381409187368938064339054280673565297468203986475129047577634077672743204119320727076647070908066592301127413881442573386783735648178331321750942722232613853620532860378893381256768956368030407544805963754393764310108987885505514101086752226278394174686810854430938884333293895898734749720037736586402508119483212418060743933546348737015142880927086864108197478293782659574724584529383006571135071463342746333081436419522742713151675309980665507375742013026680582656978939844525621623596141865688466001059259150887765992872089424042269000688924651212018056830615358718835143341904709989777926081679778490192429996976518049788064496860494247812133884611421583672751279420583469774876337279973106963932664583812571355972884149064111948031308155822798246974562400009654678211952382878940235133766156022712483358714244337955199674323561976614474603211770325570473919806437294074506296019610030364786860373573503257931660535007365143575206784876217204672019065709796998499051691577323963445610380045388532867184802606720300895009447155741523832574916251889171537079116960508027078790429535332423669898434819062349329778088171975748176656650595412550765716332181141136426103609178500135158495520111891213652720568616909288594204707998914871016021073031864079075366966785650290471031711164068006907898244063570727961718292307684678100365818395027725320311093329028228159933704370069186610748938999598640004715752107193016876975674937832968756648260374282516298441708333623239960951483193792273441507368222758319215908995706516107350378491246828749373920174829013140162911985723123074476604451615543973383606075418562688192942908315697439547887242888510013464054120810923334975341649625888195455194856454626151173068539756051146550290181283185667248241126289082174356780606583727948170295741378111041633196400756954089566693063610890331253306856022906332198761394055758910075569058628468610022341419055267723507049108309452858535095552706141670455816212429751297176239100189394912067423869377409076835097564414067611041078386628737574474919601424532763108167052867919575916808578713839099497804326740015748613943690312987059595297789958670363344173510639263181876715978385772173386227429947475286806956299689183367109667013170765443432390494090183617251403353309880920635561001683126880552924287776545870642435544287380894646863595257277506650216993349028755104006406717208896584981947718060873089629900805141502548215936260380617894973635440246116111565974269389367341158540660008641216560615711578414574281120865525493263919322424111630394527587199109668057011332265107483512607420624461554795478173209370608544719502474399998482014018470026536546633374382736853766417847071498820190902506574150810316890069682710236564668824539286126012970501801015431048426216743455412661880666162632067501155733216225359971256447006805331707324565829239656134746051625709208237669448006982771625989423359633306586287380761700924699256115178240393392244242771395210913789031589711135882880637841452282560948513438596374450370635729821055202707285375247273195465099685209185491095334187502003459156485542820646035162745199250433069130835230237540437556630225989245944309465668682007705066050681928364773878846585141400794856827338714343016579834843733247920482875877737284901447564478663062055746593695226543149691369261631333100556803655275491706751602963072172064111496210732699446703000646384187574974803245678605530183302922943924089694653708545478053171599117150363311665079843272168362729033718942606382780698331413438961224442973281342945806825172642569356013633066614750578994285293841774309248731112208370762272039264397061283803153222614345159509851195068463468880887800208366787267295032102895124683471056856386451581143511472317442777653878150701825287870074103377896261422070111239434448708720981029778051057582275427066199529400907213375311051059631595044012194497313204495105533282140019891955027516874451124464108127275666115706255855219679503757988140825432487473933585616909478581062879058064767745629836302258214075183737168538454496968832225855804869721313181742625142290885475272216333675199355490882965962173017304005711232840779811542972316406552533365487363854680488203063383850058683085955371110834113509099084377861724836764544671713281971152954328067433344727348884495663932831910488307406780426995271600487455885808353829263196096677164462356458747635656907382617431642033289626608757551294881216544758077633275278943603070016899989527250014015401388299372318093233373730608393659868958351728800295310618612566003706294997355271038854929166314476404331409334430230261546018604194616264409096103236080922233416579138755348561288747999898563845630864356240219288682746905539168202540264795775058389288699447710804740958017841201538463117865516477674610813709220956495333650501178281021332869808737097995255800051134416552455921837392587016952172024256160656768433370505450397576153218780583505847591507715937585573146008917501061172176541854251994250011033419746494759272695003013561797977041553524099428003505565558740639361989888973447814443315319692378033255521691991302118770960313587897180634602048645095619472287801838770180620068870892821047732423850376148882607695107178332928778908116821087534063075145272976124082138449674061945802068982832996678244313767801586727447161942749096635448430564961947711081235155739450140869783800259975477763192806227296287292560272741165558178435737762730062013346809106282960178281492016544406977425545215216311327873184323634975038556454716947631515626438652205821676042273130656372505472652261273445573044296036208020004200144546116107679616274404886038207583362865824109362836638828332431919035062864068692643123962994988475023227058405853641370261259671075329824139346191557550158259173893544155637053281555076261875885834282725619894150871520698997835950630182979630716598863115890728521960261079824555022929803727503270357953795701404920614107940163858989476873294769406646595827383533824811970104972592819923809699455263725334077042654376725673150620071103994653187143846637404229082595983261040583869865867061565936607210106324265617209258712938071255791973791004738662528951115727232642566547424603091082833888814732895896799498228883084101385568244578389752785443512593489528458395896648019067560812245753619854799287792392316385808172930485933485108096633586559541928746568367358810762701448713379123114409856570616301403703963053084662190793536522615790758884497999385119461232043496610732577954600180394546433488791720323854181704695146933981631993352774716282283744874994632594637288265581655753704120435610270080356465179621397927977449531458723820853604777438672380374672406258666400773848226945667594472660101772598316467679505688357740705096952297935593588152117074561292476134416305931068776945090628580038124440744359256472380414308574139909767619082923257265054811118825737416525964642429264804357467846355634673867270299182576218285526875697629001248590600864558080294920576801587625157002762004050810530603635706264901526367065961804457782674872856102866924465595256557747457301584451516555308015001416372295960045800494265250482697275179494904595601225495350198983397111889563630957062434755845877212134955325771637822763089558418764653249583016856212751745215968976383390754544272155179808267288394577257792089113515745489251671752387191491535355641706649392253560324502036135338641617660724708846503958788191873124427740097795410286828484734142889026916907276939048794947204629339575365400575886401167830549223418443993127497970659534318851960975879392236389497527223919593001006354923049871336094942386442113317727589550515231732485376972309043424286276303650189145035012497131409820139428859505523155400746728599305712099380324404707457385068234527315026200577007767632771236017862339801919595051908804849843159647076316219843182510642936882344670902065879063865826450661927809101033188579890824491900816182979732163614874003829732801064340958296025853379352746008223772207549350010968779681326326459954268589449001371028976388180223978050010455530225770318739881851769251324407040271232891686057670921182013185290423382382457911442384455609037083605279117145893876217422476996369431102943798760067065070045777575108233765386887204576293429325414360105810411745547836343574267125495473495399282524486058569547319694087455789449143393833631272216419195011581339382192793844816374696283504539557290235647050512174347445594907434197169898386567089634180889730584095204598937543508022135512493933191838040870068762451507545054525506831271132137973317482360891387016089569792544107716769817426069903166495071222682129782148119991598863954705231584805815274156524114097924244766066986571873777266710464160756829203502919077221189577332844821435534743301489277298324485854648728633633557563751793885980011726979721243531010565547764886381200713321192762546327715815249098510839179449241184465599086046813507403494001494102838217266087698612600047844788783843150034477873072549964667783371198885437838752395419232895388637321549872187766812040932885718282336306238856089749825199684789787343444344135717347282872028232924300620926725366583892874535725581505093313242039391665660744212176461430523714266919673332114865918644908339742936279636248520221014923865372270690246753934485798535229721606485861355046733378567280469873864367036472808657361429196849518526678247856355341881191056955605364362591610868891545187290179545882311345079504310111741630176980837291855805874360333490189434153638392558607715928820673420280028146381233535596652163409346478314419858345703477451760639863660309315128358782997934975410718000621899456489573350486137263345563894995812469569684852394137578175102630014798440409809386685756944298465732319082964918377705881271670400468683783232216227683205814948858306374652403364144190838358370085273138061871426918972870360094577107004302543376859258830714229943655165549600540587202317076191655243291049666670739740409851545577369315882155868648163946911004518503621997237634106694107613446312000244348912212127386922341565578813386548199010649381705083403567346654795260642239309498966059688247243718154782568957956001041796135333845762419707612214154190142210125325586934310739055872988958519410270469417154109256904612633310999203980755508148836594250493269075047713119143814886452554865928308676980176733882032432644298046958400599213760647388863772566637704491740751797004913694674798700173238506102905561652904833942222604178492204872622826988043829355897064470607839523953139146427288268398024371814071575555410202722390486910265178370069219944386789763058494625387984917786971816434684195350205526546669400528863792898366475805427574512884154205819298185255640939714543661135525714594739866834807500062275800495137753542415331953602745965419785684608108682111862666155586265387231710114404069842857937586340770480952258099719837110765743620087159409729016599599320897429339875474878911036322391470312555859122316356564380364771067100292775619672852959212945101007143642424087465832131363494132642788155656809001671594085859662344458039866573536320366492239776240678664891771461738674522558505603850070245365317010958440223778970178687876436423147853884946242920677860222670922062036692792908316043840957877177567612136738795482745361501111294377231195120365124402951629898283648543424420308223602659093742328656869284388252137343091731665288156431244411787763559463245907739577972923020018527237901749735768566872462908428974615304237879250848973597846394510990633076526285142195973616798310355499136949578185585560935847982742669947718114700234251980102953491523989261791023031431933373307988988126933452173927160698369095614699998666130733290534578323711010595423775014090185021211729017542438442560593302722593700862302718206271317600448788346835067587949734487429727803939419517720297960839981312493449449647869433128548188668373202246915226669778337240673635681869740862784417661457856197248356854246213321116926469811967187699400628916650331122285181679404886087410008517513806842352728583388807403025815599672887431755562695731449111471639322921171112717455388762674134190633076553763876175021229910548840465646906503810642023322761811891777262291524898712265434734479281460110364481954959821811008773547688152747391908568458278399489322732400560196303322734440399994543754180350412277865993878107002525103614379756850365749570022753620150290492921316449810228167138429715826770960836093410343743808723936890336006414671544095846119943300709026515143455326596051580206668429497532868498168312722304595336716372541310116443198273782689353479776480808923228218825573017089859320235455987918290839923763898426130712739395790110304388694680866393460130593589417801345345563613822393176504305557790201707751275856952279242646148493443712428896552544360419181056503075921705291852826242376979056215769939727866012449473307842361888392105651873644866317875851629351345928392805439531500389146845123114472576706119634052620472402825295002952639045573546945462207948404221601092838633247056743723200801966542900336493686787714319452523559305368994120623414294015951402209725600034328530085384038844967053045345882628385390951703255936271018221540989253565377028780108601296548064525157352926080470328143192691662362493550432062738508445124199373649817551873501833800790917547320084718990756890050628223753735369534303756357159965417672245901536109035434626835777682974767182116055188481444912896557747404775645711804930793388963991522259158562846270210884590809344518838538993110075828250759027293135909548779190063756036909052583436414219025878183066290209238230544319214565245426417132425854558816718996256074181982637553446498330446970707195368061205222492876205120475535856257710815327426252794985491808025738944458951647438007467482437422340379132067745190880422392107365385570524872898692766067405019356646964270784465763765270272020015053074073683489934477889808998760264510188268291121449855523119283648886821875026787421790716644685631571869956864482614642657788492809920432265015842411554039029553197690423778322954674860888288853515721681956587117587917457965125880715006601990218767007958500314338812040935644793168444051384695500969139374765819959307458150238462583712016629629550634272042115575779390916589316538490567375428931579910761816947146055230011580081153883819953889040986084365455203325039351051746980567480915253499429158960862586711399841162237934257616890646061539334763441418075120905473605343541577860461048532802840592024747946035213809345496674297630414564388489363957220993943606910497586816184558667241562101771502478715724287542517728605905776990467557148343058672049750409173173814366540650977650983712245467836035694769715544004038841085177358901640712069621925560503489800708965009413503959240131701389686044738245618197578057938222100487228030293301309224530468573912243057872147197293733959398466237414457477629479359152148617083053131181780794915704314664270012266454779568859345307649619908037298542418639467448178468510444039345192915427251714503488310903092636956109909541953663706695658530815358723533393927742187958925205517833392131049704044904601405079950265809421304827410874820195348863769247123729379160674720741802015375793206551178837968949021037465071424597713459865518968497903492839495216174442921563503492977320715495384860284326251109494223696977891212420431356533213859845696454763549260105635363669644866727465047417685971417756186682481176247793549614354757340645255449352885289948777396532580989028244128909688928839117889192498968356126828142411535862079000329019879442570490852962525409206142494995497735816647780764934244040818889416919116984726607804558351651466682686948573376102236358521496549744062799120298164847418294938732477159455944353398599413754408203048184183970875532033196899186238311517747424646301122191071478776070357487777925741153679386343634089654442353956786142089725805445292421554897548960467113008266686155171329603222384545356036348763464038126981387231143674275094244343288827726105050989221536713513782018090179457838593801622633752169909589313152587385930760442700922071866439671680861614312006439372243281517392596979790274625170971070609283805659965817304570208793302242086633848113820701695405508486102153519345347896707344723702177063662056994310589892367890291376947541557736409266948098460756830045321411192246663774641221817107810211179168308307756124977850824412761637345531754976693294129603839988781730497300370363850680188873493660176355750222142785997331259898315937713212184011314904298906685950629072467204512290156263772989237359680326850763361722365380099747486738868209270755138654021048151990836009415190921518593990076450331463887100999592328370986230262032350206774506277805837641697386783736286822953340307325459259250505665416014291136718764778805681283257899550728834248671274759801786356705481430984804690965363444575008064722170540219647642305569899697758567230099826500142909636903589085290867512248568919090503274467740151851181586431669412675687001119605095457262103966152910680378800106204890867710585830313199154865211721128099849331812624303719426777649534898043561262113057819610811433750872084803752287484957627936046933304262736983300260302485120863099681141072795526237693276088122287681143640978738159854533460012665213952917803212566708285210792286812592868497583400837015900186605059842708031690625300761795234566467292368530283899019988536045673091200298910889972417008201808435396942616253696246149059209928771777904829991912586891136500365000904954730425852163226663687683812400324786956019174910135392137107961667226489045635402114133158090911372605966495545650637656368694212161092442503570900627559310504962370350600623841548610226609235767001780803538236423400647835797630969799462976422566071019444240056597228389942530358118585994597787825019328250981543365083383916368101059906654492185583157226329505829812316212383053073893869159696633243783652794435083902395295426483552431923407846240522442753907477025626475454004191205711773769847802062966916892190624767030700653583541664979589151776618059155662553176041471576968542425093322502392721193695050585909822492193388138995307392565924161607896146220379111267746673259202054734744973579892463838551414159338414090800960776713424721409840481968961198695758079541318819559425932489333055718639048707349092345473992346884064992213603930871509840150317988415913895259965443519776213142422251229808828813759263438098222899432871869521985598931773900624197447004889765645957346968832375017716452412311552722582608855688385283506751870159584682565487520595434803533868824626631172828282020141753096110900045441423297647078049360114580967465777668957767419871267766265613297373869685625712264424371584237872291968286653206811884609573003195412683496531785446675680913821043976792425766700927411983790569455457357886363760714052355667210036433006236116431629020658745929888268657489767051647756500114130427999549379125546050003890936342495970543020067837440332398318500114941726491265494964604819110149341123598075175536126815964176329632041535277909446625660031596945857796323447697332618106800109252495219598501564385797596784176228623899644378178389670331673577513842300929684415504768703587668450468582847866155487599648858617536390655937815237145469106698231302735418178734364965253998258654056487601800387100750960463432408375840102760067480714283634412278613988944198199603933332291482909960767145637146758885237458725938916883150397411085483461844384336798398975080923001234902875285848431591148720077696932307025972313683697965126223125909179967864322636887420792390939675281565957505232943380664277672255697119087565096622611584672887610636366342748229452341315421357280139015329463230130523675108230838603786755002349025618204382510699340039687299988725475006206929720319104176222284618519790072876797761465964913049583455531148418031649872112296038441317258577776459033358667305274687596076974031279278032291567828047828491213852147571665880941288470889964057717791012276734429604263304143119471006382213354895032433023738479124377858220522865747085369411128721453062217373731067357452147836096887771092145607439161308656886635005333124196403809526942300912508489936672446011990817700451668529361449137069045187882328765481115825162330807072009106872396899295974837241865676332940935972522002070843602469665355531914640279189144799788314082460819007560950524154588168865593925401209305057501466659119939433460383960342079606528575770575635546958363329604236576613921383685281971558113769351766259572088500889695116658704556930154016386727443309572794794681682267948841955637845415986020540818373266581873456605462466065229407521753840745966336728568993986486535757971101537584388351955071702568220799085772208567462580723690645018357760528759557144568937039321452624737447223990606330534901051948113479003532855652903886986735333689376267874455101733528629563488234011007214021782301412159803306854833547823876588358366758609915832974897536324566720580305628060180183147576738222602004822996584687111516517694658674168982793083817644548903774300376091328662091556853937334047273022654787286437574899215411756896631619596948252271637195255790507417790880484783228632359349373125019470910120228322757867156771581539681853413620111949945419029279064460787806036471370235592138151728893293966862207068847109812064026496101864834936190565789271606492960802878336077048688878994841581442823806258535446767500532559054068751436020291331659860147783654069003119146588938328025328907480702008507065215590391632028831578499599316549623010350879390691817499026628968089768228607674560678016480972838565139767121592418718280659786630793257884837001702927289346693172053954113580454479147641365138865799565234596987777879077234639808970808190051537056782252388431192777092576750122359620535504195672919473404472303801651268535860676667107283818710688549157667068198550865949524030506554512728111165933001559547817104055393100062286907865045054342476294599868476674545783103513261601164402079630116066339300174055140051744099227513599165479971017801306992965005212389771305170080490500190874372542570851306750567273230174221311332357882902664186841114395594067068627665018281644190280432937821910338602600440568433523028502727484846346290730736815486127648708892236040199924403118791701787784081731756428774245519885320160639048895952189051688795002840799216176992911011811338688206182059774232033094440172745742188011328498588718720151994196886243071525669050211434783853916021238878258299444488384366654027427498571105665613239320996953162217875941054792639661297260573945174981968443265501319912002886200003856864931407307702429958034438872953907601167028012946639734028010526706403793855253790566111657412780451580573377315139087146661969416166429595285952071814985932792412396232934804453634164302006614485980238862399104767662432832490419582545114953096382666741012600448701888057771724281189155166894957535235738744703540447814601874978734747784650201265760572858735894788724626616429580101248681306296883386586590517523783161685137758063183036575131942372276664141193415669927635921946993435808032859431530245169912082235648570857727258834006202458653782899018860988337281624705215865095322728410870940328315018524401752743321977815490030581919323857557990703951129328938364122929949017349155452082305032261037789561570330474290005494604498854871277483757855273493648381870697739693190274072368507475633802596758605956272135359454955727919779629181839442897762986815555988428507473170664734793254755108145415840473131905402583942939000495282078474771234431112949033810302113328591464236433280749937817244186736102375814589786829386760150221616272007074753942755885500235696450144875858260628029127104585793706776424331587415358732363079592016234831399505349738599903192022085621475321043692397215366247725387333875150128364974098796165885125398056747323788699381560911292626882375362642634947282663580052958380662797337493221359195648577346317084737467913325614309880584152983896284095781565647869309664478047418702120197264851556215759912553427251511542523297018560740763473492523474240929762307574628361731772908277293563326753527226493773135275525450122772010346432196272717415447097654348642547154950857823807642853079352518363197474556730408097545273588151988617296335164726201938413237622456360428231975619559772452131754454198686728329334832401887536717082197734319849121461619018966997579761318355131770077342610716505092922488036019817557393063710375799081967413855476103976810879161202276762324696503002759695849958925895368216889650426444528625706992980787967294796573424243424658984018977253977790246080796689819444085525623579045465979448787340016284795680523056142188282570955035508126289543532736960804901725346762380565797293593109808173969982491132362032816549405974854917023273786264578728259998541583443826031840354240061127910848779233445798823718749635352580809916399301068330783382131792035704685990663591079198471836114838351726957271268739831749168066299228166779901224480014803833598655896918729479048167973189717221936995111095101018862949915893974845335372693006451046680079865063326878156981701794943830710000999878711075597772566540771646438582244348055248960900575291078935905372355762489857005548451819130177439318687939144613050435636243953014898043561322922133989376241916628510708809563589753211780476954063856528991755374949910941824061748897263981111524329300237489201957829388668752722406375364210002266299361448445616981880398462867025234375537460140169521323773000983254667970901777588836513670285357159645618311842005906464696822083769235148394698974853375367718744405890232041751014969350748264883313588110300488206184888731429899577247992862218642133205254370265307116821390186645094761822581407596038382612102605442041313330101751937074057855803937623963739164857356484114756081054949557870610808585934896573666797816961593535367996212635188757315413285151284912157473079935825116940881242629077121732218917228689246346460839810645717968148132611586409168734378185107475513386859657970668968630806464812885301697702700658934765091881047013577115287096644585650155327619439241907236055447795962015861900031663685988451527940629497898615675540632555249520401468237751460861841344293209748849917516742699809602647200966855542720553794329938178457044398537011735852272647005711531440202757204954830127592598822437137785649333682288367284580693411637583451886964156925670298356326632243055188412511466369962092626808384260111213576038617752594408872259067165746249429529029219061412042424141518602549897218514590246500755802778814196035118837986061227213219671635320183017255075578658378224349632136054490498726639107544280790249899785544277274240756915164050250978386237321694859589908253067128656036694973811179470311892414069962291335499328659149022988500136292800949714858974066331138268469473844422540938898670840184060061364737044846688384256676632357745839892028865057552217308735641578835108045518847258116832714970101086800931932248576296853927408492501703675995456180826188582705095821197503098893690748313659065761780476496123533780971504338437010730518824215527564385610039225253853381462269411796505209970338401038452135716958777074805581282570912007918731728332613862512770103254918170772525203638489042560509725292184847479812263123402903185207918262547692519352448664950374066192258001069854975056383309428990984245200896411405132831736765678478324688091948323421000756622258123322005471682129124760808344971650637946408569655459521673497670988663779269236719626460240669965867599385253095900949670985157316478985327407363626096922927136968556362307316761186634068256198252163908234889642366779200386370885343373750043422563480507551669617368989446938028292609897376632355093551707993233692990234835450580086940099309315954076719609654204735602856928854380769843893553819660593752500163585296200374000703058522878335352269505143769374176799082350228656682848919383444740147190255328457552763091723782387470298230827759843905786927066114052946976163971046710510252543050650626746665926798096957753473116646049504550010487524622603515914889794493192836725742035139404996140831637238979043975943015299381318372540023440700441568759680360723739627609374231762963505337031978627515699189480498490634556528459526465291909551401518882708509869384087943360798234963818558486989486309110554673900638890241915043690322617148612264166537904591917666757250186800448997080582199322207767508680458135320246132306700684527298687920995678825883661072135719583291442829354648055391130395846063113937371807761287890773881210579558637581059526759573574717660500974646239286849245430694861290389515234003452717109141444079216765855862364354552547606303603355559918034452089073744100397565215866541104034275894773994832208091014122358081625903954258027291972703348464834179756879754583880821812812656417117251001861784416854291651836306002449641613316853185122927830946296446989330835136840991541308951325079249385922615867410990103644679204611198371229723217311687799516538411451119471868793878550537571486034487478051148563020083360784766816544038123678957613783982968599537597459702224644735346396018827782444144057015768839085395695987168828599937878808452521350026214902194091990688637288860161557424677389149060917675635041015888569037937442246284697826567788383741860873137292805963259085264803400303163843043733945304794179226491019366405566935745436832356896701045549480474179133340844717805380468591112922895310782594257663194470301012411616958723762293624335312096710397476368822932867334574377005439159194254182506318632514627023400932991672989452641675134349683999816273968674752799032678438943803866635321121156654669279202409344069182117962219853030172281649732260831893485040973147271496204355473209058971828800542720583144517392906041528099919394538880853458104858481436600168846876746397565887311166575523514760969665181126557603013408204063430300791476876377764544703213054578591485249869381441526984585390037574858056938590037940899954461799610681420476007032778990327299130011806165532975179211856920935673394721594204796103240324747110753981091083548559706504846630749651638569578342405828006136566292635722642166130905666223801927760989273281676363526312622809988365694938936789068123459603443009554348558213787399239746346183927332506653447611620477530299994329015153790870408090882441279344410763909473030014296723386879691994371723091200518225390038510372671630093178184072933870779364179189961420469981300005610298556940501971550869508609627244600939474965246970385607990323679991417893106530037138952681947227187103163461616203928067609675328785146240559948396337697176004914191370200711127786712385715722356395050622440228050073598240471949098224370616758136961863822460126207914957756696754793965392480693849081078045244532434263852302338620036538170457516410590976771443123559243964251281418734379377787716968803411484499151752875852226730434417258394242367228887990298286338851842002630566389434863897757548134058059569766025715616943073781095703870951632725634546341040757111918443761408765934164991055498004896230298919465863660183149329961289170157851210656971999763937865544706919650691703999667185783495521121979027368316376360502587022202505056768041042027372827695797305804910073065252954496150416940433289462411517071863728104392447624382937421162574860846929071581700033193762993932225337733113917403107461985172336630600046146997892319760774800971934866768903399397627094344624794640712132132424070276443609561999622785064254851464712828745936509643766838728925601827497942426329580543515501271123001506231581963605133886488323365262871526795819324342375381462368835492278181053573680078335076557746865860742527625248818955626079089721876144830256086436841855700810586940931837958272549040852309672305100600246140217363177725703967517211225420623811698765073376694788829489163773130369731519420920445249478079755385279105198509320524584073268629482082806526698157699644995933343943178300657568199402747188147606417060298569072077808089171929811322530690789941338805661596380622627142306890676631307916935646403409124749717509429733180116971164671454496158833553990426876990954163930720798720111909145622393994604045475586253499740678277705614841969746925187597032193543483299342905318165092521318671387872721560934744458538457905146137482077018195933258016981533668329295719349090872126214136506650647594318413047162486974238444925467560611538917313889918981624110116770456764392259224025779529435121499136705680883982789214666481195698804383983063642361477462169821070813283587162777984087558810254012274673345037435406025077766294605975697346455126006558332915592652904851807908199569728294524998162465559429722042397627342810634870535737939664915359486045718223246808165079854543463853507266257609122967158516678368972204489853320495911422874833448023698054797343427337555411206410112718722401335198967663447614815436820069830918958139021785762195604080178853585316748712080709941353268753045400932368066591248878380319222238408369154367241768456076080378898187388666041928543790353076092286105590643808304929228477830890763889722825083316626481658967605624825363319583328320173652500978863126038065479943951176123506673727449668466281501533145867357654895480787428261666829585493968374928025119943790259946586514711500892252813736280104866879897739545027717494775434674556289524584843725988472825232792982405093348481535442924958680119300667278425390560632331623175639969940788788306361982047623374697174102030789714088057466681076893971748721017579639191524480613600834802649596752072112981912061411038256262222953443404389438209155851300507944893458092544481589052887528941455380787695442606448353185092172139835544597086077834925331691408248985839316287894855891516174405432696570060604898348592462330935011058799121033155608044337836173132809114140026025433251331757670725376143011345857533602022421821186056721959845794072188012605411788500592567808879641879996405193310930313292944409112749733300883188590612873690491113607952008438063409472996048666554697931619097994775259045018061659339795396883895922522190243194695849415640335613147554355621302001540142802507731899683801236994850859723296910314669356034424501134908601866609636558633551855659137749601050601038584031156044243019353422565770751506678695394564056634177221538598817338969548467610359457638362550086707275371320457712551316049380149751185374801371349360649538908573984297776382904512444081171771003138768747513543241569714460101134279728217496269485637504362878379627206817061691550922900352661615499937671154696572703203151251281122544508842022744453552471937867693638966786042788575799831898110827399701321638452121488037959835211935009425470400727979414345835349227631028940820862452365404549071124053987123944030516537784052992010608210271987445179597952648774967523481300965476141223844749538289006324350183201092143596508872309320215142068383336686437941126677320126440730565896737891090090567540236107638949081255680096581128141954808574666205265408172201487194225545960911811937107863933227456391254809745853525814600797603423383854370446145964252375237768702692197046892509673317820647995188736687841112116108109473895607590737133117696460087640987431402707584097906926732332293914000792307568517299379518359407688440740352109889067703549711245052497459404542304270624886743400393746995374208168707453188823738309728504337480962262680745974689235968929844576455635405904706670708009165964117209191833162921029783797793747270358035506197679289730925789138035412810556188898228793857854062960784535264632851784626911579453604036607503777294720474012792267658956168081828620738472952215953938583015029733020437114410482013073333173820166510063045604929345816600129628814868004146731047794085421662141307372761158444187615291748522912402136802652908515238608320938766388360285770024388538254222452526844356679676241503489303711298878970663031947509341173319380522143082645202530047667314275498509194489223428459396690942104361373070761796143145708900035789544694394686485781718520079242230780312266222393724662956363098332698924725277761772165217239375661761663463306998677857014908104878514255410104946007922376384019935194903267868974844565001195658599539302141871296523618973171757183119558843603644508103423741431091729607523654962758911562150150633692765080135992630720180741414126737512470359629876928293651397147494403015810320757476074908696454928030323208485039945809383113113066475641578395476190262768999833458986503780942215772049602268645220351695473841418618039151711938734005656267623402734383470268314571563838345178495175387862449746851832023681329251010874749581114125221778469361855577837106284279889745961637662887232542254491262480014116702052617580032447492179592698095174818541596642092678202964894544129248291511691783715788461249214946612037082002760965982675937932315209078773929823089302594124871323170878078828048777737195852212534894183580981035122008752715509167305663431895783123419500762622153698171271969512217557897796030675757119705353880605724103539642044500472064522853205011134699074022630025864080112571145956911366509442834242528237869493286365815756148830510927533399291301898306126733391464160255158785829175848667416431982182081476877126479108308533153968170049748851039701979658821745271951601733276035919108588337200276842784658831105039907357971620413206363878446191456557686176740633749993638496066053774052767582067487837668975096180883446627593997001465026178757307669269624469019708171844259511012197496244115961716728565081721125028443553870966453841344554692428997870745431508026940247168200487653413418123933637493079854289264642030748737392695433077279954004002311425752083399322323313070560111690274743666439548362651261674580698661833458734928608314250166695928737575436756212833640338680506305273096887107627960101804508947242163936209936343473751131934380739650367136191500317582722594942591937415434642135961378584979562654071081555918325930603275426586747308692532682469843702553746970372627900205757382764286342386247010245466718313987509973564810798315258760008924476486893584375055662245686280244006455640629949208282293652105643524488112533203402946888525625947752662279770588194771967322950051137013977513304721962104496763158680155872041173996553558257280739056491934061132739504815868880173143886032529510088941984084246837422696162092301156835763074785513202460629567988663544331217268314805744629273963541163472766411594307062729944878202063304695930974865657935454464945252772853513787909963354592964925942297439447477245750848938244602390819336205206168203835151519918349697237771610468397794640003430804020610757222700561829855794100116625736038428951714484494814290590705606115178375935316547228531539843524198423997055024666100027561396304894095947381224617922673247028586806551459988776764902481901215858338262048161750430881944725136302145122517886359404220221358169680863445300596181420352975195712365007689377729242034192199488175667984501009889738493311671135055815325987779270698567921787509597476612418237351993824009024488607185370151158559679917250899425903840039548767927329043080753102621372589441545336080838992556138041337767334242479446806111784878311938588122592856684138525503970995509759556649006327924136323754339632669232888129027569773561482779214065182647301963646623558845773470045844833770962129699326701121676495306970360580727643532346378570546634317172432425199048091583571039424928033615875900883230611124583449472645542195394734644587605119900449619042939457135149202361717775462759005261019115882355875369956544192305371140074570579815841744919072536325801759690125836890978858738787161867880986838283269927450025567972972402468409303424637332744756207409927123753612550692851915068302991412319099148348359849436755181122405942347091301657311911133551029120424793142191883839590545548179228669452459880363899540059375231821141720169139591550781291260961804706364379717003582973747815915271164232444655230839060414922502449148600469651629983456881271165068372894198787048226340905524955938703156230592775107300156587969964245634122685861171596932201588877055248759791523191116919351359172052502937941582106052295713427950943041512014925619097409849829931696961296981470638724439458610221368485063674468183490769068606884055330440933952695680792118719552601246291140448857081110933469089048306918142319895981122384423105135488738356260562670282763974913997937256710355491429896522344942084047761567802579979094686225827658292581414292753143987273533563149037172208701504080245678558372478361856840995350045910037995067328768564313894554399785806926615482541326491909084240267638221169159257947584002804168976038289523434583255335388809204701988802272332734612133105625074853831823913576054314041610682416587105649776219315169612047183903489569915690047119779888719425470385661417328542474894946866492252800078753691204751033851983821651806850869830478591296274933118764494993313939440961689711840040807389918196225257841938145294264789020236991730536970315652237786377024562875499234514071305525707422462243031764720523507290402721142246750571821374017699653704954621432404104026772649512461272220415324301049184996289815128917525115220782635548777985730139170367955191920154909181650505988811063586880554278395987452195054152172038451555712992304682135964846446368040703217161120358817444454253517516867281369929706984035018223768652726248529252448172462679931755504389276074207083945416653374396356255146379732739669500504073639719872701062833485407276430006291216732616099700864675519529376187944959289186034127521294189831098129215243333432035060336701952738242911424253452037714866159658432659369311002950101023617263079709885035493135513545383572008549753490319406865959151896968515083485911357610078763523636671712314549188695990776884420396977296805542628102031726172140940138008393620262246511790693965734027725780994854166543817911845976486421585350101675276087605669963406248327338956020228299873872162853364379788632380859398413631272708947410545182173168431597585498860826473494483809774491095462566848055694933205739042686162343586285566581025847517895691337138222886274150535992325103057259072679181552093544867716017327642673618073865495270236138042370173502092658820062531822564446884808519070663097523765771447117370770052131092408431242477282473125570548490474108107501361944928063957722501021660722858653422496467567019531832084676911397895336813911776697660161314793266267954471993899260247701424315659915049221504056204773633837242449795693307057405411640153706508370099116659457829153577880199301992402052900086884617584798693392800128117050148882590205630291034143566589692097070989291646219870623765802884138212808820860119099472980606866617157327476613069536027259750303500945408314718720748704862059376309907017353623072265129136768196857291217914183930745259524849897915166138628725483847705619139640107748931747396068500845722625878081472948315202770135792378123380186977266689699652298670453476548045753025614382187970087914165241908508874236033088647561142982054715463697743726217399854075936269593679937997766818664959405176029804900537141514998532774632909867172723562051491622880823332561566381806926431632559614708824784320312400050476943057798803663958762509122440229892252204344659766679660304302231048002149640232645634461966085310237457498494643700204333613825482800844906038416833154303907122084791331046244838298199441561256372889915045345460893413318519639046917583904250694260428289904385688853735259252490981108584080824640507348478517638229599833212822368278834833652868042173574285171955892052665284870094577874510408743468342784090890151397046460775964220462964732876913050433014258276674020619816929880897262247984052728964839175085102574351472795792400229319045503832717798593330510020798380633046652368977461737800573650875179681535867348262162432756157818988482800792388449014003119893661132163316739138979946293430161927934529973546368114834227103537967217075686436743370421653782774778669173417462375673015986814180590543399842838946263979798520209221886026448153797525245689053638466490661254837915568319946755246670631800804951605835345397527343028641182820063835439545193141838278488812572500922319699406915338278094651493023211188015174772601119905618202588096249624298364506704889521632290898850169031080071040630306475790355472398192571463101807843937219300092631080551732700625521400455737654509252699398900043244344821231793728893716427866689071338574493668252046677461521849464357399198613702473719295112331993613829176594353708919091048795500893899277772139887471020467054530913173669000601743548562621310209162993912128392966242135076031873597995710095636577350957748336530298668234577258893619388350677746546674012759738504134791921711839842645350808858354408301749925399077153663233976383879383460984503891582615005680128999471039030512362365973955086529014080766381038937491590032159846723716943827065245489932315918018837882553716762468740231399466381236231258827378825053072843430752921077263102895263119950504621864045202697181830658349350398536625818739141588752482097582404863147206319257541676747072784690466796299355374513821826843544612808598236011159822639084208954808092830498689618568402481045053354673988375952582934411197809535657554706823241724723089489015255491931431197260926397778841998093093751164831659086154840834746435398540480279951346443695137283355356074119814651803153187373134344286048880771445972619424227816490756931184387173768657519775332940331523478166162853636376554868826550345932835920552810055298173208331346926834069130663005576175320198774025967259621639888061102788904139733249627127514429331279591361081509934638781469974572331644304142825056099306420905693099423484346495380966010173527783278976052472795803456848912936924565542247149317729646234409827839078138061305913381744542278365973483941202787358089966176661781864914242664470350215601985894585625480242577806612573448484985632047682214387133333691345970894813078540245574199383375475711819381645784329238374553660621411689929139494537731712993640758419065801904132363391065391824464487450083451857621883063817122581422536987687337852975781610877294509821241862901231535819756990105555367070702432601606118464379098947334921145565251332416003386520502729548405007321656708565219106752034247421519326232246936416016323467362402179505157764402164155608575107195015280392657058729005334408514616717096033001705231892570237983278231097710374548300731017905912168127481578604150852547106474696970862400012171040363730494265042263729593049854712977231332610227937255963437700744512968496441718990320167637355232297761025447652598227349900500842878457994074755879813945676098890527018212442229556213276359544390506671798980889800462309471502128811135017523200474452131490690508757110531975552369090261219945969466143796078766312299339697123534495669260978833149403649505134790490702955205827590177831401800210639387383199974732447106190337728278254353588454352737906890301303062849255209322954934399990230417616157767502594820906710257795731292761127719093292040295404459123547631120565166209328354627255447131854636170475746021584637442639700504389234848929193771440847187207031842297240427215614162596220505569469207284019672524517862868369890640501244429835321031895956748446089398132838141278266884711810235668362980999872662778971245719828385831783689305250540180826733602059624420426666624658138888992372473265584643046806269968783430430646406243149506413098573455917277826158272888091174149461717534913062375416254132257038290549004698692374118580789289906092363722113908400597162020468705109063014925185845010214692892164545243206603167071775342384228883891253815262640180639082937826966463463470047056316575175457893561259114737762414654996764443271045618780442277414880368181748570831841327487984703126977591169036020832241274280089153850280937711219931412704838884599209241304201267387264148736528879936775723910812722719902859090441197203789544091256113568345781180182411852529092154578641835000429190947048556625087554831043419794021604118988216157733503121192807297081350064657945016415467335490849429042044648713191800945706415837398490324209078284316706172393600912020004894690301242796608062554786584642675897009969746865201658665656649765904825687801621742122415038326605369512242289307947713673927249719295084939860352640843128693161181850011605552621291660989688194061278918292039362561434440932966988634943263658276198003989068602508287601212123228082699681413973288443612623681029801924806217171124877195085042067482863887470926658351530141121078711576755731333790402580109922293630633858203093491008474984899474647505061628285233840146907949726209015517686372603217394188147404833908999842238106847018489685931372796926068305618613282536992534237757598487104927421288045167438222317098575670504887976881832177015682534721174832629765888842997692972311502383752775332994726305075233977252664592121137604203353774371570673452667859644140715501823233234020495337215413013511176026575105669387587868251484847946081770330642239159100349381176913303636340101871238643882962729370541923340209278533193307095662426471702482855135988742843611642777130030096435419593862742987733526199659797597783055284907318866021539551415023285691591371589607725574152796198519932120248312630836143315824066799454331140968379416076568773423413829318494156031999647285122813419357971506922598393017992406912860054474126442369477656579796311441777330692026374233443013376351078022862800414287927917280345215920769205525200385024131695188497845778254379467948177590006875483249701748291882917319077975283757685682493902631836377867793344918260745038797017392661120494907349127880849642536185324607839811587876887102383979361693171082807528384291529813286204676526536719764098913757786454984849934452163860402058184709341541433599767478631358822130538098455999565648471994221041844013594325514303524893208361439083301490123424211664890775369401030889659617911357105474924783229289764900127208521056446688945652003549518261375158003944999774267423995942871282432164401529316876479970256394990255284474852379567544291718519939462627474520558233835176024633092637854801144504726460596433867959156070103588206338005945833760773630283726372734306513154655227373023421032511509906766909416904615218684758504032864233804149823254394127457918457667156686593511510893051131497918623231317393086586816312046821048212226767969422388296030622721952358269540004268195441325516311303699794270239976678769549242862159778474546836895683785610678477677510056196893900727445180131908575149266768242082796544062086524375031713696544627040458096942689793474304117830173758352107156789590956913669316409472197745931180102586935884168391520599468025378197491018750576025871427340809062484447304338565039499973532122309090636835496599220472031010675069194242620126479618505477438076347747428591913221685330604137745892673169215373529883645748815657970663419918781065633715716712124557698927720199674581626444470616081654450525345384804782986921969762187521059258861955773316661284856719045574956815384234293215793094266157963332935020038211566970695612736433096157870874046209328281444193429982357617539493134626886000575150190377835237574951369792171314184405847471450912898552059057299734572124500830059900056246170343881568770312213895081142252375002380523131567565706928427807286277373395819702484650225758169396910680410663571273787601930949962724159244604694160540859732111229438075478704034569699902384518568246367238841251269958939648847342965120646224658897605865203844473138974913070299115168817286278273363570306161719999705341310676839891206822884569058437358567956088493854990596392266498841774602302797831366439423267313437857061395185797630204741888790476828178067471926744754508859799308470036675378389636731970803663360734839731904876318242339261032851405639799285450076682001111779814339364811702634332939931968637532683740784664257850265936362289349441192177383828156350854400692229317169867086812401679063198361775205723321117496485583822962318463757149309853969320458749643389881297666322680685914653001457144021444161024912820868261964913203157277284876531812318114342947856145523343311920347521228373910640702019879867287542891233373257958610287044551007204747210094416315047066760505888173244231274427952769883836057930134690629576461802416436872805694179728524082721544742985277849919601388916091372953627041863605119000491056202161483039078570382369744769775408551331130847459337237090266139536842317090609837189535404826301505256415086287753869277636520934265542889417613962194893612111076925965826471015494656595958073472295537068878485634024161295758012821777197423315493966132629937500292825043111939739606982631213764119538959591373038434133028250494287632423183447196761390144635587895947417685484183779090193554288816255271812650915226948513446042413329433907020875437388713425851134274397695976734554891293099498417065137466222576148614244375545763244826558385441714174080670383123329402582365459366044155157737252651192366744541168492627164257217795824631076700047184131990013961287414582768983941132157927917238160707765252724137597611771038776119583091265066232781766875855689494876175932553583999065228937474366274500085493683381015279027442887303448040161024962027272183015919794434394526206496310177756413266461723757567759553256188872255048933919682004613218497081826316664266223669737812595883047576156237390170134639169999500056184266776282513933819176587061437956529602008632509318733830569731913392986839662728265874769164066937942101573426378405270492658577758864185907992301182808770448748315384835166613855265238119366564225177247407827480494149983211917309949731111338173080935501329731065989472705243576499263759814519430970263314271783940399257564514499972843897009209750339850140155774569729870083302940047323131640070991447245738971190144509661157139544868428582514289151689282832863094245589500970170005550116508309985330031921900565721152351614511148927814142684719816335700836464405153184781415284079223075674635883740157243013525075076988484789429981582877879575479031355447967731042242664035936350527544900518379024131773337864898986782379116422750073999306045091159743119811733313581862072122816235085717654392094318570521214629538803859367864906928181488493244991236230031131068144744894067439407876820307345918945150575304737443099048336872550329420963660972441150924233014904476617683829792210591384036531102405810620264855662329157461079920226602776195924269767519759214685090453154137858628504512779086538448131099265911073265176621814792958137485696846738575752344115487861194616041022513385751907710777001829586728757334059684885079359168927853995120982266654579840414990263154801926056056418308510094706973189195169550785681090264958459446382544470441173295115739598354508428879374241006940393376530740935437449225857097192629858714569363516459728576618407567448059566869105729693965926181825823913381380941779112889881756685814594114982600855813350629291330205481871053143364989777218670862257507187485505332563474568825895711269606289541692727289356785596814044883772228743342864548661447566236960682088443859812734009308157064996838400286925729930781658529625567636237944193010332206309271360471121115862045536266288701894181247103852236580920993683660997507499451165346702791746926844230062460686816125686929013578742897240930364687839259811969365113111206128621562604307771743451765428447211956468986616052537755941574459102574704123167073509048143219796135367635142494623268829917304829050204067686377540873282503372168292173816889344241094806557805698151785393107418786742281112440643994225389583907484182488679796031553467868125191672146481145244805756845622607923319865955976132916665367824380232921072276028303708786468983730244885097957471843795026982670756345576149771529082941511547150340095641409377940322555088660514803476412310572131364863178852115453158932653584548267937983948007416386012339743692123836477580550502986669907240106683760013658320251762095537051231878800059311526961056599048293140497637052896065174702543858703078631079307761491788054193006618022326515121685457796646302329518839319187476586643228957100057514226750732011164448127469732229116330296006268234248413681555594059841521954077950798361121285585593965527584924580428910209712927531170171589149177777077987892815901675833968291407056662060756604754458164112303226894097024233167572195119845434699744388117241931117899155234525676109366063234957371498574345625768773100099767871475986722981061991474828136477660506676524082652802528018498342222468467896841230812189119669214461317035777255634501879179479174652964311872760109774987203369564863872913017367391211662917898414316386778584853041987300920201567835208904807622838754291384984092593664522341095768924036885087760704079783357191869334161262049540288179424590817321544587976270427185888747623058409212109285124965011312193369658910988828411919966157633920884906629015938753808517235454782665146996889156659806616238003660387487048847284097472104635101563337085491266049243834565861799886176897101174209062979075943167485516023672548466448918819815883549211421347437391794863369829657770299289964668694214829069579860906630240277109500912488416681774956669462413852790228489592205847677637465201955429878607971681104587019404286254016114503108108301124028861256083616220969433138581831369455453722776911547919393945399266045005669466144474721225860232232098254637235183672994011264672191458277155963564646409250014144812674088548253948593504110897985271571488369842842032179236999051622381746032967838557705718031326550169639753259400779732488322069967315128991514260366342587151883909611608896274969001210724743363651158463399990106074562449910540763574622761972012402690775161389993250953250012562912200696136405140841528170276266842604406371628421363630194234861950211552937484753572860536822031801345860089506415971893513196856861129673503896592754492994307291779255388327211853838849348760802564922052474596992876457865466683121265367003295933680432929412649756247321416502896133395564056638502238604280296739449267205555588498572774627066872571503898456312039420119514944545980957455364115613344726079831979880620071292071840951760484648750438343394493179024337581421283531384654139645569457737004642987309170468191294853354146361675878669451628285439452004499559705448750347360467501474930451712027994555411688323996763761838999585380073280012153175259634384728882003631935664235942167037845827112068372560166358439011417767836888432934949569021326893784852796241545631816431143456000999580356937086043710982855750570140346515640794579494079122632495533529763131152213349611174558980693559986287890844489533590347956581881667169980146650368561289820578893938918230171392412095527475214556710588170044476821786909961089982359179937283632012006336054168841848678038751996279265638729352923857532304570654587965973446813369150484675842213531017258378256345261311988434052686925405698896024201560042564464237282840125235354536464438092446484542063215463287660942597052463675155717077956916458327152458106404159808340157255718779779509429574634633989862608583733844615565075022091308598064195963784779833002345026226935379514653910320339592663229761904317794112845342325603447183598648726151579077893736260526897814730199833350931403180266614038396035833602192321134903361099563570270410377372086925172879129662395348808229741990306932995533196901100805042178536901761481335856830771889793687152643952490842420643786085155288643427378147683056802863295176793600113212644351875413563872805002649725539450342825945169982107919862873145563435973703049761927336504223448090740358823665100085089094394819239070717677463762268384173660445415827993746921036649110319463765683502226763013610789379679085393280141963023632779434380148067489847109535840211786469077744766425673870578230085977557138102039034541971538911065754824573730274378996168506512008969102980900326833207825852424263299613668015463878344443682408466502773665644908752946001872316660554238975094868646162354347661542105577754459604818141537378016520752651562413681303906833298417924439642287147980179245520296834377212302316826675394231700873122394205995191667454587023200188512326077516767780687737590136142522240547325619124114130513575758089612954108477023978254930173625845894685671827491893553209724370791712061154633138536181056076436865803126238152850832576422887581380733821630014938699971615768023269202662875450435608928235222234330809186505135922505337918548911810908579382038980632218322842573469470976960270249339347442785458761935061826942906313749414027049355376191084907584038734539808327375564074727023658945546473116376830369162413822500004924889276636935183610475532407026900355237846927361619487335208760563874956612872196980944789595490785631282367268600230802542965249341744791884710408836418205474810829220268187411981222598297135084869987470306885545072052798775003196320968476558582232128837170137853094220006329138520096945161496307034780249688561151554040617494860999505083593472447071880194391674203487309813795160296745103698389183066225760792136710871160454557536871453474238292872796163231570131001114277513766471833467182504009082640494933099505246294352431670204951147386232972434756201741055465313758104387292621720672948418874205453842154446777322386231255367108904371075599551096343077203860283498292435149590237913635438608257716213857815314790257387978628473126645106888801369680403938799743710170596988547737828866596955674158166022901474499057358882284615284067557418822760913502535582427451881584639493715333612952303013361853307648810370329366272442166411642909163298610248210591238032008663545120430639206749023710321233040149811934686626052967700095126435597357747645911859377812100900739410985928458691607449998682394522032875211770009480616617518549344360709069466436090986568230506751630085077786841730338211049924545036572873117010540846981861897158237607772338763000370416799148413797103455304294319530018439237870751304130528938417506081831368508400289652275923474299978907355356313781033800010677818165074398626872764784814927329056757234423814670443026421461740601079455057613589996916191136573571567620120129217501756102960613415744045388645433242131842528765117103276462604233731019169056438229325727651575608266535588189095911051492168852978392283514464225874773510044185326690799758011374581861930980581928384343874689528128141244607028491141993460764733380559581450199459616526427058347567623635324540945655767112348260266807727762126216237994364138412740330884151612443843374251068599954185069281732788524268361349470602396853807031742097374178697334303108908730515802762726851435612125621876232539508405414455716130676832013508680308148511067912842742653256033856795838063419842384043153520088042504191129926744316452140789899969629445181275566513263539774500399800265778483740568571369923916484825971580970221835698229204756041080911433874779824538749825485024563275371068613731878460555834767593904612712656729330654259608985355264650917294892444612545518276631580505763336961069503847514165409204775246533582418955831981006295928397573503443311834990568810904389291873000531694191640195153790853073992076494374577913414639091252208507541119945366499294776267933766211845779868895635958070566034199031384699548246407398522604460144946641303565021333960584752321693191041816251975947443066485469060133963805995830595130775215911522019539591169961184233807239433840633882573180675568460632515691198214964073785985915030054487282794053703743807095562985871604011285866083675288754465768695515434795501349021988425218301073825841802288501729641573221041731089768145742816878158376597610240274733007098946226987239001222357217554805464002772812292262158866607035212056190051624592943551081879837271157479754951720591867694130989476882980888838389341629918685490998706775012173530422809850965553379949293418892347255388560359574478797730397972029150283459105842453748706737910528122683494701375916831793335413227426335030144255761587652604771384536208371014077061128677013215603238296186138294738966825245559686956322443972769377784456184076237055915657103516915541867554794409668362979487879099420914345810985116846055084261067222396235304598394891834819279087499535184712180293329445359349252688252467874824371477020908378285459679002126300010186108116716771815255561648888150405310369995074968312254194329934086453573779588006247010423344236602793161421344808383825168898037409405696692292777597211726747619396413151919462258678954534648068975662401410736150550825189185654569006540746024425970294496171619573280020673241590876553824487188314564902109917674653880122672575738373335546274685000439070383194038288923620308656666358998342251521282129202362346730639385141825815130924828708522474165907048338678253439054673009611380221037712314014739299337927459626449585015408372239186804218896693803379211901432113129807658946636955124304499819861078769804332461851271301888215962778533633738256982955024019299363398433882806888336254299049667863465725436361841140689394581123744005448030000375106179621911089223045676677743010299960669404633997373707437086083806434447500308685840017930069159937129665132564328535620794744321442259134039892117818076676944630641111060331632811880743689573093443427839903596232653399704668331971338571139866689616716645698905449434083004299315195841075586987121157743145117639111201979152750178614781854563454456752196791349954986515454037290755943982829559463092941174463661708318597962398623454961969627359537401108375410114735992906210151977928148626406409840809425022458915699154389178096164615586810300521082459801412278289972093283525629254833391981840476936985678101138227398644015262603502892632808550724286119146664894046864775083182914413051358165960064246009933466970670431671002815264840375030327803740482644395446916242772949680276405608849762784185499488225192767610727347509207332731001524927785675028614275866675765645433430969305240010487643974917293397600060895705804468898419852446664344862472379920595540616936915748011536949471904418236551118961549194384314012337623321239663201975195284657983344267311954097450129983452085696963207556800463637448998775558292331706787106549044065935081380356223929176585810232830184342294594633041189166820167056227320361521832270270738284202399150585742380029532412653880102544674380827738992563966465478572186355507010572839400834014777313512603748445488950152413270999834257084827721709526712574632562360396255991298338316352461920501261991428706847730259502063505993264831719370272423670555776311236299924550553421090680640445063723312095003771759399354422982378329471517870117022689090058651950636709099126543528347829724031707316107531935637012048265845498861618798689125332209113462750292090919900970451801913626081546216333597482644923871658176496007210564174865682114215792560429482519009200023857599851996019402094811710335529502687650688659249982165114936975267956171926155358983347087507534097149318455750490692587552972919750667700205063323639626962855207021015628185624582956812464779531578057625693997144850188197100042436998819067679623165681183782381393982132040510587504123716973588734129858946759628534502330723434559354040447801955789077357956369663575340451239767755772777157310768155175762642755395389446329721333087101193721154075301232880881953341787998358781489435546439962278700331066111192780700465200300061846996152780934210400947637478247449100542280733913264559412510626000853765608873927646233038680869632889230747235623710883663418414990055391720040975511270556301396354788171245431969923962490850417005588743914007362467739644915224983751402341943993926197483834737504890633913277210201804652852890288811470205953289889847711635372107949042605747318539490630596617414776035758822676761116037147897877720177787091225835133314634910021510080569456851280532560798673918607708295823121887275804226148267845229534499967848397269498914693061021302189821747518510115736290967449986150613117197422922096035725780612745563299785499941441775645442144110513977169825030252706560853701938211479194957512601928181235056075041284944848981740389386462110786175442509906765674051045305334547491338999003393733919851797694483006399965150178550625472289334827429700318912925542502925059360245869738600505996945024824095263965639522453766126941654617365270464957233823837993807079664589971044066712122896656550898883236362421632458309024366377777326201730415223139432090056056299037965522470522066276242415728144346233656709368544857396007946845814475375067813709411255161505001031333939011956145844126857647729941026925740715531808971274485105755451317863461496612592630461833523739532434035305655353652589164563421063562430775180320150676825703733654183556395855205402446983156591358016391588075408083033916745459148242080125773559259214941982403574580114696991210905016488421714310921587543111236994736360631879921751106583717960683959844240227711084795799008047184164488553146532562286308740099498587318960739828635018326922579511940235015217462378660452621918924643567024878667375715661371963170603231208519979679646458585287984785959996454611293068518739182878004517145162531489463840481368924288145124042853900614045953393438586573247240159407937076675693950236529878544238201934855788319896517533837085635830950710262295710488531692719967927764592214204953706262182762590671059811612980018269919902886171029231261992128591164705604376146111819628413388313689235851725732185704202344528414069881016551655748044513457197723820676862939753297920022522277777774937212315717655922536901086465211630146973377555226068682409382510940256390125642733618355012116891260669691770758065672253350242558346646223761894740296879857159285738412907112016650233957381252805758136868248856845064171239869466054732174996026193203450235457174040249506745999516809603081057738742098482071078141508495958913865929850211319534444519217719436341412996289989844277284602025787333594962239000374707487567570915672482304968708219061299342494431773458355479046175384657218319093529383472259961861625246499263803424921202619793424473268632535832926526262638689535147988921340921939113056305122215822606652715281107732220806231945081065199174335424136662664946799016533554029122910234818620283341418695503799739319353158483648283910770552481214454173654895936941724461004936268764172966548411796946330138285382926318746205019889141834797453668957600054921657604458018493444942869671644586857498334076363788125896464530630444454987664453521097708160853591801268271334105606820278476402227188478552649229617713623255578902605955951643446588516839727052600263098080423588794121704716478649609782690375553445277521162948476108719264114426497035269415849038539125679810546641183440705537843537639407343436015064906271263661423419643642868278530877151787005971244775941217985907664737828965611241523999008012087109435274254173114837297210368912617103677937555020939118237218976450113648620266810262782598438102462007384492477715827752225939052573117134440781559954003209050565171381362644979955139909160023331763879207778635752927433506188047431632252789689344741630842649627904272259533616565678395376252380646902538335541149004619434063622062396209683558587110632740683566775738019830270204774177776628761531765741330601305727623897971971360199536382207646587290141797049128133760833996009442969674462555664030485750738189578494837147751224329834394493490003180184440449291931434604582102354225491444689368391109532371043878360617306609844270241556983257295555597654122419541344832423247666177288956134548432403123933804178681714497973340688718627778765349103826930285886599594570518160984366977172054754361708546185557890583061809216187211028673699273667181886410335378682268447783079841034462944330738967949623383464578171648058675763507693928704195102885973139764622034131252111641061729438676604193338926159195538796867696770037254138637862205967866410817004079230639572863007570787675222243645343265311654994283667298485591510856782747230119388757045805925435751542308966769402154281360619737649400221462575597803821133276059487385229516781879118909213026344652092902508106777916559202842955341776286603515687770623756997685079232741038484418992374345077219972118722441494817056081217360592364520195784839196768998001667253988319136719530675519142759488342076391984533148890209260341222964076843736838140546214729088272638374685137639525195708883424709685332384077750503275152319686012870415462139508080956800161556392022132262745833346368564624361648100521495303190286202451576405533338007242966524288974010378130443143795514595954147128070937570244731365008696330640297474760090276674693751546727809866755380093225518729863562646561516659313286344926704155027865286684734255841930008081902932480836016768299379200177587372301646488034446083555820249834758178937972938863958804705741919844271879041971016962425729486980633135938062029697703815214289418151527660013490811891506005272240984753943050380924418029171786386253202625377592233138503658046844318765561546137107020250761181436983458241785141669613127445071299988979563519127974975423211116786603406644474576535629691666325179505825821364235494864417483062121939649096355545528810050387150007528457098969317817011237812793800669367916854089472105201729306200466163215280393155665398781072774281597447305781120908671716196119753951521161480050873981978684495763647721274684645341185312883871419016860472375943273603401394553711864031601463216399688563757074041172237940548731892822076152697459042812884860432739979412565054613560685963828949654170072681533741066586458896025944799843525454945574798516352336745710591949166326177124813591116567941142470439101880773201586087860412915363917093646874858031503697209672327145127657488208903524174962058970764289784392771445737797556726597584422539418121515561104573377687544230683513905879747857239319760858141117106862000566667674502939918575707715529344587646887318711168129506758627449104868561280861879369502256939084849482894731631337908910747180051053167035732256519481478605508677108688217856845567239914585851627022841070170887731943966184904785239924284482969347206767217871748772862482401130363508620464498685768186700157343014981836778064011022522390431674859523774902023887142002888678725535523707872779337764098972104696227659920455044552347295829317848320159363270763590589233332708424132492992014273699608794957071014925085566167577867012790564753271386661500382480096832612881796367212693236265397100509212187265637409227492187075305885133045459440433731281557240699659015595393622978870252568475565656561951722152278935375664052718042113198650879106305369603501323935866214607246114002052173125749897360882541855890670867891640614232480408051107185754369392221155750970705674828265737916323865414915181615392415223989454620335348150755628469152645151306654657049435605555235689922984604730870406125144180228994157695936472766694376514291182673567919525261720307146203955033426707368801962733204310279058386526528852854087625359760199413118377768368999207043662040289550740813103416154054676919243804477339160264383025539357471742587446618507942250984803513943474239705253837173953800017544524768587525326053187955145240200782252700964420819929906250648223215423648557839827094138294036156874945990787575667143710301250318403722081243241670573474627207020310319007786384266005053142781113311070361696295842418614848938201282111921374143246723237923629316506849354761908979501842617252521424761762873763369199794203315512990953563720312825726512938493136445990334550013942115140605732676661252169823808708680081682227798533216362405700280471419085594338177568063734974732482163648392009722934621210045170427058569669218770326937128033602695100120677291668718719230539119257226682101273852569541500278390350476792801323672849789202468821286823338286584968507696244001793015008186076222822266059439049889423237908236024866066248935043134029804479875834650165727516799207461128250115529695459909219061159862317064633427195055897173627786968381684529402380579151312136977445959116098456770891191936236863635990465221364690288736175428475352329033385104100542822653426756123576930267394421335171613078874778803781134784615397842016584571499944113553279574054479392920415467903998569950105218956694737542111041837003338393113726592444638311864337474622606634093083029526496640148415966049831483470511505937333519147712599024325754429862986773770222907169602302223347204511709778687933777991910877212627709338156824800283573245556782092171842780572336495895368846985800351019170416711527279953184998721805093991401233509857325843588088875969755532085405750034099005851260696961736872368769720821147953026391989984396728183611605858762956921623079893074748547440351292765098738846184313755743048423744656784576171956218488304410357781387629231229759909719381052292048337283707846797905027379117487043121574604068015340805880197914157961032879395966268124362178245154472128115354838551304565433473460848706106398032264343556774406635826681193331548000753279699933551653568737377150908011700290872583099879847155689381680562636052527379327399471352132320859647242554907014135772035880372691013544183521161156775772986529543782553972704244656760740636389368318692690064548343341966264082328476014950438528536869202852183312008530648088985857804142950667592814061610042590386704739924435415140117563073528342733526628880634009400410340586411532385757462463052780804239416329871606118883737851720441150404016111252018667991016413892616967655192483164249784511710880000346641256669803795225122329270530815774666985429031195079168172431161710407937978568039589056927046988515481089433838691844657747606035665454066927881905888433932150074485960338096089654539372421924414391485690866793347348576621714872059838808038452468915378397877055499747850738920022356548019671534389080063500311364905720182417552907066270419419155701499331405631651228903837088243646887339496409812822892957589862219293145643887282411020841838909681772947416261866451037293224740768064558081550563102681662971259963132039455210681805434510902732453436475552985747474569478834733148578170866065303012045994084333007190293595009189899169793657846443146976349148105427676922501576680224196681047745827045228831797401179218609281010299010309934563820632555000819825241465253559133430457660815503439874822816872576776564367305632617889918441705616831273364523228536752464206884404823353609675835619676905144352969495643301720127998497744652496471246009120220440669840761960432168146433915738099505885506902645702391801541023369388558432315301760748648213105335574440763087951425724735600281335357666795328951333239664943678374244950744824951966120222095623869183770923878420977356728304441514050663584013750691385851663737392114026591814480651555946976346609981092093375586563220726114347520478950418063124326535435701189054741554087700367090514049389282315778655905523016798971662947895318041253409669696674284516230017657899715350981844950135994395880070703964576041107288628945343803573604011568231955853436636029811375457060379350269880543453875217065107854431735555006791267977248274851075079109896944771967176942115695043102983124028999902042176135927548634014584719148910624841590811061655948669465541776976638076975901193727850896679487310149921114800927810414621451945197173016627367741874061168509104349449719314890336812844740750913341091311045469281620554977642442863699847385032207384180916453793251195575109493610432841358112920684107535157813107022726908486976966165087368570830239883987664603782715066240806972091394830257372966214558266637608310756728130182493096737932439165765177291191119118098726580301704647022395059390212300743817162835010625816784779110254256324829727598604730015433284241937740166522895717571426767318072497546087256982758981381686386321530863894179432559616080220458679120258432240480622765193464414635386318346349530654887240895268935397736236923114331046254963272551318207467206534622923583483582992775413090143907629329667686927458888987561901369811733839277841386715590260659060194653208614287386426926855844439737018941397160901819633076113719012490987570344109929910505988987947899848848601260583143956917338633671374949991066891258608366215881036921103874433889317028087401147386173662524959968062052844310759159998244602033197579497166876315454885736059854275204367168510616721602230263066022520743779086426231823956640972152875673455679488150141274816807880921946971666016304513703297210096029584146917550649874989466641504555287360780204760277529770438402928478634541984259553396019210133954765086001703679952363428990768479366091456827399919463906912973289397438103974693187781550302485738732686611615011673853396579678278823546598671272168895842510504148881548386169018356638594517706821779543013459315378838331726879747927373444853977917243357073856464562402125016167028241034116199465125092561770698672772950578998840867453367760011874339252346867910401326175836230204395259821701140550686998740638959877582106431474414422439002307191868159853464538235970326971013400515015731342358348150039113057665516706636392040915530179472758051648303911699656376070280330080468582842385652396187371747268719947384627756481582973409646627742156850892187461105694903723172417525495885373979016798867482598029696445868974033034385429012520848723371363033927806202595560541865534303334643950829727363983178216015194305614462332600585451472093082294786489562340957663087931233638184327837662793974185385114212973637429684067449398042671584997613830032559666942539720840512123353121137648345753562682844288358939911532389776875347838621581758772369261178347092426266634082154265900352704377878279268057700517284908342706465324957695682521705602178286651383136854567893737995541395779663305873952696144824794338724458329453027939244476568251206170280395458319620457573544329819487912439152561304577394804012207237519669661977587945589023188731132988591845195258392954075174369676463056526620094743910574394033194631451505057545180670626953387478807504516596592111176558862883911564931070798866833046932099630215022378216094587883711781245144091158787965137191004212654834051163200316130343966481566769513469875147784896121211732296726138659156565668914645946807278187459642587249675912080095353277405948465326522824737726734713671538415268697672627679197799902088962672756841833980966215628364072272583112540086474655843226680758133423964624370566646182757637373590742381296864028737269165669570220628803101832610155619277556639482272469381320191898099198124188509037718195005273848140130252023179662333797015184288770478841536868544149067625545761470622325352427957272079695070030104076504601795418415646873807765707842796490918351133694043049426399163384476374273596038381798810396898005191507052342016708865575922825725143369054117869027071838141808787629565783337749037028919165387039267070298608032721631259850573090165025750072013197776942344331894513408550766410352324213821586572862888253758060898175098749955431071046219769898497495334966183034714048906867457941798993053037497822669533826240728296334987683896580306977715573369660165362613208550083536704009694279640199820244797193818041190961638134172636369234564805291317138526236539757678853849098708779164721510713597581842297502763584779536926118996132073400386267048466830259705845349656376271003496640695410577555835506223811408131212752214709159974313242884436467886576965122353484734848443795789077653650958622465669222086922590262391892905459400324295672816010042496019278706048288357290667737574903827264180770570451009475423136838309731505527955852508462666810575798251842478786582980971569669893250528151787072003083425000659465065556865138051692489497928694847050099021642313381490635999512248017234782940235682400082357687838659915686569997579845641777694493349384967856478772127074310269102656476848509828537678123191557482744593048794998733634424278253211220305479905209398854790181029467042367458555968589470026039388723132313567835186702915198986544631724335360224525025935658668085846840778583830114511912609091485975484480958612171192030973104489779140654381083281132404990300437258214949295892005394786064745918636404237188557608082615533290706409008620738856739997387629221999227869922513415151167024300745962102222659799435849795035551790068862106582327419071659369268688482662284375315617476195557065278880079325100601413487639554608760162651935533013893269532193118839707601420885125844122543767579533673858994827310119847189247959627211340347456572331334821364615051960613905770809999650482686552879526056570979238264129135430014545801731977847912638142329347220128480849517226152634442751923804043901170515379323231009466545476208049111014204741877905653697413614771865861559792225436913926356949436261180505832005676503575022227586894214154267978159051017715203541612214870667567899349508740036538802389373684466182725992386940142850451810351657790830298229173453577146427603371639834461294353450048198624771780759419601411457242675008168951912594854283308321543483544156611859162505996764312852540529167451641055934505944380511161979929856307429719326162424365070701447257168899833734897377956049161263007064200837835222759872916666864032883047165836510029414979811928738542727255036396114888795718976474882147587326768442167140574013883471844411625408699188858257160584334717888059414460138592440064084866105556647081102034984395109521285509153511068956278030848687392546282246107974227362361337284587313148595798272227234679062474906411077393362352914548698063560479468158375018580221611461527215828343620430134479914631763277979174617652023720041235674578862147782239743837087324462023811911212078408229329100919707673458906697469337562959626172441018811640479581056578831158660303683980721638014454015295770309290795203969088961179390298350448854160883854828979290871218975193636211419935627895791109028936674338883368902878726027987701754380138352116451800271048649839251366203670207182235223365550813551659969953516277108602261389304605689783800965133528081282213424634739644854273943968570530689227160696635376670973200564284288277042607642405422213059095510285867358381506566947450589211508840850043827840148216529574265257496244927238971761932964336488929361354928706981125051497155323039790258418245328056220753833938371848991982145372056813908494163337001763715791779275304440333424097577974205882979262890645529022366898324602362157492877471422540423612899329194174582692582542427649632095942396718294007015614245272492176848814758632374529172264964812139459451096082387119406699009878647551255152235260937379502126228323966002118264495412003553048952266699651201134539521489550244757855448972956476419477114793972180297935069005554999057358130648352736283976406936435883863707164975920777261341220687387800892122151747872491257880183433999441767878323994872214861565446760094806727276347853118484970656673535110496723939508295164455972879571968567216605185300109041963569698558298525286558853818779051373461806020835672258833346907875370514347572368269503825206995317536976627531789618726107426416644345991332500576874539120435409796899249192929802134795186125652140041925719713605433339451826156710069043844349853296019322414643389249837905206101495340445804187673179550639512595598661399104936964451198376335184474310827644703292364547119646744010630565363216155156937712561452621523359292772315108601447654317880253987356784868926911011252524389724797496436808847326931176660277388849088604843706639664076059823213891454026569787070931086770807136508133092245195405289269651214320173698632368346836239050443378285099198135512727202274908714254062817918975962210684730957317327541972639377964211941154221868538870493816098881252262965139439605869449218211571636058614200700195288772596495500653638317320374374492537661111862158225680098691235745395498016041752899708003877259061001226470522084172515088972672888535016906859252392654918864251648796154447396068260439040213316566724034803719143136205415248381959590790234552151995221958380033211151390434275070583849896979877589905412779283050979303129981163259119785627297196828700230752530048790689377380234943201155861957423686623253806444158914965414207103330721961093238538148588820993737219882291069143872399616812216324900027677588998151940827527825698181927961083405676835942071956793541579086502757597061358663174304545061319759524571955001683157337080022639634575371405973182296248703047061849461416196937668952551203432357369772393787025109430365870725409677545175705185339454560363999007053447973031101163747819304440105822103936379914243317835122150658768108472062801122371419073670383860644480472940883378267789127178333521611755627611383305703827535559823186134985172671792817163818257231520707308488096237175313853228326060655201171114030161000396059583621841815362980564009688051803413515340147025157796133927111075130545539322876965718299045612924817603175624181146391378787161720930096945366430836612453530626453420151299047968701768106072873302616396180246006883717131980638556802285524109751824581433484433239759074892621952797859150474226940856132281472204935727143500426429555753958622613344277660128391569132849928318144402248107853314365082185676443311792079025314577680230260121760936872984356272173768080847728295913042967620086135613075480520986383745402154973621109987996839191001051110122815807487398247198472433775844876273141256959922792160148943032826873300960754196720310240467812512976576447816799650681498564868118298280062331418415700665158328470104597255651794946384838241491640265080589206967398536507826904083031513859277011221545866867786891639161614637957575608997001206912372354760791969877302299631272961879109695441147945376587204896055538407625323779171906490556815446445357748017476630428632024531970999219091574460482982115483774220372279429829687693582858044885130723788940884417677545048498408725646188953843874827515511400471282909956246656003959978219932897348972091834186020850380282469492957885111047886938280502469734063108588861408841111605084904082780696775035248211161449621112424307097567033708444125703613481758470532898369125478141398807759902819338490263044485178848795659464445810226865537909797162883544453775868979771089400785978719542817642732520203386416113178381428348099635080731203605965633865814499374342606812363400367761102450433816591559707424765687728610582406161271506278490912273363152588566317062376772198641041066433873744596173261593988739691748218615093992132525340973186222490126210259372623524177364050005748878910338094535067519283506174573537003796798991852927169039316624384106668155851086918436045458686253770677028846663437007380313591586008544507274033442368267681531073676172664032398517801719028347417878293060055262686877738620243901835245337708095893204222961335085734848677176719107829125086221931366674317444681524691718163111708895814403536603027171819511569895904304741299229261744101679063467231674498615196794063339313953227386068701416773950956037697070715300865246896043696067409706161922136261542321307800856891342089805903229609445643510921986250431631044386262812752554777170042259763032595749823958740203470356277505157682937583602883518645685750450471046869524972788431403257228432505952161874697965738893417507133199038659061581798319697291927281280517446252588589909990808216724392922483796265759323934274244226007433029912708765439610727316362728664731132744724761366698420640057023336954592356533879979783822486311500198743994657463593305482486421708765473942269947898423796945716068954480113929346992408211665065173367404662590797277537769510229299565586467461678744643951405399045478472370093240501876968548490906118847377265828327563480168437810046018664129403503787240566063577776560542648032483723273643851004829604931508988652751453070548333434975986176593549042497192786728034333726316967054999954615781662189286826512513527257440337928051874001599566028723239936591552261678788998811108466366600744421319371649736382751207435033977675562823131098388968958403576903038113191154500350549919223833520038936416316759567167009316292407135450915634400628560054724499769677263124408212110851013637609183878837935012109678730265442299415825761138947789637748571342727878825174233978952543525219123856768685274495859858520429421706549466629055522338919740183194104787548573212908143989009859391652277426983567657303054787762975715973641422906987263660269663799649034831919485279983201489324535201716680263499812381302632616018033187944174076589400381992973813107198376224666399594164013322649325261875584144505123715168132953152844065872844904345089284686016100134159275827919953397765577731860670029653739558827180636512929092306376257564553697281691152304276620281160158337568121624369208046871417632464182122029417428495643980618694664853062776460196330913650806397075227058458215566404468364209970126707552075242241668915996953100498952817072411451576689369319489206412262532327022234741322279368479751697108975343852211464259884910966127999994030029944368991708379238962002754530205148677653713269481701985577286119074909895264629119522128432394737576921597270809650122542058764774844920943917594367886692983901910043585145901620827558196560791024407383821862501709208717378868743106050735443201592139346480807894181667143757853808190496592105678967004424081411260350370077672445868696923898859831670177553507859826827198294456839920450379988380657265083406766216367524263883551785934343686930380554925449114827734389219020876477211967850929945614650445138496181753759658915159954226904246314556726707128538020999352618737258315847855085193890983571603819993850506798398552447694390730492474106039788603594303051684835727566155607046485904560833497835929267129153825856828699722691837035873338138364320875361351590826469128749172010838022809857565272763800131181945668114122708534693818778785297476384057660402778166056685681682222704273453568469662464415928784885645274257876345162252917461790201121142920327265357810151429473242396315333096711492377671481222578645227612655654806987201807333629159265959794948734632091397674918048284413362910391789307637861791470319713385985579870110997189567756325780712722054790529637425687294841522445284282132081834275763669955611427609699556503162628500909125242140620778788760536746605803093192621280922036169653553263691198755670993938128683243934232340616104924124000219405187032715736487689560359663019368919137086938364565976864815641467415796495964890040772262132499828002267369603440108566395216884906899267528095478985695233198787634732242248764845075997753813543485213046656384530049419834289723299526028231600807450882550769887842453858579931503948082944121653872551461357501083071873034340829769661845154357978345204328351786501619384161077706337830370243300203202229043287434181492810261874934197705857592916049971317611565942540965955288429534994031813759209429992453303878185753839273280647948915065632917210281891183808606587108338717310848232983233619472712233368354404345845794775452747912079744489844088507711708453271606845493785564666352035587289079674384541948904587981774324613267758736369808711963626029492433475771928755057250901880730759050471400628379878005534382454270208309799303242866579687458090479400123390410146196979394274259150446866277782615048114560821418112183366226281715407068943065311518344656162205793491659359601101655761625848850908858156770745207846033434618085457563812358408790894970336052769568572846077193305504591596896685332673743416950645461694348764449825648757343708592570722892544906449470713073720825482636390523971024358969291409675721443180810884911760528523645637134886746262393114675418231054739508333740819441792899070944457024687878641915844250481007818301129789351353757617494188180597205391505532127484605859983032647215637964844270523337485790586024441187455318607437238536195055010437116445159587242752544242243280619368029269208914080765026586604674876143227283052119926386169115921388988659046216578798252190673174987990007822550653262655546222487326834967074625243519755374171966953090213419974279064985938483146708909060181561552154473409786079843188788100876210891945870994456811230853679863055348389422060122781479703695769417454602486541714664481071742107109562750015910852104295266221454450396893516115462272173992893338276337097057001545425447868316238980947474070991811426748244332924669993694540584112426072454156739049790073699466000870185482921477865965299024978824299077569709090344599609824972688671064684540276929950639112767659052015841064518073172019137666014486958267450796409799922624219199915687387060573898101800986637503709706048384111581336441766543972046265719003056089187784290965417107131893889471115669220735348319615221000273734081579766062927755831181962466359030478443874270327263054936033191631875613984599141772713385496669363835943070015315987541031891544813553125267448109314111972941052098067256076023811171193509099908209946286714525158590835231196447663617039070914026041571620514859932233956935515128564596523920657574351399490253217068226280323400967449853501940583376896805403648252853438801569592592734438909649679320342635183393288878698266165994929929815620718831791119642454724480849259859305869478662645238179648288027355995385240168150007134841960223283279005367570792036877941171810663736203188963541996711598762550345481964713339301952088913441433796596146888854212211367482358644126017808546932736368570966609992048404226010645370225671194429050952142984485832347222611828463794396348785563000910422350207308239081776263889163522335970844298207428271085908903573368015116966668839299384361524262844052093893733373576146235145087227904725229699813150669843103252471309860711313720432442165779674303542770074383274419731918500191855313053392844208953934909351906832900573089246241988243159679572055281494069855707569755639090573406720345980694666464555642009357758972063480459294017975522319890519508720403075377231955274947707964019257993279812431010096930525437733761471299376383725201458183275584932206059610780113646305571622277352043891122342025327202072185179722643323797079010325633865268818656226479856757497623434075377513634903480409229433271029306275988116495966548258566772938259186398808956966961140720049182983004456897119605308010105979218546613642060530759355212901822093433114460104788522852603712845485718201266339855100399630184004665209812373554688585518603745856362895011671463194875216396855256692177827995339803212426618579299178783130638341709626824906114288031327946309816458796401152346633910721265172946002154730489079661312253644275482699185076659843748473205890372066739307075235089607472754813652156179937520700940160207977001437344452992717580165729274260017005729522439284178719304752278308971817448665849402951343844498363904957341216896200743862551038130400495574053845672440787791099307133521431834664891125861142333463725862074838063244888096564141604481499393298938281171793638727663059994558326127488539902541583863410298761009668707287750923999864670226734624347261660023561814901334123173523579659547651986031138340775501185695032518164618731730363674016459375372194975282657820353472183965350941797288046436698292458248610903139065730394496888465818627032010930578560905330418774093968645883468826319888063238082483468264317449792872005024583625000289116171207801258005028454510660999456375477965305241994381574669672219350991292612413289489002223776630787191380618762057278880650651965984559802952316720917809535959636730990571539147088045677351380916558935574880946663660636691641438583023351536162049341841096168353057537783438377199232520893639561193191026512753390970664079678190569523440410023235480482378193081837235684842318897950099975334209234408116497575082156276221422323967809913717249604020899653042214732339695302278706065707943082522052703100051107874288499300723561701168309486336596680065240619836962477574485506378064489254730294346422198809403193135705725977987655545223139027760354256958335248813706806498865378522121162358072455584354655785465111030779779669867857327643077859055057171583781287944990373735577994990967889295830766389727594001381904033448987804815785931955824845584670063269312077649593375395511725881934183515537185084464964547456972094291538335847424629424471189953135412521206003058010411223789913105544875317328167814231103978568195523954790006313658818345757473486370756979739149670302880602457394953348939168687517126746992891307648932756046806642141619436938636978207492686940507303829959915799521334262611663274398641016406091175948289707288756893468687262712388553134432199480012879260648698427902429455566114969668534343357310983092896977198345950206238527347459601582322956839797180205664698948146681715204373677380686778377465707539527327331954357603869788546720283694154732972568071365779554942683998875028632167698376325390345026566932274338431924899325079631404990446930267077159729128578584087850552602113345295886075207478269622551994350339042631263268345673031305309875323686224853709260417429688223455129758047416503234609699768344586095444636348010700381828594048752563306545981386698790051944698299058137209234161769034458948432539676668709022065624410926385125701247847120962871115206685061205030632260472851768591843945889062397837227516138126278793126432101191491729308124891717617700881865515200689541435739798583282923555623522867304710113080109059856367951880471960460967551868281962205595867503633900184322365400411728760161540601970589235678226811458160330531163579520011982363473081954783882255193007026119261936253607070777031180731105409970193533113842176530524329134065318570927943239160437502282311662674730831249585635670381887822558465457554800464812686242118259966058903166606878062614915876440019234133959426601880589275439465681090093459540505191294969051098960757359976773056256355300907358839379852843233731112495428291758553180402977428250763169300719738625004296071316259308180212620593824988989722364114429861978593306340197655344905208472987175267394576731970953578227197783899554305242731674016702239015058985904634156694278298137514934536614021871979466516596255611673319029959960068284500360565864986396120583352154461560982057637324804681025662086005951591550356685722674559794446773709426681270509708943528028995948060562723727836388194387184489660006229788827679156122150655200318060266178192045171168997031181217581129018428434349185364487063411689367052183088108600299993759686381328600781987952868247154524855244712930762170507579487428472793369626344349286842412359029039870377737152041577658190180582154347596345101926845313851704417020328759579628165459570537033750781796021803697773595270164743540641623171796689841856274561812333626255915812363770135068746681511747249043069416447950690899488941040134962692106127107265705636948701562789145321891813740888555933818931130833407492133268916908547079079383370715907070703653537476376600618251680133966883758434985089280990582983668692792347145335378816287346047868536058374221962764056469971934597571146913588607236113914480977244646434335890842786622485429354974321546037226235457828637964260350723793263463618941559204623393390653729698514349337596624762396761183069403728180433759021550834956926303131720537075382905254254248482487533462056936651390586022679430859026892711196629477908397966272305337092392215415314352788901540384436314486461485639790159683860523458879015714374833382029605077375857527391625945714761000782505427420247090539453057110823128240213110166351378634185638772669616469290036282681226189113702842613907032458272372910594529158306937720337556338945121932217484423742880997558485545554642565184452127650690664760923501328440765388080053503657629018782567298682598634514085215137372198817490417133933588238601841925287549291136976855375177257775375352515587908885495699850409441334271664816509237612940000103832971156390742069557424084225582427097186034490466172670379520028829487513676062706077101556434424858782274665053951710529837616460679324868784087492522383396192657656063751860916254386566088731284614699729439614214203490632569437339373622496636694598047527613521015356078917422723525847464682679144889585352698726247940174287216352025888170959156970346868574381630893272984643180058601285171541425149219437536804247539921030692439162914216135023948172187903870481866415607443440158751885859017041895771948665970979360664511625857471795257225109001028495075428119153710034818092382467406264003601620869780952241677579969652840319108045812709380013845468086306048310280175092967300867517419823939883341652202038080168292045317696155250250528772231714761357906147220946171609360553561361572232940088221281393112341624754366595290762334618488397975895787451195394052830592124279105551450170529492032884223914890292792311049799140322910877530449483741753879939148251433309553223888307277448528960623061728405187683674593003327112532458726116576416982906158481110089819682100114115778344156508160960772926479284993568024788631540656204096077611199892463083132562744205622249602436518003599056669224312249274625648109662365426589600213121806506442195456351868990876956068801477459074425494039412983501171104330115904749155766393102005694106237917169235954461470965747080391561964935585774917587509805504368084412621733457908864400135045483289987116697541083150167338665318181022243777478791031500907932217161385210735086247960690501037064479527950170186634732379110898853859402083457479584243551183554512469103226678894953824608880302656322965037816136231170394296799162718432666341760642454045415531708706869143996590114971795812389486927239486448650961802489981608317034706374210694772625418383463414978190110244551899995060066661289562406971306645751400565378944978676456520671620957219309465022860462516415704293635555552165967870384389668844227394510004306150506435689221261388345061061268625457681866032588736602048040712735137619555384176382897413354475541191614797411992242678458831236974391659717838798932314513996761890227804801202966056123341084790703345378307329400813038417591036275684968461936603668658329588003819290496395944550068812171588874052597219583192736729546865514765728505247716113340563909925548237326177661848724548217719618048290670810319325849485924969630940968749809299729969719096949237371911184460063943791618340748180506508435921867309328112511353169481471432163925058972675889084192480605745297615737428211216105611499797519005509850365469117255035346794888090198494652054669096713859547044330401544290942321548734691493436644916268829598584513912990893608949340825541516269740040314957933152879618787456761618631502994559136128381856840485297631056414222618077483337479635792327511998641459353454365519854356289581593743755380388916324723658997867046005133744765330605695530998785960511255536107092434153436616324156620670099984702600257711489372715770603791550764264509454111456286948721695224386728603740585628662068705642187111956959517636061446077814278125363875822936701618730072433603096791582805549337011583304988382514228571182456753766249305941609369780426030651467308072067752607680465094232901915690154203869974702037682219404190056576028531667591234658893135343019197050121725441704116674435293499724304477838494968058006169626774971220505640417474810647541976716221511773298086167521152196086925800977713465157947344611264321149783877762430526269978207382125884733557628725693580879880689151122182559130224027212785884178658853491874335245823872483445622058224684045997297206277422410323115589496716904219603743725951109308688252697478026213095977232140086130842952968930301182236676002551957714807403431754153897662488789014859983422123074647110705211148095898783652866159739912923706776279518995875967860988295096614989517091342678142118113665193233648513693307726090668293869091457547998572490967384379809569945892998935366829726786966778712477569954484563319741823058393092121955345788015490971407971266646577010812630227972393223403139954703690126023145116395591875596200323782257563722208968934869794136528299434888136944789262383829517704367035262926109909869041613555725908507101964716780265738123365645596689113755090368966368391682968861724958162428291464079692228708832534466353228180864254856043764383957091396567150234114121076093788093186279737756791582342549382408017919301207526137086199343005739510253117374840616696995172060685385275159342507535972815524478661830368436973248649499666967608471549318873358712908645650859355274254851616120840791657026801647573297524123164565708974383797772207198242962385531666357388709977707257844900225903173249858468004717658735643957918634974383223664090649766881233331332239784344198621210506166033159475117338182178632151479787598883669029062792737721609950370625609818546925633957407842431511297069068218732871394387176943598781643199143142836196067286347031450466178397673316200451703781686309184024142526474772570157590216532713438318573199963002327536905179335017123488788962706237939624303512293376430911897033932999502345799998591487571366159831753612843170704257464924099159276963378193025215513327684974362447831730177636206356992198321283119306216003679666559935981513244725824795705236549931243131610040796914929145777494113416715644818926796762778531176212743232369094644287526323322378235276089530581843493732182203089161696030428705502491726872350458283961329766601839113461572547386385212031173816143456978077569102354019959233130774896141902481579993811073199326585630736443833546602445641771047819012025606811789441125495168672627090084411268105266961878493892988706389645114195057881611910223483713834184713332603685133631013065397735001114003609965880901580581223982428323363857720007451437728233963563416905682109865153941818204592602472653160278839960544221286100390379357081273522995142275229293145890596994073666356351857492049448588186539316764238501775294424489081861434365350078948389612188266460667065031075063375716597446010682879407309390902304733823146198328226765806065098247167229555681338913317036996688008839567874419237138766804179896455762476612561810375641886401318496834380792333043229940036343873307441611168117368916554715594889201510747343161589070217931714750986380361857779266318612476287602394997178099765140371524211251804596493566196625546701592966049219419064217766786336636554498129529734869273364108937010257205180674479997464470833336366464093304877661384241216764191650858180748890125483045477820696918406147859742360481111598233539586335099953260244292335268946833652710586888739343281127090856079149166963182454253097062169984165708848356917875477073865949336899777389445113570360375435073131339314495990288170747382667831341764423021796757269913537549581762556039585078392109544717833807881974788907425523981604026736740114548810343254247216121491121545705715014334941339494660033201525610182415763336127505520359924858113261044866373276883920403799623408333718714714812486630150241213773318264553958002627525372488668640708219738171856932014371693485520086579219808925426897886747435328244663579249393252279570773196918518998027399185759546355958026424312717853063876161142257240997984721227467069197291570121365591244450790427680730758811732056035336106738792162399789447670013915574946838541042380822549503814186600295356522497166802337704548810228278058067170429427231455400098492515942998905050435685061149925831760250099939989016092587717878423291907464472847857996866618761182508563799250905312113460149888653332416851413161994620269791808233787662423896255081315037886980868304025082964545071652269527237642041377222960384253413585397243661108329982080116107486741915266681622123904204387028229908820229332394808188089495785820590257582778662093773315079520985026573229192858276718744761544781527430740519241460989973987349940747786135467960384858805317391543248776617173304672389259499200347154790488212533057004323711508552321898446033047849040116161140043737077541223293732937287204235169393566330262889531316010354128743355096853102052064245913894729994034879898501549018526230009478652381781859636310738242639862196676001954582970670182044359369944393990947437483068290262583786950436987749417781462311943306055776645094544537248335939417153011022039232807986331048189037858543866071977108895240440651253047815419764643670351968183068185913640443620382088740471271689581000889193750629970409380189486271656906412416460229530366439394661370407838274241360501781861553912005115554969090756964609217277225225960186225236043150884554701935248626139416568318575941672170238583463473560636655045903876306584666086469605220563370545847317029586910985393448050112039716245456080382367249555661788664879924821271430584137697613356495416647080460294282276721659041408311998354727808745021178910472789185712106566515406364281720345813617412015214416210710419405994043626078988065844464583911645595171650313304826959877678362531691788099719130835580219625637089022893251112418277911145873310216336326031766716549852539042066498032767477117744914536380735348328747029068973942474751383449261188087113970467935892369578482097153886259784770658214615617230399109086512359037790850085308964572740087798823950110857648833130183703583689306537549559250407204735669220447968100384946754095376458179792120496038174573032241692910958964195931308616562760281297332108679674054968586341280145937684664480455298438816722428639270416421901766516621639171116652611790128657520310623871894989871437920624998167968844483965250687315173407766524420434157211320460996503718024788305402930816278598827959777815740523203368424348616116347989371733750217038178243551306829334826198172860912333516133504749275818862447607050724184552947709309820328562348060297131215277475137020877367580626956346152543801090465306335324773902539309643940419289769317865184667313099230879675558375025016252810351455130943978979010059564335696444232115431460946410421824978197397164423859415269672216029384717182133951219137650503332419388006000585816646044719781465165959738182238328107784815256872045124211560629672809127846911766125720488129432808583384664970033613571730230944361838063749084911078069619707420964902954700830504529404516638932921589806810755040093495450160922439873830045950963276258429798554092423356765377957854976182112722772310393015032328689974587423483229907227220201428838615290861204622813213755092625756671451238904985496351159077400788806667286584858456494682532405549681900456347074004598544903646719939231233001326185509218524745052896610602501940744574122011279910985658751048697373213953870898008600886936571292724336131247352466732125742736564110110326482712058780492765150353643749474724881756829357949715176381306288685887048511840615299785481409560668023862728919239996989998901072999267201991218144375823317455191547235614189056094522085150475472235461375952028766328064131190001956695693627022681813034976607274472205201770061662232462834617806309861373031464334141085134362219291755654889755721312546358166685423707658150724694303264796174011820382895903872690152060441592146547393685808384596672950055596447203172486546643266450213579713766976555996568334235750346833951925504735640865225837935622342878503004677133863868399900404292643230694054148584511803884153919186773664824785064687603702896782461092075362410903965640965147598127522009371033628422475326906360955159806236699748204351353656578748703505565989528008768823676404153548527227163137503063537098035802243747592526262847038814623280458323319059101017477109328326892542494198828857526184047820390362912028875757039538112345909817569752737761290585571615862778939255318897757245402270193365329720700629281347782791043468107031125439329286199401398059161043155397515575782032927022023947977431811619027047830706709094193965435419423186473885123390407137738052836625056710355732629816280729328675531550488135497443327711374288994512021625817498691018343430986651899582605930086843063744939040362412200848244276701542920234531953960705915737043853288890365753468972604283111618252430830357964386204443161839475621609807014995291057992912078817206456816780984836947341063840856840878800667633060203320510424749669988592194963869538000640867688357220003787806799537496929848016904717871121579544081347948620926896136265159062836044686718168036573301806444976369850222653581668432058069087077346704031908407244446109041156273699114978997937751859517613774878027677007151732048480454480548797535849943873300698057647326497233748495158189071656105903446254339163226583866047996324739291966339855254836220858824449532701204932769582938612930316901187149292723145993706692841243126672245101021713727339310569750961487383021463630409143158685937826543539554844568855414022818963385762925598683053586929581294889258936073826532873459400700097808783035786854670333898815698751965786385361397045317564801309096394546087357815622516456664759833952812218011566223755199082140474273752991592892569617500484666831611963710845360626607939438617657182049077853419037194511695621740953756633015080489770171665007937085287886175908165800332940949590462037555480477516045499717522827215699885239349525086650230312376889110421723907977069938497525241677948710278656999866281404651426668372486805587718206582973024456354700347699136512868714822613701887719030575729882197946422126616266062900420815277996058016968282969022079723936649618881488454468854621406728500238482993147829691251787049071992619523433866467146507503695878189414340784370055609764433039516891191238066393283304950185650652003316282445746800827517106294752348840412406837370969505730447138467926683041913923312443785931251847889798425216685417723597393340653239329459456768978795879210420551184523007763803286878933620682799838662876581840672684452797410922469235524127044823775340971600925609810209691011343325695520253024298882550848925172394171750048968640542378725738390565341071411106634349479317374731720300280974642256097781668024293319984238527322791211270487713181822388951429424016734598840161145506802641068878032451487307446237257917254102827491818382475720242984250376800487069869015819210416556023336787747190344415018661620411418734885616626878583166700580844787946698377252160755724837519913721300759147420617832358654418981741499336529969496854786123716297551191907026195649964501437687934301679388864364958709799748599602718832792876332966794890033292067694917318124890706872560547984784804204987364359453335345252217893282232640342397132773339884588965661200659293805918792536865637609697495657557956088541291513497075477294008100296175182326417069826663498308793725043802191035649444856961192226787985500933038165159616849682711710866829525856323123501831101394182915782475566070556216738229980300219777148641692874993280250750829957131542777334749425704068767534237770831920297532618943071472994110102527445998516488129599861067934520518348903681304891471454310655924505318456116486393903459074580735258679492341252232899586131278069776393051934497441381236546774812423540452303284296493166177247291537411629173124585388254001230412808229358043725597200934967907431970686788710306209463864470998075321079556056282134087505210140675025121986019046727079163526252828051634928432548498408404308258680943202205921878935498052094203750201125148610513512446617894476285080039710271743257913075738851815235855205715779932543204976333133345769986092952057239384889819401296911532233088240544871543481244243446355198704593642087197840204796136100472702211576642451798451989663500150839292504594519931338620041817827244542696846860274524275688894125866483725428858147432522529570984588259293515970536886820664205916643315946494124958080541118728762844793722425938694734547050646530958040717407634823145252614244388664290838636889713045189429502295129864957380868131938284640316382783441106115790186720907329096093278008269096334480427286780185825629100074689216066427213512234972969895317762153434947173457507128755817385060458920008617546580935575146593301168832607756404729584736176680381078127903225542856977327454432082802846597310884623754898684794524140009425090342228278283768012584557686392919779478478042305605619559810581754062245543232232741618226126469396044357150220638531733814053831730771208270405204420123863280924419476661330583641010822510679610643309814304025861691057000289815264682992029469871940662559127817525502120006363127854848695119989348626901658178635410830242888348266409973802170952152946178306885946216509512671457986587391173375609283617513976441108332235178431891584070345003745849011797574418085287166299530989467293919056617857163107502683658818443081128702312148128425164714105239765188593918895721255398551699542142425863517980123729592795242287236489100399264755438872342873688294839195135226039275751897705420886270017673350199849868957663201753660162508742534008833654922471074385523299272223035620653003639787210449328606851613527198319118569688949236679941090242682243247736980498352582220681588319798937394162428993558783414210097370012048402907608022355750446735441783245802079259451068565356066498372603342073510502504515008388168048245255221779619157695164622080327982684892118057661667223278205101335838967898287764080216701645706606244257228105660005765460381717928555604781968589964399538375302704176977882778642635759413062407141984395250894464425866798094181404518063549032737916632922285199891614584900971971226218329156778527269521401323253658689014295497927366398061010823524215028047436304817070180891172784406793043912202180902713528719670022197994283778293765773524952005611418377055889460192952124756559978816357688108095943237643249364084641969511098581437767357678938086204194539837723087823356998980728568411668331994446914602739590844051703609733611841540227955989429312162783507966983367387788271277031220695325052956587708083069847801824405150401482748071977904518844846694660930057891029556067326146807689628181065070588393638586391839642922891056003911032826985387603540021992294242877108134932827598993781966374963890321206866885550314619255750816167183071787193169176289099790566907472121682619086730090686867211078847540488161458390898943465091491157632064380757765256709891784223841943359784855346145545044911344075979105672923246740294159992406587705455230900619635298214564933132445195924683615796729455350996976055841395491168124667678320778628482411232740747300211595890405579570700659557794797186280137299170980844084834379169018141462231266400066807801115601225098432086309100102160335200371542014281998059622899859858959379489127879920756628789590264777203699489109739908307826441092761315728338382628665383467936818929619588817083285752261221930551193542649175844080271971412783059498231053146552781459231931267529177370318073848497581862177302779921898312379706433352325739058825330810085384077725231345451851102710895773238246545834243318182727585991953918314324394578289753974429317657839761643363241588705987651398434442777842187328972030433395007392190127975842583867399136218740548418941959251051417803043480918273325723612148179769530036681453360143643742051874188809022814784907680569041843714471810178775739207226154651022485408256975886488427872037873493757409491077113152094278901946474224286605730560097390567589847475135711673666810996079926244934197890907421977277922239897466748336063932032440265077520059862514488920738734620199982546684778715163076094043768351935650745644160400895864883758098563255922086261952025482273640048314064398539714914870199517430066967570825135160972923340949389235120208208200600323825095684324942056711688503651694568307411222280723650569860827154774251325287737866149407335320815408272982207033153629862822208561817525132716575833360831538183717585435783666900878545681998592914332873525890959574344767680318748865476393258936992100483012356959115240909510466991221664082623169474148305919061367320142444368189201087794533355597008519947123018233703222564794620026477016063570965089146631517033179559972667094631502645461273170478071729716364273947193889530017417580838124162308500059442947475335323521323653830746827248521224566817427868913904544692134350384007315811570411829147520177585176554174123228440733890237755695434084139884900981097606987236644251584002466112887564563355608748262207836089937115934967748551221309472419821920590222309290241700335214500347163409169978077232067627117665796332433950045119656273145883057495564900119027463615675767857533934964272649318239331549084313399302416785730785293591079154401073708171083421795409985550633422308882654439150409749555315323967808655338186371812383939058269675184720795362197329396753984008747333149077616101250548785854332928709554192482869440357001818859849517217400812386901225861940215624876532049865674177814220402441624577233923200201941025903648447492313100676401765374620030967010250179106131560657700950550083183102628652953725211951900063058869565896261898604602951963560383834640001415824364657417312451436610873508471501794841715622394201417357831683231080636576168504173970249344525068053159101826308862846057897371411483536604592502713603876126125017585341876623206905872739016062922513127277630884443368313904622741575199103742222795635354920026105162568061720643998718207394889010822762820879393750884954496877431215100719308293902737614906881784188420064382092881879218265271758631570614713619839898596720987040041881380491776986407599362576552899376140671522443619630701172877910510089620269380342678908936267766551511009685425952212774303438074466601798907034584106185788588516990575510083804762486395390305504136955094502316860486840864656686203723037756418201182370525634271608970427513800596687787169066568010368761791564421100190456962370546260071693820151623499630149413954272080385188161748989835099204224654956111845162744402791077503454289134808964847936213380693773130824817003509905444607470301900868866771891988521171271253926657943119886790760980898986221256666395881466362545515730859220261872517324770401037816264027762185314659481769885781597486514279460242610007361896302469525051483377357939958894736678065617372940917918103052276230202704618982478263949961470329399117528814893654760074965048310509055593230917568642177061247945875152730718991493383399435626205541040874681806926571860554183173900039266104933289136875129119371592330261680270485186657261909589492875532903065899407597018458008070893406695929180392710440411851230480818727606164535417637119826429872195763157933262261290288813195538897391897428531865425596330728805357532537358244933191754691548003716242099958380388475815673535228614875131470996879569068614453522677980311776204144037237062303102491888257384209594646224323977719654644447138268260548657128369461253828853718381412689450225970545009867893458810165292387880010714011294694711647795098169941614981030745272237972364686533172849763251995966033618051302825839067373605417209875213170984690691191253343203822773758053269563700862382163075647346812096249912581441591966276482811909938071881331417737178982804469193510522782349757114485255310722953538097278227541691204435601141548811089758892120366151633162636299620552111735066943496499912011187493782099805970207089507694255474759045551987427200498174364544903793833159263011507696070422588717500944562703071517214434460622875393143673485227174925675865015241426980042913065425640399878073007261360650520019585971532685012596994084207375700157688246208916512208256321717618615416613638158744945007681192261840317574447651449484011235175842437332717841037769960697896881916376402450466636834010063501962787054846636452200312168808048238042805513659494837515667336352106246015883046228061088344410960418200269247220390638360327748262133685257349753240534348541166790616209283409838952055473767691467816870507085409404575621866990569784812130118667382821225488325699805294021140795899701233090200815827338967242863059466966296126660293642756969241809142360574435564400026227552220991053114250281425067310580045654694334313116115966445004917746500898660664070351545546206111078357025318529127126020323927073205980547501234202913692352182199163778501557790958860163074026526882053121081005466441438527726261257042373228524589779048757871101621259237692084841240933299899660872601384467255061336468171772431903434975266426808801130088799674407095296330893237788811677000299655942975489255798772354290617006042666124819008147954107238180332395044964050496317263747030956089869716441432985152369593585073085504744338704370919291344583866315055757715322059876865960465711601227208302890683439001787352604181689421913392041569684445929968174949795661856016143935694157198623645628603044006012604614419696402174989049882231045373878763646196960485833255028811879395344704162124916244792565897985822282806060213440029691704033231996693717749953598159395323087827450010769866784036904851892794386843821306801299967405933560199644864031435305197700422946388625786699100793401266538744819758209556698883774800503159376797452959366528303839208589487834713919750861792166944851005966605718066123854308771170663559050236191752055329368571218494375377064670891428260746763451813955956183441052082619759508763944626063242440685918620869867231021701864818228727144478414099366187395120130381279411955552188755188331363434915668145446957962077953961175611329442396032064544007705743988213632193067248312058484797492425898632550133210383602107042806819729537456066726231396085134017265168002196484587638596546044065026453538281791555017598945026071176846303305008760286370270190321664993010745516301933848107866719168708881493492665082105117353377878019520208639406222367867439216864310321317195730285319426511016881875708597622878651732030637857416176324651407371441887317847767285099125537370940319141287861188320450666226188020142210332736076530069640124275842133532095970897991626388709503345633549497591874627554608704615037296834227525369498650497316012060882065876502771465542549063946749362567846929965425169840729333685626345730582717048566966113357950008072322057332163626189772834018101634402348479053559922458203524615000911159521660890044001258074890943160375257972092668201552289073097221717455910144586652628452996478468567407198293670066317256562518824245248714243757686746606927505947182839977042456888485141397801342843249736141589104231517347949105099022211033495517376013297163005040207110046819541929335089233801488587321322782843664012917458045777342332056936765469561440948788147396070444151441468912295955248656324031588974386027810698298556772648651084547473703298896121190391053056689656401988147791273508448708183854279777583728031290711439045363784241048659058740942220896980968255284173016605358960281334807713614462067337391107761445246364602771658997704611327029163735826525889724462045926425313887838273967324577127347083234888543594410886730067726352021933158222467851679937228141705026452115724127785416410109302413634107406660013314481291469699131140274411325258424646198990547089419308202951339884326414554480380935999906605781329301817665412019421793241037215896002942997626688332255422458036947690664434493022257540527219705956835434032262610543743653399539416818572808076177137678173680768738085379374347388504128164941069861474698732567020026678389127096523799904466761020960530158394802076801672597955046601834349558402424727535808545517891061903605778994843090247577849002404310794270174929077459623069621325608328936340284460079802787265977933978784697128936568281095327128572855618370647415347497687858133340990872019191345921890616831848834150183665604982331089619168912137917959202801684736542499721951322220694076667362814016207267684650833180596341669624874398869920089949080116191256555354254696490731485137632858590411625040729016089248705975048047976371394427240187976440420019103209369699797858636428023674324976083403060895943374192548595126152806100453243082750383715167285654558251716447880556831453585750195131014849435279633296353203230894737087599924131751503618086590259860044237254661569815632829412598239985835792037433860210829750496249240868079021456764251770222234490212777648906483888034525786044646669833239261008678306149012666094888340847460241954215069780313791274920512181236687351211132884284688711073862930928294479451199633079904211340509962261936931880973380404406225349286995148855116365221809921802459950126326345265433088420600304225425290292192230646086548409473027052276163138885937467647262390288611780083400548760620169613773352996348597157707274134506813174348230552984176106837141506225026230879697771473473772005419555493605810852283522860562560849001499349844703271349875370519317503414746795839853058184175218165877201166623203472501614448106405482029117321149599187808435448729455197572995091419346838247993706745775344997587211111775855027524773872245294776389555203328365278212362392425929941508762323444859571622198188317754341501748887449862447881173307546993014812018627768320182845938867347383390700210023107283420040581753794225946022456297105807572507100181230564148622078509155202795652940199352377342343524724413913291764518209224625208515133571660309817090732380694524556630726950762245685805158225886614731725421966959357286264544884824290711122006089453292972740249669351386963690020616755106033793614754328419127713724399340892730496329793577988535775328872595853360512921757024148795899636066270897416232279485449690607213860911923093795412284926709785089238560314640888065107863920374134862809917377649993577077318505815597112231541222881026177825833864888697155004607639115129832722406594830894950986241447196601357531430404863859458828697622253998364604360970714292090745641860464327560056026479640971253453803805002968889996824989505735964181964589963121181073643626561789137328384864501328520055141125027885919327254057634027203641743282590177383851879509335427749767217143815560860078324388902430778349678121205111117724261133886030644783362192023935378082569047721746740392657959426629402041863176577508821381725484493917538598467811837021509859824585751515834589414133882677037951412913616045778811316916921779541327579902955734360460361691151671315143619161162639217632608900403072942741954564167686617617288468246908604456666258659791646514775975063367976506862828818020405706981827481271944482553045986151433298713030697744464164121108095815904065886186572619756408629557022014022996047581157558744816073596768981992534218633516271981170197210523462659741671936341905556313360112376896555327809607885760521402934083914172631955659846090480613438003981150574213188520388887451083599850148692579005117345339433919789009778204887409008253496399612349560693975615103511146401050683879082464459464644231089271694396316701657516035718387884850849875166245094697732093086696639842163747048069467201363634204869489969734132637902529642889216