904846014074488258885630423466054582330213610151119004539674669261596668091670071808817099376459573500546680868172833509271002787666818181457416982563260301181328945280913808154404122478097933042855341097524989622580220720601779294083555170515427798703908727534102286105216127085644227776762403816471236129792109560258829718204460140629389112609750338426239739275890338188570840731559003274297169335288683147152468015033748902873860329415745229861582631003510081655119686317480300179313697547562975170554048985896825529095805591969250777812508064053811600126323735198094264804646906734714145206297106604183557422822429902329128094156870198330025829956707465082815062727611590866983450962149416665797142182542037843119552758623297982315667324908655046504680950239560389296182707772420981593810786371038711760695445409648373717291637740275219714281206187156813736352377124841711073982981205859978489187615781330994626890734977415966587836255176053286734343511617002337076083193074687753122852412481641365991782642477678410152748747366999566755530540689773723965523831688610882435592473225005699427111953117238328582073798055121446993318632781093018068027807698366710128960536772132396073564724669905446537691210471718997025926930924251637549116464887217632111917154902951990638901672000465923560451629163985061941776327973467564880884717813768259694996572421552078352193781757787615950895378848031731176908487110680241987834779151649967115150655125062474660787570685328531333116609026362378916355667483047721144059371688653291610831468118183807189763638917641075683636552491859032699794293428407649529048409286742599548926246613986587464531112520174421569931573981670234679855258851065496144892266351968434678585666686836335065030773841103067140087692473479622913544707163402302452667507692168909719698390369617542444892104584511795891684361595837192181406684802512013250960120660153931890924257994487825692005561630049974675379405356896715701983293284710093208084275597916672627842193087905565653866010212691574815849266196311387836838954846838977564360335602581161123585549649375751897602260385213985277675114705520966932216056178587549020690703996155520812101545842881778322276133987830640661083923263410405326263405155318447007687007468008006532695799624953412578996224085777788587049172083848501095190302480808459160893730719923370485316998789597202654723883502038390648401103661638626810481171483225794248541947807988947571501980414653900845801373153824773462917794490522758425458615279828894029059494351252153679935532675607741268960933010077370456835112584449274044258029491597725125233299165157448011792343138464844309018010511947726212290345648295423944921235231748149179260791078034158345577324974073842510246959729375845675314448551261939593152057790046688525255982992977792109801225120338989252828438659434115842546288294480260423681067811026695080443081206391561291219096427352058724484277488874239308647630716955477945933723798102288211662486295139807681078487812076484878262722605749514384971343792653071611654216228744852342153989553150472613444161850936782499896492797852360465841295696171360538128688533224534425741710973695897936257018532603563515808063935860400859088321115004438158438172116787264118203127807040942387573923164688822304234920565296616691399277547429051116468326405838689642509419406928614021023750195822610744469493580434564312441739321747961497245163789880491313064486393856223064481691380027024059655147060439833742731382369149886057248444772600535342649561592102892739469831646974850773425331381523946560020806397766382115815730080950798014903223630253022776758199713283828478606752913556963797846047789225338169349870705853210796682883962997208833597751572353545674078531297246194435217890617514159383918955723197276222723638171828840731752680850214913534181205249656751801740422700086836899144917293380176610774037980276813349330333371323926227538074854000075329197583503166467220519304586725478892254542952246150324917104810409339745732177203210205921556112240960256579342170390836906931304062469510977447393080080849019156751736062912998984892795702742270359854740378802791292785203702014957939340401284758297367287586038413486188777021023092822004773937788053284010320485885723984206823440194413379181593601110829990181707328120966009585864668931965113831836803776231222660144781939107037561540836784842019213941875281389506106656346005322217018589051730469103856535548379494687310113367975688843723530315380952533651766533649961287222029212981824513509737003110590629338252259791999164403535339737234021847904728092223880539489094693234493269698586522224197113475131249178330455833526961571101778632163290371709948452469878959124731870727667405092819184792046663674696623079317446196668729619105517948516667895662112053493486118085063836682433869446572192290336288550507761958120817665506176930906719684974563553730472860619649880811767400084386849911443923583508528439642320545355838228005993950156668808334909115571542635705597265055617060305310310774028328740660005933793553214005485575480557491304183321754465923113675652976446167610713569387339983791117793970076549339358906432308010224575218081259655475610565802235982363233868504932714243072407797889815080374538243818790635284362160067382232903813457975607857054091850694438603716465369988346138527179868314071192384680175647029294755439091119788200900941969047843561115725579378738408311214503196544245469674006045997839884496824948721331997284546985080567932362668727842286342035134106168369232509165110202810838510254553893592555211297122142716941454171504247122383790139567524080822528302278146869989257081386854106919091354482806030615465074684075278613771054437696426333803851714129634660636361727393414945557562631729174139379064726043728834502830589825892037300365617118566783590653200689411437315943024642253836099374823986054045873043396111567496005060176153197019725016394177103365270577551657758451351670256669228144917608861749407739729367007345163423225803071924127324208433948596396319934882741848675885383901166487655898591681197249008613332918291305561588786042877163982496367450170427201617644050526851372715257645562947100112136226209003783052862255692678901185500698019510758798787827812270082523785655314954176654727855178714832651487534735946603548626658959249682746085795646756716788369418124444251949153972305890509382690425452317643350620899921267338221277657118786917182760150144684990899516940265917722430439022794548650880707921090835938317500056932805314845347658459816848691775378974379736617993413617298891601178142730685560268339837455767200712417755088261896901748049554908677451325172572391280120159348898253672609162540230829342746012911150801483123757206426678100430549272868486678807022678724916801168551862452846768677552087502663594707996353719266586975770993286093021383980495695615348617413028259484184000533134712982628153583957614038496818279368412333507431575042588052931375908581634146955963138459339903509002007499870054296973803726223708817322225919457321467695152964937592874327513580136473644937386542262285867996466795251269993998277924631061362854961970338485179939007131425894822438043670091654763528770736621886058689889658564361740491902119830289995669399168429221879105897777576945434065727307712890500904288441013438712755648240176441564303017164543826178553297199044431402882482795542377791026648914635652589902660854624260753438875456931427159288690043941004754876096167000993803814927805410822162567958045586835350967290654099141509912684617424298709300086311121615218872967213556863051522101032568284910624389234802425525238186778772555444225486871061508226538748918990223267377820349952623097777120409867383842568937601085650566037000330571181989837928123940652739992016729357079770661676781735039392211128402056939173736973769011016359116322733729972489732182531108377509225634595131358742654846871726667063704148543975907889560958549227711732850758397187329811865137331571014044204535615243675267952198978352687752637166247192916439416012760055662276503976044339393332227184456964936585324579169543146164168859757987968287995641991861540089212701943768269450979560228642208954074006635902694768027096545727101079235314397142095571304657143471130774229876922583042424976618300969836006556723901544454435610850482489555379578719749712455923125749980086023519800481049691549570848204336901232401918839463769311938838788987426837313902004080311693492759962054299851312740355061514990702364123115305197822882912894681618369645697503870387692762142961652080334009169228995094096076229147971480774341811012318800779828053239332091526527091330012033686678076784481542881167810541091028813133824175651588550290388078196873323383771616849451414949969096814179318623951999335006094900553566923755345209344717662564544699777284554106799119868221079224630731430177032822337898939284767272176510963384934348667442358357027804326524212088232902655326400055528968032845414339451415610698345576193553433742958849897322689252253787829653575608922212755786512212313046102831980979544286960850356825567626003465228961113194125688830435024869262762372537851485664505728908552295305755774937718417859500563074585705068303568837073332576324372508981509120880581408745802038893513719565882395967969127940952419240604090030556050167300819794798389225568628672154947025229392876378112347339067696879431351155907169149534698040864490672094911180674685805998904657443464329697429172420859386744969153294940089901095839643608710445114957961713426261719550707802623278368733667582864801305457701260145676735497866745101037751268414059797380390719319128813410385825631370547832678856007219573403238868501415676724460702137383383838094531461818946881009901947149592063279061491391500052649954442765314496898108684893850866773583663048306211536188795478853521271369377229193478184315712015261135473763655792074513321765520811254290287391175790284363166642840379004861255641223662653728378719943624409388948260002608200528074165711705959216206877373918619240624091617233656125230337710871095589571433239542893860287483236397713461450863685651143276206610417903319999161740195013952313991613809070500410982278458508520413501686453733497255519753709259456065057709156999772581854862336152081899063449477458661751198849048443009794709083754550876811354502794308470412781449921445047421462110302437328810055767880060064330662070807950100157165096364817010446536158704621239591741177914733148502289428875012466694494304394918052897547326644263724747671411030849110190112604573517299146517469402851234465135967943183808807987756589423365806001975289701453752713804216593047297895754732735881555862197000993769905106957521041765225794420035868877981187619772185573706622907202552140170334069424257981407587944446956127943932946781453974061186585347758627401576359938212499437832500092075119879312794200381579431303238180922683806176240905965749729809229020834132659250833941562490311783055197712343584069998394821506363086468438883059735874821120498484488735916195511781302110889309188303606222411543098077563939690041822171473237660425817236875726862740371197106836205080221816984917660396298788846103715748859781961332173180122792387010439015428485663695932960341658472518437817414224298689351078292762836804160437716285283993461132312452964011968561819898924894302979858131187215977055122822456074090600508128011250989256130495438588966530947602634483059859325430052048693402687303093714169282342295305285882001697695126100910106196340050798687114514535205694010119195867931458290447225607162063059842319536480344085084728100897338273251353676162703423569346238199407256712870434923005863077318912985939052533937450079940334486993721034988190474775579315709487407932881618864925545457930896020812880921400390441663647775211480277746051246626456821873502206212090883608375319450381587918229387324874687779705828318381531200523938349866798125408047401070913818912319433885356650743916424566326603355647379340094524429035618407299452861781654871265354310398509043336123541343948789807953929233355330954497790877844683828732415550911258275524383989635073299676378365855556661609434344871987697518072732179846610896963364444667892886904935236828396681256209796841999417821852446690853087596788551930191935500115226505199603891007423498153932849339649082273660763013933396276072121998519933594831561839647023074257728595422254554772192994490713081918345543558886462533427122466378306267186846411568386008492700656226492839995154770462352461924358890267658289501377819516202199079146304805581395138044895278419394570319942115668146267670907385646147630317745971688119894058140887984571295424713100091338416534492175626127289322425393509110377848428615777965928248564982160996329616840858091489646256196404736326442878468231566055842349512264315722666576317908279952645479551326736649233036113932469212666744918392135963564236753188887715379841909535388540567461666507397636133924270323690479937523544294880514962077458323141087543388121230847483365318383585707402530410133267442708454484736438655110541896967585242340062256991798179361822293522527865530962827076006027042303896589247967381339316766068017888488849668253137848953088407753812505857821195232737877456349079288889280922891839162317239494551077183835941908850629181862006867983924400468513402497367908034803655735216149743071881792122609360850254497929151394808597728232467254613509550271790849809541979988708135164049739337644822457616135611913002760482886122655239957615405748824077865805722033699215665127480909555364050513190938821162925644911337059554984606528515928841069347998410659819043642112379566227303585434451627393985040733299304699282009498020729492254675655292814916564506921455191430224318356593916654034432998786437933086310089948364366227190564601008066567022625617548946363701709886979440348837321859838335301765121275296547108494681886660157514028503890966131228107295648363774093011582342982667899827158634165807579756249200589284381024636895206717656313358415035150987891297025142871486971889659753155318835048637007321444412786108785054086605759468906221795494325283115770142343438947003866146285610303932277896163643763437540953218461657518190972857254490144157115904757622145747893069830682349550957148848101001864864441363171862627059456276999968713839676863188005639829113251454592828612035466294580129284415179668358866554307749996859004579762169513439095573903460779680522921154316958343581451057921199744482933721600594863590147196868013989177409897873998924210889360164421738489295157054805500573744313691076410905467808432828157946162830331895836472041472677220803147370924489461670912805022808994903362936851250178015518005058388151476082606967669097853060575391882366119465314170148856412582243990501719696242191728076181757734243205891427077214298386243918538031342424905653277479073134157818081229279268964675410467613553525619010305144060545054385521868027401905929706599495248855111809435437746015266125035699811829310811164883938595001062100017139006275474775223719836195588036511305484995846050613620748854102876814900801006574182040496372117842784220356431384565855270162039024516402292456564227400679364302811262660592323274829584854879033252139159400249604680210953198465693463886169481515780549709803931444998857472647344521823345531274044796625493570593902033601489073617743829965336730036591491412269078420883094934279962037894653930293958856454283068751586198629926184402829657351396224323124653977134258851002854535122633565047253475244863775168974347338455652585846893644682932192320043450704561495249065003337952911641054945122335162883111134440904040544788658788627565319297348977655752168567556004906574537178910886549218883773440846689687635054075964248534297264854135610971862413069910436953693976645182373083264091851296388132078516731670509094257804137735573458162528158527101248759986886428677723320610493470000443396421508614657122360344183102468359323827927597206586070702203516769231380366418557557125353684665219675845558106639164276367195981460832360598785829983065869724106573500807295497688849374738341132891768965882420179484362296816712379429042360205955967783156569390451101919149892834473366086001497743674532928533364089380923518958320074280981625778110107232812606025037720996843016727425324232495724219509783123722257723341497539013344366653126666588212166456873988784817461699710754289345477882952498096946994108288257722393275693110710137530913851735023486063123715928868106774381339596531925375006593756446886184102571892465642267094074968185909198432962832755415380566746637161887640544922089322133071799582434877933600528150918464215012217861045956851456010740778009366905184558032595626254869892095656149006117789270918759738291468665880370971021018647792609414610881712580784098722525388425469216003971847616369845061693254095563331788098637962946716957189593252360914183598409458574436692280378232518596798394532366995351643486865720194816781376939782250006579674368810946299959161500038420906312991761104480762078117766270352152749028538528570514599651313802428605814160878154186714668001485956335402539802509920155772088437509774026881770538061919962216987576992853716758076321200839286033386180645518911526356687103185869878867867861701208371602233284961963074249242404013706884648642552884710328803019348952811401616757800514135302521137592249608947960680204063713466307009925035455287276862656451434168190205297163293756618817875437361929770914456542956493712378273192843922895017804737734053603723090991635959233135437754087104997499611501299703547572916987360305037802801636287742189907499835772877340153405820933532090904583116881632619900274986238921383734207501199776612487052017002020358485776588847264108345163759945193986032072725191701129370710257773710118570732598509871805237217333429215002621414776715451834486189160224221012413777069954378245394727278480164259919470133671063920774690084754572155592091835546100218196228322942059133633148637958527431264967954521366397103532346451436108682855144590589507732497644928141146554119441114638590099170477495404412597183774436527483643445599896525577393181891241583164305998471659556883168569431544804301415307210108188030097101597989687784705019741282800640522691801695937700100764336408677007393594821203018760798411466265416518213872359928966306628053952211458933436629722794252830927564818861349943446951734538889117659675484952463701967705615402509662938681883880539596194205816648040677579885108750912241707901632292480541823912108359346726719005474378922922380981502086849874756104223847275971642218424095196429946601292147777553796961660520416495689139178215469601499117072556101333441133779265343283681998645418199283012108681193774786485116564962856901376772260453461492975675572135565113153910104135597624878712044786746941887399421090563057172017777082721205659275331382471969127055676393412793435519096212914772950583425127591790899885391916991598788454883067645204648891466892233365899521032379484803358340216858705154564370219786703381451765231355973586752462415125986559020394617954581564813030600809264013022475415910732868171955434351227690317295175596331870310400243384173965700602447323947435751968334473099025800477056101266864232081115762766687334427240769029836312802162621781761752953047505196846914577017992240005317770139018937439499385520410187564819018894497469515588859465594023888916378644078993985859492878298454739319884878959763255507421045786415705562964078026048218394596233962874608708450453163552258530230870116027236813034779979724933893492563366518486356173260326947181198713900499142537158228164763024871404987851757757140460051203977950272433663654760703354188758369495145280204698841576146891555456388828177266699136415932581932479125085907489157084839105570225657768710644970635303297906462976389921581437926107550904664692693349740198746022473573448590519602787547355434309047280477848290600676339915272358250954494327441771446975129529077201178871911032733456327938532982489232153133245547448976158594727947233651639382768337788676898139859842915190412264402200919377017516250024265010442860030578598508702651756628777339137251822686517511429182165042090302972032911742829218383789804896593978525863424577874826586801106711246734205195258188644950503541857266392295362169673295079615936380946412568562168085187254077144035359694265197601853454403601262830239377579677547158469936031455013285988743625691439553449292456205413403820815715839178741146504540123726713042176188687187683638779510931208466629443006230212261644994047666533822060046139550731873248384948048745626342942505310448675002950664874354744672466195894270590262426301507221709953149497491145454060194898175288736470334692734466093580246321431859281097785680792601268599163189488562872788399338448530465893027779254417306475636626898710161830038168983877428039617193483114603592449071488407690123569471928404451097688194949073700459922634358334733426614955551321952182343924910959209812279464148017933423119051414164712971024325910274835101344595220903341252609830804574074913690825620837064534310291068009458015561646160174345271260242445520456446329059754904903747069750554061723252187484826602202415508912778234478846035976859637479304460491288441511693656199092729320355447707922467869096100903825008146075689214618597381079351584623353203917262939043374180106063814638704170157244057906065518200133589039014924050003829200744747419684209951201670522402779519507343643110107743678505644062149690907464669254108086494256860790361829285608622261438487302709585088558831375814910142182845835654194560294659806463025865680851345745915440626461643226425655434149831236457116996928284258258242318284460991747121855147681850443327849855879077130759132260537582274784193188527734089952437810488388623015922436964255806516931056927451743110471516512941887427403480958318234436436394530413488459407746026828500733321118712538649805440169846409659362306029739728064515918094999588480407159804199100609665818334992879010879296287318660988164595428043606586937139182881972680587038867509176058302636846703709396626612942516928552950647598399982290806536431953113581621138275272093664766853273253999551038523231817117953959107206104548001263939072672646283145578462095136758405400898359621949447030799361500979287001287681357364705592968475781923835319079382588147672359228178696165807495541355633584218319953540533135584936826637125178600256062077197445893263551764055193483717979752265439943801369694085460382900312974738275863800120076957283829386900131130327199272679281052994515813690450817604149918711548374987143304845036233767747392323037053294395584633142016716796048059332774374711963136543931729602384064869474207709310243659744274659809516357015190956232762214766059438481619204797584652166698896450875756268523543387830643560994017343529636937316824162717215114838683959514736490206738808782156606946340224750811318281043966774391009670538050207634646965178714991770139882331040292196659929379427935190989427457850436798525785132517415086283262060408380829345375456568453736513420548015125939440124719639703172577980804991642690409771193310500265497919080704987763663052534532779135637950918828107492645495657409128569323876528388088345414183444166192749527973013695536749723417774529788855403642538708328177396731201559394329397393389955174309499591204952337701284015739452680349474339393067627888483449606651955320003590852521678464821784580365309958720860864054964480406808535163063727615455511734714424499125805084795407977227410669015427291388831929687766289841774336088759572608028842707724587563286620774980825680028545646959721273205698199024039442164828370171101439738803475195690612226237257409249695073249827705611735614230928061728851441065506525389902338305372553838086344390518401087064352991055210015849880188887459951849107583058212589744533813956592794752320764413136488032497685657624690762466239800026983983316595363770473237669768036307262698751854693803393406428151640824250038816232681161760174844478842300554408086387473793820573020633225835706313604088235959806865188975992052869317051898066819731346139246797551714151913873675602935968905143682994714835249342206891200015617963669879206153071622911237591077071750257029977898188090219441395437234410334994206819642252120350590440237460896855141843442992134660555568624221679168981064631533119612411194366251311667515434634419533132605564265442394430977286533881534858445876488434605256464368967896490352985351931464754737566133715003217334357795736549778926065824606180395744583375045647005072531396980625998984249658853463039573177544752303553792131921924884037588125225456597429636233532713165910269423521319399100972341760859211083704383470846734562204367947554280115796118845315024904087246347336419389957076519043830212946529731347786073265628517496316740788281808075147841527665289362148221845148695507179127384832732620085961831775497270544936956060147176947063075661477613242158865968730278331354410970512307391159840088020025593615848483808423320065743627919549386552003356465228485439720068601246951271532361298538157314149845715288989746171051135937818871014857688187842613529849488308331087143597736856481245597142696264355663690587497259241768451767073688514901759300233893844862278823742339103706880646515924756543674107483884860450403808935042907634496724382142861514888719082281492060036120017627794075161225621645471930955293016771822514633128434457774202657841361821717020729383634188766571507686226815405075847212243187400501930456984716663026879363583617791180079052768981716056844186951574290442360854157963629781430713708200558578533178387091841275175966403575706169953978484874914881022333488687959820665898529816584043479373922414593237461749787384731010271872147580726677258912835712173511457820006639267325223655426371510181348069638384627309022917241802207776920078579127142951064874716956257655113944791184987102777286620556056876906382213458932382736420524983027614642669155014934414830918784724318267709101081740437989261160968397557663699370012661451527003464583886525646058809237668679792251080392078653478302553032804909772515434380834556423226064788957534700269143999127841755393642703214924462790401569705080848116791948568299837259414880182719812477169129727100942100686537348085761750954129694038692478813087118399592694081278175106556473943391862479780030682532703286529533032879401734195171673130803617872801731810159021619142111340964247651935702605399535081450632125171681647226784277441171063517849869940434370967293326729460190112235114144440446335066583859478168335741090079310201082898010900961228766588645627610528878192784920820129586207115116324507631796938679425553786651587632154586504698358232016116822463057008308546146379963066432472642599411137624941433803135810375998679052678196055061044488161031462888364054586020721769680676709996465627089715644408856016304550188962479905022051898391729773584312435001236661955694247132080031309684134350314718862727080464798091594354334122719918212734752947641143665812464676311600172850663245501017809948257294246244011087108146714749866759935965280414205721604658644713516375507412093044908340330307542734309895227957589072602469238131508403962154488690567659768281992055897291462153268589773790967203696366738104409477575115146615324119346591025974468971025510218502096411760127029954156228218041975451636946810941640678994846405208344493867933950306621528913120568964327402349582735113249822517602480309653305228864663168998995259752584602708707885349440745144867836612736473652571997357284504805891827964283190103054737848473388128997315733795846043892117828673221227287763949839884617124770149835192529042303119208531212102133081621733205849553909014240904507006284840929192851450577671639583120699689990922644464215998025915448314211483108559338182939553337162786214946024957477805189404623210387170613233227707427778786991831687691586706055443538270630971199339460742194472874257755044271652866836182714675845335868076591727926497993889959464154704329544423300185634786349121417905387618382557263937685514573712672493558115696132454142845626465925348444579045446096803364059963748408449751196283309992211588361929579068824324359550820879764618326692383326635938210266450710718735227020824632876562913795946921579450101943501306542367271860297458537002918681966693103080541599671413562009631287486343444803405727547114846367984256404627687389339205093987218958868831595595880699702570130357066913875693476111007093147740090595318510994153454965700148760051854247921804209362468492301513866941264786626793342049556536770879905753969226333497393522552833523838197748220006939880205148289630644012438515841963641641711674816574456855289668834827442204685608820304269037761862485209056548299154235081654019171366064468661043040277936783788977279427824729732412658954118418305016403680339205119587615119219265168024914057017688397256926617472221606142693676429243818187088197503443234719558708962067092816516888453567891737792288016116794143016181837182099325209545276719713514965161385867469979935530569072676640749633872344826879593089188115425914023368142430646274275221492152890804343984853654118498337296779506024864558924482270075659640985836220127707815259473305742622184663660641578764469430329149237470331142605786960618282168543176085873289792241302899554257164780611859436022082966087708454063614487031088907845203394737247063312726721632951508464097117816786010871685133914472275626702280943765670891335987934099811470877380305512108898435153890715871671424045838789252730446535998901932556116635117064924516431931055960002676191179310277468453738006430137738283433843031879588277665113543015000386512665910526077419706910672571108638462124529683605220853683911506036531931498867849751212018158613139250815152922688163293304443330567719535020614375465139352585957005627782464440502956359903869689600404290113675606099056100021004007508220913588930085861719999153587908712124443365723016203793295594392717072622964627284462638051608179774773605777250054553289179035598951386095836430036773276447517199336027534515207959012759043422051563422934083600124350458292957308819166253443979240221598085349269491788348729735447736639584026797849688073450849665931895093650991666945066817663454137263023175316147651710924825522783479661787517655783816955307594693137621510389915975198245405486620683739539687039157324702301877027268026199557496491100161875114341924986260595565578710900709146562588954428940369211753928588815608640103615817234671706369095880792085072256434953907695430072352832400047939880241564203268771735931877268697725036271289867306910053546794507502823592777069149901376104120587089799159494293986509115084101897328933303342402078030951782339165303184462976738372177638520648719503432434092186048113420960547107254394216117520237737301383327679084386460411340609340476254209678371528974262988847553019314547216175059312745312269653806134216170344082368743679912886190860328878760658330686938224492770967968385999642778366929950052239145534839832764136033665934161792974861992980853134440891168763113988068784291587633471384389378560282646248193271221990445878126724052662789154071730952680255527958310944614865290632807482829594027815465211761899172507203226279948131929138410903797423754941171150643202764176563216399685297394422974250233923804615956273634906506483649301207542981949706555730239425945345074909869119409430252722695209969359309733392058014056589028595437489570984561577945964956039937512125151291444723570998703905403685680109380654799813472753578945531052924265553322005447294704666063458471030593308644874664000349517476177149744697347894883767450253818131362935962177546234845250315849783620565272544351602692143995210306757292105132170435927842975560403247127404700959397777972223419035206545850353093059031323097556000349788793969955079971250224810275522719305805074531893304272696826124777249574740250792200466077255100378435119564970112143227459204226852495715944771077368645131630613833992072565035969395349351399389503115228362515463614880270502789437700892948842046539584546814524062488860797157738090721708147699749070710499871836862036899636392903871446023576462493457553434696934639730190979540348137954035254702711500223038678074665916042018636950563150053037376316043550726182022127574768795471329671795790596405463137378343596192324222774837694031441274146147699211573246849840114462521765238354741378377436006088041139973583489566722803588519181467814349229943509711017532429870738935530552779454086011392293159464200979405841087983332055022292847279491829358815724794919061122866641773658049251808733805282127173743357563082047977640872543676589864565524977098141784262839716203106010943551584692616505104356118668787041449556668625543476410125401392088919560992532376423543924119421709747686428594253571473344664625337589103354874430407054288149175499404898067314789426479586477224634787033041325352618252371335381540145547622640976891414693780457810382950818775285587958250410901227622685568705905254913372047675958698534232285566287248571071323795436830749914437510657753962113051310248061131948577624748464953223781704564514409475140597319222527831839870092108873433275124848181411884266321598791115978309176884091985250182318637550315722876984434848720961274160535966169000771354316195910013402135014474377690441302728564287263902376997491077475204458444631234936697789173446070329908732248262094881271190926280720629003093126477441514161905142371666799357068406170236597169125115937489926221119405030596881292734834904209416049113241189385792898299843951643144604747525558833112264184073483691736510186377587096845234702932397348111441938139763628087387628676846188160921425265727052007294334780836288594947033300246184165314767517061492208592521828801236546881233936197354937699592603774678783336352779464633383522797877742494064532017952931466470789260936944083804462516688274575392939214677291175288429743599671235966262265187984808300733949245649947867805016604037043304852239168492386953753463898500993531030340820013901384797919673773683085681463273948401742605999874106364751246517908146018162541437498625725423074630259891108581112436978991065758715821880155683710294953992623547016985811900528950664235532806575484341059110404343283138527295300922535776121405946771934161449846958781528369087065109253944032680379440768169795104891851667814826407155795774563110270762962532940985428285166257280116689401019764987187106969883633868567996212034847892935972414105236850091709356685042257527346456515968081125244288886423529165355602235050545885392674426007383382384695021714316702244826471011026791512206914807936760724629552588473626702664242392781684217419850816845887975024608415331990378207664889409871085791013139300257076726782659797960299928195256137220911259731377603791129609436418058704529009810384931271081107282402010157594908339954730803469759306508037612541246410727605358401009728565159369095553300900663749457668746420457183506853813893500486817669432793973334055184116084818029162737479948372279723075545248986630614830664287520085653741172625974929897055087967766412329344939656245270119210467711052568887744888315739269578019065621292090268131453129916008141897137383392624557649704745068328358818252370626434078796254746087701267848305033126301552412134127983447555116542146997755126110404220723033481213750374918328628318886755632356534059112784270327181318166854450565841037619479049867348634294685254755076241216680358651786833499134070032993131872044693715136757796225877325277602375676138344989956888090385455618964901645257772740157319190023129465088498871339484052012626094248327264829964486134463829441634410581648854279799496190162661676191754366009138399924600474305217042966055380242891769414611282326942796462089994697125518072358293442268477892231743318522341526992473614369013347197870951878296252819277113817136385562778484947444723776534840375261967766118959927896699710645384498209227258150496146188369484492262666683427228845693384824813949579802048799931305130163647179264477213328246506411348478562089667665974114315231345437154368342654611737288039188603344800007988426331631420017407598696616947625875554207396683142409473390361822327323278408279436241092790623198758396005744807951055707301996356026075134863396700079171755924659731421330337153448526868643496365701308023553382238713543909060404270953749631661793438358095226545836881716807799822608560321887777018494278145156815103252885760799206887757428526161445152621245816351664713172496552768835736648230010577202707913736042654294056230326272222981605093522513789754046820265123634736729022620120148090550743864209439303058274622717659851257045696135450138403070091747738422433752253361197633353172739338970143927333072908280133679935970780549233600864284882096079363834111396127484186455582964280515975310089302910181411036306691364203906907351883368574859759655669279489804987298689975867394728917369159721514273479913621241696402138786115979404693471443289819931469161903095260883389164418991764641067827047761894793693677357631007192013246006368943580970164768169360354602335684483412409704870479406849200639533220627515877388203516007116165698938572970457054011341362036548779677357969508683767183238701374900487298094377334916553461802746417613214387741500596315854861358562537679299892902307670651454032552050124549997120426312599386353243359912891752207597006692164763133090067758585659569563609646676806488957404008510063827394478627401296089623153947657480161519808670010374686451831933830707446128087884967914608523828195227746608851380773255990145106076012887004444608934890749989212151630543433364703132193661887054625703523955845174509528372476791890533510763656844695957094272535967063540333704900036562024324572674274772921658904718494190806256369322155398505827988085535871589876422614883728476513743882980711342288542779064655910157001666650680039777137683102362434733725483564811022179632851669513771489708927617004698702123104344884494080232190055422053650246085212924942955959560703872810524342056622508838555453834374325859342500017960937133702610128351996045815832446433883534744720975793742133842964744966486056642556814877137699711035273696913911736388502297593267506156223708805161375665777084651081519325857602821719123868326261840838950632830983233045203910820189360809196147412028875244084597587592792496934822977302301026575524151238469356500884304699795019267278550202427536419496633004167407372532991767873307936099602021308004242810667010283520932486853381898609164037397888352893505236101843862367341794524481127188863953774122051135282432045102289996507078514825459298977016928989860482438884568233303569304866201357319684992493482363950838602819109652282865713333347172944015400673649144315769161073238108035183059282798685025651842407867040121852389424686365885497188438272873635265625645558421905972483460428367773177788013821580943651188370163188373857615148683045742576208254163491013904443619183577243613954013020920224352753002830487767862776808139438065352983485065310577397578531552418829716721377951861783248511721433032901468791938408824524836140296616933064637054655681746312264333233732001481163522489616803576222566408726021090208493452232712163570725308069708232027244765262021164688511353004407302784527186449534893044629789779426571723286827641275953451584416451756557040308938747690962326480530733024366213047435710736444043644839767735926816443460022859555806539559603837833490512655355616193562314094838651383677759050326499788560368426009780016648546763688546893489395373566537613644938895805994814335165755437417267789397328337172386626993679561821897390270112059354136827120882473655900408968075289777518868660228224897477593976918296130562292792489145736191778970759609056170122163882018337034143094169631145900820258488102785706455609457287176668271111459281854715064759426825186480826205681097180060401215385770409564653110576252889484603526146275061242718662460349024170420000247958373662234619057578403818278620200969952897145939705914704456841224672065933479558853155508906275600820949909490134185564912679323161472817545053350784960795737447353483982285518033760215680298400822552812976169305895338653697368114995756150211867957635097562734265167851738761004584048860088601006937869902219856667431346261035994133893225390235993000648048320703043884334429955643139389623906125530716516295530944204240175918857748934671730638573333685264447349567017703663563291851509206695267373570161891295918901452439215304472464363508345756234118567657662304595245464365254718266145289896993863808068553579354856051117536017658009629554450792546863749048216746132633168179236806445032530542358005857142768018183169295600745458646910481099362372378717704908286546135393984408123541490810362817815254548163271374749298814485217970857455746585011950145306177282797843647257810862669914704943431059612145030444724512801830638214063632807885385277218780533913489304289957950468181255952505571950521032270582972485613363738371063838217651323840154507196420070332087671585561707512067392372973038457021223302155039283888146864393335345813719028082347678940203443130904399884463338021586454488435962139030938737293062327336846056927133804796198601118837274411985078579602207243262094389482328895628376897424738449197296215417630058282668128248239211756880921690170195161328521840077123000453393464728813289681001824274723946488782454072308963795240443541866768026759786526734845946626255167073053553859549708239886846345992420850509330056834334188040468824476605920413465327857645222526794423602855812326186077065889540311043380198698088441447702906484475736605655303607100471382969224393232605754725348560331812942585501921501663773112332821727406434144581123630979691285730120895621093537051389225564552113246673167839075853491446183361920849625313837936031033090531615560463625620234704620121186760725490611528357649070609754672136943509104537604025932134072347155066834889160478179613960758380855747477837928517790148416287310753145620348925902714238008283198794305630329194224208291643123799838092892538917430342403072118476777992984184525373370967781727934058118537249358228708329931360208385721735065124384046399955919565661527801311098306240387251638999203735823289737899655687076230986157124896560575236602988940733734502469033436478523345021024185597850214482533890041099181563458664416055628812744333561936455002007680790504899628875548600098680100231032196204120476920443117400925150197503685058167191239043952756878906922449749885212526969431078768334597130682909909387345227905361758627877810440458865469055937082999129204792366774567217187001698798275469148571540342061304901284801767200995800556184130755927603924356844351872904505619070276844981745485377101501823612568349384511525680170323697303850902372005464190047172782042764382430040990429130160135466465288811713148054832576903576893562033823455418179307839694272839938228702735391029972406424832629908902435162532442539199498909577126486388163145375969984228989871099899589358875104326652118864510677033727952958643840592337878905090159011712624955223818484094325450486558199959074796167620316218081389762189212936505940388937643847328514591974869951851633019486301923482947780355754671188405561480260655684104554505951923857658444847121090126258555671288040050495312679736928695968892198601076695197664620640863208608569437520983307316008035085652115353704300819483812729307927642992310853627603457950032271264741071303308394871117790748415971625500584572223264747714567727476779494357006155475874989271057238043622281283228218960828723582921640618531699330460825259688906647031550348293201722264113482435773822675004331992214898310118562350477593590988887876390345444402761471154376934085462064032088109384864190923974044749016445467843115896887419442852812622453544514013575586077581691787938138459046779210409859747689353979841791596928770468598210180601723768414002583244634814888599967778334887746314830432490166419615379260682935443379344723319710936585997741222037726109521492464094992803851332033286617294237636517424018591571077885120526000473369096384562644036229022790951423568496193819941885478124088929257006271714313372066972862939940160597898426110239360725221450629909172090982172537976906198200524042564984179116010167421670494139916532318392338288345001440709688593492457992206678610724934512599202121723711733647959672682876996986232437247791890280398223416871472826613456150386834337075760745527765417048623610775519195409971464133099508049838190629507218357910898981483554467216372846255970175911684635112300337143025279720279677319834617610386382427956973507112862597329499657620380676311615062175937573406334370004436755748582911860401106073141981347427174615001908535273918572391236900335412062958769465845963184695275789076363082745226306236788358139959357127669305467853404350887525400733592453357397965086852994024121096262758981422142614012999761642361408741143004048081831431213691925335234580581040357792285633982379114091795597478388650679582020595838272015749935716499499659413626740020174185684481018016027728143625874998892885292794825654578974282267047970215620871062419781415106992840618837253764835966305427975607355941082141699717092233913557629250330239717650492646417422063843462935246103087397523268608915181496057959396921341369547746091923573795332916340275826717560050034953121982438773473585742250584310591010923904813436532614817389699341582746835139882398435684624310708503126599158041608064078913308703005601372148199681638397697855935765130784576697861012823251431005681092145447326492699218801557456161381041863908493605121651313578280902583156943347502387907489202225422339331812317317812612521522178662863356776770738288112347123336165701591065638596043242000190066805203748615272085112531561312320228796636693682772200201042746358886170948981769560537986592709051381900169912902057908763093077824571286432651672008882148424068882183343406442243241642117438245034601650128692258572395998350644289311228444729760383424805710180851618994161490198664461387970089547689397211706163642477850348605444701038274921947885339724786363927638669977119411898389812600410585684381333370649260539347202772680823254432681079263543844251609723948425484869349647247959918583211790056709615084777194553949053877776365775768487944958646851122856419214488175202145723761532811695031835891285305069684237217915897537349646709022702837274545277028818566463271405025911671518324245927068834928922736957468143263305760440644561440420852952875557258930597325918007388348339964448518765730198914622885521678285948218931633216059403224834649612493215056605052332906686712266882859718661425120486664514281596170273885043980643125513553699904135599057644554086392332550079361176936088662865338822923849913027709441747887501071267336869168429389996016574301958151139342677476319646000241602399915639608569531922950056606116019243484032553589029430805803230318136399708787343120898597106777122066668205882153744691211177964185919788944284602364330915006915508791845872582105837373885657263004742842331955424631586428662248966531998283671859585840802759695356023094295378133458536279425937313627133719509131542472945836079220034769719600585877677644017582235020031303563701053799989033722759136033635323102254374220294664721242722653360009613583661162346873651119321324045014280494389134905364033548043564710596286366024182877558450083362755273290326732993086194479436749515429874310421427415012618771343488933482895564542426539543922669330951615716896967894112467854036265900848537789978554187467430257374210115797675262094676954916694771066677812158989558202665209594799111306101954989828038115131358180457715166482462800609187821095743863440709466914385916143318092648548047000104439397956756501243789659480361583816963548400902470553679326664602047376274157723944280686634106111676050559961213049007674012212834937885311004201489199731243095739800911492493956668907893058119474577854806515889700454604432273095978757620536130290029925323919175493389410727682758402575584043488179223040203508180842022299354898413450776084790672078197557237977953958022313431322040085474598959649307519208786082025944124546205737418587062668428657668471293250610737725196285616661734364519655193970828730275846187288260476026348870679319763598769789477572913319254102126837088125397926404648328499551331839308377386625484452994466296109342613989408907343902860490564983894394777729491208046955598082680948223362358406542261419443241661727537973503236344530854388439309405941962272351852220412001307716093422294135617119443794471329374997998142436491985148420615364485891912732297283919706614584058155042250967984584495257985141256026011772148416206471191172893223094890255287622652133743381006172440608671738216934199223687967445021009142823154997555596189247558188730601572996902741612379166219038743231554919597067761893472766292286530271902474617755742150903330887288260238528509574495965129864696366696930385415045522787034180835155874022196368174392476080643521503548675139384817151950058123262494474051514836636258321670254340840023560747976782394890560406716870892965020077523687832084386631738838933519742033451943779231869494937759848811495098544885434694327045531819158886301966163026615851313217314262471792073074832158549422482088752094261062736172003313371272202498993916779935317849986011121232093820747785337849340370364952933012258056419903690025203260347014973098277365763964522864533323558572178746328403275232078135488901836354040743063502034062677893824141954710751544514981296571421768581719700654032871456340906344773897981269005096766849201055305974752164496626625755591585126004095107681622193232669001455297146506375459597274700267082791234752096241829091787679367537036514635334991439187930627773297789266967723643058650570330665886661595544253943148197417179041304428537502109154087123254758986520517743220907566849415315954391316921198423534377314491395945875121979644763072658179705912380141680188627709871952860225034800699120297665880575316584499149990999899999