PREME/G/MU288061
0833261809645910016871886864662123978404051830651487698555424036208342889827850887841082231103202188099130215281658722501228289779250552052401074033900208554286740309751348589223836350306715584742554164416995198412818226173867273398628996785786242248828272162079192194862648566476661841795301593833379986489079798495967600526673160531178242429619722920963609263282205879270689059779057617181519205107219618818835250529666173156740649903008117558039917662659193956864357176490462836454337944692954394999163712297820757746546938081638794329913732582672733810250624521748831531724761357662887678606044236789277203977889646522678997710010896839547036896936613207139458152214714973088571956539833558897425909022424640232096767518898411596479431161828973010146646416005457054159157897309360714684363545330971804424679522362165340955216348359388365433199860490818070889851059708054245006989693075406756512789173191136877606422977693874557386271260545707874039837141142349331164969571908165746374314024578546836257254297007091288983744242341206574817949508283620685673429408824000687917528880349897198435918624456308847000277566290742246403198039574718015993918903603514514946740006111094440027183616982748069430463205000146049154969128188799134112030199674891662936147494921696838590541665826237173224284452876726946364221861301548060560419891474998550678530862871019834116285002225710594426214065132406153468664012531370640242923553823187874178996580709516194823706532046105425653262045815392569962848946093082787078079868791264874396801626875758740471418209841106930139256442232872651275828173500220642676449910038505978588574069537260968975217968379010594235338047550299905177925794148685458097122257654146445172990219950882609044811929155817190464847978973679595930085084897386703762870493712646585532227938695376338116185954542509557129104933694771689847509391066175822645873979537473927277688670199717851568918299116669088038017068255417658267563267286197723281767807348946588842837222518792770241405411698747738742327779779874051738388804152729454743899892312082048538720846162257805623107328767259268400155734215865457134870109473615244156896895514540827843257255820062917759157840822347480813670663214945293719593995432222542037210063322945951620742442383214303005662637511061859837919631208510865900623922564058651230467550515592351694147719965276418332298340999080810863556868778762318432525700721021515964032276978926621720170483237100007045992655374013596060867022696464431915478991510052888576956027090987917538230893337809392125023673637774049783468169400698865660304594835275049417376159150329351519028567431633460573617213868218911225403952040178648131021690217082451596046049657576135124185451659917509523592494722233196543423604800860297745076342748048660813877221064961880328110738464262801975623539182311107695143111019155258368695511316616148353276758138407567476975645987890525876129174717446070334538478800014491839322048521686253155869815032608193379925096383575616195204507333047817297143828941671578046875893532915629371352930311661084928724155590069971500003984175957109709592554093919241069334172481776711866968292788017285871732454270534933681596676575213663989521445466596290714247914011322442291601829469068509808188436454515647684672081988309150048175337275229592419536497852276738364007916672216488228558326984469736019015498455469404008398647946620998662428023900104458215350362832275742415763418152599935773876264598111088973726948712813048347329778522105946755905826306814109334174890928481914610899860325925010064532730320826165751609019025920481493588078387371127645210440638436495152996158208381897078565542564157654871539267915156895193900040765934739068317570260420129455933054430489792641914995647992516157142272356494744201687895248903215820649049623424518191101484395973626524384848443330851134586497625763189967702532568515230793421598251449883634794263614969019483653839137162349460810846364803257763743630648808717500618719715380145837125783891485867111199915341421487196308070100817206636555683418822576360716716249935561458047850454278895326679723322707266111408330826708279920804066478692644584895670143764697785066609171048484398985897865526103443237142164661179949916126723808591412838576885069949881831915632883763399817051521305576137450541041077063910024308451783497910354876755517720855411395369683265680268139908554350101895643265276992989164170544222105632772336208917133698228859054143992599120125260436753191965642604011999172826746966038954612142556661602064074635452981926682136487831217141853832554472615253390262433251796248317290755253716916596430750543564821153918338039904893640564232665133894580029502354001056712187985262857387910878976430190118759965758839373962356282581301559841684388158680661686977595094137342183358026864637427824671578229857382321946802951210664303831719654086646196751875823613213982269557930444846457231802535844265039639011284092982437184409130633106277763345298918859839280834031603567615380521782435628394845949341451205433180168987189269939939248262031393614148702620274577679989750098171530971245883433058553222753676899002560514814911859648197235007829749774809914691557521942189305500513739202588390531357265725027837874946679018617537131347081456045576606435327024575799683933673929567621426646744481635495743641682313166108068725902644486972196560972135175299642707374297713130080157844665110345985954223260655846046273079995263372947044984500182640353173743374205789725669075568956652128861868484066642868602838615459012536370130187041134058933359589624628658493076306936973668098998993083234545120080114499361798923381289504159984912687636779041440443188990788562995349451303444422637914966779949014715783664649927301154613440601699972951134633843266915497745250206405507430262578058865143783184611850782832219265967129046454421198889989049417253421719553534973349702260277230779004958688454845987443092925719843919274665916375975205979467941651895461356211888130606475293932136871119689281847892718647197040246512033545165902040186790374718317677818664267367142295240909983924980460686302177289235980987988357000891790814715955351501885836548109627267296950345098931494498943567191345812348365721589329432543083843821817306983510811428556211870429674997946633057263345815449957253809725109075523351054240101766844232435842793516506510978375775736660666540095753035255319577468431273254549707320096774215441238095893152154424378008958632044345448399950663031112846571413737080151102224230507105732900979875225747352032280462493799076501876556007679029664553183616848380801194178093499876620989704687964648160598686480309515573893221174656356895545113991493843742142635073429499734256021812350676208007018235698821380327148182145775218731594536501636455832575109498257321392611611180763747523815101192166157164530893736408090287952846518451633361684394043953585658047771699488729027008177999784964161183055255880211226604660573747170381571749579048885702932041955011317917326522841319222564963921724692443826332941989528303636806015471744043847366233001659759931014052948855384108160879933844209704349151515378316755574952484878426764057608362773197670928837595127266935952335822312381606380500307158444615599067421922604017386317316479406368504552074382112949567335144196281002748978068879106742316663211611476082069073631294481414432376760428337969735323789362432037678831172634012233172259271670652332205436808242613083973316140414823391207550654613476552095006732175083046473014696900016066378456003184204358970757672154683954054499448322428166864153536047589912669930673224347115516944814399093385556834826056190660488812161133176035619810387322741496655325360565727334212967853371322764526265945239907678142578655591069833595279123641823794636305826342372859141580487329823534685348644341286400977537961443050345902132005632645694962163968808910132261600002309083590637519186906303400146671038802041817012826691753612544188144448648417787984745778488296802221780046264742648375003852845641989995322719940652589832058288939196641722929931769158938541795302419296158950716962931348644950502559329223815303635849431958771156500602541886742563091293128233853605828947733802978900481150749401650374453109374214166865174424441107802654740661927451044624634055529026253487875648399607771253321502096229490906168721515694062791344645423662490962985164902595671929078889552752829352327487160570202192399807496202860818736041238416872983427956556401530964340257644787870031349944419823062356824124914073000722715411792678143497906013412452789579759970521697157193047195047230451045798928645828371049187426891744638192967107239733800276680959763585313641923986268588982641254724463521575489185048996883074328518351077666397126642694828287825794679593778457598260532311840455580459869704224754831552541141224562807044087424825293754057494331479772959989944524071732608200922058079925842640150211809265424410712958817736270495225141623114838791014768987874102182243858377564699128052712855232069656532202504707539236455155595676324853097582572680718027027232841383921367598275730357839640248291009615567487236285250095871775494109199526718719422205028018430859084391451400068282106650063877510299232387299118507349017967304101195382829883729505017435334445155286463124130441472044380877159791142394481622662652472619774288478170501267290786097160745853250485576983760746428119207672208308928867485961850864257149211367276669478765682379291985323678816834927033846149662651116427619158769852532193352837392089918129869364164413277718561051490050688769402134235858003581035190423419981722893455929391634409129682865692853137678582271129703717849858418836309792391750180323225282495428296150987871855401670915920031017048064350061983729382505321695174268096394514584994659098518005896354139870265746342593803528940496596217052537530774633388782993702422887929619097986688823306614792070670774808074589896536079063802622382844898118759134708146027958958376160285848066360057265337604025239117389251283887233133811736828703926366179480243933095812955098996950117917598134740421991910162698323796217068341729622588700012769558268642771181517074969004414199032421030907996119950841791087176923053140746566713354375971609828905923907696442419167084335895511138795915567274787992403356070261431378608996096042528421804808954939583964675728672403825241977886002366984976512600301989027866296662294355397131369998986620948242396345121505679770882267556117046034931742873214014054279270352332323959048052334115228300846330549630529066458705125292429987589440874000725612683796960249746463745649564454155540639734899980154622911500585965633802672484721538416612096984120543503842825147994849714053276473811957340133112043127369913253620119202003223603117663434401993811867342049521904281897425124239436600490889077974701273347590042731119589013000752199964095054429308830198690395120164779673399246972939631920306114318045580733164725718549023608447042240984401538377986790435685537783172781957637691379501445811153552160063004394619036203754695971162449813076628842572800968703083507760298729764512860658583965963151395146201743011042058673707580372121688183983530358566054835605490414045414097694069317508768812667311728970121563138028897800186049927646754958129979500430942223973511214388449619070471608182305433262545463412450902991984888707321950549106982744992342616747996566711796009294564533003253004254939788813623664814755001738736636256774195398134038709237843705789055662409585444808860458289765996670922271879651890999463830553568233675091167845768051669520400822020860751765103890946337020520568465744030662358881229983222112708368162150997192642972303471091272974310389464007221734730410318956675765306879268637670761823699197062326829045349954274315127922309744475814849325969918324459040007107651804933695616743004003209774848676557321834010450773868207444706089679284471829104091936887624495824554877310376406150935977989041497580202587598185288179385626376742614642988832915236038527193098109599525071093200962131653407918775880743411556937926488281868761965288465948944091607491162209782119083988096959224897040072805448699194916838458193542861865549130623852034631624097972252491454322539327336603825544615443537842762919422494653676542307686481752551702487673921282635483752772566544403210233126666026437497991661409717308193201346544734370613228624526930588158917107213650887387197663006941150374271314278376240411183164950375499977107487580828255750658105942450825249922055040764392440949437766277501981856918760122530680874157410570238984213851445385781628281312069203299935555480372942163934787617412670915973224161241169138844848978846925367651852140743010340833912375541487745122479590146996789665181081265022439919539017872490388515253986243314493448928896956503379224052911827568665282986802861618398389844676760793215466431123804245334872170137753617746119918871493716257235356340170996440151226918415047065267868512129161779956275525938368349177851331084822472336882777419155682947002106061911642090076262068590405632089864897706942520930973417566689761961334539862545379094793710850689454179108448912887826529852901044561902517362375515008038069533307262759730610983118488019409476750765971632959722364937979584633792428700093307009362542638148138932420192000834526392031375678772895112709777407655886198854417027633517754802976472854474642519544800263688267943597084294520497802362122332825413733282992212622295006679044255881720696336788083467095340049559239149782671894765995816392325979039011765519688584074475437593714033808767594091241377428937293026298190821524792873791825724012421023441935256402995077180370122953765580823124830752976950416169728832781164676601929734872410120474589796572868607086447027059408065967501119310447528614473688869676337457685273259226441866868889503515806109876470480655572612145198161752314912454172672478851027596122834001771226490508081541708749651334504616094874155409112380494607034667842766434031226007297652825977531671425294001563749737127774208728808573018556839840840837752934457225333543473686309391616098008637810378304473207692517522030606844273314050740516668184978762845011575736211218522042711708064227961711887267637698402361883891991405643510324685116064545771086435741124919315619917854698620782054180329112788646532903031769778051102620578269429179270632509566022171632106060724335534976555545129971483204841195298980783916703492992485426695500408377499411932848599051484784262401897929980420147533300602743732022445096233507114321006906564321736532872586857676461572583285427047071543210215245235720293862582547848076771455003333504406594457176939567637243694512057705414275811198123263497990007020813473601512700267506196819328803016767912319879597297885347308257907229112340258789008154164562808420886250278151363964651882814043451012704916014512044475389893481910959214110343285318918090364902902223440200688913367185787252147822832092907812607333781068723811986457883843376962288002980853356445592506030167825360389633228158332371675760475576361984526558506049165076189226979481230997943639086800455300413392435248019135653118501577132812825306973290733079362575586908480181666645969456031630700471786277739232192749416190221494077667301214691226640605151343027326757527284029711496844778634899745486026689306213783549549840851838831107640511753723273328171530814849974794892770554897533236857881861472627030754627423757890565996422802380479518755803647879307382881250212787395260836806756377900710457727011367761545466636694682317132008899333675423586336306699894278799924611959492312392113847523178665499192598173765561498297078976968122708517863803033457363238770385840768323040281091228882726901587890254044068074074561749435750494618992252202248759691492645301791726217020640761189525685206462119625266203031392910435149402832612795512931779347020922975919997036145698802017945567291394002650304788153784649383090772516078217324191301245106839225563877581783799014265997471161472601831054689298786949527772154834996653055423856029583702519165923957022271457378916132079087580545610647998521301889694601025702374844396807873206255991089704044580854011774379176648100674280071610262234392043778687280522740875895302312607595575213755437122979220782727246065498122301323237481204304095169181515972596326176171588179455093103631332291298378032544005007510484752490208037334886119425440459496977253814537889451870768210363271354291136555900136967957752623583996765051480919890886922376940384499473667923128552317168894228883012039465784527929193918208245870764937747387008250247306490927125412311458560273612246371416809959019634617691240861361874605559268006825810395811833902166272992734849306066782748608139783186745618178388015699226102178965244835018360761607968947448312855957986880789507955680885295391396305098774661827619757369137220480299969881613649756936819142603392873631453495536875407436540872495540266453571551180674362579652332924548521899574375127263497813385797466097917463557692441517000121921895133563806474038753449721560429039609948604532804127054208500606086709422328187034701477021712259201214807020023914502138885795392576141053337845680664829790632695476932946670011730337035087503143437119187577061163221314634318379473429511531840874310776577296483916349759980672675020188314170434330542952462138977799023751909569401004379850841631745860034650857167002530203357738675324042023902486285118078345681464600486253766816526722105316880179461287376014956759716078285857659875943142433763437197131100975755425808959794064005348934314157970618387346697152848576512616322540980419705063827467334068963437408353383709444066426806060885011562309553249554739331389691073460937334450723753583291556748928710280988153303715709684772394808203134505516134736020184450347814441015335244971504976159258037495947093710499040180722947498415224896501638043949918434251164596003187295840023574033306044215255270537354186070434233627187327793459149614769228777843252658589924232809062335129245930823806532333455855679183740565873467310914117933134320312383242315065091962561516669120905646565398376429816343218041935688638419611290616146204999784075074011060250634582117379901608006406586037262182357525749232287091589272826220946129555986540775218568223727574791223566069940615441802273679825349148192818096464417095122455726919697829251896572557665932964362966532337488954622996313391772696852674068027722842563269714191845461501691747653299185585521225867683827147990485282409529205770431026010359768727954597940902934058489923104049239885157744596298705981805857453341161926888795931702069573181035411113245260826576399671845898502828413982115536800138046421926490915583702180860755546949833252148261536380633868490635404243937681700942316610739119827120098601595642942509894658006792656812447159401922571632372134305434041699210050426117874151457646583401464966252565637450323032721425073303172462600307631169073861516985153480709023514457597077314578483051432357160830298727540728941189440550453692862426182750215005323971014237943930077556626718283320494986323606681953315907838109571012922732890710909979160718809848556405315422733806584937020636692571843015446228594008856281183959954872113475837561689685032438521943851742747162466098513928628971204754221308074666021766078916723823284361816410811906918699976687465405876122298941490362032792943042705746495770742788766295099882466684650023569486362150613930511694841744935769260557327755487764327123173298161330521199854265348699878635466900499563368380897016824320155779876697866148398965817651521851207099194198270963046448573560543653313163167247563220071222844221469061733722452283813162501882223189328821252373893636222596657268676827236013664173943866305876107507979394691589629498920706905414679834978298448702167881304319850459786322013290920307650285194052579159718177917141081848352502644431739677325399104405846725430181698251224928713750258372601616967185593993283907004634382608675040914530339843192452948276036596623146386207289621852754385888123889832648354103321571686504266370594567087182010977821172206482444538881017572752131586718005682752931329669168843838433385693661457681952277979077897865067849157115558968050815951442304335126971417492934484632454263832883361023100012955470759897089528574175551546536201948609325611487849460778674506120640685200184300173825071717337457615718001198406848208402133078913467617786412952758020676142769968198596890879633603904532970096575390175382228018821281555441881803677411332465477304684138014947269844421168770747073049339657436489787078162130532455249091086404131902724187202722079684912812271663169288861836526591672780674625155235246580262694856625298596945656946990094358335130035600737739661759659387474346798926175838517848081294712211316630137248646749365100152698666116277880593393484550882428698411094012236935627778946489256107697139626191681706698934506722645316397575253800583791264368321314819935530142410285464354531305422786276448940341926308852237269253978664629638305967303556598784390087956478567924620071097246049477874899894889336018500413483774349225465101388437218654235813738213060465832231445644291171185731220947182486933267339770621631032475394014525903924305111185326213581204356686908495751319351124988442245283068223882830348793025381637412458219590841386522412213374696820906798770853105182310433510202604599736898047370099599590280921074415030095846087957894596363840418907696840042249100959502254525239270874981197129723350136187194121660606512918262651116342291728807809147907385199585430102443764989553596343671801508640626643616177804737507414078027386039107186588813163038805339149201689253727539521208998967677637366219102684268049797636561966639948381849979931828324376615741666510788315084971005301676186532385564885703767854559670391843978092783167226232735081629744319210923437866848972320586206027480407371887535203742575949871173084689126786740255198665145051815565693176051980297987466727542395576087483787941303340133028506648356160650947435429148678904886335802833572859668089917650477927671518390932058547895063388106965151159206865213273085274737673213506436472281483131050711218548876995585660167707142216495847202795804348796694157208859611640508168849457718017286975814059301611067333064467144484422440687089540778658982274956623245856317253898365457303267799555746009532537231588491467143085404275457226744781719911989856634599262328260864139261234417975584075206480421791225807514226965988751771209485064837709903100757489288570016897624628235996850617390738761356304590602990732042724579184962764771230558396990476366474027444459871930690872390866109526306907222168845902415096269628179154585566134406155192490899914064885713411090612120804136104137902212413216105861350805747475047999693110779570508436197168843379164284649099971039909627351527209031999246987450432672067703509653696121429553936527720140684647170533426860395265669557600189119023106826307351150086097324701293264931001758712246880175374423067557366550699018827008490707421840456956052301939528275746429658013562157316630324638776497975829339039578133969789801708594822317738322646174652014860334580991804091867018213253517285696946263716684732231420161334089534302392134289348937238206499517722659766466005493535685081907851563231714659717596592066020084490354031715374262315213333548156882466372057548247317112963706923782199843183655698002427117602565680985693954083143858261749608608450445008651701995937928940126288503710984759509012545933150995800661337135686024132689351564965700230297054762900283523305419556944097532166448728421561403005358079578312813805023312651984323458067607463752560362709329216423004969156403546807651933412997371021624297215319872223359909809054750703455818576537609862932016971580832438008875569592430944582608652771350648248818739734983584530530614441512118272749011514860144215586389830907851173156291031283769321011581318952372115754153671379494796236500208146245090265215837590983994155325526607229113817926808988511828371341092998979492199101247708540761222832031314838163010669123141166989239077332712454849884399272399985119979688399961507123383682140922983519674793283715755875072739472410112160605939948269916332404131283512164185981796627478837985125832718562671551540969389127349567400503439482984356990714128879633049027884179013168797755124990984317680766294520163855190258113348195943584875482571270394176473361772807339315859469947502056243690980624543967943163271208515876419821746400941712906524465480316193676070857008254989344294453019413924711925129256091524736753666120005177808415680281034519110876180424134903554259603674874413624977880088163457801710933467055356646140054846437842673617767376281167137418154927994521711181500814492270311067852127150744785269198783915338845947623780486357103446718315328296385621751181030331371820565390386103183831329334290757249611560439125130645446913056153632117030942509436523557182438281725109250589706709042006746169434052801933842324939422919861420301975390447178704920681789772145241510525610025228153144824030675592385460363896628627187878742975045798456899736146154762784887600272182967881100938932115966187588181997797612984671637434188760084933359940921153460661304799807261880748313944593201740834916205524178858796933583089703561046197900115346286038437227961091319247934275917413178946418716299565429619990603307598471377839263515577121928268518014785323303401205341674851334389810796839879710701747141800439564896601526832984704371002340528321474473353399015860132943201251054756115963149120536909178409583285315727448745907950456642435834588573726675641616140478440167041451612118806590400756838609509494105827136069614225444772197159414917667279200833752524395231135087926481212898947261785494459714706645176726213726145607221912000234330018893839213016567494827290766938710543532365871432778442438647265727364103280329602990223882232102233184943924139768447573932105953586627621732687092466189102605184966859399768651806970598141785561253336882420492349159630107325534690246483343610370108472972544042408164558676000215558854040578855986198422498639475957240137439213808084512590411519071741561885911091022418653778925917722681574745539324205961258871332168507756820410332587502881162926595819382056296543194419542032621395331506151210120829782205011004899183368037809847408848704784745912248079449770634204539020722022655520991103859314226542680541050468102566243532614617730476553017647562395240748459174711764897814409210196610015110608006520610539928673043509560185425917469352600205635800764679922142402130249465647189922286910341196872000805139766304255046887665033653663125018095180502303456123760433831370356396304012419842606523759894001753125543957441850510725073370900897246990902858319378235577193717661815872942142202230011151246757251206966650479936063478382490010837386857453561473303114678328080905925356171184340248857281380026850967287108715366301528237207780920641792873547547487268405017795550280263157202928487648126670302414640905609669603760603755733910999734710094072933882870469793641524414161194014862643134794120663893036687684503489550613545583493580789202314715354048493189532331119645326641792960134815560903579006574128313222159844573910966669061777921125229708617418184791474399308095412552460269733324884114981722581007579852137577508552127946856619503339634031924307892855903707107580087243789892591581622289996180691141916390399603341032677597080911190745028806726453524300289793540790118294265546071618230647203125425214701212423144531864311151589443821294923331952906886183731029583820277607961720193178508671642089538511428862641748152930787199109086684489064011761068849635441373448866745455426347014404017769629569614382857389005210342938546311064150297587734724901084615333180523230697000981918224086983562778927765810977695834523243320004142398121082085407572290261281073819159536982225876328763466152515512749677905567624211768212376077697757559342945648178590752754316760031823458833076684071866833070979217454508634741465156113167514325609400405731128662772854898097184522600183027542078946240151116144295605525325047511938296818454603771269556108242339393210554215639804139363401307673064847325624789970446918747876117298881606851647436700704007408170407770418494037892932027187089471431666640238936401593903379553247290924459883741721078996629163049212086510318130018868334672468511267864789536889030899550658274744883794749008663123521231625946992779065953035420676112744426125998667819064337813831086146955796249084151608467094999883872705315686768617591824853994439998101999295773463748341879781441100085445680356384336368237475733957558800027017536152328167875049135650800886675862971912079810451046969523861233951788798881192705388851171127334821677046998135814737905575934538131482996160198583400176199437085089538206357658712210754165736540992362086993461828293665832153454051115625647822094184516063296518379199724691080640376974698908503829565729017642669591157618751475681157175151972748875825578750664771989357405546050502858919825110196712706349883965961237850419444022320112264896964615879510885482624498606122481097371526879393321331424845781508641978694964057829578860094065395282252525525070610896918535741106867597224538100945703047522576462406931560428824021224940989660881359819349608953289683054691671729015676741439167945840278113461232408170996403467835939305248292698488488146552624064143983929699651503901115620182648509978982694546031885470158511458444114264722067154295199305554501816776586735438168346586889445200739220794414130741605532819732116000277647671995238358857286735672965302378406605801509378155873558541333927753584493729631265651869243556634663774978143451695764816291196918995397473082046891269622946092866782894068738572330594076013280221613242573484303546113161354785075324459830028265213216948963165909425115088175366158487741852082419076232236441976708588337074599670537411939316507849723232273750078593897675679180491192421224158221866651701847384828413943636256393911494784856576758654000916630175401571326976191181445391445788759975634491312031819681386584594342273131979704429986275862839923091720123222223724837593606467965152375173639229622326489106691438092683874081249229399809680963384353623356288098029001576288985454675243250539260168596120771145828391284730944536240825449069562464176549624440150367547028730509557545866266582354903385443009258695154582354315233870458723836616661434948042286341442016469929741918057125367196161442364721254991453500469532970073125831551634017688311257569711103405633989720478074153805482760794499348468986844968420537946039770549887223077305327762054661684712033320723367699701547795328023719904479289558781018919557926508663385829056284146091530927769496902866160596230892584062156462526558630437277896031607122400300561346306723139693916253981844824380532151748131244007161690429896820513266208540052813290045321900666195347071307126589301421816621416377008880263365869362153951969269620614488835295275264854177022876908044893549138150358397580757731870408107680005245657380147933327299257790612311435216978393544340828312544628791521199431611466022544688643367955295796750721943684198102471223312270960710889762044378745686971477717886166398136317266711508174622335077250808440336192897215579183848023599038217032080756383733121782111494893512257790370069529808719095381820276852525459507441486522339163714426994151698372243509902720766532805203034016410411091512790802304477543214715838448650997128892301068198326482323417037746894803809477101381444371273057168510444055480129281989718142223461632805781945378132576400896773752567249401388805358588153704789987724015582242848172869080951808913188819976450044290006239901097365487058804896133639900583078478020483432470951766139529543392467463658316787012928971568540755204783665164536946555122856894060068672891994429619494049080394853101505744492289381533074285264999758198642448268501639932918033724708674832024314347946880826086678466490580133136768085343740332621984603577402557283668907052281712292187284540549220157114663758983152958705888486204187090764963638555980766466064206579218211179373634760938912690074874380542193557337939344903083076911624223712056559463544624906290059325574240370601914957455260460283672137521287987023494840950960098533785758540714803343452834411972442926732846385476999856579437076723093470588430672361500565722933069524620008209151816691927896005893850196283907905978350598685118531546878578882780883290923900656908053593409323781844672598368422234279214141870031272634431866383149246311829136793170955162560578658831485371988665191331391785616298030358197951361578832033051393250523950633386925825905644825246135801739962323982541885761187923374783164037255856247381243673837354232814381159542836503069547152472916952789241161049967506396893996642178502157745716592649460896005222231390715789535378624184408144925392085851348874920433284336130123499514940767655605577036238800097684080825579061129347516157287012443826613171056695211592503479670593725526334550060097927782143785748940242975029592340242158387762960817791434986365109187431283016882772200556384288671487523502841536589979090025682087188754878502435935200464110948147543099828647834676378332017500082602224465368181321987905258055820523284801953727292239460157198888697466049357098182945050774757846337857984872800085052131069527057405458806206782143395009641289813027842895866669420853105064471867563837770172891434435194960026553144505199589682668099394665962474906797205052923325198539793873646241710921272557772016911092753878962632735818138918257137258083896163902567378525815994317735778540120113165675906016369582998404912909059277140811064292408630186836045515083759048675845011917708616935996615620262266182653987784019638585328327709323152108251938847770462387894756921904908012566714124664171974118711603655511560929779204839591213790489009090680876807912865260086349577332000807471929195767319190222491609779375875332936651998638159535568516575714298581431760421498950916672027210699892942112030493798066888786396506873399146216467204851415193221741300363283488943670915942312903660404887244098535558935335814494371598088839815079571560713326623245819283066728582325502554067956291040961972232909048123221264688386724952839876832797160388288032661611854233719953655784123749491295338708680129309453608356225715659774617388290538226800411856624164010177985709391263539335381989209100477406104343948382013313166592887538882091957604302188363974235670248829810312438179903515231649268019466644396718979781602468698052821960623728910452013063676176480261469696131359746568569086249195057703002217611761433271842707009251930124622019223997928294084099333976646275054902887885666650192728048144178283124531496549344495651642456682322381542334658199719299378747112843738645063979990567043123374185572315358151684581689323853255587613950686399666445351047116268083513093972581667890476607572029148829098796781996854054351841947882605998778989294562108296187770961226072151012548836437290934700847633357474942863044634743394498619341017204150184162176306640544822519881472723480752020478346931396734675913989966848695204825300317004326001549639148293244644301347114072581233467643383840031257830220726414433664362418598701341304861664659853227352832495222324393063756296532861171404693455689020336803471977544799930399285479560526050407982776407191906675126248518153558774597351807105361900465294434724560320640852562354187491366679843494339116623566844197334951794028969442814777076441831786642138401943367213944420460943089663154696429048729971470624464118154347479939162110852208616117539829577633775732272559403080707735961409940105575007618451417401331360883019444923235409561916131966685307836005740154225665193395367155308122104461619409210003866736502911343574623108958725574459315631379396183130838741804660002059110412863015277785244637032207475754814337209766641230890467701859732141268400659225483184329686466047156857325529674008496375272414947489489269195353426152257421868538802186215686087927498611397406399198725783610746976367654700569680230544458535279006154692849009236259861001300412668392282783405245924610751591027421249928112824785572960531171022114127085392466068753714135244622223375924798908645641895407940982639301899996088980538272440357197475482760230459591660322719705752671629533059908225980859549241256407179500469999279439039378533610339471414974694083721419405412106625863149067449234687573809752839306195082121534898462599376626521553227128899356275714453198908188605471533431878413204703542723551970281557921390484254436440771088331902648307741898858867807146933750566407048029921866957356855828029760915138228126792722661535746097137382918595461284234007942341953705527600179128470982765625315129235883445992886694938386342730426966918795254334023796088566262389660354129377785116717947073407341115151946240627538547207357403532612138224667583677876157747965533608005689745819274126608455511597887867113452538486643973115206600238008235380858865543642965972695292998890248716984891064619829943107754548225941863348796477552654968405673643404655446266526135558274087311703225110425811250588223188932176862229625389972628516188541933062986285071416936345587339329461067486941374956834741947459588375098689668949794590825482053209536405755264824955281109495532526011150714268970002053345971343433253714447120699620814073351295413890553071914384706835272702070158542257194224588636803906862278263121110471026139755464289111606889241461898380380126365324779076082234883664956450590454787596374088556797044109578664016553326041106083711595357976382881039931373096785240512836035700053262420853402721265514049493499453515842931874496055941750809739169571093892228582092333845177992721988393999352678645016143018739380761469500536078287524207131720727846208745656104810603908353502279051862341874468528284435525049218752087530183615514950610109006453863994853199906394320516469274795074848592149451749831618622059009891564054049750626045291760772629318379052510141406865567390121701860017730266996195103733126277229301364895370713392803841927965020767834983029011725264434352068226412737885905743804264706552928104536386166038716947131123080641696163965308164194175770266591044890206453957582592462359244391187229432347102461599744329934088427237732041087449773490709003642824208769118206248721188633475155140914598489963148612019330761272742476900788043929505735732513671427204470476220137872572628666432915910600813576823651292141750981779068361224916901624063883178896538167688974067048163861996587417057732812464498368607659244751143226989783157513218657719565028454981453770368940551059011853403366713260074175635659307195608717199596351116157200928286602471491019945786341188718106011871405686774864125914667826980845262583307220226247059831361674332776723661026757027478010481063704702998707351563362229327152898415066496582853293651317139829748752143836247048293116079295363021596639027909065593032176615744453015412100037353382224669964990350276722057552556090700756340007554738850860718428403801701167423297368131686052248845069122559421714438792683723984767090917647072548065226607435037578410453142643018777392222194982467450747246594851811408621714285930838966569801861309468760813982466824366677534499705644625319978160543109551009754197394517697087000689221800902078887909028425188262570555478072730445648135862344858838702378178766822656246970039823543147354932796367659908595381360353282626957286345285154927018963390781394014139036212996635717643549268435441826458116292439640693758116416439895860315633469375010796427887106148288072394691619134989122479253147800858542904695285158620807481759497204597295768793138100433728350973294872112068165257484208074326763725026186791135299308929814387577522751853453256519489426604942838970766427375648476792686198431365589896921850375380715916717892852331340588706928622161727629545609305098747948122238993180689669497560636337970098604061468792587687164405590389375649927882992936351028985464271400708933820223895364418033862455007935009684119016136687329211915395310486135130661732649623337060512377192666544472529635367126282292354445347240027519256192098396679981015778589172573106723076924506412252908198291013324735529656981915220166652784805529121619379039553710610468815692933508793312746323679636424093445795366673668227010250168770961213640037782974616648719712345246607612178095944371400390725841478355017121222512457220358033988837583391361154621363388475184868314336257063529805389942305728735965850388137551012791260250938222718777727698504161293014475891800650136979235254321286189060551654735063337607935532152118072305238636936148172741750966991130282267077852338509696380623888218836323149739935944283646711114072551457339268058511000419979073137342724086505652227070707841085362294857703122073217989702036176869364922320498797936215141699922114699935703881885394070594438123526882583987107580640394279773680349431980589861729804009735296849691184410704932879567309005402526623844007218873501971480179383596956960337389556381606511035680074111597331730263206752554773143223302534975743795574954411789522352198118589793849781493428746271276298692067987273987016726739200109629806627744402393894002223218302825398315111325559621986140808590492408560072519597308925842888204226668735850061263198494269608813250564380487391837355171572052651511098636995526815201178542339696469876961838243215298981554488467609519905266480034930546633452031511605188612519027601827443624351765491642132649615412113290528083106998595114861930109588924753595908100033554545422891877565763223969305582248789005357742360656985380077691043822313508951736237994970204039554632836230529639958549607761536935978313562773117757677173862093957819614017221796017349160732632244740938993550112165677467478498944187481532836069003980533900570860025997531122977475762884399673229766567648767093044035659014881436133680053137588682153655677715515812600956103912961948249416685260223084195821003432072413147673299833795712068014645467524715365208472463607923792059136678553082536141857500532086738332903295133054186582215062249136628046377953300001818629965621248207598773358027448614456618577347596965735193360900229052454601673744552356588710184117767692930932538945490757456156806332659900975410316840112922947017758313811559465532248554553984472973587283343060132690006719445879677199347431335377069251114659652878645392140330736650107295707477802071581762939654335495244600968213727901367222548249147732283315839638769362332795816451491110067376523082011794178161784765615814849641564165411331120654532677001681506147074140889625360485737917915970160123890077498272822071243160938274403358736433460077105373894373676550887800267523175273325707373037588064646776775392944757316257059333711798605581741712794377743182357447537529999022473576267032693584012886301162473084916025006543406544413252811229501400399105559458880837258960073454757262642041076540675868178579697035861470902522241615629964412858498324502360391004438291275608376570747950234620707063368631773175561556477795294745608360435120672005356396825519128348133164487337256491243152184472551291828521303556484976483013715650019768410331375613596764223865877926905374983282378451135883238235238533895606961919990996556053598526113329200054826639641087545123280452704379906009282763395483473018829191998634014430681677719954204898337182826125420237933645982686982713973513832557858750429359975780638790438904952586741951717458133272585311602343865578338193998926013518946114945230700949698585727811154611996773931980632979447847894986215379324006088358459350174766936583619310781393917657597053835336184581713746760447626615765154712626474825142234377006445375531063888690777749392245233350267593790895434184509266361615519458528642410625291563273811893736982476323370744222154031155344216407199834836971484976370373655438443991371098053867130684987381560269030676806284443177678834449066407142474797259197061449890000195241828123878948556431404341221226359170177610706810474695531680553578929123513508271157970475063264934698481727909166397970883697766799107171546123565318577885479516961813958601722948933354899555086730340864750520177099820350020243905688153959530365851311531811060674508243419092243828778799025298450045630380776928661695798685408934110211009508188021575758803185996515608505726172300109992173792671987239465351583656351590252593825419733561113150984241069011432036192052877776765009819717763761113956088950775772800681631384510335136615085939048987650406989318615260736736930727841841667816703824617748771130486538402418670338533073044332639167975564167174894219062438787188459036605439648107605896844125149159386907213076066276475438917541406282840385341179716660519020311695754605033165433525478655555842491743669184157404601343840201802648803848676508713946547571974706642136598426494423014746975209060490364792701432826552266876740532289548260704707352278860759367283421049452575714327030627304561193005366436396591319130132999809333129920001619532381403609685198386398891733409176396088305434635840422524583459531630588027816243075327420399876469466303110989487600469079489035787550936753399070742671270516846973741733135448078179931439035178605307120328404947661059828941618136734210510018469496468683449474752085637304563986491100629955073155922147753216662920516465236712122548469914569644863910679082057514154270012064537660970130479203165883024855680873190442678021961732511779118053887470488251269689232766559926515627075023955804901287374316353256488059609722760234655366166182682346598302238092955365051917215741707595148911887784512976333625752321778400474486960173776506536021490051510262690053834944804792827880215234721472816655340195101987920992362216704634138448701146261243459865497915349202455589851370375660407627963687784990132911505765102755136709063576207700498178160731745203561166237216346705495262773187206947016227002135949978838214873651737132591993214279935352052935964881084660712097067979893909559784950078123103301811710529957889827240476607698624619810170059653883388021208823560122333257205295561706934208869379081358884867662470386156869233908451605515228538556522423218800316972568361533678048790438884751334853538587318827539646139606267109612154688691232653865168109056442591499832397802790080419146860925076072996116114342554998897174528896199566274257811068682589755366754389627092632105393200153382334383333806636795453878947497422988089737727070525219832674057735974892688329273221251159757377440687035331353650221604751471228112409839502220520423643425592077072591425325729068285281427633169066536211861825008104554684992058309338378375620415780344793938982167122048277738062485605328410395917147589771103889957102842093937033493632629829716412993906178076128116661398247111456537007946990288689377646106904549846814701362057347082686738257661582651418793954381847842516834398104573471928190965702496182968288194851021828632303931736471843532620560447908797571582004313967175924192891119961478501800400300019694433327280448432007149181462478416374286148416123458086702410802788516888288481554999941006970038810739571342289698777864107270521244606380602983657565256300639345687319632390207410164155863061460217837896056645688291769530009648878138250388640004185189120504068426093164809490612240445035784607770858087671786032543719637114859290970638834981390626907653525420173045524209782684409685066637775714050196403788876480155014027136195151865898802446291392271925545555281450147785119782231441511256049015505955652406118538049836909205824048466919785714549927999671219756217058042603021299875527279961811251236812120556290407913266603450474254865822663144522331715039957445918966158093157601001857504778615365882374609438091068006282560522212833851771523755669674335954036817875883850099281802686964786311150792479612970957375488522145349462532119183582914396929857210697634762220247152991831394043354582330739514518180835869283376016010799768563891839264482103468159436649199068780369257952389426827812922279687369559110603352835303905874018751622198387223793411309431294435041937241425084147241514586414852728320143231144982466394342215637583002132312572447741699875658760341533124714432840221342109411377662385717994339785029331432423299837197270785222191974448598626617182732710280420961010407279953451380687709027798320395180431314656007782517395256908969481665779889984879761994499236213943280589312616781002007026199159686988222112401856223904271900245074034733863235620687607781736312973202851457945028030702362587125910649296222066296417297613922951935081808764877384774642734657539573681599109397365879794264131152215176108996018131820190693086741726016243378612742552058700264823427528338303600724360727697243314423528384094338073630748531249023351775142292796611603190737166751405355215530577992864949813719313634165716109208386833302686779585660123931944897074102176974018100910554907855668768502088937250611222955136622404983527905204508518273602677197405963908398656656202725691391178171151779273468640257582290931397935783493105060855879497962982834513563827143959203457624021519645551711653730631323677610717918655199260369730106546621003916801023969216870297762289966523030156774076830955178456506991092677770173301841617600087427136534052643239186963659214838366911669125034782238653273116834421923773979339451749921703691292672324652954989052398497520764397027448487430908627735017911998343129593199347121798784737988287751167177666837766390114790834706228605424794786003138366809444716884514721940311874786326714899450238734326583552907416420869116582960505389767876000764252086217771819381842233081488449919846542390492256015018077244282230007703530300207225956872365879845371869676378329006538177099806719313075968353611710623068460416517909484092705469060991287312467882966429520564212999276673667831594397708736771552503865618608029198515417733486660649177749904656648509518173628905766352203259179145477342575158192049530575294760970915721320481478619864118622242285757102416773451003969628548924853062250318785742279657290390405064569853312597727141123192930348737746445612884797444338459658549498341534323978800362869128995279846881263194030734139186394694847286715776608196720797492168462959146166022435812429519552577305830668925187899258363457332820226791020666223115629534416203957195290929235361618899797311801183709917698702884191408812619718518857120557446533020822521219905725658799647507817722226550437706511470543390130568895338449318016049222950217274603617807250382611340208572938775972312702444599963855979482523467821423092247397549058537488300665948070153111444353941361093937780760915907046820130454726740068481807542242513938389009330398830436450412219003844656696629088960092533115939924790689468362876376675115819573877824742155312458472753094918772142228088185388182064421586971510852600423497537976842636799207438357097773747011485805741937166162781116984046388929623784023947868621744363020549871528078478535055070473024656773331273865341047518094228018221752314875201854450503484696203360456338531326637991593459172914567086198011647717342873647598480083619661436899048893247659069468600962339409908453167468157003647257498761134785409611355786174658745484148457936906355020192431446544189947302251602584854084745378622088936613722727500531525737207322944122337991221732087023149394883850408901340805299332381726684008224428850885336092895722981268184471775671189969722386815232012336790171206782049774258527440038901731578020424907783738734522230072457558112379734332806563588017066630874056601468147843037394540905833693761025015413997519260885014459544921528196156929646042916889703365004906246655438856867386237286200450398595323757816085218214530511807674475431253036164382385486814559452007295611963594227159056280566295893247797400116397840972693982714603687436107711370742300167813455787802282059323471333713113199820052885942853902044808381592743027641847726926842990339434836129543415959178192489836293232144049407314588872613453585204720266863693482110295791186070812769697725068956729136818388663739774426300475427112710741165626977971868602068400122367869935264974875604759250188055703110402411730290999353718140119783091515331473792449893950314604944301643363591053502375927627563172493603465633044601654792331476649768991140145767953567715075535561539892238677713132331961970089887950142616956506179861439127015186259372466117631635843716822505166135230409485568193474947028454592921913340892480498945203932273647417602897940919165947029046712627086797688343032127565840453567430124757376033719677746704422045486132083483015634401544935093868634888018375494977057419679417206949194622208918219625601620074518357151063973726708535735127514032719470597011065197325817362822531410889113051364258798777466181780968336867173506257979696450141196430770908093011934347706258011385274077958641617684206586931861488268856554338958730381323384683593259749300896777399391021280463681335920382583501484624747801358123137972153202671479229751735828713138242102373159053258407282249927598440390503840447752294599924602104058813935915072412779643887673712487304745905611123958687609209138072692794054528365579434546121701261979503405327656336911668939561305904825225400329166741606988668750449995987790631492887294214606206498874502892336714862473457499840132171403387353956155126634277962538424091089731257741316563314556297566465045835070409355959176346774689326399646429605748776864520741952404423584446387855969085826729962834468961899373894439630598655030543477523623555219880723936081481944803375389321231919795526256633327274700173493149051255804589595452865813134741874796602795454760446993922499714969818582201957164411216499168477385532842014467618433259897162518630979399943446297756586494634172281634413178167234858451220889797379317196577607442663594353343587419284681791127703146037839785415052814563545097333728519053102230872009117488804961544057508053811371667920324657174333188122141460521742641864876315934249524408691283981071596561059039689236270034366135264382531086596012757993424804448425418707190453652147660920487114289034294156374921690329377280317000728507809847448172146504852797880641779342572428932216049810006365078413486665307901399400987890443061997300177902827361759698215689480125724115131367553520402453703870254211896670177482687574363555835334307436564533961700274137820982065430107971084451726103833092287050282763920710840292593875891735808590061604706604631571069764925333812312589380017721039420192136015001584567609951029227000478936235931808954581219739570185871847614769533826550150044152498696783916894918124644639131219914262089259463551970994142781736707875203109519592054215317132305648685873271027053962841446648422001254398740419629883974612278246769736411408911994137632989543094158583502536099917002903355157194975654207140833261559629541040798201730939085244283131896201295970038782290349652909309220502405452371331591889672931899702098396289464336778935551508525699397016454109128154007083326269308458013890310285860605814879433529881005138211689535978482805371609353413970525296181712373384981686366714182418783255612291774316873810752966683219613892121318917779709305209786167072594435537697174285994973554130923797787754429560218409290747379830222304982413324978840565387826698270344211884012833027698163561675130145315221623387814308767128450136512896573455142484950928386011822224756192133502434280608238837868815156536786506506223766424209347723184036807959839842251590181741963579634979068520517708333424973413398081319948855255335658025778203854873270280921546914529011398448138389976037314950055797966677836686599255251128810409629776737513160015025395975881839506984139544512705927040414460017887550527092195061775790108858373492053744625979800647840814977706813613561713328794014196479363672979640462217512417324526829395339381363246367142600307436427912468263426588940932171269715892739138453339347417842569698944071679077154522068373563662193788711165349002884811994032193642137346855525847567339100412174161481081272025642915167576366701839344824849113872952651252482042468697197226062392295073412181139291607544560061315669526461186048430557728111688397561466115236838133040811853749533728923240263794546956929389084604977005444404615898302434475607143826944013655772174985550800128541078764475816338395758183951122494173857848336307921799231697677131753899768949372234376730646017236037962191144987709058473797369227332272800273409411227656820698867413708520234355417404486058517146275971112667722716705811786457096637676289901286885460272606720975925073287938789173541533160270550502365084298303501355330403221365515288742031348578725558286049697786721349608963251332396211357465227873817815388425429734914592910476360270335037001379993710177105178966786720897457406449784410637992983857949181979227837531124473012158836677331100263378175793823567574145179440170894916762937767849212321017356905872904034879047337650654557403205869001009474442241143855708842634939477276901273549678309663651300350608149575360103442288247873145874951341286592526567087548688781332107011774965482789174083232646720913863768315573608451363205376308526243918012940934044153913110576530330578853081551772459846550718085153820863405855996258037839239358526453065244279145024996433976579520862113923516466468235811508284789575737226678948926991897971526548331378913408261107366102919572071909953729603935052000699634587199294868671924993910944470222587681716206816031581177433694478898882880068969746358339240407513964600778686191242024846775079489190355153285861029193100843051547802259698422366721424731216834034761295793076603318644831414064590841826465374163888353204059302847858872334497168529819291507789226427779475075399202667953012064851605856164433022828833109950459057004717899389133258885822811456315984305259327092370339475906827334419816732964158080210287666307280149089697878371245876935592227115323583513527869118686994994553335790851677220420757135627626741039427339446246616035261989141990222967276813591040167918815156980256283303567471054428939238859514232487229872934151882572081898570707691146278646488553726606320777845580760577675094562374410585223269904565883259265369124177668639954540511586875763053055585599788043398374556049486570214150538359328088992939327642322753670309067473668782232832934997420778651655694834166222570085499875790729154526594957412364077880860303708377725168074020247905545633325921152446409197066138196856426647375615868323271206191731527551238305837514660780726092190836212960884693371604900760852205418605626134799731408235748556126270217383821261550076676910372030437602048116540534786649969848675045529744442496495138302503791652396547230119372093573477111099316701098730083760177244984023276367124793146209296198823896273101239178953625967898630273396725734955431315307305434038058975741253305722484824035778052176493214882015089780554516024753225152498788181035974509673228469851326926277637320474499559248944732620179406682015310338314735399411137213563904079922067888174073931743171551751578068304184858083435381766146568471849631230024561932740828205542892857705737526535461808373107562151644788597907233093216247343030841850910646025678144862184431653099987197369615406034038140537261926993273412871659846753404437200751066995693550201028216810151261184774947188280881096498146830410047009800750429469348797752577861348656669779085463148851150634617109348157768199586970345243099130530323129271006636537252849535209538510535475871961534740601270523436863160809207443871912957645987867467097605680686696244024204991453943745374634854019371339986402115840907138149684011025591079863289622618018876575518860607256414965656954757154333014261044503205107716597904981214228411910859991974342928729252745492545317400932429259144698202199109338702089794980151490523142465295655034116250049861079427922639097161069554974831131893921055073769588606756124710177718899399415940791145719193717374216701790416792551381910241125729390990297518259069042505535457658238056949760479384960361268611253203328458542334916646220921810694430932880104114201557003862181741373027029513347008568900571455853587357834759407548586675071415880561206630196925241399558329435416063500271131337988883971886772199578199340784280161796790378557484736564330731708493823492170895978572555073031520689051425581267560687904790389341068308583466284474864865889600529732896400820156773424005688539320720021323566560302925518612481064439783021124940792362946818793835260796562190982015414019102240730650810410895624112390772774921037491153209173924079162418532765462500854652178276645220999765622742417025713263450561125440353279733731378134197563701643281586381318098882204910097874463470554000937104853278669527638302440982521997384180913093188054819214632951604793298346812700842106587612351835170634532799337417938526976047221530635094582668762539950169550649502777585959199803714789498925653141014716129008309102852762662404594302154611596785923421976560353357699249623224344859924787799626731010337160573357792002672711979324003834732259668990761567720406240803139348614227754890229545880724265368387048253344574133401165014195958431903347792592413198354730040151427912184959200747816126280227610958689421385210232176648907642125033616166339831993294917883429496656132496199414595538810367568186244588531853574647459831214290932467007104902568785257044711820077382710602594334437932802401303202192382561928446102940980697847250708933662259892105415451150958708939957889517652725471895831800220625934657190266765799692336184630971548983222697934224483407615601301502738982823039922914091360064659832430866516474385665657288208523718783038779687666835436638498731764511716892428128733317226732091422313607044199232866658561067156304049097184152729258019365551646206707998178356586183781155136418281714251651260133112256491486398401522723473484918778882440188771848102517545878729969369515902053987693384398532792686295193389051138788701251323670821807230065089231373621727182805438728942578358889054532290826672551077672604371096992000818459026914932183073129035548060212459740202433793108033806568687554876565416657843428912481481100817983336375931133779184763374740930359710206957012296870792082148213375490047082931698302298735649339236540302633790840234277274133808162690867727101949507452147586331436719478533263544242462468757919181877792570751701557799860833047200952830067295910085262858631650669304003241039161295662983241090568068996153316252184567010620653970290115752870200902762122316846745720573470928187355701327121109622903671961353111944779406400188453552967320673811401113821054450955384781999940011474878694685410503920189661625870253089218822486747301832970781669809514229305723802784406595631602359793465384174102372577967743193800159014058744475995953426991812054618167543067546027241368201380158943991203230492982887463448399609084642447166832679736880884400649518640892251159096880126410077020719776586296280229827567486825499903981135668643879717950356766154761165182396068263809278215955560182088719141317223201014678673525797383991783909975944997789808994347973468621657629266747833301681050046109228866991725271568403985069982469667260294787677704994602771084276971570192335210358358286739035481618638656159335890255441048448887586685614169856510273197016215522126159486798567385805509060096780711053262954159694823100677216856821654384629429950546568179520319020115266195953236232174838767198753190868618062042723950976409315540983319951137491948512809502364565178080916414021170151520051238939543138313753234865792631452262859302027263218504494691988734587041461236886673467182440962451605755612348898540412417645797159070685924026289458364100194978716114494836174367690153527049563536002123324799019118085430006891527035445925659829519084869187172031739169840739357167431052592584340272761583680188338530857166385621666305120276838389690982350545098187939973221475424630573480765082319302824597464773332205611007315914506284728904290530564623547942115387332634683991578170207190866310657456127721137010160411947994171657000107546593468620416941121140236199963036804041482091485487226284394222385542681411178383624626818026559224289669227352070517065392824246812398354322809925433653499257151651745632308579873509316352481618419205769400293943229645124356080363073990043694910928489605258371083426458629756540059483588865938088442198656670650176855549474295708135581673978008776032102188909211054118450782699357737955143222891791386243577286221873475457076853674412777453176205327292407095892200647500034882626311010910564187543192512362004997388659465379407840566773699261522332429025987440458227596538193973712294054549199694102740868715146217191089584871932584765128163718121922103553299364177931633935907727591400678165259103628856176882432772207824886693348374394593993837488985640831115772100437549065681416362655752035469082046774885304981595725446324653821167892062929554130747022456869458845539922207043145718229588887623441789008165743212910056939204804819806325860169070688876092578462840356116698182121353362428428197660059172487732443172344191579627420891687988691145997263321955851275728815415630544781811308675810950716078631671455886551484098188969317762368765263272858440691408090568808784383352768302576926205676899963780004167058795451831491999338805936383769197476079279816736675139121282598108341631038125731496290510917871910834023285592105043275778541543324598540122050719484819629408171641261034569982105881159271755165938436207226490032042352403243631117712188750034131561953967537306736268914350956647964366961648400698085842355517898693056429807155077164482697978357618046771305387351041653492197155496136927153471131650243524127694626838322284083811565846246573868507491723017518290773825619384883439616377640324898073945829190992118598530597517796564837560931806875131323757458764689045306327532725271641653909758681126849770262852725607563150513968621500727028214024036742834872661453874106510112795524572496191844345714981537447660810707038469395674459750795864549700461053291027734563801000491435412599805178761588142676312348263885357330044714343102548307357016549168589345293370709337020830259995340697825273946004209715636914701265370820388009701370219036504377048722990333781941322949719648429510387082310864785263138881498674072028630451358197250831995927002950126457520988609507545446032972084900500771525702033043667457626884355830045892874060959054746875672738473884852395933708519004622315814708045887865435540615004225678567932000048988043208752829745812861019411901118406083183173361613801811929658923170456876030810034774770466722810250035897902239864789416946670230795962907484491367835982582063998267849465958605071531895067380115097190396909087405456392254966747721312585610538093323581585551465723432751892257862051983884308704940625893320827875102329210228377511083119839413184811995798056099400349381536144333503116365373648082600453300221251696926373028599243775688395812964028435967166868585044469088851350349324300944377242004058840480384731901586284736127274500323403766125353099184973284772670565900473186856004416565069205050635716669993800789097844624321860339385992194448263935010005701379857188212785951130591276402348785397358129031291153249209344886904632125342263334771492570566403274423437950150998822108281443840943113932731797843904045745690029843041613986813501406315189218648833520469579264208243797664729622562249133308525874535951819841853593935206703469485136335352165592760159921096781313925490069098917762900591717225004518106411240708847856678139726264606791520999452012141709350472225185738709319069294359790350027940025324698993754293448239154094893243405120716138470063120480038215595015373509857214826813256563267652137911356066066737787478999892868614195102649118853455001761212678948393266800919194889670622336192009710953429136559729818626548006940184889939853015293613924750218273526189596032138843230349633894484809287817954110842352348623927215432909848783629071712685076228913612082203825270163207471606698851309928974594123061998329546779252367869208955947273934679908408266980237908153487865972575978636830304111794423556383318717819220449418244903783913605787461931215018897379231388167318943858848179855160916221150823919459192017170263218001623439657371408316932098274577776364845202992194846045538335110052559566764632337028556415670870089804820199156469115899752703045297463164290977594345489197486994969191675009017011236671394719535883118784418524145232283605785353596409087095249272380461092381122172715264301415671741907891188010722582131012560382824359008188823651896135546778506701942006880047594530770252925876825200768608595261230847465848270139390618916770050370698968786470999416803219279703814044337052554133508474916839317302053965044980301956366384618693286976411261631246246817194179765621986737835533647680227948096308814112326077010849111308781489554570540347442880368977925308771540221409754639309481906506953598408150884489557307761309385143894002357861795626102824963549538873123764567189207358735199437482422443586856435453455476088996268705691432873414012427903970937810807098256541197195858613977282378938748751405592103077226762056000697874505807843445407728176478361330008084689517497060084465269497447695714798379987710491652021126110763090611092142563210879929968188435484787790190159561660157647420011019365337121649147481790501810615519392399989349513569742149452388047835543916965044909313813366734414706361115241522355471535234285913924976482871494442623522558730440501899821582327796290583551839657916310729702416003534614509921233867993186777046227348945396124010624657884354733869738145471456989111020594266337184060264134427774962663511619399748366452786977130291058745864034136999110465547812927897035403867714726736418169364688110800975767359151491352906182553741244663303546783960918499719728934739835771502926664331150768290811196091754880412289686430345199844395101820516207037966717494182677180024105919780883278161012182292027550884470340903147189968884039041201888919664832578971098462410295889929437307429856643823726906059288814662363203765105994506282486383223658984258395204718759083329216676142368609667018699642374778819391327665486623009547553770942905569932935135369579704402002578336796617884404308850130644956103323297964734231571415448931567386407843019522107869094618740154618170902800438501555009014712081778504107720018475285228713586193412170353278143238789510318118880181164064604080539210318655760905637009321880152974168843778317486146615562502964693846826947583709393716774544994141918941721185358302662439907075922931245368779075789263536366316143266430603121310562989791691853627873338868887367293462625821305706039510801005308539300311013034144612035651912110977047451810069702487996236780466385478746823369053829786559343549633781947973950181050705504267486080486552506218383302945588256932645408288264321920608322611938862947301628779440457887595014759529795991987071135506885751730359355666695810261093732284289913601391479427292928979705384966886904182146191736929100511478640717610677873372065695644339209927789314983505333133625773206476938548959268200806936144675551969421730680478471034863996818683939778352160615527556624194870292084573511716277192058635537600929409184846392007293606436415976617780270478273757699626547463085299327315179081126992034019459422594506413196734551444552727532471379904666558692232081807255582379230519880102223562927699752143833130098236229848869448525082358218811359942279899867224963693750815092389878589659541380402059335449436206040607248373807863203497763204082507131133785941047789586905027205027093942329857666660228966073868458453916967359190186795627823110118617144419296892680101024404325408795387461548535764370498984326255286047971977949663334756274439502503474979457593009079726728753544605306727936050154883466572876468722169272664275599984379489114832341913922101021690066008802422692525908027719886062203568969600834353199012217897864798328201136421648830113780667330449875697812295950252532356580593484317918850113178104251636394515240185981693536237740664299900318595283201649810973527831090555197868325922625605219704885597952174258235065776583427251997932455489522881816453837723327429695834998626973012355783525556815299412971863846111944511378759855289491021182765889012983269086847620947740149097036964722211654082629724975345664626598290253502926886409993560167233305405326827436376249363480251210151061225135600829682226141465936423221807089920955815790493484002515117429309617926758022701698696991043065530712201987637305756575744438611256547172651090549459589290051579262767840640872581003069280741713129209245274281228985373781599471481210288933721496175554319501304410871840274946965901073048777049441173634582583489505908993139022030256982366627205235960777653788121360906604141090580135543536960784735701722064656099308205166145152284583422699844113870085472631541234622590373343005321038386534912449910729341934578783929388440451154702004901654274944570661223328046024941223202146557700468824716879110320494777341543756116751385927143842655946651992117396928188020433119025564824942402905124913944605240498947796539515618329498047492047428623281890285963771536191637783857975902246976682800989912821611696829526681732350460421128999830923694117148688681317156453397872295854690572692087724084082937684765278800369064563523744926130100967227608552470062071854168477218223360319483545384706155402553898435602408831427495198798867341451183848874567934980912621880217917848344058345310861776044892507536618193426801524078160226517041396018702217660947702854925221262595423259028227426316253809081298628764932787456491437717918749124347898777092668703355778600172651852993273005663906374606279044161586013497213983490171004268286519717689641842890379517029877550154259770127043120978942054226613794943853644531202334612652904239825386900929495056380128055729363518013788370731408398936525274505295141029936667379720784573679315443302740505774280530455704605669156834358012793826619505928337304449980603700135530013694609175996643905876143919414492282094533804919210254232623131274094084239842210560298623692729574692217148744968650103889496745664458819260059974833539229180164982222678768638768840946470272342134145439107898572686314405295971913329941461838984891029847572692525436035035681145565278337756173473536457246271276549882206885409612245443396115975023946729578789687001141575506073818750387283780941583221437781146884457078516321230187245188232266264577239053059814720832554895398526947776782459221020471031423811152266957995975657531368393965792804006256272415729646122401546503648271028276958925662412929128473491822319102033842678870887482014588616726409622832237600479745449720274956514715139560084541130084343963710352079578194773788158598426505572044581808219596363961808319651545542862169571655125217843329004149332241868876258425333555462412915113974406477072240735602712754139775488219423994857226382006866320091074649110632402584857949871077951282976885595297215105940199136813257609732022133036236803528324028611594487537567774517557946335885708649574429046108670756094296230393553221637000145682671960544923340660785290842134131591159875901348956086496227054276817185428679028646693167273440843001101950419504286068703904386815122107411443218073950511515097280816588913608241988073920798744266220436149757876960142593982029604957807220392999281737537521505047996473709838822170872372214079689156252805626990576911951803749809014752325822892991646005511318625642519648279343026307500323291531179017171029239819053555376082486911422840956189759131248349616213016348238015264834871805383076111601983966083381679748532203304991038571038346325911791775212999350718274196370822601280445305605882664620379613964242760200670800797061247799858772279174236339727248287497702615341062612181855394526522794873334208741857169794847945900242934875937361132504534346689008752959926366765282904514223404209621225487972865499012931407829848175704133419484054741368286920202640555033568510535684657629394141847460262709568830416376824983763736738890904712566947807895852661878999913983866132079345081973064721085209091442282251553865394695574558333524599965065379147137030655986343424047524504756787401318100184888948979396409377684510119927007904050603092004497171249325232521805825817293198451650771571892159798345865065894105882509679991084775988544467661821512400527945746954962014860906730368634987707608195346425806576179764436414261812051447534452509217136399508246101702091402704359168240897539455858895160702001533979866552278663916868388313681170450417123551153310278914255382662945054191907331247359961507789256464050137942255766111224079372153655232813250785647618791782718044651017223327744384741397730131771257106994510383433576130674451799879122958213638558145089911151938492661756246004865735584156989413807846380575842613999974658458992540206069167301318806612638679407800909764780969926182384020180974697171894903670067075544880245823999903570955262750150049470293425541721532777097690295994231051244173010495521709254222087864981736622857520814740829044554386823882497568114568618871660622724995274041330612576520370880719113614396688495148526883170690595799023193792408594883478346879746070103482680186400593048355657402049467919824015783057342243585792838277997628588332431881581795308713140547718703190486270768934002069933077890823326639385968144942918344143981532145884659675753272793807341602165353773738912186757003992333809088543547709803049727229687291681437922386614121760335871038240542393618816395629030787659446936455752502513265525740266341504372086202492883253729913022802625385140379246369195489123441011011761717271557103906124589169261075341287307780947171038189489184324023692121127519611361044947554460371929996612181856230851809411111212864354095539714125051330854460351403072231593673864685405602201120018498663997257635459882519124674073161023778963961883652562922173399323795981178071386634179009057488389017547432260120648273713638771461538250391953928692876431706527699108806305640602320880377687826605994352975597623760077887583462378928293884960672904073468728189737210236827611519419770297787240360408383434800724930902351175148613203727944003430906451872770208854906295938560199029134172701338280042396052422257820289085724248453077799928899478493708413054246502621815309285432780587851808029994239139185970389051632469714234016985648826824963060162570093668406095940054564618087422975987726951254745968742574636865140808167494523304202089732612271928044131074684488098977234760668421996542121749795356315044462546676166014093418437199838287089442815405445407217026344984173988367613317380017062313265502264677867252372544715146775451613018526804505441052507087081081290157512797134688824136497243160673022875852523776598055117385512821679736045676270843848365255128179876507945342315591709418358837836732135966438468400494259297676493645006984298476037604482216045793334031103094183043336377512007020789798263307456764110830360988922551915620859334080787636122415852816630550045561806076429882237676744385314761859148189667385950940836227425078825493772935787619087035336118256179945570785392539014982550055693630876969099867355323373372073409985329733369960189531958553283764741504002387298373405814617100704408611651963713488417584689908024058622089736419153145167922454132755084971556897648099777040235441191563952016467168560037510205560154319673150607171553281569930456376422245947313653963706369266858981433937030483903486995991027177345825940085099406776685471301792234310061237765810781326429430948295239178401040083572421005187151216099417846242405623420884780654618604123879098823110455156094597012889428263133940197948414878192860163121080423550611230496473641742002653431609517185690424475018557055413255308109111417122270376046550940477860905416076912984408221561000507392940150863081324254775991962467739397462187428593661061809369100870323572083498306364145256316663875648678034579125791684840443779508458280803777967695232196234163615417562860604572349192039090881802020569204702920537181617547441746929204994791629394357725772233446496206249649000111879778851232191583755686017033593627218076691107713778140461352902550708097795180416775330442062325173784092224361055122178463410325612834848675464990117532245816658615091159718332050950018905286925590861424125033956566901997898256211624839729454504938749922598785559550975970891444889724001050791839127060148963857301128624642528365558935294763576783697923226945490719304015771098861626126993325570068880093010071486758972874382208516236005966281672393173695601114019694954230751256469270071762140942643647665246808963990178145828161075805746946061609142935387992326847983636076451702819120918271623008545779191544669040300821503160012873649303594436790712337117346035547243779301448570007097688167589002014910314619695888123067950661450851056405062800536832628176494234445951570259259520627420860207687375126874405614404936042864771560414738075171891293656180733927301170524068221865575387061325178410142777295971274585330606295390252348053374074755842130754656474273955406656521026857572361519843444781651323756177574197417930202427093984665677242403878265190017884018859212064671865672453980231305384131377079508318011920121822155056269173771400040829274365300409491208748503413577113639811720013016107434464549207136224831181921360858643426716950271881807263848257138856522812959367016197275508787621664158183316189140325324214917756191688642260275383959534188266887926602437981313212375879124272623305586864486741130794797692673098690192568368737870548303661825280659663559085896603492284889989037121971933529876626081979645103704060686133663243746635085303072883364702313768548075632712868113650127637496257012371382040947515356204125280702587405102541545624452055581926291737301459667516877787503729299202897920248873234325902511841989677555864401589402152565707932365710307031631657298763365017513761005321115598225565174740011929110031749292736855843735684381946170052675962137728908779031795541191370078412730833801732446137378429624148069853757757805239564843492337732218027748156944849034001955236050275379594329827718514390382953481324792511392302868404704003767117438091115389214054189428602009806758531060769499890336760368378787780904320777451181998848102780739911453630211696835630356330486017553419181842864861401414679228971132853801495937164513160306047296509903048006604454603394644947286071306831345399580602760318562971695368368608497635305147571752167644810891193448602776501907912350536110391032491351866480060807085280719882242490665120038430032439431460650774692079868520970529373844225558096025983233633604476792541822855778802063481039260389179049809498377329410987768428176852407087271625977416207199146680527944804199124334957565240398753408735173632912524074146779615150100112834186212427031921255750578147826356666768216799545284853556846740261015010344744392244098138731654253863516033186134768074381010877877537004229047620085711490356743766891954026107758392225618088627721592874087586881135140986541819549783225595494570104975372721537526944858613319932693753507825255232678848493272575874485077713290619624328563422750218449127037441205218756402726517112034186854141375872063186969124197782698695229150057294218880157075614126926797622528373927764351388058267672339257600960585716878362628125887532891236134215291624987152346466557051166300809592740991006414881937450524033073251158357722170770561566045967987968221349641848368212655914196233854846662196859109169361754384275427615193026002943004481649034706408913469125822166710239858997655420821997888003912419742281175257114090435368362195821290509229445847529462491091291052409701895965313286239968665995752309520516975364578756459225090218879141080281476424709996760619101056048817171933134776522155700207255754460862428898074254141621628806219379883469353548591573220346868085396824812187451982937926569758589030337216412773392291440218974120612029748754665324648858175181461681503046947541729131522138613681757993214361088312446038945054096794768848663319564185619732103246216012751957247003723941957213901669894446009193872901657241584465933856084547232371096289198221629390991067589912794323876438194933723168158596961908189468661635728082954592651121812832652270383332756637531563170940803051095521498354872083420899924269918593832641603498242436909490167255338017233886321485937520331704397676422199162954035033407515568844113298748526489163875971856454961489818104665384177496755171521614089577861379559311184761672083213685944100649901704765742834393787514711307756537643685859812183213361768457557697234007417553429198047781272702310735233570389394226433674132515385061521226050722538198543552591297037801787047375282828864976750802911952463542957407336131144267914623513563457748177354214898160616906774090686722879951654684427745962056699635182757748551984945986789468168360943766475990945982367174709513433190750182199556815493188678223859955814825964393338941026738029053860141885177751093717089851591036527884053754570961292843592769416798742900469473069666560914015366615751011119063226975994719098974251817742093465492216094441619353523034928576281798310117839105925082201536427831995991374116916770018994401062948242347331825393549196500444222400320678559739659402166704600308801962927782737516816855740994273646177133983033783222446523555951793486041987282689869733228358533546485453875616747689492904406646024486765058528232463258185600950550584654717963343875569239927510726025381473603519414137538643464055618037035854761525364520139424794949949462871821954323860475792669688997255337770974907113412446641505459521123074324939995212791362625709054654941635147714368491017509550879065625854679841134638266103504514159556010727828804980046254991310747528011537256704121167437262514411195886245699149341268750646844731708775973387165754350402192044414091922938151452732434595341822638681954419360702329101592958578154084485366488365726070937273288609754427613810754899654590312449943513687288284608945467254426873192318934915734887464789354673165795233092554575536309566570226630760005642686379776027905644501859266912442418627065259172782772514567047687185479040249724967166824163285840321981696854638546318091752521416673033624074809225873581537799883445576842841185112818399547338060558701633680055562672938787460021547830696665564330253065426596888509772168696110788723376658937685588021674781757672519059059937245319127150097663069317639516164301829508752072137598485935616687016348229330356662049474250099560583146001791589401662088656089198241436994451351921922042925262954503813214886047489138086051094801464466617617627545023591323355646403555211864399106271107800149654387798827480333918734767584629924487778999544691487873968722714861432338639976003736275902628894022486399882263083922188584303516750205420611807649613426877014254206229729479592302638243184599018631982320516117919433523671715887888730741884466498792626876438554517106677664627612346931907129215473096532398225515928139947108135237810145587083412563833485869086258526728092550463065593315947381065435220186715714286617535270937543998930455296654753824441548527083921354194474804333509354271925714965194535464095854385528262567561065277836174342510089850244089676739859764135733658450812091539989982538702674332743624071376502438533214585215045916783160045932300922526671778996609534252848657168767782410630306171626964341544282691035345396066218835476049633901121944243805994610279469777648527801805666667395130266254487459493943343896509588496618164265981635117118321396720713107388824580144479218146010159154417844075209263521513538249181022399167153599552343281951215372320531238220466482418308407537465693075542992706647193553515845816043356260684070471901290348624906396914666640473109478134655474595247363731877384189566205961781146179172479255574306778994457121678004058791535800690396648231584121778379780281078293894429859942728305800042000595320876600800576676095003495257572321272557260098187288417524209645511016385338775536326961857710453203555183229336816937752085226485131881667527505400963827593272266015805922252327927912579401589369580723919259337428293421856462064690946674749712277119677368253280518805785714823274818011441849673935989142454505322556976545728075668403198389588265747107852781342929085758529610444330431276275905618252313796809250655391199292459690735855515792000189622540035239677602441784511135444571150911563540494980966855315428094703624323379682002220836237470493274120010578231547558814987203479835794938913291017166830214937269223153476083992170365578007671421526496204144971977866620152499437002432134932371551004929218767763961954151992670625009355895810536235651317238308895493439072456403213740453977870194180445386146435570722358008682153532460171067856146925837448849462862241154525546545313378037013134270050407898087045228665136477842401110957982640433953315507517458181094082180728857184481161038258143259186360017507788710977184328920521836460930571867249010653171474880902951972027821157038980522827799066930053317355095112564437258307867059637876286963565104378618771246320744945971257148047322504202215245393183015920727786905810133163558464049922272868853311984945726200644442939966837455879727787052651407030999498136691991903437369427063326283948227309964667114005949203868735535846471709749006027019768265487938461545198303976958004058001224811331372162140446107864624043602623625270959244021362862507363936725784329586724969811649746890644431574548089303463439643782467990481914692249527492696444746367664881566770434335716517348265724121265374041819433483617838622984641812869710964391336742186224856646724215824788603112455943778367297521753986247791088792549983657283898408580838060702251005492186888239812067215017626549112298860244319631872958045918177394485487958068679050735514889906647553778112547888942975950468911356733523641442950998714878346474298725562331706168516290915760532011993835401203177894133960553984167557206003781057060873684230207677853001922846608873322488243676451153300928553077139521592934472042375185304225615612869429170250547660400679896451349017387421367953783415121991625649882062569287839287586363990843139525540240888064719776179040535473518815346221315329044310682507381631947514370129569515276623150093109814568605900575519310546023296885401452900428410766655049433535945414666824282666561171895035549554531801599754109780758420861604130102159152796941513841552065131280156214080848446288587373479754670458926484880859422366816736237755888213600641707178002726103634088422337020469720354222509010836216800942431221856896534762644133370669071627900310298004480595219026064846227547679298674872691821609865366064174237757784854435189848204973479806793934062591896270890800206808327100719195705002351266467298920390004767149437746094264280413229890485848009718173938049367291830222963062023824732687894616765912979546392724972561886174604494146742825054595687382700573248075051795554119006661970600298254282503213922137231179273855072159910415839283846214868644905255012605114512734737923462173947471892920398706735703143663051663224008138835460171779514553120131688043664641352124748431828809123458483353137778339870118885362140629536705065242796907285284661088027532694468063686299879186168860257047468580966186037454808561866260685143004442380940743319849913435665299089824759846906957683378827816510568951867324177104278892092531043314048734388635017183435970094980786409574957521828543028886344767598620935485576754724642173849909847041104074649706032726258880297545375917216813575422576083341226194440216211360500995690013980353785798384264429431518543787920135182867236207048872580106854997554381624983399490965556949301843593514878070197684475655327992430316851260861987298331330790658227813274260224799467096413173608481377054624283154979705369850850218045816277431721020526232493388062779089912809472426748310083525486089482900320093973062486903671529028241735577923192224753700220850638031384681423195520034971923347613961722627585776864851202621688895172823864064399306482515999535017328788168279866564658962298960925911129191047416397581388569373667126313738940749447549954424864579533589586699966672569132461985361888612767556465473375838678476711556617001405023365818099195417006575214502402653179966856906533784062636556948392172642181991222832999600731460080521606768274580449973538531059666119114806351136392622047158080063140553927190562805172359781277668004183218267368345213030127418356240287909066643603450257953892780158328781810082289082925990105233158742118797642414212780118708076413969194795875718116423099582223191434689439438863108152550644241409193229467186122780498677857576061258541614968157110027254536316230921164225405095009430334449175336157256636049489650216820568535605002003196290748254916245080664083596048776839147710740467376369349816804499395469100354604638643743329264649580437564444664961859557502115895545645341260972444553011387008316695522961050532063511549662667410420434876418672158539415444801521361162431895740312220944133162999214400747326835386757455085761318737922295793083860423846302916266404435399984446273353397251213445137564325177388490086101242189924236552072554678673833232654209166298720104647848283333151417687518854186021328886929720098012247355978458054013337088979392438386698770146020763288106632697895969491525156218476890574724541330792751219554636521219418868330421128752191910273954836627314066988987188476938365605922925089232708170699638223757449147298578168648207720788443524525424023892259247547282062077479637652554094277927498775885171836614524013646276608835373899559813877474804987483316248587752547905604605003929197961705033555276041002806341879871202002959910076384561542975292474157737179239057632016037559635041977747517692700954579372517472192065517686037656127424777271910679410854500631836193822605410921164947063725185269080870631522072066283467990388239551186425106364708799212502926347723146723936620943427870503672040999016479441187703949409939907296099769627506540137169997121749379211393132190969434993970580894026448800471239288348587295680835832231091857889072700938736930837882447007404278925472751417678749614486524431343880967248356662256740900437171855709448176602392905536204636464594244208588934422413727728105863898071461809950113265161644698258891887747705737681011099865953935868676089651762382058414001820424994709208508416054374014886168261103493450604562050405268816155019429482613715257251425966843411136348570366005063872110632695951018930590156258832495597712654918880008674124993059637733832022018526964470717813492817403406579454487570649790143596156659767687776931645593208292431561900937002885951019768948091483724037048911300848741445266623961708304184907317148786174954230659577011896285171399939410011010638417929904359735082057529711023856059628353262214769278010506526508257245907893355619405654428900575800558874818730092585076149546137461991225705688716427622210110061306366731936719994087536999537367564128612555219795343802987048553040601051794729131173275171345831652902062901193940583969691826971479485687409356329513814060692871937649659892659199867060921049073014953562416263830492811331819075763124876308762581751527725231895753960157577139038589679769221649302512716890153575318690087680773319622854484026052343958219395618227005976895326021248545745713799261840691401267665234136655631962400464393173428621355097943400321096111118681123065973315154960129957197423216061766467494392309302345231492713524387698806604787324087528788663763696513418258404325890256026025702509666822803139808255105534386432714481371684919934006987766676676184063278599819264590645415619500521148363774259459198020232518082921465806664981551038605648909667630423485002800832948447218699670493344169321204753321582413795824690272702011279942296707693992761760806823223496724713884439534829050844843722289928079286916522523255950641307307395095698030560449967646040944224308950046905937384390373567211377757340841278330089656945894257851406827491285349873257318936084114957771167278763141729506840051234329046626631929917958251076166944522292709137742781864825856044150084815827240445780373265541201960105685620474224043994159064585068984652765844268588025289469445104793386183911086519593411583647030898301843541564671911274107778525227996451372588076906623423388104838364384507628382300229016698460413583139470369081243791289524384486865828148204982225080832906443621263293732591100446520342987367549263906765116572976822853639353323057630363679661062685919089811043501777181074695791234183523927471542801447222778645579318220987201126108016213021009792640731130894488582802104366542543372670406242277915161989676274077994395897818314596146534217605536902578755339407681570130615026979308420737955316123123334347394549686911020229469178551453020565063566678626050128676435051153069021063837936759846091860405686865544091777026304601978407063042670540550093691654749652172957491256556650324619208222712925402683145628376732004521838827240066396429038376884518165939646915107249653973311808636836970831641629701846499968363697172554691841088200851498718535169540564307566990278412922037356992267226419902329552939794680334306052145434604226316483858257865582034762587933832365904915227861742737510048991112226037552930145592226039378906196410015249415040658268637477522705694190351550774419039293294830656426128697045603593918667084753105862474079310186260990169378314949357541734824897113212686867758105639613924391195072959848859751784833314858656415524738319001606828013880359044410222091576641876878700690009050673548210811843168225712014900144493136545916272652637949395188142700861094832500545813990450828826232443796738973459659827443026047969452719358522321970519649501432308466622232942656476380845933428228384458216772001803821944004407803493664712407546973102918580940353988363874846885618307006153832378364157855613219166426289003720745350114153240640488643834979461590194459776552519190348253921560925720436744536683724480100421510774218539744112305771926179670028986900615427732820135777957272388905822210810758175289957587702449796202386706334007947344192807540096040100949073840369948217836558029673515349231430694745141349919947849838706601220079659348616139662828939431563163418586373801900776043285019737108700445952044097129398055101548498312475708083274783075055784376786202045519010358774996309790418671270789287561118767435299474551567939369079627630436859886473317535490200193118292655298344750383505110873084317468975141995235752479420722852420436998729842266290301232055157561912491243355690416997500461367906859465991414323352264341466317847934038975767822994399294615192915165464889387894793963668910621269219771504233303181315861238769869871573234033561213228515322760378121981931120174015805472783808526767138672142771586567582893937073739663109050767467079642412243738481473366668377290723142769651872783063090589373491318353880893298667304982167898974639572715962645774470324424746854854258913220413337215534319348489626833456648823759200492231980964842173002328840211289496210601815537083332639915926657633761097361808511785388089437464542073357556890789644550939552256988541541158357980966854091876807865629954024356484853645152401263689363350471883745082429924660733214256799067615526428299837700605714245408650666129858080169098134411959567726685068632958382267824140310901522176204373521811841387589670772492203892381655539379654924246585928224258624024593111704692469789957404577560846202542201833361290864261840001040139748013203027686296865786851731457039535040167541953998605542986906405684924990436542781798830185584511944457467573795797047012086216555752936279442744594929869603106129043823991373390205109618844623759623317120538406866722543912506163492804093518826162358154339005528622464635216686475628904958028149185435005854375461083744268079749843443994663407117475526481786052875410041614714034695557711922342282213858446118003680118251272042432543367493912131437751312024595454211644284998808744527082744153065488391511480569017714487439712887803924923084123788824556164960801536644882039105401909637559493752363996299427936650175536683761074587581826391608859540862365413569421230886460994624436182614829563839881679079882847818598895398043567713911259416712315879853886804221434370668873661329126923327296701871229834712418424028194864661758482933818420880096074684693780244762850319422691763755571540043261606485634301940133260416978979537202237968338960500612580422774009725005295718062417827719749912609664381180184390939522345687468153480685935968279650780609569055416867737623058021955378695064595854378261721143335631460864427292117201640017945783494117443807013773217709840583779103144594279956650033818303235439972381379609736730692779306298585353094074473333273054952941366429595106632906958757818087242395229208690254778441836117512063518104015690888874044931228882810323667455833840741399135752853165936757324296326236999351377266252428135684300370132985821478524799781564073927642269433668672018616491438225183220644145853459693868377287628953354180585357020551095975072855772307243928288191556965809200255918123592074048603031249093268622286490261534046725054405144360077693290579674875225868157692587905551877190624415909454913241065034317751097520975206131261659550085144571988006141739892112342100896629808999837639984904008420879170633859802311710676715130701311820163334413636943829852064681326792883763059194388517080585217040237798800407904625025631907316886161614420488666489064414993209585677859970252273305293246892382805111766071606865151991692415061306601437009363740497504481599111423304906133387160342152989490537445226013238922025783413876641954956069106940892646501833415273950799659536228633582540395151124004706105177746007071983573419404231552669548234837999474151830751779704206529471413962677981462213221980706123079228054680220168059977094720601663899878005003440658020625753518039095913574602112134984147786483273011283428892454536910263462160656844510468112285793179338255237395318176392407220448080297142383432266139431017087270333299425696810560689513996692031977947906648449186292711652101051810702011348032785358824548312563560442511670473559614434604666381441928387170861455825723639861205057932883681897081228052791337023733002627961905535792437376030333066738619461312890402773003185489601961542820210180804465116615048883438042231644850644427723937636451015837959850060273142779218943138883833764337773207786018904557396930271069782521465427725418799934424961553022268683736329136160140191333227191818412699133041821255037287725381777404575111872195994035429937471191668400271357703968286804317024561347655420121616515725082985282482170803683183378253676082436630763099925729997084384167277839965287389186437450796234832437506613133279527471674694967476293960029963153674034900170121973987033318694405871417343158157897206708552543096131271370238598748316708163869480306631421329762423394522304617554729562117630207860436743935736488728411393085411061769700395734493649539706790950205075517685906628286618915295230770155048571694614821144923988056420591587509557998178142134985738350625885507603663926840008084236888070873960431734541635525077702531138408628581355150056323089007218545414623243934425745303070817205455028514754150992587054939734281749022143775331503417418618473416226890318332085481129689654669411946204224524781523188599635896345666669310667946263632521192980566162195685747491358711700520935578998477111438039508339888362842055829369654831117420967565776641397623054718878003041471192263525275474928481314601187408885459131585752026904476760544774896991032059304002799787130082210231112391962510197909285010401998346524686580412831176889535481504336422954689730530812497141629773379372851292948783457946692112740707523627518592082288822793059083384951709102571825500338720192563494824363226575625053603763914986207660566284991914744186639065135676198804953702474893391350162818311409555573725820356762084720999310858295366077380814727370885356352579081218747017173381558961713044819381622401651831809764726096520291187758573464481194643502658054874771530708781597242027637636232892136463863238447820531870708011898154744174739535618210087537867214621585233139399636701721533128140254273058822359912753948448061146605092875660587263424156142850780016555016158831657519781670740227272879443995849073351148311840032940036611418282737786184341314852975160907996609523842904853007907642068280714199459431739409380249863427905397136773207612815947768192193679948763424966001326308985063040766369482820096739301205264113809911023440663476794107948062990815124010806690627632813855105946463489397831439376931538068194869906480698208200011129921970639592770163278851586445560074589414151899720102079059723759785844463886844300908686427880968168689172204460262079028146730469372610525074104032183410167588731584028455517122240454411233396699134987588228117391103197396797700699852682027315694761582372815860193844077045463933606897813012965426168600573226402921763529929514134203113281644971394077230659702173933127830721463345636952865006656868214619434894529136984205298540357789503615609423912588344941235771944015348312204066371605846674446335562552873813652771016579977284251856254398116043016922350363105443811547804185136710477937387377878523355273441619839738538846350642072019108462128062644083536992887823911023574489615535624003298887312443184170195059333815357382668246637571731110100896641172022433797625083907954922232513658255168555779544053029949312125892503379816316167376992717082444043041163619286473959249358925508573159762900981987915046836503394570042674046406826235336257430680449860572561760758505079965991210968266493797600316651607915521822595658418947464614463868778109835354775192075129406498245532553562574937801489389403953468423257650487214946368068418891982329613303843147996510888215420613968977560460459970543142368794950748120148176507746332238977679584092870957652178842859100294592780641631884441413849370448887497146913532476927047813519932800988225403293253119671232688568086805350867288053000147409625802197309956911470859644789666819502448564660317844579219114950807259575218701630849709245867788710341177721641519017652914733500132865704359603145328798056046126223673875611955398167894137776371002531472414902085884089544482449133227125137694741182049796199509235344054068178202533404558929897001639727700421694455635142204548662865350408288931864430416460313034371995589136510662102875517032251105217429296442549519335496040260257873605764199921686815847596352260082715806188049056693462876618600617882123782881156461994200784714822203964344911624814803606263989947680337752452333428808379991832975148686963117709655320434513170716912699569342979555895872418461553628461105606586323491097242943483860517953792295530527029648773065669737316639066424620492412178531716210040899696819803826754921653972132677191862278475566176958230709913492696697546837885905996724813175610589615423078501219263077323811675944488731347414888258128973403639076882135688088209112760896282934712542328781792474535865202939876141096394202046577145831289833472335125587309907500962238155182763591758491108211951054505465489366656073474829817641470053599780595489169538386302298096355788534182793055029194255454796951527238166447147300871958216780019367775370605140442325792813456264306603405098599524080494839788037366715233772061600270232613894777397860352455714112151051975427763541002948437401546679485504685211769254754598201644567729539392617243326840195537886625073066235267054687444069852016863658060608398948811404399829502068162916536021823337977735959983732518073434637971367190850155165781499739892142305182061472052295037610141544780360593586602170061671735177604562807068601818187869871636865809389931346224641629516492309573918662393612716115727751571305055081627969474469091571794426803008049205152542925032538624034477636392174044034399937744785150324822639865991773398714977533730757481690557324157899701554232577571779700466145843598247854079507457841083424899358431567208188138434010341846645109636087254100115586443475881984071110295707329319556547959176740401094546277295765116451407722477987571552434774176645329449367247038839365434812666501751979528735856377171726316318804251595698127328388134110730649256554304790032068241403457279621350043589758216040902144436222168895350012318858124272029536201094697376155676470502683499722931099837716460136841055380058126483333741649997501456439899208489043077823784209461352911303876015640721331813717763704326437048768398607580738843127532226895719289149903521155572210153660024185158834063909480285655523669424566915514325872321519611282117696045465520588732648924763980228401575805649477821587886247313089310411210861900465013156612006221723707088855658922056298150527110687772927937502158964465623205472744270760892986688506757592702531300954062930802426298649263451056734478700549552271253764433714600740006243594955578145744360580079848915726235572721388924870742229793246574007856465174718274217952512201306232341061495902821889159095272751761747922696396394966052086250770473226571228828789435501597470528530123759489900643181912524703908177847132604440086946083883967318484120821247555803949598901568198372642693703894043959391197673488896381461966984419136097933181411241370004591025778271693073816379566134032493624528837526102979854103756336164769617282424877741360777890874665928461887916883213673034244151229319570306818874122846891057735623295639398167707024678904847646910558401121372769003650623237582673421179280112682239233174920592336873010493864201504121547736438709806718990243453988487625182913080761182413849980294959644046508318224202318303097467757268567417511613865867965963170864861534336161901177098938855921453930295277965631601227441621900226781259624437091453589137378890323776000265514769870154658769249596452767889641761810912100483171665898537348799654228325444962896397987543243893439139507173045097447271132903407421431798095468645675697906665533404800037935619847653994686233986986845266048055344977337574926715302403657142081764266624550764255318067897481090742032087689557213923104896720242126748274109437358948654896681942575995100212480637527341336488143903032430072434279225478552195329387282776560451824135905348551994739048370123315324056636661507845933261462783325309683956589926536274836073761950353874003532926067507591014443512825204552464138334746065932739604819858449936576955474668300967486635253058360073355152768211592582415488435846928478404949386927975506364986224569074585430162150140447193832552945266804014945085584878458104576504008641542437440735749520996160547413555882982109167823413453408543581152184729620504808786832281885240352180222173412743990885122912195541250730153639018703502355881506262086757836546131239706880579811651668793615409543004067903487256327562475648376946938623944121097751172728389790937820647654195654238343460648955446182248501986106482994561635714114398461667174421491120357580281312051134594804480158578359168261997312773972479663044855907164954077430025656384738307375570442202608467537790249056485180816753799079075448896157204383381036944636821009591098032242587679639629874130233915074734186232470956304545365430965504220465209531010105323045910066467013227285201027464610772558570607408767441284609906792756547580934874847118637065225469440935896053460354464615908875527238367452510642420488371134712754082294493955974722196783307651167824886609436809318000766325344232047695025641760523515493258660612245924284132900717433268447635746306210685398074523063687620403612143030234097721724874291186697905056310085651539242952763561794391036088052836829882447336610334316982434572572163828360970509229574928550758150603998954122451977152087190280638449164686191233199700916075842725209010820236228040461903630511445401667522272022670579629761809765911607044628567495923100181702475780966488566173616859392390468211960550267302134563504260022732115291238617239205628684801392700755579110573581105287290218553434837162404120442040978371394303633529066782304805298446415305544207692689311836499864365204685047040070143417960802543488207513067517791126271573403505197033496148558491482935535562965962011302443583610814174292413610774983763185015016169354497179710761120268219494710475947142329634346064592352824882350251052094701628854142514645024806143288591974774603538834026295337860612981028985022887684550774583657971927508025349306852212311955812263621904444681655818021934282920834256916796924444684202371125552872545935592954533607512773099488947406334914368723647878951291568269579983196898868098245019882174156685937406460292952955763704642735496311802280617092137783763529754603251817105319756296890902990541539792316268916250178364427494869153076726603249834278721888384472357413516838497245506864813594317059212509680814084680693503777675788802312423240395129419715931295835795098082680555403846078806302373627442449591942133348357647742397089461732568691926707230029230697845932041640022884958829458393205217815365067489758693838252817997140601918206055264063954947719330396765480692792313514636148382333076817136316044313956890154359853016546151817104359072392821103698324274827392429127511491554339145619704337021000784751561483622156814343777818054204097432540112766334562803621781195166471504214869182723396297543370603387309242561703599123863308214177088573183678440168820255211814415510267499167657222756668695012219411335533292758984360688962950262829431190802227891346993315858416114721873530419831982474714274006533470745151557317885758943516424427864523982618305529807343706898799011003114255558602133681781435605971842646827321889010126864698040684226868951340729390937808983068110159455044573236158414009668732182920921478306355883864194482562637896615609172898194218563479504871387009410198681104343902081032150604465499104583312538568459480075921957966757723982372887907738780552737459802388268023802381554168622358193016294094549379258048948143579510300710834546753956179820012452416158942503362646266171242827335907577644687429500767594675199058243798561856476614288450566375382232772099399093874074207338666850872186080826308474857783862736439710672494996767377313817700312237421632954050689480107990180423094602815179092818049800780880514769146173833763622566476907117500858380107125153233470265100720815875580854553463883626743461820472958212482218160718049358248484074042305023909819988561002228341088083659763562032348935956969769307202273287492842265954775725480984377115874242879834095763610597009842745885819611871421017012997658826313868465724595884193207658813397272106112559344940104025601708848683473500861938317813248923731301653113538164319128811775254372669646401977480603794746510135034338962534187759089826146886162595710734146548739805564536350219551102038619776165343078861824933471491945681450691740281293882840764259312699008683354180887943499352983438666908607784239104528372239072624173453963791934476665160547689469950991972443512357407094037269385797945569611708662235447044052816872973603677132899877347328219787334891358104534316297621294995869402434149540595366631537576873661860757543001548498038620647305568983631698338175550424048927146362083152747887862333226262253528068564431742549106780989775511144428013591695018805169133515922820393839600827972198417795998869203172886132212121036351546399997454541413067174571081031664666639089957407273907821919043178218956982506278150297406977215379996536261614366215154070504156176575126883185224078035314835701692105086518050141205255569338413547842776857240969315004604262985753361009485068928690199384771049928595676602128343717250710110073409907329269712112645361782528201956445277823965008655264923891623484081009960519632737289685909316244747007267303998711175187576534812073281882056267014087942292069073726468657849845065382772439944691219518999019954960560797039835227648010474866286060336007099853750050651249609925736527521252856620089147679327192334371477304849501105100903048674922531950659905723318211666019622580372406292033172297785512696488563977012138570212233992726754625476907624860057689737641305347447691054501347324929148386929980728228107893683198566133946040884196841788157620749745806774348986849344303115840570220518280486730210579927570645092494351321310182983551904568490028273977212541539317753783753513722823878443793877059793228195035898450413253542592308648667511831930192726220143710500217649725383237408689989995697369908637343722243881474174777302462296899558990255191852848404133099542949942647268051063254635395543476263944806143320835265282007493413540213225331306086239612203707006959554308287475118119615099095400575268939964368454566942198134448708883880135817843677267646756647050498558752946322494959878385918187483081669992519141874457221015365648715627237819790090875899367357413419554995168076408064803945866618770415280132026598133718121128652703617704569341160538971474308680764760138443833299603881862112026355847331377204744308854790571311527125843136783455585207073286441951887667868289394259292508391273861644607495795980239576256946033545903600423034542219538061420004186053976659676445438986154294922623008752097373551936313563949454055104530404499911445411331736088587003142967567086345524547655517899010247114815984057480163333894626118071118195012970072175264168646569373462667322601909067308489794487713620079358945245508086555708360620627624227560976435656372771556448849756389857267077392014606275655558182449643918144525866804589956151307002474903298571404044410774782421743048762455474583266738530553771494158698139380845412900815260492244461692155140724144942539889159022404989867482783881638827485990971118940329107535642183386827524549222948299590978465503582903035994674355002457137621483218480345780386894138306845712157416119704861699693925109098016158675967588920086000343951610207337007437445075237150571002378729334664102595016664968760659192718616095088062250416058056477665305367518794504949575251520983063948608176062490857912948159090503410354206121460848136053463419802306697102065723672394792451202080989288006632583073777768897041516579718809678004435160318491499103458991294947725035603961984864510810297770776746976666360854551326023248046319960061076035360640233892107815020686041276564646315451038216403471190587224472361244347715072025605006648931954162747353540009337085026274847003473551579764726172466261483852481726649935922911898359595433130323337557811532849029007540497309381615706958241522890438231968701794449437254867505500571852619389145953589337220898831471681985010089826499600606445776369817777762326686494696001773679050189780133337986827019736294205428258979486873198372235986883792759795013719103891387864456192519184943797035254966476779877700466385627933195241175295095348245754157356459923912458712955553908683602777641812184932262558909412344490154342045672497373099217871435593703073634803817963904589031686756487303772086588631692005243120740707630868535596105959995917581687248458172885750770568110723516143634965142126120402827472455988220035455489460772306365717992640482374322746709913983216067740103151699107190725174062456234254276730324171044228769136759699279913511735773392994546815745721014320211665067667216048485013471702273472509708665409194249743583632156801082607824890783176271364888753654436430000425016895836173588255706608818606190724918704513145143376732697220384226246043356602451708445219031157283233140154922983720611867428486124435818878421252288490284191269720346354101636664573626669397771157193145401176318045797303624454271767909888623797405136062091092921746180808381619055015639963058802778868735247837299964900453592483208378260961225848224902657275502623649203570957997761074963477445143519742829782351110096019582307145350067505444049202350513585949794488365558169213844277891774427508183448918281764112385818071620292945557974745265688956297686024409423201074058089370958242015702072314810339360337714606560146961800021046665482705881102097933176026597982929129590525477855637617585688610459440271494674621320872468855991746530139230737304117311394225970162092036795926890883133869110959551454332361644084369588229306388208171990944710828573147444110229276579023376137367932612575801370701314111792328676457445118096827714742082570606603824103868616854527083524221482435725638374220071568400371585396330944525619710550176260756919498798461148939124043965461911636237609819820203070563676203710839195801238449127038648658150647701289008818146970260387992480652955995260628483754675632456403479206693794706150584560027624137749587869778356525572144178674771564004634836532942741621330824955509854858307850712421168235013641855933773971985207403408632992765891105399150114618077660058101734429963496784044296617477893488804467530428037342536672148310149985719600000670987764549809673583649547992563904238922051343269698737009674583494002702678381486579913605157211156633250120525048880368503042025189821758160220495914153934309359039786947002951664822245722375581639426154484126561074077786816201417152612862056589126894381129540699698681798902001389591922598528384285510707519907145691251228396839406672379935002570832786370838213588096763328099350512186398044495550153850516342048916591644014560776710496376431922685395636021929864424380020635722739998934157833191432026245989307227961591869147648138924152229700865609441546907067371653468743037079294393580215144850561014659948236401317957926279415321123335829313592550398272781267975463049930594031134582674620740526888629523769202283248690445398300702525970816350408722654286480170138207754369766182296247623883736268428148330363698941186669531254892347251110088504222670782946254786472882799526962031769668917759090777862070425008218447342073229150252197629870296188859066954023428357238799073964912369989946468103531104786071629891981819143186645373506112547881015427101552447916838925128701628357017929159797276547286599885670009835290922646352028053490170187784322991217770866442781571421807596626035568073145342151773465640417154817433909434949570361349943773181392399419137558289537908954010970187969792426098005415456149557351277453320522592005930427890737752370522332700799026316687241617816889406712237967914826325476747959567758012696567692965811287873957068132528633279063467773158652901580598889971023010551759781337686840721330676256595459048613846740640391393801916673721825476262977546756309858012745103880218865634142009349668307656901994866412799889408492802887969584965940371815679532938370685601295580142246926333554587407358870201485164268587279709112246912377147456761099741440979927746096017043330932596846647334430940539764516420675163015887901456351320900629992217996544478289925991413442035870763994354517492663340332535967998997484892472796456183280669794438387614916809858053314980157713907724221166889845893391758025790783276003957427371611984082953364212031863144427537888206081399498658382232433303063331763341853463918715438669670491114136621334460390987573649284734173974009689937145634914549904190242616306567469455667732949062709350155865691319655236906538607915941345050457404906755736540883119456575662475795421654026596367977898187503084080248026979033515780697709233057940319923453086951621787155023060615843901705299427581074147064606675273189780909501330155629984126860237189997744962636177980416070073592888775866534821049302199556450341656014122180893316267362602714538721089160163421191282926356233158601658373429395731599876050053770179873208595952317287751639897667867395079832249819753054600405748066122329983381668137750419861799429305700944327583758212696316284634977263479662954807870225017761721196749464651895095106544195131978612584587589339602006509940428062116464321982286969787349335408368064143728471188608283488963749969326382943769403399609234301570017330722471396109548009695160861436943473221825923070781752980645129311108471778972769525275779653655410030845387641399617614671996337228551910164006879582077877584317967893274166481125271934168033876780547338136087809222701569706807044926039331075646927065420012368090354195085406631291555210187172345886105223915271784406723273802157291636915317912396683312554488074173055521058200320210212881106746316000598060619936646267622573825312514171175057807716307840032081852103219082025741933891740523002218793494997356696144180068728234492536533927812637527089576584716317811731721755705011021065483943609182567970975826578124749931269592414218687951921376180168500332371400433663340813169321881158306852899936681128015148050390191409333764928728823230639654762861733541194774594825292425412358268982400092590776947257101847397060809177024587302174357679643017106219767479598002010369573563746446358913014235452781743571928084880626924588230259387670513347788381360688519672677975744963194421122677298995426017731695855032871652429574223249810708707435592541281319266456018758385885145680932456290216077924601343163569976563743650023951407055894471390351771305183462970244015887216264404308173006273041122625544724457006406983184753495112892868658155180272602084806978021606741694271471237949449278796384791873463432091066133353775501087498046076473459358915886288042026289317633049534133544135074621503152421216334309803927090854131383642877243137417245296660204007933429785641627093923704582213321208641269575390612165678874893492186955372728499582158890800409736303120131170762115625175513884515093797052629594630308090876193759581000518283254664087383475787889646959151398457060116446023530311622752552756277950346427049154012581498641436272213435094652702900155641207273202497384802483275950085892571066114876323643634355972753105226320627384888866718523014073897591380907995253316598606720521266071836516301057786856769049304439495337764001399792273583667834830627704897508262339825728138535483080717342653747870960978151147576660644742291321146248391934796214847575649924822201783295326807298524480696569845311031462941197589941917027270579299402492255821858805249686726775030364220943800522165219258040611249383770829644141889230298796977510677418370453422648884733826378606148208453419754912940841916954415165982494047668464265722358449088504448312432213802563710163089512312558102314072505752415106999857561629922379081308380772377017639948396731039458578840359882559666100176342824849809564437156777683256159625241312827598312274171685664371513081840928979497817078795834333373779216570821711285301530756227588182352270664965010654660641566136780775938593212064764082579977736043672030974015185536397731301055015446629214920362932863667679861230771857728747308970405248621643104567671777192781211381958049223287846380005368335374179932032411210586124977029458392514738120173316213819529047720441788072966487463448112622886133046354214189189200639824732122023578462708599932724200301440269046248211792740142958649215454068940258849541830100517153170934327425449159930239137780864249737214964671184902976636251794054160007807936413000132283410821440091314869505305752731198767602399042966452828077147923355523762186858759883249282187744760681699612118431023270407056068489671157161954795441031111226677048741740048300202524800620326076847881727656241076951080254264122057858151586825625865598464042432444932940896916017239163543905484165217547497862014918666649127553492533995945334187495951555376972164364514324804685908163283952116913835855137951544615577298730180981608993706097737131444079584252731133169753860409851081142624790014754177755655404225323039815047602534441793265163422306534127615106993345878457316563859823268393269817403535655296430704632967773642757951004312391552895392274208185216098821746225820286361230565107844355968819731696212505781174217980519266588812716713257510045748303364823369929654125528615956500278396782286608885312150988066492977300266823074271644554013559161914825292496231248114682356926699989584517879357362145197411881564101653234223423011861554074904539520898908420488984876078293280680410033948700441698609621256134568148334741238989869381464393605864180760231152965814973835125935147396899971141664989699298572519538086249087329481443964575142662572978903377931024078160770475174110659687755050803430259547875217380349977662872679610708060778084525823154134478877213382660301646706989385379759317868172734163080792367623977463732420192693498779497505449999817147277233390305188330157556181055802673079775741618532849663955883446302273011264716642832596079188871923257032118093975341448320178458439375846185872786423608077445477110698188653703930495429395420034307182164859174138918578380394685150121321936275641570282786631114779377443604143610445747389040447268182086655704041955920835090384748913470812260283918143923684716256362276401395011970492913164116815439451972259010736302720110044489726837838023235428380955109698588260674450930730206916536404460096089994456866975545067197518501200713341252702733070772963794599808835791135076791712039891683849308448356262321311839388255535959644371130770862070064794628056938432909613134401862409800485277944662724986598110114746800270814051066814316738598430734603790579798920842035939827154008581672321667686717052453669831716150413128469960345408722416476964942730020985467558148918346611718353518453504394436908460533839306951954600726755259371930475606182011523180085977740840936594256486223989618636489464994075756469841602702935457844541904221821112182479586404022913706940282318197535507946364302807068522712601416954458327757224297588854652543621620106431007629803777380503590982318027161135563326135284022719673644923946200803300918307894311240436782668274595791054710457219587436684075988800561656950004954011853769761401892720921247890991111253150956942599759075399323079900749591286671962048805329853307104508796170774383757543711718347971751598681219239817676539396349801582751860203058114668755288004101429467868333294219630030994201935704799580823424770658887000171431803828572648162061115241700000928713745241683939210002620862396555342869301316719715760889726340872368204707729555864719524433403301829705285106579486604252131838089090258032822884349811364836911188341980990278434508783843649960196223825413180205678008051081646915470687817314878014862372830193160518225215340062940847888733837356418749522469018494943033808947993687967118793656224956785504985601924373142095040972281176328177586900487092410881939051061492637138606677202377611389956489186413905983077998619655012488151161481859343881780126889047991696607398955883241952504402400013914842973954375359812211106991246868754273391680960550924936464086445019821297731832622295754782042124408307726936927092560298682372704049163529873713029304000489773388741669484015048761929661349371185388297326293672064877597380839270253416481127916832613995914524287657165218948869555918862259599259474323566271720650210151250742168746058170633423772387837034649108294719137195808582050801329898315778431388273903460363248205592804017644256660362343346384634826026026446741293362813318220496349608946192214234243427716058007274407138584061406591228487752238496405963068042700144128967505213928908741774853651584212882408860223707167411988313886561090153915303466994201476534991968162999580148702834068987721231030187554482992779056977260682398092356078494640780071572393513964407053290076009568877964837553020130617389518233982336132534123028332001555883942008351766569890829325491694941095590764013639378921379948639611235007121843935922718280499626149732977899449638067392627369314144525555672284030985208309801812452208169257782012606383023717475945259826229524557408495968832817060138781411768028398304383792126331177791266282671889785029196110683829787587148555198718915666501933710396529887447692840467775772776837910767177434276270039799045855090885203914970780768960964576606573345981327526537149605596663397898213161650012175730843954417377024287914309953851452776995870478459116627417245705607951105074069740739942648243115819003356843874118997920097439788439430010350205203658608399912131322458825656346485279641953951450848375795375988264788208662131323234180277473355894870160963805961563964833104873790605015743866418051384988455685005284934275524858415160456832320399233500103042405351306169173373869385043089362813131920926812118494951759705196895716943230084401062361004861817289302079415087027465649617927292876201600400967863187392497565544973427150648560819600901122432701350568270605325436349326454184555760868217549114223724501787661924003947251028745877701343607658795786928577918412719423401440443375887578308849862207323568690724470954194338054180103986719607775914558414772483916106449343197162752233851160727632507971078916605222649329971901314706377398879494537226648378156473003107671405768976645192168561005509038211874201743825309613982189174342972430525783280546075023939025194679852530815404054254058638311481993368318870412247303619798121428255706922174406780369795744781553615845141540244630981126805036288512959079299144201584111651825914899769863756008131641165094112585141018599290535188121027472079404596291110079240495965256277769372633688766667698585849298815242262880195664105684112027992166914845102007161376304107061408483665822618739376233135794246575265778322656775312366880518304123498407661895750946424854731738504329321891113466997644151325323884761705507264068220675744582640585785209637509368513443782608646254562631691040349488650631036055696023132255628855454952505056504372727556350364337406446241232862321981279239225355235029867839020412263292231677282633403383136816617786248229081180274802444411954603040324554051358027526000861747473915812593260272267342760662452812239764777066754593929781650462250475821199301579273587650499247323521624794560587896721700852224761697793385146851688498318319539397813222834334023361664490716914795871964757511674747553355635380528135997489563403131601172688093591180343877424296517498114405356720367704973539636783927736144595459233297692937782687918495421718471498582836370617658018027393999040730863007663996464506744847727793882879112353550472014521014927167915778908291181608877919446409727734737848355665062303200220371244476950929120649171087492522550457721763161332099986725742198072770485899939586492604465414459035291432157694145202028459538433832392333733501347063672097790625375908022491935440232541295513253118552599247211633860494489316550415539399411471510727961616544477185682154870307027870777232419918521959034526971825774984812475740512217706265813291840934823307836461465462050360817262940383661165592804781747733400985696332346348538930633480615693838462062512846171966342622948461730423630840043862879270819403128059717262847762327780825036161164329024756962878674774517570980263680031944624339228058870093619531546537946257342292358386378395101696848188485636316875787924203912215055503468441507255792016327816019447244955547339152900595417914062870105649656695382665423977010692900328071622486315776530096354134075931508853982327637036791231943971668317400752631391029281767336251945050833243254781989227221978360918029528743224645174809014443830093052448000670906774405457937829597946905251218918042035848803270785346908763097515989701332886753471003146381367494533354611502831135587522421335937188233990568083650286385881356919030212511674219410045466437083734045726169720913071462617140153245262399473365227555014390376410710046916968739249980740241904021497562191542559174341369128694689116777283582956892498893681165599678261715423830320336603219731519147081565534212287706611536515589985599332885413970800448837213999711783245505144261440576405234638231092324244638518149209338908995488398760004851521016282489802220112945815511527334796194351045603703233492793365586267417887819564711846220351374493580604201027761556221425954881187603296658340449078977191141963321238908520252646781897251792847960407761751909696811918205885928135979024057534162010105134662314633954387420023289114293808285453498554515998124463946161755753619589324442594495713148092600231180456229115608719360639690256843860076273984577799915839087958253495670949148422124979610365266366737519331923257288532457005373042007430240610343597702622670714982684711122012107924142649864222064919684520167153175470651812439726828691666359830388300685907988634403416795663885013026238720770667410072187995807323735887896075309463124025253943872357961003455839770351670888198009551153613256830841206614231394448250420498415838114703475592313416785638803987827094216419923711751471231849600652974932703777034096207036315717480639790110609240528492015168009173206601265426105282534511170575021160213784074995162666078154427437223619692904400047016502442332030113209147475174287064861625290972918760569895924857002096964674999253986695994688492493129693468065260933573750872621309486552992890288273817206606443461880698377618806828969589868891441749461800438770526123620615340440513606314498514841301001322129302273559066306206562011309730704092228713908835027323683222832860958718310136695861747736591526579918341154184997134623139871783956629607240664142319497818503191243714390606091547593806369264266141512458209138927636280735028374325121427832226858473717512665002799292301273950234884606849009454923017971524507859337027074000513019668565188582319184937154995898526930151921912153533040078733629651747724066096517201540951260032062179373215993961928861023521858175965691575836168018426173871329296069475886291552015895327001785810712647341000584697352861952819973189397637825855659634773812955252561139769227633131110844248668157262355939057307203310721045022174106791013003086018660149611059150104786732484298413995310478037204940201672089341652514620771753362619323171510566758769746938440050676101374231887117501150568664463988268838235774107889091668227538045172804904325401793943989894440239554913507529390774702569917695220328917483244641455365102806649172111126652976120134888877097754040131952977002884555950070320532430183505373874429489750853572756865452642427158044004597656094872666756308826599011126702637351002872824769182611744987746068892918077328259867206931984528257881151625432564533053845180073460578315322428781401069720614135228260431606509202365834124796793234276910593289325457772521626896757996401095313695588827882241781345038419351883167185958967509014611461556017182243506673095448244949601286966288330847876286917668355087617156875069106152748697198280245963352529112479217589047925444620264544244538879228737908500055719276964566126177406406264856398994587589242382884918566765431781652195590001915229966620234187047557515500909356189687579938729026845864693338659959571595907896235161182048343044018918367826446727885726220267688308394478614073293005160022366545670811539509470891356643009177301334211002305727215571578385629836929428028777739937957105130691131936291743939167357868064917691884463799009460495042845259370179300508116858885911487122715218997575966678246940803263483291084634962588284809525124149018485529043367845185804598831561685000194708234813549712449198917985837001672740388561153250689035731134562059991771609733079953107096358381563699261218293181947303596029962638872659400346012336712095607573430875411732531526095498701567329556317895767882831569533901036680143819943148302725030610596101496936349666606726477341581042183857535365851763550240359089073345292504613543161540374215661831626296358847904929313445487358939854974008462299868347092209775545349471062824032211296668880103610418598331011962632556774488639841233160458525554719269260341802862735471604975097742778878413063567845735888477525002795883848100550968953699553047137479537090460873961516539339293921623866997635955919108392349560524791716322939767455329784064205038920050062917937566071884621287155128551759602256104914671229369662291752883960500023773042748788229086392157939760216473189432562000199157371650495196612348498071329073340455134562561412497031050072409235243506995450119077933970012896515000899204299931436727211377921002776796002609621181445499422810429811780879689838692462206506231400348438589186645122336789097224762911104186683629031642489493641431414413557944348815875690521902566818799220012408275900448475613714910325415794468528648367733044640061699975697112824437130253575263782301260675265712662685681121789900451390023998886082008833137828935560571487579916905783225406926431253037216543929942076114656717547846845837483005987468783675616889255936838706271128210537244388131343412716810761458845958884816083155608187681893331855976549754153322678945913012622436667484057828745836915101472145302059804426119324207986395798310134495263280460929119730097320207453208687477052914611212697118940741403143885367927426758283114209474509366654978074351394003833054642243505419116904833051253779819994797802509704002393127210443781976748221960970548091282708334851491545638611183047323712802857138631211230290716055763050907853470986556641170479489679882749580752425240163571261890109447295776479065347859795876329823082909719491083201846378714720291384429280572775143343920815338703016732785410704453645246593484965621977297860493879147745490796241711942664130332263756915056134650150296343186481177383339385840179237581720968618573565581192474515945720251856976719766336981753571820922512230889929470976916027358912703633149844798209215417912981680900357916213689216070439383489247117729081400335785483892418987444875728188794763083495058140697229885402200243253339181373587021578260626274476340798530641352553741635183740796056824855674650132139730007925493411450417040939796176399996124200114620416788460532636679569397688602940662054702269328363977830464074291138367008019774139294826076458370692619498155338363476949897667987910326618792250410554915192394280402235041569561303209554877049602514430126947522627116306109735246887540174661638995475214512883275328452867796326302623699024748546254246531441024913000308584620355292522303411457742833647051347223362123193525900384655290697400732183739696455664034198151708349215018431319426798255317819636877330176896661366873635153008840850374417054323884160209207977919196650647393408626307406321801841475692147807489533811007819927192325381531774416370324559390346077097075023011719214486174387656812727873370827795799685587620400789414810475921521103526195198702016152913924459961684156749840406300148769354433979178760122610653250526395076079979710443160562767637909731720414436078170817198298448268387881035270539590194775562421496746173154128311784061091898007062112670345538593834550489315191679362379066928717083567193561203651204261188856988855765283506841269240480113837272650527591756593162310607432683619664475802151324264287999550887001026156803136171359055789284386286062698718718437482588430764358946355449692493152003319323994436902624811274630206192335433145155870927811280889753126331691490138958827331931819838008491928709949755711274685981009023734452869502061279987411432313197228214194875913671438412752352406067211343567632581766917415595751130684730899841585632787784583832751746240070419329303473231945596142575445223084609983164117742362558607683246334061298842380926765785190483440825944165524584853029631929484747169763406689687110056071382772315924190349921154108759950221256896566003771179631106043969477661115085198687822329016217795314087117810402082078542609672204198159556612097961177288676278551996027865995689489707932102100417122001878382334347322005536635100301538417348771938438443722046653993188889557002289969059614368027521213953737285676200480976994193431631609555365705941708608635836154829593208611699985939483025711784454065572540305327352616053329333793254621944893872557765981138491816950530535693122489337791471225251868557394477094117190715677337766887641921691502237340970511755508993017470736230968006702777567428066345876805387200696682463846964538832978178698422324529989983100679594089736813565672725956740191662722787633401459254867272886266107168784660155959984821576338247224419983852257409899727151944514642928786957721057587212125722191870239021156644396181851774739023215971948154952974109882336825338362199609685294110131641840383019387403186267438086230632566126301283124596251994484357708256670550208450220530706760317742733035815875276537547083554063529827310000732276358297050758176233803512146036061904943087089275533571746803002754701222786800959496770610858416903719781522896747152945141481723293425049315093168453509886198289474646871958052540112351817375441589050419316621137597931997988103000364435296004267939719074233169184244183374906837239535969846131604083910092116465915814727703530432622921031952313441210522812625862482346428443803799418629811413567806412525238822889920280292741359356688749895493223256352187778242912845948199585909185579164092917135113352410838957041029101119157068787677890379661553595426398924788155689942582445686179316039590401116093161004711099668223604965004232893032571159045252279259263383639884745401501107516132889601950752350972386440585780105142114872588489424632070782269744758353700046964104999862399493624833687226546592989995816067514543857477416312784962846320025329264094130471764521947131542046278497018159719151611922404210299282047951043199067687862134265000077094185671814144196926179756149866667053476433225082475976408144756864060299263105594517739076111439113152129606379408987791689338416525189170112552467580029434201609267121345317319389540442478766665615267369666720791503092072416140949841732255034083564060286664339627720772772205625276404882433760198279032967757417196694971013486224609429381052983934123704476560899410887267213373611056821900488472884069732942746540396086626112872310423647789812402431772384683241527714969727489682398767565770666716517324115423148554369947495600418615991900377504662912590571896365520990507974878716843874837182299643531621836368555817887504022487178774183765584090136820796762177288322490300269737454123550203984431340057643702565262088052393046669358187324539867186647560866001448299615379476042848048634919014219395423248528556498120210723560617850867379090402063771163857782780109807508765431984994293954854794752133648757483038224120954321518293951563067543344450174439755430218398590297623570259838867462700631324933858596583884918706681956640846742553159063369109374525622421409587406880283276433831016218047499306556969902323911339680803755021001378799196872713156293286544045775187664586416417092373546238462520785585352857219844101234976676005545261543228413454406375653146615474682790665471705964032949393739130195153354729057520761851912496284103059129111722421831525361988925064157982861523280177966423035017300112603438665023801932595045770708044863234400208851182889776639431287046363622876796720908372747145119864210344916436132189323599824775452810017852129386646254605096444109031610659465218964008167547993136348275981897912341044073069961885250715284577199365675416898491517086018353791071520817521745359523146497248095000606408665226391017732739975568612162758646789693676229156888940648037526827622316437225534952035814979966840447713891079979844643743946187196860349906289970903128985726453372454190345308269162392685653477996966981663225183730334316461173080203406462577246279524657713141173074464098632752120623324588622272359801040898182766462553261945020875505410591348663949270418524283558798201942529921785056653693289185702654672559919425277261634844067903378971605620330411893628481366098007288961974723595315964095951424198730882489295309683264207800261717479149289785675993185307127650277388662293173543855267784208730666028911222409450821140886379500955163974902848619173810033642580048316935734655156304593916819519306274254605833720342917532175047985082296309673774959765840685661948209217638412687767508691446445286886818454413720573167675326957056059860382717789456274726645528801977889096701318867764851060033729422776312317180363426663714233358308810534696175599623139052962629456087764278904229490556426708877461466896151616739468141463429210717693685201301284093445113791015351325663410133393537962351771916235833589249789035929484482962108344152631658108668879120193631891674995086939320042560964481380898962937137332346800113560795700649611034652237597173253161373352834169901398819250888495522872696842680802734877756753629935159353657821364194372886387122475143296986206021278602273593749290789769297615505840403365449984169660696796965523625062800623267217974510935012891106345938256659087001200071634894797112926647870046483150734235174234384722834267266593350396407082111141315414693156586158005052268866395226834181765977628873221260944899085623653438466450645085740605865571924108388099760285013002154672290134663304141326021389063098451468175335866059442300596532990718612227669900780184487870345705741916072904851314310658228640080895966821983339449991915664415272029240160317204311005557163191328692946080898955201616864161188703591287490749254694155192742170855873886955624368258682479501800537905628164650925441948995466904988130534187331288969932086447032801782068860595879959297115664436035892458289517074433079155570453400254608203820617024431023051005028269526489820503638803629935361823621470967260296224818359327754189277568155468242210478743110752907498814139771383130767866479785829190284035553302609737512199501897965924188652039147790736646751753054282045341648129093291900849696153047039392830399135907476764292126366894590768759227747414119125816871935629982825139502747777984202921864577440883726209656712911018641565068897559341602297531399680222700198974903377864977283613917588324912856306685150491769017807864648473918586694018060373317879012557890840562901717511917547572811514918295993312022953385371746894342374920078387150776697687250778408820121907060030042621618275237040358039938173874403994041410066470226343397238107799298271027126877052392576643974758977826455836902696652837741025371762096606524453469604194934672779617846316312044093731942582478427084747666948875529217497006345843303364379723752436338723437642839256507050351729881133777985243961457535766258676582129671554667092957964781821647704554009345003550101510552271396933036897584169302297740276828547152752146803054617036460464135123828502108471353814880716926227347456746361775005880075918977355179175558656408060336813133236408591068517235645839097104292048799822664427533393465221907213415213197699399443347198133787670360905960912844981559050772997963197220140275226507264940001009389959341466820575563496168973477377106374002323074185677714924200239399907091549602598389509922923185145860165450860705862073226383181221100738763338620902577576694047008944203810948017681448320077087121155452248588222448224095901723075275693470747550141349016752235438591634001229663867683879034486961543639847533267500606613073495776567711814362762082913562297988455036002371065555290371931272352163316204059999474544547585025665201050830142163355922199426139327961017166439277018745362350587213316162788557764530893038005278652841284846253347595783532060359729624012722364189329315626272314431506016902876148698710840659374494837827167759302765834971623388416095352914951672768192199199235683217551883403314253610140232034737079694266070448913502255633138457135004267293246861212079988399931577232910590038595423664439921950746934941035552653305594741631572782359722832753501549340385329585925824350304490539113573990741244667605649965081445133050769045458822022320578916450178348963120742150713935007518848151116955248275885006070367644417937609968539533403976211501809051762769686697260000342483033116448997927818691585588235729326153620918157857800135859800038300881895455151178926623155136195376372283864449638075714709056843490924369669139104237467413220768679598033920587700359987044439024999948623536603789494089762649948852639121046894513846881584913565514986167305984147604971932854640841651359017319946057897806396800393852119547790248258545756674702000251612500330443855753710498713615198088136120851705535890803532374219008742037184497745434210375649171408310563381869358438126716628099738388448360257900305019798366794464238807104643443371014293296381309510688868384405483332320027519335100239717730061631178992764201701594166952235822465794967835677191610451717360695691811284245609211617065187365626603654667316234120219353056369549512631507369323060403576835676702270608393457550018020310969135170055141135149357694387821605762695186884165878995992408119907332898772395562761826461170201663150059080303483724665192471568038595315705259542832192412524653895675336685378815314270316347108980706304661904880946109858555486531997689548955038859512247960958878299742483959284143110676700761463853650505752865853066699912136611621395726364084176899999880434164539628265227862553451952649539877338854867629448804144352664723005494132810128094215947578778498596076825082963276147822957540278706870429867365482452505735069203942925886921286020107956534735758225023754130239053480078450365757504318887732237196798970921102974030027349561690292685119523432375880139747181660884075761106741662429990991725697888361288050340675699573613337399675731405815312493404025145825278513983116285112500655075290481386848450286491128282870363196846756687755506901994441297195967150543128925133663659879502449151712743781106855586809151710765102955761636244594437682456356393519004931090495719616352457847192933769775277604336802338479601680371677437639911395316829458379074695276283081991272312737453926964616010130614960084460011998940923960744938532697043849866851846096035997975632101633472980377827611249755426973135733980751554210652663527478705091570206058047388897328530303539194064909806535360578784365027090696713764226093547037093284324866594988742864341458187507740724897384223687348226903152962342254377481970772927856270381307731730905494139178670910735284491459640673532306902671011770551308434228942888535927127564936033146580765040553382781361362552497647661310352128096320566578896338588581778910190418042981724281308468338330807791312512029479648331696909680901210452888749929580649576976249317869378355759865689992550586645950771573435158576991263019621247674146106739398897725846755385856445685793303401731496681063416771098380123545238004707292966003941410564501158751990343212772081750322272065361905073990961294304231548461182703801477469480555693876203641820833101516453502254847574222383464185055983020425458676801137171819403050898704710036709773959242603618453904623929322322845188807423922430691108790955981528797182650401519300327612463503768604005368145051780375599992149547166932916722629976365383619161183654718706799673138668390829405758535817518134974295160355412733933299527068888080181482069604425442646444847890067942315473022446126692773398857340764121259515779046588705600679902291366820977207215601267497574947987660922812778824967387372250098194259311109048344812960817373973262509967065928156409509679756732935073386721659209489275103206665221649713604650599852503285402330060428874127402689999847411996459211791572352188551608485472399658323338174372213959365682726625306230861205504678828455289411983145843625490327605178083512001096810386894536301813875523914688855266875312457412066985794828171349441336231132218250144428643034707277235565984679693789298829880724591126160685741032050959925499034674234904354445770917940528617704971069417963935909369699448791881709830692598107041340105354213083595307678413861039476993317793578502677261796011170133308000027884281455698125589095661362332222795799563967993999807397734583959620392634570882982057224618447803428008073318938346509700742374534608029394702986592499567041871702331406799380596127152889888398543779125236502039872797625373183459964879494520102393105180782771304715623503527296451539061491068867740577758841698848376213504372976968456096270030782411934875957576328398909467872244720180006858938146356928243268254988005535513725715574976070660960509116036527535055969666927891466096258779476269525381610551247109579551429226785230598321822544358144579865328226404407495860348141105674160348801936262689961111202259661846083286791918730372995968663581443565360260293935635760167098694393336684079227953246890013541719341637851755488402128043525811751183257822671085212539004014966246840762569508946658919307982014746719301044720837342417394104812992229573163006859925154652817150439105947977308914878656123013182581226096940791659460319784610642638199335702405587995337194021375195837780309042950783710113693619908605759703525221277311749997857254122362484100031482950098037324217970018142194033302434559215667517065229056583957986428244468585380359152150609476194891769240313738085398689558156511148156357809924778278732421662665991856256191580007308555368680968156015296467512816608482789330812311241225271979711948982856033974357078770443294922501692014028505905060339551056749863487674297964608139925414287980131254773497734904594867234696389245466551099986754435919617780662380612865404455671410320959153549706103329778421526606780856818507696965458450069953984121771598711570495551143118538840431596010620988783190772283074987052998182525132889543249991308854829145055057173206981443526061051292658486592774752324104661243916370653891681072454865282988934299190100901651077352852084706485133226394248036700902515544079702379944070473467388146827053356437985735129978925181617541962748633648084433809800135081941516552659869563441737217832737357250557961127561421227208955732330116174061757497778611861176724485455000571869988459877479509540447433732451203293943498106272788142962489007937305000596606654801798172198083306445920970534492503779525186254925659191166141765517002792743941754028160105256757676957900412332495932954534979994092155915716489558547184898634175826597750347874603721604756946086948187703665197045639727115032942901522039704084164246956343690196005413123941835345234869007193090971417299487768989373302900649792937088624219282594785315013894489402701624952781756671448119912795022206141591180115643753192910182821937860141177427059352467668436160237215532953729197783446288544297584544232558297620492361407158584138443705842981184064383011396004237240244845394547373256561685635193705038038121034649401059195882925654421169669141690199748196567359621666366153204964053129418872442713710483546277209473663861618736219009138077683261916700048004269076180618270981175969408227731066666449338015491885509305440443819683755762673455417021212800673070960521148212271501631934415503280516077566080310268897034776148036159894614006313739274540496526438349269869180110751544475704934996813440341965992840438223814091602597459240727033486434141790780534671732364151578600013789560294271156753788873007571493372236218105864542040297923902150993888669781508455516866160331586804739770602577500264164893651024890806822110559018175336159024379705485921872249486550991804353372912723732748222499545351079074181190885997772985793805109391812942815787937360205852542450448015925864068459399105999001244004536717927926205032055238581709632418512884424434683356021619778973548119884141212331524603257482968073749084531845150893176173908081379535104270278691416254777070364450951403611659675846645226817318786494716250815419626690906883214027529004602764436429388141533349222155568052412375099418196869479365540187771645765555250988035577716755528532865103878751252787285724634975759459153049975759518363152801352942706777207226878354740276417853914662871754570263756539192732580634097939788039751929866807646852006016363193879473670291855562196783911964639425616522909547065971801060194166037200065466309073805559516871976218358495158183369516126361670071359613407559261606342634051578243691923451433208846517249196915895319923778830071266657648998178369047497979689875424626668295918288003787464494852595973659897802698004743538806040646002781136447477053085425121542800928409935593173400405489406531831074832911988286383594130608268690272525217018392879922859171710246046053341511812282773095224891697873367981070585798991335700419603011190446325718267750443093816080111550472050767270083436604528790318016631861419167559930071439602172776526164197184197396074905184066276771067989781167927062722184183285323079054379033805616282350266616527511230162198405303231400546873314256047322157523433880625589060545624866293208493785823192235216140926784145492764922724473004020965026012681839394575259802846117036436733612090817433369308709624054628121331343884494469595801188149485176349175983762227978363154188858430454319599589484468946531647154819528648237298346301294545370024846127002522660656302998692899507166357824511023976780570786889153357029106749553102684522055137874938507778398468950381322152984375854970824903343593573640213595501821910045425780383131503435514019278876293259278599762087032389979425384608314415813399772126735546456545185563239398590763069786875127404620149760420743727058365557785924618154269511329317465710059255132227626125770401567190302880958400085763293143200374029834661507555173278910714455428693278733005500395179503758960434016697937118620404820072583496385698496207583351550150358153226152996714027208634787993979648271503119903854120047575728803851356157669093941843912475699214561124367011176655457711018485894564159370182385670495379646354548912874550353176459207528232284111381459612566126852486390070884495412006586829113132492754172405626210764234190318818338792723007384920816727528874054197077501612609027401838486459789843528506278410026155949651819846940500087253970842990142431948037980203052264097288357046053935456793132545788438371902164204430413517424189815413748737717998441859463215845435689566921419589002256195730961393812834835873684167242642037222868215370262453486770002692720043457963581561117461531603246781174109602264498002913870986024736307968502527165996332106820634125782007139897799631090307568455404420426715864322820792500747104172337180790090541802145388018015359276200537908870166674143755685014483394372467155651241643141394603680115248743192185781715219589112130419079486370998791867903841549314464185649823847811619744070413829607151984952059723035459578988430465854916874139665979961632837561798768056905142579791244248823093012738767267356657833903916302174963924998892759781317078776990468427456328356036662287472722660693252430258702678473574609902530232769250654720361239939958423089079451335391294591166082222595833630013136181247087867290917555631088921218967946626471565840058233061062246752253189628458648885151107030084362029475064730992968411180772112032307943578323781448844593738012474878432860165149982638587784836777443712466167311789595164749498452248944005604494107555593089774883141133545774898521946969586299638256646383541275611676535171112335335926939439595819635736904431771662315743260238741394991276439825380354712172185791619288061077456630551758431356783764786862572887143009856142769616190598417153307950246937185087699233567818169395977785124557496894838103200320080381408164705257171369464922640209423553551105151485708819319257827019284188423623702033168988681952928041450456038861302380104274257564610492953972685173613738494357646096235389809061693163686251345250802424231206164285718934858027599784014467553835373574199563589415766521835063878104995514291941666468864192493221415634198708927226213947007150687402352637658224686458381878705962453786169677705831493073945130468559182398752107093947225208618101980784938109949545386247158973360296575916768279392823378805326937456078647872353615071078254615110542776248121997358727262457011631031384756869868714931533586248942631396298658622199074399399592009699430343642572309004967340838864923998458220476768166638816869212120883453156077374089063363735774215069921627896325277774098408339739213768021575048498413272061226629843444721315405331979537054908384189448255151967217519963427265660925484053655315523228213529756404942922301201939468558645278642750479679190673989702271311522899940454994353896522812774387600676047253015536634673956034503728302504703866397203089310043878905622319170183699226867033984110938608857508679857590756879316957610034783406332817157664325096726426014374708931657591015189656239714375731889982815859804633642601522737450185175319093890649074922979439208778803932390397268202691117283246321641565379736912345546462350563061763908335208435584634712171155304908700851118730106507374203711125966372744911629661167086301403738210756919028459467146020099044897900080003384427965338245176842185302126514181667807421804675674786654806892073811645958538514899429064376956453000752497517448926503855661285294929809800303705125995776160305629670030927591516297172578935621737928330106944257932680742818906781670423270736583606287044662304730608182101315739723594528798030589065006269530628074453991843497315876905495864676470915595680901894476296723050931578116346148696525917305042839210499024728321685393450222727140935191296921764319171028723094644103339388212716586499825927279869390402444775772947522474153555039895294471951770799587565696496993571534524425554631408866132622914309826699878426361529753669627405849555689337634532040517922803953489555149032759854728441611357042662869720741824859483503148581655698886571417992605252328804571285348305402145782944678786063125413221657778469865652491841360372726056696866702899493666533844764968265845389983726064018279152410060148601531359257963174857197272168194754504082701525946187824975764657993302278250257632995781011499939798840930780468946826163312449230056284882406940718830972043561003473136331247872941026575849736462841521407622733225296911366300250338870234149054038817839454827884301745736401270965597319187122354800567611867436683910658302409029257628684366472683667521843843507353567444635493054340241086953845551539931224935243182253121676584901023610196189943619080801789246793121002465955067145548602756676018252696177922451405834128467673545343160636674118333945309853831225254700740356580328415826805869855484821438819225676570644242775121447294838904435856505716626238018262113829640897937312501244344818878265172527972530211317910225146052112932075015587029510352908445051580655180569439543382996753807971005716842631998130142577342183547654380553384422545609506800589332036507792319521023665032061260102671204663348902419400801653580015736277943511172404065118569825146302791653473479646139010049394802158162349344912388532551959926579410707592346627076275277321632850893576366465342392265292699015086840081926373134390245896685607427983212076083594222359081014951371845899289033644049389157526110452332768209344780382131367664401273189706192099879684745190411654170213340907224369553997556734714231113813110971500335750570811973243003516898088014372970021245351244142687599810340040232757757991479784852295755777354116372959978931174239467712229144988659859955949393907609514104104426970867306205769122665345040633939486249964505993129940951987485416525359180213548547064170965892916685142359355178245985226519575495584941077910368108194514024279766857678869067401860539444637339935290384068889480135466557777816631475886928463269804968734621222746011382578055855439675837680290937930702000215122015681752842377306344189807893623581489252391733877247564773682910953675922905599006020432894584222471061645349452362745580836427482785054472678247384032211051949126776784884264542096203097586964075231305801550124726620851271195595234696232414664148445867463267557019837489148607222840480120726823669772928172288500847852948356509260778440236394633051073717089118233465568418829045558364236179877790682738850900649482965446797159271764393410492024074986852680389470941183735446054468395813615942686810190281701134398071115603051239403983770328482171057383890495296461284750811351625475496113866732051787381758566249573408714932240912939877687316835234908228495221404814393278057615400358763423638200947127352979117205450017951937489139755547352167276887519272606501104287648909943219299818280540331663117516764538799368157887375898283621547727782190272212897884938699537511304740795493154760816639387293266707445558596632405912528279638181929790846739206196214021538273520549610386346170026006874183861326489285901648055256270752570425914575761124192481709455882618507103607943887935522970765953619775475583608295858589419394217654947060616999016955192752767764303372325658536582376844490540522219064389874701641099392400626395489473972462867581582074141772696205485505743285653099339130938840208951429998087788043441001379568353142965746624759850699038121808085130237991227985291670384922464296600550070287344412673517199373099167795129471758044106064449623902140442202869372342471350695590686984089881737125106639988866424713777789365672416642861690225424402781349620251473570264999251699474968723714152705747154125946884679635441191110501906170373360219967902803065652404276539309746414985485841536969503880092873324565232087109818899627339064984721086655491339083902288475080622631454665199587688100586423452763535903650063223130000724888649996255042289735368681307196773184103592844712398986793123560426312581605635999991035248882438675270032122695503509730614464372582444103479499794928726155652950172791268785640594424558553963735936775736913544993812322690868326081421047358550240923532228914195154658310220242028820138135809064032182147943495288546677899389975902627586291060636540334109264880168668962542758168568578570385861663176777323512137647942628082924845254687092430994687478133937662759298114520168362245389345382508697691448185082507562648546227297858309888617861059314222986111960963872844090761406423234607082703161959377253746104729864030147753477995214037143376267810366755004443783714373224048862720360490899493638878664105071082343511627390172715521146776725957992762197739762247983968617323485034587556263197690850448931772430615903158047450145503227267536772656941269686912826424460198738138558430816543999726128072153378884374816097181986761139797540387203375785191369008483379678216908941725528357034539334474572063577148187650452608466686243775708767645343849883721082258543419023622638056490664608271750017061988026464292358877646342158662159025399750515844482290922643601730566376192839798256727230051734799485815691211706015715567253670429333513685445276839992923710465737200473407896387773107393933839237578706698308258839780591498075265660666596740972404632546154198495345688992485716245555128952675203402679650394347099973108563725845229324459335528594849909857823732360330695469462775150437747037910432805516863586637562949674341588846730402462838340560003526676383669852762949767075494945643021178034361503199101069074464564722344163626712414165249958534493422374734280167610158194116123100584771279227594478149674585022498591445997055053838461185277957623350835368875894160320661772735657049336705946513411561508184011726446204050935576831235828124309463855289644666492846519203186302629752274545416245649281436339411372353969965203921157065089572592936509015129536155566103711848668147281793829030595697451526981013468875712017950017939226287211250068556875354890034785359566922050957617700639305003018843570533508577417656578056711508206542007800702955073298781829682514660663919346484424577167426044101722614425818435413232488953597267172309903785417844061108406221065236205753724293526360448522524715846544122743282702365453590797019655588056309885849263022071682345232525023697799878166126332532039789450761077669458443926121755156399479826176594136941673717528691339546539851574139446141789028772283375660218966619835361761453969722892256133556839955040211430846337527655646148408579530407797770640224033971514898482405716257412255332003579917272732796039543962071081173301534736776502943873416253845197003327385266980559204937718762183182399686698477064571713343670651852511409810514657914221423199797253969556444143775612139385261618561898201020910851034069403432249899793961039641340674858894687728523115375343210515212721821218251017669892185962243928463009021707591380923013034759065734584136596359595611285958047910055570271599154005189044921661708206066210687193192525180607635083889688086192790210570633186273315210724531150796102596321960538039646875364466532756256135218254025690647132260177118784307524155722974742251950426594279549834439820563217427863474642661044580662301579566705955199158976005150437460843929066202711142495445550359734707045843483398289526526172913373004124488032096464239135193831041007738811481242619955001231229163973007110067297370897997795913621712767102173737051821183018176860543982882940131269738806249471372461510733412228193550310366238271221033095243443581766588750740080533627457508652277667216435593205469053589696168544434237312718609359219727964945243866360123406178734483746122159797724112156669018232223756329761824369787560128530172670036801188189409010682600098455640387567407753021234956550515602583847504124991200324216887132865683011417362121321163548583085844503827416423625772833162971145447049526357645095685215081547550461901773187783604461843889423428857143695970641698978668493274151112217981574744122964243705023303004798077946690944535251091318281414804228168589710323919663192080944115027805177873915542888146228556775626490447933447928416062903025754955466323041843231499685545270211212280778085937910153728000171338100184232879764522922245404328633662899798119774338271495444845865366592595032905355431265431232605047238084857278562173205471960239514586137387916911423895734375022589545782139137178184165172989701007408738983747258833666634701416599200101136613816233397499257851285603032777020056249068756771811159136203494874194920468182650569001233853941797491359240633912500962117036075601318740641132006567893790722913640509731283976088502880453683412211823196413122954697882695434108264076886348695458731637253062956719670308065923341754292976320934401762579927714180588549862458823617653614353112155834515354712692565655621846704926768940332113028992045186534932600622894973524560097834882327669812648712995095156471963166243989432981074601927490610541527706585730594942415561026620572006007918731180842269395788876926940964374538806377230455154895092977184480867659302688547762317953777603539774314560282794181803902230254269771535783464962142161216921285408123767948054597327190321552172636987196497368533979700126386380577145818454500696510026558039370591782369852535378271840315835300266444755515654503681113175236700677536130498830110075954383889561561382529795023422544027934496719777787504585702991517268354779601320596799051621377891500948495040460633345896765787209005251071103161198391954629410559508872794909225208822373680401855175155483250621858335715935238587769920799399390097292482125827635149960707393577757333791091199778100957569254967167810862465668441135444319226267114047298599836427405974118957367781658796936170828878708712136824896638020727372735616970515980321802135851943976752656079447715679518435525945174127495799423658225281078756367387103041810804908836684126471213592501346654749965617070895574804870215204226426237223735045913827301174548868444191582082647306032785151584835474981218177950020167910583683307384389332995141697600210141634252025896903027657620053248279239039133529853937806499435348477775007541310045201911651348826878676508693539299085184083286344221520519474106484739224154565444720930877399501189738193628023035298348172528648647618033103221874910408866282805134399200969106099911160036534542567275169566516052009082099501472097853393656350392431591081351200825224348562490326900952693979967732074359413033351455703095533436132649819614081653576514376008637651969690952400046025689320258917931284476694530157174607335486913404468459980303931842534305630670756148408603358662766492256238827325231582996797071493210311202018162259905266205419935901487374533279175835217593313766455803991974091472596786236657087739115513034802749878695101564292024801722073217438100101743335505709175035195894244584235411160394952220331484314639224725323210961577329417815079450912753900155722916137262789751427847778585821727406138526690385400329043807195283732943883571489512233172638715029553673414893678177025372620706601953362219484122992422137898570515918706559266267163475090629331835561120425458238513656947142578850740570906894822202747750449501598502183754796868497410348879273129363115910542947772858096758869999434936182161812225304571181052675558627807989683735309185589172944254197437750298066630285648895946208021727503227049697073763335966622211690718949743967199465392680120599715602514821358505744233699523000345590406577542215668585370535590157382176612341878118469884542843970169218598298892406007829565877800207866348482197234636612679178323607288196728552585600612968491302365974221824863495730092329130754496080706881284075126290847350176167843565764574861510613027549677464034791911125695500961203683794747698830182056193022831667705024721316860892837512567856390744125635631135729820853588279007165243949508427164255154190795079372632587379854867224747617080340446498792480135258133737475451785421748695220419118682141173634357910011828060559476952158539585363143266539885518276929511546595393196231314213711365232711205224547676918270760709512495698710443172919854002482867927782498214821465977356384707274981100627575539872329442640439073987847370848533463994147836219996736041767263954502987790125732256121862601411481590090029350209288174479455178330647749037254769203465968700615488138959231800411022140244372546908867888113816108822879928072723768717878844922984229385746207270999124602079116547749398106368453919829938424394210803985307273552082008466778713258283357838108425788196842470684733736169270092855833409666844910034964912281439412886529142927437862964248357967022387257173675530907899254470251729705319851167712064342428779955262560019684879516362971362754529026132490903848020255241754366193261650059219102355090498210346577915285036123417660332084104476167205666853533982222920420095288616875890366075372879683624039855956805001012323463627858993746334169911312271385488497790527746347782510917192213106796193359884654950744459765655976985608243644663881839654252813398128044932738437905773185882422931383749496918116703104588321308591378068780642711998144269527092683793331738069211481927284875926196230177000569153031497873615408696958493289347988367780578075196819390069852020520473050683072938292517062604678539934681091294267699353979203142816735569576739844108722874346212355662554594214456589463450141836271321148894783902657254014728501260833118311423385492974398180819334046753518849019995289933471993362612369122528263074265072518510590723855213532907442780655303584493534073349847729308744457797394226206905550127312423078044413352001950100156414969820276272008281664328914178049835991000572346285155725106956967520078041388944117795412579592723278345081390664738216647614254212076939403203321535206514633442456425055103540400904082927209285234118225884649572025768190243168304269906410742731960227378233138132484220336631992094330577833887418673772674388839462695627316849461002200761236123144184122362778873932803356777795362951797757062195094862022751334536137180154691834759192399910421115315675317548264784253845704205301608101487036795547827882695951424191121060352977448027024479292398546864187201983121612957371467072466251572131408258980843992213865194686843074475016038430984742529187056103191334554064306816744822023900649178582549436228319906471936400693560180386280194561505104900732917789286843472206646993894919542937300894313396677526784482267055758464229935884133943424816610960015301132877681501708431523432511739201303488190073014927463751046277522351209850176783510687816642091291497561427501395083260563900553870555639061499309440756422279121174921975999998199253750418162464027163910267463754632587025425940729512946084987695974925957891224985567047326165146874125357742485485601492805385420024837748973567172311366726392894998023555559236834650882433809165710543452208919470491982610136830603482879330583159693602532569366374402855823348762936531438815018330361466592441386011683393380619774636016400196409629678398878737585460187392883716336921883881470097092646381000523822749631402567250510951297887707394969014789516559973868345413342726697224063187607490062979691125235499460228941046166534143135359750492944955140389184363111791024016383867163666570625377203430765700732017620339538817715507746175177851833395528106629737945619605789467169378123818388311184641048088715477086672814500219802285911934855814606114572937107704601592443975196947944712249431080210420079790206385778116173297002079265750373765853825915153479963304026721714079111031413361483978247902827599729785915648254012883489920243819192809838919277504395642889581385222953337407804038177223716183421993720668079676431734094774599513609368958617003325851570551670705947124860799331945674399296731883749233118598368697840807266328794108090399191411570466270164991239876629096607207366785603629370969005415446830266113830651117968601488753851759094044249428728585625537505200809116240119645718082562185978356494955661640291240127276581629674439646064606216372813764271323906697481940603856763844144359942913207114283874198710425023406215387684301745856143251294436899294325253236637722852996351594932694022961486978315586378213296982654331029507870314845879868383712901586575306914894053508249949493392585050797326048939779111719591825295552259699781275620374053155498745401071520470888237116201300207992583304772595422046249949578945708997230885758948076956649684132886045275608461076425059913720433174641524924245979450224465524080362251725702521709833430289476648905338066953066575858388170282745472817212902084427928587536098109602339531711890319354469686782704506637032553229551333352931859150173145582844742321604472559353245685813933931580792293297346268797246292666797557049832993122991817469209530791012146833753776637651801173400941780680885980588070475242980006495855284990534023184472563811072484002277659278869095932218733208306216965959621961368216571267803122673350871784426780021128754520709674746817135666987613050113411702211021491074606335132321477966862910516020718363183109285854470191603853034641923389053647338879909685294909663691097655301278695199224130678540313432217841220780366183261779122282358835226828874017347273664583204873786935023184756375680995785509991645967234252689528036897456513650799227337866268677133256343361096723643456670216931614359561610052465443337545439203275312587447839329317929389856806615705399313391116508645105575873495799106083763998545340167527620033454284848675907861344973315721444783830317234607832509998114141178332762848879845631961866713350575369516122608025461017430859292868001525311865259130130759826611856630221375803758979314147263085618034312086099054600038186678311679942786963593239056752451629146055856981931328796741636625826957404438031033073119094428107727591784551397827841719854954018838638411831124285503085872539432610652149664360327582914473931837364502317655680821720292840879360660167460225682936398144281742843907397977893463997705688881126417201078571291341604357653735573574539033391473835834286723768712877503585547708181685154455914735098526099111175219614518494059497321681061978083586330472501493766637971522050149213055773077506490534327245553869366074694547561823549287072262379035519893384576776529085747696172335282281567433781111753817401110203037749298787444859323831140197343102295919735669301869396757522874154237185084604584350288155785365423985077167277602303224246078987428611675672942474229654795343802301946871609316808213354557799762647902309212072621440604005401176530153136967689616033796093010008622298289547950746970698416189331014276642348192945842449918881331965434046291380152925629730113838736469872922047866781764955880353018467727627185328121579188892601614834674711630194621180289767285106676473767783759755632203582243809965153321616771373350331256386334949755099081591769430646651614568750955757337463168984318603721172591125610835095426620389493119895520365507844182764672679966885657751978285335449429796231475810515186954839660131803108061537796667718534365793272930468408013351254827549909516279354853979276556613663753548887755751961350116186133643946699816506649433581749849873994226913575612631959050754434505390686184495291916591385629524361334420170259727330217035018666249391476662244546249164107423056531873005049482735813742973781211505460043373693517037130805231976343099911914976481464492207214192071938534454221326856331158617280212764790807935708729124889692792273739180780588209792121416014850269963090645178635098786044817107816998352549634591214407757351210460669727113705641734331779212302883046321329907127153135035351943752181385019460173421931589064499603546194785879355026743539383706878823909681484353174660004143502838519439497899686162107215754861198816760661640942131552311515605600711657805891059979101920995778318297975574492699175178563642583453261163233175416758453913497954034794876513587025834855798863414351044583003281464179120023817000319058719029408640246666098210534023615278431046069703532730589767969660722538037947359714343618024612018443182147924074278287349665759316226329546436065563993995536397590972532241279180745563145452620674179419674411656944968864203643140967390637273465957942723162609594900208525232151599070776842070354027212418904439027764313652009242303376346594464454126798646012436631216189255618634853442943401258167539931681129568039408110757034433082170800126543649431240462364345860575015911378809647222673793858120443788173749025555389959816859827018958306364946740485225180998955144573252743854282902682117294407416209653250586938226884401930524838718852437433782024425349322400332136174203878032267122778796635840254341005182227065989172552219312923943783273585771629846218646752272027465552181375376126568240612622380093946635283192241836429270794124960017135982540359273599053770757731864893722245610312815009706027023424066777767757315339034686589504702886766668055224551238524773979043955471937449570437430833116220476041237807717710952074313303498552263836808192076802476370343524401790629232994780396053149631183304030907430205204195133083626123744525897020953751845203858505412228971183199983916731197084997093471140633842293097425177223927926611108757509493127145122662167507957773965102485735258537162492622158396238384064900053821231896115786775549887947471345139098709767296111312766957734030941103017933271294562190307592858986834399600302071086589684968071836615875086278070708027894271314674299878517638519631594201317836035129083360357675955801445581859173232471978352538965526118049234996617369856199117325138885884730323497796476801119235600195748535602177580107649171249653073319620881369823836646148841432261384980267857541785900601045893618449467197384597079804545451556181028592860890148844276040002549755950110934038181145187870865097679527580448089945079346016533620372097693149469611205776764858107550738897188257325697984148429548572255231950878336331438782092404804390575031607177758672522699188244906755575473836848783703784112462436295993011090533981952619815832289494752897499584812802108998535887072694052117016975789543150655764929673027243694724444491253454550004392554527667699862204881053054829321536525575006851295588498435132806149111657542534037914676844393172370194172299826141850138021913028639324448673686486815613022315322207244860549716236611493690230684281333919986188440102921513972354216422093864974736623768115512138510696218651448682467918862894186886671486248412198895063955475152831966316816343280244196496235013590123494902935874259959993720017968520766026148102393022869324247997524287321676438896371575031712319922214093976776144422903203427397219844061145514680908752397490806015725139937864257862491425747656063893018665076926544967080661524284395274832822223927169508977686739740131928535824432889921086765626464693290824610503867677015639484508914899369254554730789161902965799550425433087040229986908141333366628871011969609122898810989929282510058383979165727959525429080937767843702284100645786647375632317977622827115094109904253159477488214356047060820468723730342877167748262327973841895585919716225006197214833592461137083482469167030882935647458973566081315194963604655978646166514044744089327379594783323006404886625088220402349770613797914492695212768741810884420559901522393579564120405152308839969199560400677873256583029229075729483754043812438378345777933892984755081800597385418445370175574181358279708305746140387783917521881999466338060136907659011008459081564200687812021128351665120131738253577183420122127872519713143870439218568699985645033059404040221481699323142999738412111865896435412038122220468495165780561655365912418271963944958652966243949317023355475013969816823618180351239393797286603671478678517576268562872089092035192750888190055629742563183806458123136391065522614661337157840818947580566345789643818443351910206689150842489168785966462907860174447905112405107174360187124544333642201395545309452613195494175366394322607599900877459707584860976011187819700183750910295586942373023899645538899481300942875472968337797669221856589376536569148125274062606317722833701811337283924774298032306274471833169249269132150539398316266104759433201704354076524842623206115922340468598539360256990507743109175841457995031872046337354361359645382697093438890715441377367014526786500823575259476811784595871862000841997567848482638593366339662041383970541455560515810646108697466025490112029446445892431921650358614995020125753214587701176838969066484367162052742192926917812006255425158168537543941745800951730739365233453209599127960036141324293965044110901955696479539029384934120420034143306977287786889935243221330682554874255467148063498206218291600482651643369778406937307313739584645637318235324536040501432107012557551817330388459823105137634028735740861196790950395329833486337146881469620688015050553187278319252205297781995537223476910456475076356182381995888015002378659402077157220680037379169724836380856345948274996599841085438983339263770298684995492932857613354132319750907129722731778072622583350204117773660526346987481183204176036210076929914567211002131636670840517783440045935778134000518563871943813093749170830216460893510661378884581730111623754651199873357602210794982005665235016749545717703492239492390755847756660925466309097422317090851371389365809134502287791807336282436967112669647229569954247212565447412259271158319417808569256956963779678578836148357405985297190432099384936392380936195780561455106659918056083976746441010983113586017769673659961002558194487178639260235661742195974116165692202854386949567339353048122789571357917332521144551428661597205116871106216361536807667973848905671543761075405005267144696074760471578834877380293529121556696268823603121573704145440999393095198166131766075179333360350677229025365296003325230811897457185415799251664524357002067237771445676253193871566640330962635182661110614124970778687546560963118333570189028088225423950349160702426431851905048763111155647022518874221166582446114498868099535157908969186551088265881656988488575778118136892806703029034033133868239354316176495702322112642254721704849089914689546411125010320981126893173509457238480387355008232038279805662974827615833113405926981839832376791654475261634656645085451163760261072554776922490738334169513650211596798586110676886512913373338409473211754801435082803193148135766011359286409658526028577509382550625932263894599210477473061276525887425323879858602331160935822982978477754517749572208069520217037735461749655876903249593630774207081093920625611580291431420005211577550479786194634672161909729771848016318695396562673392035306272270817722974196400645897817115675074923547928024900982660469745123759430895125953003462016629023770163426625864462062305202030727668490997384995326041229147235092817119345664876246368665756355403495820346117734961178374588933193790978891678034974803663543597312436111370524782445249882144310539244166746134954305187900901235506947261563583012265834589642396021949792061250584506564086905039899773162005742249144312009414198199172115698578103736140932337499154013549739405442529187818144953143661380680302702085240775869065596454973684778365023482409647872336505819258586675419401686319819339275427936486259361034513835797321973668718596144512437783283419414772524837488218934548382516278107933008769318864800047000386041255199469058338004459531429698101209874095832247232030967932988689553719962313768421560940340956202352119083386648111918397600706978904120226933555309803314535543281798135281738513538091233439609615590975144664710082006768512696020441272496490252275170571484851953235813407254002065522250305615704507952406126020589367384512460023004334850115600868465323755108113349645767738807724261702114646899150029920509847707605302488694187171932115889762294059419898721746592734946635710314299910532280947145154154954706045134403692581880109827207187507391856928907851170629376764017920595492851884765662837195289702390847663922864838754534284606856421875694624666503186313361209284632626117509130139814808832217918324422679778358030905031590184058867404505114197600236214100787315490625187348534835064740371771798919667996386745704674217824821058820256459350650261399321151228242072387254826237814571960036289608421303522767494759997210774447948430742328029274344237178474420827772012597948048634842462239837888669847044323609432943931081222542415007662644053201569544351213466265062050788190521756197758953439931132821632126659734462546441533776015342372577887891667268528731561995350906130343914637446841650230617203528414599022056444282586098845318218737225012759093606447112272319355919671839551973124045404250951767510241569685576578893209371978107835871449923477387441090514850998400835676027758943568743094871607562323840859889160091852891828833627472303698275615305645294568064458886431879328181349257725658674051850607173992562993308507893671084273134432184865530079584370679329457379065624834423930000001236553608866247006494780906185133098489258586672612408025582852660740725988773738479244408918211438291909973946071269215973772252050473113984648173506852985399412292760176210469067396196782537264775219455766204827648208810947924474997193643963473651945335847687842030852163351195595581116013612118615810410239980906942043951660328005854927308217590676492134136200866121779465750001008857651650098752491198503678593791353236973363240416100448037643838812249288115912521982292505205760140842995108022710711955827508319485007942294449141237144333071355384749828160750300677674976694807417080589392238548951411043788584598979191206449248907234910148498530585852400454476419090661884731069490613742487079685448487818399367180652475640339634464434556553683632425182870999238561675929513780721663426419166729985592160988271533424207233831168249765129845866920247843242595474541492643764593388821251931680085267708875232316291682327119239264441398744026535728293515746182209578654402103703287143965228339559529695420655389642327331583812890947401945278360318978328417405342336746650279364933861687556357509753212269604719520387837796881056700434155101378719395099405009467800804334300630272576335013819763367546807203882889439829187568468170294806545668674369341551695393066622553465158860000378268428152276494310052447224692832773434513782594303684059005831060200875288637862631772693282551914579496758375091623729752116974203053079108884337947472661602897173595181279911541352996471630691992214175976575711415505257550837692382491042585109371482158730901095344416510031765817366372638129764729622921506501585056942937383984056767499758638522522876179421687648978911855303212442143521491144349124346707401244377083886502848720870966493336489959271885082980582679570886621881315389776590239199849720870522444650623409922204960579059377403263600620032219053944606307780189310667197702600505799911543187342389884474112215685877812788030435755595063118442905262761285439713160882460151249605904384407121303330530591719180630757141027951965481705612849224945188853435417752064829781952950618181593891195583743573913336632873301149818400461938785517177549992254561181643325866351151953722976828368109024689649574264136252721237042692161282331691526136995409640929221410653310715673159713083611765470885739116459462504143434971716569752168410637083690664368444692934922830845195979335977796894530819513336324076603674410390022187912593689428071478806953386877308951352203445182904737696402155850537868922298502995551666856297467013285988309173961827131686390700438549271795391605745782843751614131851085414593523864964444993524659363727784880732770009923667345408686091747535687613832784817955023643964023233453146402160281479261174287777438086975554517444767752376521610839221236975940910030464351131085688211991800812532910733982365474594746244794011593536261233045688662319997421915113457722705299399348182144518855659337057921467233437255421878553804201840960115452705679897905226452965589677607576019803256994369019708711694001528555061495404736409991478808941052282323008671446656227151608527510337965078694504478870859096453938459929949590535614872515199587058388439231770476211397001399286499667754818775316831550426953876828152446506652000162898888239404689980020604641142904389514317917673452378236162669803261084179342218511363066605482363928199602816194312659047972626736977597616708150488458017717447348420819730483264680917070479998017814313920699783358464895873168286259183904797794885153446073334021339672194000855304825012092987779444256803136416796768956131572501361895413956434738608313029417355010616640129558644410902986320462919847685180273107052132320488627041182944868378410724114717298852603648692397205661819670931378792592282389256945054433737086268592105082652506869450702102315959191601103331601022954463860603007292609608229002537337561224958560421898185586296824086602345666359273453381899177678901299803263634826947611113881658673820050181659048889082633540026259031268001601104239245315869949034047029832371561028626351478204269089330739873104793161390447288936199185558645477145194384338921862545373039301121542158282629788302909914219605023937873755632645996477718838112154484563849631722063843814487021958698835882742717757133355896480680759673673047476337054084990614757159100846944557712760502886671934731172055013528299178450039837318899682478642418864654513907529719890000117278995711964450278141692211302428880478772779189910697333139088424900135025387424712400882208436146051189299946574170260710755813731108836921296676728126338855646765985090604024338062859928807721018592094593736471690305500928083677036950138916290004006551290629293456235718160375832908807711126825101823704291843329526669528650717755996703957796998836707940387740699925814561182750513205881224977645649399880241393870747196803208973655168841677591395393324412444317529339865427481058664155157340498778140374629571982454547542293316106159031983590035648199728300502695509303460881529345067397164798495712607600167466323505396447132314065603666367455649104002112585109982078707521298793474603000122559417782150532771128223028971796008095355576442829689110355232361769521055500805568419574021069722740870264501038905272113437659548031993555490382401300723034030363647745706454980937918803169407862023159721139584988321880852891359261422620630511341759703583297474940082994789523560677843908815018657237948091970860729074150810323042833593031048726738431472250044485447025198742785478210847434118221499165649610142573765015432413722253888711154525238149017736079258182101667380185398999018504128774111080830314601607609505634673419665803240270735089244616548064203166913613746421189125912997355330255271720827910161365824624322190012739664515309647943676587194368403347281401350475877093948990402065656097183007838463005872052083205732307405131734316688958902521694225601333046723010833480622567176219679462067444070956603381377882275900880249230565134339802260664691627982062395273694517121159414314797424119431414385454838777644048125613168392381416049355616256249582535650627610653900090592479368973236210253258640790950111383071058359851486156170279210384890195307748117895637469065781354777535095191214037851640492615246129375894899437318650216307036492160892617492512346879887300523877726054613168920726794094711123203766621980994617785861558438849754989704530076129972775199322509846315496423594086679067488191505394383631484337071635289296609622881252019266812610494187642397585033209088003971593114088973511935143836574786185406801442557046883988060693336833787998918559188314519608803969603800374213175365213078094060870755061454699802333013909622058840169248374114717947431678427937074899917748110016928260397186927031542893934389725100870659226929825396635772111388876044010677674414449700508454524621324315923298650333579954844609133905094791063063813478556929679102031609799581033338834335005937631491118496489314077376061056934401425616740620300296418511412986943916587236244017911968650444795213737138104579190769289162566560574326076783400218255211646068673681235026949174390057390884593308777231932420846277569924236415488582619558182247407070536163549240258907790850890496263472481971300541295222992381352716784445618778440853754797709647696711486566183430188448370894205347830311319817295970443262416955003766708039807542774308700824822871009326815878287597303698884311566407438365220623058456570683123998523780815967271648385102281927432576719448123862624671124739560396420552678005633153679513673927023194581240108892996949523747918226504010405683069651933251393195651804434399641988244502026190381592419583122906964866305392312629233028753382490696744290049601920368023601546632777996277600571995090619945088084278229782732219053567384505047051902323651540373178358038776654231411531760389889651309543163454933000703405620001023662290679074465462014109141388064226524570791028688913921295593251627011447233777255418054133001577788185408111215829713864086783995948455521503373804265891645310520605274835685479088648019163031246208117290294276032236902118576160732089707062840597397451561001931669448570023612568839486970262961052475770124974359297694922406828819622420334799516364012875602024520545619204974184449660201039468809371158973219709821305920211535006163636903626289570211823728326094599063389414123766700023977810121253268702807707174512746025458355061854635293098426264037133957026264546665893890547710647606437047211971548572579594162648849168377339830557044120158377983753118192955128992357560859297254718730670165622312720956941897352151417731434676213502648896944630548814098774903647616090771664827944042712413322185511401540470938488854701369602695819990132269511420426150500785989526217239944502427238097179774315279980480275146905835476467809097977291396942271602971220611146154787573395001824040842596742461599618319941355060138081419777959293082180973479402644143561204612426608942285841936360750777298322500056650274959773233171866091903790810856644512835756403880346311593295915603830096685485689129661429027678092583793592844871754086080102885242702623555850073786686077336834046704205496567044306830801097288371254092034593716016000613227636390684105290716510859607412666853337869113630273837140978255013148644911052729686436594485881402201857932843449413146836777839216438388748402865753447682045101844998435096497757121821700324248160047910315631570118178788882867947009042280692201911964609753498145015090998252252917936557785645490656514619716220772505287840666742932701523471919542138558537457296100267028657156464382577301118112494785896687694745217288528609082082074748741881039660735481014837643513709140976007456906808589944950525418322834245487763998219952574244226482123820471050884384092470345898536832839252763789230982139840279281834231278972998685332744636425355331278746654036345606021577251384521291206823280250299741574573484062260477879628646508539170211589034183404280406519244588450899900434520701168905451204774154107060457744409804297030287694424827888299855359356436786855233893007382690530570797485503007268981076345331340535322518998083949149657267738280573920531535588869287702781274424303319237612527398501014144687361199078610135879467252347508369038612700688042883660065150086618549903071359883386362394457897891012102012304346651808733609158604887143361743404032668684756408906142687216678493953867614516896716511908612505599339076211321185904662118628079335328220855890798587888442025270918781508357936645223036925437992647735514416336825720406436726029363952080606277815672184619806586192358086495875326563905176101969389832526362564542911766848186108754086922929496034688960119517257508204789135636807936051641544271056464172314864399350813075955717694318259988505348065620773221740610480451505661253882834241458097482637324675460291587658324789538823047573476599352435057466520559009792465361488633310386961545583538315821893171119229147809629594794199158842947123969328994336033846438005935172583253132765246734235234317624994917845282912579105560473400128519378795417367574377062324510073069145547943458032831976434543029283742303914868253909388943440224723348673649708817434403750627736322919641841687779080696782909135812869478892455630274392560031124454269629143006260817918323352802245004538894912602895534612256450139736148759189130396250432355251646513276689540820326085737706679309861208324175553982882139985088032747229014479979579449757634155839781572167531271282156948110470766067127147806818253886261066112119955928729821648328502329511088317609020928837078603905806800785139004892870396832433742018975292851765476939455679662066740248012738434397916245467297036538355487120500624308777558765744910661052673674296362155273143968719629525392901793782600877204433464833278943935580071765144114428329088958057094126904931224898497234345730738151259932228902756585268113075270691902104007198743643511489479101330520844170868831190438844586768241842299029665322484326907241386777678399030749294087894865311680078682001420892304060586347605501967652861172610471869708992807007180499037382423268033906775087866356759318300950124578953857498671563851590904454288658396887918405034044951680898502280617132193785016197331616121498856256798449418730182553196120981084413534924293871578513616894332787362598944545202471912779939539554114223944441951426485674852565479445206749196318637810228224869838773201414979639736513064261447714163621781149004531989725837586494024719432963360717498600728126434471583565307370941989182516766621824828476111860024354126561910578552789370401407392434124075706788770596142895284424317869930389514315659371597571670485376846717944284729374628115038417637549539987293742922829822709918776666638130252211802740282646022707412921312213356254039350066544652683785205573106187161463735738479048002961140851697916911375975909741284866761863943369176493177274677728080952877804180640227809707537522150678125024879295361342572072704178319555613645634487276979830575146162794433176002330211921670394076877740096118786387745610528930165322465799581363272852702996655005618206098290368845107099167589343758966106183411349684964262980246063967608325349840121721417698375956805652539920481491137909405647705597529785538131260842725565860579964220689781983341255019328261032018218026047025780824751001574786668627419043833073182353777150139422654813948447449031266107377392554753016496615508757140679442155475787506899238210329538219330213392329827708449196920752175781596494996819059919173494901228286656662471693521401297776688640516374868158446313608467719649497983321302383025507564983986462348354230300169949790630561850483186758831189169494502944565380249362613099911635551361154487582964863636980193346677398160834131386022383427373507958607634127757493211311356097799785122884578900500177589617643361224075285287569592105204845927559929785382469626375781736188925693276475439063622723569924986179872238749928795772994765886088980210803987571107801705397831226416644761452196662830744184048096367729978257289257121326602606703631489594055539127161033396904362236684525470560395106371106837547101453397042550499471682376187688422952264942870764864111528884555355450018869883402843285521481625397329186757498374160552476135311238506391599519125121312921952408853026593303763539058159604210205538687112256863045823357788713706552613047296703022381721656036900172010327950268510609726106562157995868807757624340734090187837536881885215430936759603494634413913541658796736142944466670217291726948180442981967405915374368730431765842016649220279364586908325629508322455194360732350049948433936732177836670568698774593805053329121605784342966317924917858778199785021974701919894944771142210518175273578717504963785143815308750471792611171917888952307161151683891488516868248577769580207766491034490350657771872551223407925730508503716953193776420195497983988074129776092291418864754860437546162039669479875156503370342572267775284970461751941276248109499587983495378148146011565913053322493439668796430793440567980590959068492086968918299247970718481495376730749197594921785106377574293806034111539992373212234928750253456989019077120618713084663155940366618295427065076556491837301988943650514606140379507998798789362566618107197596356023280448560769352396805283760240857267784206583233336004967209125549512003718636705506806952876417417331485009385180874377399134476556425034653845107786079312271939191250993894444134596065636032751592251370377208971960200598637061901837498048416233795442716691133899202202956868865473413658177275518314139250236801529299253380571833026366195817821393954347275725297323641462818741178640693864629907466437127665953099962062195237997759010020791652888951029195715749808317419594473361932951500359057509440783166367184145330294566799565167800304093304182639083174436527957582565965307147418234770764864442216610642102767434308444290286811934855923625143324008579085547752541545888056818641010374602535647203265431735627314242027765533787291643623276228380067461525357635233647036686446925695901600454106138928756565406947382803256304129005198535517058113501883058227050098819415114649378601016636297569660186125605748874276211932855121730354526029297786873704497059412466539658644069775279131356825091003211204182453005797222140100710749117990163457834575453769621825221325863638096896276192903290007234533843594089637704988467313084270962466559899160677782565483600631349257563120673488077529391376079525632217174086131361717270940384653171379855108807766019996173076008866128799719385103563873467556629007906888733396907477013667361376873517270878774494080700370462904334011079118323494227148139918014137639751643521138757371428426410264686616720739734013830054317672935536378318149444574805115969478771538799197252755813601539289122999537885354776483026695250565368097468937882165443428708945956053227723427314050042707158574380580894245845770290693238148375602104034158396745911384243704179316206837530644979646594018258655174352189618123793282436175241359257706033487627193900249466687021932697989796913894004661447906569185219542359083178477745500823993011415013646402603278092276391925062116256337656744838717618575310306438482458397484610525335994628569545188635355082809597216840115171589247264540186252261060677952342205375297468936146018789017941278073750349770299233906433267759627408454111175340727166148268978390229304281653544021960253229587888493851644477920049491731870048526525252268387915535991783441309367006116433423424244631114543570507682985152593082217850597729291478775063723044300177103000464422076089943412320327479582368859551187912061108937279159651978846174535308573886126953360436813999357849794320930946949451384929833908504288691604059749349091589401515664091052201318402750965013769173267043798687642833292911876761735191373083546616448689542515085177554674498272752080666635364981349708588820517494385682476852127336500096690954630060643562691472307449234519620713959486001221309266544785766485424702361166757750927423966060890390072495716138763125466776218339485248934943677036696001979202409916716933167753072945354282291416915043244388458305122281362105799847862478114837218197737791351063757643611016532779046920447186582284170770627711301798231529288110364616141253726284465253752783996329944487892980156170620081440927313779529908839828990706554782707162329558240420431517087747654462007907976475346574233694060720401657939073743741727031001906464376773375757514918496273226627189337488197273752876897180192548558385802657263619598118245976026531824167283431533326347841861245704889619357256144784272832919028013353511435786902583148572406217211379525217417761974704461210626465337752339129666900820951879024444332378291890897005129805290414780867252708761040860685888212650246425640504807858603367001736257166596830611898617854192557392644543314638241891262636037214770792383136589990648174313613571363209388559265049155473456835524613062244546889160997749994445711992929152726651529333851989437485966222902709865293546882727511017346829210570647597453657810512543846217359526228303785621956706151738860841236170213845448725245447959592465166679646320306970901385006327668114302469792225336661514929689690361078766036614666363666748211751211254543658043123373922912845317142838373405934225152514899525857009537310911485040832498547875350366864863933752698687268475744220295692117527200220608810401103106659000200454664701535230636593614939119767306958873321671791032788326729918130767069761185632099743702725630406123734092665504177839292352891761139880853490224719596940382257536023147543870154118832328725175630366361963155706736861393666772780082584801767412036988574481392240147725610573304651313748779548423039892526044902101626184922399729650762911631432638365518146807322107472359498374991578886001311738389456993310339687102416584803042663932414952616303171543385244603732297988087668074967192716986095049196278365599822451170527799784643532128816216621151730993587775647104485207630033218201049835729665133079589346104080705073944719045596528415686606162224931351455943328761163886774141512346296748280204451408299702387383537069938095739068114287975415721881887451997315125733021752991725139745228466661629610056235489643264846224449559099716539155176561204826173401348028070207204546363259041353399476205581357101937173543503193243068067402169553761631340503381914997111921879472678711464425172691043436246249784018995809700654209857891879893317529034769540473464947178069015280425120364846847860604106130798385155963918392346053275348290288231323922785150893114027391812773720784296034450149602736072959640977190839549896389168119485295540131190265331954515336369622597504025825217899283933006124600513202623364921806491688624240399283023070502019175338574951847986737192499655587332109296225098525961354743092293564886107702732902569386723222996544712122802920439980953968467314656696905327806019706919501577645641912424923036272186861348992863617413647067143825423187842710850726598517827515560012808264641860056310891129211788644321066904674416722262902564988876939938993992523962275311621437138863030697701871706139253591534351710662594633361466757576572141874363687898515242016695419832390762064003080871727280094529097523556815466166100238829881714333574821276737539377361125935329892536465953257240591917068324180237227876218915130003510363738646584981007049797426794121882260608844542809334018909363748748680052475486715805983372381231032949691778587705820892165938437932614091169457838102474163295356610941531481105789724645775036396942918363179115083162262439643789683900661724663342325681278181951623431165606909872921471647846990239388356709757845169403376183961728638907142295182195625528399275302642869741997169416287812039862144032140516020719605317187935274339152635329746745192170872541412587948127794842739540957637949521817405009448835024039766339600605886565885978764937278063000366038236765495092234427334441722006924250157050901095225792949359279218061209371925437994636530253736418145706699979360501471886919344171157343520900199315327051711676050651531399412505852007590353703466354452553393598060837689856497126427148690315836264646917544086164408917792216438232226340617004461488499043153200598489633762217800728821742896838398047334728437305304032707597220740588112884920522019702695402796799985905098375254509760329109803683929364267988872602907648928874397112121861917970988875927411579040156240396574942149818061246005834007866109812447158483177561684076404942534548305450419556315435444317610862890465145700384537309615481049211178587437854939960775028774379585559317867167794606029575108082765631089694767426120991020879862435823862650499805702278508458954325555103133959134896893972604254988691819405190186741028477731039441713945263354018999349525224384482829569481277083058666235895257611347860190316969817843193220578158087793882220735987519672021292024973669586928624477317120308515479628745556705640955386605977232658504222066975870398459403961925240066058218881357548000463018283203527951823019620639349122375441085324217798896714661825191110686948468178187196617120635871636310984896767022285490578923643956025315206554584876616500738682472533524377917140124078161832922173167451227895055273560115304403085534523467242535867530629832423193137188915571752527578442607444730306859226987728768153274651855871848566250380016259034502928493077006132630740171768322857117736594168332294373537935142363782960451500869137252908828857017894199689114810541328811526565927973472859185411522151034113458105367300118635136179026533214964301667868690495054840191805924359252333049987266075828047627928329658415299723058674358482519615890786077108300203675833995706484601905273197266300078717609540367922428472893293541558574230218619570329961720467912971027211010994259992145274947187260742473000148571807524899398959387173577161311027689088486696438365579703166621582009845357729599550727270499629190383766347163163373876603458122949382196722854720015546512371265466481733956426107630272164946765210857822026350676055668503305857212737643509668816588803546601537217186692919328476456406081754770094267297160576772926077020799471328941331042799559363208427876508226348722829733615622757975738354049602861139202684848736269446966725638703260854796214151119187869332867884882117432544102704214834748478642879482352343078254677097473801408842325789032266467938187896996618401663826187886054580438030243181025248517784806747544664602855521667570886282392048195312692645612559633309652915006653626887397260182770643511498962271604460754259092604097639568639115786169336926415186846994467671696196611740699814418370657418180354454521428081521462708401671991871146251019702272124523174633671288799202373395322573949430562718312741424883232269309090472762250192411325685514131152287706820353671663053449474514796528766544923447747786026437564020181873400561651086077677402583360879839359479920820251827675266998765628288981553160735266210779280372469198463126287685002284574108409927077027889738831701283812121143089947923176640614094088878827523317838978886092526227889284372212501392462572889658791107570688966213422104671760520414460367769638335492127924226804972237777046836283186037929756308616652737284815846693314773646333583401528568147711141090241167183311815866907699809757697833723071520214096414954639941360049249430935557966904045311412411740634636731296060179991921522798357069847061643810797948028817929896937058035086589209262307350979136148007727727565961677035868564820686404956014138227924275037900524723373565598797727486549199250506878710962009046941640958397610722641599701401089168465219778477126069006509343055200342567903806282445379008223699498648064721964977445820683789566189101579310518200247600340011167153060083315107908195295301830995493867674285216226817692044058000266694243310544440181080222012107352966668421748716281789584713871951945257183335852186658270387833523647106908800594587259400688399345370027441479080444700745664453469729653612485300802055611143405183307427243153951059862733252229575106903554620812443036635565604308977061861378422382232213166159154857415333089946019261550748469765623467039982362784060494362843260062038681792211648714649350221567520020965937252613136530612598425754663156310147117605531286523447913000484691840315181161907876658191669370958700758988290032051258318441370179776058004100771715664236499469591771618565866971947904677728476919819800107441459391486139614280003277500624044586497620055164544621690862060054686583534102344402129684975714993166569892419233831913694112447187606332228333633884238942897762350399695473772245320740007691408010369178909236652067410574692161721917557130562004104746326296695887544311288404669173921157916513021856951216978291532690158302511179589432760383890949462013636122289002331835962740105653895967997078866532136022161843137090985932129465446453139127394026058170879757312775806495271324622185763029802516692545488147393410662207562498329713870129486550283079486526723917046537367364485577462884489838388481885060932792638506790245226445215220569476871555766800218701142579450855547794698957802371209650165759981661947260352507654668185134211306459076243577630824290095892133751625580389789583800533017337122651814795207204875322042426323874206938621539097444644850184176065267952555286823403027505611412032368924426233599505206063960118903414510638676552923998145393098537546351142650512727362299996536068308357838652644021558864160111863454927053499070661512122665461667271295424757010751112693309973097171832966606895065331481293872436397720176014133957075296148290587339382500230679815106749013147479232464131207586711169664928669484676682757130528164521298012120165073551868449060204643308493106005430403947025193648706983136989926574082628359416934119887711108000299937692701451110419320191662669310392762903744642568346925332524245278350204745288306830469549753372255091442499357439931161940773051375504636905919636932861890387265884085429824707952620370146578944709246668335939022620004015038008540596533318510912217814689955359018245200856954684205868160769990712449859989129227594877299792637613608815886499176541410781727271449396187842612550486191726317048871387278003529555940449820125418882680120168339659173073803823406735032130843743677329389894174288854272376633510408728868767439209573561283741806457208497650166760514955610622468373270471923794517302393232252985914499859661124486443488533061640147972546654674257029758773276373414934066005113429483254412284814891974139765929120677359568332196362379399696112717906798452955147461967129065454733237074211853144386051042174741905848513230925280045130092185653817374562050197879116359100810835901229707445697547709396800765121385882113587041091727051081314334343412002272128477162491412925028488811631354733049245746361312250526392296510772344189379245919154783034885054703121259076384152985804184074258141051915207664850322106123817361973133467651441406231583751832794674849098453487805578977628866677747216077066291106469017149199169840333369455936103511021348696632461584686890451927047774374665159822211605623628282688769841806539123925294701958330653283858992557916639689873325466879840048923255937018280063697993635770553798286889418986038161738774414450753487791014808356209563096511284879954784057984606650417220812685949321750604357753504480818553201794123925392879832419001999740632331909432641215671011539548075640533333335407142794967473804416263485842539735942409166182072705011645898344654951296269199709957722905396939618757564372132586660390817152040872388482434402751525225971694213316710098658217742691272772810878077107944217456105280049733184623493638956601200475319507130126642832536640616383627697053181953250522341447555324131283455966622243362820736281839954741716321878244189470271544674295691985574310750953647184152530597651394007387877432479468182156757173093599828434072124768596726949836228215866801101733811757491035270626406824668475675173186679498997844717047812995584918071141447376769420502313630230177174888191302093500482027147009840869297221075899271054991663793808910260769488669712974637102895496015041168611860190682770222319352136668347210372493479418192505638092096366580718462526355885541201943725548290456692512734785796591221075006418304063275496855354353243127319152081788129914447316113291690015283012212502941041908160728697407208048006554417541953602713989895433088465501374745892530458571605143452152779344807485536960503272019464368965589841894369502201332310003342674848385338099109649930512485143272023256933654433414991291438731600599340758415068050313086456866810711565532562431009788884635139234018458684416088502991421175785614006815750029324522595738189277285778663467074782556726563949968134575062303265801257412627027479351283328568943241629142724217303213144086467543860264591637137090996212384313903439239569660954412614969154390080678895852990360030581605187250025256771651073048379193307043123743880619018240973926702853778308427333913985062245025742144698942110697126654125219762805399457658579878601187151029525375551990283259880140851991707057254861645688799830880430278853663058370439152275647602888793323059599988714244036332198213706644696563223980798710501303612597988845623969649109367685986183469660863110600014688411083480400037162142019873112569333373394723483338390751706241807912805564833609392449247940879870654627881073047192866243283142647542347835925228959871621494119050830127404795740656443331906711865328218845034284041382456158254363268986254967514945614833228260591435193251777651039928588262519492053722137766899149368688768489593669080897218346934494591559345863478445308802860904453668726427312643769007067064288901062707507258331306843493642659455099586813108764840245002727721068714122978439073177968664142685880949942757638963762390450131762279860340030295402653843475539575258726698211366675388643643456341655988974553286190619740858854229412755204821163488505904306513156357312642403312100933106941874320252204231805427558597808287850724648519949583111879455295723790028472868928159249685883772604163171826847066995342501833036978439285061597970865609520977930875908508760370607972310102746646553700073395049416184546953100613068019918151280687390509273073331421399417389462489006178673619512750360730056558228061028152572990953626003868479793995218121323074973653050016068578266996565660651915373107327244986493575178642878271439317663233769871704636743090151065359080707605299238396971848371831010879578094949966896322395201017772248731954443139834665861501418076319640492070698490212818690868543208480351701708582238179939956250755808612699351195509073241211401663817574084318364686526485083914761222212575730496570232361410830912742546163142610112317095213388853916646110057842282189628256344056429729741086121997819599713017511439180561155710060217389213198167471944073314163422346291307380210863163295321143345015579657942200138716764934493382187236606657928104066436176664091780494761810445288874799313319490912785669578664598170489310446074977632650469740219241549177608381410665710462630263082255013072091293036346504178109951787308148121634630120236923871977662557525470566300745763572471017345438039270064494277663211634187086416585494921723530408429648386987691053763738510146646634225564073519345499827823600563072059832204771609602883165393288547741193213938297862900582908185666083424151911645691899223397550554273745786974093748083936272250297351186456230497412785278060078833618281858208510346238469522317796063682029964435082045224079857962564515152248576068781655406186956687033714443629793299679731829741377845728691588019700725481941763235275384353737134656159186579923409987165204389231337299482535461939845318706330581631095068752077705329577187567841582743581616912340286805290218223848790941815629452740128132401909673447458447923463111482308321665852239111132218723748206828938632758319259682485218631247381377271483870148331467210866170202550804937203449264608709697185852196509214433017671024558545619734358864255043088661689376223289030750696718413780370638957013273969753736455817390883525738678818091736542020120972411476210513693371569297056388374452011032332516444095755662589392551566810379679941426430894375339753557598033828829667132475500697947023009603660735047203429523733112333065638997392246621674081098736056668141096834183992121503183331891651697277165836698566701196096681459351531971235575567392464648499940220535965620667346457110071878860872181088081821843326105605097762554595541361273080817968227550372974193212299054842605663288749063548209797348860619309743391770321893508071233620110761546622022425287822538078353190507677172690793747446328445440062851521418624986725208134303045855194224624718497577248252097096351058232759711674345477287060624525434871004968370784259851115925200383587720525148682945786864482445825272899498530749590949113186684995097015701901543234860907558836510175317740070305602506646148487904701582286778915773372737741658105588376672738222117933700508700507052284273907187720767997869997807021094275043189595220882975742952725476429571082535646622239402660363356535607266916487054869197971220418085197047719104341936616499277849516575986210605403939775054127391480122884645075668901458541548251866716766644980000389466432442166717890093896132213875190167153744213747704080622766722854396637899425897559061016669027345886108338464268887068341132902524563475724530725309031571916603317324026856028746511665670090399543103029952345380835620740554480231057492589235554331411258596142610292530710763550812019000055647737230112588529141853626016012278967119031539319566088117247295236835933988126309595253536544274811063375018175687209739618495340634220629006940993210047773730017209593952357843963474149548157345695241562159436398704520224791842398815302276878731286418059606185291773119393849739186760391738672754742277382641200025861404924895136356760677309979667736063921817468373632982628807297665627797546027195859310204887922956149105993002531674991917019638060613725852805416103636189530748203096270568483929048298571013585668426606250410318653433378722870347323922450228633504360470844301710677254674694993082623754434938641981450794049011443142267459322881680109669224016914150025853652223345590903951014121402603048332100061957167674687061904478454219180218119424129257871033718744878986254097744644144775060140328861705411118846305736833968242497237671460688010790273136994718920896178805806844738233287231070327483182570382168064654822279221746799675117412736751954387232404488469691218186293064319759902051481761734816833538691227342476948377178528412130714456967754234439469791548685193017801166699218775295598142241563565996618107859106886380562726501090430111276793567534276031554081943140798722151019725224642680987778370391822521704092702035418713095885584440811760896337813679793074266578055593416123222806971981050702939459859213083852514369531009815187453684028413674371186451824884242760069861409798068788494678359737581996752213827726500478651433072945497663159603063329515709811707589236194118749627480586888155224237444203338420452360763334541582605058491586037160386635716012599598503247791719932205611558963097782984270557485764652285110617395637355493295016030803891750780981418268139733107369503874074679559395577684089529581024834869824960806762600910967989099812654842086025733930688485978456462515231428398286393812674081310700302587918632764881973572909516758620530072197850871834843852346106947212326937592583929838657350342648286486643845292904424446830994750438048722197761442569443920933582063554743206335021658190904272166444490217674793770512677647441706197723003067535678421438720789566700699258816085203098909823987878313985470320839012308443264718180241164872509377840519938348596691030223675162679064555624982912078909553859178918314400040825282043099104941082702798372211334164756462236385850549587144054796387857825010599043259772784881697445087607701509460468214190369585023316848704327299141593462150394432141416187143783229568301165514713731664620482393705958723198892410730310677564139941331279682273404719250494570629181433371806218322340386201313990177661407732826865098318531637995194383760077484471505115946359996840595483288490921875661586945352753695039524480395431369666129438550117663697323768279000484255829478364896060119591863678117615239890183348963291053838773804446629561281785065484923866770242410929911856823679126419190579216379971948124821466280624239431911263086143665447262063877755130836919703135215928191752618647957130551742732190699810992029599924109684231830489697158364675129665828252880271092589984935329633780382670106642058329154614514449909128168205369068344693663576130919930638284038701052786927336919157205742734325517369158092998455807918025762861007628774890152434053261460050400724596450159636964457532656612442838271600082472796119990121120637075639041577930620734817045291729197611146786732130974886835337074919926077067275512889415113552269341081403684153163027540457961584026873928680950188394357604155592015846247538940181404256947852962874732175288015007946003296006441066094365924308198362276643641734251037680136975685318778766901847492434805971022391442830291552804295244688578407879092188462769255167635091426375526528062387874687895575309902317219038413633678718578377078098822741938255824043296062174110952571186770317113667015016661170626026214947713498176559484586086121701253892267580811452749583706571518953918191086308949219101929917403560103025129455546414905247886625513288838148232609522286266192534411898200338201626307942355705301221265581015688851126076242791904812207400877486005306065198441303168664416137145671891795519844184148560121530089796668358762368650030102700753232336597279220968830565395631447760380225885408851740774012964629317649981978917554679896648821151110351825384943824038027683851216390532162621229601415934830227042628585645596772004490023496601118196677564804342577368633252544514094851487947457011151682537953247086369815427532965310818442517765334805010015381008124975992071852708888277034504850251736659767392569723241390805582474618198263077479803967379672230170279379886154598311914112228353152496458577082550183495230609542019400054215666011911780143632627569463113880052334053889775023517157491996655869134822968119344907645305598610757682471388713389942775025601625105037236366393501340408652954711834261020152821356432460658731685764925423205029222767526952021861110703123782057319007732503018703524985767211508128017994059481856901435261905491642859988516587288542059301187351953465574456719468934533587433916330033224333848151173422953874343509471281588568195576424608994373466091397929709991127090123261801236514531373079178834115405255441290189973463092925446020569149678602535340111235832814831725196324277704960649203513528961277938185696846826982470861272096761712178720767085424329740975585617423200506506664592127439103179693166020459655625348336375276998958795893322166433790897218596875435856646577237818705156484649023877629847540708614472516572550367058173928950326544916886519888970908457574675671208923214917624809643900376472270257301470166328715261657872383704429095046027367200535847925964867349426185817956456653535270842944989776932147330346656129206539310899708985214869612560910775761354320214900046279278331297956649438388562301603432431314360013864591331915470032842598914901283820438274318058902986734485614154490692987219621772149440901998036700562379253006294109827610382103311795642903503288401978473190253526647335090893565989636995114514665808418500938135779572218982249863939503285224581135260515897992314629229277976157200016907498145767863824392417710224268727240636789682233948657718153753391748834343073758448187065092744394134042950443756143326783296987192350085395006539042512097632006745306774126231241967084947134538935239988536911500459330624813764774714491250211395254588782908221928426539763406691927128124695073823864224440775479123984686342811529293390443100851325934556453880536343618004917145243836370366628992223669440904134133716743319402703976566619142782094621437866697776557171100467259448953517357415732381304136308954151222787929502767393530923886895835068992335663376495624930152218946088034966937618275313645316128526713045945399216050723727662905778388958747215723832889589871359333354109125513207051822711150422286549726490247295310355179625332939580923853759921702408471503949171806460104282491829506533505253968033026793525413704295759874207435007766343010161566158165056134559438651851293415666620962030758754120850699708306739310325795733070238673241865843836586385969064307298462210041491270705194870147075975579241348223217465211153546588889929190434295818098125559622145859547680430195696181125488686799978421369973782647779317320617629575042796192036042470071508079814572400039673396784822504858879258799793008874539686115632629935366502408123362164397128635705155571545170694433956710663991013755338936762968987430134465392552363650860575285069541975709644512378327186585477583068795550388806327425789786255819772075284080194757788617951862251707237301077039785825152920720762719925199175995358490837248732626404049238640613673210297713394401908376191847834167861370301234107622684725488646143052212572808399970605495679428147947630917227297703547297955412249069443701745929578938631519271292662598859766598025630622229436327903628585487799229841555227822946666335575306280592001310867266649042531594692259464539112177137288039823760756211705515847876864962362119089038761211905791984125712942576533514926326202235056726693481915189743277376149892158533615801533386149759995277047082884651856412272020528767257413049069731489179766170152845711028391013940215297323334890743066169299880242281479131336838097044469619103823761121290010272236490054143511764840366317040440860710658760647622575198781050545310691870886637157980450656146672972539354836309248727311739194842082488539761395327491903453569116491679630635104264704346494947476053145232948592290757287034239986570963841362670602952341854187505474428114340541060058120086453815016611814892291289550384879403854281695819140843762736155426744214849522916241087208717830004179600914256829737390098192588640777180764126358985771139303604023870749900696084495020769796645533529643670505092525945133167554867430859084562698714443488239921622597606310870936618868739502682745166445113163102864189236681158610772417326641299296795333265678078678886389254804899507070624511102539004057564206610513706544497613697974686714903132551808569555853370759981072003542085968397888717344645206472725637574518689979133024784022799601496730594650475780390273193815191753289788319803426992533777997181616403364052619343777639283768459339809814802870755701298027703524858942910142635078113607961054679979138201536022338784528372396750568451727479069096154361763061586423099481599920051081788636061274497615046088743646642325280548688728298561450302547627186049070423555711060870336554971303761003671210846118700294477260508864058875771161175213341787767623712504643617309841007053405250949190903644638125004889138396518494397545300049113311016237142711868267107321123755926275842621524709937163985042673328773869285035683164891210996180001685128450637522719148040484485937772823990199417064020901285369168181289987167578898197620182944896438123428989246079496216210917126372729266420729552011196814196507417673413501849220171266577652167765819768368778211884000787368517322906261321503064890237343673711800841289990999565117761950560156157411156507171396767737235157628472562235005852764426001385356510859757472588516367206950386370053564409182386871290654469174741972075484538751636452073967876035418040326439725095917608817792836759596097310203112986485574923498366774043824489520731176906120978738423332644659392675250640924333750181010763479613586645814356778307231933193650063048998613093142866504832294689267286380214503677549408902665008780568642107536286358487003096696411815097822175731311348470288568614857053102987984747977548865430049214626037569212950589617704841142152518826077992028447818250730892846813010278414697084973096148762677734491361224737097443281444042187939935397509104844560023485840452388716542718136675007028094059060370404650724089771350297640192975126901039070254557335104636331624413325457553594307351185515083280585790179634784432840167837636838870157063079670334006988754702770507568997769490102203681877742050141134522492886002927340171114185606885860059098616039955768760670949341677360543864833911009362449701542588567904123236884861578595987142584992735058679467872910066794137900052229643177340654694084483543278048589908704960216500998936302518732229148538874929325103027218437040397393066259618031202227610543969453628289446705639559939943972851960033097235291045574259425262825154481456876193655158224339114328828842804394070629934652809580392803030784201565960620050847047201406148414690658430496620094870080881545526178825303313466368595547784036082396360021947620436706729183808815531583165704156279635513770683816646831446178828980257151501721417644427260312294891743251878501504036406512480012526585291819078142177874140201679196230529379019389998258968802747454899796198912031063538846666563634548213471979042734212761925680747416690725226471696431791019496310061132193680458921296929268950472267649395769734781072881261614574563481041549702684405524729567198062313820472154786461912032392798638352105662916105009909285468566855100079915532430171340882262527499678792445412053069800069966396663933746469114779162716080471105111053203889107613891165341701033286433490769122651856743551131046428314043303673736276264189282500293124750909643907691640983840032785297059539075177242037753286417882310273208373425686013029689057289387241796644737402742912650654418856854902205581416186349150840992762236313636213581161582021189839772016319394085484919160515748042591974892577162299224426786510838919336472854107069179577588802515847198269081517196056954833309582131968888014335644966734123175997092037240396746887498076136081399646988326410667716872262126064944564678890578894805061515697178063008759738258746615289685136838648949296138946125148475855804973444621814091040236244183857430470351260683342831910458053406222407341751062015497409931854218367920000493860961169992039472231548306171833230114427307851602829419570616759988828128037229113408171248800477727944953912637432861215609501815354089694814121881699623174680255165407895887931579472125848441936300402729082363243956781210356158523281616544501124795034939851874929666432350742065676658359502147347966842250976688942574430983145394837410494594904927226612372576324699804216864570047430496862913068016087682736044562751921721001445600284718424333109494657146937544480673793972151736296702155071104920171722542038549486330427630297801443715696770372779875225198354981251275392609072132132798640886811078038725976012551203929457757618557720210090843554016926109101117907824917940447933548586356229309123536896511519560116020013443655645523145327495208669842230190963878659562883796680103406487043991056827357256716737045052746865011301986940955312047542726454566118281814468025110416454201511550522460391070126471421616111750410233236391943620569253625870453382694722582291521122282580389385699769080076076236329645885149536340113588032176512916272070359241838619011102027391978931272228892620967443183387277575496955534114223290500705944381944059351000381618641183472967752310205890116318731326456903651690253024602286787152337159851147453274500762019303003711677839436527220685504455970161221140699932012302805581535723876196957544020652409636633000380887706917429650006974971106006646066483473759149879251099971439805799283464915586234559091126476891475003450835785279490771274330371555021399710018969398372273006771606451173305821679108035062379784387137187750867110510371626474396922997234747333742943055760172303431798545381501015096959969372160877382443373506793549454659854716410546252902013598235237610348689893906982056616335138394797072682557214333832679929653877676703933736088580919247760807742986315520539204822193351232843353413069958199537242015521450063586865208501463006019894013135233860763239031798709592976948181655006612729574395892413343248179840089989666440154232639474655538109571304775996519996791478702185100500594533485436868329818127185562951894904039090739028679398138781314591399424401120774484234813403238874330923776331851987254055909916942036964638459733144912660581104271920526134086264625035479246681863633110261188852157355933306737982047216607881542798077311506382997294681777217249370805607289721808433619741506909072523237311784063577230020465790312369700510834903822007069449755370490515931858168239829287503371198113883228768365770877840038835749063783866344838270177971235867333317448981399178855287745384055366410618411344732283618471960906198653382001475454705335284883159487405138373866323060546515859808867422751694568354688515279880438060216874573825379650395443723186471941402199953634731850360412016422006307498765643606578987318498240683669136549816539417412741696840278373357525501629222759034757978182631618604408267512198149258179799209203346653610280763963124855633603103404511410730793483599980864135843538710856653369483358333761553855236074854939176523365849575628258408717483000762147077971999723867612675874895265335353142959334206203011534722518002356496945826000882304303812263680152671156209955612704229254474737462937628950263700342631615620422923846603835447343850243697313223970318080752714051510242192923432956621377788798345765798286320993088735187343521610492531525791857147189181170638827198602857304844370308496059513015076522461770546145343675417224206969577640344663732709392030974825459923494706736578866236534781738678158435381543536990477456668782865809653911987187603814778876120988477019308637232978830697683312826685462674208298871996020258854078737631290459541684560112693035368354563615689246778118122507456127096829500509656001531927387508561829632732873213420454043080595978581007936546671979877061290894017691010890903391945456878234906473892283618000660412835991461186147333975012250377515275682943438437339592333363174620107320657282132203604639330283159798663605383892549460717165765110070493189162441310597522367866898694661910386248358275108652788267285402800269699396022784851417364226175551100678315576085614449670446140849556068902657080899786588345373737237418089729303723667917946266857529594448412830639975361328938051644662334339975708083755554765839765956104348424352398164456949880329443230754095324336025187560760610409678281863463153145565725475408569615934466085205204850740023371006782030952839504857835210600642331650943791994777584591020657587086897387697836540661800659609275117814883913147711558660799947963192759000318552812243217102074748554742611964853770061592122231989546468170561265508220670582436730924558633034578098920979421460239195734901278553500123871510653666033946956495457529673911808642855913194391026901617848876238082749491903185251298293684011535030970948742505628282183023395118813903969544983903097272308363039713480790376839285312213251189169842417827736929351152441613367561408455102095108232546605850781873075761470528373947717543595247403476747589018513338946159522403558720699823767824530054144861099956616104429837663055842897371568941800946681897536009170809304130378066836323970981764969158831831736721347217762171007325119127264615702832922574284811876029262349835178163930551433132041530092580175075123423752319849710688375997132805055992247112732270164906851555829551004744519376868096238884608828391828041558989259520393095215999096248830862098018046584405582995692417635769626884685457547483601625785312098467073619938433933872229128902978022564586712664435876959192307532422476229376617922847523725620624938529467457878847095607142464047866946092593386471538769040152809031680797606042426255458734437220992140234378664655002275556916975161671548994313583889861205823195591070621857513799722166137361813402692831369028061688866290886870800362185793147126561855393485965190284564025465384001794744033588218358791286802619998272710142241168737400086537186692238055602835075973440157102178267015257380300887786352204220819673172280555091170573667740584015459724195373065096187533227730677391949641148885787332714266902631172169245899383970530022260914791381367645509582447008353834405037553304306641484986561549374119197547045141451126993812188285026135024687545128979732105882981777164304602224204833637308489732728005295514755751665816899371902569531448145280877259078506138462112715630443662887209737989173927976724596352818971841508654962105276967054828297924017588437185190415719721189881856812589242664256809992919982051520401442582991847127748690961791824795831254816908844033207914783176184801571887438260844579989904218733747047874376503079516863226898016003547283738890565551769976745153119313507781377831911727076148422787499634221856348143636587279575685796490114127797752747665362641004841478813298247345585183768227339840135654556793467103013765076653681188218492220540961758375350779037539268527859324594972724017450112862622229468093977226334749609765566651764265717499512960601779123273143467241203542558370484078041770892367864929846634895549552291286651320036615948996204086649729095415347647888154145608452040810212239722783022973428094742127690765996115711132812213249884024852167296180048406152884965659973120553600881150782510049654324697363471529858052052256635230944176883340378241224514933765862756146678451912945818539532904083095955333174838344120972431921215111780351087831068632562209993875152165673629306623924105586111908289382510232903672081209171226787397172413133078422275520068470480449404486102205910382194085879905771878328698532792518796910746776831646422928359115846351574090002553332203271701213534864145704092513233074142032790697212511118183290534482295462697767299677027813315015776521686124704688425774958522552815069510402389197536871059592166236742934965710550376916131712334055284912889146036624032138816614540574120435541230274250008329467338610986062768844670000794573186921256569966090240085703576212696842820736847619964960568120636303598657733553608746369723859049244516606545972328031438533995505884295053694970585237332270575521437136776536654453909929508570218190941537865693333127741188855690246419351417976652209301710551764908390961975298612681147420813945142753834923327990599724915257187999089699214153871434133944891974986637444135916317374704654220311665103201475016389003017996643110972284214966609181274738863096565094943793891709707531132531530743392050708378963063172766295987118711799704149527408075362331993516665079509535175245774926068601051341990875907706667188799390754797475547634005102392062080128153409915119420154446156695149184086028828234361483938042381172474874643063671113132365573886659523982798987770305580052049567521550582092592466815908166938281714493094612959710362911050372402596897530580529540629719557342078732795147691171894172621932385626837986084396325647647751729843057281604706648911237617407993474913751994286304491499357928541502820435499707613630317920148842178812700437628123045003795378100235076329839638799670101471838053742467465480339501869669388726307155602741984835667882008793144391504620571967149386746370755266964305186234259493055854357840876359167994774391279407446158382215290988302990605886413239949649989489188927457191893501567027352562112788076316922196722063156735589483409381565082597196906365184896975280953267771290148460323058521361251582991252466104086321569186623782214566700537452944994864390754174991546255391324929221903204813816263104768945771962871050291137782997696007000271366659755927636920652241776971332784272056553840977202593620053773986120664069324784902530994340922919697180481587720600838479658880764109236851949812128454029179761385655584374996225737279393604193185758268155997996589271690848885132016465073755008814692576838945935713611593362275780469340508098609722456549578701295227004383709262173331936754959132596635535926742276760252567683837788703919798522065783390059255488915206593363224717191952730904696572874687089089485700468532468747606027016994465886082564801084008108334754187643993143630576736951670570563540341536251970919720474294036305121815522306125878106948914090110779862746876752710078018671907187468137725678961242057732417767453143802336180199665162036370545424564503737532596700085289082874549258008241934683106051330776428221107533715171195236584233843160618006842231529379802281881299443254472805499164665805726897969707133898330500921636104005017625858746139145016037144470067963338045721221911419927778792124385426112530141897948492090798015105607876683760092520876652095130752604842598187948315606197812406326397690277824261164120953741295318049661682405183820524037846462584867100752474962848060249411554593807525635004857931529848960029846620252567621879166042256071182624015126695557476115061844181866223974889410484520443120968402193184636625488069540791549850835770984498292443415540302593290376444812290704775671390429609589100529095171142778192609586563486810388762128981088936199677938304527999876063660802332506094012208412368724662728605493638707580335987870428159635352367657009274173493154703097530576080283611706331800271569802405608698577651559734461668568545494284202530038090341068443932913301132927536648495561270573712124761554476562581353507043797359810971289964382533667811605650376271102560682473781954103350624900587046645152205575760010418913265470728080470689781048281361710619015614773248548385520194459033817827247973725158582150002852984893700089070515155914822181766152540781317299197833792854023833035578244824598199083476197040259885769147953031825300292432038647557107880390606078990125739262599226284718453709224254010019610291099357325826080745649504253587614010621429565737727637835384155414911626573900121750324871171880427562888593524509923796164932111562983134527464687575385637686471702893561484813208815731538064909281426252421597948769621888764816298296463443252484155820139112098649113764791897010897230749118811242183891444720399954989250787257415962193512872410090208366237662337043210544650241260862330743437238107699456446742883811914897939836545559355898856013422230763600313916413498368039056052652220656545527798786849702299036099358404352647358393625337005354473626961244537760839325178697692578555705213092092016985891578762551494444610107595918291210552618360007458754407177922242830592544938016614036207352415432063173450742158007236391643808806536732495201388542644537123610479550751401216467291154396538364837789099507219971704261011551182984858583927106123106857144177006373713072586276405439526302686225473250373554629329557372050104787686477309197187081692524216138167660691228508404371904522264638251518799423465158262883537065619943778193718708929479473324760254839126657562069882941978464627089852302427333565596119428236579063295593453586442866082947496901201104107704196593952628216321557394128530119049327293048964718239520665492573325476557280056523290485933625993780858519351082752485699442967442139631946346044166211394429737542561783842679219163013063621854617808602393988485581671842494320340741435434421230030514994513886831754445286807935968390585258454814917837860637548680809858819644185190606093401603436377768389180635858155144689676049200932909633815943448136856589005477326852463505721619727241163310563149964567147813630256426728429610576690618057427130932486324943945316918491848851021110489781004000154925767520662245689327806765711435167270954042293615155561327364887421525949282252573374846642973501476187351662385376135336864924993266505247660759743636252371270554288574534355912782420956532209967385284612859998435387063792346120060904038346467831141831861229645513834945172093842584758185592924857375753435383529096323350196935347831831762008064877534197334720459512252091673633404774562341343056547977833280919407693653306768763693085754702376959647736164080597182778162204448040886305996510351997159397958354727267291784696786326494485860826295315581694326928137849185095358346001390098623368876124478173281699016540216048689641329034958648240978736977814167041056168205036422172522397404039450096514228258548334110743142936390030189373179971736109919600400497558659893897831364714030638825634805242779638810056461561799576986683866750575712729720807214298302051656422398712825047390254824978098114695721609279015146414874878032903812953174568582416489826198527292418047658799803606102344130997766054395483901019299442314316960221420190903426727980984164153240523876216164258727260000414886347816597356264504488291593472430540454668761120431276736875807365706164279084268923816835688014068898956954144373805096194730956429953419053671647669228902892529129470041609419721954034752145994098172079002863463813396228575334434388000233268095112847395172282533970192812816436912365202379016952223026379855339685838384964776918197045978261264883406395403993261850737750471118264463201485499880969546872308667551488170703616580857246182548619494840100076965984443997793929363840728031377087137912657828673561722357889335740883745655089450439326578978999901620182355703466244099604924873040541558029999254634496865660704377279090731642795403952959452384719134354825139037512020832440007573771529581581308708672642599920481431069411588881050773345455061859848881783925754027883381940462658944743695645600811977288651458533531593136532080551218392746673643617756991719047640810973123599192368033861989210870147855845305992457583901644264984350412947211671211352827462708337775425276810295462938135187464270153737604144550161114814373599788528583678358483669563546128119192049327429571894006657053335309891532965686412761615382946388224658384194898198787470414764612265987449889709178409178704014921307768889329587095322326609662382823888163197672731675176748733055206547852991139191200099180427512920176778571158345373572284046970235201584348536499161583751430962935760468222646257373660777338388406937576714552848680911612000927155592870440422503463208629806747311009388702337308616213473299099175073453543698139312959293230803023181817554261024922470488009836427339752344135766832963893899082831150232077622147742265285008056988373084503187804871057107923276211723207080353560059370986571252033632577181788115109591418712340472258689144160504319567635206878807170175731089723798658204036170095412351805488980751419764318783199251387821796280777575456633003717536129419797544730543215000634651972450946822324455085445761435081326906172448615338434952402869342023438644053709703782195170357183047374924407851979581874992793339590046977436604996487971206452732355540168217450259585389750531669256997045997982706719545041010369021502672375407231902704357657098699015228942821554435876223136282364840953799977563623707530368560694563118779339113876874070574546477381636748345132029371484316013399839615119847038200567900250299473744830842274575820176947390853108239216959315059142515488632765494381818558308083743247669425490605766012895629969790221091220163114277069421093121907306552887453471503013453734241248472514204557797570011745285112707298903523787594343286887007362010795787728832573684181773388243618121052988003163721761362812447797468771405743201461547269892794030283633834727922733095804785233920362203479490105573068586650853418647933596932900737708496254133086746960510019857268301087584812957712366452999249929158571700351585643059166619727857225725184189374764415530420652493741670154502582328140484208949274614989338512905647542188265596707141589039976912241995920414759688747335587087460999176988677704353719504894210421933975648603770822940759309984496242125673653704687770836778491816158939030169251515282540680070528694221651582569110692079188627244645969603286311861826354794201745244988066371087678740718969322054029811497910251097090393773537292810717157860165077383657694596947993684940300629290480825006829882940128204064280603483860001169825111079319895684258617051291446733588606378672198885346682472973633159518268950570753276299719161041073571799804366578775960746402053651544684914932129510711031400426390523330246569503398811439384872063276562420825610846168879917079377116487958269187322331149061171539383109320708975546662418987786066806713759440739917646955755281862894897948065283991032928797929718104079975398869219393179159364901298521623575269501596220301679633846799319861497536749190770296681239264466878305281250283476761019333484648524655951645556414495089261178746337640796629718816802830657101516315366638207519512375313571445911198822961697616545318995148066141680720342765424981046169607596129336271657443436026741362203111313439231145372237113577348214919822757138882005642397966675051413299212089121017411220143724972194184224854425383082220710135979191061824547349291721964968962276762598616181208573067022723198182283968682413960226902488962141637647672255806199122819552303570834522051238424753809812233901698545297738741012134023976419850498721651566034880719509332127672217252884509452498237516604061415485426126120908192985362991551120430065227917555046123060786823143241938326971895386326435835277665630581749240181469476936745183677665496601765270390918174449382991278863889434291975171506851114650289957402204181363829547459521592426361976408000850313073730590203420419300955971197171352990376153078195652914192889190135660552361992213828434561517264161602633048616781249883353365407984397866315445763808377417594601398764054465466916942028627380266990590437963080767821002780611625661239808215749187213821828656969966848451497627537252208604260766386022166676258174296260411041878080740799150936580891851804868611135886986705707914565505950139494947478114145417628369853778616304773833686924099548264193342557644417601561500895260927116743727351914739064504974535781440760561611847916688413659472782997355557965426157456846705232155663439439740301828767654286413020707766226035411715214715388264175057834206745047385978398392951554279713092750378195331898382781257374872919541323991645014250913260140425943654079463198791481952088275059294009484643742344914206124618246173239688009811972551012183358650947114218448483397100810947225694629787953114970981600204149195937419015373883886291210801109739197861949793138402560966699907339787002027579665555754815773690732047105237787024246831560284782874058743562399928700131430255593511039099987618483248005122234293215766198108634833570644980314058312807187501963961296197087334331712927441381277060449787398228887642169167416562595706613348089688474475682801296585660328356021516818359951971073806686486280038116466599903639359787851413537710836256045389297668588859262412068289716363940656477217835260780346829302772626734493395663399854111323411827013970348068735126382842035283981870830504151612835118283926004908282719497784696685203071620287825669893991057430953050936510326450176905307761625284434946565510939349141281746357689758276217041458664250032076780722254635034942526527016249306773318795329797545851179126352354970780672986592500686779513578808540097806963519578843947440697422897739791555212795293298177345907920857836533426372637913265688079559353298268093367035437794331320900443213976607641053450385000663213771445572045038954715506244833271961175985049228458902775636814985145427595860605821849112393943031384703644327809128879028781080077268619847692792561205526592935946162281212319684933237848624819302822254425399073223133949038330164544047566319795492764987078082379082710021564155538426286967719219794172761774563805421623641168317542554827831006192643912414561738314493987852629129387594149008724659461048222520788659011526912199672324896242838928213249509311331470657648750419132291718347363728928436924593325174959080016460491911420014178813404202036181418854429862225878182248061796246329571825075288510771767971077171167423043033997335547342796448176042131106959755484606131706826533050257029794841856111952848501098954445026278539283985925774831399173310582847974812247336536202640053868711744639805852578524615813637471089346870407111096607610309226489351763168060000460803918919409265130062106309364038423236580094088240991875354303136633541212934938575610701982288743809412649682867131639518148129348600752778120564182846219889895618379349564201270266208416895848077910207654270389603664531501521265880342447973414300185993386066197314439514395754407514043722209708259327320289675727076975598983102201498042436463262138516248652645835900548813540972681949909625742569327332295423066093591706679693011255484308574634218775292522927040620664339654885724476577400295421423133628116792210592853057355236964900374304502220383078344025115827616110472391636184635513250518914298879441681681471158992083095460199547004777722066050673034647789333775835170067011655648311120695764388186307023562028012347552122899397060480040090043205686570044572076914561716660055281571119260315862414172888236694353491280789081497641527535176447254061121606965398498148552684709778176547858373811073164000325218369568637965346573627012341927636955632339617918705650143704865412681085501741638681229135899955070302296751185698208110718101074654521764538106187397054595160675372950900701139988814658886349209430314823093375052192179481382334321086116222958725389695211293709259001904573219182538136725674004243179383420807423514447224791691366069787409217836406316670060539412883782604060936316062057541506936251601826623271778028585784835413111453932696092416780658030739746507657752991607274683121844504912379660961584814237219525585713730848906133710737364719323040445433913060264367025962328789095123676447828904864101548477689815762109328271666373146398022911932234567341115324510818707926376052096805726617213108808239212431086448441907862607373635698247007098863861994371653923305850534801754264072364368790958485005194146308681154460858500606985756407898444394589744067114400665117888157569692148803674341014381464294935936528219265147060158796423292823600966522750186050115770972134797886482150679164179005831296200275569218958026154417107775101534694866548844866203309831967778510609279704447795090097450553159686428317454640607392716854608254020344951516525709015089535944323379999377949461767598456856717014974823183869647037629708999292651611744306405660639475531242413349514607341942645995929488175056234778617554751588216604857392089194415202600205455802552298838616984295447054119734490103232032539950432943420114734857114427756440093175439477250720601986601554751261438819885222712238319021177080335405058669748920770075997930692541341673658452623687760286475779986169156381495246304598084934934317328003710848046309261080179119852395862063827107516451437862424988137195007767311930548196048345173086811597822633121608835082898059526132114114999088978425206101217287896694830768113017310753937145421674584852887716017004997100687036970227415197808631602648145815402297521070449159205190478350113593473479986522905791652373392581446640850999507160915474864137863818881194991539240371408252955333813479151402684466825609199890865058641896208506890347966506065829280182718302561045333834343420185057672593239236530188847526190896580208530368731736296595819671029433019723258473640045548699093542262761279040540359794655434625907680327659348678981839744204380763524734942300643891964351006745593642107758994505370682870164466136691343804104433830523625298673168935698155972557318270455163498779168609545823278602917476053965236315442503331594070181812887215727320021047626005041505832466220715513096988299533427544785959507296125489866388906031390496498807479467331136748280636180476606123854678062804406360460737059982430351228471294624570492919480721421740924101300839400652716398784751745020520635691787690573173148077120268207610337089415256879176333346429565058767212179243153090732793381266171016131012884601280054669669601784639218300718404399583331161351211256515142961719105276093281958452568472150023111095295044431157766090008227776684280128673515676584912234032251473817048342695716958273652521498537924364464191962604555644446244660603720422272228260504281839654396136495183123314116390236905539237281620741057993484154740023138165439294466726198436762167913190026318730395924876395000270958466851735916249902437129218925157819128808294092873955832357939021589314558710066493722284857869568639249549124168365115618583981263272072713991246209430615148689390857562548320665281254518026212842253202680210726023965909934533888679332052716099508577564404261260846974669013794547311060688731477442982738411443355383270547091490816079875871772149097031144259191981877570081139762190905085315450926560263573725005137493094907792307766488970801709312599358172653721250418004133902256063874939596143873832675208038361656782600647712825554018022880699246101669618833287518819287675250578356323713973816527274871379040976463378926391829445272261168590962430130432116454916219632632015645123328696013637657907576105935935752245036004565488906455856954595004778314241109457080716969266883599594001746589001585727087169584224927629807532046364960637539132014415131344567957802954376960293905345289915079137594043755592373868702163053410291721816451533518254205883250185245172234695532333824562600209840296115311388890331743221434470951555976593229280891211662111712724661724534525423577251736263000421161902908702197608558038831493198519571497523981389163822987074341994235618683557113998692279362614348550044219323901669684500767188421126501581246294845955080652884578869819802730482122403615667248738058256555005150399789424574415972040334851179949911066642311767325809793205275751083280185720287806572745873214641805443794003017351306862890221541324660470258146196971269669266445605456972831883094514767443943877544473113054044823432348578434463430326526901942434405767902544813216394719100387765130283641096789951066522807271316114516179198602345111397684427521602663107292242486003105486372084047691754193495477764366460392586661090665503301307177563045145591148050440922086417485908077332961932930015757215081731037140961549996142940495410083700437119593312185442444789992494982401788821609248889067777102149596047487500860642023102364406302847139757363017338384896136438493555144109022268271382306592724090695850651833098978262446118460214038779641220788596531557098497214233816401223857285394830271200124988969057438339306878011508491416420803435658709754165227096862836831937909332529646279815996365531031213217870769521553502329825416865209871895396263802995159307342927789462633538762329042024480192795389228867674221292413615287658761964836225287712481401797815876754359532478087488196800413076576153827107717312527859417836194376883536840471525028667640365754039723010396500822555134808551898863480540311578693601640441073347474756386632612818374760496383169401809153236024450911664947184007070449986926965428866627086127459356412359638730645170113804700172568355383881049225823785842921813154484890520742696091200601115579185870807852464478577785940952886013821713591633814427146075608410840735047158662132189736360255007056838825861689005217624574075856413977198641189680148969046956231724058586235241408654596437539651628841062836472113964035291257637224538946420800998897299371674521679981698403597653840757013600368849517966363478020956873109094730342182110843613065836018082190655348821816869665510045602366046327295307313612453295294892910328846315720095437410223559387794793469185436171606358977693554543386265971839334135413388391949444106083645068454104612659241473953983087620842375531463906479988398707164654850198394479541292918263827294788239870332002552246481500785721307554928551704080774535049302273830549466036899729120497177572063568394694352181430343459822479924267784384254496630913198362704488983216060281926226615657793239260172458553159054838790312119623983318070582569951884186820235177223277151540435840116099311295222935264182467522941799017182113678313697406585773229955881910583855712716911455699017588483640616469460100042818931406894241028906754443663602456616979864867695145491930043993208632900167932778698050593568671318699579464703153262888348226006332061201749200346300692711200410025426135899409652101751157902611566200422922382182164750836068969402275269208842295694619962304195524737822963164515501401751266583888854670361115918023307573473611816549252952923842561075772187330444806929229323682632384717554830978627782217883689582889743614908249069165967406829608307441435538556153595991131790862242577399236779484558703674041097768564635605752445696590578533322500306001758529841701972299447187771152190528039521646477446529864268812980015214896852336845211780946744422720331486352794724689342147247755150643406947413894375572557891886756279666828171755459295574206521267229203318197911566307762572753053509238352902829158780787181049859663731861381652618546786464025553122576293133648089025960339403793763248629274886260969784317124539242592452152448160397064856738265089240102409684930027606658034105106275574605912033789582073091634412719278304466427625901082875397125004963402667039375241822508076196014881425091959114976631256999765406397446962813239829432129183395902397672853246048569327905881253197977230496865721175812435388742532001434530844479630441817111421891823303367156921046451459725449859586829952060354331625420452507906517510467759571575396733402656555894182237435537881855650804826590423112781621036609321862841321115337569253260569814439337623702054730759921130900609354493563860290070707654555789711429062492993023035189605763746480858747417993418816966179005236414962876459416215131379546678112717491528726254364476934725877465419296315347567889111513887310170673571281141249466593970740430681464633347363500495884869582936012016238812207850538383440003403542077304979152281959437925070479909757724428913517793538916757207342716718389154501554840654359856877471838007848794611766348073129825539025474158326190034236867664560738445982802157544545385416698584278570909866994529070704236221477743299558513950986190218339963295941071735500088658006719139839480595956013992039934446707439523641621086426559116053677765630009887827341976450962392616667981900752445611001042371378407768559824391209936455227703000885074478415972450792766866796579229879138350465109293715501938365277795112382133559866424871467084264906866308869334146868579504499229289487180138376317506066505840098502206822772298348506666923532544437134087004010598445385224771709215712586541349268956586934530388454474202949746120219275093433383620581717434324715826570799061766983425507909719248599254802970125997582883975123778965233657737523787267488650544582599991051399349417206396610454671253420363825638160600720643638177636708218598620652579656022892943750405136591386465947626318719482471448669718236254459736740157239914269488775325837209467765460634629996707731294601917870894728981029653033332611759436122252955006265534132311989187272858735919307664248085135377138720025317611124829480247999694791237301006751213886394762432523437892329485923583049067876922585325554228736019900130688275276861230869452443441749739959911072471080163678982463891082438706935874096732892654564887474562361105559758053085984664290135840773680563811800353245396195016497419643862733211724903806204370218280953199132583724700030722023625393681477257506839332061073342240868339759628203836687258351451595245716477945374453587421888501196758620014093027190348393110853516491689244150967644864567818851039172623655092781600589644870357848881631214094385953133681265144654871217859703902281061816588210356516810662937231744420833504311490801783627936883829924370774177804613859647843974785863806449744491690583945833666748085120080612741737753679456463872307568882531570179440372931815192196325413734514681153714691287197894943541994535572785507325534898648293409250288101296001765074150143746452829401653134552478835039159060951859013899338850061735969696005149160566606162770186022720043092944667966581551808435968603345773472364262570367489129215493707978070403599290993297197228979204166197473610016673769776128712701400281128327319398865370635026222199889726607866425104614981578338069893327577546979578820695274321014163011399806512870220398170574078794835055219689321643495891362651096942799743643873442764286724954082399043760908654808367513717226780194792443547234615694271152673504448421566330487409367421983201485547622188151899676921097507694959132521599304227294677746109269324292212684333990736399402894381219361783806553547103111176822447471994816116506345514637639332763582755131050408381587660076217605449876688302005878445062913424239428922243784168999261486229677403009405217793690774931295118669748927935990380365114163833240065779322941431755137682015728649880697358587965762603883071468154091604405271513447779326650675504864597606000388061630129240062925615373049683986831490756959783652111074869148363936676264192847419419789788989329418238903209380929583398256432667149381041164127931240371997263052208858226327334560132906752745687869065923168322640102672686157414513377615890866502231698760060472215609158612224470840466252011237500990286909935942085496169976295451552285487825960748445481593915642850096497571483180667404658676973732295975729590749904212910319181710980657790447911826761640451206254864456849173630309096733399892081800123603443571636213543473712344868402575766903357770488008145598781922291506018841069358933437369933912910559202378979265909466689940838118908801449490962949246045343630894239794167975975579688658715534815587011170519574235546521719704535858341997674692611151308593058500878416842619539588900027793674500330297779343806412845034508031112122772341808355562177984478686960385132185827235332553159986579724782187406612744830133776373969619355159653738086380197471299421804920909072524037044026349208418814572409492175212538007301648390763390896259188368074773179229950916934524905988961808934319944836555851091042856502566792841412255951600669560000037581415901389600310833761812606817157583843603583981006683873952403370558568609773793868916343921985212416460298409796466251414342690220578123820684676908335795295643116293160644692356678164715310862364534717019282630102216125749618490257489258287338299086794231050032785026115191595382988335930433873562063858419051779364688854116835667638682346561989913756271341333209658313722193775459181873972322159308903256541669130639022385074000141521658643277967577625191992129201679922528456046199179243670477499305085314116587016183321630529803740813190132388472198140821703110423006519476648770062467818912476623249972051606762713905411098763187052287529451606578021990218995973208615515836699898330346299309000256584260316514875099068952884522088268726470837802468491797472989267739545728582959485406711160126578772328372045826564543764915689204504689305461102992480635523180613488880297038384929640336310247911359926692349854661989729608845285589665896594092267506267519597577473658497063502198217793071076508150960376269095161424252800618581686343553407570079729002882455948127937543210398978602895690295694523624006518562326809135189190723370382606816261081782423460179951534914699031332001176860608675611068481901688149438359608834682638308771400702590119358555167067084986224721545458701295040924738792026024555294367632583930875412930234628569551651769259631434040591184381878572215645533236341990711482440741544737318479923929476734978707174895936328922913345231849266886697835195657146827714363688413215717713481012765086589171159758114278430709621750820656773636998365654706491983477661573313587091500789153428967977102624794124704242742557253610398729737133762336105573369899551067792615233722102248477894592495126217141497764904563732198524289514900390247978370616339232330643687428327948898351307178406793233355033512863593773290732537719241761339853084409169061257472295190655587015471370221603936205927866409219260046619950182631675973804587665220713634497345288902381327332815065392256704668014514669781743317977725708930705235869388013081927335664037182825153349750105056887525863125912959567819455032229856781419363219776383427640304020496811802531042459359319063439509258917142158100789453539423658919111726596160708142318362043854003373612933366069353878868820175879886972647239044077937829824572515638487033852481911431258347780313992598486138233879835984671768161189622825345096485174144018127646290456889007937215803514351044810064295691444932513084046785146701838770761159227086053454950689383739414639498081719923666232410542657587422571170597482063352375546791949157617552184900104709615134677599266097023980774078800472414355171078548005066498417722992671818353211819753019204607717280344130081222619515096518940154304952349015475388017535470078829359239138855936502683765702290306211373855450204073718947667394990237807097412495471908970185804040675394757201989167935683136786470335959662777058387838831470656547767354613237173535315164275746770152966522238133859114873907037642442240235313683984161154118458221659354687181542011830079045292924337800187370372346059785155046940637428490736264415369719181056587270992699301041021681444416314274352669761956572359837242520279346107450370690627883871465808311250742655230470792376512658357356200102523150634614401378176589868737217570593412369134429225023898522965072542894748319123041378452928665673348331035599583178289434939013080881464474458416211594252122325469760859140760772084777753579489410495602385790972557537116784628684131213480534708419017305145789410836908036031379147602986619699566389329146833185573934800202735865320641831613682284368428424024020787515778389058568724191355589516493962518736130860261656252900936616420118797653819553181822196263683420985793395729884997273447783930300951084938845336737140650851829282302020761305147427590372178846468379790754491543458009451086432063228882560360600675552767247622583030396878069686589788031374221343735321193064370129108184516166100776308257694221659408079929728656589251117270664653505421898192236823899574288744354217425154170102887032731845336004514448383368952116244923857288765086195033746489709675817089052259330744849890006761307675063868417637517679903419555043861659357074347630759961799865731684772749040211739903590253502848101416108659767479875408618525265772223400765764509145046677411759147803599239843695440655876334513803137139756317210344542810733843144961725480027105646810708454371597537322717888225093965711113812739298847416825302194597885129520120199483334364178573677120257371331127194955027701624677766369350058119621557963664376705354727078578005252875546440677676393493121963274008348051083365905970391392764520660596979911052332042331841732477706038970367667914358453344299947414092340962721728308496265134749617787649093348664465549904246745081425818617849520933293980710473280694778426558295768770809045690291133882361149406909441115787357605213757582330984753043096349732288148118393682594459389824019721528266264588688873390079116539146042453426756909536731953474949916511025744005503866401208023939461829239174212781091715196242231597474904733713529188113337604358471344759422802631789861398656202955100853809523417615840474048127314844324453475123730056132946161407044469474919612749795956175830909082277292830145239364399455401517701732104967809045301190997755353279616475893327275595531562539326197270962036947201845983635906467539909692872426928175866978230493481724685793622235278568305827631788325615260346896352893830221220261234671466316202205476484358225699122549037571736751840349190413171679427481047446328306906656111615743113777343541041796676216935141363683928822677771671185859534913579618951426767816835531515571485130964428400608604490829929359254232005054475671414101035865155200539751957771095763445514237199363099261804314802617050793812332612708087883805265949824909519399918889162034032619244096647583310127915674844419753741861873087809468443194392967021118607034002384308946092779348664489788569696360548998398434315480939786016975906091465761997975517678721649718689031506059218466144552139063825124751428708868716659633871292670759904742436444046243177697247968077836618324035006806050000881669890383966364322939779817640255772993114560282774152787951948063161245603594170712184892298128867816577710510933166783395488244449139770570596441051243843939700112216183534061800988631787063600248728225618040380443592043395696499071303715605048189121660419926865950393102263153188733736522710303287239081490042749806869835786371318822026994607019849737482882162681816117276223030869855741514566064880891986152621381691174889623647744016683934524238087190222360000335255081069926171861933236070739648577658882102359659341642959572437934532308416160111979572047543618121678920579388465546879801649014554581370840985217726411068247049782640042229318894307650066252883769267713986363848748449790684052039638055046729906475033171427388493797393797157307207935428956187296391669426951017679464099689096657044506971206395634432155439643357212027093465190358405333287444034860213367839448760126964279106360887185564068557749482336977584125223551106445942109468035256932178209015103269534527936648679465211374259785066999520931320232064954492445128880774116621690071204434358724903900853471268574929895320372946218981455626038996654186071535966393679344152222879939368005413926199561172852982488541622619503147393332358950965400216679940332913003748351141228862518855411852581575907753584977461537838311849532206396479884454600031621615701112865050109293698717736500428593959790059741945111747583261300407881267616738822745469978784743241967390687729680818583010864999147480404391353485753615617255049189985768796797656561780303399955804677310879435838009496123071647943315165871361677609200541038474047885842349251240938229635889954829783973677934062763199267272821180210913792204176192118748188086076633451580358752122125504967368081031953389157014292427758894691918572468086799618137575941065291658878734894620458639488581715977310632706083084677296931975303054062113107794667914803710354146908395657232951598466760261719335719319146102838992113360879860819403759544759482195908108604951044016124930139470381477891909861507466744238349969757107475382463860580690253820423831394073906174974248748090553575958245217303518655800418968639391210060466169035195130332195959180514915975272671785708153447736355900639031878083717031107592394632259923592987940702884758136353696939138880844669876919231598983560705414868232672194985802342502428864192979045401266233009571985321336795424312331633107466877019101747876128630602640151680574507233661615832496315844422200041366400099025199361495982808157757551497060410823171024464451589605148145386433988360002964737448616459953381411114636122757384145672264882394352572376681018106284077562981093041935076463219396201945943307469901930034649377701229401043169435596474311024003029122635133432244956118358915841347075556611019175120146051287635399540784711745947106144012636063888350533375297794554309369884861484719188089455914802255061305021125494338212845008426223150561350410839923979239156771344812287715114279886588454015335686411238353367654853806640029336588641389603373781111908846117922278691051924386732975339394487312893139031350586418951768298206465636286358846664958691464809135257880826908342064673224725577146983393755349046952711648683163270631494593803492905940670602069287030404180623746247348487143391398037192175066307553725758454999606274128631349865721275299540176290794180125957692540336987382298909076535439489451336392547857511324970546422106116462450211456339425663513913574079267576348273979718425784383667667038022632106058864357042845324936835418550130539542344310921183832845894292154999204959836805922749592601180315654332477425398265489474175812894060385374934952232918678011481254905996013400906498406977308425049286375428588726474235009401370961817378170995186033056854036010848265645713553077440943317823886557427363035356545094084253488706773626433716855917087105062128086487053885886389529473256562534041461495209799832991673440923777490428236408353901213884671199645048151242115590035391452975620709113560505919114878025045487081813335119733446887039643081552235816713150753839068383600617463370370827125460175411595948319023456557368208973175793788599685450743623840028637998041018713568989633566796959489345866897093703433276173364534478490849613402601149748791356895070866293070426178639152841832563266067378916020383466275644111412269117901605802281108745613501141852930792795530011338436506428683067298094115824703414222272321779468499303346785931406040022578571084397363881285171348085397856997373983785442012007663674892073000712412650260324281634625818751883760165648677728309936716315906574605450101344106528804703998440031458724288484448084990821326524042873278622336776578142900385592806257349497788897362535400570731185274572676951450225368844675475475077259514267821937456241601835779797684390572405285281152028908046141818246070205010448018734304275655573502955359944469564790668382576920978236976950235781588999963399259411490881491736410414749692110175519610006307975881130763068032925408844427163524685723072682500228775621690389858909923593068575878574295822173510224432630300366611467992057222458587386264929874384430725679138550541872982685494388146679782098407777472976620945619364916086996448369199349609011189898262037214279455368270005131300007355939661640088703184549061842346801877001438718468762374480124819662985730958039495647619617497097648298170310208390269759472807073389784113898458213854287940879464743497549074068584588068494547873419512781095087361282966062723874144974689182438940305082575763636800197140079550075891566120742315721264568345606959724890307060539752658786551616693577135397624487173103082001649116733219836691609262707134371308933374484063938079861770721467219586501205650050448089482239200051016976677239043780446662667118153961009204180106166966129794110890040767290584412102447540838384881162178010756122908878246375850277726134428650137779568695284853100986178103381618788526468647693120318180259853061822420167265554968697936127657212220925448621524497388244093061864240436086625035349611829954824099516952747724736057667854939441102990430622275731151777140491196922666928352493625050627335445831949123068432617809449529726053847512400414051696478552005902897679513524766737475654049767239118346493240954778968342902061398447429319128374961013726669666071399944025915460455303778724193763968675916322875541726801786824782765687122073841575647174647133081164202678333966403509588897488771800266113798218461141189349267171946969944912588382230317514521849583755012960431824665507587296508225024132935519265237967498255590358517132195296785197016269126737475169844679554388139015157872034553515293592619901890990972569730799779130773044511186510612932892363603393741578234266041555267725884464926928519154466022460662958072874279749863219822269617861903386541086241827018626406959345909634066385599999432520550381325717564522056568249180767117341047199396482451229602456910444450879742813973112578794894019007850620606535627940824681848716456665268723971159444069986471411239658364510724305669290483153625448827313569656376367879413316846802250867595170673762058017168249201982065631490562811904181098430751388407334940698351669118375584951705919969735154250756498374252942893176454854689466847810902246767867907486097507710389551250336961138404769753765957313965368425322183699274105119466456334436680063024819779714249723839270513797654238538137393602988727245710455212678678486125024565966955625828633471628033567630319093643447976573360984080060049251071671708735721538344081571873492325202030832334184859079845235044590570524677335130100757536509180639533326745938576221175871082358474734638964715288446250146787846854526713150042218865427375443465777246357236708618360924804510130743663342136025886876330234442424910269769472856518758483284899739523762905494595084155495609228537161157232166246436482510290581158834604301680594270297657849327744953396707700069846382322545683395034582284292559342139762770714014351054851087113983979502472975008054075242423259898714610703374369166808357783500791865034619262363545902066842281507050747369056459613965507611133642837667210592259910701463978984958478216664977146675910196532323709345746247119484475606368779546330957574152762765916255953059375127146925876218287189206941169915463657607923539433133090556477060946942260997039025247206395425879342533048822566280069485866540158457993386051157441730619248429895414452995707283543163520414740124366283978833825637934290384683341021356087930252606559062556127570166787397746838338750329646626889073793160763884102338261939782429574839720619968464482792485192608683689755610264078365437346372090577761667489756791581876625358341457720242479307709931601870829342512316882872703829907223629365650464384430705431701459177089260968560427035974956116329694308371731790151402093505219906594179476211513420504707284903855026257234525846115544723939940586428017375520500536097468717151166026667421144370640807345795238136595430526894951392874039016680376532946899898935717432511597647281397578266185793129924868429721552816761413574777278208466592473049651942100177452957042546330628320543100178345054566587699993435890978188033628722920029542793904944331286123636040321392178339460309867898185739598815596194653958514410005749939970757302490278785708859556615180977379746825413889539673391537977773281604637730584361645689799259776961279454141310107223660847419651616283577509100789525635438859346388351796187788725477089981543483262168302706033646636705940470260621618425643398868566922471910613226699333838040952938987407583628220237110118193456004480242916564874467506537682789635115279699385395348632235829515774047059118687250939127553308439627176885511259743489068208108473514859071790240046459407482660629929409746593257888950459450429305054661271465671643588640591528760523979526052675909228090721577325703919989673552966702989457880135253973235118579516557474819664680570563504273687334202271410579495240075870979247187256549433382206588211031925166985079279178298624498594023303551303237866761508530375140019588260764072629955386986620127254796246862784532240843649367796932848335109133458704445822571904175265598895169134361019887346643204049380489599881429662593502373772805489462383993418768773797184792007930045887677295003229622487065725530168756804192664394407420316750563158391049143531253007798328960774406091670703087539062036556250313561413290053741162876211385463514188413642318483422351317723237613263389887812405657656327122877865998828622364115884425061125473230273734605951036049688050318292569536745158889544460801045489088896321269969047604419715386345917908443029044696839030079539320523947874506822084149682115686059236392779970723673047581062846948499812073182658902128964048077649309581862960657902236687322490202701230175836377309361814681513239885919136413108905243407027797250619535600973283011217283361146538136199864252160854111390859873394349267974051420677051385440172229454154315849197277044035631543637603304907015762225322450679471891463442559871522878959262821257017107634742699298235856370843020135108932908730590082299122436458999560427986638888058315639723863731542367369378643666001302541403494068108976215123906657606326980351932861690953351783702277520050159210277757525231769832727627531304775052895713279163528394033599892207810317674362423360428774442284099396487270937934310523521459088348772478942107758710074690557527322287026297913544182497658732293641172450422190192272013226609460338802273043504441109157218730125962671116780947761652717790338344183608942422555556436982943078059879860057762323067702636597753649997503840547896781110874025199945890014706459421769064480745382706581274388001847041096658322389791601803898369780894985021153284199364235610529755104820253535440486290704115239614729251392146731228953112878846499170882388987732341442798439939995776370673330856151990239738665221771119972266447294392071329638350334909211582933865169420748302989108380350358872908453441729201397155174250022170103352822994624397235315979008632835662634347393138836489821379988124449410900225700713505529131478506474288564624501657952857618792459995531076569673070400231255805885441656915003984060641926161752487889631691594708779731936745371600263165559275465532921305003623574900456774436148798616740245664875170420792890013412434119023618295351987924820609768443644437316260275202833873054656693931223181161465643706039269129050370865404515655577219929453263609230885986403279383301984102725372108607956631334143616161210002105691604169335326086187239821219358883287004350064808738618539812666632536383754896701387881993973276389529045372870948081095427042085053242519877349983995141436034319812170851682727056632991571223321093162098764809625451985690114319366194687372978850511726123188999155510189110117397492595646011699119817945737603317167003077447163078765660206989438615016354899159757177801276753111146186059954391472103578484166794850447823404096854620061290257449225398259631736619720094821792227864243543999515828104581507659594933630661519224296331711173393280817002356028328488474762369931189538572009018337511281319559482884273555961841881120423038116605927123483863534810405958689843660129116536372863875166848552421445764930980418111550407082685711581845422364135735469020201415495589835247172000766853316174714553903403770595203030238702884488049651370366340974986478294582021741930246872100294355736494989816190979198680103013517920234294289286104617676132826707975932778818120504479045481499984666384236497440372947093006173784342244268286432933504668396620544352679780448025220692300052239669423233631839477987693522671141528792767630818256523145027223857731937889835631957621251977930323437160484591977367023233450616521094484968132645416046367551893709918249679998376366367535619474314803992459783409721215417995261841855238941878181027284066211355864078223987105954246128295359281117321159167776335805747207114335017467343500639563057026323874352446493206310199510300770123331790134603486623853820166284065132376378996861382452315173172936178841045430642764979103192558388807336854649966273489431162572347353986702282679302971618526061551970099189247100525305588900423716127435835640366754173159328383263880965967709865244496955442347107817323703100679509755595751646097948627125228367930768141286463827422518417559206663927917232579309265406098058589658919738490176216974757377874463730590598073612508420885002308642121231153323463634210047547705991489376484021808354284738601409320254295409544168645156486775169223533418354251598545559847554740529878024072304670242568904895006084351164479568395954556085414925607611425667022944787687206686933433748106015280021749638043944504857864182556878062440734506847641613424184731045591557701718222220162827602919210143776209286356413541375847821456187291341584301637509021679945481730677968985360485337456592941104051418391657744598674501873073142915529329187173223580155492630514703844498887258329015391823548641173269653507961029759098987440124644158348560242110462196650301272886968249794709999641759387950492544599936499183171049913581194254026972795804443614920075303786641804294469718293995016150678707892182439414141337582295445180991515858628352427800073704428502315468970062295685658097597902194055942664225447509310713203574688604232212541763175271889228885610233896978035834759239324115092504077069298418789848944376366680286140765625377600166456542601718584654056957508185759548151310479845315505641712500212236060420095112710135167432698762915440662871712909788672546896001775874638783610850858231477269914769029783769302202744794805300696211830198518931956538751726391594733606057678328276250337818481743255007829152178741922225200985439346085017283134882127063665447150629761278076501158649477908614875314122384863902698390596527842953851169777155345640087951956025308088908535335343898310853435135594435320810109180787331872691299679146180613501744572073481715874599987435920685543169303942243230783792916073241357001768468622194078679775416817626715285262192851578388677511162018397659485072536359899417449599474982443687102485913938179525398274231859956397392297764263790061411882292580822266763492899392870087105046565960486283794345971791161349495908396971842207318746496149752948163854790292678220920981330753886394991793566475524603054709602396407631482307985817450777401060465220360726523927944344514239786788981041863855540751133963833025098507890240159056182041930275728481820009251459968125701792393054909674593171910768792097713855127716770343095570114615085493845928024236529586369015227138591613082769173702733844777808826543623069368506072555082342939455389388488290814758049813266177553273489517389250809646223415471114544284678230789054094005507881243145700249982641120013742787410380266876351281653433041391743054508601347871987339429399519343541196475193435760730711929904400724636560960000205617093173574483271358639203550773168894069506827019296786083915943485460266692113714984934917159228256066254481655274149130999709725167507545441213272700979621957896004802116544325133249955751124395187525958535697694259765268136265369263419677979467231257661968262599318476972704716003525119528122731088892329125200744739339272622538942400491710075595045228927960213235518892632106616640375397274495824074634220922458746997794484252935588398380933614182148215805351315913879039680825970250751267738744617071886770895306987074508437416739499866530743224112217767539411649147125158706684593445074011941077065537367297634049171584247258928731141204400475545186120079430178400137605310065109716923188353217601785543633340720131392669732470255044127430960225102828569905445065820354104530168918094879256945867888020242782825963830292954495256642272224893882151936755613490225832580809821281925804675249593443084354765936881801095181747753700197118635009608654720673027623450594741250081736839938365271416295664324482709322076531655893522939098592621786062634080249519337421409232855806561931798955746179391088945191115359600504057696461775166972875653846040865618480902994373128652571659112384709198208209479644670267789544783528732687189013471608898831114260548462723860292758742901205170253103408136996511818676591505977570925522306136549376604434936782447676019652744521251472439868476280908825899264835125305720355286887164598032690927071671983450053623866183778413626935079913832529916572581304366486278786747147945624513301295270876987258175396420753353829412806611561865192948483372869531258323068022091178860028473238310297537428601748271622406130086267868000428687617477893174626300447512827327463956149660239278385739079293563107366527407305161724474113588268186120613410683146702401339676237484669101721362812601433541934500263090620574075999197174389923772822780703112839799954574404669074879629481734179933644848953059187711015752737475752809678115100506347258615353485075952126816282830188036672348869095560474900258296618358451224040341702621803924261573574727605387673549892403875534514078250622295955689674501204806240395167060670983907469564905690682875363374911577289195006332357404485591941425788190983624688129062590427943436160655400091779453169663111653858563999745713350137838531508317817804532297231093162856621258753397230934101230130529354683223579681903798425420841468029227297005521796095112510143179831149674011072914679987575126257502118566356588484966787979406048370464632076912979465327595807372626773908747610855717466599957657477059851291481543771016930522138411444586174374391864869475268739181595891476261190525257757930212505984644441122936668249483112786142635604278591989836217822499641795457382506158025974983446184322593669125702131018191371206666087017149570474699623601189900961667492713350000962651444889043993455546273739903108747517081250778870767410243039807553597258499525039529864648415423551130348207742508885518800584594274512282160011022219916687450872927034853967278290678560126437104864775333469893500826688692151015818310593286764625361082108640188153812802385077530354994957546188032306598900662955168503361207863023223551396182335041751986995179446152144430267416152394653024743194194584746504751136721563570786537826546907725808033496250904431751963260144246288767189785719320645750224320722465768974232372665427611151961747795140944031286394072137628256126143475722473549298012082592741379379309189681112775554225322701737761029238385335134409003410938328982005496860142304246676618082950157340854539499446714857657764118625184659423635714952381829566234695728955505610491995591367428298778348786835719278095253065867950848096934955814187782702447491175509281162255940222337861729306571448582440538295424515117466359892042164930097820672968637776354488781040605356948559834625148128006327943715009656835604163763780078008354183246352448354146973707876658726730092321506877478820663343076500856443183953933662200435876578675149050430622505011048607046980280331013228464347322990423111568773685651985529180257793680089909199397785624863864061907585492952266373738744042963304008002015514383607660614239180551907904729349863598586130973806329034404278044206499779224284535387061492737391294822941394091873701990071888610413048037183277028735681674791678761860280155942650043163980449684867931974874305554856861217613301154306283693676536363290486581738715609286257705602990799091143215787536038871343277211831990389954245157589545626182055565056849000083928899249650999163727245333435364367262741671695593989343638109094122720881531924783515915811858708618518331613235854607839908177517811626591551580658617613953778353851610481544904023425674567453074271668825498496510368592089680204868105201145101652844980663286078124644850450943261210746960574424160019289379253722839370989247195842748653287314393651723223054393639321086672952326452641634123811881967308515686798186588666706438926694287911631641579891816859678786294555145651047462785800045493204977364159618946589781257210620317951881538242109759970997240779715525814609505270770564469236492811394241488172525226809767108333328691438927238344561255928509690268236497675637787066103703934771695554510660626847163954274678209108391495818406047047876217856647062475848649864483036445853049057712222982729253461120361004401841088832492724689999500539655916627265219885006090127661219900946281583055935474998299845433152548803856539688475561300913729931909624688717655922795414364558879991815752271733560701019502556764469365392457016246408684067646540230758098406777808846200825463604758036177200851096652648234550122602373049099612842068781647847695196892008093747900250246390814445512823040937705015505370400551485525277275947195976486894130348564309395312272066515534694518166393151267982480928696609080823152834103848031363697301171273083728794170702346900732627611535612227424291900600772646337027988008794154634817657017615595824995159908405712619039046087518083286362506839909786232439776715710714329030734651871170403084439646017111922756436598588131330176577872961696871442894314826114877472177544328357344560237157852787282382245370259084838898760904948191723508491523774111748612032877042096679019190765513300360491873006187544762803848000200710566047583039049354377308347439039815056970084446393940316862596387111752132889686894200669606439238358918898248948601342252541326618479481647438313844903797609052738037920351512031583947827267089395293641735934077208656030688111108869538645127121867728774247769915755596222591678270466536553954033764975437961379972788064008130490331056687483393329950116759580957134913931410782957898586878263190100931717598577056700168322822081049839326219914906369232827521531468878169228547196944812610174783801474273137077797338514184589406212998989524578572335843556989180630426938861285207955054181432005913865167774864861211841814804421760960753581098990559138698447631716556864017100387367657070666235936991749424010778124851083646965802466425130393426682134930205108103094802656561421987020007418054912016747626124388137517686303932728179178244933613630920319068879748960747189686566610505615863367806729822766055909787853517781072831991472521370221909712665095277094139758429949953258946710002513821271804949512714017858338458568783698670093932238530425607557089574684678063619581208377480217278094396246291641274073201600760540679378571340178011643884085361362569309855245488529866978890365465023565293919829932631607560644445052490328253962849661147651699982926244975435694200062655019580235147185891981268190255850803005468784971362492803616748267376723064050277213301081341175308602920947514734136046666720676662899574907250464393096777882088586068734989371696173016290548426103406662013250622601822225276208068317693131074448048235569966454227002447094348258437809902733052280876227692873816280268823901404979994659461155822727216694991843931655324095146748076111155574335838605859814963118321093725548344830471450698290903220939892876040398699745084289504627518885567935349033179621668621626494132286825016851564696483971994381382855062142858716606335093133004631038362882815234516027883724020227381591106020721544701979222479681232808786887257626576155695359263374800476888547263339828021881799066041742360699058200632090597761955362163439902755494609947710307831452721759116795203740221200277386722082143187198780245681543176982310156828688049944175732214400363790808613672527532168051135575980191042777357676249513393322820075660172760204455522339895286353647529334990724878467946421731886535700589282834201576290689723505104795869938301438871883885115251505299585050762291419518982969884392177685423085190515440652685612825629251649128457572472956950274805114802140683653354470120336086986903588626914316220216948495078840486875699376560663780978792299977805107597529727772995456886432012072346025337878080458046904488735594785164887968682591308193667877295932819358242643059403252814683327908782575379403290208547416229320581871125555292619990617465382072354526787480189479091811681125361771789519223062606111805619177531444947253242467757455058549387285745492367528452295006758033031490653107486735224514156107372042191909349880641342062202399663373211476203037347199584750824771747855489520289232345372931139156394291427092774601647393392173529006512779244947383469627142634261587219478769673399761549037936838156363110498315639223809523287501435819359717577373893257468330821827886161214675552883667717697098349116817549374223631794491268808474445835804385665033685189218098706718783330296892390512229109598685032143355399150119610122180317544326567871448076098447943872184374143510875962080056964210269486828993375753671029333758595446363957272879774379991077808096645992662039008409310558390031903932428158539752187600084622462131461546603872692461859629253819553275468627757943438480376873302479140496837074814737995704607042552064836913105849169981594264188938460673593017837823991515742716319494516134205016895592893333378732443378686509382265383361304022384716568761032825779850876337335269862617167557057118628950103991973451131853122038138539554870046404850794503261555608978805266260116364067152487178312004938705039601402091651742409905617278849442754675772498762874748365630297945734874537977117812166572535908868499740129217284027323889177969776885041588408574574869310345079097924160726341498278954274944058909400302755788271691921596155686451171942256073679157121654308965153157550522546725877829065025023124475902675132924733637151495278356673040742023696039250698646602845070098826419967354471430523612681509279780161119945579701995019093292472266560744505506893607127262647079638611855273924579199802999288564921741878796792904033406880943719197377027110234459521582660028221595024197557016167730947288899304664016638675733515117349867340357811302344084519776904467260103399591050589400308743697706295164712256060219134319827275766708491908411187139515068415620302660209319714416068335066378893258946024489452409826891909135497276812343697550980727239945552392073656915590036462596461125439480543027543978207871583902260516881239091387586011226598463120665885488602083814679743783264406950375311927149729786869312436928813033127692141362582464175946547509384955829736379788541666623234293797543124610480691474887759137007047239643526033061717021588213110158629066360826388245088321405881622074840133757227593411475837361579946569509280606468922986461788473288210385037354776618223171983243131057023913098452076753402469929594447483809973951163902568672988970053477010088141951313090852699423774742830328305963285236350075691365744972363434936671667276799776342790543566337933497016497176327141098755224815696701396372982602641402832057644403818738317612390825103640814508376214598828997931778172969293218654935680421556391765744409171041962870558315949449689534070257877460652159141530600185682207258574600134648579942149944727552354315300652111738376348514296973497030976597422504326221688093493876651485934116884238601763433887666721713342287934059989768955232562114252468540351973360967638611285459030062683139367866349035953829207649210695618321679936345160889607410027035543245336297332488356342622262886933594359441169233658710412394887331770137775400845908773883378743056868970525133500833180128146566467645436421702413345878027526584987296354071235152422139590579677389775328218458015127385720444345695704029427735962627160710463171030925842619756540756092525798302282891562994264477974187357972970856848876980640806344445318993689727201832832713375712862876094703083249519341708252291044461660901537369959166298278277593043137243251962349737047211842170293384884587432760166467349952663168263564671844708977013010772136121085116030789215452969789273787691224986969726554853287325442734423321976180825446311019927023442193113087172186612853442910361343321905500570103944212274149577583695971629901222791748218301798884639542681243558121508678017763195169212253534320902951686460011459964977592996847640766866143288224135011272277205935510000221469061194582009046954647678334268962332305483900076084937309588600708911494554101289285592414852734951059280726572167573019610247294882740452206744448587801237430268212586189227422447393843281567891141621850855841649611315276421917069270229304978432543036111363101185983179675043218738217682102098804677897880703934971222748526374346748073848857605458351828060299219076561456225433044094244835707188054275022900277751836257117182611800693203901269342712975776381227328504358531423800244240430135972334694084980829323944739322273912606773938227771518726976755874868345057057001078665355365293255443194542745109779658620674090948698186601315278494725271131595096207188898749890368575331299469104581374035421364428988459812648611133489117953591000408999029254886294068537798455968821338214159079646962280766835182633584290518761418225885851637060582562968254990228648753005967735276672930176146576235715649346605034438896066639249696568151083188308740165157082930541378623978592909012495182530180051410744717829259973480052702270570314825414194518472070431238292143166920539966867428572449189165707489096430429408137337085980736654766292324014470359919160918798692877905857987702153290079206793684765271617935026650201687561852812490151988852618869101011874796034255978990858061442899539894944993081641664912357953744176107408781458310986584903927059776128974601563192013800274556908801371471126164528122553609751539248634220576188914806821942908069206764858548141501723981177219981908649495941450247473326811994479948924781260504373390285189286595219498701306599645924895867192061228306156189009377655695701079059697257273380399202445618567101463677378012541982897223350027462362541357796264509040181198263872840891441186652023846768461437440182241016155631898744208103558468843155166358502774670602170970287653700339374701045337557236315937720543564057874523134291706543192829982828588395034113632418017631163352143197929221344899302087551601016666373444535502972376057159651624305879822283381167127692625234350064123819532580663912018161682590934011080932079028636953381345147769323982220567237417061846475425493727628080346254690226759365955250252915764425636410878810797737637188615611487152574554296899524784756152309682423488775054440330662654567993094886659815782964826502954860356890162500458251920864979199740108914206221725351603636871942329195975529461964454700039369829859175426974352204140514442276544126362146007509187558265116403983853164967731683009079941763474653061713437723518686284606851808558448460051291531315288560180396152034979747866561978790093033377701734350847726977087357349883247355606395036237525629870719488110412438986431729473663785159108186304168156867609414839149167973478669792371222473243911036810440348552953151831896538039050899924469768392310027654824346044530097393309596948590163728982156869303695391066176898285055218247721268970916768730452326949631598259058009201832906624096281717878637531854579076057288602631783972084718785318556293046653764828900947975267938081860340125694211364885551709705200378114795236114032447669024855730199389918643932055105733501474785100945797775697047542896877457669164881013196429559951589634920021057014244610520870261802208094597292158620145715565017323638605342036389213243872275574901386028963125701413103198010623904373590646934526670070522686999576027827309618035917600380000566131778758037624577829903718788286868585805383599721403875959980290635098692157007699507091204141128910073177465636700294180107363821816194583411146800270799074183713133984585486497787588180544027938898324683308376147313990495999097082270934366445497419055199693077514338978852114502590372402504270620938314353994634986473721071535990972344521515623392880471424814901875305669017594714420328614012499568486771455699789082388951721273450947627648368938980941193263566477522065221678051508094166988919755308697139401724504623075925758080712812516241537488468942557192196163569666062511620387798443474586338025676316871375751838275586330004180449013762009678006643881858121466871180024104616495738899558503152993024668674293886830973240381255752991723520119727900423788762939272048909459216842676161242108108433613709928094241127395757138694660130835807998038186740121700795833899651225475335320306729111031074787854832348549673742965886493288598089470750332726296417107033687530736277941093902177890056177917847843144747512055465820031193599987343938492031191937528116947896805530247803399382251664815115996666290247521682013054110483544788851743862882822159601067642834920812825937806063415315571263177406234440997417223511597088769274072369834591579821440322340157309764769074489575589623895620577635206344401701904014581136258847576035749084589099895124502739235539204019763623377766770283814490254263075560153205529879269665733203871670169589870738634594168282875511198018522575542320008281416469920577134490011242716070699763018095976713119225011409346711536489828623265980109966187357739540988121668841828247356662597100166161832827738722299595790272779814212302928066486732384644659053784065565693834077723125641490018350155377282225989821680924595685755761301607853265432862200028297446038090726087483297007219440017662649731244956924873195933847638821225974729862695388906206562241660377470249598912427466377281715151973889075465582837779530706193623668543388904741057721021028879478696227168638812514566052900041827049168011473702105718061732953685883910028924986001770073369039894428147940100203156369788610378607624182549583149711554127679140825572567572182957846107510471019646316163545117446642694298756758745755526486338928301373072799914678995513389880350576736540996791311366271394433859330170838949734128447281302356036300781347658947524018587137653005703975368063763230654173772400834721932454190223311225581149023724336141421535710765213281730176471437744213734342120683702780343288599596659546777129831284489729717249465681980949309348690992621995032839081620980308556080231552764241028794576273059673214729661640627234348697701307500041538708108129625236732632877513271793815071645075556438438166872154393541102317617517731233610304463948148007149097140384657098546198447452648672452362317738643519415993157388166158545122446128494106150579901544040053457442908098039157503163959061223024327309975291789596557294441359803865541157191138755719125425591299709762106422463354664815464421313779156010125148910948557873597059046546236511807298231342139587095851518404415639061568580147379453140627963503832176786153354896642834771588368012449821375619457917760481300030718823501444682796903485529005897193082739364002984580258730864615828084051377576232831745758874120628876060930617446886832383811574980956595178479422570284802394831422957018558392884196396801764130152383892965621001149690871362780805654279445121951905957722450685854788114239191382752396927880103162156524098283393138509699388409903826975226920917543262381777219252172148924249590619324047898440366949465226563905282550467409566989146718050268840448632115752388825700983745069548485869160035662011211301966470030029524624039057524480480031021948941936469764426839955193222363253192862525956779946974770494355224848181678362028076768817117042476780204261534366236583164128389131263175625346648687744260508527618102903399469094986569445172575247589595234926885331991837578223090364107244933035908513775828496554178187807611253731067827716802525710331629865480375166071035519640696714564007939905982273019019442520223271757725956384461996371407341811744241115852775839972986162371136886109594111887115200301607458847422318786152553614722531351276150164050759988115096721298681805270653779679673671933671400550548774963506026552638566915829800565352196092539141833655200525530012518675221225557834602062690926578401905622209239199334414134217013958710458290562427180706734042452148991965383917588005131983952005371470838297038465486095235558475464031297367206158729942913812040618171843737617628848293925071853843774179114559920420393219285019270136804716745476496495402858060370513660902063038477991511507486601736236461130429788836811599907128041757229364918054445235533590580540021496746327195322043960156887692706616142666836086499807978193687211659363976812392333525103714807446724874033280129849884656676403057971940404292180191089915647001263094211203193471975326048225941408189953672223156180901969279008947742664444434063282410560005853941654373837905536630990967886639199619997639966792548786640781371969307042523483608186056720678888101400733897001848051865848790921795611074630293102785117389501467336857818025959327820396395469362082200185407914706949328288472127219579621884484352698957508344498349902898785281742010565289586306416110008645526356269852047178542131493189915921664472367951672441989453037150928646773924207174304894162195959257608295995318731556869619425698988916864659000856142740289943580558693299788430680632611585120606579226978446358232647733763551899178748870219610146384345408401108292047239274717966588364207802634793316145106267829879947219073722948935941724715099290851048462652038414300369419774255519858854529357836924660447322487444263596270110106858335992804709285930728511783265642922270714686534467076560375071646143426098333779719710450921138280658758619681348995724348404908932711816142841649390953631024802833581055588083098582673077093967586896064135584768630887425936326220693774625848379506127502976204439702680477425267316815324738141894864163959981391412046267630087658459343448596512850525026471114491615766632160444145297108028217650709762210267540984432062369095756105633115715441549109210518711905203973175875005807080379507115101525712977163398934532209426281980774898086180771498654184075481874593937054544837414224922082368624202702947215437747860284406142167211643533396693839590222550592190347006511130722163794841664536598335182802594985275316861954851455957708418266011314387736676696292171565168594716633385026665194046600981031772157043536322045163933013010981781979318366288073631943357292186942131549973947596857327003879373316178635150349637229868802584606420715181639445324581616348455859749844286289318629133855194223713459107886846669915730886960753533763040975856176677169985926232088365551010485278345474897563664056448986770303548066766571103987466408704498561928379623762366482742830204317162586519865796596263216851936385547122668067625026558453432618516904336620301310939495526160807951379666220405508219496835544712880701768427473685827841744275993535437329045495045401907049060276799525849300854386592737457436949976032834901570959402496635499472036560351946255287382561702691325172786128769616314054577418776838388110845091785613946896366868140533399722887847600149064598187298099933071717274593426719183415122131512780789824867049007303157963607965905640797555556692336382577705853412920030261929749674242716495572048401494596692574452651011095741613369254823746953079243761347586874427468188889682823398373925358551344466210991135887749907671926437380059350184576698538497060571582804872143304972263458755148456781172230745336546990652125310442119749931509204581763452726776622405763173917463824228240829703436427760584083714877919391508308542078458128034990918909385814410602849200195024660361943658877555942747778360388580431867465318486873714963986455539067196396723019592943640317372106246635185900549360560774478299725718199716410272191301998068766832135388081431542659962449011561843266405335026112579186253775855612562803305793337396367310583128847604474715347339807989544342247597436144365129899774023375532517211964979311472367436119143730500433216564792900653557944796145096402091991468006704768564328448434657251205678478780736009831565394240343547824787159869647144308495594191243819285636851395132352101829419120115820071028996835322845390094871995663818795747394394663956476777076448914892047014529911688483181478482547281345471530599749263776320037582497953162423664707306819095946672711493264218147697120252118076483358312781234640261268206189209522026430155463470711901318771759324895415953312645719027548304102870942072931941660931018818735209367572573340985635049929047248681607988235801279694503924967832152384721487931038749830369729651206483810799819721734848527182260522614128942905034091258103366110821643630795842099545646261725062646104740893212090870352373483639356071473727061829440314998542236703306228831450460283860871374484581792202059214916005317868954330484871803112687348573974242222949472601908104676526619387595481916291054663936147463482006790205910776502144020857791762301693245281798436981630418546011729296823124522835391529252593696575773951962382239260976239263948402216104496069225568311107312092656615549736991651317818595770672582821494464982573138512236682997330419596228136033691088680825721571554550760410725674142732503701950611413412891988638848161216169903335481765688320770823963770786017374084431088542458363450366258034014825702583305773206559455339291169515054012864873380622220831907845552818225198194818866884207216785925406226395222302633268386145011870184416427708983982011839576943951273317459814206073815012923478608154579939068655172309614869189474141282610483724741664949264554623464330778442916562633399682301934874420876713319357812966463352825007043208358424670387543008217748854666333081191870562622930133248714599617751286393471628121431380537640536520940168951880735417003310040522820732569303612989965087514309682962515069443863088915556458099731486589178291329897979197907246524230416924688525701423156784924137582043778217921743882735531199771319574599673703645947091479662295239899653809357732478619395849506147869048083204990857804336677112176900342085166887990712852966375670224617612014395224649896534786836514752389144790157779795676443010798021845859508075896242169133329420111714091646787595927238267265259441764231447512812337403496663123773767001883535252156428451022868081395270831158239277340766295005591697906859172594634310166055735018247670887760884582543815908949526777690571072713262784281448102928382510791359059055186632004336813151237641691074043222212365154884072683873760728086622436583743069425560540325700586517349576048794469121378043874832319696729685122067651092407431238561316363022108104723341627877254266407145625555843779802760209173376029146481704890496064848157113398292025423917248122375411832493288409730155208945785010282588933226003250021667461453911882531649244491672156563914606913140522904350329732841449404751010793301000814892482816931158286337780766255766805565605386807223099666283938302712785173543771189030962425016249451394811169408292704165291733814048333845283822831295461317987244364615781137585791907837118473193870973265852612597822276465572405074707987961329035246850139371645868167994608905494324113459130265686925886754220296351725447087601245715780157920360314877866846293155771513749799982829137397727592548530372871832872813078544235107843395549664925154573420282144401881016374544228350825361166243600030840014464911593502151029006755128975574318424525824060946140614549152044660706890448320808718717701191360406956341694595165918146670426615575073362519591538210155671008363969270407849541779294098699098292722480044164467997321463449457523989931481368979748736393361891754229262289782864090373455334894461571548438144123523854526333524241443606051541715209535902110114144165747459946210826049221786391677029001439830409593000863824918974757695947719769563164386049450439577245491488667313861446008117104177214290760869279464653542821892757505418185480365042831034544840829122186012912833848211554068200057453501840289039717115897025787059721824301163472540828958854553610503609124165067105666987584197830022026599459575491655582502343716793562965654662485549950643840625654823491823826850574845595306385861838453681826688211201913705248156747960134134864320419504955861872735198765343788567533364105647837858818991643497726560660827352361188599204275617605778971819599308677430735932059633981339520177846562911720721193097524693818356054838841680932596434767519207394748399443042877217725752164165362168109015560404727061745350410530455476422049189142170313786062227288208173625537197125367907115899900385602822857104819203864307618794472995553549351907629915717516079473029296089745152343128633361994908960682941647033744048904389614757792994274522327667000028376608925500672637667048360254066197205651923659806372804663280188077809446341650919627855884339637332615265700084865201861392405888854810871865511228242936563526883106985527893519027870231571615688816119109824911723629164678971015402527278112633897174597586766226189637273965272247413866031267262006669351170927201202350326008066057372185208332776824616679287347545952154678578271069287072130784506559031260070854917087166886490387538326449097992227969364701813928306084873663313047331555373956828202597700172453871156003746186659507307169146974604174863672084726596464524876631332671896119356625276279460462762005630727832454531036316938665412301790179541219474998597872017572675284636904454489576018065593657018889415986917550124914515671196243456733596372459273553356383005303249845967906862478396474793050196882781183482078112580650393118809927641295084528139160919078498731056924693527981517132206927347248272286177038243524560965505865169818574315256252231684256821542342100153067715249999623102710401981232395836838087061282232077060272250602502420696147770158661947241813946619536470832885186309861208343586235614164658398558836362047721282569777774396919398124297060128492602132775927631760935297081796302631563620443978859754484886045692353873941430665382270413316762357436438427935689969861012550133325091038709222336867212702523751870967375526769546923153895582912198856140205800032042145581547615896151272966797696355515427442469995442026457404343184253106627008953765724900874822103121959919911355321259639197595069308274452251520257675124907794294598284018096722564068684454099031223661219767665294312341460141299014747269094584208285909562667499399047825781021022163707063611426537814735039500620569565538584833119285412292195404519913758039440971763104953483680977829004023822119149544573303175010793207146257981568682275269231836241461788936852329199769681541039826923721491715447397779584142861786482866966449095375576399475074760997199480263676111722129643755678193035591361977159899381116721842061912455818518913901143791879462289074554198735437567181778631449858996054928237174214929051501237236526610484682900243501373091478474638862525823942660270700756959561713483004197233533181419562563758390897323853514161608973060694752852287423463880048441186330000527521013678685019894717098818625066739722306071571205688758363996877587867865559456075572482291783883330679928982815575266985529671353290954671127974315474304363934112023156009586388094034433234705848022100820844413350389920400907799817978862241757760538701902046719992514818905100319366058692755971394213729167310559471952224666976072692732631223870862857054918366131660313994557764796292823566721405922916684695487151598413600014044170888095109477097665270207512881217152965658238719391112874411067006876437937613268095192804544622587054441996573496801962422986496435737178954149848661050398143512917927856535298780069174361572778162412896039791589946609586315326524448393193984298431148023859775612225887225683299646373428887386017475759872590859449320688817927044193266389214838218906761137609004512540236853766634730736023881049107085234816087890995601992032517527606344878666869328254839366664705560166554669076917229701669882073724586946495923557422031729773191709665125313400639242096605438343235014114803752051368914909486844144049566411982622534041532286092204862492254836661790080359294209968331073376318386076403789202188538901475898566984270979955542498830639394296751903356567988607144620626617294245510392143111740704852336687836749695915054275922986590044047354864807502602118144169548580955710393110498385128784659557912152911292453784378500839610491884332662742398380377214804924903917569601509459696389908026732109148122879339813615072408812870600112945479916527047105004855444910010888469791020756213890766022964412739532945550458824222756332625806919468883617806937244763804174256394904319955505441767288705206247254247760376833123817113361517963142675397943130255865733422163962837131248493405628428710842349352583587779117304553379495826800019064306454940798843269751370491761042783770812217952250256809214290215731553128011719106868904995745694279435882316020320906427714059044261858295546464266797098373400712575515907412079257728764164427073977094725458656830030593962540148575068569649185530785120743672107685841662177674215370872226752598759841655252315481897427069659711950622756492767257843840661588677320849752573090634939494104074437161511635257883561668264900464971995157225723526066639155215865339063851242135249818940933111835117084936992693542279321434681915574005456273620224046313549844720223361852457233791898955583222735072738016237241116848322493782561336392333364551749722263314680272428388667189395449802107223989824060230507725127864009030643134110122515226746998308569118379795725525360905922345800900854343363207676770627344242064321773305981455191310525753475238599595508891152205098342255756040983672382603807351832713401351637848844936133099793985932273768116799927948004451531883861551005516538794668827060950358245236261588782965575217085031991024530465256081776435004254336464033835014625339417403078321454725051725193193942902601884941496773816939845621130514414778026045049788342236720057435350153134888421411130276753365666983518401945431111952980306946325574959312906945719355833413806965810010765764431761801525358781040313629587247721829676958729734183027293310617481259134375840778119524914998188625163984508411435788028580279771428499715014493689040007763924998911208193141153568697611560747191540498119601713938314308481834251425530451844840040086454166010974277170332656237935429641829961323836649185907614005768764668608829948529708452015006115933227887195385538853521833546189293583249582966889258748118311798539116128950306661133504340343341846851452177732041043462460087710234205046412444056491474377896154212147139159236467798920372233366777241597582874803370815332690981255663571999442967180550802925060782205294565000599919373608052031856345908780545657302064282313767208573292711848120096461807706465527512318103151544392239440407835368191577019336114120640380329009305393594253204512372241101699364873480032948401555918315209984859524791703500775513984569345161512877032034560729582328010023214131987627449496246431841277246725973905024081587579008314654861349796234970405818184136708370900210490660887230850452706129701101812607938737148278451110403367756682852349502957226803608715000945287294407298767604775551737891841167258754363527048435334644104431027818809950322051322902056636332461051722424216400957013081718228014251750506804157556986724181460082590803856876399536192589332068809734252227724830433000313966261462376402047058419117951923085479698497202724308131485776190229282961103686991869534738540297509544145892646813631680053621624947630708935240875353668371262107843653994984156662322003867714451526104414669971665830942052695301546396620365301807061378038571889180271888993687932104020819113605896868234715674190491246103688007426722332719672647547151188831878300373588197819178229312637303353187750302401767834359972730307027707565766552631599504164482578856203722785423562762971046858119934186957835041334339384683176404324555231906757640932441826284328189174863812715323668211910723392452795985351387804241223066052883281413711208136012148500995914872864803561437905032991612534777649069288278318120738199957355488040087048723113961028696912572187650903311912621264636751361734957888513778604899367239914574262970503016054361984081130624788162667759925590580346772160291822149791982451684963430357247547662557893598014323444859063139450156356687174820824453426399831961267163784259291690440895891324511821940245308363565436914429121508932470005792930996939190703057251813380300462503391709662002459195280277769571953389164907925981543849773489518599435825917181555845596531622071860068351056200018292880654862312785659964439288582522513785008673807658676959014308519646822920457436606344149945873839527648695685896079462818255536576165256228071644242431426372165238852578746170203664396361574720847979391739634324088403997369290200887045721516997098334964518559682441955017927787810757741058718036291084591466211481775750710730221119297168007348893256962861672647364138269146006370796446105408859073614146518838524655769530983931466166699701632567307331765024499713409708386676991845060985099546343714355600843043768179853535190762877520475724379863070149506913305891597758291745416429432532492592406898385679177908874349357487966320890889738905907736786279206138932264151941407895689500143892127564040342332712502954865485067189471255885432945565156234533059742526504963353448785083678562688392833912630128476824672544533495774004576910775187530902075595850409826028842092144186776437905090520776249014892956134207294597057491902584298416610382189649626172068598343266492733129703892765587697235407232809830627206958798837760921373019282458493361566910015392957402655254729165620936478338000804449470432304137583325149475065481241078154101822202948101426788384561328263826945000867548418203719260857583928427701510148777804720799328049955912847492495900624716873308422974374081394310674595247805994517133356174897906188684773137386928490859420395807039415069785639569119688535401266992549258170744866732819172851849378057437115199542581356257644322587592203135321679196547668540418490884033057203936977032867462277430228910172901830124533210926395546409064077054980272840439678132358932113196610045307945101273201154244318647433771167072593516784710188049311010520419471872942722905353461464272665260412474140207928909231732646134117483635693209692160872230774925098268660116869104565193443231807447281833262813183157535948379313865233530747678104992398643789396293162660991397771027553211859036306116458623557055265763563631154963285095019153442995120051499419924662168379464503766258068701206568328511725816324110971333213040839208709196494112364284161367200089613859757537192919869387715128051076724450352768547502981589787064846021133125563464628846933336404660616962497695978693825115928008683720146156490384471163220807508709123002301993023014030192939001507555013980787595413088134106631426217259915896240354078774430806036966969143565092879895530166272515760449786319142097058259593615571888343344140944200508799139373855270147500858341036004070179679157224929591156549558259423886414743455789540878065137716566783746256517609935499448630614055688248989559495775169236666095251682276200537400678580764348574467743093256988619996335696636269965584916242081077009157522422354774956216683974102215439984765576030165051111817485084285803168043535214237696132794291891512302044924626147423424886535548412614275904124611684322796420863618789579728789043894107753481974154641721942193885097923239418731169209552642978187304902612080868821962112090711240177838236800085415075765896228143793658849604297100737020577346941983527247711140312977839974248957159680550831599144954392699050975930302070979569214727035699248450909460660913944223323582020924990815987713948204872191320579919133259369205053357459982418242018076256519401848467920853535388143403067279504691945300490375322531547838785307383184140127495507801631326645592842676407627431237535199854720392037667489671005312053210076395656171810734237998457785760787083430304088107412626672216320432207221148980152481336739435761048781798233061764988453593250548474124687829475201803053640052093220718962725507438838601511835036628877992495874584617570993795092701612818048162676505932607147560910520629192925886409174897022662458704458072753494581372870241427227067455280512649052608454620747179782303618702923753227009743332832770231536851196112705681760519421636687593912258104162195016942920399397011346587642916533339559879319525649051209484213164838382336413793260846133327090791334563307566893765501989053797918330193213106274757691476279200007899338622820626797033016213026956931059125627055678146143854485059299642345912664684259941882439488827708329317705907665590330913545555870429445387396767865196112765692378147656880988681634716916893638011898492232658985648622832021241092569202427056141080215200135708265414772705390268134599260635388187257336347235941513715438334858414435628301777078609848701449566815423384183304527016862557563000530173211696225003291305654806769789957421333003713644211130773422640725330058331200173813059106294533513652302632092305234480380463024049147954516630744392165698714363885760602140151159751700296806909382478957893692209079252919433995664807663698167306285109234173900135133085871457518861461243980895136439594152173408719049043507750134685786549589425453936182940507459924926773128725594308662397272348983647111089603412840987109363177981709811192150062140761330240787623880290757357939104681074553652879264096258347222230422153627521317272715242076398823367475693641028993234883781748858183372057719947818804005417333451163707354264067406384318423401069949421833489785847864262227560736047636875037961370995019687062836238605547373727694361189297580355861519118801813785281636037809121780947597366379090461600566599334338368623952980302541425591716209638944248160184673198769934888431367361273328429205305152154642332978383528431513817142483273662754482230506976486526087107204306090322372582969451813992888599283024427456732716870288135732841501512891606279883041016598915654210834164401436098692795688094681411774313299820276177071873003353205234381910163769291944300819525299798351165301936137265922454055938800092154425432075281942647374288018256090973802081856606040676238741144687652781661652967505058774084519847700784520225126639339561045981060691051512911391229009548839196831175826113732156265964239443602586938350668938459227789552611976364342141756559784733157913360219428335855320265179663608883966623979552493315921217551667417412773006514804552073832937426815392337366353070104845483483514933887412732219929846172755002605332472886018257987295269899290253341784932511680948754113515712329254629314267485008196003093072281760220027160360050038025488423546416297695648872866187189683447038934319430000372722921627282367570209709786899598690586812137243521662710727153998248912953621733205244921656448501717785380497628061562294685677646935956323665135710277718258175678491248583020238337913483566986828708369099105687273561553157931514029798866412526063318178613096477591189107430577832507519242326465957729751478852331136699844031058822424228280352858704418084512071378793020183026064332953696537224609374884295189667129448498127258770440363474321246684834456638422653142574326855974432926791036609029929317154479935164650965756977559842516777165903820041247448451902873548258531871635167536988274998035123137116434883234601918388954820644094632580808336377793557923031707632907643635921112244782266803437988372453444083212818774701187659286382129826818369366586556111780751102410508157615690832310945565079157501723356753889580344457886965062483010034583407363699469148432169221025724015784008704720991672052689984527912520218051717291856547647195948579667723061065612545291643452716150159548648211743541082929507230689498850189509091646325282894031762987091928612996055179491785816108214419208206592773125291621079465007345867303449749275027450471692887846201020810274549337008839636755299387400337692389016371703176016452284714473145201610905552130281342691419274743178841194932829768630110789018795940747667489889738353805620739535170977192668297757270041320129620826980350133311247573471368834108180412194644277802340515398127821227714087867118880517310782342228112794438761150753943395419198302702634696124492681712443103452676296214354892066938450008283568211439818567570382494484707632697309050866301777442434440936935377602750462496186456863464040146488428691867939976198955977040271120921680961692559428356886956999280905486459129437260295812900538146026761530562355562763490883893847765847306971973616589645214601442023879989096922865436101642962718645822989369915184172629666679642164288441269343041327553856962455147461264835819028065600847301124879956555848800857525855375513437714412353424392417347290128408762491532462990197555148665835794552565365544511344621503034211213087080880619358502655692276107629337735075142250318471034101325370733881417384292278987257640944103495787697767462828216965204161655898210629306729141156568849864436756837604476090762823822447034897188046557761843087655424818894518977581986972821703619868744284684664760240129379162208987666176929657435730643357276922016053983693808174951141396695184040021859493503958287317440953091769088825497293159534660818739590917412319687577721599369762714931426999815758454412555216067176918761628998673069787618410388178255304896493781323423956474424226956267907298841881427531856891109230989217329266973683304653714591884376251264719239815659870303232706862130170716565394214891402004735546962934921045801035531297363465043942465199766805258248189961779257180057190261056227047225769278469587417008473214113127018529749737624505518095210090648977936481616611188775356580812373983273276003738561351947496957603889251928676314282441658103330262920468235048995342573212489362714130727331373304563178939922361345031681249619861211807553986335513253417946079659324607246944274500533482572580318443771594532467778386058131546383103924447862193608592428506980161585545115644816327219036207145145475519121210862651368848581969790438547355158185660400389541592828128753774033001831661095535796116177265096524818964830992721389113043133037395015801615730939488582874193708064454377317277283512200982359839203199845723450195093095244628914264713075928049537541885805674126169205453211152118006565880307726592017260617857535005030404170674542081942281647710166512882189612603379084169090791979610736956607614422618211700466266066734870724125311597047786296908474530885046509953894617183157060485834176242855471854873528312383998906823182426188766555025682258917282651745826724987271527659239916723812061578918222446336232223542416772034108532289688932021893094590372510747453521762335047976070117270869087530529996888670970127912284610577942976076387060389422262625429696690811290027904148004779772853238641716224078389216683602685407969093973456605775339365639271176773597030528696871846053757470661417257744791623308761246769241810496005067053358062353496650345749789990153253439462191800177776454784120083117119111275064161329656390492459177753816935758578496287976742143067192101652406587766401617074516299066529380376728298136292894742917255625029521392802457204353923126788022669051411391044850742721818004950149764838327460315497053648482163001753339291990776424782456261879125603733591816055864665051430307039196371108813921464140193494528320065914617451410623392978597304087614850916592280624456569128589121366554562254444054009606162147668579500095696344956980711034088950589561174392513644328530052132293531571143459202245819135087139814009548581968265155747046797036156426972211188731011462564122248033791774848754474678804461781526648576557800767912459460156142569076065928501617882473623929293426023021118556128180166705751056132871992870096210345563085700160845916246281400242124038874335701496069339826464302174821826012591831903524378114332370936195835612397109764377693459060591354665049668963676667112785744622829313121934805310263226128267953997211814396493035842190005962483834529137468618300462859441851851967798976662840513237635305467298004814687277302559390811448747452543918591095701795261843722885731061976697313810727637592182207487999069169003354641981138969100352530620100025110346146672322138573669680786536890649085323241299352217385457686420754415508632331813580210690185872795717498811531068985003681835574631957942933085131663788608237006858339693192263035808553642561897609944964084553499627984649600852825698175242947364257153727362296099997068010126259230305834652444247297777160627205631689357390365048342203473756409025462461179073371265065178109488403760179798274234376030051615534010584673210630972922937456868677410893341973775300472642809116454258252383036757100331450776563808025172444881992074011826727285564860455206490566958142042520039269704897776968202728016287527473392853857061163077761065391949984818327887381853580007953441516843511353235438539459760308766015861823992621111173392390857175472454683659340512235673971457403236010887292288390460843497388611937844104852327828197370993028857808502029735578332831869320662988708761225714316140004104524323959993788594883172686610581018140666568275535901892613377503662237492692681914801693696301160212479311568374888320887538512237014317675533181869277669471163798210804701599237121916587274313812103620698664496955923746393461738045224310893209480020009493260034866437294090525198856989321081327482191922268615559292452725088242270353737952391784238134110848149147979456441784788588763465462439949823138193850663457498394758957443742920114765035620841033123579403402924300721509126551067805743904984346234423759542478914511357665396379573267384440158476851541920160281283239839477933065610297289181171505693871909579966746410573250497669479852795148502825447174077284595680840019262574364774047466598993319600191597017456899598802973362111671989271293046898690164931270958483725660987812143218102267998990155327578123446172834853350599009694374186722647846653790629466168547801484120655649040817267164937838649996480420689978041361546033621376603573714051213399979057616958586879405755284585742757772224693127275729040196435754704905093578594913947421845913348495268196968787611089176640891554656345348392404335760156866289087482328897013072870117176686768780488925691926918653122134197995951937475633580124952458271621924336919201737057666505386550824279360186366826657852566432259160020120248635366639158490339311848537895262559244666805658749389095937321332659411047069126092762829920664437448473647348578961695811351907267090416397918190198896888283192595065634124218066238891493518507567780796069837792969352313317823717514218237563589212380332465406819328935369603143783141127497752899841676828357266822960058856320039056849298926793985987356170145949641240152220900722634839232068919139355168722302685524544084460247854172236006333380230024348253510673069715391846149170845414910074646987128069759517882148458269465247326339898962547120650604792166191709331965596145995415367957736658547749031041967233223307878955936890363370729325671116686439024986005694858561621055504270596588361292802061314068450459173603865206666261078346954943800127535373786994748171454393949520043577415827323384016034034587867019112204922228378400898824873815115245082066522474264658687501666792507022053939155377196282918757522795833222582673472465353119397594327779186431996684206314832608899395138105780411549978446533222701373418039446169409108272666929989699893311847618204548134888578324398018724787450216724831159962638385881924564034680908200757536835002440745016414720608090156672397065400697209870955601369422498092720592490944146449827856263424785078759979636706983096657896846718004259081764551393607267835069270714109596694121566405667783790345178002310807632553569182230372371662650924164377029521741501644937236973206702080115696976608780025733472118625497434252268391714063273196004979975446132258927307395033265855680803003859405525990854742227328085339761894696324048449098741742778674222046266397205308493598577704097375292824034320876232864527027113273584023580405390238053908753451048169656610917353599174460925094874226071863570766442117725972128222679543311454161028696388811203759507588828510613000811489998405234810961918144690639407145905223969384627505754895435144404842315716628901174521581588113370228986415032184287628421327532054105334718231065866609131977998565112601489239118293047717808668915887707642248896704131035977407904189770931796747178913448935845289950499131543826700414187003891312191911559171082573755546914092611364870330765009993384517452067005621746686900805130038518028304657498299634080643409253730419466237182210461228017938212776412076388652982026561329232982255918932050918596779434138102391978945529589006068215384540734632390927631916589615022983947779577350124090406356681291101272081930068754367618365498487493858679320117383046852481448466087601520581891776473044495869662472601178539448466551377343388240149987305948444367332867515872409565479561559032150485513118992508803103801683287845486278329573163945511357334369031843870111743132132388321579195400580149699571098647466056990879310975829655695840746227042367204025534655331342459743868179084789447607960214823962195429236032604518570742910557447800333157295657369660751671644913465383462482261121092832120798669646899595294186066749007042393577292049629409028248784874687309448168272907546948604470833922034453858969668072607597355011628456993183974405475897196581901841112402371971789291993033272105868689277502174978531310485774641517100270090867588195305243433882860283506395020805822678902096767368768603221248800390219379271613432779478849754136693129127056008414356230541731287819182496723070772367203222957738441682482456922016848658295343329886874031187778620880136522297991354138853245012558643707940240549171394194369675564235869827989573777752414944733422152397664860094756455292051615095498550223941258248940059010743909754339819006124146471112150413780088486330581084104640375127285669084092621644480687150201717346582794139110673882264596483544903871766560847629305827821597040994672861228037236754486172855006500496121639402355484738052213611255913577635868890273132797118707149475701549168224762390007617675603447245766529184539440063047920947680116119561665754418504651273834843621350570764729076606925722015879312867675843126388485338063414266476030767307925728786481251328815355021596573656610664214797734122242860313816426702476134766386107150473919256427605321064287333435303479711933795967545443162039189566123244720809849575039389594102153344282108804207191972856212672594462605838455012111484761456951831641035636293468608205150818620911213562764202423467090642071989971725239353040164661531508790075911546411849350298122516589618336781153719114339841354718828645595979232002538069925098775615923815806695555589931986272427304782671179052770695438028666897070813121083605805065333038833568225367208707575421970896044383666334932764584864952692955656539299555655008917711565335128416988420124522810398575432094403165898922657648430092691890664997231431732543703486634308265045584237825356168690559925287796718439266072379322561081668462981894179012496845783707716023031276890019277553666067861320455955432267752315850221987774667359598785272119913492645409405986424371954527108353019125043978644769793979178887983315455423248594707705087188126213828263182779820430665037613386078457859276937801859550382963839397369107561023544856404526025419419415528359915492689869873941973563018054261195058748546792614104673812928947455414751358471874495284152289064628246331135104759898236957265140993271855676497120400299729155417035436210236861604706929490558578190698471002595491383859617840701124405120621826155385853835140949747678988992699899059066278733105287065376128712192139760031980386399307123114899821198413507309795200533269764130721269885108707487224676003836170918181708691846165204405242304432747053792768112519831258750000719728809921925700878513077085118383318681668497523323534327542325269135453644155855572336270184960622827619131315650074502474013176710526838025581661037669514513961757223201283521712434881821255110766792503223060677186162464116875438721111691538621110093397455020616554152846348796627909837049957400073706505044350522476319479277285558320983669740965007462274978133451009892310216733485159597916595425099637607226245946359472968469201018911499751287696133581750761117881978820852731903381518582733254130221930724325882149246957931325904792966279235660229743022577927444584805808276429358899735938194547545353096854578622565165507681619726202132686292581210963516408975199940353934839851551020516800290475610905597986441023702876856668370118619261284951106007869091174907042318655541234103779732741445036769700296378446174535173411770456412053101750059136127689321134134384607109273081227934863503584678694588704545595031681664250232734122999018123289831950370111830368800734127295852455794394476316972609914495963200075219434651112149667878839529819145943221371097946771337259975278850542947898082031799394163640596048718020738562574654343704852272220460537386252901960974750191361548246137882354018658709636947535837644764234976534744700903294375513717213435329256504779566317227249118679257338577032792199812956790330930901952575398477671067555648611473904765178594698245855128601416063655118413503387030199676687488542590283345448548148895244175682579565540165202990797452644697050826883836011021673177581900800680332076429606706399518318977793946818263683846934205252372655305343197096202931568477594239408171974255732778795111599525629062018490975779879823369953105221053535777917578381805015445786005869769207290996725978174480657321670124992847242543006744547718729609111516557461240301020569012045235784605892799809490353175488065735139697429561819776071186282622923471835383045893186824653380865913281392559514483906580942225468334710684934422374983646397158962709773721006018321503930479284130254687398866115401606399632544533521531576714626417163036484075391753620411910854833474203006555072834566039133843803743564200892689848814210834065892874707408690017365375826692564459310980678305614861207044194856895912788593810852875648619126849144816449737578902670205985007696457658472031236830497150924386983408461609799185560878405961639901843367473078358540978591804882051992300397218873627557481424714876716141970673271329420617935647569996072056281768909295696276328845717298719927533360967484549178952012292379172434669559144228356710232865197743628940454842770461992076528694065227345423779968906906343978150810282789629232140963574373164791616800081366265495853070232075677719460439397030048757677231975981323763854912388748886296417885646484115502829758588621524582865984995697548970346258111201663831173879015958529905415173836660185561094518078648820264044565271600567594038856692771099649573593245179776807323807623936648530881959788801959393332331348043374812891759667987047862586517058822437114273399403791931620136167222099788370694944121403833745271309433113480533125932565242667797901408710113561958029566184176402791908762993652566196268039475271759547061488136182527570694450736566999196651614319147391221922816001584340839647534251516510710000256055463128765165011487898498025712485753498333232982797915893981684812821455159736912784817849884989745354371930706949022361590839310699795585543946477814941145203314126369981393919202012180695414827660571963874990950184613316768285116443284012986066860765652892469519044857615618197513277408021154351962712204794763463828963124562490637617043355321043068291411814913947904278425266324576499269460046213334317900540787158554906259340491035800622979274921236560108242207755740375786837922345455068525759008913537300652905131185959593205824318897250981142328674152948693407339527413784270279434739459710947071122227911121185758565641234670808434302880416160483098372352714317799580323779912055796232312396565586809993815297914847905634543579588489316906040127309078445408218997309006861936535189673468009831090221583478150682411921340902851428147271888621502022321251851721750083766181931391861634486529402351580241772123348731288561846264872234582546099365776508136251422847697927709591376343565232411911203213669821135291185949101620418100391653943896184631064626197344748806544098463745650189122018209240939613607427263347533241510437063115825185412435673857697290327518689115881422191347908069983118268450548539236567884854829333302838503704837356327076421611289579484140557661895607750051065335224368892881139494347939223795810026504663738092515927263297640266726473586328474218284210086760655203688806222217870557647657900485050304871574176874425767761923564165629201996788024092281834920824420530143495926441694228979018825527488427789057539335386477459719180018566638499321128410385872700026475716656692907940779818955260108702502079317058771633995472978996452181143242547624738041025529520792404682922487627871808880268325756100940734938641645272520774337386841915437664568590069400039816495327998652987767144063529980698917290945447339382540470325633946353222243456812162882180825951099777377746015364544330162251152993556249254954763442294408842667352507115177157052921764196174186116403175557012624889087404995725809749302643151512186103638501312387013217089213571208294313430088858159170236890873959859568656386854308598678152891274861600770393317132743965348141895712936731338613197698347913515417976192458449926522644808947492272952823206191825078359294697467838057181736594755003033272400493122873998315835981815802470847818369618709010124754754431727212065277833647119467068605392648692079919005401432040826108585774874199667229828813342268783694844375850337683879833118866798496078052541544879451450082733792903549377557664216680999687354615913937754275560323060299512851315631616122361951285700041221322431243303534885414056511991497946422885196921719903890503019665459791796704224012238843546535025881783874868185876206812615783702028213470142591217390003304195096035743183891846603747558844866846776072873428573811400204273150943664434098018087615576815902760942605317109097141232110898124923456842556075517548022482660421027007838770873848069444897296215670724282532849369625128715280299253081439201193814305723386064069437062387685550058275290205277809943819478336072533710062335103664832481917036073777554469468693105686886424436654515755365256491693494145289537242210717702792036719303024105905920798213666940788812304071206931203176236856896481861197627380863532516562057942636705171552691172403429437241679539419458765556170347938995627888309696890829173133978139902070716474905502497162707530632422577557671325432544433456366634152225002155178889098976764799587890485197434905725984666065933393858947145442113201102885100931743683326797639562498924021463169361978295634036420099598180504660310122056381745755779721694296781086869254697401797380096075083494754295867720344176336826540493636060619917522103169123231603393916259035464407022150496228522660561096426716583353512493392921088415153461199399046129393873551442875356530585165475996494102687100379973625427971147957420168340628852898776260624221875740979759215581499093231607968655251199254129170646313973659111113334612084647525306563756168152958058019271758493915117593291716078336151310665099586584773643152184897109263856383525649186230210933392864490732794712468873862066970569416341776177945152478621683626435848370034033198677160957378656079263983474607138845371387168701362634160323915231340691891589119345202035672048697900488593553712343112661675359402759212531189758015534386412803928739684507763107273298420266489894461311720454769254317852635318077456757149076396284834773675606000911345423185267574795279965994048613463801397528756841959112637038187904838204240023342378703818692052862325204491295690037614570385147841688164745846871594230731120565825445819096764802428560074473809027617274441163264473797511162335575172168254422163230870879321817288164871992221393519887480881762612101882610677682167293338300069877806948240024399369716998830595093120440378116007939064727507531636275689913409274961216839042705877617561908479962101390493629009497290075638293742345398563001023253394573293783488404273839669263090011770489224534655700451405566664131815029611313778993889855846819794721619819840184439721290207633161414624699482128434891694261049786898165082592129112061205118421112469757497876119005833460855056407493538525111546151603854604286139078578267508727246825801446292391308493977108028599814309572473680816005449583929599528532805350084516776984491437585139466064577919316022917625394663815247423789038280236034691430151547143009867383513746876552234680319659024589342744566024163927109040345752218072041681568853198955847256088287089542375615711916845397177204870127675466085650253710301549546451636732317400403159949909285375704769850865481267140487767291248159934147721386671259027869419655297170421871602307833257307412982993176065572757009907287154887981253255099139250090282219823891181248430286855030856270091455315803703939321817873446497697425717935135275904166128007372272625382421244629456383416142919170439763406236816065214301665837497266294955903826104664585531782670211166789787239811171142293434535684325441891496795012626177338534943232798237121758748556109492974656020513737859984518910097845120975067755098533796242159107136937203670356361243235705869604364585971377286871078761483947495007383983795172030425211081700157186789144850279410995029193479920256693735952559853544173371971693676355050852016856850997912268815856971779398107359191746382483157706979477062117013339888717290213272403764540742898157204158708133409465550604476726449160724408454338993753678192689535516679998904642815208088832948943326719263420230634975357748704029242504989753597649742643550629970120512759621400674680414879906232280135168393390266546959183948375670837604685347243742181499787641050899879879950704295824539214552752504938787494749284734357644595223553541351352125992970024390961365277140686148045119807372928535847358714867775692470587172309199447444399315451038720986900969547139497330313743982955428288467797283073807872093395672748558991884568618492253693973986524618598585148134491392040472941687375448678632795842048764248230446126072826578294422581041801982092329011302698206462093879228850188475758620092956982735053490896139158671888697325572266488122650823957503643212191571442625589607147041670409852453751046762674166784102405212515989935082068648012825457583351444994892026422847058231483371978821983412276861483709652398877426657587942430924786672702735380680226419225414264291813803532439011313398475732452314316743567866854957563930579696824677187323876506015431318578799968274036513870689549951927528271002088090059426088658660573594561011843739100011320311181383093039811555069438555980834290482573280568155052318062645123881749625511479562657676511381409470233033157765500223414849760764683167668415914267721860888482361658674279937594068867009382212261717556384023010244929332810202094180500689929020152368587802940580538633643340371211600134531702519937629983073831241523376888959232199731707277901472812589616613386050872131167807843367006045707912073560583340851983901465555073192365425448019756585106157474429234792144267251995772786821001925743114013203440368598958731371952877870439372003021614243321635623870805026787304134594843976465290211103617691353936810730312949112722566045846191793531530334142352024522319488501625224382746269718931804749328115649317279320806698559044727018041774304900227791930674087889883826752267055003693630101402761632288508263433673236000810129010451272035794218769614787151099876780051417162890500830948884501946699602536098896244964898978982837453152348308335272243903755860829613724189217319480073456483770171398913760235496175181047420464878560184114878090930244684830312133310896280115788185548668201711832599972543167551055498809382354986684467116899292555598852866863234773732406049311409321871581713668905229516373528273364882257839786639762511842720281647771963045671159878132125672037569597471803196550474502153852435867776852002923496662593605261717722662051580348069081012951889327950465207561516182007269077040724510413747503240453764999489296398632226895978812334607285331618429853105564766032807905534661726161791440656192569996629902078807487184136583624858256868826570219411217441737615009617365975404351914188066483322027006030694019658258059855400642608233618300071278310914809009905166393148055847500005461464589400575137131212796563790089072395208466383376799770194990492299608778571400766241173074501491750703136009690566699956926108963424655283683440098280637447877745394026392776456994720548126832602900818552453256146433286359790335952205281168928021767247445863044706011907240254938981793586700632902253893717252620451458467044848670115017364820528656798515004309873655622738746523783305172487033829781951879613240567932192773888359706480045016064882426065445618127129722485217050206774585375561741286474246547273374713914935351536831183306101611095463999990515953951472317306121179862899853959629899542467768463738121238197184794051226871228019920060928103436633857987680652851085905048701211266104175450768515255215650541591648124766238802402364798357063299147041629548135539921424237094291852919544652082892823780043753569714100632503992481207020431198859673856004813570900579988021833964774999623842331961623292935146950013159467528321649014813950682294536560902082397119161276913890269530120856305671696898984966955487280910329830397498827344900105475422852251828410406112347097161184802716473831489893431831852181816526242015951405776137431376278772847309551526226568441821946393850031915997658660148596606266217703079639670304721156783950185986743300951293150607370027927031755636486531378064740351158807043881738353420019916752588420440578307534570290001247469718604570753516655562772678510048427806293623491541007326644956451670025922661057019102990616014948043755040562704894249546622692532179965537327667421578243443365018936046788738100637204170080934410994734178416435809852173112539389918836704920169997929356223485826954707901606003076879787646239242497261146092162409890027335470156688962203986440433929858139342960579146175377869864534694776965446877399786891647203363247817120961438409788279673406050696205916046974010584653828969366998860523312632197982198254137512270516221241259578962909952370880852727717531652050399987589363558488599745311210893548014669342645521566254863873021045570383989296149921721208347646074253932763728556942190242515520518666400391060586914410569503728986180103832859015588826317109705281930157310808798618536211437723027623983903922144879027818258094379959723113723001562878797211251378695929686918605977267311798037601121073363506914724360432781634425643628545182552410878261370498823223226970676805094246536755798916716630993372318361425878402858495462002563829316870524102341009032828222841107438102898664947055098422995946898912635501373155961578822411446548131224518884977923590321039754060884877325348033111665846766154547990514350040930433403637512066948270586920183339895359536748080793426267722090574202293794186019737869548237738886882173134517451053065345869243230666049792425412904918542519054191294784656081449008735446831093552975678150713349945052086443021513019182037255369633491414459750047626642306899944691953697603172869897772557146621047891219615897038638762665275881670570952699076415952081611668031831983680045487599415798981699983489020599664677120870096929533831018000579700615588331550180493507668257482699143918158952194030100881574372678502452948397854088465510067120305144412217265902721099213662782294700344927619195258946993393492760132665847799852059682866095309111902981037722895514135669716639246309653171673515831394469297814828909581191900272491302844559032090890007736442040406904142407654979993434834768550246476483115835437445403682780214567693170677343969001697191768739321047775472006469154050650985451825050734605645979456862391569869254029601156293776881807289449754844502127253627234542946218529435481722528268753379121297435802660974599633589090199677440135853929774672736989478287085992153051851105600906466063098743052121606731526180277964444098103005684208051362191450033906263022551184204845279206125306508777032405563218142984452855474663380400299722706158543039853932477302489539903053637828898081332684421433170821270417524586898200372462569053940406125687140498790557019033138397681888840979564888611603557083739203738944879994824236635637123693890151159657034025180397276585573004046852587304310300249984305323238989589592569095433602210007580610771502841947724704031431806163304784868728740709898015320232233230841080480739805484652409155837684535526438499623953782393043046243771078715503159711913274799366483602892783125837605859396640774332658393667624397368604582193372807398402418350526205120828439899110964398409075574206522745043725267468929360122774119915761249217061999630849444000639277292341933953401535157672231200851195697063115743591217764395795845270756670522629663852967056286386083730256880862821286727057965944410541132795995793034796256493610356923842571270497631082220539679490062687550787381763531311855798036786275077837023305881396479618597822245663378986937796272416020648497096935492873508992064258424981212504487298751759764731491680252886439878819922466415715082828250304629116707808685604042234947632115772695256353532446644538839504996545971446962563229856877577061533943253667474579939237488319737826106907170524270807653922484073697211005553212212850512853378787624660640703432207778359014911599929451226995817644803028393805876746257999397415322314653465731368205429162392836360728923443337074722055228780091515330848936910806220332559094786152480886401734979504025015743532394201311949942691037890052566227628539998024187340121632066685633423812591574292759735471598050849885883334554562269881856086537702134667873536460581354061385456024729506079639745263539365123841912582047687283239330983573144237737535304082745762552851265080185690803020165533456563516245339111610860132381026420169031383987935087875707398550584920533661588402702405480374346925191732362968604828776215667928082702518873801208641199210522156278933484044454692874673754817132510057455244874178492814178480394614672866494056359363806522954654835736824321425608376480798630312804330022068452554855441807927321738847771883379971543145430521086849939553169156489309180159214618573005315668400856290502305602975731850585917181978526028613824300689503258957259319520399015626359116256553777252911055475139925196818198337688782731931499633287820430260916272037320264875653339354198320770696588191649661784403635326394448315472632029087635162736341992097376321939436967359318463208329919362623952509958318998880257602076182220743977125802886017068725399265807453816007493868530029373469623183546541798104315746866149807425039846682488431581390956902078871166055500133630131430818684644288931982575987854468640660380811981314652147342659305772614136559179059214527418742211441348115789435926169260040529731505294061278430423950070834249511639166381436019103201577586202309422473874744396984619274794532855863366861179008536067068315073294478815340107657471046500266366984384029893079661395341651441005946967673985246578504076998163813499807388011574777441347529595840879559856657184520910869871663393147958309437027398754960128596199037515246396534841798029592322145790948684411902640886711653060038323166162032473943866341726567939629967245467153435355485413612937185216579368862665296326756827634074957582968541257229867557802684814374046238143785001245915783794987996480263315929493480140906668486916999842228131203967403289085571408024096867856708531987191220379102431921439444919822534290443259928244724565917292943113557895790970743877838115592517567598949377884170129397239222392056320754943340094531836875075902762094313447670183145036704646992774485192702394729601419634001744203412012586599396425575084918479879585812602927859830077134468600845749318504737257911114081485140907854796433084461493675969682014998987589759640418974844092141215340969548551502937157161934227700956048169875588788668493160551267678488594619836617432083872060244192435528672249176614406192130125595673719955003736312963842823649429948638512538146401303481816730043521146349145026803470609010091679401842886067766117338345194105086166848590825952374421963983823744674219447556889559910048903303117814138286028079015105444554577036353239573273787968241735501233839313775361534225088466003447930625491028041989782804039500226420053461407929801252766449287392827813987344202462811851588770092165285239579410490288373351420168634952076366844227782193133620330862226530998636254566220668187911277687281549375135577575888121946546515707312679412348824840286842800082819872159128111860078953006932319000008888551689242606088900568664576028369839550791941623285924983147649051254364694004267108620609556666679272812201374917226324830938680578849254236499608615579923268505189620294945233031918233583518754057881386125944050553274346234520470144996283344443173799344955606803917641891096142099981604949780310309390808980548288767971331761582466538484842127988826722543227253413523363301774491791236602251036398720141082279073243176548526333131635426063990231305869893596091611784632206235515516157802344470487663680158090211082470592114883497822348894209988033730278876752051054664679856094056446495473327432003057783034508196518321038540387888995259362281121931870898829387811224198922729450796270490414847796797948741701153265428902239769812722205181787415999684006131977357884834722139483846903719990751569270300688111027534682343851078418038348697622508650381128583529794306761008898048788526074640968280836248077601963895203514896416901283544830155525652197983934785049279794179422950125274244715612684503758796371532424914975566540117139909738879619152624656010927981531496497673625495165214136326787469286467343463470608493195250162970230215744616064646524233058917535244626786675671656757675416225180756987340613412773015109882876871894675856041598768431099434711894425271090216042774340595315064806525425669837109896306670982035384292079633740341347692473456321948561376006391043473438666213480581481620652930218491131267056099941149861613107262270097448717420188121641456785973226212356700101100074638322070810201092070948788235896246498063769767768127610344678874083933905417567108606812438845223072528945318740514692852950610671875942312789662267600232308217287117738135061724674763017412511695970747414432955984562489138535902946689696764570124656514994421421430596279594239670130126853887750774062641408150208182034666540290422580538903857642159719115920697811860117114987438469220139252532952072253970678770089253915832094737894389218918231184190453792015410422034020680767059278874994529913818189254660073597091994366348103174395138952657545453579431804780041024337361054505344564628615120821605725522000116196283180032936032033530972360212967431234233560059841803402221951591194074583527343954233314319382215506498931125307469932060035589298452181466079189834304299648475701241062481739972049014565516823099649680391318662432184466532714189472340702227808004572463964437766214570621095074536166662195827687326243058388124876103978656383346551908968680878000637491517692614827625174242434424136193480818889495096627621490966242348895710659640295493894198458107983017753945431663745090502186714128674329726567865095360716033901099549493575194076876578590494442723555197533952968291153702906811952467658682930442276659807449969196423222708345007448700939830909371004321040014714406345098553784069381988092298136520654205927991638121120838810205277716163261984610922670698859397165840556852633894009838323733876529601588157534567323740997977455006161869946844875087031373800364115443654896382304027550234238219485930809398849195108049658344860966632838808311417881936502450754190579831635804505081511231976551920774159125776742034435726218856381322789589085087429910585282499003254002078659590615907238985453362854130464633086000162092331508559735733445322903622521591373112882687397959854229910526909703541377765197716892946537778026886325202288914226899917867507107153451933248419707527202136401182063202912232155616116442433844254993407247930540077331096519432610939681528271123579625165276923179041997673359456131273700128585160134865637038349516801025547648515721423914326869715458421851459716177009273264666947627212498709523461252029060691245861345057799657250247978372118332459541645887413002254253415756218200660890420233072053056625496143114817523969365315792330363903591638793026047453223477140658246783308531791415919163812818032561838863641773520806701253025718892109760229457464341690695160902897591096172447145855988338389965895510587432380736667770698858717586006464373247035352602637202359623951633637430323477920129373863195057978524454789224629686672027304677930463147205291219376162091846702463242185619127923836285881726300478067138185410724833294541143636052701105292030920394721607664778059084715546313680507972329094303181431690555909273115413489075669750278687677589869035089809183496366739972984474249927784714325412285514036390515788743060988550681268220176591474413079975116406720386735928783085977357075076101779160180607332642747258519756760871160474650926023159905704821306915800129411970482402064252740952752493356372893507336983447845820828118769427055961610088567339454668647291937238052500871990251360761923428823537111462710108670217280631130566344455276233204143373377211504288641985907613234807319237515084923310266572177578606735531564646455111496425860977941792463408053133795572710104411832361812777291603139555455480644879028535075790328267172158945459246299952689250667767021684793174598985737990199491066522587803936179159807493153637778065165605310952799422747116281504057875818229099595763908004228716621363892009568578451728494452422110986569934959258160666989580886285381178937977534399431469364815460971582737244455529830082304943643258707527352429388106503611109935509667564673289953301485891694689569816816100122832822278529573751941872758925080884738863055358348737033492575270672179518897716219830386416514631815424476753048221465789530068500658654796642246824445508165310849351259709445159220080740599597907088213566969956250707880384769469045740199099502773655720131404893393112479612004538527321925610376469272363255213931238127341527564975599996535026506960829337537137455819734450645502504762755542186836995023728101869718365595190617558674212383996938387177893896162832725355905716255053865378197855848244939818368647761130393973390105479651391477106091243598189640308597282663161477416618310293308700567693780875514386606140376070045353655935170058244079224714046278962098216382486865740524745970334034269172438992775824893573491483303406831545940010191208551159973917718594366376719816724532335032244025554443911989795671392778899117111209265363922894583922206673190382405920300701830112404959729991296875759362056508953457321178540755014051360005839572021670351482860440992718376493488014561724974119979174732670529938092755967688281324846209909601734973190649788925319253081155198239372372830689119892004391747349413491678828970829092022299318107922729060037160766340649422985660791691088613746422174702917769405705668333829449312178854956267020030293669769002126504020309104291931685790756595147495203524705758917934553400251816472046806300153935534222314157839340329429984287685214463119016998024681955248906477725000575069131188774599989020365555821813966911825989923656320852073772793235774315989266180462737135236564185389759112669207802674909241992656260589507135440627300764915099167624877288108042985648253606230782317510353893791109215785609261794390527878915898832738581008021442082030924598540622077684660073068378097993307281472082718500004874679794212390503190489428855947053514788158531730686388874761789880984169745737773928657851367159274404581359637042955899921962137853827775289088973181805887994486389146564915772849794527851492653644255050968501202468731465270036168168003529188842107827654748399226938322947673377639039123044671691259867834253562611121897387624115333542887579152541893832179952339210101049971400544450693973881446596363883941134096357346671897176037276766064182816874537465548202964728884621052023224564913732880132100009579632715161203210312063084068015686411273663658374907818617070727575871204903779771738661835990547769765564958045873586479221646750206475605804998642196821831016336022635456946282206088721014446420839493813803811239692431442476202981776052679196115427940564529887812591626828092632231284506395237420974626226476557831532641776059220876757818359543839505058300153101783747346566457168604101783286611087622769575079428190931912110920887666338880097452692659405765340178865663348279899904638675304816921859232714512933939199647500213786724545466030578205258798467159095615583852758998357262876332712046452913054497084197652871215426109308738460989355509584677850930583727665283391402699466276445135044405398741353518417949201324925301695766749069573044442069255316725721052913521233343386937739174187726715186897748013257685621441760322393782649665215678859418845903557290840198193544766516480985409462594385404762436457623343616961807979193007083919500392764175888140436205097936953437834615968121080573082489605874232881941564343046982060667005616789814962941814920360654190751041216144465888957345547239250793204067111099070972295270237107611861217695902847220745305303586625700022332908596598501962733224683854836243238558651502145338265652202261321860452497219966682950583022102303221037880197912536480012601865790512204753951903685748738675948203216019069505313735358028880766791806099056220288219118508703594915886431920322323443888182995656701190925210093413764681298717900994660349806392029465518253389295208423549361103663979199245196737140105839622577258491001180192240860528681559307365347697542313400279228712426388807875111125556333873515619329931503841922964075711093462305057009878460971300887750076207583226496684779851873734821495484662630264761596225609884946893348212671419711626287171871785147950640490236059029275439441337549950292503615587413598920719411094929178535672346750005862119850108669317599469478994382942654680664284889185369065072494614271714100750770438140370158122222009344678927177004631671417104746467191745148687144131745809694701018128182751011895659543668663035401315358520102394718692086020576548536389313463522797200287581416399139208975564766915175943242537364706175106201574537823816786287240451248740006719886964579194316709929744364428755375731865347581369704794602456683475226686077913948819901800459042582035809285568065401687843624433853017565676546661405891113358615900339656984115321336686763404522263021488557031641511474854948298976996518792196360258444588205235551290648884513572706034704081181177398719697902009508146644542548666075260928088144364277945687715282000817036702895676376487323817198193685429755441670095836142661012809148337144142620744934134649338968988726879814434778749889287976659863109866175176123888195671122163391118338119972466522516225251445840244098143939390766682627228811592004593732182051931980162185223127488964197241483765049958781693369841014231872932208823958782186352673929478725551603552518704246661227374041469447424334736927601446543239755615144168575180243041141357481136308456419000680033313863871842655659087438026382550132982986532652947146293109259883568125055413476636787383500523681021099186687736773147210240937702734309039324527224269056832702125096010879734883263259618378767761916592602595602803921540694632102617301116479041576023827460545946146102518667137051909542290534698247019717532489200348259676775978457254516898600579196448818615206469414629402666149533651670917115175664094099088728843108636179602083007342687027178822204213066115539643725233330189698955209619559524516841388348148458624752474538355583737329747847186782131196699542813211224990619649493091308368022867598063172986618764425272638739217398310951666070819739523410199032064276305343571693587745745297582656852999152983126074021193016115536680194997406418953531565568244443667154616640700742553969318420926552171259136156476331731085460290824744798180510305228034437079497621051449597122801680856176807130803273519391196664850318725013936104314485825324497787137918107903398836963735485130664792180232590306163688408487673870419962454192959791261811119553108396497004536170697683967211538900512269955250919711262705080721433784482903678986567445912142684152232090893733580429858394678430849965776746666875871168650741035710425581722875170513929884566095005030598719617039154952276339320243202275242748397021365333111018926609328502639354151189341300267530660703664757438667687121228029335098577523767511714575925864687493559881451511302224435699660894635384611439718764379431442655604278816830631219186047816466914198050794494447223565184281465488187969122478699855491832029478295694368977443581016472681454092288364357074444930448065233037200890619569991829693258162389385120172359933754909737547892300194127323578084318572778157578720161088695915249416287941447582059361631037869131315041118283845199770624295875635358876045379976515489438123976712124162616412875209852767131446975498316948323777239684166399381286128040370883244245141509908378013016144619305260175697018816550469963222440203833138121950364572629613646542048952420656420054090898194769460952579302303924184695430495518578469821395821349863649471481593804091685204063681349814309204969215526071625002267814278101146591633251955194432153289160273141834839485512701351650721286236681147425336909405413074334539511744821762805148779387390007039562284161564079053965680657451762744853607987340382445270014686027196256546507418680474108377208405643165829910432747764234561611042317316948427142527586479857574859878671239116266767675634551557145477353426189140764292402397722037795607418467428640819854069817871266925513153398500726631721786129434105998617343595375394209120033960849127359186121999747920634873343375129585408462711844869195059460327959764837171571627024019706763294591865992621060513546760021066770168550094872234979992752072470861920727635036744375584619549651821451537697511547819227693941456541450112632574157506128622812677706270825761528619233474027031544042352683482988092467395428547428309677890857203719631788071210833241078156966815544989904348789425759078998557081806904675720768506873242017125110106935686597540924302606737069754731516739165590611077879130060334130704114912318534501344540283481732458256808725199688375810160024323467214903237412549459165246908480473147949046678214654739560198917680324358606282020965447807272404788095813279873825225480498706794576878230755617190433955538716624403475149718766478840925526391112839864015884889120747298337516060692002454455579630236461957861511966997328845935204279451803338446803727393788614512976660902078710751637282088978302088055305627556219662782361731991276522001869899168507685214933895618341298204824751862691293303473538360577615118387532577028430688590004583223334857854566494417514271613940489303556235800949253024119539637003656880068999291508499148865989071942132885905492498032210166280070046004031498529937778958609551568976715484395386333288134650860257866271109939776602978327796823796810688715281589157256846014275491308375506286403850131254361900235634671787259023053672424302328903308672851395777323813961026494760459416058360323942174619140811391136104390337871722839746717742998246839035114943419352850286303635493715978204993228841850708098633299109588945450521047500408897838224031142457272334051503639957730237400365080399723763707942109026907457786254290590272861187721767639849961155660488468680408308918017401480641436131994631678240123409143906451707078951602347597074138706120135903747539138337387927259893173431861209384189442288206218640473108376565620146797556928921367245216275375443636493397974646400702307272017769714520641193014723913926815416870113215618436601884965142200457679065017306269780934113660199912395567170993776779044388295779177255340736617735791706139124135293582833411992243599351638775143256370300955722092542651578504414628030725520292511794567685495192558141162705519032587203679304899810291499425571598192259453117385857842307704193188543426919362607456087487706035568241920456504192372980989817158886931420835102933772335681053372196866166629564065457513707893665727044611818790404358556160069723944911517637126957379809900263305672268682502631059992320310836477011282993436758860367236879517978110648748741579446239826390829763909860786025371025241910707510969759118173635844646621037554974910769789870222090245989612017537310071577717006630974008119116585960046604859473766979548063222553086313355711885124588547648415193621505649752970866334980788215346978974504027291040653093538330512199444823065818335545222996004267133733231956640694138704129899247235706465563219365076020063758665719483752776695503098457567802372374306846463992804509982638941372665334009793228089722710238368386672731300566702763272333875555826781365312314403551009397135637182372697615117954162491647840778469751803333299734953410830907748012695461345208558079957460367134725993408779005643538449423204789160433360887364767564622537991412073896448610370721788608330231383011529485474340935071156632288055858168303675351491756280823576071534830502290825787871024812285487456344020419058527014034567351204516090842713990970126136266495188879869538611387794371385058025610328594832896319700813632885380531906822883163537101379414296361638272241827620917429021890115568353772411946694786440419537522327758617157197028573430375797628469614748575378998946388469764169460341291886876517776117565798797607248082449599580750000826232781551191790626372497492757307259870488907316544571717795164093579931947756148479928745262238805745336170324620229970483490195626009617729300343885217721638467343893558767089067280034618434935671969983706579747823516032225108114376852856536795540032129408204849621698548742950844736391445231534239894245504920980177204968934505482391386840326625743144645096290287382926578403532721252067208086626130422962390251777541579602074547115926162305335426603499535520832549540238003994797201341274657568025654454212356585312255563308867453057955475061625342411188026951954467735520057067936050925728457772864744582998883928487980793547638955029711335365326037866855136489424226879640318913518496241210804060946145076630371547282670923952307301092571052122559459082354333691247543706317759581702803302852756541118219534008109559153617063997345176815553817543464241411708821095919356666820915827667192476798202722961614615234028631417348749682959767707991255403971722474851960359398246954002101400229988101912406373822263548538786485456294486118051788417986417309648062358676850247114387871539405604986673563517493971721616198906150461676857243853951892664489412025311096345230853331388848463787827787449458092420999492142284625996464141931971772210166884018434472406519684888258320478487678568723217292880068644398814019304086779204156965345533383290921300256745092608120603254749289435753565958814408291716894975726691571274862356169512864505330368185865538565125602691886286262364183506581591833997587537322278204894181105554669301170354915592006381077149576540734607424618428145365247399336123676963037811033604602045382327665011407752066229210145238947413454188716811576148311878087395209846945279009467809808497408477986677066292757537926256838874178781600635811136543887301818040580655376276431735706172891949055178172436218172081623397419614362793244520665344286348237462877787858004423017118460570724672664785136452531197021978600570378525616349822861304083473425074055312915478394340393782166002739722622266916890638952639962402483566414164382916601153862629934444630352177443195404488180710735410075542601017209358899293666232782810329920010354950912939058127156176999836558842306693933800735994532528930563349226200792033152051728022590832553455067945481303263076846949744415601949633627368386081046657883512336405872178646601306463057111344931166400459934946990559286433775596751989563381338998671888488672154766222810768111028175343279642652107595948530574893160827825905666607531169009400364674697967011066569404794952101662458722209138443716472476007109113670220785022990470022331184885388861547803011436498530970618228165420050061845043782983465836250986711373145507305776767515560929272619692645758833463892519034410943847538910569436644530099929212257282772755074935314373638221222320933913850102517551492418663219457513162616908667877553698383503535585039194925958229684943485674140375263122375498896683709376573559867700140386536079818291130286972612530610339072558054994577927650384828058569983659175550419514420719750474127030528373617221808302307751209819992419270475512354563374244252205901010805927266649176761554865950436713434936509685549422224973391795954008767687513478608165267408590420341186067972754015182843273152639282966442966450471701805994221624485127602694960933512310821027006321107933473656317421830061523632228932396878478454943779304053379465010179014373250931825283172595182137354642690786303705198684926733190694854616788610373382165685040529910706162570234522207271401715648037395896497813023771358372067240866885283089649923736493980288167732301265893727761436405741289365053701995120385522834574787216505453301298128673467363259665659180257898628336934894042770532573888246904331319950918907931048605529414583195895692270500291864597419169876610167240341438516898833480599224452338720612519213748787403669672583055745017767500528875732999044893590564837416332502236510778837330988312401371025757458841116356051140859610569083052351674514138000856221831904815841779644506267907211132981780478183706296996536061994851325417438165655036378176621157087897185593913409628934111123881178856161126699444564921097215288580786880788521159773586451871413632623661821722172804074232103408527395311349858518183362697725638925615674584391191727150153945703318769516853689052921308889918462281889021149322528538369729841518689770614069616462706860406008749673611342734963066015146026461102926643323705259697299989089152084470581974101092190118529151515970299244911300485555514563619862620561605603133594187267410789391057047078792091960160714452814574415643069799382062202799253417016481157533916770888636284974658764683347290152552124885675259207674873287449746118289496235627262110864539491265342581161741074990048471575047763698937527057302955237732767207314509381170935813925134727540588071639778810852948716705583437147915011939092279999660591921869249788102646952299662279081536573010197921498796163407749494668045970850950733032447696724939155605568194635942154686550705911689816624847673047155793552379365120600847797312879014760730227239417865832439800947964862510428020527762528022176110988525119770486900790875998437169683800424330122240474801574004540920412691806897675600410246238097089830331954018602060822253617331368593995263100026677190302568368593174259231774686448867823718212953769161382330656632473455988462002077308770691293779133663020391851043010077037178988541728031200685931853636078649413415922444687132292826310345278329902069722768432896335169251580842546162830392705532513682865357392435879390580997912457979979206399479289869563774686668800662683514057562456061182167953994856462978108337309523263945443518389275941113545543098310479492955505239747023374732549316116358123576441239088467573451471118581291505363453557819923028029284003146585480679585709249736292705928639291811732863586766418080057794801585988414106818649865386005574518562947777124671753614914267032362251925384247872999643028362104563459004345570609696698533043863661673434634443823131183688478458697724578067561344603477155281776740977841892436459896573079069963262649542473058568187254564462083341261517227745355810466102154719235093380608756858324995691295158191354191053895086547164861845386198510273515892115447122590931910885259743419161261278117795444650694452480414500365778829218362407354426428911649259438292268221350612945364375887134308812957372089663896095918982626660576421330400998904226307483718395268457245738804137785607383214187018266364408348024625414274171513945011291042829851065420003162921536777718647310518087657235124715244439322836125185308669570640289213643830751627660917342164184163324365337036327949412672204870878058119611320151546274817457758627652177926796887277804790517158123539739097435539540946054222979662484076605903808103465578236710673128192104998407531702643068396923630572241428479752328719520616303183578755800739262670197686851543275405274734489819550291529201666625695219236295341822339705173229992375510724493077292500656255113084989512850142046129767616192107798435392827968947024326090696409143767397340623900949980868180003897381098073440031476958289788759619055993220989273683399724130296776343692764066876937073490956730817474647941880519772815189084984474347734436423833603588755842230235105381316116239451240761082788818935293435090212619630914216523924875308566319336593977735027141221136717872411415026813897462723345064811368852499890810718332766176510920265156373029377064853720966519129502871902086166162689319730780239653639662413257356212453537253688413160877690921374688338497832225992100921499141628333354742171005998923133053139077863933163537730528426693961187655407893763953193251581611331151770640652116488330969328366945789202990215692713785377715588314034662387005054299879592319074116091033159029973263876017189268933496154278451076612148564048703983396056833637164538946093081620039962452506962190307791598608313659383259290377384930084529718648525735874363256181387282052914650574867329357493712169494558567512237199648713648269738740214950532461647437148622618126214929162003507400351036408662152391177344736321658254550825227941934843156851143986664475793292313788528384573452398958939203551175509902826722426774018778428312384439951998927924498314255619414018708043892105517623591562311939917411733042464047324420139641963824339546665820377723911912054505056610485669111965244949335095531574426583958733805006005228510371157318014187720238727352392183268946827699418152177611416320192285862085221892731403646748559836418519786664975897268445763288931906120219483734820602297466279880213221027112357726771680645381117855967572917711437008316148577764613551173023301268623201511176351668486579974056000015937797572901824056367764417992869683743242932874178070929859092698705049562536899329286938631809300424456807961246542896786034644778276767533348487117442035063501814027455352082580719268552588761298566744979695576186147013840012239347123012800114620861792508008490328666649882307908946217593483606552994051238605509359680472781039765520936895362000611280940352157792718354953627654150365617312206855469851993283680600879814260732939448426494578443748782275524584451093907552846099697982027828356784706827273733626694430604851907436474047468196240550408814877593350131341713211364506696233096055836992675805045356701189437300901723535736462759443556631556303333462574135559924797825259175471084062171734619269841277353004229408610843927194427686832524522712581190547866835359681345277795881994975275949770416171259497121030680522655467739594913689446497405993745640186799658209871967629704786361376336384004201090971222897280804380818729411803649990495858765034626430254469621398555958551291724416703840343447097187821667554923705337418148522737660565498312273456072114684028862363437451733299740539363978863770304999704554354900211784825832678401640934460932159781503264584943987837242041154732481267931286611964545765446322574294904470132026590254966062660273716449940901092493457958814554494276231874721667748184297867420617639934423688682786055407584297054288621342752291977745153600152067311485157687940691908234410011581255402937491324000032747566432039405872616094204127880822064150345408609237715527697032422727330403451106172899100266802286676756096514631603196294961189797745589832326292944781737575681591477172059727177396076145024716495656109806515784198678366953445052558158438737364464429414850488672261508996385433969493113976118156635383983677285768982846024555756725058623215214864788075047181927166713625214871084186548418908267728479479216538279941715964128066001585816159800890772845723228845116780862105034218941499003201455161581337700932016363672456730897003470613776672034348338392752432578826331991600856199922488081795100040492721890623019825803370749173674556523433263940261132962970397277343676509534294137579299617112926049671924749561175545868158932903594103564645790467221968908202808894093257083437883030638076329974701215609459066812835154906916401557205761861912122592843934588931102740172753475951447792419258103175297647293092088658340587081156708356719803519981772832152947433762507265628029435293547537788635550067840599507465394452678160746508775721349591260589837433640559524887516825874880187392981198542067005184802370510215184403059770321963598881027392828722128326743192972850910412179861899929336262028421340457767632220422264362948149652151986351266676737663852591617162079134433976266027200051286637415796720726144644338066760341995182781872191891194982449069058122802393555990226261832046741545981414723738568986020329479546321822697007540596092568262862695864592266834958342779338868045356425570074739721164939409198361794222169006607701865457738727513882269513800497599713788313204994417247178889739981588788325777181377311380453982780686256140323436109401212377344971581182293963457206062854698462608968147840960431174567978735055086751204545603111166663480623788250941887300272138313042014531745669965718548125984002595507577949438832164715445619864634671132344292926672048913978812109456547036245787923414372026593580931632841531508885623582264220095946540718672232256318753975983933157851603034371514913472291442330151612704401404202722618158397051401402249105086268555570422085765965186648861827171828790614742446600100517227525044182750878767669458792888376238347565346579027244058026911231722579415172513196329182785808372186154788971161854862094802615452982460638732117973326580328194867142798612406388691111440226773167604212391964491017619453842151334144772176550816507350299416289014462095086567193166994983693070688192039541362603491991974300127235943136664607258854670965710042888373191050628377828228322076923776226423898039665202530105284934431307297912584581296652003059231700220324400938037711003787327776930120842756465552406852540759211737647064855001380012334469657062430376286987936459966178229225462859566678162409065818696002644818497657318637428636605816737171625834917407031177140008420006356177869772178141805478028726051863190738628585637288499833833291147804401941721877623038395139561376346191603587672174998292165940170678963095742861385823054691537040901649085038383966849878479182950774143472499892319316657019735488823470504658380057690923672808487811988226958604073900187751279269612588529961956816184350182025258925380890137077229077589765503777295521961432590388053956844275569678759881878661103190399407304294264240429324934601440214604976284505191185446301346146245905982460727810608325873279940502876735844517985327061220298718016972087609722266187544883044940957330110639496509882399956191493577090694917879120816120753956184602664475851479995276134569482270817000834167331488677902975238482826056811900642268481653467695881803231010927888432195508807138914398690485945344005138701615444114034016806452905763647828398496341831015825277409250112924179850244139247278879027293090074749771102062291732857307789850609828365721972489044241273525962046645344891343183754488884088991327983582637884046418603913086747080876506987299354321785819307105849967816898396267532275679380189971928423607895047643666876217223507684400440119437298202215076377164496603039598691978333097275656261227553261012064119703064556604116102334599031058177503612957064458991024813960813025970469500431456536469463602537680472055389001367446677695966863478572561737467015681210960415238373858290267282142610867709532450302448141363716573653536916336698891390655700871307909741141533524998502879468197682416663866574588728073532421669881362777125261212828896466313268308364638248528548026211503698584822303998351119770843308439058906783731349671522575597795835506726968087048613124497503031556865930529368770640199431816716103943826211431034947836327034888014022917036793769565080255105584045100603244727279627988242802208996116104704539610484734466572913775708762348327880990485090213508527341711725664199290259426318301660939723446413739937651328267422595405851318721995142426498288889753875817493935050390509235739967370116517164774430352058890929752329712081568933893096288875394000862257459991753491886469707104073877581716026734375484166608765077517245908015223225313115386788388729376577032234972349441067921451116266432964831925762719700076457706880549289169763847308200520660284416141987198101030320568401585762214833204882826882712249202941172651357215033755058781217371249643230277264351124822434739942043325046245745045627004112412678640588132511707755965542642667451353443682076908912677479274667498476867303718259372334251316384993181377169749454383407302387458101658909424995954760536714475579711258395864794964190736107281166770453119713533705218429481809532132749466835890068568278215605038031939384568256925744105693903096403803307623168486728037508299657014203914260800985890877119384219062415849302232684787674771208825600478067045511664267046863536680474424302002416508423105672372894522817784707673532580523682747273079475440980391292809169946668872543934889770301077589086797752719143488517153559549335278803025262887910972976792234932386464424408467883388425299972340930432493276816543565867473935772096283084525106187875874047528358338194890183228681339756539697300865488022411992250189311600406527588556287253422739387717743829232508156383363924149560216361189103710074247155693291424684535092958926567178326905954448981807597584087761708914699227037835608459925235189953121676817423970091012155691176834743361159271611186931474998657990618450336484524368676162575660834375569935360720522690694763422422770940594339800967515682790494267369718808404303036176172373110513629412345469044307993462815042368911868225645373352976088173413712399128091955803513184019794460053503909086929074028573430638238589800853108775998569489358396511689694326285246944012175234532790251924811063317762104407011799944927945232843890717597344905781548612764181990557528786594574169882703394589020006717894265536308256486618684909683319376312325466867996112168782151501441343975546659549975648972752411095337772035840946032005904050286291145159246248085019001696142471202011162318611990552370363855106190596562574325565803853294508319411760693115585234990490507734456072323444225952161044357023071132437172220423345298712584075189509649517509349904662330024760990809064118197788731157271496978297848469393909107486997872677382680628334700583458545892098534544357485341586372303005107933986645108438203731579882539442896206880756153884675239100887693506843530460877130153227751519742305224866696319927485764393441263908739727128168372824515506590063030120116284179196854663342747839216283039296473554736296556013721631393424834681125228228771973766400713761499561806576331474778645813379708717084906735433449743826888163859459061509723061605291458365562420322689764148121628117677196783787944511884891623042449878638554390220071835220027225587613486424002141225785752963776171892634788443589263061988585364409523136466090625034694918886273670884286866245884633137290971401690613327637480976491133629241774235967711981942405080806143671287047791376020162995965459778952975054612266685454017026312207697642501012862264397075230184031038741029590907431387192969465811862463958615281534004236623020773771871790175373720479283795272222351427572557607109489333781636914977060317261556908589186811838733519484815779164592801105032797813868932417080245781889276537796218543953672685262236075708859592248866327270781808277865082476577919982291292845965885126995514286613390449297544355297152531599876191748045312045919314021275067623716363132600604102655625480181077156245877523216120705415096703386967035713278934197019226108316833727974186493699863295576837237619200341981262750588846540436421037423368323966137973873617404678201286411604644237338217403456358447022788374916807659098361482298717007707513958842157803724458394225500406200959477436635083536997598852424904688117309237339271428002442093580677061485393736655342576814455899076066652408459737068038123555284021371808872746156399738880187391211497876649135531679924817580381981697066769747719551283892935959929034290017019143412069934792294912099328783840833999678895693110606030859656839390904582160688748642937702153475460849173522401643632947629430436700585944452148497011865080935707573401780767419666725135771109927869669717339778836763052460959826098627550088515969447577674916444750919693439628325009532941910403716820952157526641507513800348431994983940799446547316745999414358327118966413472506049088463100898038785126414377478561763412542332780215648756036169684330406436332616968545760049460522428108259620770135252566377454173967459600322892666328987883139886150717023042926935213373595422428056161259368001773255183643831232880915868566088405858406785188435701592577655718220052671902828966463200908233209504926696052910619009785285394420913919770581319756782581318290659820189983678756150138734069690289735986540610845347351362499604724107032513540342067265286457873885715368473074958882847577548525227000016985608851493417785461933743079767856749173974375677589155562480220783241586749317338216558387170260312855910976818522338552207821520879326281080871153858195095602514716243497257531801918513473894595815171064022463201707396630578027313797812962186593249938465431007783545128587488186060149000602084937821729071884973006020077000585774471633388038207331948303302648322221333141580197176422183822102124401821945622795975122837894820381809259657561431304038231331246960928694295832816099746801733790713233984497341768851328895704545984067007655009268878416975166409649901732210633594147722288298170829785331602775836654024561208941903449472293018131023655238643987143291263367057727130258516940725587379044705735176357241567966040303951117166850146878437596005810244418727703779127274667410506061323134811667214955346061670241038769034800960000587997574410553331314549725137435116955226344027345630097795530939413815304309211410078264280116081137563339142842940794373459190241414891669916117764262795652238348828781921699635019103271155087146561460664984319947310607624952765254056719441468419774078554138564924524714493123463167651050195640605841840429568234849673712944587429151026918313677896811724851642406173013891721705224841997377898753192576012746174488261719858987751203389706242213425331457904736692047541747391679146662071417593368101011422685750874272380620126159763535871438119535441189143429993264234143908705513339774958370112841737181577799771983922871081041428038236908049155843309505118488407659035444220673343630683044216421024805307251155717702768882396574442718084669624951700449349495154982255578548899015673967573870377019749413534041133774917136138430274031113260195154189178920356178848480725672375175671125777700884374555793921443266254860217749401520184346935257317712060733960646564539810717209719685220417339004816302510477456911362981182770957903191540710845675501146671740266411386416743756853630098175603312236731628981550151293829213387513131841243767926213390140765639850072324262048899287848304746939949372193636216850881402843360013324136112273453746088731184768395976611557999986015736425157755756366103558267902435610060754741147896793622010348108912105424929656652742088157038600561569252597686521099331666386674703991606066307325890645575430529229813083057506087573264307006439022333997197900365570482607834808213235519560939577764946821303857512397582660405344512566150971743933776631734183711141670143755270032042645872610493886042594293847927790518238662119803774032961759292075712658872178533165239241805050495482336263664625820942829158257420217254520994314344066298439932437670180024140377237858725648702763747131006203700408878981484384637493219481284417128953648656409590832074204458288409079668522176833799465607037582015112873886139277387449945223215983176327016135143779688488953109006860366844128626203682548951559866518120495803600648419167356944702687359462720314536642914714205526364923922959016704695429527633247439718717454422246139167396851665183765201025921957029248032365294529368736931432155872358619292558777949105438864960813968032876810344814750729029588634049172225178198859506178841257483160641792240858011617473132655857043281642149465014026173940532730571393295752298350614942406800265800625942934993272777626307151927994804581020897579412710925655253103883875114760928914311314781493077580424783687039070045962309511423223027638184861154931849759445185603977595398508445145348681558350988453124740415346589910018348790250905343680330518335437614390220425613593078174434876317875410887682232928987413031293197083717270413105080892210370338416941347759427008185257469458303322340976685400044602208913600508434692805682772466919875546324995616783131269483713839242217203186816873413879815535594199434978328389652786056737266230272234711465279288294062589360683312005664680145844412308174535079097467567001072721811482586442850788568071090073546021089277027673728483389979893232134155359936698465750532173986325590794826897836561142433989066688261429903911797506541926848263521617770770878731157804248864613955805640871668520412451039568804951547365496279480871472093038122118106187010141346271098115584807546627505043285021714389312755421246446090882454688856298036994317633447871588529061915396153061184906514189300709904265425909783992485946781917959280224548203479812622795910431428431361049322007686467657031668970590901754945185707626779405271521727928208758780472940276600658554243403791603691777806253537492507390031451629339302650646600364322871220595075568261687091141651732333474141810206002517552665316923538334706466629837188089404516700563758546480190100163972092239798082228914572913236823373763614886376169369140901954094763306854179151640368368167564711810057660672284265585962885005816968377989168483415330336033206475013916966110297044421315397832594304936478444849616971057578276100778050499789539320432702208683195406397808380192963477736631107033815247079486762027368223322337043253924533221827042222984859393955722031645900680646732503760302196552704388095627401200588251166475609905428107214987198304475698063609179010643040907633804791832002432351348663296299602046674259046488929725854156073882623548717818930590108317954183144164187799882466487099200537634098406609101712884227286340249492617325580205077078330369850051638628302548442461092950030829030190821247020596646572723897158733521222402603925330857184462688690398474927562369352790337278784506409838518865758553408744329007414564893609739522904642248555879296897591058021802217401158614884853328627268634954208711496683654400986371096129851361922212414232774682152478824238611655948100124327388366773841787918893501696856507141304762793603765325122293847190541273820956424320936283551559452194022779357953116950692748347336137374241696583383838121934676418048506219505577777259756705787366286670890952527220869443999649696304226148386179090048800736106083955522684911641872906125940927246260398644647061117790890093317696987677304084244068899955482088185781906360998944643129739564538221167281131172525607535991254974670145619059731128008260087906713582234586935603975203479859775618062637407860431094935578177725498128717740894904548785298312710216581278175594509362286571647676785316329401152265666500684816139838170145417697827655252757266388500819525152220475424255885864596802458288350687799026686209544791899875961815204378321009975800178779358818482162596650716878416580046513087790267385222912170887290950728120314982871255655077769182805190203699969653185130984584954813048253441229060583061653726392117202778819584403676407611234625342749709488823802474297370086796909800564254517402346115694300413241531863751224236408185366905988583724518916153080303444463282110053404966767996121864444660689198707773127427796879659943992344549215139764366065290479054593462444722430539512395228030244642210508635405239817864743791375215279143660775141462721660402269304822712602461963147909838970253371732942481103876284661628071533887845810486938724698892519833483838929674396848982701881513069397450195396851333485306327797931316707574441819156647985345164043581432632626424700381145676559297304846251797557758652774963347185478144080252912224308599415421600799050828184716574561213359535020388032099042912595510037296966932882898405469050368545751787011988795141346872182374466605150934050660430245845354125519949053007691222853753604329352672785451077612781735855207838628028361970568617103766354373391347321466115426365657124742485375730019380068214195190818943467876822932666710711726842261531012999701903833101499678117817378564502986296857029512271666922874486738505844832351619317781095379939952006510169380658706679515419836037681742958298262644196077385510964871247069957574131011201971909539057504257673845282391812714428758182576724385179245995746996467733190782197284583473867743169023176007529035481869919193971060683883937324453358980693988460650904545845397354590493533065034801143398773218309045407806701971386091215718678883409086412271610054225238574196949287541108552649516144885113655545785260806264061622337201847582324944283922684136558687724711489501871426797841583867871527945789170677026881967141866931660666430516195968911867199737550301917017633798076926874696687144096748842563959085356370022137716484420608259280980073915191607121609800158107981338728461523590658337074213058593102303193111156272828726304796643370327857297637035093589473185100331828566118168212013950866765939317290051854885370672381695434654731141168981513353719138130925779232962077790074563465797352213814518151086999425831269979794490909820591981375570959197438212104641931989188772038751870538133347166864172138447494899500040171072329368113985702553293059627921375560060011054612015361591793032616002911957744150000618662496033313210450351953466360492091351924116234918805239515090016487887610809043968643980262953195535863811543819482772079921494250050122982146759130286354734276334410702569431604931962693369134603656094248352822978580316786500656169386116081596754403599950168575579510483217581352798405097590448909050640944555325123313353500425998308346102886626419469793633301084670254453854177727959921976252504000417856644699400763648940288969419702930930349028982349181556493016763041077207733705772061318574275750081404437396234605335211611095858325671435801923968210716196444725344352688476776823678526965693628124179805686020434087318577593675944764764730358804347564306758994642725285005424730688228527260305097509258620473510629923078437450318576454685108228728189543428592141244474106318633581272381861788773797130022133801948354353654169190171168216907387184262039009271651599061337421153033894651715252414077600812237479336122811490972432951139734466693240599303276912203311275055799607371605846963876775276187982297861723975768014237193397023534722289939448482466566652962280035423321853786277368288562790114260371874478488901977140738862629433152764468328358760890466998097035368931205659900171155966268496685657420967753002369335755138282386568779884574407799495672975007446354977747087304652625642081126533621425687008351242386049168787432532580904173775907559892139815707213475508837041207672177880747256165170448281969744508622635461713216822251500397235278481428457399505533767065971291356579698648798364072865713939106723521589995550820225288710493348374728668633503776619114783865167983850422251181878971852870445110315916473288522778895423114566999467695705023452450039909729070823600265890586156943799557125891203245749644077117643906283084292417549874671997081124078864845291677479212098207101463643152134338159439316158655093045482795727931311583310272048334376933880074320734583002800700629040231786619054572684275609005588470699583228025730060057735779929881129434358893899671374292842984005968431533801637226880337596380289223899712033283025866416727000161056910013549051987115986239938621851211308502946776551450875583218226768323388249638171994226304923509669621516315453520197192062940026522696708968387543199689900135720522962971926457784704344961709081455871972121661440226057111300041219405146262909623756297095869005194994801003575814259756731215121982082417769024815692285553305516456142210407602547187468153417149858311322532483869359794284243971697425650483907801669945115860762467636495066229281945539301012552456639456553686011295316519657843714104255921760616789688239626873795415184670475604928578362815013870795882535852799742796712388872927608279963507707147223583906426965163531974020298669238946890628830169870190044430523465787606035208678525717101998938770843681928375353383279275525948729075558298210865179686250618134662642719365850517910250404847447795977748098220092038856459651293247887235621722474805680145419674245605452623323274548174710004788421682518346127377212981212427851020337906874464262455460082267266873150263461048008657319419517905718008391814681609124855653386131142449916926053188999694507971525325015668656654327477849592322211267100545347553380410465077191702236410230967227921155622342185506176866375530898180386759687223370066261667872977727718494956076269429053335312765843277250616720241633047806588227021796687128589519829164720830146412975797071310949273010232405259568216676187208809715917162005978152316346659514105641590051967167199569448648641438986821401605625098287450474586623608789019637339290653863463245971337412311624927848733656226774353460347631887428243797077932888365791979551452202538345922511053328819998107539241829648287217863970026756085738998584010265034163488167150664674619976783529600144022431642930697934756276431244184236791368772174299190813135327740823570927731412973341989689976124814873269175491981816663110772934043292402612195409886680147863219970719309551549800602241940708569120437865475956844218409312405270649915728236719565100538258283867123198804570312606214793997274724167415900644315104418728007050031178655268393470248690163577397148132280391577192212427904867382247050893533442627078362965348735048144645434636552861270808477898829228050083670692685625553403943365245892424442391282219550189986243076227746348232561338698942650371801093067991836140387350046470290435665528086113553617499998330630162731127718193361009173738437779091542349972312486503771597497123033469360554296433825702692730793616439322031380647729745332461140954799301628143375499745255937032708649647438235766453572530713625983614883388011031294878610149634733500565036771004190085564806161036913706490058392252056780374552232574924760631743455384472557775691557354561531662534404251033188579071842307077645235483265710963055955385554773913239929651160411909478300921016173742678376712608230613715769963506509172673830601837568604127395203425530750259215083628420221192299924077104613152211614376958013801351226995428472346688579473887925559036829432950091616132815418522085270112482613876611725863738336653293616082258703252163720425526196350658611135501410558193834643703398008455948741322439097793158827155045412730025023335470323092824324727540174925901696208093627576037885621378438691498316228987985333767533606724224723696369771725490652778285007885265131952992707542942566980505651024869558842597030592855889631825203500035871419431190199647971139942478789978498069820531074078397740622816618703294994286198967483942094554492359209830428462928667125932275576035032148279230005391193077444183800952721258532671596484941222065852846951891186943948150993202830654992941150711846907699630163639516842286447577048720245587161660617994104059859274478646365372941564614813752887389048141698470044893814500949257280958604660171441694986625503715384162380627008311479271725610997585170115370982499308987667516557813947226819660878055890488956193530323152913686921433842689695141154647902079070069726646860332672745141018662318669154240947537652695733632863824254633569693759110760603804630716170824910390602525655937459392172673283881140099383830019436964280922502440490698517956794672142776666153312957690691044024592408906170617527562943025378386849760011961429148878406176029511687613709968161529408856370842331266036358829792087703004785473435869994174980244093784421460578448400073737921900434846651329362670083653561839402435752157771560285332161719742055461867571090004301323338886854092641677726986263508334843892465425816457274866237944512811836230329947417890325088305857120925336392009625249813874485459761228107872507325965885213346504141155201770791207724943248760021005206079604104480535502902525365879540931912239198311959805290483958196255797747969545424408297193964183079632486422722673078987718473304956791023866555971026036199204583659975003622287652488263830683399724804308256404746374289571780518239652655706827498830008918474087198057315975737854302008712539898224396152624169539783882918508162448226861741599923240900658774481278229874647475383039851449740022277660876848105853320844475247908224831451685476553777006688980814077973921754736151391196616253606051644892088913958009892462507496994035200839745449779618667044229714895624121367877463897863561624347988552103038183217656536920503866756347553729061183576223857167352901061096061343946989849025599036543104442493949652364765902571646939510547714743228262772764460790217732329867299165816527358367020107174913388765264894195569990849310265325280497446271602763053789286621854272979014030426863081693186966234977631822192937963661952555921106469075463159501796500414680306918606002411662873597743095044426093514039788683054173510736568141047356207639221986634791848299836452405988919056718396117961624951044547990055314568731861172229663502882377045994673239838181692320816055810387909863889080694441892860151499268058616027767857867385708196890007461634805869471106841053692106874219361091737385325840274416341389832975662606022477571754207391465122256143089307090496895104237076908383037374616331031268764420121389770358153727566398172909821604802528936725925489991203140616931276075779781064766241638825421985412779679711806508950615435589400230214419409948166203283128431382160634471154370153924060374495306453561021843509800302001786254169284831502387833749861176373027855954929400314940382177174705827453790769770884269855435073112885094806067543363617937688881244164786553491053990701571548638791195742069930516221338050162110656623046701842202633802906932546916584499305946846794554030000548753079054617160692457843512216738712455812634130267468748027903727940501260212650853142940268528558715223166158124852492915517129986989738476062582918143946189003755759462918291398492299811883125080767627594542968615817790646181669116114446031291941499851029102924919578660468799395783301959188465001335584783510484499347725551176883422803194489955866009485372228844916961149146632493019965198210019388973244456200395634984689568799655459893011492142711936320889045421727580332242008062530233951000997765600966115237218669958093986836540943924937379747800504723493256963890262949074372753699995346387566075341660731880571008325695545372867473922218835289445406117082010145461104727349211085307646614827020879364171992300691487193890725126995926051977207532848451756313333244718691417992239008393129789214986857105424672763966959174270901941677992870552678825897573503710441255089748384010753286830925282387969180494782312455201578591034922348882195165725992229023868398701854483835392678306984351209753986901908217650190645520507681275297530902618681293743909560605548900199041981209491439395339042992133600261577869965975850158250719725018951589271727817232130085225642285334657070425577357432238551844805408973590542368412063235742512514257513587904181420132558860931603158129588492261775605532565520799527142696489705905740691262006974322549806245668533167973206310328217417331432124738966321189115209290790586951421896981882860876750174540234558510657500332041711397194311131850522902969935884266779781437332599556800007134785415846775810936244300378515633569622823476256707391463534973477660757383786125208813697768447965181542919704363110853763092262185848422813111428771228751853936699116916945060324972323579314269346393090910341077833903500622592777926271596116427712877007755704242712255621865254583182881802130113522411102523492639820718440426873673745374516410206770707451747133797565345629858776682772724375231539549690583936640586370615365263353690693828747382995007057184907450231903387448806089798213864600528580441065614150344152552045592911486755340345268666624750640922169220916568289904552168444634573711291976410398379268121110032137271271750585335825581994489719158518532186583412410607643728335472450790040415868236145149883336894142578394660051230440726835718739449983797887272958962691471523349107324873881696507991469200016667102339668446816350328535628973578342718332094897944966584814916076618336530223377173026248976040457819415233690867351201460283178061801036271679769057559501565546322599780588283279011749358699427146622072871868270537557064843620634468575792675445192376425066821078718924405910407552563068375693599226518088155510950758100298573372329516498659903562434720315109710014243113397710077358461328160084096845906310252562572205646706846235169441541155097001722805792799505022147519496438970807458125504251120671121995948875957428014098402129385826766967349930899073896641623137174861467092080813321686715854268821458684836297307765805834164893406392969250383082452132161365161972131646096729092583026282631904542409002907429586123217210479062973602495893627791639650581178216246508734481972291511284223453068915946496113991160007334537581027464556428413935672740251196697846575279588574798228031672978969301182411364363636550867417342499128893644000549924032024510181993080441154918001226901653650764015667798732407796186735027100554073838884055545884991664512358115268883449609948205736881712140742574026983952838508065248185039606553216790038481007402532137451298448020886427016832890088190057570944332219215101312257825027939947151155229070694209680933164840225093590303319235435598318499566244207896808310943327364132836316119951592543431448520106547547030242025851101683456181076959101505291135960909088068104373113422012449577966038401369879735795071471176008590543904960841638645422250218835125324387654906130042336539943201694457648639520631164866782270998687279255198777074991132646479803757493557350177201986679415297475096735830243031464629953221836251088770479979270945405892159586630710092578155461872265547247890600798103218543584575321294827251545127086007567776362885870630333690021683086835575197805415922387639713303026024212554827058906159551014608067960654550215922217687137426947444039454976183597216917886156015790522969713046867127980074147054458188269107918927512537865212803936355059098429810785481477046929978420014201538139416676215053049821144320508280329348335530025787522789759054799548336960711932702884333582776376352677756468226303696837429940844002032302367175821445247880574423210278185986857342149719426425413787064295196840404645651812152695807502401790483034271142450238880195417352037030846085676136742297128913607526379689394066333014281821313892101550551843923755088694778089457878365200502902045023944250156199962707252625599296945607290647693361334610659802177124735611580678269619215295250025363094030943695315297906102188262188815694915078097335376085702875897667695774598965413696661366056418273076994966632004521655504805072722136876542639875880861309533147433010951973158385816338331157769196800099235244747182561414670156919660022072191550734671265229514904586094826267357914470874344817676021395062479803585042005135210962997708100271370237981705565302374405848231188681097515888991629056983334284674893975473491295986343824723423439712238717894788467026799672073676447813682949988510956347787792108592425121919463232284128055795605180993696623098677316870823988323568989875067297755826682745100463134377598832387637713612068242977241742870959889413552739266311802164828675109562413376128947684554035929682200129678517628668928788862273855855519198104219818296762690372413864365301563280261864828581082631316290416251552216774183926443098753807601567170992087763896897193353735142176115302154170488055858984566882104625795126979943449555921781193967464940867842872603904956818232895030830980070839724007954775957071411061338622624746971752337656598666562472312130614795035211023512326001126352282973698082456337011868567015873484213922457922500594378935841034781064694064254669974388931749654068157446847501307536212938539545015428945800187520897271584413381882204892928460329217735817320016658634544247963996782119971351827803836949569465150387261663925966366993874660887597289422889690000913290665419130765015151921016163288460171986592405249566702057404936084861963386066902104657408561835530409637224608202724465668340722326238776155176570107963920523801389687314869477185514791534096858495637949636607985123423898098938847160823105007898213230318191424981514257511281263190021175013014836296822722811660059097296952991044081903303644644447264229766293642091787365046128347483626037084186857012511705874583345265978610946498454742629872586713002158861950043311595502827111934155322347180986067886077824559033412863074440805925211406881450069406451189535533711110135853423749105845716360266891445377278226597338506883568467240836225227285847262185080971385652989194644477947768929145648775457026026967820673486577135846915626882172756716587383327199710288549231047508348321717006662385280692204076752953137107732455278143178311547085690885723117021770299030572333673130102326204244531981320999752868735106157546937937082144403321521571110330568606309950056967654528205818442034812896775271342934189613082007600675149639668262642890897131627250691379328088104683244208757010664013959890506029806117465962600019416534222845909456957958226133057777442533401063287175744324894705057348551030948149743072623848784357578576836173037556721971213657985007737606772376283616001146979053088866755006957913149028813382947536814621328479436622780932035893561897768013004993625028180871313103637904746157836870671297178886750392251292265087848032813738445280625878311222328150392886488491235036882341424247511227303038786054421103208635599738362099365021930285493710972156528574119116731302701177574355283161861513403733056124410177029011714093693681391386176046736571799302435130727811197091631121522232880708685209419833493213181071552241626998040706474285752761408082578675362707234076882173909152146324583253447938260555924415440864740807273251624796464509750222647576664400612247954858441228193249322288887624676595122305922412391240844638981556254742273787457091746734878884074043209582786566531336758391764790011404030051830245625018791652069778318065457810340280092555186497963394614716125502534103191324423023460957798583351665926633143171319810070292945882532500207262537078010512005384728752413940609763564068310847793437069680371897232050092935891238582920542115386872042480428016758346465438309799312799571355481189651641862906285969204936355530264467359813196838306943328870562301139922133750617304140040085690899320900405809360365840913797309654065985444889375831342610349239936453435523364169250565996498182212924831200801688182548274551843696767983879529050970112971398984985803466224308419921973541724451798189183598894786711286039772847099122146013226655451343764357519145886098153824959921467791022509015657404084789021057598919421182874334492028699703765666855046305286826720647162234282182152795009737426140551186592421539984387611006724970515729836789468820361747034262514182642261361986515787169861126492548019451017490658670253278009735469651997473862767061584447287360558942182110885521960565108750864841770656813719933881517565836594606394814080917713656212322062799012893205449180344956176525399462594520197748705431877046996174748388970369615758036620770532102640380441515397586675465827246213030227903555386474984615188513742571694320863845140085127096200210071142083708859182665946415353935668720242128982501912242228667612370016004288559093333306608026137535975063988010359890232401458139290505365356399938269699399903825535205811153036799692134851361057756858526364913430075162127812833266569066768258228721122068987661045059875918199356246250778981329573242903695708024515576971653203021019548259738371802219864866475846984173485143584763015671529175066670657732605737850170092229049955825589378407054557716889952600077691278996415668575619488736853678306586651879325630329547976412237459512287009413215793106565758385527458503044039353276448393439335166822909326098413395557950335655035037429021069802749501860172088329546339602149274721879854856138471549570413285392312896535926603531338710885851349721682580423618855829484313485071802440358531297070467482876584183816224379230831633868405664773621670093003981985033130592932844530510158802697361643980876394231562667488225634873867075245656919442325884072887796411140236233387774801479562401085150582266883449836520719662493461320236310994824284946360572688915496836478157205684553633140900554352470600226670506598146365126302480249077476772567654315364863182903626583856780890592408196855554864629169176104380368183441942274788753287968001653773975310117836670299927364091889695091526255897995854867970636667103167080813222888037203289221154662143645379077229641804599958955256574215839196816444402144718417611175824597935568817460240349642702919909865697082168846661170798172998781826094489518962081271951977383419204093281851505447873941889628537182893385203813712955572185328690193343731827534130312941103298250844428496316375294988836895855456291067929186383440045325739213839219205785324021773567059301783181812187593816221381059049343671524546135635972107636356907016829216702876775722734466246693986267124374224520806805194781072807412879328046817577632396575329471976808651012417438968909554659983061284118683455012265304500041949737725018945296997620673824182893240891535651772240154881935067214216572301683297176530206580419823238033558043425811660033674213938991722794644011634280175416095500375541893262180367159885970903730248901237843060947303102088208110034904425734378022583055403455960243286477497029663398524925295380384962697806447540869816123400321385103832563176755976497584971813649908555607882369374603080094312600912099971697098404096549642981313352859289265267055750685406391233565648081766631505740257183520728714885914706368545887362150828279215852249595651341108355379354096898099071583046929126943926895998499045119461520919205522645500087990590861393454014142950275895976759507680426968613869905136928878542689864777387282613695817218025488332329874184154579228059610066948098101639624633872504641281570644941239921454617478281197537889958953387585192753114553984748231503501051181548398933270125765979723532215301930248152800621924365159413165277971953078199839438231846324392751663188234047882747088658706552151919934210357251172243646041776746994408127366678710443863193448791332425593391351316131764192265404539884347024629480461610820169675127176640022703984198487885426020456912587797838757718873635961696325621912608316225012981677779667874016271518861795922229828280990808756652242099825875891509016550767259090698920776016937394161541091513226848902805073980343700458570989625549982884946234737728013770658654577186790506319711096005700261292264922568647412502031368956373090167872185288202983095403671526662837180044200885480176959330026322936087881167722485501791614170336918263833937631255863747297727306468478513947804693074299811705203280220431773353264750786827480943936704731438821854889188983831808833503159534692670406552628580413058629655526381958106421385147625131195957459004397249783992914373402578145882185548118196317613283921004913774268532043526530318451397183160460449928580894588734477715382844118258535149333220114665517063129659103923624678121462922003123468638515119595372718330126613650134094789549396719269580191387537302513460614710756224295904032213485943758615870543462837505552159208271132908184271169001126511386804079112882740063269359722769684706617869921154778932946796336004179168430945485646994296124400026590002994950676611997309979456616658354754923302370133167295083715392108215393183126894155922762383901581742423114205253227116080739991022231367884623302170179026406016250160451613313657936948254336513991329680592824452934954672795117455818432335815563545360240318767584199489677478265131798184384890158168721397420548994765346415979455758334949790486868132915630929353997989846357054031558816931502253252814389586542993506445863108367993841914780856485203074461834944241347867901328088369456839523563621288616445037131985604768812489845665002477695965931913053114288842290545561152559139827395149193824989722263888009797072986240725840385413488806184559249899481553491145984326967812614385822259098956712444172660320645351024245619025106941733429471294319715657929617761285766035837606961955302783383413199786730152810447312086781438477433330759064469761963234064104567944050321671172376743160659089947542078628577979692849672157974984533652286445318773022984938761976273525616116572982758630382782915382577657510231278716781650716796595142819024007668953041814633078709284725991693198678267081017512954754229552244378330260672808048571964013783299541832584641650514304208501588836115896603849110170688438710633840233645297601379537051262262273037219064097951257707130864552183817306267116678431381016246865503798686291158785537648696167007496694987673102890368190075231800995296037482022373034498830346660363681295980835261037344685963609300746032305332842369104493402176137503846363825699416471942898007778885455551814713015392632401391780547105624816192835308990603572411483504533354686778617676897301315963329095110276628276571773173088723841960203199856453160763160159686097304380970883262261866962115406533797256814978479140620274017845139332852596202905059912656860843456937292855451255999790683725657359101544868083083009847670161719931778831349566465015628861579755329032577784112901800698713417177239913694784859288912010861062045838253616428563984855025595016657468634082391821509494832373428658363446749645671008960868371433345133514361566638733027622117242678625794761388942041229838020757785396658436286300566406120438130677327145584450321404613363931610341646948275208643895299430773969144291700158657886497940301024445457414301659333558130444504789973934368052545293326724359074145092931952008769802540202080948132572656130575224340622912333561535679716964084279472678408307672404362877331751109058526048486121912749715479841515778674360722990497806000311975731595734656380824149510374033585963055765718983655398502129771994494219831365756530379960161607538402623750101549642945873727480925317196029965077275353366958206544247831882937078506441560392166814073195968030028414224603317708617828927996505362590518154729245398504338708621551733571408466099796149788297567040948484088850529058406928322847627438590460530142716612427596611484472920543455061823192396783025231138368997124535223422166192314725081784215987619525357326396282547347073908025875440933790994128975936265002297530412266356764943849955606815835354313995724789070755483673074950923162395808018482971278325214805667007547362864498738563001514644527144344890917788582617002848144012633145796157442401785992419604605252166149064675937595565197353370438946662963825091599146180826761565874972462351239641112651395665112641139338102765120631664265916683757645665560213492274578703441193858104360481712926605495706320279313614958561378021021254223722656654504107076736254987347652587124425973841410457089016394952126707932564251896457848759374540516420922909626845945045394855613398191627817873699859734618645568846250790260599161162118623160028382642312545169372833129328014590144319775855789511507933836165617820180790786103261415383093548142425634183974865104311462228063232370033673955623595465499424755034940647978374863239942470364746887124182943149571563270261039559878015202982388586428471669157334199701054331124714395107853463657662490880674221561773259578197701159334763977953832280825458729664678422878648118996711909257396051087549435784143843294540637962291648635673996568896456783143876578450440003202134470328359853030940750445327056643533996926528746148101876078649706222933266328738445401795766954947711635312953766779964926566936775469138565851959972171396250474798659744726614142659269758931196310669476642227263953097696301374255887726636584553414570792969440320934125763013745635858400922973840866071892112632179294893299618308237833552377988439522269122474263685137326759275789416198209529727785238373739728139653549577260556939749538627702381169493048672280317010998465055978870912819865172288917691966004722636525992351762518385560414033450333744709114566865528620005452484230654004204583424476913891310996348309086528788280527806535349583092588215479932557769059092088503138629593413467956935258470428034852996676300948984386514004887834707251338076286419309342943787788385225024247440469796087049049717248793619719334954260852674775414042700955091899383817864585144141733336995714791955987462408259631186141123681983702628457349687458359317196084337580259260382269689721195466983093009629259356378300501089621650279518752730624372079763244537291650576042879261426545367815785941826590567459056580794238790962741648369316806548544220106819679739708329264578030373999050308796495660104503553517585821035663463423801921769618065766012285420828383384773598774310570184467162953098656301010009973217195749899875703794558014482129380264460868270841322820078578401304854237954165182469519952927654193673814124819831561030110901063791983673650677504120380184180481105095555062675235043431126617516459090691368158843639097485599853188641693069272173276975378578751049328645073297250885955464459433606445724217897289023658611263189113250857356811719920599286954647700093447100263118818595664659467352849992071015336151897856886356142078245953737686317229523442945270465488506542464165414683239461521494268105144075949895400521357324521087817057911868450379228246863713114916957062073283100243970209097321200730339519650481748373302153377807226821577863100637744976322195341987347330133814781782495197325275046128913654547063246933354772939952360383189385265398090378372951694656347732145879730777385797237945277455600200512017424463699402653743534747007097374941554904315282144718344795732494413227167700124587900784126358200677428026532385148586104778952739984041373166092841319118415587661723056404633622362556627722097781688046119606262145123196145658349782924818595249202079811288389084650176778258752977852090213095192897079580709211101780799127505348373526747655174718564386725872759404880311206984074119737535152150949091966593043757980505291679784868762073818562629881220569519827611549216510194702587516761626951346393395145146824024502654257714012356512550245667842828681621652334514690076633556275240890092371084063376296022153226430916092490016330724430143417559665566211266345688867259336665286435176048890858132128313391163648483316390396054875547568071689194537283064539431777617352047269810864634543366552449424991006155219147254610660194083432110744899712712384372298611239036630243184537750214318268504712802701876183322895034476208283403473605141059353768982973570796904011824895374039374893708467379921496793602145646139651574847385595190013615469946054099894584182714966508326321936491065568318709889599087763110227370174331121785094820023358674061184818053104256617796710583747556288341018563779346558108649194942176708256040979975090084251911594422199669812063028295075603953051778359472053067298319053455861664660971874944114703048098757691035742127200910097564021089634295830116530035310960329841507302330121962793548217424671021419229351395223339286666038866695113486281003993765778146472985432673662556214999316364203153501820274013950204473213064591625771725510159720084421077396957385093496778591614472163831480385428079212329253332170539447768038277971610644737018841350313450001278999537237457120177804024631217995533639069304221869204244895012472257805084625070205434403000747593729672357553182023775437619682471729730782533620287426830915598962400671060069712884721134366970042257649391349685659409063420098773280605248805036348222150809893984103677869332890604448604171420448149316753004906295699996141579222972620406674898986415565081893409103956814353021213231439983142270893833792529296786720977975469734518654686681992763595396471051347195910966224610251191010654989738343850225320485858234265274113655173057027255514825560229420588267991526554544394997185661023890641330273263786689371247289984233825563478134038111894258583922044693343799111943608646434919317935149191596345948524143562287793360156157939532080884357628678186114212243334962899902924474819617357212113230431690341483638521930264904783501667217508650290640174203031684727930235704733367854103392401659290950461557572108817590367062189892908648529407598667347783019761395893609946532832804842807038750434577566753344135746672534951091734875350942612825265088990606642106516322892987921307329378311211108464394903523802862661904809495155638299228660789934633594277277006531383227476781428788037528265378660958975162727123550773648405487750957908544402465036245357198136732955818200216033092526223628473640411988657878606236606563018797068610600277735653710613953779806435262111550448856834636447727931663511395473343692063651800464385397852569618309924041785317697011674557849117459347222348871903665881371570391635458344439083058428581116551608878735604845008135396908988950913164718315237315997754612797207616647584772166664333582392214935087788096630043366971196925412599978936315021896735882585862527025788187616136840633647587560244492963830113158113857521017176136506562695591122370875302027123235907606352964447618777532163550593979394105772921313048602435489461912969101472648161262897787767314069551019803866905349220718739516870598204513091104605117018179846086653977397722887649546563293731829683697450657034759317619526335649668265112266106420968681961130322889177885368113036506269152822939903632532751052892115483881814451171743542136094831105368359328334362255936260787585144678668116511296698369017668319927341215932358005487223416330004890299729566262100487472438663938542354022596350026297731196483682587030699673408992466859273195045097200065970267347736721334941709524175634736146351902592812652887604724984289298225733660542699342240677860888624634439358905227158328844006011989139004352002738976251397257379540937685627777287091479817355145095561099882807995308083537296497576900497190201669972954104233279581589010364920374908049323679070698689782212683339500296545598758605450510588240264898774941949773646067668902567288833107639162741045130321456658599128137014042001665285877430741156572508774340974452520852151043464916290339951676487736455843735287835446170073077324183309856752447453564910299272680254204997913888990571588418576481901443895581577301644706129272621698008677925956117544416852781576532685372689773658292792342797804208614347836185935579831240037100603081313307598121965588015472180799937285555788253057198983137070107075298974509426869395616633508346569595876462760223545233868414939510534549631462452659121402856955791540811079911357849776822722966875631506671252554833867229722746423375282925470197049470690031989761629243483620820842387129248256084092058684755028234815975038755805003812547212432804322046959088434185843944353849362847006532605437879848113785902776187701146219467720712213709049742390787896859512267922345674364554594765304860501939795946470630316334485468612451893943707158924113468161564024870752586080244416910795391959369880156377547095242665271187245743356709488951190020630405004097482999024482291130129376841610749839515571003380518914532003940581883354211708890918001687571127688524846563600674082113494360600980170871144711197719903302105122813137478112353468077204442469046883453108037348119362281430039180162019230356006681091910410426656592043471101973038019997495292779529400005610912580083597925120447318689333733240458546862500980391465621571159627583923360506645365615364975615628539449659820464023952553004651672730065432257614794646261811701294070720211047681810360328296131426914401533812605985679272478093615107844318589311976660826495582309178821380465239020283697514211615202943896289514104819842013733188098831541032635417280167576577162448189152573070623280116944577205676337456690104423999736514076627527642120625709578128258475251273076501478143000915203702769238987346653059804683309743102711358498729514985729678354330826019433370993911710607721586493833803267499244614465890760129834068399290455920839892436816247710084408243514282960229117628564374610041593742855996021163646336488004124918203728896467902509320056939494248230822398364495964612705770311963708737462890080509500103882279834542754536864336650650251816932861045716706940360298091317064592889583595499254188405626271631889302566614000870356903722716122533117034452219580662764734330325991564790094826307262450922914439142029036193193846618032794780658642548845477382187890037087116665652882016303377990124716173093777681907924368076626402024956106392055043232163588927523438035670895242888950659439685407420592696206718579345664767631568311007306960275715930189112497860093738024673614535353155639395317113185324650999871302631552584875751072949865074170489775484645765870390215211558576361533742108591941845418361543554279499651731220071606102615223825209361793256073291029310924000866719476072326976501392967849064591241723118849368346023187847173551026224526055335204193832996363590786565896787342954529137808504316281713351398615623175198808256611294397118651938328397117727182238632332603657778298774080809342396522224002551533047743659115916015588244521551881149279484950376664503112366579118509681278468765964537196799730526565317274448592293327926893164224929850820740915963921565823235356027969934635095764355313913382598104373534771700930288077581032960822316820085116224454183865662223578568510203683323390809036512912591393732982644786228497036117296341963481390085053214678766114750622595801193880541679237875534712980882184808658727907486496308252136494708735887488783663685081972142006298572086695137652593097256991934850982512595074288720948267173519421686109719101042349463351139756531941911315961496095815212340047365070880612856083310883002119105374528469455366265032343091000261507629256299720137125004721819412073064689058506972031875679009993365693736490170946140340464491015261483871666536564662863994153688975475514852515757524407292420481523746118982282813653083781460258279627423634017166422850573773995275103011851706570344875701116045923426580499779505280412886121381003689067471761741640989460904538412165672153719242062295067678020424099303194146968711402046797111331760811017743109489407295563823989940962242798041659386009451689923438915043841516592938959505720212138806680427180856670355927410230445567040980614652184121559224142475196901601211145288011929428018848956607942250266075386954112809698244022767709548220733594532875918004338376771011182673265819650098649693687049013247902671074146576709710482925492132300382620148636929930957257449273240413873382666890762549018351951485946399306710818086131166375294137640673098130707584076769395495100926934238059709000188995112451365134499229145705200222445657390653140752804672435184457736066550717452881460737586152750040377283227921555649177241722365290698703184460970029720552236239739835497641885577468377045725584423765539885891622611088818587392228681666400575081128750129804770712911713531281478584061251892557546621840774872740304163889562543423802021352661367788663854150887229780053999832597342051152117865293012906226140450797577722528224976356288889889853024432707025302740935915143162775682089666990845036167841747402367137771660333458682198189015453397170097021428548855945936380068167491184846801164701718982661093162400157132997630453975428329816068435309447546495596729670148395489884865247673455626020100768479577910545894502456619453241766608702267595355353998752464818515246841032822452014991531768913443119767338659327251399937994640789847524830195960200149938009486424725072599212472151553038241210276087272538383772320552807005096070776094095036741699249445075852425568312078068701129898587666439589826223985848103620933325719572673401630657710872571422392386590164600685151605670150119793321697739064116574392109220682341333941272257631357095829114136208907457916101537947930433536253912765652215261518094981651520724997016780037190989567102351095441809267592536225986226619960769727518835085266060597554811058652104775382860213854195642496572414344930164728871123064726218437381542602325438488923418391893299277260681520406611076895689942552820423516757548333820853985329108884288265258899178402406869666244887894591144555430944865141899901499144015651534664158839327696879770388155014341118901966244807677242196558540247899374867284861648999407200586876888987602974663618584042257781747961221960215368007142586777856157314247532774488803448379119493696618694755464114534458498047613645973681210714862006287775132758052889005415018865317555233335639792832301745477841663593945938001296307334798054915616548056353110854154708942141264494480631087482395103916215444006028123551177155995660632065329457698019293264063060565969093267599113288043401642285907155944676568877770583909179278016051114338129529845001350886019440693803113561987966759365620737040379811330896724685771799271720327964193045220488356369483958285830226497199816642865747963934923311220696115282128223862863154406912977701450742911210744106596221995657543824863721928204542517091583161607609355154251647678976053900659554154031728767310710692881984230749106002387914335039229678025033502077548447726245329321967101059641966214710557338448794428017871571717861320560524240250594843856057450367821757502361380788298506982870568993553994847917279242432671150290161377844794453752621672857134290066105673603079162975354229293383710947476397157669533237957353080753319850971811267713235270407609678519121233747225336798250575970106899874667269819526269962240758413914264216813388497556445805845450093918905407165375037214633168485795785409626615996642380023587392947843100033552920406741678260078947248719176129093154258633183713404685356318434227810589081863281046494866410157306040725735578799839984661111775460369806400308626172208029345432469057509847464958160860527198125760037958307897928240584234004950849342795273734146079147206099914110060773647530395294444685569102970692011056725410883801395314663683562516530230819926180756721947954753834927377790971935418957209085678573464726329270881760872560684136040920643985352372027844633929585710013105694555323787583002403259387745186566739010244942201869909328468759582508887058474440608616949702546119096338997419933548235527902722641965845682971210110888088736665679813043316163624816378728028509185614829071922452376561199294198761152206291889200414783652527604915586124262290492523884561723647695052933347251596959148787362443016050460167333080652870684286729598326866624493923044956335932552494045750497054623204433194779687777779499626428432500348740759274914947874759739756731356126021130562031975010964920966514664293219728943323307115013534505067135179966564027398374401730649017933716298311233997868104830967811588789606843930479146686884229129308025065623404300756461154047037014491738233053269544955955154329716537921617513016306120883236888867731679466833670854080335520043646836946388071292151670993177387707837814072370110775617472009596830116548678578674627412629556018499820743877262028173400363122828209235310252392926858657870520172081130425262896478556954439708321470210555188211300487444070819181236735015083186245533990955344337797362540617074852068113382195274507141514792724984830674030245997533991106142380794586508247754766931695670060809224529369157014066283459416000004093884601476480517620744924055257132046163284086600688788129926492875919249580605275132202322594688824914017622849918556984968930818497425564506527671186452833748636443204867848150579417188811862015604570297947531784567941071740839908541674906806687117229477031800875992818831313016630085915775916196316322232826904555782498651483994246041439668142681518686468428461364790697364909752739132187974378387822840179612667645139956417123840356498775991689332737682416386704359785727511548124662884655532629451937865308385932725369935173939176385255296342515599421435599833752664580607481900763911056492065512232981555668084504577140202426607325101864324328883020325377061215724882745825534309454563496689902126637039756008726752583222671345087917717299046278454422551510223417865841549656733543922546828737439520194637957082243741880935848166469122114527769909815314545026108529946181897007116905242604418554141197555578012337958403611951574280944655723969915937908732529672494708886495480565798097940977229442170090403678322843014042629889982690843195176053882747429294681238327516571325131970972557160575795935312174978340671557966812891550672702490918010935876002631337671877120014316058686198771471612970140668719877322921046948287794023161750198103601123371425381215624438821902917518004495338280171367061389037808998413932943093595545386379056031656617871061558390282539425151253208523560194695763542127201395627788808501060891748360021811966222143999355045209560829963724669458150579271363076325561962104923042392699546954120674764702625265038362968194380820318080207804205438660465446087711476277788165775005374514797304430191108291906180724296641102163904249537176789647069291864922431795555610959535397393652990578082095837875869511016793923467190420395498810996733021858927884577144784550323295931409138847204565957780114615057192632063879934017575369461183208493288460903610379329745731920361567341275614302211347441436203311948226429709656624362798444805094483742454644817532695979406706783733533769221735902106026282330310308358981093312809804667582010445964709614725757014563468817237586735961343162139000321646088950761838513305022125354307522783248181994745733679561155741949455105890804795696006173098843309906933999231726508337831385740980668675913954424139365647252135492571289981743665054738174007299549086374911245749261616246214998352730684144466801463218375175905107775837036699239733859660990973962563326785283890995798322642197643297378526845370722820586078739751609378946029493311802115778571925546713246945047925099704445379249254237394247996663989813846863027063581777425729674080145021138872709767716131673221974102144236398266459936945540145670644283465689506831177739744565394085483502421899529859829834695339754619215794495503021826726198567815740427897228931406532910577018054845891499081026577484890978675941568911773786662404920699105987886722680816166297700831354024610013511280522070308136112769425187866832344670069317297304892986672213602640605064598547876973885329104647698041257504663344373792879479045131670828181413904897141742469206941781471178637426073344906032140738905848452624018182729232661819389481677709665563896986930941316182981198551448387515683990907955864533044325385871048437467451551275280443313323680772850819826946088193413859917305420029949068803856348268359017406886543157049348939530689707901991382620677220297774021987895786700692052309254397173313780523166669249081138556377867611024038237723447724018968507561826214031403025210213500466068168449533957087212910442491630810600957654981151324296272797879104980529971897683288590729914089233817679564994042637089409226032666576630179277839376818881251727681300910444252576410156204845910490869566817926232730825124438622728880387737844677647786563517490755828327157441087898614241426164308828009696455019284590559724075886410678950810780242896189201221628426092026244543980843867171521156295411815530724752272288530596286528530374344260008425918141493900649224474347408338711089190499909184710900305880097573356095769786792220442909073210116279034081434095716509122188458837745349848888371034393851321326646412649736045174901074579452294268365641224213786203570505997721226890072233034927154339046661386098206259248439974316274797603399577762795507454771861079107969405710472781426760325771050780797322212321687331773594133234127834543672985785858933539059499275649389317882386450380273248504462877624030993937284490226286594687957826256467619478258758073769056149475847343588193177857722512389192776480023581650403623746789812040266564155726772628458973311615579340917940036825563998400760207511381295213277596005802375559330975427323271360590102186195887665307098499142526708106613280174055758257031090561936607364516783036828119290049022506961667711117600655695283342440546188512373032387359724619514802085226697286780446766470159655157705468282917217597097210801595771424560769494172790317268290549553969017383861490997138554859504375218021202024035449262765219264373062065437457085890070106571604295045814858435390723518875868658113486395162253997419667953167439882246711008721483137671756891040051355223512409056739321654617844931903074036374401076064152789146492021691250933423434858846170179688229698955723072493167999190877901472388609157679344306001518199099164834586597196047601901533208218677142004152092691543222186227128093066567471026737199262764028448171572300682087733609616591206001805452528043254354423314291625719716488704308780427810942440758397227329383712032999589474300157002826556488134019734228074534740092379707766528269906026548247457279978223316859086346572620858605084305975891361534902831518666348807825088668307166342829657955929885733484079212032578174965994730015293145656449282196438017258365917804909888302355300914177104616272181773174455355682486877257059117177390175615389796873441154872096142688155882657968578381135360368284734817601631934455012788768007185221279828937078281430037030299592357021990152732263302901150699479910585226427751239716335792858682884968362851497517898452798869665917196525820056499068717762046213336877597684551812044812640398855710953384551943233172292497387196390548019384846728743078167440286753067135166205236042326786960240359400469078762573984650002352560301795712751880768568229711721502709276217880477191280429872561055865540911520102934254953586408595041821675541959084756565040285172049529483332111705980754365373033483351873754393996747148260863736671312246603430318777679694637328415505414872908277949432578062022122381551781848787546299332972619185232668959581683693924541009047234318343800499447028625300074021077887127576417666099238929595085988793483964788382036714055509719060206636835721019260393674544773640976867144352006888214992990673266198782683922469699207875992970469680259416935255196912541191041990911387405046364469716696403966998122458509365859329718312827574091515355991273336171572822281337308552291764631901974144486835266067305144560095610657662194727475835186869761156354953046703934308667568242514141203197118821812269596543629404959577053020879381112939586266967099920253455769802003869096190986605853455995955206056416698897178434411323225937246545697650538232347542664234637820080123684611508745447400202607589113571647642081164652393151942412169034548584932618819291796799221736896485013904502976324613010983199451971187908432043538864214343608918922977918252035513461267366835955272564222558590381430374536054374672189933329254570161675329807604428012185481836527620055147158138310319760698089567840536308935409533543034350596163058826667332244676716962439768542421810362733389387641976665428772253922645042354800431885807714128169267071946978436306715096177909242651075019556127006166089766989149361475729994157590601201668118014263838120548571394875890795228240184945964307572736389504695687391546085909867812224532545066503248047791968825080672090657369878707552758468031451935633627999022937818368601089013886368092109105389185587876638979462897754375044090293199854405932429450096737991744926022179065655898926671281832387419830101547230571494007630583901177085099380194084616073115019419200675117743541245402281900383344715053387668592970939470292584422269738424694958669849183919111227249165219146165243279634745929386783156933440828572231901565006177643147974513972702212287594350656243388179505749674725753455235564725926181727697723423982811905807106495481098920044042878788921378398554810523021956589455347170200670100227800861735273966747996706302731933616177903719342182994271979277873563002345175789048079693042726112758034661150843481577431224804708535277765805191295418752781325220092201588614325540764223222247903235054891709913488313740048698644874645321286953214475847499649145068031038604067882758546889017879869597521669466332354259794314536246711833439423924646494950035700277713221433512448522334436099681902274139158393176948425675712981535314591575234688523739302306761157608977422599287424211230956574678288174130474093671176964108496812046244470804723815582043397382301920464651123103758437654992432222488085704325932213860120326556247727715560202504632274606250107075610399854998447909481481844282992481306174875667196199284895339960424436196036211526177524070627251963876772954322586417621515654979890165811566690318733805616140081969347331777556685382846811007621340556531523982189607515746965279385340441488455499508986774985846242547482441854054579180489296414850764149811368927055231531276932665835013348723927656353818003562669855709560450831190915226954060335190866673260392490375662823233215038493800610647593411115574543501650600599023385483812148372541762982979087028111393950271024102264771311260791469651681210748795935407675388078972024331975423740207773785770940749453308417176969201887370499467323409364384547055263708073283384422305803932784801813715800104482126829493511957039749118037269079787431666354456079777347163205693158955787683519343249160811124645202426298313271222274807872731309406425172150150995664657931764501240904528663017056635302206937586517173757374422486957438213201305701309497678292559792764733513512476207922736741840633837133867543176993114576827564336112010857793133311309818021802907092595963140517389518413600467896328041292016981189629789269722827943033837769960117687853511715462900078651157789651345197743084458601076661520091759605521557917772831163561968447482117393420112737631532167630883219027218572967059806240319368769871835974312727561033033507485429216983651087856237258352881028754457327253225719427908524134830933623001431569305756325187111300026459412183495324610641133905482117335554242579069951714844433831765595635490587440401592082991044602420764251366277645888394435818962987898231784577453931067708597945539311191297015856703310416880544503891454795400951664151452984699553406048163578379643794792258056977954404889984372260991645008285724331433604572629735074248462537933078482828883119331344357937274584922107376619003002513589087914346008097760991519729840218790562303400379418635236258224974873915263089839918823398076186880591758893671929170839533644390530968465777764213060248592858293524832146453307699417988711230025385044104709636576994543556751589907607123577531952732045495348342621213275375653703033255050918490006272145432844737915233388984040414252762269745420793505264233629545240414227471328667077316790308754303568644364084028990688806195725275623552355166198652186110322567780083573421283336952742686056860494638050205965606508464586465197586737121437129283321885577497711074024471683453797427034193397867231910130411107916266436707941840599076479544001091793480800973070999345730284555651203091888609813697107888173233115124348298498487745182510267486053451611984657635710354792046745426147195826758590561712654252284402525103907308072193373599343980564673700503527291450801138602971962600985087998304535024699452187487799113042723051013943844341802680253672798198426084254621751971430558273269538034003823108442099532239767002173595378771336870233274956664722187661798681172679195210247951948639363608114085639993259881690135084911762204693657105983963413467672881378967833637669747227344212745273182701112815925345890340352260333013829973759059225392127129148272637353130955792320585861141758059500262317824727442773161874767421127078837629560424249899694823355180595473922380982474658146404543635094337822349248751845816503324138445998441502049245092983376321322999909365327670005261389406520325194861449306569209757557117075289359917608081862243907048551970813026140399224525795139709717052700672832512506190946680897222988829904492179434173528179785641361290827492415165918779121133261270838984104177634518511332790046857128465056910059868380031678280276717157492866321081664863216540244404412721586343924271961564201272908342648969688089418054877858348276330651395712432424088915602358816732920752949202535399151343065974205255837480608193391421132160393209678776486161417448594622743559686724301969228226986700953018220616601941133665305360076780795792196130286422331937961889604017614556940357325974094173569993477454023927870788923205495615806946368306110522728133031605407965056803671252713331554154614506702452943514905090004205241393898174808359037608377008021754450450200559747542949335850746181481291121304282012505426122301726730296031959838565194762023725071416046354362886222789786274147404974540319774649430642923311691514425748018366878496609866452500298265289921721711827846948421716757259362816267015251466894570499735447469168122602848200378657963683029333293436967752810202317430514565270876169228637758662398774750436675678718351618798507424919023714245548090005166460670332060576817198811972776484608034689810434651651116643103942296056471320237782821759827672918008934165453528742685789427387506897965494715846229963126320960685972149199003199667933897980450378362744144955939954399665949721162844605398152578599924853016601612032045755334164831890754844802653776171172007020718611040410467519353138852416051797883149108541046524695887387637414175957741703860029368064639073965556685001243433292592668715359677397651462210480559527303302095722146519639315461672101763346157099878071271928673197959766181234614783719568494117304181715394791864204639383857081090922927528798698834684072076691585733983240799433934169170989787994751422666601849624943201400505229378447681063653420825754970132422561723092093287706028755683076405475724974390603757553632078116724275386981866564183868604687252171151275981540736982011876672940798253252092677417157366199208410684288470594072543135086807032175260703945502464597437204304230888668261368304032006313559591619243438753932372988580352765389504212001212040628522394318633121997658433365120725315526942420976095609647570026713783282694633811615145252834700953627285796516797974335486671296121884652867055952745974593763514422067559302688597097915358576679550549472459548655810620031413864040657112012855387976788033021687232635859623342366982215233925808858626289244107925289380905263305089981785295909059137847041895075738173089295173532837141387131403431015466663772227614747713274460969630376415510409385300893745384382256821009437263970854287353315775470152530229807613461282093235426386977908781410758417723563183274352252345516433416447508036232518363574428706447367584369698550053976926986998852058859697963166661619910846272565582460897124227747865784703638128647593104893698469108314946697267731399374251747999940021319541365744165624051593741437969848451291866482680612986638425576058917260082716714113441286601239413873154028557948445749976575300720974901520944418812031980662468730224289193144903044952114804647666450201923397529012577750666272938467856797971590738229582557001185501218629075454634856048413499018273487656534529803322024218315734904666801968263810442646348945386990214014794068693438244002679513333965476474467849065385493987348464392188782478453580757481008483800771689554534397549499040606744308773832936383388037627422431011092903146648091999071715884935187900837427669271980005066252130573289240776341763561524142874565206450092779837067533186339706993927517177275757657551713338434366931500255531007614700182599884968702543929661328913477459398834357312532982231638187194147538422551669551987885592955330761373077379567250583919339634037798934540409021228213589433895132399331840106958332646061015350510942466149742203002446711162143626934052917593837875937376576258050550582273396296959187050802957141105266724209189869214216338463323410682307682464089975819724884825740186970250082110548873616953767400771065917741578729653601863127737533710268269006307968367976832743064218644393487182616174543353572144207009646989967494657373276389732135656617397104687709082127211751494915048092959931038288090956332001461971768884908099707072093113798818467711888761221274007210403497928127412879837339333604306283037935958939677052258038939287343979824728060010941981982031307661576225352902647362456720992988800105925968994590695069078440904885950862339338576750089658053252016242858343374246496312460489032661795898126575041916384682319655407147905394535213419601041110238375677839156708175456129525756763832591459155173504830698836320032496999750912199065212275241205649953001534759605770732074458440926544062423900886386347604796926081981807231259646251153775016842171332765720915979198292701023009849887460494537799919555392114743213416419245068512519825847022655861360774701292637769945416368692290923620696768067650854767771732268521029262259289961408273274668413203038434247003947096671020891986607071796231416364519481815631307930919591725539981264336761369204623847483623984165722018717412629942049404520135087296236921859600926178774503711681517010816688713723114426396716435715741185536043709510808500824888761749844784842175199192481904222387116317306911537355890029218463091881341620140098905153594674829916886202680502550072276512413252765461711996400819099028938125002662631601892134100590772030858598759117185451994527311820914351584932522487146995311977705904000156903543807627221038807031918714699217346234155516392439871771124357573558440007418550391552608654929281681612002556778917101926224452871473162991172596024562417490154111014651512950544807192250801059542061591855468322155382240945431597825598639893224480664270574911762626285487493899632779041889212176112970885714890307093663588619772798088511412091473839107809223087854811104471791636140251507372986182444971456160427962531295186361506583591408630776514491504355471010098784982082292338073996766029612967127119765789782131792502085479545683471906308687487038263430741786295747942883429755159084194455604333569767838021314107118319619508996874851895762840383342726425775774217038331557610741210109493380810098367087477673478477679963138486905123764566745524124603481535626069447961418943744166873849305945582840087439000696185980187329050728791736259814272725475898014015711438078884380269762198451944786799564564610128723296481647666993155582301598869391321963725215787099391372210412545448799384621001006043064921694718385008588662328413126348681524428652776782553540866364022152626517247365727930797258113735347271780252955086263221991116095084041715696464235431441176677660573595613804486743215324384663922462621515804112314157245963134639741178251284215363510537160259560476625507193031489628832823447346545933214279267869067709809677135242325482689754675951728259332058683200340470344973689558959970125696519535362072916865809791718239261424331701129503036626415516735533968889919685471126274593593374329633420843184256337434120749709454158091351984059416614385516032557553611291706293730308960842172804804373140844029699380136035798572555962339350306288181003651217379952165531961513536653354677234942629535551108185445463057990833980330871607467845360282469817184794996372165475339817134109868587007372344365180186257017510925653383428765894493300894250928562127803918542042028429954710780591568956094363865661133312553594462630992448514404992345270344287684134552375781133844549412834257564127915083559378288909505952895373513769442441312698205114565907180979300997582115817032119596616250961074240979881320021333714391174132162329599868690326596710003495245062926085110888186455271881071242110167785788774850868796496070444949125628173289693933790854375061392177665050155336981020293978070060803118589546411006174083520300970500526891879416112361918978883358496912627572469324250041000355481495470908568929274174954329795682351808373168011280830931366940495648143491462985346004753068665633213614761423860751164775846578174618654121713523029351578893080658723915303295194486961236481123721408027409286770449686699016826792092289523932467459611421738297822072688780442118920084555433013330370610078662685697264657074311056033336875342401034728117233436214164176734820178115169073978907116423967950377455422475828621937234509426342075032944267477835215062992939392241642065359266847310976821513196432037954642049131138230615460414077695317510388908454638663868220320885820441138420910452465756379777119521819515239665159621788684316873934297513508568194176464646814804812097018265789835305890370882640230903695526131982270253844242288477956811168965695209614187614265925377428655347073042496428773382694890726742084871931027433719850658939852236251400378302426294966536373569158051940489669858212204690740812614862002840886603434350805261934599217119653015356746077268718425475408548459236693033442176237666503361728813242281479228686870381237495492909271986282134106964379093913585300905251722782305313348781458874155709075605042257717794729346062662121900228183870326067309469383144005226952029126265115408276353007215465346506455994990989689386030901075147530044684592420150654369990910365074058229853953884332539482836610433796587616558543324045968749029382259528653598967726052287119092167700196431678608941635409696151872037132252752640561867631299403734143455249528194814832267798044348421949936083429578770874403162102302317844048268419090937371682204465778634499332498637198612336034932552327951127730017825715943521990134217795717736690410828917990873302247569180346873959738174958363797570637937259599132669988550067097290818624268442844447193484499693983200358732587672293240735411668466919982874117652302611421483931539087833279309098741896136687710655078818221554070507345584231422001812769844238583592941318451319969115201799908989329145649434229537535930241674352562567448508797429974105198807219727986521555103775788786704407339196150672545018506118461657648622145501315050049985358479451582096709623735716601274320996571476660945101251425788412668567966202366999462506478355452447982390964723874844573449412953662341293917788946646383664176540563914166256505511704761674134726884375014720555013658757560122674645884278681036510147198673680224703417531133566251255066285574476835473125310795077388147515392206258300374641132812879021951749056890141370740234567946569401403756809090758834702100764524878020822824913437810147399805292801437208057273868236501885063043927898901517782475595212003018415816081880897313080531276570873819673064464823993277829842270839902602986752319719125427428662895320607536327540517732048768070889543508259646893892197004465544260653948153036691992850640545154740350607608505654813286684022055047022939024577724748682798104283524151355911238812890210029926076239060357540369504241911271356163987733776734024123780625306935942072401583668272053250482524146805618528524376542105333165784178514923272934113492170673496304847063059569440101070412341616163647358050005900733996035436261055852714996583927049254616530056962645795655118127152879497781753752459618440017296064739370920471689217444828403242527114725396975053124823536548637914060965647436004357243834275605294655429489360254383588763083563818984632466530279706685628285601951435475958833608483958658475635390387765653926106620554089415987333292676854765289379094888341773530589689814489337822091542907667400868790732318991584424179141707563897683425442696915218332756801423778911520179362956390139160091860921338097262190986601677085604603741673953611786127666909027053381005540569526828638399093130726225035920277093021342002774215800710117202647109080716584711500517825274292364167458981491287529451219325456734805879018620378949622039879844701183597718209194294479200166802404959472001523642759810066573114043044223477150428094434768538024866839999611759173872522043403826369237898912870383833258543688418562809644033548229289683738886602737030057769065000108501413875220531413131249093781202172681087085099610187456163314443247133174899273237523710486872283104799004045461212506568102919153171190523822391257192878969181419051951620503008109659374816483146615138672263157231329995666018829476881878325773249821590123183104924065336149918653309732039029110502206820133043212047688041662701828283911005621342083907211957078031641148686328053244289862108734581690032211557365966927176582781701284812849295582779601123364625691807449662072519614401744398006396747417180880136255705579088258314795203224989564690327870875409084424345101095430761154936987057752437693436832720953808310908362843358214128121483825957953541468619853395288501265125286891937873539913471537264317878647795214543619240909866491067928427472434926163751344769431662491414335433515883796905471971953321014019313838384549306011938690908367228852193708738803019781858936707209879232762082224451925371385122739721846062395240505431996927921218611037075290047866772230357562461041681527989403331454748363239562955119913923806362447315010239837313571354871294576591533547370253253055346848499629815434718023098651742091109914255463077493940121460320849869021763094430261233233712317537425513516364603312675548804902319032739743751180884091323564370032599134548589211190507625233347508147006360724700918432591796638028272830399178063263987765195968993928236365705391961102658807200541955117786678734908331013133666317813592635352485601561700055326486634907640498109417217817459413622106062138209208201159187738583603786081358074863519305162292930307995746085729710399060807600277583079861555022269219465621453839917692524460141681558765974293638613186135680004110369011987103692373792107899100059156939791640765910045212245914364546142890241859566118945914514748810466577578862617913522752465909162625416850113577997872415162055363681045885119578983929219703593444528212318645566439282183823702135830132945996683741234135784959057735128630689475869163070779841449263735906370526474904174711724300452168812123863795861963137424838821845194560057275077705286577027181819063071187322009010177743264095121911413660749208359321028419126105379659789405434653883599625728472065687566822721713559907180105695232563834009753409417336303126119205975289757171107421579711132131659954954076452265989116325957018004093851340281754406478020988451779530734915532897820512657235117680403735311758242491739794425503229474068405493525036465460081100154839971062662685857404436749493614582802071941401958535776303695938652669957346287242608558126107098760137758710209757801977564864279126671614897128587348539062031908956994962321412404606612822833227736531037882575449181815870630051283120944301606296158079454990761543455209015312769290677346273063476058373457792788057041412981234970417157954682617518074709740074538461583131608744784534429110788901966451918096924646398311375267885457627022352818726678478101048053171047730820037141511040468409195564350155960343274387975697398526714165797227209023995709866236640727018166647917064388888939507964036231069797174762687688290438768361080619921602657934687556144171049141588001924967228902772413466252503277441694227418988613593451671185129526476869881275946016539446968635888751390090861154445391775691147708902733234683045374823233003029645243261075551591637712364492236884439217389943434976357337981557690655317744344262639144509629393043361524993110764614375519943589105806919841628902834617174349347143656945003040001020544472443659692077437061818688749877651025846493974165593479450539082143138318411195933717991813034014382850689243308116341080588113418936852053143107416744968170613576864180756070963092446384523809316474082419741210064387351225641768800818460127870179308472554066582127677882642115438800659683850853779314529275666993960878137780724537793730875434588143994198188868531586901978841963497485576020554089643824090573484143712277537495702728966131538518676266755691869544874182088038516274219604387759622508607599135535881946612454768478554424919418550658211779952684827232367193173321237371318512131357940882453539809447002468421470662106622509914351868588126107012218667672168417594206337687559621586145653016220000624284879314580320135053291393044215725186088484993690068515361235710729007204160270401261590424279950511406497316990320003588131675443112437441311676340222262581622318957576847051713446966748324814450649615541912527693537311108201838806084259300922842729026805852146487815847917192319696941806289666791829080851001178988706325264065650080950070385116756998230471315381121604900707974435432372901281033010075519000919298846287107540155018230235565133478499483885936669041635631853857718015417554524350035698071153303961306949032574626209095283266466209568990280811798425844051643137719662040319654349660599846780857414094769296721740908018399299545664266126894763157105246460106643186646147452738642136353672805679635244657504718099308342806209559176599220659916036886250327027951845097770069846771357806208001445668015700726158076896194064125065588065690106925402585856938235788255093365795240401574179601000561053939541242694257741984164714042735063763926602267064302284538987665157942821477969541106757886414771323517774295037636510356530015451049886026808229279051751417987582934119374720611324004777585423187849940864972415906125591163215376551883047966928587180096559630638474464875242595359281681143932785687844172302077403154184596127471385062318596135597074361469247173851900787042697385646816060733548668264653133513028951062509036185427052973073338758811103697514744699423811316444650521230975831974347640660332648939723755740461677340063212812669572664698397289055728939493011712802415953852657862871647799577905235899270903765944122681079865661910299408022534533029676394668091763536465612943828685594270840546702493577210396327598963567970997977723084178870167831422311418883051374514645691238425302300589011131395538643788315488132514424420508753780682485629765874252455193212432210496086068564990452031855151192331094691640903952554071253943757726415156949148738290683432596312176192069204627310975482020977055588972968325192669654686180632385649414266039192461168934224023497764794878632274446684415830103646442124278446906841655653158030474552674700235568922171494021636160742972367629326856284253129493324028835828702595926223498379813552092920435887866446620415018402656378083448197817417889172661344367250917703571362895105742390500133085206824013022819529571881132488971264336538194115283934326192833309144307377112468069429065363308731205256204414723039813924163349835567608478019846802267950409246698970588579335154805309942928808403210691371978309981655531432607216305378908878437983001700962935631934805260896921486693299254005536013422894501845725033082939422263782181589582060118090697505805126788058145664849497860998446701465194079708599601299240527734535387047043794016902121156317666710698180601714156215014599452249184679928857578293546765044374809871000959130057006195162705515738472967915934302701068215109993807291412399140580818654518022766361131861923267325416445586023216359717802316113343690918064911270778012437590465112929188913472789134641810175844144472867317666131424782680695695535171042588912681550164885841629196817364411557477936159138130859662616823737686179596864674326577562620795549662914118577461930100877680022517520146467857690503035092630496846788970465090988477681054398184392315322970031907819539192516819157511954095318573883607172061917040493490779522513337276884474056684973562552414824561719940763517924504876593901872076736130920992738961763558945051675335449846443972785792240439972524971840113888394757339300418958727862213408931593133847602098342389090744010977056780348572965002207564847659171782315843349318368971898546630884403077811784440644733581582615289898807873388944518646792575418332871848359082298190076507129784294948457441860436471654663486263775632286705307393055794760700592280530134001022958908750126138980092241414345560496177330170003595000124586605547281702932028637546491109344982064836599245583355369513471553080205291628627355916001875106552233380318115804808982305140044146087322345317753513178147327983544771933046263307926282829272918453356969194336254229215804555556519045389390725668806630635979415167471305599931653340629073982674611357266237823704487871252513987576714174156213540313856255149986971666137482131474841612124302945916710345330287071245069946301477244455029502796287937757851313942589577752269547232285979680467388731408129941540209612964756619260217578037138264901149312527522842531562891069645439487341385451966322537626853963104603074872261845301314414555548770886941775572500010002905039949805329418720759580066343410473203752226463694661009733452602429398013105058845132504173442499716659047419316516255758484549967974031451534714883209459128576359952232751379389802494232807267440352747748242262312949136910330373364279803480245983158145433578131462854309922423517787205940466795447201321385227881630933220520088858447985426172953238185388322598717713210362874217810574598151145781678406384175940598452589175001125312837737510691181697728593240361214842139602595595964500875167265471374272209919822301557245664240091404754258031951199705939619759028385656476162848041183334355741425598743118455456614569445445929317643390556437231469813256047731067605986124573868590367331401795222257559305257165663318121151851622795638605615440348688308977895266906163693493799455557876962789163395256732938032926839154956763722616490928548728234724729818210966111644630187099236237101076026553551213881664116235202251955554320498830518213066956937876612861380480439756517757461784319143450426124077439996424936905148575112218615238754238890800679328774329854254521738406778332008299777681439066465140972201051197989013634250588129894043230286332723910607699936918875849381012107998098831526739120325115431637807169741110187866472095758155778182985884909770679330713132713739676422360275740672875116625008681129597829789941769695005825530102311758432114271541839705630300494913991490388537904090016016820937785179450362121222903395503534989164338473241643432734484734834709848690558526267811279378280959882522375818627511371021255017344413574021146658791323625378443269834137840943067612012192910699362985005103228092708124632351370843412882556274746411182072701666879648503687025990184237211803766723822179840805827032007466485223844831287134833421596939004694944589713490174135665263373024216503327483880756780767089027448638380840347737835791764984676149166293634379900796583843625598156516933309908314643690232078719372761174919160505877170202895975812130540676506632478548036120526000464940751999455022001405777661090550434886081580916089855625722412006103048564634087786363588067505869924795737414630355133153482157968530969548176130109376696825538874264439041307355666024357311933125365847155081339759638119034990949159599581939379646440191443058057654229397259862746532030822839881940740765544291823333199538416332400694026273328030298893765302053857793091633885133914034347766204232400197641917012160377368684492252590660060614166545181999775850804963893106373833103293341531052937235243346026765557061308955044153310166028437075021992740671642801329318219650454985273611182237433736393107349463360362982227286404094713840031898107140413258382906552398959837002482526761627207577252355517790907166306951973998809999593670060319680297999227184898734412011703741010220220253059255920394669902993613512157807354306976750919055723654349114448829066042234064102552837667384858040818998491313309584305717411188011457332244441616090060194032120647462557937916801688419009257054091722724832431690003255531116258973673517251638900814401623375634828496848605630802097137132797717942823214385206545846846086580833410889947347444517976060519721411649912759447391152232538754119672049160683180541707606067222657281441502708000816449380805829248230887524734260714749342733618619032361523415784676957360592864021293361509798738570701695772592652954457912274805624099048977075055967316336262241205441866813198870657837428227945098497989092482340608335965030973394033271633326911138076957035787982793271107836977335526737379737481067790363473190459764517226150450252707474533702820148303424036233246396514592912669426558762010581354698216330898173384087674944501226520642151036110106223751580628787726567867769802815009677363957090535985660386072867708953582710556062960782275229669904580880116361840515498743541244014555101771133468435653415975416090422844955865033823871701280181558588692871199611076971359128281484500476674958885849670766060596827176792941245118319512098427246777186611714652399656258823025008279030438973191680092440784547016389328377782983091306682514887503274862642174249329374434712615404131527360794095541061369585836187899762656818925294355919940664911521894691527949866387128245884924462171417378797457368206748412094888842679012197497139161183386292353902312059990048988847032485242232705876555079935476380900325942519958800563760238130754297793927706040587758730528643335560790063839792169797339172399671376103206997068712594341433023630631574405529593473655703007316060949557656310546318413276103500224716341650172876495864654376962028786816453189703710642950447827853333723450523733908643708131707204736915538080894881752925470941942267562850873635216949992052093152569901749403448538599920687274705635536845274890294889148417038684252061278009679791165736738080415293907509663336928452649420711741521364717200059019926799308685919905886997698808102135733812317945883769183398334595340145223164342974054571834196272115013202647575470653468320233216609011479920222880325765016587648969680488371197174082101578243473803923663955550160485978493855238748367501113866912302409032839158671751191170174676969814136000252151202515926837601247297546438034638502359547408649362420019523318058653661363155875934721923068015936825124326405266712323017612696968014417325045603465955009091547516836755459186026583959977068457025973800472980526100516445407175511882710111250444207343683981262333707424313804624707908597201619431296194825895291820803904969297507675900828590936003824357553473491059757931308396350770855822067059932311864026471833521391200589089085272841904271535423800009012701512209915402152529473442124138685477721642535392267028797900731631012631849551764231849739979979228418231124205980066717512815789563439774881295471507807115767567506571624273354550124833790314377353283971219991826600165368085872675129852744085034311349709522969892445571971785646221485045866315941047220025427258375871705437729515739486879357344404687352499783920077109670727278481599127823355875173786800592351546021373311691261968735192844238552880210685693509439770126615041205567428577000777249582336166566252870376047130332425468776702291305430275546207497729793233775163215213386420839284179691749473296284206353068000512054821057121185848110621301052761399771476348091083107899871359137199644988965105388395360544645498186978638675044231729693272949060083317090484592595975555441374911690917043190242061125952335375219293238172582880966968755803428584733389248941436308855407355258931590176119427615147773451088558966494487795093692958103865469356511811448090885251401999690866280089053723783874363542188120299081603157352635154945330268231547588060268090024827646296250852065035380674653609459179642404137814220414661295724920945247272928134227966647771450539757266826674955852677099167177692751245026874525118670551420449428614295995433885251303401769826942037871961895252435578592752220844157761245726282506553538869674043893860305932125165241428194792849269959474399334116001715705735251259708394975643312950238713699207823161917761055220317437945813773754050777782151724016266283838410431966867599854521036227555038688260207715842879624237630959208776084944612089731745700144856551711644828010034207329696961935010760107356415792772332403041345586349000660862736879404525071367614718202065172238013792156942445541877862257012256088019248453751005519563136940086190230094344245843039700474778706017943187890050766584695839468612479175645300355699548706293868789385159245700726231615475782344943446187247058770298196289849006473931261371630947465841664935354334880761932960609692746464661386418874300545213155600385862205004787757891456791674845972706516368806897110024899804548765243759293715096933536932163881137337725284817977104050704945278246021923286760283242508388863180759017498294030110398344709488238345828228671244985936892445231045507964360534416363747293834478790366288082462558843920493361442416646585827699085949969490111528496732817397730573968283582878971840812278007119891327237003211623117735677446235263202144446064534498835194873674748263719536426237296921803280280262342627365231070841475562706685439184459665190806163653246494298137019702765941717141409238922525063205676113876563043825725106327034577454405859914483644729561970033019393953789692087335314962434723807324481543467396474416416503047941016317587825679908815627970006556279791541562600763811570210867866004065401825977411940444400098588683053016719506133606330145925369142767096713953878039428803516357163196354285886281702228536261299258643458982539968531596631539927973956607110137520309159301627039722409377618172414871700477031870605848502062731973438241325086551373834290962928027881224063812228973367642436889969212062671697166657155976964504821625255617374346640976599655850391087854160547447418696143532504747823273870564069796653184510883320480653271165321019196642314761013842368270678555361396694972789106798161858878976714447275562198960128671702660531811785313768737156191730856766982673734442501458469549572862976464106375626710222942429520762927237855489859233584126850043429168952104865468194991310703488479316247012366769157827366289508798263220186006823220652439013200177552064825894309136963746484483911017498970854552693493346573668340616891416107809754144038697005724699442263584177643707530804850387205653369788212538142474042405511235976327052074874026683903613856452243857750482695251373537811149426070537021709116019215667334734765030636045030477943572303035876929306224120098085140536006591051984345074028805127173973215317958358794821602968003100681556306769983429324183035196598220114260718657057367249459455070827525771869395863336526726364837536480087687375094328767618430359442894871944049710457958895205447725020939967426814446570198621857378798921858255820506624094844978016107185886010338993104815789185438129682562831306350633681737203156793609642061897934612061978447136742420581737379223118731207932537253481561854913708669350425091450479167460639961483933051191671578918759644561141745071430702031366494746759291961598141726711511076102842783508435311883338293448088121307362356640801987860383473221832846172303669415322175721569025364471333799365386432572941841061155115138178360733543181711590461415115007198934970646060035379544253991731119963301949396475387187782943923295510890518456703335168077969146877517526205609581270512589139246536641785096458116265337195428276502070348548646474571539582218056680369249034596702419991503536370714260849015839263733830251301686485736215420146709226673430671770890855952390360328705026597992468331143667677466103268644051668557184472248085458514839437404408373315514240111816213420339079818359284006978497705332572507512914645892733058124820077915096550492162787489770932234189098529916774880300249914016848103249559883688738208314587778196487948645590354566786340721965142598615487715569828202291259951640455210318791597976603350966684084076190123022178526065655311127349117985065587188680604674473311388380411148967794262106969201842705752831898885916838244986099970732442520522724351487804115088385517256569030319069326605060303343942077494124394083179704306783481568257719521841669787059503640098388843169061105120858131813872130430514728671727135315302298141663226919600534490636201683737431922307462137725812455392296892447257795570270459606011955828265174391518130176024109106996731092831904524726775538742889165277109830536958551095112788672727165922283614568891204636137327572620556982917731603166916478785870396770975381669483247759973584461996434288569774676938278388944284970357583515777152808953917871378806749505665731030804094823875277794816791398765913673526291775722219030672484228190005988819940521318559220140844636945818072163011388534200677832122052606163104036815282138247510922246289052875532483075819712334694140407344725385548523254724409308855915013602184464572314822330357662131648244370763392011603147642944295033061364531842061119167237317415256158604619122388054014594857029011063746560382445207715786349785328167629426212071331541417693346830572120299519486916227740779881861473933343385265094505639061576674402423058216742107256903969098025663962564372266787399256443858376684937449746414091359884495129619236521618666900440837836205352156707157036004743783293886361590756605494432657139658909840678156480558637487133623270650206576238805865659215455266129553914701922586781938984977663877274677186991060262315031996385787170206050236315520480955029893331296082397993516262043230398618421655018613897873025193514762092768873267704237031466353385243085769675146832029145373751376867491843028532860653682358539955447057002443427328835807138877814003258660848410603274981971944268980047353766855370939364657818824878183235419631098847456353032580938266555026432093519428332529835366867114144531095274388691158573219398546711072377164202626736974770474496905652147173908095166957188381314615905617904527050508203534253679323629358455017807299817559203339785459674642669796685043251174983679194376082081111213583338454943614855379602871108520829542551929348840649924009633190419432347303814649560728651999764806021850181723531201697878444961824584276361998709182958363058535650812527370463152824028299827791191641139414064511691007573429167833192154530897652282233291704665860746405526418991061157947969761359003562962816000572789503148128705005466972423363858808597548473312185995238598787668276873691189496694166902250047794350615352385039460246800579792385388497429011242975520002701727793584300352478600405115661196317970343304692961168030418219620140510959832349930021321972051336636583235848589174000824119810722889300060721518297712536763687356928900902413697028879108325431089494283743266850976325725554843553340833520687292689496496689164894696759744278217466104619304532169747958627381040474170796748292966611113117430267524892392098542225885503230387449659867646661855538318928603658315943338894191779222579140095704244581735935929118780483256677655639001601443694259503057982415992800103463790353786734855931390589608694232018067779811547840001543283271240000797301271811059019005168875031768913489157659429675621636666771456630112151735149291424721201152172796874486040196465580967411987465446035935874725940167335051802699811551602908392806626443818747377861732345047016727712888095937445323789344998714398545397084968226391221761648958020617730148256073762305276865147264731071396173111156927397473440682260994036095577099008486442662944277256470160170085370400377843763462179573456778790206554611361258755645189273762785416510933917897919827669966588085480175768713734576575716235119041063666223670099037475841692903014056244479615902814849304076276098993265717367629590084559721377046741846456626365135213840709759695563949030295078063623773553763445636058584964569012147739501123690842058934342193629583838982471722726040962532221065992114388105238078802344935082543759484744272553444145171039413750206632029719216355777296385227221046449296357572451395724438663846822541532796426457233905433018620072961247781712451992789993544130522677010697230318242153172073119150243145302407680027640574282303790258955083547205345864395831381577127145909191917013279549491387890477745290682429545785795339125452751137655459230232726977138582721215530091145623040194877439081785856179382874805707259756885702698541249663483240261389629202169056243895812489816319648922170702177176511058574339665538462113146675677923190926726350917021882745572987200186374704132736606197610993917582675700473903911003777813420604608702960624238229111871596574528650996149219241654465506679406334725201636989830959620135694933356235728577951245132051291318954431801246775439723298284238446342779378811798794247263624111544829438229905697501442218440101936585878176193972239987734199841387154264381638873532715874080479887659741603777946464552972603165951879114112000983132604600120563591429002848595200859277750192024439649559114025057331281299132505438061725397582386896652151904243122614795366734702963151080579667090508185646897255834439993697505466421734139438525201016414150923081170841418131291713803970881385891735288355147602401884241496389341543601034258032590626610241316492845768840056975264960025588650380558637789248863768396897579271815347016190816484066739824925917374131676052796979855405173233112379923552918348378057163385312759954027851550203461060729596520517712165406020997977561514906308339013650501925774760249550850372289466415834186707877812379964287603592262233345580218893084974890097570813067776465366966770329268745999940829255135870522299452881697990884832953522028078424024760446225271575913933655946642485081807966584246180583879212607809034767063862003067414631522140507316557786493080591822425616523431150809316926343651764914974849803874453882816592098993803763371700026411791688909627816746660277036559532791819044045970022625131764057520430320987027060998276150245472182909167420977223351132403609175592139346298323829541351904378774509131123951888906700282520754709113535141752547617674579635358020413097377668821698095549481948885257560987315408939047831555537879823917647861962481319557075493426475153341229104466273943729207330856377367427176517099929166606851222229964968887276806578706538070389138621618347328353096868616604923771471891157622614276186210353060260794449339131641173769296584467778582345469311879101564941376933607815585799557629771576768963896098730999200301561817505165530269995965601593880984621760798209512296410783627339833871188886874332179868344797223651830801181074192869437637517273670229541262321671970084111675064985341023098582711602486800032198411853570906161494189016733355940238132301942362920457469053589564309644326428613922142125819663082867895341406502616026164186330080791024178004638762430009635546349315627042844090807550109541075359315073884076655018297173267613334752241840177610166405947572873092560582916211997909368065048641353537110082498559620445545539970687334938216787296469238609547198342448942801779020040343461054649505793879022795780280421377442187710725030932592855800973292093636130719195355780513726911617471020537653290878309429465333410796962536099281996319981064097260124120535995784476859190692183409383257014490116848939159002508801785386144108488162729734063901403348341407517140034976545767779356898450653748969738811826243340127259811418840967249473876874298697265073287115483333693030672356774577330780066507922686035515870768275568009177838336280984756140009278571843369650855537570350898597429423615288911341062478270924213989503781231457063645495470736452423983885658253392432277553122326027143571313658141350485040307429512810379486264567229878052534732259674152313022613638609068860312428403022002038788162044018847293837193156757668321522843162511889491216189299307503628959965422605621600298449090939167548217015443333447002298815456703513475303062484078272721758487301725361982680035905693729981207912677423909445107259985531644100918575442971864669247153424098870802406022875922418292387843296932638961847864995846549938639044784999672092505194436670918238987923829732742574326727380684018907047321992203371589776926661710424959982829159105519757840587577910716366555961971808562193995641988930002268012958202507752059820371652766957929188010202851984050125550104247056646587730555709618775070026461054115706977932867833170592268129332058585729177729641331126808357911881338434030231277969892204449127730332142362000542732938743577716849291330560178992965875401248496342416180494342268298089809399106454743103534461642816944401495476997846866302981213751212957230660597706588408799150629511873304165719050315119352193889534994940485907991303430165776031082325901591894170765062499492580864523456894034758663740121598411233210229310384382152852159816615832477542021028427121600278475132205569869632314987058000062779200343747760322600260488462742923877713093226866489573253526138496010869345797910661714031740901449298140462074386441625323096624873231794131344165614786731822922874330889462470887676303808065025504518897241709452114373497806402265430354998861319523151039412693601027890751352443840072085462301250005690311785898920832814980364539160766889469324053011012678872483123250731738465472172877700010141863755554193146730236314142793859927502489292019147761040146769110518775076871264943147121558814763535084529920265514261656272467044891231871089264009569437738481787499250851434943420067272388672363377454896251110583773302645172544165688300184586788179591239675490498889954687317903707152537047395685991788792882799713368477736908602700434072446766358014396423421355108025683554296525622679282066367252343542380048911146972951905507376132084032684548862710804839547693427774130895152653517020799519422519051571895692406028369506609416652111702773344200582153045516833754033018143678591074498780399477405961664396609272466009494554564240223704630907810558583432397874664205479840785948068787552264950713496790149564982623003126598993345817244488781027234311053575929121492926706547063225522857345839371159203027029931480242791347446154191937545037572795212628695271058582563249458811615774778945199095659593795956535024379338898502911997583394713132321261790841889802002533463751367979832416877638531469042073599624525885638393723473077711772067456990548692603399912046323583402575302434053413563129966221218260018999308204804889635849688069736437635664505832408496201894672802003798866380140371244678461076518442811883859636838580607175890803246177291729356401384989338198167597191449171642838411690740265835495679012943158608432714155898647509236765212571985526053045710525078042018337536196136694630788519442719193594854773893923792048678506882588071965039282888467290848658028802783034128252068522787876094503336631981371866942966741790304246367339331671783312651669650398267696230314568941650301637571240809228677799212323176732529928367473489094295211268595751980789153544468205349015759093947545516170852052695666845279406196152571854639061565110098340913094284065457794972712845392835676073012213414661131129097273248475399346690719829280201763504666807811086550975018722158035863404323202821025972009738703226991351430881577746214072669519938403377505266134299195756705638761369731054453115074951244492625961768847617734832766790562030719409924059515262231515020655015732267776322224581560093278003415473131230905640739034739995761109781223869048889170703774627394383398274739412975065828234195084632616424845634473390170779509398465411816415056932544558716939065313465654557829218599027938957329667620217687125485597646541044579384452909318941662722558796585830546361804826847974068608321648986983135173794880916353169050680905462059713124863787708952774114698490279309303836092962242626618744519978437715775827826227089997062439307536860910480616320397660651015562823913113192900004067192631832567979050323879076945532814205991255997694830938587735388952421591088992185548824769472578088115373735895353525685652015087252471577604757752852429121792697785630730642288782578067461769487781948093627848831744948194828702359002787633244312594154443152987252567387652247060712119808259349220158645549435825883945216989164647232348516485437398127644773888123375861126420188574905122715266676042996685086911291119681809894437109257728437536350873976027181328705830548474350378872152874631211688550688489888902844655278652087253612231900584263854546523437598881180246518428030599166789366903966349982128878000487294708453584321501455295562865581722907166708893377337364139231977849285860810310063136467149012204641873451700133607683223134648023828454326502629214002442422374151912732319695853750947826000897624740245535284593663000532474087360821917437625150706703093291661988833747752809327424658216388802222288560504903353042241372845152281560298495958823633266447035417711486506388316140252789170496526372950765755252565319339986637300415941437407555855387922026529385987668738404529709794188234220077850484643757971973681687116193349333606282389371752049029831822204954786803651143206090939572569441842003939333526941697530066981447868085737842109545151995342958153146443141229644806555797336826022843661800115147766550978987066057755193214848737618069329852909073036805981753195295713456322077690669977187857027379019843983635738269399307753256490840972481986676426028265949665791638025919415037723829717944683616111471400982503234603721609824790068885385874254498986738190577734403766259535352908564613239164273094659478478865627200329569928330858890298573829527163223239365508696524664176354749726752738745902320757521582637416151166025711499417781079240731097772528925625593832002647910441452157669370052291162854986393080043954181969482660410045562566625618483354323875245500068232780639675966200693097719304006468550853022777229154506338200241944801834965980050404778423313190923448280528360128628017876057760689804698076722934372702669200071134045864623944700822598177736033061161025326431956881113255687905120977489468257108196905838829512804543825806379407111763962756127066676375862772413482892429252719140948207692591647958407673509035410606696955623386239214421464302617276305625386900462003798447919331386513128698570048296459102808044164013975438863924077681903161022661076595391743541366616963152772065735672542794904766889101092198098924966402047848188398590942816827301918875671964977648558435924947561722421266004696011548069389504702634836973324501241655693370686482876220770067024152643261673117055562316563340006031151714121561017223682665585195414936059727584933044668601737011907826242457122959018559521771024363304732724482431425244808823433857675411827776068519312828017231996735657906180023641518784187447557558310341412343430434064180717219178521614652871083429533380516475760066582327380203007655909514199911323789380400465033550308241392502706979171157155997029471278525830096930808450969545035071629137143515268764516792319291463264074250473846145481223968755337379938836082117804057657383850015895530933221512320851525294618856336638482884666141280613161322988294977855946334864559668655628764067975737092693023241513777174532571156579441839719610591721411441306986742644477905322451456279029824682234115286493458892565812089165164119761624279743745604803969789545794313008297854569206455860687235783631516627871398943355716075532111116685593452681324917513041103763895377137569488923737126604321972778134966421191197747399559281666348176789843698509127409915803795036940111706079300353874583097769850451032537275887335669262151407891679411474511650785347946181801995605715963162300611173418636576728948079351158355737560226374919689867335903037377474499045343313665449624719297960495100230550702646841114269340728372242767130931087875639808472602785314150163233743173200182967671780352770529642058480080763323013635711805521355321049435762779451332561185427757518232146861662006919188419487393076133394296592515836548152152853450562878463985023905569876528280592220669503879245702303144085271870162413723427129095126480250563749535583932794087368857999544112893913984422324483278037995085060935821040914308026315880267704689126621258075738332854880298534294512468311846277200413183773996596558043682358201826354529740111211123779474762090789806149314974570094964222307604371236431726667261402692201954980230745991582186813275216917957699816173352284061588213550808807307280185386873962227555573597169954657174507982287413589423283654998842482067418584839952821555391383883263613952426396835104744727199847873140505528722003909473646942372486258174697845697635520295836772857830784512348554963081602477517250349634095025922695812875337783904899513181078094880387727967534589427293531856475008361769325491818995766955198592395352359444572561973170817706493543542201236381588888046069987549652577088223020377584074550658711972176116118670628133150644718425292650859419869116626888578917688211187795190060925372627766978229110827959196349995017526085115999815097989108119549324557046971559472892719078539586233093740697808878700328700961097436348733464627039222642871048646725594560509986775448273046330500471869104441860040669859261917430357355663609813488134610338380417065668234629264899251509351923132112655745497529864661002730970029559016226485708972829370314782563813346236234271319152774726634062590862735037875998271670784567281636532085487678781715186777217110768077404221496219109360622887887959240182990344839435759779473803853287749991042076086286671521104675669220616205906494227610371316781149620213568652617802865043977448797114590053740034313037504292609508228265193113068793175501580590380267128555191846805355135633563444803556267423301840734270474898567625802250253238828897503863981404351759617580555685070419399511243010929302059414046984464803426908688257667950008536792212158667662166498612918942927063633831850322775044596594960135247000429696719582201391117922787969041965425140654024943418405395653597935168001140121699495804196048784450292979608475635352972002362441265159629088164330822038742937501929141156455491704295693193799309361919438045706732365819392436300172338859979337268552051613196385067570301320951023057292458133834121171764595956727432840320020804326543877650017274124874477741648689891676948949970778671345076630079923681688344166847916722608538992500674581964718860837773928724759281264116537299232179417578881610193806259887367520166736533574369014432578778037844162987385344168549274164978084383699256142813180703846758223133586004484512479972094182190132274806903633136453257532318172660394941955650699061839736209973532240845911645028298065015406778147596111840783404412543315266390889090381799949165278446611405729168758142488857754495308471043703984584702738073057616244374751503105873473213730429867112811340440264547989211771036734549031356953495678487459347339128870958724776066386164439890760014305605130107505857927843682892934022744781303536787962627708313786444892829999512716813065020059685636619590511820435402515633532899939571043851009550071626840724514182749363222042045879563371197984276085195869741631435601142921369874087062009099083351485158156276905236158093129614365528008376149056605030328625415452390687770691301516200711286342292587529265235991768659386704113242049662059747314931039252406368688714805165763116871751736886704800704210859254428136720307950698501872738520611456550864793858496417054814426191518004023212214452260803851808854372699964021138698259138357827322565017709014033233159312771197990058351934955142831876109263507646464714064099366458786845400262473555759479566081859789285807459846238303865714877359530256357677486323346241602056244344186336103323463410813126143579014970107050171905214430457924869635720106159267739216571011662267413977302760871382576635945089939783221965030749130250202335437773035531275991988175046510279732999388219204309088858710885478651656471618411967408902074886517953830787203846676880920698559434149184709803441018263328481434086452718144465641165932816569274163664015640243242013101420972680622119885198089120988014422482164750616827158824469978060185184188357388262430752182794276588822016024444004483558179749761194164201847300893418381080355587195146879054714395410873256820204769724812737573689751046724625862412629947537317795851950717411449052000925413446604873911378610126812637546056319009740271289756991971259128228969592788064959624849496316041124942984016702953802827660431191067169563613316145000909455749365355275440440920473072045403069053227809524747374369434953122583139357562386221801421171618865311654230104968270640895341173168519215762569919600826528286421312012745571358816640556423195629462425158553107653957260970599409954283234093120241037759676044193342459095935540171866891239994542332604966053830945347352095166404052399475914975882586052270354830835964246192051273362175599700660654469457340168204339036797400277834674003676972180575363061290254089543516108155309836860521272703145955109785903333238771202841792134272010742965644944028646279216187797351049972625798479103236377857402494967570279690375075091721754868293542371090725339345445308181163134269457720544023331799904360163086450572785540083453963225494646277241097156299228614389199316663619616749994483132149231179128926406831590652354581067758253912709740495026946141363120327666912848660275838959240425582684393976252745557674085360472242838392293442084834736307215206628612414537291800501841056247951949226488311142276750310706786293051177670633425850792522928886928326993446562171465140725517912006978442651139252609616062021115312062536095221853538169511362936300872549188100716882592922881672689187680817854257556108952400555054155031980777493911661688329017834133624655988116234482465515974003115097419210477224053164171272067324187162938631082600622009646864651262944509694585488390057031277068731528904786625619271182988087647776115573153855909954860714553622257913273442473027496652572156011413391410660366684578714516458553805431694843911271122567490052273193569775592135687218127399141951035791692952040120899397789960936215608700948318310671242296206454855803358297874870555415942728317005546097385143547559886683346519976469446317715314695778883641055460118622102782105838794785642342114097635047123400073563343353439080617985451192265679656445575356386505525765439514034120775071370307647796648284473370659299530773245130723309588312485212815957953617382500735483282510315964668791371902133878889018637480142973204985544247382389673161328054895477486077789145612849777221193669007941584650802572870573856263741697213033689642113970004898416057528115006814081644197990041663270702895567944076230060973210079981994984307389081800805740799111335615772629733556420432363409553417521496553340701095115779093674923478882912861889275514208232712214985905922416169907267750070171979709641096562761988250362473552873311028007933166532065912357390529967816340183428371601129098712296873788372685818813428864286294628815303817173169347737220687581580830075541211533350430825587351551884850826177854837659370017612244657710475785110165077550621715467229315015234647389959367440293807029965517566767490793225517995302096536392266664782406518755118754722633108759029645963897614445179854306156811824002051121728533145654132428308923763774571964859468292189382701938893349034867300424667262816019908935366389250718070443786511463144928960496499788835169785583302474486985840479184222302860890887509553059246336468423576316746792222417734238076782788311841996910789037725803799197693901171909592288511679226666504156277855885488187260393654100648588480421402023805563729000988052840330997879792532576202270291642587501834498932986947844798780401429461310140118748779269594724077422413042466482676355899252201754539687392222025302013920053575141268021168521009749704597437288968258191241577200147550593423316717986529429520373769100641087536566018422366153507191898628364556812016826334915447558853485262902950774771575461391192034529569488853166227298616625437831450800723764658706606851324167505373168895662937151892002344547878031445739944314594993588567782375261034575343787922425164569766496393464716608195741914958755607184185369432003563302483081676039347530946383019103171753981122146252699411178666844721346826607156230488417340409537736747863091360345606238327435503382428569614627150421048779945677867526681413950606453725546611128860931115868800656522292337861831553193536423515311547862146516049298635689976945337601511690093441746886684785020237188874482550399118373747593292348178446367583987423122706790881043756132309948397534595252050155510463266313844720434398470115690974392370474575809323787731518223162164784227121362136345901706818281327812105795242003369948051249612859784860263963438332398934685432527376343080013464976446869786484563143749289376578833740379667962022064121841947090862251330024053918357552355009649805912451651904585424806959215670372652360876621805245432165876661167889082640449222391662855973245386064231505540624692958397789394280913805711389765076756706173186934668377186344684365002439932932580293745747438755900229869623467854785420802113483222911126997446723643127215174542748830511608819214949377988326581769315015465790992516647259922428964672828373399397130141140881889631466511977977785936589342612238635012098270245906513336597235831123780053535131083739580076138987148129084355269898639945970355212930370461195959096635905334090047194835334722432066482887682524433532322191942366430622513931556471495397851026688974594550453252832420262858591599751093838442779719113152432562161092620900363806764865972797348828599603188118603843262893094356592871283822176307815722901839048755964049407965639839650555457835999922014090272823932374774575208512119040676731819750717896751696956220374203169113553046457375938880058399168384519065692689244801635269352742865148518342267550362091832989285899131956199297697157049756552574925672687559179657451206730231471469202657182729859201202197801258039573843006277162757257249696715966186212943768510869319152202764064919910420474185300886666462618860386593222484422372777298717892901426358607403990116685423975763413042027423684797089293115282676576055871222766166275250972129933706068241490303069300542032831370816624578037416860391903472915004648661882930014012751768822193552339631798574192935704543289513899876596712313508396640429038180736560678503908920042085190487331091388261620663129044465120535403070855909410636160419043535250566145305390783587402875932823196306323682195693700753736811781813692242391635708591796068846791887266432925666172514495604181234340050297417116170698288731203367813111288355586355397035744246303781586498741579202392882859525360324010762676844358861541054000067014809931842080343996140085953887396838319927391091877991217453188662815302433881209850545188360039116737337973212307036146517340740067913102602374707185475340559912868748478281530328944982435626101299969796528045182122289984375356154389098336195817903109042999423407552224083802044876537874871778090361384168834536202248500364107978742459445894489658144085175820618466747117908301788593220538673620224799771471714781248440716450308966652874310416901079378882044605289903369120402978653193708704330966447080624067058039287062593798087654312712716048831610759959878568462900726624507752332922388195032446002521787152866461720863076702623150873497648849712836908269736823846525672127669285704191261385906467582593845952205963078768375660672249925281669415026462168969576445917835603937607794387541039557517722139318006306214614033502608826470175386886744214008055484723557469295448895593702552578863561240699732054386663086766088049140287755827980153842087280719259835720277027199183043935386994229835018142760046995224155681227860594752853403757216763249992887696427982407065082935933031892876769270681072455701514534761557535737773535151898341428946433593823752965914788956832585003695855413648019029951148986585850225385671830972510182146339981566119206941854162457901337247907646975361202021954852210050212363788972946289774935941050087733001232595037541306020863605715219702252337106685995033451887983340718593022936057241409700149454756958188509637083815478222512433866083791336557947396409902328343138062279711888948881770115628090470476527232063647189865701121718114170192329903221697799005796146633538561302077065422657449553449600016297947023302424859954808459572338440223697252537697515721299051177778015692146004749498622065922744804936055167135120540349233143719879669328503939598420075105103408261400452432273036581286546674985206414155331266530499658194693882254381234314275840598512615564057386554464355988185795566386599638839663711333942410314903961432010009327441512456400361074567530740525525408271872131650610754656340690589434985159668162131536452233720418239407548911761383968159674731000960111913843479900907860609902558542929806192529337081264568327456446314388645610276189789585386124740917457633628687331475101401968440566918665111710031960479549155849579259170720041096730004917248405644312145410143572637891121979482669051360075261648161469691171724195814099193251241997511690398966296854883048757800068561017849542538968549102005097599008687878211384390388702750045571891088628675436544473324519219430135537551634805762474167184621335947701660873745838400025850166327300843730956743375994838495700594353850562201005756851770630730325863536701369039481189566101631116596105451806616268175730508139263201991182554621649516039875289357900333567837142096261965870912181491788093381651386489627270319353397809643584038739650351032908283101468122235909404593672668718360840095313401903475241444262492051303408956948223066045456736272602790003065809537301763705026656167496662468531532615815096596388918660346874151908740431887143818605947194856634280976439089308396283530987231909638132087865925334619973041389981602522798566260686639000998425823075714390450554842624000509988410092796708985973856945839569759538826009464670944077025223933281952980533496130641599092260815124509863305960479825694287954773749158633999544103451703908192802066423202868776520867299233548691627215154755193049012513725332081065874421800277632535287652106440203115864427903612853067121420896951399634416463266042569001293997387314567297328236449424272957749844334023114597200875303428483405773116064892963766610876472767548403459070954488947056689272268452099183316311630540212106008742883407125095146843971568923025547808164383446363901916798223218337546548470117050737685001418912939445986923135172623466400874262337281718277787495930673374512862834047434521361353441203437816895032187430884407394708640902363385075800091651172050298501526433064863601255177156881614681688519316792093983515844942406878237834104384935630617302062849687364800733498741741963283941826442635027087902123701843563161413044169109925338120679445022909230508046885737085630897812834975967852020530484917765003389726213033713317984876313213518013145105747688855414843003623625951544171034605388929153660259737073275001004845876962687112003809204323103061579694199177357344991395604189459564943939100172563373715978636631375152605957892708303159011030579462302931876452065383074067567332566505755133542174612464702280823581585951093210072122065608878828560297347302694263895234094312087355116514127620746383832958025449761826937211089231924472941520444861924554356286967503562312560644558618524140232643619611035945043463581928246720669801917488776429845252759144060795187363050191361336858398631238833315806342798138386700454420310070340657014863536101575401197768975994958611485896662751266208913803546486152405372120892266233777040517851621861297740773729685084443686783543639642636452318070699961422122081310080856227972437119891726250759830343551109624647187908425405022640103114733562784062790709564180502589433154815623797319856933000855453770622533005396371029942761369830590641640914736348812532041882445731723108617904369701236821701199171031522746415164318661337662465271156385433017554264167279410162311908681729281162883408220541182078054483054072306295997096529586327936029653001271775438951767358736292470086897651430415753793508594503306891293202186901226490877991098591265292969299679988595414387212997547780380466265207748363729990848123746844542860293164393546194878678516667617337347644888046700622643390862642454308414139886295054796226733669784075113476112831528389803240862016562578435308950125146493516537732728488604633463354384099539236178003706178576995603797836169563240131271141000499408698099560792415906529881213592387344912179475454628413135729912055225790092479190364203076957066703114415082496190697182821366283321882198464085386309549130065112868935053385833197436872432174626920285970385024489063746560206316442008053983826457040107919062540688502865327351903044637765225905391070695659829426979668328067729790684960515593284081483901628962959826754993388718569068805621184635849987310883147464290612084819287061987225990188684358854383363124509365150318027026896446292513868421980182945940037115621737842319928731511882214446942746355274406021955235784478286562155231936891333724548864870275335480470054645293216590757666435228630342417220003047632234216274952793119333502016158034666054571009658596155555831066125239099758553905010555321930031957930289850933531764432343604112378627129502665103262732694747275872422608273580136002719562650456409334061443970594673517602801476201569630622315003683950434317528208627998864156970208395069584024356203053350155940846505144202220915802390765184035523749401660277183543097969965132325343941123501389784086075009529776896287116032168813786323526615684789971312078008423231124642451739835463720021812992524079465274487339578783037623855647016439691936643541822749133412700426243271813948594210877041631104924534558396681233046727777225346217384969013402885133801752885347266290679497788620787527859455468956457234207127414191797346966813371155717550790225057194207591445597157973231379636592183792458074394164647923077987449017970346487403983494868948428335719780249260715019939870628095324730140807474655752318666366943663220026222602400565958488741142336466674919258832250856338152803610783367868733627888466680550519970313570009459222139033973009799110409523881034935886740901567450512991960558654237628418532801625153413920596054634962581887006507308394325449013604351970767989320732128272657226972462171727170184537967793503486240505540405537135719634770113149755905674254699658436891269788728738562055831334481383516710798110248782155040956002979852836221048347836384736320262338801037978532813968951274683168767424844498152315606277935086574835394778101310989984060704859887403157386941171845004287275625928052394950415536168698936899322106118410190706068735782847116866871238892287944223653364743500751071731866264501247770490411696606601190050814106816816717466965181790018997126286697752964435315435906492884958701392756050515923583279254072045857887828462387444898241062935736533320669527602166055742178113496623641796392233998689208581859233984716812229861090768197490016598754628749169305051023811666837063821315608949363504119328289744944656474658848992462665661945043922582075735492223399169165728437288527223207258563029182202100904959259088442046570625526526192563841893666320655284044541173554092736048571118938478597411586485863542646024205933390061433433411197656478767794274799665105943031722604400423569755664177132450673815922678164740809489780093776885093285888535789820121690475202321389662502905580258632693506568977593313277113810665536396926531389422807803490599792966258493887432711497913955789467662652446728984767557871785353589992205901912680032251721786811454016305840899656001672315350953952725890509209530221446963451227681101348701529136179778307766929118262449398572480075997900064570741627683039107687418710309810069394962370249362985837720841802075626171316230621841729245599417823185699463294529087753204084124584317293410534987705824312929855629338350319372747196542242880602703175078390053475062218765026435663428255767706361815422729209182814475550399057956194720387075359010704230470188491187872430265171117500181919486947053126337445580617589172380693642855719551630402651093193819875536373260956147402790819176557805603935127095399177298812166603089109370498763014895698046631609001553588598604608669917858009189349771922476745072001940534500722272109246504758652123816798328779178458777170722096761535049850684219609763083077336530457826169191051266072257111119461533098999931184588107010679337919471095846233923721868792301100513042129265893916571342091425647225167411386009566063041892854481855701137160764302385084213141821579877670473510063772622757872921349570207629915979138625633727174277346897795539924933236721844790399574928056304253364026590800151680103354817322818199671744465495947716146775543708145232043520061587177047118417800843215492957356494033345123241518020891124571416619750254137528440513813351973458831146858444737422931882439705582215768215363661640379836346735624582007171256060854950287852687001849606760335297614696884732245234539561880330943549872737188194399064804546851808718455685223396252381745455772476350198109940421078181103060366675439605550851034479059381119661932584953928017610909884930252879725831730491160125148208522103035517576100458230505465432544293999899259225299211159516734993114540393364521039769441603111620579952073396613722055186266921958303304651341060844873605545620594786461213143984368687794141844320578380501116401579631694706962036622455752380066415132639451322521516747626616838591695849880761330457953561495809845678379749481601900002251417951877904464724928176139425127154402724014548667477212169008777037491923186970059554461112274823291497817599142938883973082143238637675361366982604328904237361376002032960666739162297022774618899008934863688661966019867956796956956503888229997301224842054253085379595630257093261002227759521838318662012646843712590188272117043700588664767034351674559823329772983873158153211068314181347783400169263619533686672016755221477287262404762418661263325590994810261262695227703447224972875147908248784347708040389912145882526432555335829081946116192916515576657562984791059527897142557988894493057093534933318449352845584127208235497458102802850635437599709909901454957622729487914093922630345557385382693852052201143084707037015107412759936656858854018359917163946830886775096081116807548497403777020153783791326907470531485360417927841375754066584845740243967777496297889076762138984378965105501850587605001807160198316917186175869279035032519501432974056557098440925636027190776519907056768134066006365786202351626038917064464142219163979523147513617535076690493702979215236850555106494039841281005276348149126390293996353743561357446475929191934190924852660046404304601000638921167074858161550932484161137323938165301190793264985368114051816830646389873757660645885120560187767724248844573902837276203264711703134312643908720389355952256310699029788280887943206169162172553968923571436161461835762943298865138162338045824802870449944779417369357574278568580781239515513773686412050381546822110431430411654932488394916791445222216048576001061105414120766934734864047424865303644979719828130223584270355175076840882364187999930583871438044617775317241998035543648970753408620315524765587533866607059950490053476216690584104267711254824655841902188455369040965667114635969268696416661672015738569312558230957173854875702988582294952583648260239457852098542642567469328404102367179500991237539656120089316150456497328240667098138930734334525289046815251727477531453521853274954883750357665548587168757005953861692355056240155439741725641554520095007883220139997759896518052684341313041390086592850076990931497926279901364164384116081134976377761087428251171702460878010916135625027028116823389182536658122855796345363659312565257771405165282484485412771248695784204885902653761535110376469231266099362085532528913396895977962857407382970203511150731920346385443286503183039054751074418896975054627954074571566864449089815576150306402443749184143904325125336726427485350055441328868070250990659999112078539168103779031088914983628692730990070314645685777473142049445487035165922794177529387985965549619152265601204069844608919676788633322162065928255086431451415038953378912389541213070998551141418190524955284628822340377233832654215608889249838100028741030182230757487954564600048750398834661923021999569466721719095742230272137940250329136912044715530496879647842378975255816289436551614926919524466410027564267337560097171015442519231782858199051806497798830126957093475885284978007316701287933189059242543868694944173268561135961269250535635999054747238260987085569558815936633561425951115535059249070960605808650910633820337740619895231537311071784794196011737786676344704738312301971927580574126176842651888974192317606743964931398535687304258005798688607039163027082895410578868230695783714968242938024826927660855860165505610845475433431884331375565778278673230278390872916997062408441092742496594906166358292987986789923644002668150197126257047188917222976187461874192117244014274109790689118621452987026471219430740572159419763790812669489281930970626095175625268323367519273211769375018568757412671787224006215507391376153837965404965326022986990704958422572873231582888658041068566318930811265862770376283424186521954602969537420054960830651649254636427342674449935290376526040037677757318448316645977388729005995991630121481911623324289240539726814018123346763499322186572394410328661464934662381897872361755618463383634977071611360748226442791598266940366134355897416631025607471977467372050836963238108047757058704211546241401918391728578653782806983210741755814789506925404556255580177183454621753049329751144473942219733125011240816774152786709876758180191860494418304578900875165512418103290230652800448919114774604668108707466867406246475649347052144491015513348835442273158023821516057005782647962083218180118305698869626135806898149780343057349502289768644034032818945593815817603924939484058678435888873661695113648119058212609941489892334002019967970472485901507161695958055982235474146477656109906946674836707233963594710540204772218701398422186926776288893662071532042282133726309919880656429476512112401357479569099972797586400043070958466942600964307202122600743894984045569017619059525959096464291548673091497770760859924255841108338302299718868483054948772936270676432512218409232445890755361665228725701316714554669152998663655754067921725812760370521855984478095585689660381768586217006552511342310109841952461640933918628813295518488453986371031763775400256111586694646197627284457572330155514465052251813509185509951137562863447326768644137012462115493594452208553605505421604579760638545070701288358195063107692849384500121923882254137183440768705012898823135995329751269016749457882341791448374960574263404380395513599700801947586668076140346210419301945307284088922659999880505317956725084082294890482239967722069084847065849432325926208509301489149323118659737757262516603198338235040365454716529120456634271019134154730174036856387508523593118401299999652160084306999501454858715463251919129080954857079736001048120550236010609008358247669812232945799888622450628091805973923033295745291043306962704907251283652393749060237749384716350641121661552313002706195329311916603717440437020702010832679684955078968310934710408546728471457122922504349439926715425389440430735603129344580481095206324986477737270417026560867055456483761770469735197927602955110941251087631742858273630834797624028532356042658293523931067058122059520691130317568846249728113078220140983765531817634509016694725913395657498136650022144105260437492019216628529324594594962457183616752758659392621182590028714912776105284883307467323384923604947031023344454140087544600240933169625040287979147268935251783690541538040380554842642198302287403165235960258044410404275015548297160893348330319206120177814712277917780279318709366149503324269821726206295292584357766554773651640728644903625141613013607964302705724051891289657594044039999290994939908367391479475756436284137655033990557092438195759657592569688925280772333625784267157153131384546677762920139283698723427380497172724615130768668420720517426891190097625872630358142449260765922729367342176868184707283776496324381184467946802665609709244091668781857468963851837611717649101659985940577302900246302552014039364291569727124618017753763490640320864561264884338684477668203750371255880880804041493752672406192892372875145251973039094071301666503028453792733829667588089016004468755138636308158548070787686134555176674787858144106296544671494079440300860024948057474928365640006856150674973920707958367881796102253598417737130505700845347113789747458979094238432409105068033272704089491444486999589664760546103480735917350218937970960627680857152407641403624196846576046205194909764833851709370040841549491332653428769866296908503914296931109228948305486743669187689337157848794259592015671678439297750052011009137932829387707620337470614473179091448310658647470934788159916856506821123729712933023747977072605686845331207890114341715189524942027798563410499184947967495842340027734069957471288424321702727753321832771743284662604846736037417112132156851482424403226724949930091061719308911800614149214099866019746710946501303368949539446814598206221710581735690706233943436761363379652611910390708756269262586493909140794778961408290541275170397983312156286164031078493497343876103802362758120107659511172076027129513632101504476663206773164052665254223572257130299843304118835868670008135434072348704036774688981956044203374181226282190930426680827872452374035472235272642490232138647602685471317697412855001068707631099343301035973339198660818060714586227301782716920597096305726146711975120300891849467651911367110568452346077245161264635904139718851470649176128229345592981248658301603474475930607079877178594037017131020471169873668627807098970253064297185993657517839171947306532774517964838255282700991016388009808659064590413741986962916610283719932580883313638378762805768206186115028284026216731445716092759440597232723660491448480189089880557348430145970462344299429457742188668687725585190498039116582157736114586133044385778762690661055691929572029950756564368471003598568083434389656620413036021846793060189472707174774425804610954258743449303108042068952982386321656818700112493328895005270938860557370031563009351169129267625646602030025718931501662625577938391732046340765867146619548292560234121473875034818600926271123663628764733454094086607092002201631993717504195599438751312281050103934992799126681231685877571220527739461841770423057072673670013062376398438712349789191878125292020387354741072299372788634735079930722294237285170011285395225804147373874651630805627586187352153149807567537023327038373885322227771129259193669154993490806161122530194832697385939947892509323321882273487478245209351415554152890825557716447353789794486766101206789212684324987892481900868708206828601713460968640963145242269277580362166996421676701959584892178900996739753138721658005973652442569366428432672154799287089905181079161795622791780867158308040040582878419729232061501239208087054415830113698016251513166921023664663460000555427134649810044704831958888261627816232465559872575963271808362391082174452666499123504908381210028449857273849201662175916677607162201300292787430675995916819583396542440965171388699074918724299843627415775352055709169883371876390428088460108216071536542201155913831258352987946148548628630236591991781270484103201953592026712849202025052570132618486943168074341295568499960040828569363800756870858454069875388633574229642341826237863894883603297300027550259560435677889183800687643010509867617998426913390605905446029304250722915273795161647967275736279410194197275631055616894889672429131789113651557426891708742986796630272112828608743124320901159755661266618534159306968232357558136862785002562212719632433754931544387529663461159640165700100059121880120457505817954285364814250347589387219922105604264243606588830363822474030496525962034482469323858841215591302897162638792362548295761010441048364497465574499367628266396031381537451468847415131846510508436300377111775664048532812940611765216580263858757199939330432752055309434204888004289013707471202404257084566504970190281333201260793972871382014701741729825099270722676050344167462394270117822629632001231405493403955379835606380567120563328567379160706102363759079692832861638440775370624950391674396516860655564709440614110740203235992110331455382131368378186959077466139782709529449882721795501831248837467403770124859516107653225763273809819874314913970800703400319747930122602170124712743537613723359239920328227736133086758763073656736413876357332270112058902528951205834824196970476790460309987187932456805950748695888629236666759157947607814664114849124765135437756766587486022360104563599461056156550044437795097818250217146853914843952197953636147454711821001245967312374096789621990461330770637548067852554612938979418600777515334601425588407097302676836011101199100328296626872099858790028179173158842677630909264625790362310330931455181483156973166921885439848610712922817675126593581168748251226986485684695327277610020859757084017607332294313559927989135288471249110802891407833199977505317627559790746489918354075173899826051611157298719440114774357217605838403148743774790273216831229704973269086113874114830496107930094499763440868472799910140467379097384756816279488690909321426733198688373869346475060114423186333402789692593064300948485463482176663961171066656955844397071954666479123836009991690796740260892492256124140544531719104853024298533902906022584804596608725592287428182770686678621038070148411127840069300038010790762713806761663922774088123816530649886774361940635390634239894167845735957479459238875753843401007064604209602692354558920200874239825780446073599019979733897514192536562655669530273207498542283546836714459088470888006333018361540098078921460043854802343089692244544839364887388026425563824319712691184832506375622568514755125924020497975264681783962396681349845082192625415610090851968499104829862153446753456249606906492020238707569067904643551314161064889345741998945553404950250563793249699348434200094293552521585374653750528902186667567781777281463976186169433236627499066763302553567775820194246174446201965996337294786810022960287310389122558365318569095402601488097472957817561392580858778789640931760295171981031248949851977242640024584307322789519526441380712205276490719479955941390125399913456178384110378555278337829179994193221219710289410185222601822701705379288893773838974795636615180229242826336183500218415789728263874164789221046753120470316558049333315428631827744365358036360198591678998812608793765525892754127507302615729647157849907812592559020135915505321060564796458766242544545943130463343206331289741859871139470898272251622924568023118230121659325767617364630799326210215196333262518615852659026679041463598462346728411303266446610400080716141770938737723899854963681245220953064933271169978084656064875652904481638951641694253682724320652419379951053805894474169599468562903936006656593050922677263429482162254659612388676543514621803805886434240157559032302386644701867105068522818822744430051642144004123668407249103070512065754756059016685792042237634253571370446293016969088196469816497474817441655286449868638770810605089114189328500750975248453012225540166490233688860050341548373334884477124568253282858231090946007262864238063281963007026919963985041173127075095967790356740932521868234690284009158537297642159386507708637543537716365522554284566433074340775276184808708261511551064458337754308012068770625272117898360105567816183744897632151124031653931879411266156337904176820408559874970215505329909504968420358331073535432292998247835070113314294479500941500587753024925708142523988156428950566563351419413821259498348381624803034812639060799757617231707970233537834854453899645731586330937167480625415349347855976828109488597656670653483510375849773462804656821655623248721532437901061547179962103962732940601938506365773067659559345207303574121039364346926188764644694644958559326767163636172123369703867082408587625308985130675289884007791787047765494260982532657337850770186156591207508359855016919042794377683726511730108956933829658237924970999850466759144450029577429844026015589753413126258498069204721912807278396475439053493869531440960006812586945661764406124764901083895629802425315503830233746839327233759693586649258254874665103241678025147589274430672136937060020103532503972035640659778180656191431868551166744106120651862513645035338891813594603064821631081168181275136461335855664178228839058012268134045170872938243086255994863075021385100473002282652114582745987525179408976399147710432448533253868092979572605925001405368981766337017472366915291043890471356163343524425623806461138249944185778638849114408031840692121613279629098197570854515073755986997565675250372321844405346582586701151759013675383149918105864766448162770373690224565210179158414844474465059180187246948117048501682485895951383834689611788005081161402471459058300329755687213493346847576495705491357096842341118004858499115021878215454487471422771558761812810120753157990689768112611934204672501942288534236677004277349955251157614168145915568749879442902510888838143005942962812890070413951547890734876138392105018316893910922088332783960221075906346779142320617629795060124783160707365522623222446309745760977213773617432811660564208165746811266321260622246162525211763281307619137267603019821744775411122233946584248266311708883030726899082878513785589909238379637078972731791705633707809501216141233382160834408646833439814532890322387643763152238311767140180940871549463158291486063074248619299908126134224314990308853629588695892210799872124028162625163892585995831161854201076547835145539122842919903207565104098203968175227418228856174837273892325309660157771642836827788660043371816505391604817396300876251634210895609006975085736493803653473050430955013526917074462468003805246012544266947525925383695336303260579199787658549880228314262755370067996713624349788591439166154902089761772684445211029307068652866258983013196467163982802535550901887609821433434428494793959554384723975154819178156453384298871209751147974815821022436206162228129373638965128298756011071987805498007797255233711499618198455030359892097337706255303961521645849780002922219622491563156933649838125018012893624058571827064977120967379454572892957187728722301409361412291096079179665302064964620438928352882947514952326318824224311244884264494097633559978104455288985937827360565790508518662143875127768106037689227777880167540523180278201796837869059019570329682659105764001745479841117202530182447711107849029139839626751372644750532152161437375972851382459994912590996327195003883281191495199261221710900111851643830831716116413562447041539650675741279385263711358254585325718668354696010055654072022166877600210011702843574022154501274934008101603788537670584635296746130863910590855275180695581356177860746106138398877282916784056515305005723609607112028183628451362715207778987417868169468599071036016188218780722471626608390830280410348533928424027742707608666566021865771076319186104544933432155407182758105530582595985967306266292774745933931851271905163211274984889687920643255175613482320963127196410502814081713258108010466632941512028784539540834188657526535029431531232580023687843797571678827426056898269141527206760196444401241275989729372837210301837557424142354586778070530980538210327370453440024876854754125586661074744987489420974521914083886468861769755807936798214064493858853690417912019229882753961989718381615793332969049856150608452303402177719358129519987329252858455133069973969760666924535586447069908517789400859742063054451958279192447633268127668712146332333396229637740962677021256943046795412189454327681088579651512360467987299989256394260472854861629452921067155022477534726830544647943477027740105289952107491630222948997564179251946417693296588593335726019311877992715381840425076293475258034380313448979911648264989576617163934359482480696816034068216940495832366110455257301497831317812262720528838669567550447106875836715530511323833367834004997527561705296537128078904187297193271897114113519459312429815993326220623456687457127972670879261284361368467217319975174577738821831309472797692538189569885197088315291908609886174118299022387921255183953844339772665240401529754274050653411592171082511155129909695228274286563417770583922703538470974721691722043341812475702562659146240539709832843060559014902066229226697099292902058322385380724962142662331403734205211271912377639691652081328028184331186468738310717061389048621396339036455089948278217453018522600042213706641456789479217705404146084840897485107975576393151364311370185458854217853866065926308171420459584810650441395126455690587862736412240020035517510044793969048102001366474884982163135442686580130574642000399464437181300505460170452776578479348449102813005145669949497672174263065046939814902572512401458041272652515514611369991364937866733648522534495053376161877934547202605161507245513504969938250647790416367081899197876826808502176595888839101773831816406192543227844767111497594874068060688066117135300750466901201413800427494628939022499019153494097509109777652349834188340861582720339242800439595785064817312344055963374099060981260813134170896622321067783004697859549363163783545040752572347191139237908385245151069938124897824157930467240640918814467051623701445406779642797145909148658376158865819226918052313372296011611877054431765506596395495523514549424888449870266986695069246416162715424742793626091474965157135219930379679915904094917372025002679791512233892707738716569099820689439366844328205461657712815107025013267046370848743955518378795949524182807519682639324493606842103731266830330178215316294479506910225942561433824365693268934983983432528043877346668179658318635467776411614137508624571036072054866073433081869179220266610784790538549030089847394741093336449190668380242648036848270683324998506574817156084539003745491533272687156719389619340453748526482615033799248614374633399700687417436837102709914491153506059994023410574297167956352905103928913451673000870692679498273436743504810546461224265650211776064403473420090318814069157313733150671297509764952447509162589730925949856828979887440709543665370639607993457707091970744704954490552079031191544512519032603714378065692415777436394302970853201702340833811055101696679131660043771938948224267016187626449583640358548305568112879919796194837427676632987027072317063904606693743428580480830359020935472620037467574901811534686597743132401899707939779287247213802827433245445766723130776908342159300481859835615231123279096263970721113689706078035865143169413111113849361293900630796110350625988504903324720872637137470874689836826183849058714833042961768008022675827930402564173645657340363472045338785018738410252337305106110242053260483511570634243596497426102813268705629712152305490458987167784344250253792761891799710805942511998185708560637653280930772539495680070771433834739394224375500266127160700581518846552161309637733102509526490738819939528326908444239064911479548081365098785824767610244773177001870446400917130310841021362535272025898117134899720453987107088447649498745545198739034307888770196307439594180508374539706313225082708143398372050764662096624297317889356788182698805962206720885754287264672938733894864245038956667317702725460345392709025382231786846225851024378377691768722316845212853049593936325513156157890490834294076771833369317724679357906861876518756539134342895689353537057423489674139664950251265080577789242218919257851125427264560564552273689255914836182958458683584805144476239987609970296008798584971658306959146538441627205547577236269402519234688711418184626633050490028977482465538197948857301353842302687793329500248572614271312339790286137332643279749438722438524416926474121028806578725133313684256766966096972985462981714359261321773452209793348202831384294543663094651880751225082213642616495016997372811403870251699558827937773946762529226615060311401304922224355460662002131846951026775210371008544659707322110499710901315059804150624567213722169379212707243388520324278488294189377659149152755367578486497191611556532957924225746816626555381538558326244367870757191153712611033769907087936399533216067223439732453497859228919062853112650607335918087230823396923230019107103269630923927922467195626503193917537882774296983472892190358272980126346892716474458186911925917572446063538579428483147002135357222919737000996373374056691670174456890514694281795904477900558288114736022026546004376715634986127340776505960999607588989239110309956213981552460178444710508552265153722776642161512433828661567047849827316854232366322457831012915540309699430887569884154654214275807640794947684309737423201956883919030281469322425101193452118675545721210161278675248777943525655983878936108917447698393516728130506021765945745648405736445270396756278397760982247931078571823274476819429691725287304966338701532271492262747800789966727167491052493331955174246926397356062160793069367489630931248414622996250779083331823798427039462979926473910146301236178637837336587500557842738678868288337879700135696139989458649389068765414555191015005428420434691316641915876664895673020172352748830068990699265808353877507443758214796692061227588136254657198531953957749949208620736679729279197440211919360548021345394214199528188666549380031937055514991519485750783035805637297603044383917480144340905536866639481861109768559044883686162597903849897990291215376456781690614152527748406887669057293811341513573422674698049812038587721420472790641815566738171192275562925821604585613618308226163852418809384288467084251147753043620350864085035385932321307920620516306302461724568096375897996755673136741231314650881143059729279335609611267172892629392651798238894266935762193222037337176879247278619295057895863500962533364593494244139607698372702137686207141673854996228121234284693616871232869355141994964800957310225637422449854523677857670624519099420376532016032908053643794949415456025000598994646561112200872790392755268066596019133161259544104644578898051650820615533469179246745689161220071398809849556109418109129225672359461859402810411036432834276715040825467352494779146924821646989382786829911579646158492345410213526991945143323271437621277543807222204457568606709502745104466557434515225539578697482651538363314560332316814889324192051738441582949535875249033651646396829008451048848653884868886699327845797240161101136849800798997653046993748278761773009126631902041912349265348933759479922398637626765752485721169885963221419310005102639259433620728070467881207325396975182797580559102483558525598757004310764170214946233353189995034166531811939382726887056902958903724146360356817657580571383644397183685314339065221875071247604034609443726906988739115821741930724698487478651926336746489086429322418976112182531441862059804584270383589168250399706796355227859715011369084925470274849706271679633445160448000736842013816368139437266644227396605013071477743769309035929667584142458688088752708688761160187530130301519198399041800062856430123812094351318967866763701911242038696469893043592469049238605606581599832740670616760203143896990015288253454922657023609118281397743140086659730479017884718300182796729325310694049944187114735452355049806341332308752968645507366513979681559578687867972642101026140707491455103757342818477181631157920368916550271587993903781504805599353225288981066851735788081055996692305246475026309606964365662657474631675687087394519422653485427005146181489177864768903892661635100450465152894939670912106819308871279646529456904097412614299587016545094631895356283940852316046345903525226654763567729253801369843510511318907661640722479225016968992115168759091178160606554569082439330235895008068439887396054572213913258224970997900201891419807786588009316767478258972907664970665822341229798925631679727649525325184099669439670334523676208032556251084331039628234682347155706800248359060491068906380130334848046883013071969454073407727352660351565401973237699499505433824506228715694263072305973459451173931084555586861298566440965512777985994286146107336496825225913545430359640165519514913292605284350513693552178800110956962238817147480280570657422267286143464986779886601111933588079273534544291093825801593775910889814156562103051549582121207511141299666694575296002377462919340390377640875922450510367039400885849627511626140273444488583326208548689968994790558758073841854650847837213881964885231321073015258009828021749105311196259063237400530834798260539594317573324392281411286929399541262524439426025130976837351236190360459331761703953206576830051692336181318394264595442060831497463695650190249468073993152954818825037691246507920928625222217829658050250216539167832418971558929219923893165272765638687880724113047467989285413076127564968904831396019114174324010334061714571346650642916608666578236154300177791664849750749748963191119510923883474879946278273511709429350520268046883168843409024385493154321625711603807777730798797773910792360019159170816085738815963770382732260386144810983300977987284475202352804382204834731288389957976416488694846017237326439671098093573361103955270703981069975266404969311536037921516306646993322335015369605686336814067653978493536921699787643882767279427759547698111658294087417466379498028720409432283543145193311255243666407748493955027491927334593159103528345827620339448430326461034648445048349236946208183483401554098358418503430768549663399863176072816296142527822140315163396300381614497150097645287711183899907941059051837713944217927574983539960387430631140780622995337056235112233568527319220571759076819518482000873895203837824713467694691260381772925301430155181842184194543016432778638327752248149337490642383465379775006756060155485650822837598527071190209320796540190684172263279353627665840842069808965944144853228624939412843500002242786660019845003199641084775569948824530563502056393956530029591746960325348046793680876444395097753737126723316042974292579755175812948128199334128053527179135187489677642423049678901006658542835301823284838303121629009174213437410721093687111495146983841023074829306888767607266330210143982614374477229499753107887518250176824725344170232056338741166788141333633173174539626089210627164805894852130112463358920360997720132018507714893092759468778238581253762160704800922847613391052146650800875208394139397240133392255595218853784292522495451086254541649118549386289787147046528030815341478229519617109312097631320916434710741390412512607195378944390221729131147976995657857487243027228282516515445438025195132289669580850118523120074943724993147447977248008731006013835700421624947585726141236889041744210297661158922453507867426434113382663287285764847459056143247401494064068475598877685092966696948406253095714191839784459599021113427256327578754539040240325675266932711156416896978414472642493296463255245413692249587965773438076351003634225956684602254290606314810543398392783713304999227097301111094030953737998515290241412622837107623686614148910368759927117422809889419839216444353535443451709139602216846364197967481287199363561635307119596031427159007045381099266845027751093748948169215848403707737027180251712042144585670780690573518863020693050974018587141661452592676621391912492982433084511370314388221372692827935088951698953953119084257548364144409899596345355936288560618605340955826281581500934371756136604674619272849616462090608081816143148641987640120511376814226184682517605383086960847953247673664877351009948309965062549677019758380499537237213076101006365648036216115259254150961468740201646822058913775240568350441198408174297590870822292748242624393802006110058056097505846894167628583984207375638905936514461710656239992612039020073863944631539168548468307288231903907956087359623764157930459662377913847633526160686601029691380627378356169193626904876887432201152086868828149321037617348925695501272489502326775163844892063175322883457808928808943327068277340952573656070858143630767309581439771931792010695131987439163102633223525639579496787214966200023387029005526759369977626819590118122951686707821751180186009733400601014530798122787159662377871991730771215214190300461650889887463422567087451159894293310229443583198741230439745519202295694205170139726149100146360334646053009718469147567761408427787027131248567014919202322725972075128443141502656819695742569256290415991703754384885670375085911156454699785877056319205175476651131202605369786697615440925176833192478925124978510284539581391526292141639887352149127936353290753861343873278958164825581529439942360759124291925859873322090745510750270774050518388257522094772508041527191114242968901453215103209973201956391228007521058312740149006226975950390702206512366233402369250277165366959363695037316659511800623270120744330583594232044498344313758414769012983236149269794253926027038102434800131119072599309107821175229913469600476095389246443344719224336829867370881639960093016288195200020722350283036023753893265025296318694809751981758395586677289214329294306196122516923873578578560716487026427434876713829360473191697766122323677599919887631267071406112883881693816288637983421926024813557945885445649339178130422189715290197839330492475213975072946945241288524036390278016620007867405955006732882822142092496993172713361014583659120449991868833427654311799720106523078932202819151340101356378884490043004013321561702869125515391984511435673058976098143257624147794079527589006218617028642441586256706482906714785560291990022499432695655895056609478301704772908161054107574411452477652014643708847826981116924773916875900641499460811727850003557895807045297874861669471248334008953348487152698465871305367354099434384851376354452565157475329594635296227049182787895990128415065307306749891704307577433021120455052016033996803381273105096968181689255943507109804250699926682885008509903299453891369671151610354417635713953158891644682725222613276353448718661092221020977974331326387025826837027094495247599320106978994528470474179875992078873222196137205771300651517860831938449735701676289487283785736224104223206031083472039608529606204008896127596353804292418803474155670540073719913271279804005460088567905386304972156769891785905652022698730102323912689630179914881393561521467869772731792038208525284832341789083320143789260703463064188883465238368867765079152205211823003261590308407037365143611820334095648797895588891930663526506250599609613774880282188610264268429030892348966813235114518345256881136245538480544125027830812093771380395657266207540129472849191650694395914594690428391445414043486215821335197001409855738184753756919862275252514898147180534621892385147039133923580523660623375788837645569245900795840633316436144940612924402432297565557737838483701971958114486036218008174265964925316829275936251162085307868934096478398388232945676600164968170939787921348120770613540921119417398584505557635296137529052366657592270797105124952987218177892263758809085688595893585209551241792176394779447087045417681054118268245487752995777474498137966596773606946515854322212413526622053313355424376884897652695822760914298629166573945404630087010157917291056899281426064725370409944290690670047981653819151146264738948458442934877024850431260051312252915477644949191191058773801433849229527702280875015314748355363373312287713399803290336340991771181096681283161626239444247082791366626567433018681294549840646491401404239276187501551314313799315969069938426167594608748723780499792352712674929066339906442756713735923799131334918274675042266545436245088855411680955013557118639063479986214470602706678217947733749908864579750685111486458972807740113424026785204846351266437612149551470885591189256597622856985773438964482625001200620552607101867940477137281110669056566931829586667845857218392272204346123257101495756437514803610598918801489894290349579414251233710343505030248164205990531038808266960771377716975394761443345932699400549300337328911017454175509844975024852455640781809333237819976955547928496470692743811696615645607871983969911029208560039345775276492624003216506076809980321658321845998318213830273148129826094641973313234873791744523562175491841006163038556591432153549923731576917072422301555401189191989780151768181571518740595334470871276362073390724304017410078488064278181601695619807962361137334079030036002853932385920969886908429176479873159406149828690574065181109150894035218472116197953685712110062754057701707848408393442819804618780531075178519489606294188889989505932397192949334183447629020725484476812544499861671305370639543454305009424461078661266650099359589989694116519173809168561029685626431206353370355185277689194167101373051506738962300664349567507300277080648564510142407017439919275329338909789116481675822863888104219021949151033011248178983731916847066041533106674427675798154762309807029381204937915956632771043625568766426082964025428132297090461440670015660623642078279059352041087535592223585453848585206278853246298688055232465481058204646461893156375525637930280711263046602772181068170815242201930477252730643238809314799638420016604707538903587382788216239227691340168163923266087557345130301166039263277015092396349034608790319990483956570709432535768827984060550207744999390411195463348607598835476837868695956156507275940640163115265913505828668168789026170849985031258642815244214617253528428743186228725775209099548487865437185338419741429292727839481823309263653256286400293783638520836140867251801679169915830367678092747182952892583451537514066467856599850569956501990734060105988714099490344703701363838168683818491960197724124521702528362556330267439115216573706724481793650932929872903385147491143188437656610672218814455799483604921268025888082985580278374277622187662603730292304987769811631442762747204142134733807414082946524529157947815499634340124542256089448847990968809088573898438859380876718447957401999976725593312766141449813098400583597111173258743180056143973657082848786434300337128776285611183194764733074856673897293337079360804313238736748351943135410414441341484268233660558322607160486030363238675993338021203709462853744331471823367051567038712499984027499688067991769674457900672063262731016458225417893079851976531765043049190603994503083869449892238311211874077182226729346746597144442786941618180553222364945412382744942330471834106460206711629361488254737995761551461149625780516864410188200682736740434210841307114109304471909724010116755880484738743727471652864253264990758137974637526323625880124699816405818535281878191655847075759173807882462673409921166747039624485371699359692476590174569760972932011926006956460336201281733114892792905870075078705195951449088301967011485963319270709180780341989776315819606069902625967603963276671978842921865160453185438549787301967306862390720049534082196857524803450945283045002112149594521905720012496874364444550984230686819374697562537412771787109328216751058585191363714615940905169574558640747542908772319188947396396490080641311645016257948897683881248919428224253537491400237012100972202206423145030293153170914394753287545382327903345625068593526407599688577429515480274931442374736657114724747638050646686975597811937391992443976480275713225833395715105282644397989353171584591137644883158440453169504769989650980434866897412127457368961552937698235951104393173897076887143392039317260892413302233432358025244285036688603584139661308657873204268775015380706526192800747947094600339264964606114722536801334341451543239555086969165607749455436302228275876957154745720367028750155119684408487272934278561259368006010515537654256604270736261922104434380355277213056289215014449184080304273053135555866410951173180483501343561138938790886836572506543120306860102803788354265414935929766001654370672607408450492780648998222888276546282099064114777476930461352272027265550864214322295288082648194330287191437055794657187787672769463478753957503625809368338442311378577810581927827174737037172172152692515052224675698858431306091145881104339226933133829328748062554638074674962920290780137265140335791689054559478895941895292004298626334246188666564914815437619064955587466660455934436362395357654969102717741438800364801908286177390890711285233187383226899085393339513646665682648554696164825720661338986882267526402085351483331325355308016882265109368642101566816089759434191617627434136252277927843915453549856177031836615507784919525706157780216460446017340657333087023636902305464189493458741785902094450194716906080054179567801559773249863104083474481957073163974791424673895336732338390417290423392799490787979216239327000097067614173431181168571062777887556260978251998381921748432225270325114388514244235501315238726580998922623113064768636463188973529780632357464563121427795402811051169378877509707829368091980775965207299236902118496983606924519573796157611600107991205752827522844769057915200001765254661381250681226762649029701697487564295060132801607495898709948247008485063798020046362506388823152152477171892497208336675000192913488104057773333483359603045889094257505073549239634606598805035117536272472482769054413951510821366538318558625140284517505399518731297369976663540225371274257416494705608363135168085095650672594791271150093243569688965197863574431645605647887912094455970559631151310086079624419340145061533879040722912156490361599800182146189558540611620946817993564588222336755768107157590871043740960598019481416325299472519977289362242725411392812985535141413800027132752677640900667950408420456205823017959473363852340059901050698219905030176120130946171737574652649890889853295969755377390791751105333988865471772027459390995587785823983354985557115819769024172307647772902808896361992119303829690798150380405819390525690717790843678395392396455180136222645808096873380479278270440589482082685579925986017627489774208801778088575395526883486749424589365738333188269743937104115091888756378621622900936962164282505337589752410934865900839887413591110814393732274128158350286132256266032279331280943358304194655362999504690020808526321313147328558054639199910813076387360822409279717572336683204324795908901883885129771656074992537017661531517024485418684993094092209831653726110265250915923112164529640489905106858801551580721993390850578209458301692416156281419363084298453595209478618614345918640876890026929481935520724928841407877039847858709568132633510682975660448462990998482950701887674820902214683850305009677468978945203197340159731004271403229394416311377990813187847899059965829319851199832828206865035619732412407057954272134115811870766601551145826188603630146568967055699646384596550238900893144303398847299725153660947974580113659527494594346332540926167028943214150087504974274922065267892395768489883221070032367549612150422511377678758105091961571757923456960814180632804770995388070865059993246797164043227760670720481539831788299022141889283860364550939143083568215011261712528640519873329476336509291867368304054179025890113116496086615341016087272268772959792347584870898028084522747849283954159361648049342834449538142260436419052887039316153389912523953877523855801988596163342546546557934538375516729542993013811038299823206956567410456143124303384119010097696418835375557403633991196683467828278493867469425436713384112950464546358327683568484608831969894839821074411355301362680597586274294554704340152692016722349959806088001127588256323686242535050233916470396525291773847152300441608584382435944990981150563022613401240245787604827485844161304548033634372669837557371768782140090272611170044511266261681501892779718460170502142931277702663393580493654050946512048712231025434234305510171371419942955352322965778478911739914964322257702036925670370068075992254831669812713778819006077754683335664028592545457489729280375917871873933356609443245308637349619235230951765323822482139959770707910674844880460192542561085543501152693120009664910001069652771829257138082165145575571376454811765762602517870120598574739283560302079070945581504218593432859843306539248509375488913047792805326528451729481106779573292968435002790205251393365791033419795682329286501789820983053017365621918854416982199706603160731811586321737150937471951010640217678590525410774938123723981314639737993955926054185724160496945149306781954745616491426163389302928152299167235066714955569191880263156583316750130699797693720559897264348232151969428838607353239865696493003808225725385341261189651375627505764038562277733140931455106928630296023752461011185530188123569029769416236413275935013399384644333984341410968009365967676464364204641578172285312359093514781332771429239384456802235478070965792995768146447774831728995115793194785332719047541926109518054409605023474244928049437325095676831620273048032511528727786587409172010258611775033540352685622957866873135663675560952848692968803251506367030206320101302860636280743063930962038368215443090246594003912862931392258162598964350986175026260617636754938164202748466299599569064354602167699481528442313593943087946134517524959402582928850576806953474069040254607159664417028185845403108477767358697037798361710773351393644252212663392938167582205050692371728370523078740638219873971140176372994904097882311304295939478304165866936734870004645800351745335711298374203818524424766805113887703370413499043998356069721383450595513838806200457668588475824185349785202254996424174187316886374315569709248604270585920638548292119652451366962215729511762103322922356901367613673814249257733396904167944597870040203591870589140269343357144785211614524542764750395352785391495359434448839169022108262575070995730236626060064723235460848383744468952875836153653468017934241773193807465376400277061744562869308825201536269263276963123038834171386397367522302757072863440232204066203814349481236642363844043363387542020199015256296745351756595450131846358969185217854813391664497055318977143126189667658512891955059064103968485044587085261203173670506835097229599801172607044423760447125647542764185811294510339207579594509358895596319581030673551032488926008338388241490691697859025196796297608417986075190570080697891763389149672751956646388348792525213376010425055635306097167129452807037510503666187785312783539563909487540359916189704406915912375470726860279527466975787512436947502763989647239494033306322124857938511538337712713064673951361682237815522792301076262111262936850036284546387068588734230060190335717928297652372818094775040755461389575768710663145503180204685733599520487767208223550991213648394958019766671645494516488340025711140200433436967258965762381699218490136407268435199886583888409708114306117418533366382927317735373001241487623333291293312370588273702387553284988171901598822999226559220987383215936709774824119762500847874822905393315341285944247470227953302008930925168473584832118637195482159767009574820514272817849659491098701342075500164314356531607800950346435877568072557585591702407350771840376787404480821902257853482345840963108503959150972079367755875666778745748168356112705120286728442386340642878303095675393842770837883490599002033931395447995441338545542847208382742663749335029067535346844622649637953747509355438323680597526285169232088712123043553456891414849632477431616718559289317269214740839239404565765331982635085545400694519513921429338494659194555291482790262865279520613399210736441355703658191487203772612906813483535544467537600779560746550696671702050303080914883006526243134010038524740483400488160655595621504539509345754616711338943718371094142454535545263347652317758337540760269925110899027561097804248502478002028323042212108876114492841668462382191916616502681493425257531168401675843853826746869676507684888635631639357908204852568452114945052115242005312263384188658901382325615438445527762341445213314857092972940684393876503102852560091767791246495222937165816029793413307406854921201142095024093036322337674225694144087334585076095779080019893914909772963311820955444300815967273533173000577822794902487189963280747288115417506861108382775073338065627414813119098393969492174965450827539161275148698222795842328470207195718628869525633538396185223518518415569897103949440483855292436376004468669459409490535470803693841230483597038524761603460391559409439451795700826746685637626517476033863205786749399776640953664393810865044730504408301310891291677920508324671665804837578078369727408344034320294106702309514198992581823972009411178500806354452338832954383749922344522775533003519630338017563491492642249246501506220550867588027321214798322627449818447851671834687945889995855585000886342072443326245386982570064750190631791377122146277298638623531420096761335632117887569427594885127126323056230598424030413139217705419272203048297060299496877579570599474578216425810447797649500944179641965493739425516550581668436327880532568309465296656091682968811021816609944100853088652006746686155724895007338014219033515821921135773612266022367052416671300351803093267281281874189356739705470446720238388009165241343017221324562914256411447747824614808975131498663448255755133106196509355090507318453069994582584527728320653587005481222169409608874620050269676153771093176476233124068331246707149520869968341993123560994201229282888983650454487074544655623091581835171480414819281095776425132476339111230559755372388592067434239241261906598290379913094706931466102221794062646851330990771510307411453725457978592559934406539550049213000643876999276015903056218876607826143598805042043269446428816423508876797864410850627139466655763758623298404769795877246655056989102701087896072574865289466314645428831980337665284228638780452282241116743673418565301422763417714234449786162377253948945769905637448321256990261650584780630864222664372007834882444109682123148367528668387020352170124269539444083401253455513844737315679385147569113243826854992106356097931021023000392769351189395440637341529628185267128605875095551291690333684021908715252266529001918756338395651910597171960909087792346686618908962503288280514719428554310574563534394089229619650518304828771963110005401891889461613702758072093815207301332687886203741244457001887724510098885823310186130243154981126537565018943447885577037257416482721383788133531219708593973123728050038010885590688939709254850885307691857823585304397208429522663720513571195357173798140695112737054268171667181234157826620678892505058374524368317231615305595008588520854609409181762651065994662083304256451631564054686604295929170855945947583811009200005906598581433746604298834028749092900312875718363421549736752838192373626382284385614222038662889684547102730967450572856845952216566191915436173078139508426284372085821174753053346389062783266977587156470472723123428580072147917815440220526379021991304821387544423297838183853072962133018912045891588778089998532787147451790831688418567776059451812758383348670663989252500655628075981385226033825293884530794233200960305064776979398760182860261403046848300563282410469570635185374447877839725362730217300391284482378279720290303413972854863171254393132513324315489882316836370799685864795226300534254461801691281635441395470915405552210851962376941616255795944461234592081177731952124465974859135332044038392064386929866676161097267465137382099275229583359892908503717796020530888977214364261885341960397287637203518879373852061372889703147061005815691517629679261343428362861631390903858009716901361881401996616390740388193855982729182774879613396558962784726561459355514869021398783391961591305187060977452690743410519641035278949857657285808304459334976093850651891094571117616008816027253361825479870043742181102729059669740967458375099588275506388689294687511470183515231565734463251269803658180546456212155237571768586027673703007177074802235559560224349526221710079563259817385213560013705851479620642106392450505625525328118791130693902338404754869715155375658355081711981508569707659814481832799652733036455355966603802405939240066435662601226722584003896228655691335707168426623579634892461509517142729359106643919422394515881228247773274118480727547849524713159097066158076012661227636779115992331299069758694195199432387562356226923891238846938771094931108710448603793789025027978653899110137580866538834402938561468111681582734608609627808653317228966653481293953937688745589712400577343455553222278621088193162970317804540993374793797674896681373523012967938582838308384641704858970779245293023900611494054614609853664695170145772197816489943099294479045433927905804814816775552480435067593994105875477720970042575113023427280132334082725973134768731607156846387872916645529726767896753341581856753747518700605704553560485258090744386122712838693385841216671895874086451836181801923047699698595771557841996636948711996081737365616594093931649552693096884647947420876013555800372128342994743832933701172579615363609530683380700456184683467031133378569708631647990072366936986645730782002098515423611631713255717184327518008677705215029288130717492396285122605469894863171967878702799360429708224951136582923826855612599783832068976300339464401491962702221953320129073568673649714230310942198003314942739084232209311881772138813534223947555427896348597822262852829293402232823147425480681696651246852825441012067323859285388062803492955049210783929876034758696342225546846411691567717222477975786709730103377156446919745922017301358117986944150111894223395040290910354369971149768788341959670572890861375182655088781798517323639601912857582446118363828872095204503609746463472428770943081689557325716695992029065817034604790897502100575287465896263787952736428258574201585366412446644810900379119463351322119331817981877700179700262484906671037750747253312308430957324863064757374365354933616850722523992391025763439714244586592741030864140808303774653352660297724638341784643493033982048721875146082505651726534788861764885727985353046945524279055225821344181464261378091097315915829988552836022794890433955044139245066283325018599478727126977712583485862222570011850948980782792676868607933535710922130553120050196474120420256975440734813319617949842865644562000365333484401775649148711470159611559787764389411611769444106688084840697636117241278581206321244540171641937854230062945626453404347759724513071819876083834207366835664164365140352667876592376427494433705338626515778930621387319915465041029763255196618349599872344706261991393605335881890080981559322290250233418484385373742368657882367691075831019411563284242118086228682815659970466177444091078426484565929674386216940897229390496804815832475802941255186105466190834235845096194679630295803233978980032365125394604880413315240567103881843575894003595468782947016956105638594875468694935393818667008519201350055113631196594151591529793178928163287038017430648461166828237178457929057573815770437944900059765944364434872410892521358785889084150174918821209428012745654933986554074361601820898947010183588413413162868539694047805377342012544681459873269667368920696683998722782442570849320050136236069836284552683246663573232958345954402563465667037048692815823065024430054094662903636962416611317817281809049421166009538162593093972936870192774687758220127631786323457607297868972079425023772816348856086939747277620226538104863778690076402294241970032596052348644458992337173976765687634828231419637008021342344405909707882781896336875061321597354954602626525073909827287615311831892026101738267039874456388925779573451533099939863775366697745342396303452622605009050506445006123209086187125499668668984856940497064072810987855433203247961746742312813576550751247472707055531131652324092440808293041719085765372952943504082985143097513583015121823106187132248830103838808811948324603205341382058484242554464089673378849919666380550304050141079478712788656780025022027126352124557735249433526150635761855709323625774330920713404164882958397956069155013304784252212730198830690935698512671897159136453754220767769631703231572326531241336779382693452137173741724223543326106283297966384381926584066728721394274842577292940541068495817932105084075886749088450613069680287329110597367253256995995322558405165213771807928321859805230611800608801059166653745708350568164440912172384002835718739316022898665303444943530504002673063816713590435384372416243698069726703667931524817468215202472123935317079278094310305441135068321615795117536727231410332194011260943054684282410812986794339155308340900847307422074629315171227036418392486352308669656167710105728847865929167191372046857504089295278519814138680288664358833884538588047086705999769839004349715383138379565955275778379528736378280607045197141553751880692797233441634868448016329207026905729175968996412846946114993659739706593849446751956678257485424104758491419602347383997857068859853379461516136141899576667994013286008703749114688199651756508791885815532742445231583246523213291509797009180085916551976614716195025473788644944183048956397687109657248929877760430793854460097528958518760411503129680392891232583542738735246178323275115637557175918468711828606138696367929393231847149976995323281093353190986554664601081868389966115956545535982296471246594928381410872762371305783509818915412366521078559590825514894089580006598963238098994672700578533223187743298561579435269352453106539584353769190009890545686000189177084741088972713342754167497168476988973614993242313335677133463829741935090433743912659633005377825074527397623348580305538552734765153786517263083964699030089590335314740959762403004093793270347105558912330239042313071213441028081320884273834631437906792428260940154286489207131511096639516116700912465356635396023953878613883179726143645583746654592264733114983641573753983011917936691640122965769358885862407853136379709696991282425933416865809162919630143248568448671675763633930330146838473080451098316076956633961689572443621215268554458392490911829911504540224810380139492347750273669239248640645227527044993585034897775736618955321425576156755033033013618792825964650396662576008144278522697715515264295410566753424693658629229585435802406686616705124016951760943902971014264104130012928346968385731357414817225467460898052867686320256526030144377508058750774356241444989171706570552134974284990655090129280394788922229792053097133814531177570642486931994321708991868577689831465010388444631567191563873927233231265588535701490145503776697762067958368409622608225664662834379170823333384503791448731906386611254654849764308605652055373773578783496826514088217837826753927677326835016061123536530644576937356962269540752614407269665640541201800433404099279961174159998760382175198206292787320700339135271190608527860875533042612354855224713609037698449024506425288307909747356363403500066440976911991903538462425105463764057134454131055659916736860645513879593214033042801426390936809575405899230430037548395540148936829680832622113440348402811460302729578706398161252302940124354932267466792835445084406681208454240311168740840846694930438376112264456916680470292966051135047658813807490735629244956043206902340401584920999787921018163235751446653795808171988163906246260660344595011179922370089173822986345521365937625212514577049963817446098711973924666341517548248522682810363561514891912720303262715316567893196358615452467639177275819102898475569240297486061302158456248355341917496914297833345770858239594800860137502045481201241799593790578918388107513800253179930206255792527784584010206768270817764491148170805806243972846712077094775065104306188403623872909910124158517245109580676799869076181058564106467312571334874054249830532458806762236627696997430256933245717836992522599735528594574005362832092474175136589010300671397403909952697198165503864675324997119088409687571342122504155597756162429231336794415356212962712563718217580848992352203157454660873508044486604709947565342106169901844597119013857085406457703282177705638980476286836279744997324567974258895687386813768282843010916997333286238575726061677190189420120859508999342738806438978721108097039917131570782951348467392503219920901002749351071965253513187138276883247255727784653128417562810158724222646776186743564607366733158274694305779219271453128512662304118447877735744407668422528221737459078061086312843168085309204298523134944590643040277112235420565615066210681316445002284456906394359619665197126322929148908449685759773453176718453402464335240726544919640664146320804146355678862844152488446892154120501852645346496586214679155370931976678049533782826596291196439567682125208815794020855199083069493056533916737864051133586834625121569113810503980253845391098241790643791724968829235185746105999659899472891368794988170223727852197041541185526576635773462381789912978874516534632638676499804182059259912431058678913282570756193417984249599386962646868027247281557559290015105565691625064919884950242337754276391541614282639873095079546094153148625529435293653879526027111909814469283234669028773704442050717949466309175036898223363607415588753775882279063298582584419637537341493396453285978922626126352081256043185233496931313556401479330844221200492859677402598607927092956270215600853507369207440365844641229437177907510550766961851819309692674826163325750654261044167917204891853364968403160124642911530293136054609707499349345978075175129476282558442169522784431741570477372644950937878735703890307240267076658930579152319048993682823170079546846156015778713003365441673921603324053868451347525361036202360359105360233582990572352854135506337983414987763918006279293232451463317852871366298657541514638944532791984387100600089692434772055202699512337423754713960047240964691668655048097022488175474314136418735691524044759696974980745264487935799908463449365237820571351252157478461423699409646975392266903680325931940173983531217941698314996992381148581773063960302274251455449562832027865632549396186692742960372912017411743186123538179147040922010447522957225136359649543393195681204261753146767523796803429633450769812438223111653889406156635890658087423127915815060942679958337743814534997995562930687343406747020024080127970354163561005642603422876359622802190165618469890159070605991508646131782377280458032315182000689394903459705486165578628793564754134488660488137642550216549761519439373716109242246759141588628675434875627912770683576636426351271627360276946944283784988767233549275175343436438873711894435288869986024636822614939795878610033327024857905762363019036472046264533637331705196215987363062370210582119603348679236472505532425186256886394326833120415853476269904902516723308412094067100809648978448464497373204833798874305264464379084068739514571390956413831909666882966270742314847046000078481800461664975332473613027076233385344502191669718591028447781990663957309282611881951918992540247354823375334434558209422560018007886079466617731019855832915645866985284536675500768740147309557643372989997059423433132860360860660129984769781208487963268682799022693748889514162459422012795459961624681065857297019846525963140824095967891251725003915630022838054684869459764172618919861798170332583204746167951889190947031491685010020701092165883304016609789678922640218453138440704634037149066875004427764175265903927597968589228755397316422719996831121115997645528013048097281176804196911827087069153654341990493775991015628596450198489151582306843342764362946641409906013638347348738319893056273366403243724952315615550419452837255648442801236972663891304078282718726077216156665774881954724581154480325561064037997297621206094274794532324465794741926857325967105022925692738815980292975612812160836579676011743116780108796378624557980344229046984840052629880562836809419031090248174217740770861997769407062805562885649785685350952023060186197882224942823409074831240961535622906887515761933517827727985483889205549354512921925770214273268716948071789499678300416885262539238000226833054179911308476467613452564930328383858198274997395281389693722479883998259370684543976697222131335128428809617149146439673280606318441521359152652985037042526102649358970456487077524569404456673020123108539232213793921081294856482325163223628215328329103433398221424200103541930983770297575692237830076175860909914042917022162025361718163953868824125239732347036838671774493248499459706878904656761960259437345912455183982956685336927301950534121948571676816341043409793516716535794685482052755888973872761206768372536630933202772331274142754313053714860886135369111349232850256610152656571812366403426096009802977755471101936027913422054046260690873938909715167091032656117921753842305923727085888529155239265608176664184915957072497194538967029249499464337502871730896926046969622573580475700083192962764479205457116201709072330167931687532202449046417813897398394202075382699666470411482817552245975510013287472089358352698688019324374288862853500960023784791072371461002519100000524316277780550275385593203686832564949920714668368658021631343980005443201988793552034348295487728580859522676212274247576899150705904274718809079182220048258178451282096449797676006884475134691964490016828840379398718645403120176242593764451389039977633889601291166093761419457514548904843921953259154302849672769916782392407463682640277239790870855088210567994318843276182466900607713659990225951910044173574375794583989735834125825803729779740137139414591328865837021378751079630040576074881096700208198936743839977366676226915936879906283593600594313335010778819150281399959389892723605290404093243242641865872058879238223504017532830220966704194877913811733558923720448384117470797665553339291608402675363507992425303077853996666310970147875105073211244627631820448904584686802628210528586438139579640418084592589535630825202769463032997458119646312413126007928893244767433184114892874423796055867659114278589521993472426000980015513108446283840647315826195336351677660738169784116211233348967315361133983848812989974279329046626594271211110360101479723327821370724212538053546286777827423720343733602925076891225623459228594691950869335618528897920750139894085601780785547776153341692365360016643279460163802059662803014131863982494594590611046074623214027711463349578987300307692939001805580668877764274490964246445089034287539820160841245945040398453267023442008494814547879460336152068285546380193016584641654383562387096497509758258977091700356914430370939459441771078085993750755233962777225840767795466402191795434822724506184607946158470220325991337976088196715891609545375309813058825439551120059421215147109021145029435715218250293453647731720666498722143397211152787294020453003343694279428920985942024771174152795080594855996272956540417470619180339051526188347686171001077173762746774781398864671344371350624202077971470609591117859108977437705648586710743557533073517678535073143671926845143168450648334625857228280315270146240747940981980828468631805895989556746458071519192641880822612574472015742208678507314763698148958665254307953397775714955191525854197740414097778905820941108182814114139327838116205407743341982785302613276141373087229024691990877011405638388078449005731017281558549239830732274622487750616389028865897918904628831453119945174964489942781294658235638685862737972459898117335013743809723131289208389871180084603388627719905094019122894571567759564894281726462378862615212826212721748216991649686505236326410794872235286164460712315443083480773681038343607606762427259380828466404551178366787393231286792002787534566976006493685193913749891922517406329767418985538872004861972142054213768849486808815337529112093679990343802437636888866576478505041871250668314628800835229870863222043543310740534331120814990929335748261146668131313237008015276753298731789062364881426354172494190701723462026377414302869232612103385644317612455582341446418044539407417421846318659766680208979892731335929414991397743616334605061799459678707789585465825085509891079231437607675849043122326068456620424462481376000880745394566308353550886511074912337587281885168862609946869605681051877967301962790936376933489645712584350628463299308094705037895576383565410693754556523575035922129359096177501962612275317113073466751952344808558283958902075206454401513809244988656623762942162946397692982955061077165596234733594714288204995829865777319606390613854027070608165077616664953636628586795927547442852277206798186128885733495373936709568623411285481305750513217915766154484784555455676280060913334925887871722621793907580366911981282348314532881176050765299295542879362220340031039016464008797099315752895742382714792463856075145658833869515899147316757144927939996568704974477401602516990425017837269315093187184800731420002546592904130064068024730420531100606944243081642972262946329225106133585058642100358819634973715076580732843728551390066380277503280744121964099073472278198817784421504320228435026331506176094620269358324674100760574721984828162500008955711526431947122672414161856717596506054753753304506216160650144460690573803041574596543600369505319027047971798265249060629224780578862418525991206451348720234748932564288261570870116645671881756234695032447055642551364303527710136285464173670902717337969772814397227366613041965524252027656952026489480337629186664086165058026180690106717863141397464582414706593555571382376436514132437528686345748115228990530139236779331673145164487707808362158097757727515530719573086994213016518222209310274023130060206837475687637148914860919840711708457740331808042294240581834743639061439397815313690290060563743297184303242993831838958994668743898410453127805165157937587928392006016412179007580475652040981121433410679034895495858200195014048361747483381228229162503604119138142578715226083219483460828923093530523700659672143959539408328567983543872620012843679573042140222198420163519134773690169060345059894062137263052418084312686847459394774118988901775821310130668719554957230170079010599509535302921133622560241155479094715212032127813122464167712407892210059646480459292763729359682350136345657402761413078283521971477253226092575219184830605709144746612065569875072914634807882697801346877856382247575715427439362743159267144607569767067272423952469914714271093974743128853369944526617957945352875907556260203058088937568418118834443817508683970958041483865868273730910437239715070627354273748952991014453770158428770784427725605106838409747482583983778369098855498504172261271630220398329686069947171081161872217571903529958954138327181508365355430044433249453506535877229703913560661273565725438123275819342568965621530123455775863899329051938448580549191523818798372296353499323218266770595357990647551502957442094333836759518473783493252978891650265962061020453856368341824357776449080085569488891052664318010636112849176477904393499629538855729158739516819319735453815788425612387102250010265516077089067506262299286895228112433126860070578492334796947845475761844875283928368449158753728625008389939318704955991366310751522329495862406886149650434597248252937477452332112023295466466150079600515800084054944882970313727006195839638916390017033209439126321582476537948856403564215719622642299110533595747754717501598850762173852668796614798290024463276701902804739834280094267099575709611667509868205478884811764601637853646952614858337185019386201195080434123490279488656021745508519538184895473711634576318433765149513086407212463750990091337144077511222858983220823098325308617939238424922533174127928968863182482697293695304543902578420991015715515887131070362415696124506343255199466265631522641170715800993128860742994953905985218255720252080739840396007853998405746976046255294180884634321988446070916528537803770762213925088595443996138226237683303357223914008131914197987716694985487503897921075155418051780955182975606852781305147592203942355822756846802532953080865614181545760117197896066259130997785461968847772821049935309727829608045269164955402825866900781157402764357657912906021248387015934820169074462953960482712829101950363757302023843513527225598391104132493376835760979768865235178381780377135526615938325869952309727757342031783617648477172926850649726041566109999848297542276987214209277177590967397825991416632936676825277631017222026519891028173530570012528574666698157807465775018934666309287417213295077663445951900662407653369147093089367623814299687109333762271085773618616709552307595963353347386389199695187098576026409189812175206266087766626528385277274729145602577356716802244404081051946279998986843548050923766302619054791452164707759941012532676439772958148339940412561162467823354078887777089452340080665313160554058672779189316395230810653915447882458852354103984837610760221656674490332176378541657509388487969940362697080818751258780798297291026790411541013452043199539570120721276865642367919499928294286878966441914183091701389525655828461603178427206196689908790720813128357362370664377879925524196417031335002291345191641548981082642693327627770956551934252328225604410117331137607463230216789524621064696527727775205778779421375398265096908741261139202627512472008097756799982712328326741166434759482004520764190403808736764114103651391643238921762733382877297122895124026939017067207703623667643692819510238792450632133668442505859269994988343877238584240636031583908752598230598014151141183525060260116281770378498514587237888184231933758697291733641505407324929561518311834873283562461746794051931936099325251398162665548200639718221297209995684515688003428559676162740938982098304267226631656718415757395872784242949851954585079075756628445050199087500350267183532361931649736802566447068153386504081573386059701381072616833974200921352828606036391216122934248577016201304908351684341546709946460276207176694902888377473601895953163180089263561394327571268262883422030122172203202389570753922077355332635515357885392229642940465539834413629606906754646325582822722705991758761414895965379229974613067519416005701388546818624169842805662925354705342715180243246584272298048250466421282642143303713800364088689600319169171016683977182073571323355270287251867824188466888002933363887813495361247415126210230259798798810245119730885511102609066498661048950979561557026871996822391145943169326331886987204212741631900987740998264171274032171760059308342135007282583547646535261554006447700815634053842108153778278507157536515455341882449287907490428407918966911197019357684167274636703505828435189402341550743418714571778522753155198118189844402176019149314869298723015652594857495141859998538488901688883473898678731107357408999503965425119169658899089251647163742049907092124560350503596650219135587500184356110191112423280064946658942312380330291257526710778001415171750530922054006219454316437779120984199043148664117534602767156663513819136092661520801595414873697576253933200892535907837593242042892625778117085355533205456471178187719652384855636951402327483612510652283063489223392697635500885116902370630656736185434493519802514329169496272474131909205492189521204734317650654897803500100416564344405776519118052999606254543138899264328156636699090061989679128652055414952011029094038755585754310786387782247772816821819522104484493260001468077731859149647055607128141033852118966143928467851936089414030645475260999143497136511478276017704255773869851733044964997757749223501175226250669509349590064606675588033410670971162132984829503892884754954158311512872434177164809194655214211868648013667696320821770518333428028943101703109280419495587724354688538374324916548732316886650120243754748055592369454376845812972207022592209917912910735177592818588379977471003706140669124647758418272506945151123394615222154355254561034208946698681124293122786491926050831206151838753540689664112987026571561642079344828894469019560435584347048013428109414292367292364907669156871630254661515572236998683183745140699133188736024309364432191644063383230986418151091972129525018394439288393060967624268965883646177790672071757029699413590304265222241870535731283422470970127861367576304315884214787632595137796047801293146879841542984502998751982955541768210596433179547494759677138179714154182689102798539625016473321276028526661180356177542037002489930819719384196346015679088145809813140438239783033914131796364754669853522106917053999816926759667242389676350150103722723400151905657991309292473769746499845204144400839171408415826822327402398116433159468287084004769506282113474944158454934966344634216747397119520642090832833776079445293841104786963957277722722229707573717249134262722373679780892254930292057519938244379105308816049518383898625320394249409403669393188913739800643648449830585155626990113203168043214560017783150177694742708740848994256564817913716747711918229890124492293546324281616858200609883561915898487327358453967772236763855333875406605553821468731820304693981458254385550173233859043035313645137040763015785823097318341805055762335682935967427489206541770712516090342857513749493942028610101087855629421456300177278921484107198240632621654165203966276759296346423300223210272904967866406626684662021144226065020400720869640227482373358967831635025843791275161320425860428709821447650429710733470072284866794967997738987697735547027176331493387187628697646782180352503119361068656134321554531785034383710667241677334642777408067588084665129676041230191351244411052758845494147013349085524697715280272475804630986656945109156703713396495259854763721770767159578529779273360369635726775181262242649427884604430295382124919371821620333674492489204526239031368046852022092215852980808315974606838320106899562474744113213159308933311577699485648453129998948085178290338104149489090904547479168317337782282058746482580222716487382105319136606321022147830426559865023466041978016204938448519758642091051489411484157274504143835645440282395897891027088322183652555539993149040097480871736914800109126822532933051181933313936850901253099853497439033473623842036871003983698431122222795007281834910731241926273213275237516580976333668141945927255809614528223544584836897414426537207230035229939933586365406577173042346069927147845155314745516652215861790611105464522615585777270643982539409257522733127299929695418310789237464302223225470912729865183717947301941535676763394972437808938957208063166967636432785800317808378502247012338784967577554586789788318180809199824569654781543516738759028938055748024601795648014858470660183709918213888602250981439967893758941284611736112530701496100845988988629014302788606516873619486955654051789545704437625213157190643512417292239564676859187449362733817463823763735119429809789900837423776858666623225643290228088447613513016966457524821550604233140071243480736513740181718588590609497898295037144652481092007053721969229723030073164849774339488140757373607582662682757672072132857639082176324672289496256917663249880916193258890362070079764090327064208507462917534762046703201317362779722703415770469527314672629221723611101315316503924270344204335554944488316907693077940401522450308148517655415865647879052027377265621538842082647140635608021709478365139754365631834054135864869577830082405229998646196629749049738828254709671249908082610076067715537103069892635456258369875965180404985935221529116853828652257428035354817437995675224390313273106747791437667442557330773316752749918334763292069079500927691692230324316871316552804532452497424300643567993284968918702031394364580562308019906005604835847368763635557132958177509822929004105394217109068498945858880484019131649118746784728967307910501227864262993964960571114789792587502042484105080259217945843331960324973892143134198185699388553497701608169911433914914331529554208992766999455408613095644596522605405117311651121397393566042313349142368160593099494246775638478574088488206704427266872637132215808166384497569852636248972877918558029490430424863471520506082931561996100955290933057291872155361295986468147711511472397419141550724611183230810655482062155297801152359065474729210108628796063696686860251986504390038984072256525548265692164069093620846059139071714854537343160456368639735422763905212933731618588193685465516351405602205611085246406587377669570016558240874632310700876424921093019290895891102655641233264561763738413993184253145121089771974945457805789630612275728617145436222789648647420896714964834296916941084510265495046543970324057564821979590366237954171469853702428134951568846332941252237626635584454213331895860866104725321073830345750136013959655488174072568364565078967237876661381846174897428115220517207856217669531649220117030651442691345749120250506417968625386070691000392841912412082242773667127885101511736023154080735265169703524674695796275517559315396059422488503410689338886922036108245270334502507978838384901955809916656772166399474209803485966624668021440581182675933149320617138189232173020585989254310662891922457747509909255014855281641896562960849340417248720457273744656278371517814974487526177895658639957842918474076918693608139991438902244740668268882621392135633775030544910884957462111442837247526792615813467285660994039635815574935895888227007287545874909062157189020733512565464393689786440381425901667227511006108282754989263339844865515614433115990451159634315253126253285378991824500759055052313723314369990151527397600735052355116042810732129599426361801774580387936038058141677320582891589884816884778712933217084939309981184456335408552419745361218270825477970704407621982829373241919363952835543429187413541158475485081048453564007147469743549946237354517029433310524957508554894624116097264243078591730408986991793039293947399283165995771227234106802060299024170099032478914410483115785609868425871786418998339855933048077360315379508054485976877339637392334970112720786102317882237182045821754125976122609743729049954699745198643205823572449782054696877866053557650719844522921369021685015714845793223249525645850418168403390037561874633479503746265464104192448786558528437931218387579664596025296344732490889018204445789437403181249387339970011285581786362049115224335646369617903079253474066891712751029669990805840408022727117401921020230007917393340375088407898705856806487880639890874104304314004844987892899701383178934576403851029907507029386215663838059783479124390430982580721495990341890499676528265413226553175026058860696990582956480332936797607045384892047432554112225174378501467618697932805286170466575481357291490694579814545378258356968913601731405707079278184739908063187947068113207130554774676795700062221892201392921227100459048324694987906788493898182250855584730975489362885857093528215834401017766062569226306248388845534705959662598596701659823271735416695172014175737795176249085224759090443337940868920811001951825733167093705057044068371711673391636298185205882446106327068665691386159102200219182381294683840213324540634061078460275046907893164676813079185928159740638942606411593874722701081936702911824255043260959513980216072301856120237579602428947803159920382075122025460104214646916726330595539665708418853469410888108589608250934675916590121012915290729339087933585097960946109785540695812876419637337750262650200391107956586321513142330405577635465688633983326740561887184824548191481635414853270369809922560694090637500756693489369672462939550260251598763889949469236638257206594749799222105446072228098963112878437242080723684435225683864149125343272207794352816120089044942976291277248315066705944920825723639319546190453464180912045310275121085899875805556703599724305480149841644918036401906571192435193873567408159540898844428808300870331072579013657331199362745175246890926502477104560129941013343056672989746044061517066872167147845500863736452676421095510331558206596002389316807685435842597496731875120698915171246728184937121961531764832638590464090711367203203131528391782088627663945271442541416091624295893413644640853328455978255998967421014430130097454948239558915969133143588912024323621668713437418117524731526037968981863071496989025989564483056507020341276030945217299573822075287555118770490963177063169758999011591236229313309765880609023591156679471438075074787746648454270075135701368606060306719157875076979701156486024405257045123105494914888293637285138882359696952298374944883603455736285989678124380859565706139609646646805140665063547485301037568489686994596329084437927817799178429960364817715770712805323602657380930500276054348343507063535753572769490574971456466907304280609878957148918051505122444678370162095977145999023224064836102290466084991784915222862958638473523354085215734454075477135214101104328033653259766514436260643211649363727096319151956934776710365114075382745763596056582609147124674930558322630758399962861639341466495633669573186870705603307186434116659712606599029367853614280535212426832646533750600710401020277639176358960996127213691779259110195472801668030910309118174447567746199516492430727870065377689861269247038599062178974096833799748334616643085152721329387568937063564221161560072444641979100754076258643154255645563597984287948489147278215463100940561278330946742230573472621243738984498977341996876326718968121229423804172139778605076171695395508494370435710407683591413024493762315789799905822655859809698026604779235751830338564849177156944802178477737125212768225047536643925847202441955537283259823665497860948277338180210329222511899667764814556881555960831622870573931519592458185540550221837406840236411285661280651305354293595477498343580474481579867801882686822838753060147245826021964748982984125774550143683801600409075879310711548317761652430271995381217034405863859612842733482169767354428707405861031812473969706651145662437142299868140202045485043907923393910800996087591663509945446703758642131960160626812169781334255558763482286346358514500410684459373135689581548921907957133499540661272817002640322353859526118482836419525626291073273160775325236973549574723428229429318220723150465614612608936093113992486401803990788411241532350428974774179685347226136897269320419226494334196503727580538917880449941929265096466553072693845289014390167092083014264113989808837440617853727253777878231312988874972919497114537963028850362654294913854992023720928924730998824849230287398178393376886520303096453630994126069507607732276162260232207818288603692594314996359612568452010664670761983768466861382303397691700424928911202188749967168256399244523883399387810401868884072823741493902577895718719059713250433940860304028694066161760849722636502433094849319579270489788834793172740882562760229090804218164889150422753951085873422188666115912395910261233164271258166099515943950494159253190413677248408844327512815533713549075111506477879710276278349847377068305723400506397341828939033288379374854865080634884849098082132469407016973617148139413044555938305729412271943983574816306324871884452356220573596212162205466538336640380963639668655265301645270726661289513149658783556455616291739177893261353844611192807340852983892423197738665221128711385993874258960820892413793193140623871483829214082770753533884113930104696781922905874986847390904655146711629382692179941860755601390517551878590906475351026882528826988425316517601486712697549389880834899447735322088992517993203206153081425208957347671282186261936133200422943694383005682456228998972776922693459578013492357689306545059705102585186018120098807828252701824282568210799201968146581270597828194907321528139149391496591492336885123307450140707710240295722988823006088985346394760221463256072941366664542406831886702338571027391893030536918558685117581182283817313674111885394731001386466952623018857742217209918550382228741157645410430525847419051679577587964067089655607811627304795493174460669332662267010986281561681642595846455280464621397824309169853782623726473089415535474359649424067981756998415466747862883741349787783432989968921933527777186486813535992625535137533873705778419048960713029361144382188786178555711421281248925783828202413966383284435976967425455608587207788371825158970152153383232102464663113137340912729733729793543606508614413641260038975920309524466326041555866703927048460547206670866541718134038442329914450074397321393519762305243901537373520968038049700684853560412698424663504855914310553459692342040247547901198980151742415291375718958523689939548261880294293092395360760041031496156609271858180218331946532910865844255402414480393460122624088958516237449560771505521314806024461780912028054444685656767115978759019518745740696988534031652191837364586436866257783973318691456723319101766208293436260167584058608835795806847849810526502270143453660869601208185530743771555974761557014217521217911354612333252359315358103078419321138787206222377407375257154085858912574816866168454916435877569646485429937987496412563748577559654022838902211887697259197346920182653153551786452802139955336841196294486339350387354974360401699521574789750331568352334110174605595141611935432217762631721997585322194725814018246430967562819127515168768090784240271302138303981796596002924510943198953134313890280570900323370569335626274930571008485821478225077444882841661675416474970673590809188550532806269545421590564582049523221216295273999348320810963427182984249890681901989339584612785559062613546525072759282066565698430021088802573691850680954345890250138839912852813643079459745696091012697353866237914586749990327641010945957604339752230766387951001835794585188391565719066221124084056909502531891052462321344387245882739027495709022456933583396757996827383459686815190826933412126764181562878290728956301976390582062109336646422898416057322775597305751231274578579129801072125811460078335915925047474506230517503516811861748746994107925508020854841054157209325154503070769550315030847477456734048119726052999069399016644864211939298538128497211775079219518104459746646166014579245599136737150649867620983144302048204503458928005809795139356731941294476934162497280199339606817375956672569475109491322397617472954111100756356286997195225576789602734587173276836055217760369945370675749419395473504872624327666502304505169203468720210655905768700533615872782038087611481398210663449255096864230590939489518528222341722253656602668475174490879430648496697318471085247199470691454094455663128426082164129585743845337287887604911290959268467790798161742527712794118233063178525054745135997200957979536922616540744974550718864565339196016246346598053157871688188173310908548873318604946745288108567488265455049902943746412906534027052541558271465820807602628118409054772346008437143454402076664295202885051581482784758164970310392607048931293804772134129352425640225942292637072956976663075838616725866404738239281756533942581605669855528292669008848138425432425115675470482160070172858550767092737971790437555405262698631253010026239172672884519991223321292023382526097403137934249312813749238726408954422472428514820678035101184979161359389334334237336667896998807361390572039836612055790743629457462761695975069461080299790470250509209717276526358997602189923933459200883250658058306948892521736412690500942199153509448879517127475621471586840659617825178934673574577372027969497112972476803179374230855417692993017016056126806735575225905097788673848998724344029702347375715674392513142878421909395231566539488147342327895333096987106703047271991285231689156283075892688269381017609971989843226335500447191224686250429330049074269789434552130732701125803744287406806575348963216071545014497189100399499329408858793597760759919951275823190088069976000625460188418873615680463512578827482237777612280034875377839651377087530426564569751591282437484264590484146996072705823394383429979535740553164672814553403590478254588772021449824045058137266073379605729558983647401965244759296662447976744921035130361956638987786494543577982650812941888509857314452545082705631347546883351735398931335984585518405088800990231214523825677473839913152908680774661537581516423799291061056016140507008568451769342183798182027881987244530423835274144509112536135085063198622869673115365765751968977166250997090033330711542384530430621228148742675370199118859868878287545337367564565286025887395473877593164202436888257861564522111502857901155847455857745097480777537620815118232946468121674611902945692744144078786225910919961562111258886049919560260312053640915189007596765667930793478626102995589656613745474384430918492628296463948183154907295064308460365915638226198755191319017354690182520415809070191244114554620902193048838718248134801962511776762046494410626853784647433451072257584525234404011890197284934335863817960382452765807755279137084062226142402529350858460621844987002486968541602155650914112428038563668451076989609368395364780796225813623604900411048862101814770270714674727585145849523025372896632231323986590131269441405860221857218603373460481561553194611197695283723687313196356807896312389679773829740031241445367604903642190184536371723656564515351022142680850901779760520197419399114305792029501393249871448062060882055151143214282475678490454274790950931633191929188465191460923578917920048046420748554830645305807922728729156075225448460189700907133314402041189692015653044763923544204353957367460023516124598318648333227599836581080804724880547306077254434959100472903583678947390844676117990824284216484063151567052553896589899434839428250771449277169604291140474177624969347353640471954021748616899356040716944953932095527786503005225409690723166963438785788034600861216771801907571190209311505085835097900304004081541671313539012118088636413594139038336751894958492604005055496310866226267434815623060016686803408833208857041340084277606814960531898218885984522935307568542535570838924340988685509890503945352565028542119796459442764229719668667947263582235157596604136972092800865462430067280285009212790984784448431358115916519131009072732470677549421900471675409179576355289305546883461799258655559379020993402732835320725873766748268382054383889541694406795906540436589043466538793289293273264513893315791580146586415549219252836949739452973687480470684813393475132860868716745438791208000165880395703471394815033395225079308755934439671908148190288667141565543286012805921447489292415432590921813731266363787114154615852743380528817405971611864957281095393508052212981406303569102497505921418837909429707147316397251621995584927221776543842820043680723405251568487259614817264904510164432229184073660521288385816106289637457468103313757040738746796510285804027470413016290438424039801446858622211118925318719222567269050691260167011774476515063232586999455335080808601166870960069828755852116018579080670087113049684302485850962543322843467518174359324199196745288755644938069282432364490328226652175335990751927173773986265021463506642412525554350864697915855219299863690751200721944338638812614182450486573895584804488455365349295895164147372105466566397701018865222773072515821635720215862639471426112728903529864870006759435573099414197869637260858837027232954650906112193732949881037990718340197927986130307150727862724826638013532293361553171827995926772151031002090643890498313376663883621552852805196539906852052318409853072097864203897717911382671457725727657266664461648388970293880697134531530440027327904520214224795120481662233058044914792077348098503086422328324509377124642586512759667985283350627068506781649961566207590646202728690492040245502881249000463345541977338633263588726040172160127674298901624632756882181928679333302820612148716420828943142101907852035729548235137448418944507411705693047097030547420870773952131726551003150001996041602944355230724745366240408169649037539838928471459083567450831323513813446575757829537569620240597833386593562311824383693070712836098506371984156545353322127153720253749747533975731209177822649331281091867649441750779969130134844881018613202080661609511317227347679175292231204302642540843122368873397072402595900696921854101311571181323594833105799924126357483528042704091762135696240280503984222801902524388636744268022353695317133877361257957555757086748661102891762316274491647161505248162197923023439451241048377493879464850026623458124430140409383263688518538518564744451771396587372369703115396008919294324629515771644823687098429389020283349935933738017463068506804370236977757903524749464132398349529442877895833151894962280034570845153551357163603104517330294692901934297652801234523827724058773016003197859485546493493063441964287664561679053875199059256058671875085743580643555395188813911667824555654284291191107354685162621378008209058659707081801094546316400348583855943821004627138585447472616376984390428879378459978540989664688489113661297022727465334466601343433673915322402486067919094531457349739893229040525454987289393296967292799050058167919025529676822747719206632037728288378995757907413233303649454599418404335900334416747832119918666844505417226535125459928879416589829675016604992779614030705161044923566379953084345018443993419559468062281808315820910418052421515424806799160571661095203433130280116833398302747015404154973846437755293759792144815934831844864170699195036058230041560178304976732497798100275776345384114558398807177428586327237864916330969075954183460641132295868772958889559140757456954130652499707123839681861072016248960481483119544458961122785684915160179935206487777878736290210728096203590954976674969286516758527108287697596737007969581471046602064829553845224072749553536324905454840689158816138889250859158532092200787830272959213128288157710745019685908642029826368352975267664982322477628951626543683901377920594637778820719042680334578098632776781218466248236305608237768249617792766719357228796703827813458011051457601307157883599859735836073044689364521799159810791492784718459203070647611535786440050753660817962190047135961662953615183960528660948358707111637360647322993894787479278470961996222607793649427157661418247411778849697262620783043253150021766322075820260251721454349647161606872307983610723743089625803980641616072883078394288794720941341028360123300153045407139583787748378982258945377844147208167349007289221841675394284621438625108452415891829973521565375306674350659524049893340759195382778548081654398438084730761314213930957301600621602520176953423498446521495460512022651050189057927849172685760135606787256395613706078968132350288030835996697253384876448791515524263917300068602309706945203877005081653469016239618115223475760010216212058020502676197682905423172023280646349096755663803953421542244046085985132449995019451030477961249420580675882736955843814961882831189903739162199207620280144379435218444496894486244785240794503977268538614380636498306056015686993335415605997621662287376191534443332845457820555604324620712083289782618153370835060111807293202536003075176562871072870840808865919299410865112163853379768445579212704333076737473854473650422855075955589598330848382477147732788449432013156181396323115649095711427075621544166997201353215363573021156411518784659514350783980800522526717069556015349805076797334106488622787117916891109355434549050874704541007650291115020249134922038301403635684973482099518616408324962150075993647979644632932651488925481543749451424939556005996162582207497000772343937098767228768689926108183073111311105954499741143269266005041116379587254452617283903095793534490691946678646109982959131385023399939689173913423807163690524286264911757645751145214645248523594455427667617463003724482068798423494062230897802689104212098675161545399286959220357020576815727515300633245360190693318439260778412734008515912165079346294299010114271203832738201402273455756870791104928801893966354348652480436897976933779115403256335876676084181928974534633445413621316301690370659043210940141662954349289337988545643280145403822469219964386954754358604298860229746125389402855693036342754487451607365976484659763237298150951967492006510754681363164688757416497944231833522619807289240211278437979234753793020447398499604308006509273121637640133523865907704624580565768370677927146850288560192334092486525399684032610932405808233051678765930291018434132084776374167239738438935053895124867327451356676787396788344906827200490510612128325804820317285881913267781905564576696018696099668840356499250040775231723429559941244882403811619134598217006429058111092147400190831578149665897394149163093928428270918612398340467454618575211789530374454607498809292595836421544770719376058391820013495381146856941413493763907456607399437345513495954858310691330272160036789656174662871451515569546175636581481481520751666817934565647413882730239283349778423837984718289594944386546652870405772277957961236893170765161918897113372738102610541718506449678028821608068734315828147726971705704292181553191680032590392663186016077079352836767030706874678496496805266830991252139597958697548136383284686255611628557655080947191038948890043035484172388967382442120232965695989252321025003784524573951145469228630265798234646850514652324978122594247654868119155621666064475494995644648886422296697546725161871354544776324012960532554659201211863996256263905986084737022185793892400772713888171292070781819517766610760238745783024162333850260583704928765525379450756304122577262799549615308687473667977606039649192974170367278607548851764366156164300455856440276167243445460587454305954946993468969647125851846235996599729580951130719793067722310560934354878795268445146777313250678561764087233906659911396164181102090166373539768840926357749031359883430787401868096985814172860679926815348353315538067272019077966502388056125943595878095837138523785979368411960839510241488240899952099144976077430570373904974249106556916446995512365476649921414079536216492502718155344049855586989446052406334466920367273875389689437523368035334753600011615660971481557137137283366260453637466644901585371877494730583995412359809460963956751883179773920990737506689773124938294436391020511291154687398634044909960370346219716433038618495104595267858391648512570597709035169943191312003199520156434368156560514916563334862450518572735076678917452498166011883032750147478246540751939690505465768492392446539505032266442084803971596636652404671003140819303798549171772090698944900769043185752741691912664603647733632251514820195689074295082994864389958790580867521406543028851266388396197105706698978130468935459269306137702193292548379360027938885343355688338734447680732721931918191757231581679216150129458420841254283410843100492567843919633747946298888797858916607796100520314766577549606557635909290263088913475068028049699670518051897824941592628050439502144282588131516232717394460464285860031772226940405305486125012004357672001192503224493508498100821630580891872959409999516523020138920381870812668923535536288517306067051307840429552731185615641753688474933993548450628035737216039489702775334983578037288857705675523548971761414690436721322397352494490656766564030885667869010963251957959002019165664290609396418719869548468731239266876641804394604643267668454857608426145465354280200690879920198166036278929231315511648696099090313845390977806037602961810848945920865421421677083143368998304495362845337538402082419475607765794443342651024341623349245476973342592298015476184725581168159725372916520523677798935587562654423723617078868007737687530619358183267660255658425382751187641160769221845749376458631392066972874995230179194534700212013932755488334883105606159714820486701285597506772754197843116227050062975400262029887780576054120551500087653487246304793546080077963503122403543563993588895800768349206611638499674969601487121263020104456602917886644533058833232508316386728036358149294154941858361215203694994146780554828825517685827542948874168986524173675058361635331146639708420281873843816020321137075437598632185918267942209666282884261209609279678710498093850143360419238084258045374706758311353906937652304764931196211284274970523582086413115007287136049428377975754273614499161165380250710611812223818136681296895870092955905542631594001184649148810055947969347608823300269430561762663641891554388256705170279999508134939579407017194768551561514184106711008760558001339291249758785082149828326045583587938562697582610505800661537305557255249782774564951305990633491030779022996364940379637676998266840293359901485437097250884090080334073861361237758487865144486069145117949454790960300990456589014597897333338711558022275276305572682285263613573186398527130291704058051107737929493360325367195797841534724792225524423122153205883372859799192567607853576909733928222405484841330648098028638384301990997467465500596101813259697960941892209792324157687764649247928818758009471704680378592272071958634343909301357782824016217618963061186526434805252784596547404167134342387696884999291250754080915488731145684254366206169315523454775722858659135293127405906059557446743958417800611882598213405850138436911207725848995363942411752189726666472606347086061255069992983127665637440005632030170238351152562798307373167204663473927156047139973366166695511426830058616327628629762042712681807576754503938021705883828309862085006588369506101116425856748415105002084431064394945958738164766717054219576183901789568967240299221707107048351454182429366200462477930458605842562963705881655158700740136491541167588897771253998365412711795477783093006226219497806739850112870984791427908145425415043253251321360462457577904123699891122332871273222662743115908034470164998924140658456636267292123717564223692213617112598477901913954340314194946206628583521948401233186674939096437121076430993797005957452592356283451277254006191380019005312964280469041065418905718652260128414979701998418872096088762891993262070193460328430251009839702532726232966572586606290957487932247276491496506553000916156082256889880535169099649480529513087330481345025485624158666573008078511339382431850081267612318697061972862759822488364708070729367994725113288070785847760240965723567289588741304328238350150422901091946522969623980457503548395779492218254136442371989228831511138780336602589684853008021525447295027402077423554790678946847030269261784562059415793875254124546610845615149512605272013819638309992474898071425024172827278532667381255977272920636910546342099436965531439945545728505691391633986432751140926851010181524435057417569874094165997005362069514500231587665506045711641037614425042534000747156405899093452433719961482362932883771113425559522462309673495248256446178195311688921575958804529642172324412849686558403517439921222887140695007125490234357742822397644331201683142181786325070537856890010616637003484008712483444721080313786873123150694585973188691372922847552208277890625930998166407991837042241820542850003408965815636676955313892162727174945514059406209493772029837514599328304035511116507835714765169055932753570531347397290618758224057755371428640166727368167234014560361644548903577857318422475069230188789129180857138657559052393065281995666738446517662630059453688361458286721851443991386357935987000638311138043554611869952805339872326375300494273593117401228516698510540211541080427164827671930655933879797867364050575915425067679768853098118881968094201914431672588030294845716056328642091653485103443732100229466921173721698701175552436131083046551665310747313455558630573309107100707688466984617545770633060424162223557589230590106798504265850220906017365873765025621082656208730669821169213519312943167030102580113473498962643325370453080853348139955063074013070402531122654373990298462058592105382573687856224218113783065863168873227149957729766770877961035617258416691115715871191360773945134083085997408825070420520032912790176984687759774485987057455978360199877603088332529864731636002606290291779040420510032268965084139401717564144105903599256086469910209698430005916254385357550548661273361896475594631411250929436251230400635484319655929601569201803505069841462178116410829068277264615018040918614890078507617458757068692808485626631300708974497466292364944760700347383982253358851350271095507085309498208271798040552696763253477163694388899642395667754169056587025821485233033698268039162377072567773286111100965400134536471182731708428557086700185745199094860566857256263148989494153891783087004745008909856583430862712164755309870524619205776974607691858934974098604089133261327097766482150222309325496910608158682405783306503248268437541175936686135203216303972355936893964997998203142176743503718136493356033928137731947494421542320871250592867432748887893643534576309289784726576488981397680556571692140141726189554810781101651766133280583123868178669982009323552872467918779584932312146381564205014671488096488693151947904736295466170887769763637186513198458695384885438786126058280177497866760083024881853410678816573539609233191853010803259224401780978178917786083273253929753949139191525451596042530558432554801854122984593459796256847883288851941604061516651085586539612897951936147720263734860887627280414199025553265497822086679864024295757008619085186283604087835913913658799790437661938239558089461031542022056107265388140143584796152480850564818137316618749988989212549357319143665092829798666716038048309720356425763551054983917800024932494090682881403913018377370746956718535643555194630002186942868166811536764129658243939828279201428451952792966301693656848117191160840734290175755442380930426909572010794711517873111086333708303361471218996109237204978480439163501334311640778662849236248338546777732993387050637027879636140352908537877684984006112632534949747223401281496218934643923515541681167395766255357448594810206648000146039079728230509513095003106462540137880500728924832989571932890180249509831841218970910918184966028069238336748888977095681639031508063664437892415961998003760491683108857112604011898624454206502499510297814869573148812011906465097977836906778093432168774467795817251367082603356586435444648586571849760799519570000240929233129441027845521244946445584847375448528416222940414053702010662175241419938524354731574205266130581255520713127560075679973800489109316958804359436880755321821749586207207298076769926984359102175183077582332445220501407766004538317696565055630384357537079289025539126820467869979381490156551805831043332115765215086093202512347538420330258302069421959820970332131784817400504283638461887445364899981123180580804595458569852673525987397291536276328150465720142196530836916916736226084180941771052216149570906574978702646566478156005973870828648205803212528905322801392851035821402053763160744014718506981283737944224795132798779175271067306339287576337278405215200243822222486008652056243010057004991316815410041048477941986591259023110632843788695264868521450237156195586434682649324064617008874681768830738798564376809828187700694923603850186837757422513897677109759272937993088144249003314826281243392916691272749848267813199409668453705033938642748259709743090627600703072229261243750227813232331434196695918731931142034364075533253597179443925407580759514110321736628430431280121514205128605823498648607286561942628397628822778999973586342739645776488994285452923275143616115341060541045012940636080787772261531779351350353432740823504592584237799677778329883103382511296010426492301693474005947395978806792434929995825883416675764745676285165216126922594946277919103477481319358847928821374874506459622921329552848544531542343341149379956015129524067199728897816098850313352109292119116269364802816350985630266787354171898803617647520525540215729792602500850295826527450037407034200317626385120768470525244236265683926347237467001076709422919942804848610004652863162988146311914207148197883636214895569173900276516074204689406686612380584923390541402710239706359524908308468474857677962432397101524081375893495111108130129919796551291201980284870253878359152293552128175434830710761524898038078393709030167632566353524643133712096777553323929404838786365777129773482655238773819603272673902283956648791135753284368068209226183113519091420091981502248825152023994181402738485435153446068604291710343265697376137784123433800590218913679192897625828868464019530276511169973789815771016619080367123676653949506274962243237773057502704057757359408993059523724213225975603923337385109418794799654976523291496628267478058704745223806720286135074408453867892264815147172109935809176696428497945889512788435749853532061918668313786022354656832858279394525648483798513101627649562278062982882343717393028342019687440350060253706032260216366019815194773251761743256533008832487333365826745837821217556927098161749605655570220270811937746692223917427067572372113579068955780051484913204048158161592465446708662726937211936680535265461460807699094215114285396822613947919424607045701228176196484148202490783044762776005274986898236055858694020948533960771028931186061528114048965248765239095229577685302354617649676886581832491814057385598929781452124264131458243759253265369713365002692763553486044353038487535008517278306815690686087782574330283945209167161093694173239482107309901135506373183912318574021339658858184627648330831467688222758937648716511960267852679929230404963311154413632600223793028873470149704424075005106581603471223299475026434300952339891339534509940674865064126975994640956989743417088926925228449445636960082883848907450807851710806138375225139858405191024095680301145718131939246612482520925219814702106275390781149675724635990300054312228738884279143982636151748681771162205788779240865292029076989959705269410743862018403407596669826236175131265110234862604219712194912119887168643054473319341416554590179533250652686315066119750244302296945851489360869561159681917824641237772811049085163138008460736292948531439508241003337872568675642785770620590028710659998816465993012275276082573541487158657614256161807953213164745757538763593700081242868794212173731905751220506713477089143233553820447911949400618893192923817878620733921112901408218666089972987601298507370264314880482986537096904769888120849937996028019383931705509859664061229037459487187045897780223491538917626301765179450660588025419776509446510157390428298754615468055487437156022179653785504131740845154886337918753855751419174916721778820584725863313731041279469851753329436861339573556726409066156343082525619876475251632955401134382461312479498127493010769546605612526257478484704152249183721851223326904002344442917134149174506897835542998455662201926466509705496883518890738352137132531686945617187288469859796841260274148729734757434025304760331964129716888017443818873126876434042477722496889253331563564571505499581597838809352013447582492837277810603597355466071974107753047011182460815721095132596394294750616387269266371155052250799447112377420730726146697457084446459008898275527699210232089599059349142528114311852051436503206951783986812821938845219392276281946194036045985257035920310504929064368985119935773601487236848797925620727295719174089847689248462078051291714913329680002169459442783768529668298196248793075057402822692988644730511292198557255421748038476704003267900958205314766037123289805912310864393040324463388808630612752683464134669763004416123652558135096884902632967412600452061665094373378046651449189292983901559908687634920189442790613872726467703230476619900156716496370145469183570644123205200076219168162332920329670538860773631380173316072583527234814979150558359839124954432278456529923857878267433629116711287894463316662734638984998070047203029143041153938704094435250210941701819174475662826996704911611978021833130361113467199089843248200451267201713104187140332575093638225709187731831441315313607513468343425360662355973218518147224426961456308351678962016154985155081838407030552114086159875596181630814302847987381901395952732977713772618178371629268589477373243281436767225633431369212010818693943360878688692866414894450780703618772185389259240711732806104734137749969006322575348055648377033860306173475362731841481509075291695447081850514445626950932959002270893042674536210235828087484870542199904725922570494684942141587417911361706495081641363896394265326997964148400611594216138389705168016743836585027955659292733302141673095891331141005493557587490278676820700112208237622177102668251719319107619480889254679501221061507844497357676340890909925456653239832915711383696340912626987590252415123731617318586327690855872426737016018453301486252181167245333662693559499760020090674148044016756714177159791706085689401694024744659097922591870794303144631870349025997725517973239578567433083919132543450060663760939098445638184849352740554803882629630469224024494442877244585292007078122995083902277688727889191856991835077621239280011348549694778465930560407850892717902876510376282391009876550383373630529271727413047765270787638870563159396406533873139946023544942624055086111367435614951708640520846294412244050225120663290952778800313952507039562082316913294870821607777473430438053279949921091987573474278625585507422794192720693640558699395862126080859231076686584436990769161557148966449793479531293242440732319496288258967831883631116735320698696922936721768783312791085773355781152979058195172145746246580992068446434364887394569740429277114885017080657504915092378986986758567750610855165436387130261583796252920821546585159640775878749136844661922491234786361801044226243225375001849001204270998769285585927365735457167242503395347726713896536642647683439538470330870186930071211978790410442839771035790820152062834100296375189188122362362270908683717608521528315866520026422556459902692764773700745951981834190748582245658087551856155358179434815818530824056386249291377970351348944454726458707276181965032646889964341704080690386991977730902616200126728603802276786422770317558760350698361270913984853551655945840349350544411664043945984277328539699828881546734986237471636427736169848522235630804541586966717912862945642595128091352653042252521982218838281434946432519149013576364098264504476703728227849241356774969792536377478396169008596163281626755806095026092694895627245634567288068079921419163147475792036860501157265139098710603766926186613169101772875662155140140595416942697598435873898133985771935407291813422663627304255520641495858946359815467001257775396563531488643347888001481406542244409436052643308222574342399097802941454067827446152914480668108814504284411717095851231216535533912894257381405885811848467297131042662590729616723223786725956326026039191853849333448945154940343162663918685360583011062516560108538305501867632858949420767115956196789785431414114679881533315206976153377683532438882887624947538478089851437014827051744339873446715304227707236454519652635383717639331151113266325667481095849937210071551380746506588973053073579890388763083740427786281163346689863934251723644339236654773310262517439502709096339147031341147194655802241500180794040092932447741779303071311625095983808113001901687237543216188271693936601003651698051949744820164358062738460178421747688079100758624355721336479989538077651499196924535130471196204460938174381900591116287400060788420973915062896158332428363426968636153441060907848209084943792576250904832495995352775413660643671607355731931472390375615701139005728656178607177757111916520247864025867087155918542785187023203884404192520123326824472562193668690406381347393439342406006488069971824040703390941517458404407478171811014901083269308746864958981429924277295018078486663455574128462666072484360133025923602392384652294338159546262649841977529592222127062805206750045400517093562288922599000025191596286455082394978692714376797882522136579197837187844956278513452792499292413457192587006027642153272823305499202629887968602393285783277298811653382793452870652163361751298069379980038836362439399811118475810143119849483905947040888575394234364818854559561070495172637976624910727434869314787925672644282402493870021602469983470572322806914294008390234708970587721265856425243890334014760500951575189534154426965984031969091936136965390602806732344833850883357945498368031495336149856065282951337736757642082741308180940432248894964684565362483607645092541642886060809052927201503081411362783860919978407671271306745902866177977259689370351115485927330858804241950132155401380165356552484150748125205825375358480437918306617933245174753057831409309068143509242477570670413685694150829002445324687352909508373451090666138387835671294597773161445770334877098942674125684610012064201708170067732093519553157596225419514998340438050881229170504473386248699923614433491224564214875190789807046458780056946845093608810622809368638786750962609030728681183860400206034382458705977793952893112851257259012326516823450033488248629181982514538779661191415276632452576254020906619024804998902992741439499394020372208742864549970865252946383227679526007385637243053240999061940270106304871107952792257971277232843414141566051780238728512390362615171254403825388816331675037827482630652856198684239850281471536756768780579976685141458611736001675173356738549343574530162407861374678987805809905706558876982807786061190749258474879866930991127894087656583088130894493178541206481156852063667527748004093172870403607663256859126343265752907179824302044108720858664653883625508494955468070157122267313141612344365691589766123161940480146816177974631187740414120017210602023170458351376126000058955159709898035389249026086932179165283015538200948093212874339467303493968943243244060419555250663152637726418095289194781800072341888731779955685060995195141448217183805542480727675128878741126568693172690436101359189130837483462359885257087313831616934999137575460392822597378233701534090329421102349819027639220612729685791680391756007666610005291343430809845317723840904807715766651866091805208841325667158818588942211672437766317680134725346357748577000489291951897863519000357272409156133892101318266029552142527800792827230097585607341552629567659487777658567897371852403921064361265744232020042082532845927653691499480991262309132810487553223231875371099929443066718000018600229354337070475980724471425699522505536954610088826135338878445583337785281951785131315273980640199871786274023509328291295831407193814241954613007053932662004334908456495756550089318733034116617911665535249882610499732041397419571409814037368667999457827891288065534325178590827264324303900257563471716657924491222833306341982749062509937805613477875673122560160104742772316207897974687086465962285305025056502615875508482908391296360929884014670753444410028602354871228102731430914896647058175549487600899485182831933929160851193936268189963198176548767838377062545679717593495187465936976568960744174587107940607467271397851253624301108132910358231013847663250366437922771032923041063932338922568219716099997848846837082467731362700456660930136402182155162540525107452341760190989867504331103707612483640576834224753508884966619335559869443808183794436079020073764302212291502104477918412813506458263275582461604596791703388898936930192579872667655365219341855942694437387270130611238265438237250637867156996668372364418510055643919984913453407015282277712510212581082649978780982460536649411936136391855794454315103188945361843112734382797813764004457485164478831578544131885148526375549625054008649558378853179649113187201780633433768487909619011253905345863585066021711073818933548197842340705491020874279492797061577987826694823640621339127627677314663015717049439046396287220552746019669728562858366797780755545751518732712343470106368776346941812857873269729643379648497952715218268550650498060817877366310500326280550988380032792414824869205971376945311739697313299468262661098447982481070157393126944353311143581052328562047935801983312526798270171077931546185170969627021810928240181576295348666467929027863330914983920993476981478256680332276304209924774353546668791387321960097621769173829500755223096718554323616535521480522503671207208998533399323629798220350902011649323784564529873655867497106036931650557163362363999989030553341731898942698211322942050557564997166890113888787140581294245995720145824719339867794561226564368251897649664748339323702468841841537056921385546832100503300297087440760912753137559337441349802654502025241190916721200180914448719506847205600666817019631917601587334948811531907888954938336225520461804438500637823063684698814032682206260616180628604246878397303612342328829063867437082826418696896200527691480326607238022243714671884324034442213104720631010074116970735697755013177836322065604748380613746711973475392111259518250479093197377774811886282715572500612597166539785436773682245654517073854210383431597401091027204551701087571910643310271560428874060472772795203681563013478868382329154423196380343190673319376291484892810813087317289451608115526897828362015852646150538711310758360531384757820816452274226159046567224057512988328464247386650595758714922932773469439965978699001880621095557359829269550935470667210249630455801115015886566612305374647445981524505767244332010639139935210096375711052922835765468473991684001897347827027104600229919949773120575184977511306709756275504323614542176653645164403989641111826554907370456329367310732891975672323366074194004756760960496085570580133850484218893254155033412420197399222182579165371451177783827093794211555796497595970357022419344626302311481668568633258074136426434848215955488496891031582156340635157968869058389722937077474643249987182734920717140006182831480844179695351826803371808520469387983287411080405527312648042030598578237795078216720230927557329093112683017630827632742853449289551189936534730353599744074325854758577925531093606456663697669727197076573307815655182307124924481280592480680275141775538068220753790446965438596851591598699709193455062263925521010992525677990746114348258425394958879672506332125726608194731997540407064387150638336124251338699875374629254966779049180739137882517138641562410101352230154918630394749589220474014893654020072672651222843032053575619668556179411303655883812738235550487162321881012545930185381908548170136062259595921866548571703685468948850192345743193903144798457817845511455211235054904708799117892713011120756085031798275083360716059645434035689871458711277422022132715652342461472181905682788503696534714087135610123332703290087376396801214119629178581259003716045270609982606917123095020631784532369169293711545586043560202529570045154137309623890679635265436383630622585902633684329864471957129383701496873175411670920166087400722500804015138090164745031661504117983139762479246025771222647660738390895811821118393029171311735483028001449859682400974497482790126569007268753449998341627758032059079512998545956322005975069221507274710535685728450870457234032664717880360336051462587507191552464230021881512335347019245721102054033812633401808615877607550543744379734972223056559886511334666867258961461884827953356724213019076637116969434423272614119800800426567916897337960405768130327288126019651165617919200807952339810173425137351501669999838499609867421660392110932352146028721995445556191678399474789855964374002138364047382135798815153252987465778323814156353849759623310235210525992070802400903756944275477049020520990480493761415300988597380490258355748422917210195047872853186772755946838625116120805997578415465795938078502051956893529009571164800398004514582296534443362910399559644938387274922748814023658047798124506518052488728334413217072488528165240742269841668383420384166421196305326996367088907356483713097952485689509292175455905008092853743185950737820118245146350933315911922567826665013449156550256921588735074803444148771982729115755512421948830709655867344229911482093372930429695973729268824468508997616952082085213655453802064865877619498101072698860158770187837982618879426856250646990572281850167728583197765454152061088666759624360805742607504511217069597742551291635783109434597987385335561015953211196770212824433000432813779935544731887468555725821506792703554614371060649884653292524603620258797875525124911589366847164133372386896585412040935121599017509424463789263585532840415845996171273530609232591909349442695073643169279817540354743177237774834529558127218906873391528582975117586028245620158749050983791384315820199267509538612562828990869999013577730227865038059149480301279920555542609744817713696070228997817995565376296704733429114567744620564080681700845764787995402427209681247985328982213871145013695739434665459039574766314902959630263060755461859289918951480915300640430114198183224617765755224664257103985817587975700350454185560915320158686346102449221834524175424900574206140376132766681810616801335908889424534433737846355431497362631740673138508777824241493426810855406285648296464513053387916347852204584285766774738581369023759655514923807527573859985541591834312927410746561869562566836593073625342331546392929664818906199780089364390524870846182868852887407585662763594370434022415915937857598950814489675478839826818252592872583545351550327658404044584120020315001334667742958620210734260680973445727862474861176905922157492542160993700719042200397104484764405562899636091057762063897302152018245705257927526316083704125061015443355423140133122236994678831208769817654886779176566979185123558698481255105993633018622915587798486985173113133386630300410172594278753154659967571933507716180892396887001567934228536941196852986426811325080373635803742303967631963725262395322582542745552079742935013980888883611406113393658169160179318739529342507790438563963326831327448241530726172368187892096482320276937460988867074957179786924596784609115863034464310103467406761845281856729165655233594193130634466552953461268697969360271542905655373224265559292656934987567741930838993207962063875400802066169067174010794609843255541054425198777236252693007645499120380424718390599323519084344760224886186955512156239242939334314255082956860613953500384604077346921724383840016616333710101997972727503510666966885571015031396452322876113869642495143951860172624525149360115458630073378811202362964545835778463701036130217785802464912587335200978103912211941010665618221304521331968631803171701270023759848163457587910845033732846512296551755177298884690937989770236489036802364487679815867051728727284460014263864293898845367423244535376934230269483946589111456434743027020575213972496533833001356028087437790498887467939080487552016981470719240914123639196638699816405558810275186831818460739681726731951691544404873762258177429801393263697337916676413447082247365206112976685585145847969605003087016453205595883725154353666743670022724829673003392721144734638956885180906358477114875339636772507296317067935161720926059290913183982841189315954771913317353889889627201079222310335634703840770577771375119473246928311750865863463563653255403428801397828633387318466260558728284580144690868982467896451573708684506209699988571999669153727882779179286358603322183429374212739812066579702341671528191593322309572019145022985982713175478712076336655941659438358951823462431225703682502565608586561252402907163043853228926383466497030583052374116965169284159857879097345161793970435194042337277980874855784284625599542189822330853344750611891169438961426100748019177935484967331247867002175163636327720752915069034395174780044731059941466499366204301781411376430630131371654665868010305669274632849338905778455109573853605576538822755537124984076988278592757976371099858557120259907444911968200324531506010790791725948086891870817819784517525409976817687882176842524991433883943665012868735340218464824148844251783436547412721419741654470306832649440389994060509200666097540031487225146670450938265173172200221741714032798175106208699758388476100063318894540697644811363868724492629922175089864455371651952723147813081754752633464305248187921951945786471512322962237603204424178945410167207006556727461408064384703269659581369158677740479722911280532704582540790660719568831369988335737581640337353289713355436972430673899234601625190116740126943857731418744691874597205277620651206711792827484406822416031504675265779306408988407704015577006608371655505504411523643365983205637216900769197389028203335914450446816811479967528714716780837889153892715280918264438659245493615077553047310172918253226427620730248901967108147702615993552182785399945574112891444896336549658238504382674073310757335134403082866387210099215923862934306912523305093383230646975780061112209109719657218842393785460201520040169482465248236497476359730880910319111904119603928702337545257303404977805919942770014155216316938848988174856052238974268682361045801524609828902228692170828615044478976874385547515524473125739243061865650319962303952316445567957107237309212718944234780282078133382203425570420695645877732619692393844847207800374455341908804353659923219018914682793790499351345328795229494607122919734536344154172635994381254389162293475720977794623366610357630174035649884699973912222020150319883863885149536064688569601861592490723179467264789754107916994850483900393769126632232823898075992121312889651971118686196002092318986970992313385802359053233949716784466648595620032138788688810494609178183407437279360155467812426443344147553508169068801377974095434379919899371915854582934460224623826314122644520232064334805231280699583709649081414541990835742345749332075346640590311864954254945723066480541668251544492190083330813582123264583013109742134003110817641900594559841539335142986734258812980626476432400706756536416151333993457730737881077939512744574503172730287737395327886265169838172097323683005125079667476787172289955440985204738560372652241792579080974735081199677318140175025824187841290639456516652386318485492488897217875284174676601086629655354613280821762529694083042612001180246089449038518575455201214943387531456013895136801903947046122369031563232297489699480370671632259783628421767099481183780290265514809147316338430506158237761702611779254658754362459583328419061422543139366365445473507305478994307935132479466679503722050486501119269727556761817946456835434453059041951898297609478760201727365381773036110732041785650879447061942369651182539524276651915509428041787527248945200042222820731343948360433380330223261328087838991160832628035946140454730860313553238548760450411117047697836637455147994945953611054341285605770514282515461941536662316239907385095723320345217853069873443365414699690947711023126974152434522989405104171459714857922701747331632505563160794088566454845708634809777168470394941923246802216918998196101624219117709925227813316410125608919596349240734121510735074090658520067742384633262015130131957600426018884744377158943553496178925486153828469012617069485308944614447574228486245502707103483499649761118439286023264551642735705676768477060385120066212434739699044556912550468193234066381873732624463181584668814440055166948070635310241310126247437597331520888940440603973525804832658490046283729001050012222398283926502854363154785516049130325176005302681425662777745276575744585902532931441224900522675569149960847960421927753615951799294605505500401209498903364666776335016293229187855866305050480704481779629702578805553193125070571620740801498119703894132545179752836343113926620854269566610507010873668846269480310265618121819950494924561118326770248019952160331768409896198509101088066805907728453172952366060678395673350350758740579124569976842516943326522755039772320310637804760869745702624356064542778831747694616075338446245254795761205582163268135858284365272679433006782994231970747938987641628464408401748949865202135574331578835597508217712897708457078697790117617020091764575330677767923728473265417948274002967408477902578744261453356330468529461162595520326031585875086546613981623767524550720647496392293121061335203306862882491397321515722253838698613784891498005480931867150275732230871786506311741747851960925024682795186161276223674244005251009377133764483896566283689525015596167043992339958415365607482178938087396041876811327861365123817248041132275429568814600972565606301632129821920927624909581817991370070117883199295230684140326259519554671761018543903555496218614089559612226713695073734144887365432649013355586215513518506961006544576168736274128231683865967702366920857203808062128101584272310422366557884555204584913246488018457498375720519261245520620865153152316061180947100757427443627896586806974529226194633127382792551164774554412120191222924354706640131860741668583609818026144103397586148678763207390208548624627461770393754434859221037120189608507346826862893697261599483433852485045905097400932764110495462350765536811508068850626709174900925757089597532761217100676828896389138457805956099194757471953114697942669084960975700435020420532614111887214970111382714345875940694733066358385302611531616611526691879636970003075568779863731417891882527866766623887893700845232355442379943787989337782568469480489663467186052544531573234962333956387266470301990787351646345341926186821654758763954735723108843166577005182597182836534396885558122148762301096659201258808382172900805654008686924596627325657230435009627906264786170423248500739669967144581279825366820349399985265491734821428941055787397473597698814792300343536694107650203913407650848224166535231136631614651566124362520183310414911237913679391622933551090421327948749522035644427045976763551311868219407176416789208034135079102425268810987016819069419670543271774349942184505848122156884411633300219269861934764382155310075305726982101867595913616817374945083658705386334940302037177554244840711089037238435508907054992628409377510813585856488293536055758443699980699312721363737620088554208656569642364196346698535030161042683595441245075763629511874223714966714252820342535049539295283519664919882809596544685112855790155376330878136879717736940951578204231929504020238289892177308856998784584095885179247382249765136017948375204592849734355897552057421380917969660660519740778662192636954996625248792937532585564804983091442925940422949917684068819912747092825045659368504977140347954719250759590973222703067639258286890818384940999023376914035767327485449210131758421923127182335094803007823535076433763841833071685716313244971991105000563887043282763628660836514728642201000164315693783928592512290357384991678882273335244210335845144495313175353626793978744852567002803886779797265760622389700432578666514680449535302041970450662543167990475506444953708966193309136722819495506922948140286651762452381817988293872622900081784472519600414871901547826494517044165112395333612257185489100985880322658538971169039599289918176748044778832845469109667101590876933778609772589695436662307027688756586031007071669217967342994924629486264069726465170484187182639071005920723352548084438338704716985893142453226539062669821532418345955036337987547365741420161283071497045858432334921462787680509139821573909328730414062471639861880834093220672555690226638284561517305380322433540509937006690024460227037593015539989353816600792397040833997774406746101842871831815027926045745717288687920479841776371605565478287993429052531200127090191721213969513139318950083821036861353304250162256079275576706029000948863762910586138975140992078483263195417709342499843677524068625892275623849722959994628317580103901597292926746598806150034040818262731160202739132472738493715509477365261460546415291317170668394103388725121696535247405995007873072449228033971499633905613037492893099895675719387019579771541739712543697747805517622751984595662982722837479334207680280279763042802521137265738049495108233272042919524196219460250212215258819881617147064931484096634597828701342348771705094282759336940815845814623448516031423543691577262635391457490458091338360351027073173639903280662255324296640971703986283726651768649455925234127603448697750702507612318863185092473592112577398582203098659793347204770364046563362929303322573028504180048048385156512076384405409641362758617350345902574419699653671377677165899186683062953457684675598034175787040453942910361170469059050885694500953330515715118430506785375731216780957459887698770117012747183996662744097966442073563016454606136552356797378458348072425292910198703152560577958779027643155859830842516360643526747167838162757695755810924938700973742431893313327002053907256637437645734827299981802108084210261550230540701783350356580639741996646423679806762709625663676102386154553047741708607755216122839645346732328709701944100051810825271736736973540444064755992176259419356346996680700915592598595120439689240779855261341774307748211492805598021133771027777822447238530737272246542150953996967329005311272327410724365404565515132511060795305895978283769004699608481396853399986183211077269515558779140910083698338233684704027982087120928457711398953441030216788922954407457260616633359505190678442222789459294791936633312649262753424930174408836515667694233687878682897491638132168150298271236123370972005438043929109266541406405958762636851590370469068201293470027777543816197409047735873603787659608579107085103162711647039506954745005404093908951881194496797427821409026643221390217189081668461967193427334014099193821608254178552180917426204402354269844941269208912191853322850599389187127871253926875028908730749407728913654495192684559980868794357150386934017384718598731993551217965338985865647322933970175373407210303141734447099573831333495519684658409503339541415711753858177861008009189779235899234851708657685101895811392402886016433914321397997179386264877000683059025069018110724830039252288914589245701188032113708134992482014103104811392971531537810777986875270110560525430063536373298260027029054060894567852758861369890150890481265898326602266034584864940540750612856226988645199255213069980094875046468126867015849512580808211339559674317560886581504526927514832685548983011745990561328153949367802713443517656177670218094748756283405774590158738135312807098997937448456645389764262604537186566068596278419494133088435753739694226170999793538356798577261786462412047707118287657378172395163570577686985290318521778091291627304697248908988495652534009872328636604970675238627474007129014288038212383594556869424467837752145465972207423836364187203683552965390183103033546540228966684140851211408215019046073155760901152325208019673759683038701930887433484144256765743556882590479137598396702751266623903565805019783135813212459431406477858107472284149241476887650473446693233414909113515665562098702429572507395256646771121425847800610296520223812334230470842153730060354606190119340134627036971400203951673526962099627062965736213412816343667995838645920128977428505872480346503258929843860700774703817940058458168330928734109870579705290344074955073222290888565403601740795318205484211642866060424072592793526201735452239685157234101321754315713255617353819652379131097999004585342939403258781027498952313509758099119292068147934943563035079189487236633636556675758722174538004938346638215182228383155157509588166569584535075185691049865877362431998307368360016950731952894994041033160632266989729835602933719388453799969222348197645171557339123924813900217109139257317052225870155812084040573636270428155826192945267235640330914259763979051912167458000034359887865797007883696565108145033279509549479589853275880635666060521074243153408387174004050689044011550219833501889238839736291340374814020637983309321060735300877894958183824778235600224048765184587543012816059790446560526618257968349005428898057780070762669055747754056600542788957327786452174894513654529684625073280712257913875370503001730622743138829660757595275647556745442194575176935687087015888687816202442848790131216293215199481739950908875983723664427507178413580443304393892594830336781237912709050698677960442007993267290581497088595797290871231385707720051020213548229555775666454781540111023415559752608556934661306526557869874064630475726805413143178196926029495924294077800463576020298424941180311860453760492304318155665470322892111320138268497057387610155120090006743638673075408034774700807469331018978836750946731302742814424461767093995095073908145224973467366935342463937506600199602473269541029128586679988931369638329326619134832639000851712710136799624318046616566127199184341613044836625008185205477420930684489093033912090301113172113906975977312101577205737881266375191969646425897714196406678240993486511939238992962206925820075452262912258769302477619302997106356092768124979430392488441509932910818795239493254032056361490944906725712510683103894223863089798672441777845673296366474215424680639400672849111442127157456107235317733898669756805631824061699735358638775866483456624012083481445153585983475760832264098829395765670729532989157295115395746271941614011054856532930661940745163480432272053774735080898090750456685899360486902947576943612663682365918017251774641882545893791689456002553265474728971469700565468063978875599760804545626017197572496968442438612297239790145958429887567817174342357639030641728660823498167464762949368720342727326699084043848265879384342024236582303694791115282772832309158706847051764328282822422606810546411381060374595929937368395573385639848414170942407276643146699813721753231471683520130062508255805993144222962733714875626386759704666687771138208722978053465201974222789117663534893809804859021398877803235796157661712793308158628604541006073403154699924201102886901751839597086964960430932427559227574434734071124018545414129999478022965559867487944893907329964807747077928922964574382156334933952041705387295444992080266045611050037880256156197999824635717170196535730187928965257315601864569642039019913544545809471609420278013354554756778010939985843398165427320415608089407828151642986328518580115715191758154227120617072158212318836824581549469672724328629075113365771142310243326677633075520272308260550519452702525908485793338474810129729529771786358318113282324557911797652710292790016904957476138794463494325606469662536810538720180613075541718044434155874682547006910293342164425825266340598814633834195226209908030455426789952276543464498998436021879290799094601608745478074158254773507506710539803339674518666270993277024416899095293713949036612289011827288120634368651350836243546205000287056902836928481652991031409007467113598981081273396068066161085283653123190520373179393061164740391114355246571696904965396701405533888064972200993193295360147596055173081023630892529273594713088957292556972410236385280226640218256106924199680175495619489495284498969618210879601900364748926777318807737145644324616715475930064178119801674933666171370564708582658576995471250841189613435911338873406123031844409895807340212547873451124849121653400565791114867093679447571246917289210754707161404525202467058104639067893209109812892228917639512435390312087882863165877766606456803392639774004570697877650496150825077761523858120605254137789532223287436912194447871173619381419617119327722940527092259610696778722146589822116010153827289295673737725090914674213277514536236229474325659894522822783797059154405925165768821515371284595359026408179554483226869979484473059814055448689369234170694909921595678828335859661276107897313151272214551620709446074553409343008759907497115081015093933042137125884051223632518484405067575065023903943080158907466249018721201548944810466530130631525911636171129609263405045140503819564133480338441195649675541879650934987893966916642120518662513931482719834106447114679392872035298209834769881210750109737470906807197210871640977424590290891093427550998142861401982598730223089702498477444685717828619496963908637020655993062142984522956091083074118838442326788949312276019056175239906816526275731114624735731514902244022062127455219471682908039556721150464438600821512310623939499194302901786494010773996567219900539285949931374306542485548277773446017117779552972107254267925688598206074172135006893273966016565264505116457710907007706219485375787567384457905299116900997392323921156003904713283218908544592733961370256001057154828695814501854340172606169319377976619677611798989139783747960303726340186085072389104410530971992945169782358196162209996555799196225954148327759849527755545646188761962598914398722115182489191005883422753538543684462482306495695296724683766558815955845554298674896854942229025355597841851093600068726587974943739132121923267688153471139603672319116558934117389754145898717893428972020475222955446548647935553387199203232002460238852451666165187364301928660339126273987524558176999092106559071006322813929947380406251126613451470489860502356905184190273430895583923499008653628130862461944402344836729049536461103626601387917914079149085743999573455367478297699832562857775934219475451790160533461477126053977342853850309317703564059757049964791678679088964183008897970553258314149516026792517904889761978826855022064182307218817468965790617668775956130171319816805893292624237439285581947742750785534208361031073247177489467565173838047121702701602546565319631250526123938333124037873571262427084131513132689642493718937045735987351977581077042684437295874729471005522317625252364305597861903270396242136867124893305661899004195674308414052628845650084084899200126224107298118885105816737477541270555299288339319441456677288539842829520832259231193535968570406497684191367912137059028318213654937061947178735732858365972729177966638764078616208177768689570546762539438624890307323384365749757342996478929934848104387712491023385859879944112467062216428151618649524428838242312168614173218846375140111921964555989396369072534740074032216416121428018766129111670397295948244814599107164776361590214454777693231151455747870101551154783195068539467560979573004363678166266811466745261763655434829768959764694018411999724241517549713283958966386818122684839376491466921228295004314717475570742177490991231268293960625112736720795894340490319631363964344519051726734842278312556035652950917090944233593071218134036376560029764534139107716216468378641705179511034433989188970272393133935112113609559797912314464462558091412966825365081487952756524264803285232183223735374927243180901386742089779428593984380109704700905087502932499078060778495647519488314559304877740770240873004912799000877875178828435326610451234004117643119842165558170439782005281295683249499054792221575507868111238634956201564325460971367778643862854648698567777930641117549090611480830187598079657505168830057394593140802401402100190038848339684356698064985768535257589659710638682565892273215369375727023628300220535125839743460275043858682962170837876332274717159384106312769917198165588477795648260418104086025955292598548995868595145954739337152033152101483684760558527233390738331800035841126818431743038294798228805339051422469922745553026836567353246698572384361774181329703135080053286437921792832443970987410897324000612904887480814452852208592386680923691050437402249305024954050002087522726365726154288468431837692503748540081032976783602620443109091711467268373729314482873037657323720182706522504572333426487191730797061814661940909263481676516755505757880314178382403969765465386321237645609775121338321167600649263851221910678138144711940132517003449074155667953478784250300419533123260407068644174394274465086679110306380403984295398803695109083285948666540272428330239850850474084141337107757122985603207984974163246635121277923465006885432916509172767006281755315754587927819007548812381436901706483651077095644364550406597313998396110111276329867159640112687409394098637811479529362010313134974343631745008362809629457137512738575828514668319951030394852971364041641333140510460119085375547988056624866026612529851853344233622644635751219249694731179017886345019492201795633772813921659352880452932287161874392246611507855656932608135199263145832933127966902020596395243280859054004430586902756782295903960594239041117369918505927124716181597812577312247320336438312814344709484553181921431389894074847206033685543294104784221966574383598585248221733503270597226520308187597729859974799032049762867172726129761520644616243666870423651696676209796338210665568309722773640432072663469087922213423317238206322233690781703030652240436639850853101767051407006615606901818802858199694196929733308611345431845827043591765270319924944726201781448162634552988606014804473252727375011830967204662980690933574531204390269927554479539971236391525602797251431738379551022323945875690989616499386246562892647092144534795195106309910873909794258839626990037362643021574085110588004772677855144146811759484862378126554648622828835171943401472777879339709066403423129831581821434423114399809515785541302919139122923876182310232364558781441568187307685507739429942705905853424389634124291918487129573328497442644255448817816546421993349889661292696057827818035649585863150517110488135306672777485708762415313542939317669379878008012905308238412164279084810808890865932549231421968275023931804465449715832291518088376639634942461661638806166546000094170405236549864985417034050205933912167417581902767174644405125172324049113260807663796825135763159212862847407944765330166771560530508613083015537146649626520949795766298887580570893277647055674651113994761298359520268038999666253110449895256499799078303324431327306993403457004394611097323659506487758986033685139584141749350978745743794967225684204833945329635588553611728150099314185567739345501308671862928489314259438548383637018158382338826727687926309555949603324471187707017887305454630561737894764034199674521145254551804990265294759395819939982125634538732151902537804785804856282334242295168316726188206179693553425825988523917237606057467246737767161572870724700143014191478036855490616334755547791529364014438717756266892538416161606773478561649117210429269843965830176451866443931914245528984196170544279683889146861389329124740879233081641126369289544812108915153787887700670340833294870602934420365551876260103275417173156112086901574948880183772112822008615588450974137662577003999796250701474608228723117951582073900231427066315931663630804872250754418789474829851583912051931843336796790099666140258103554897519610574091803649395955139540597617208322887905949724301632743154122963747258136724982684046729354832675355752002471480449937062624515195043540071591844439771187780421734247488082464893816344012784059483475197681091641710491570616948273526558118982121495455431054209776861822705030294221587519649818097646138950180793385213231963599931944321119271054835681356882531714005749776365944737773433150602056141503301846121857675202462860312414708964643722852875062872050363851180850294864561900239562313854601691817504395752293313147413249695651354186577594577082518383342890937267389208721113886700157006934210693827046173877789241235026236500265452472752316302538891854143556033201237914633908330604151443532674187375692173615055292017848916074487404052347375224659121310013801778684774648666920086305639417011422528586373514228094670288921748882469160937024805774734158286275100387637444749517225538747503070345095885019444733730939426657935121744642757010407264890226349681684718982726317291134547942075708708291379784881241521375390144159442917808880801170177125949058124716410971893956545994318024807328077738184570352105345755191296377992596292191897279504943275014506314452190372901897302490365477996849008271441305662403812579143759919471416441458923364127447136366181450176184440095371838849463068412508058426756944515085404458058018127014031282926046484473696539665428967225411527635984257668539377941214176033231817931012550435744184253044978685294941331087300795737710220521313616341543861386267774957018974233215105600049075783370518719821051344430882649562876984383498691390570018720589171418212106268475772291467573701978310802156229717348191503918296758164779710738080599525328181988495572553160384412710463774601369914162931553506602024926198225337588412527087230602304706915499641420428379691229330295997819158238199854647117750840852263641415178471833262467571272951562401636078963324861650161261048605278441868012397363280950566311172868537364171763431564427417773612944644371719142528933954086566516469338852147267062267951025091603342895885160024448687361073846666476544089481537128350941458750281512800113917815801114606060391051707053140244118644505773184344669187271628290879322815853559755962358552959237659030025705308524283595513056413350524898999544821674117856512753162013070166504680143945526475033037451594181543003028105065949984474279819197084210136386233105535885147550766388979454094177171926574301258921419840097452610058179442097548547131791495909566947206903531648342710968671498071526796807266939997709488497246683002255400181095313059354269193908181772956297082823663500262682691291436765172315346759155931515045086405052439582629439874984999565603553209913687272880731587704714144101867357156095843627350668520513650189101711937750948559599312060821349706695174194146637361448597777424665615241523642999301441144802363022921827407894888588040817897294172086791632121498224156187004743812508447673599205202093280457405296462035609566701603626885985718160894908202721502826030819619905911424602839507614439069850962153121926787585187397485658400969330117726650892509556694142397465324829681213379843390436733220465310080373134697964843472693422845566732766352417188352913526951248824722503741247217651015110504767988443508140425333260705045036333573836632217632752143433333476312543480154339593159997042827587285962459153624428101000909215131026423290936099918394711739823024919058281893730889508786141967146639037833703579865040769119303879023500465400854227283759525401765345410951989964666141199418332890232555996916860757339296858838603864195119602455346918363741408894249511075593898507345840241276300218377371795675053372597349910915266606534713043052004258783289642584936296599787397524922490694248330989021564704018726237571202333144765187600708230655897518892576205507419264364194152804687190575461472650941849731884726623044484331777391915069520262449469377577097711150745565327440623980579983464010287231315314705832550847552445732407439965071168887738346703362113428218286749233165810312453287162605440484507200395100569099383726195619885224126624752316771298660370609782388936010715937901745891542945237855622147236390783299755648055924895277093977769972881749314403143362977848127643553043667592202666607728598339761434819403727555154348225423608532648116541712724193148851604908379141470158982271180774917575660719270827670172899963973343169586724179904914311540788243829574075355734204657417809007197703341914373571802248287000397049723468150744075195816585727826474136481840890122159160554383891792603548265163477173471635200196279125614137464301101357544824724529782270368881118611187931737804118094470110511930148629049944739188486995062090492936404533344316173417065099257919804948735454868393953846776714628455234660107579275392825196033543124125081348596694253926418471975668418236890592314478695080911817836531221820802265631738608265326093669238735877395808965282916992928151303272876958901243499254887823943182607940779683829453148888600223471633566486708258399103974571090096087601296523462113391364240583857317411821726006366848652454498564237448790228324629053257304583478248706037262682469187203851146356045017680033437463969732277049123757311186357663131765246944633438104897929431139060640459504192127513916693530747818618796323419816617518522263746996161327749218659921577721728300594132369950747751077689163197667447920472554959993880678683217391212819444397141272228140670936387845450217872995501790955549645053287430146328389424626311782155867816029413168663362913932133019972042797874403999223797982809228503605663589600312505250159617563620644478155900316510149184175907906276777951891920828940245863312259005643440224785569086535931466788976532294141428858949322925127730823440586525208657185305005800843162156112128879620304669245128609927906192313851897504900254335043082167913720390744302099618917813274741113541975589872531621824608341250994350520032922439367347028166401636363465399137467244074553726533341302543948021743607642476108849137972777272818998257342537179191371332614132263000217577306235800514867387234949329977109341774096886730006273751654522433869970040619755715255765562599078867407560354705090111030495967964876817851043813943122418321980141278957959438966948834101290381028232727168790362111097310499671836069049416284474286873359497462731046439746623799483458416742304367257194025559744710414937572703912437462538240377427044721616272605096985849644675378612337541594500100813217700440185641141231956865266346961350893639313960202660693376599986390062491665415639430882326887799939724626399114612892783213182784826595755138844019232384379387909827128119886847896724148093135398094862052081247010187582861780259981098883689002907775821164218137124366824135434383676283583227037770399207059380499982978211664457981011008479336234593004225364757870734272314605974074164769655742163926293877011883069024785161416312333557400066222172714223589469456464173807350646291025315624598469643986478007670994066518025096780986416054325983115411233618279628356677846534403441904478030499082071777932556349362219284895604607057989485281892861634346394790996100705517356508435333277011128680618227416114062000720541403730785293234900056401510614296464746846202444850318792121318506387166410796576462779640457537285550826631898153640873062729827326052959346463061444317644336614810182597281323314842094402956412142410129810574130597020751869494657039181277541244205153101398987506166344535380484561940652896754820857044870591964763046005018887529692564652057489126127188520589997858200778406143497500194519710245709709016086170776604451188709030065204078517413959147005242391683508168952461539595469547839965881237594444686893635611733014166750020966870479416799728651452222229695276569096229008435923513007361630608263804397719804845830934866793832906076656895126448342740640599617196892700408560050542332383723167233124433707653350908182069145403180278224920354417692015118367745861435816311109990905807694090150155524744345462012581901330315553707321191426728697969720067341618441789112901908602284823606195964737112951945820922441970771949635332471744517768198595576125127412958366473501603808926489051882216345587103819263004564338570110986926247919491871507000158623705390422269986673474904977132879036124049370639784071750178519649862737396235673064861089607549715752637525943827755514647027992808936404115790273730865933448805583434585689630972165543803279556149301465203359531116331925441569539512989619169406239225484623498956201002303249201967248635794746502619046169115414958445073202841902539304934004738496736219352103660027123525027925579879116891484339510636891372207542485822599121661075095283887724060190191977081860122797705085481219445987832563093742921726268138109696348183444918651646173914732297623917497337562347703848843159264819221814822861280224192122878625855791131554217980054218097924503960498279256082317926957936762038818999698993064353911958472885629486497860617879867271396550864321380243976631969736879179712979381718589180724783202875529424236496141189097103525327987126028339555515733360469286988248448174053399006438964553148304733325879868206683739590840993641161442937194811062720858089881842666793609070928357174992839901747082216408760828347632585171158666448818350080830776543234319974885402819394045445974560361652863955093999127179015184535530419136603898853289830379749414865647386189821086740563682365584202552385161604278075914437324269217071475677911123648841255261504822246617418500894101263318078436143578113349901266597858532421777649768658472973379877458631615328286417002020876032775276364742889531890177991134922089382710528250848257130000256414148888857851058244117515752908624105233993046626860985713620818113981561926351930290358963910459608389276168399256035512438251270858689529857346359330196330828197712107719620644406280348721222020000153513692903806163442928431912751289161575763462901257261942899924974567627725850842361356123982082387973660604342773739925345536455326684737321728160867445697391508563791356907317400424307446867254744256315382266364172997138758055593739045960017560662160267020463794499297523300752537107220120313022834595442916500319701694814768554969642756448017492760175263553404121141955656303746163720623066112332902340802346771531948192537849592460255157198506570762733207464801738717814508124625196735710528984935914845595248722000053530807292419922174842736176685146524919499642709370470341723360901057364520684948609928254465226784948522453013894996821092655544832533667370871419537569209727677790105520409564870098581750072970698035486036434799796660572540409383168329865158263814054745465668770496714542542926951454029750431821408447085965469885123422550588051727452150545072485319474304866004865860733145266990581798270956362793072360326684318268133470976379194254898695535478523982415017187119556041229352282294978587193904240962069184453909241471966173419029945884320242392305672657958389043439734022188730767060183381984566612959832731110988105853807405644948761124863657324900375014668201644755140107621883401126830640642915085798637098947641604330566760824332014326986156200770083077921567103355756689207441190766624279917658908565634218205716166638951054139925927860957480598672318246091634458475501363071217933846343219049889666057406673339117979935608882914406480667740512248726062312273817856560835135122056569335705778742850859718545450018814795375216009179865422903849145743466029300302668797595350325960505350518413218500299693617026325227636415946994157852505041631039275942163918328237233560177659291627072451559706106744486057062791593147497561755123783218129105088970356052889239674143501114179945935789711288731875263933025993704972697005838084452637696618473354510498513753564673302375715113881526470016146680487268196539887369092021338121792325910272260276885333572126190934811729914228952689559916284054804858792253070226161468287333025814269266001660879672357856309208899364292368762511885774423209513685010427786784125122105952741888530162936754296170470918757285187436338217032647576412973467008275292320660966079754023311696426041163516414290477521169946388247505689857373758094720738517612945241878739487102993995850094246028787836864379719132468044265295639936666868952937653264355076963412327860597212998071364714402060456829085402113985331014449423037236713546007569225529258498799452479907045629409972258675787252551956881244808753210247446012444000474910829397871317537715886908264320102533887324114570844544011856072775750693886487195510764412459912284384652994772014187749129290924950976700045368996421917592478773824985718920094138592977744064492823996104792996571749592713573869267808048133680237999807751010092045930274143768802556238891476920264665626710523022657117569875255102788578627487541047419012220403861495552490569306407917669855981164278751202333155603530763768402416567228988876617296354653256102402754115615064775915077227842890868424826200620425762221533812127668357877601216895254653470130375624934367989585009496416728765627415307674877560615733575613741439603673169454701895977258164115824628113589498425283049880836558878024537163159417562885356653714940217994115404483678867669541003221802472199406082977297476407032448105001376538224780058615931548635090703570279281688093827123323164227627371474860831396977524505983262360237049877066669971614426370418628855961999974029397179063128498743235385320273481760899309317574604881308919123713107947653308894151781674357730868929765433498128165207441565732541950024699148287077607694452057930160944678776597919211870320316833382395968265121562272282530466652963942399837940635113181019109265207847435942234277367142693065655052959592128390791117459171250514125615897152244929622634960394195739405425380949097802812167090520632465083317732671953990242205224016118928673973201966567575344896879333770672560427655586742808124799375851119739763864302905538641343375022282317642150426637776548331301023934844359576031304086079624995341595968420137724729679653333490159158702471462846138541176136442188785542404696880892237318111710876600400428574927876226405136414517389933986900463077273174451178384551844213981922587002691514526181565024192529165124674855556073325197979527074332989538179358427524312442554281433043040961127560859274186708627171553429246356375063541406581755070500326820899636065935782846354326565194921802942542688314891293241601240632070560066406110317650979001693379436526441690507653844651919658529357483228560016243915332810716293402396737615932341065272592061702714588549194589096574599405242547957434569310623436278278596126943702251537874609845893923301673731777447235764564151716643176490959609813186798151226682267111371123874421208119195121037631290574704507098730048892696084713922616637203803920799942281323573459310257560030402923069077379637384946504197322256274610573474136975486944198825309382653839610345451715029885394184787486512059002690198977892841504654097734514687322105023892445513118393574869326122367791832913102827413283738110538984601048137027925106779807350755221341613687765500312947033371092841948598655628263917005936023125352282163179674928871230863865553481861803880422294381567221054347919329878018427957270014749975268129840415971338315307062642937533405711225936790520273056871096750458448294637887053388727872784669552275458784942327352475843098681392361321360375009779497217763495335656475918644437605574157966765440558894262628451663987866045743897434470214553492605782008942959617435768600958816687350012693471474189143406369120153752201758689402536094963449113710422463433016561853302649618332984948905978798114116268046033617085213480313568494213231127859712429583007577413738585804264408200416888793383139799987579099842130192148775958816334734849123882103791847127026573073678280462825310045897256678318988185943568437576051436097457702386076953615962800011279345457563662909088671444440113730503400616391197311383758902022383806589397277621009401524587451633040682125833061286610260665936125684154924773903768218218252166382465632857501281388288470522240546094142309970056492070441423013929457447221925084603976870992810393954847344240877420771741414240753526334272040469101828271398476150763155201141213678559417560154839269095786316172331057243976483060228830252194165699648417133070971113912503903455999974481074728239916095352339012248212977669670397908898637188824324909755099846688919495668107310356154704612357453057515796503557299574598040719087754890423874645766224756633497636817353712697327784808212387269075839648269311674463665469902390545928342564820650149287404593548941535415396537324622839103614907000579991244313996085604015100952174748497085986745426704867313077262902462634456926741869237083590076567108327914155479280147265611999033753092908792361313007241522065458244841885800895567767679844938917237270830690288449515125767678414951773067773693665492795262803650945910601087072850750581116371884561306553534835994892749513146183905288033589567482935817532293659896466836216139213305209758238348011516989400353565036309724051820446871314301796407381041910868780775647610736536439381182693515018125303954116758500905475575863815641392442348604689417787642320346169071475987375938662919423829500451137818854151160018582159920106249727530142885343089670899498622065667835615159571332268359891658812633159184370140289499609596571251667002451543549578342229624402074301113704138464654462785414131284730546068641644362475477587775144876056618696756379739313113855573549564930564294711449015290323976911630406741135301995473242534254046152677258232926138496617172614620070216724080461997964775000874716624971300104169409908219855244585895118573487793456805722536676225312984075247719162205640696146772557424305957569146582250889647601892981641126500786290477733342212060487192336450417882470369426726817875331069864190377437364014882756702856667035537809457669101911638766202323979946421108934566442259271044313409793342031316251939219367604128837003371867535297598290174128255326912184421820537179681794587644783797871431417077828912063186558427698480171054439510724188643465667199274184080743078532355385480494820152380783226867879789886441184908390089390802031320021907325936054642591964163470041769933275503525219287832281736719486969968726760761875401481544766490083913405371972645328905201318962473067690135289133758501821326350255763491399535649465782804390999029368548127904293552741579577630885187265489556005030394924239474597076889469067310506745008777195466390481189338907026271683707301988015677896967357751232589119029141926630024459893650893498695810470832109022512919407887506866462534054399924500086825601231377759819828326244186423817939276156526946287414378295389272352769966057304666856241387170478195735958025346230282616540779414775356664612339846988214711415851335731406098011815845424693934085677969695280225351398795511105055359138970802645593212346795993435912576899345595621374880480939027811621996465473009167518269278708492244665110291565630985713187947814558891946297351750122868401010358819646040931336896784741827752092298920949085519946891069929217580448482194067003996236708498008112525089906182674513659308601635116230127506010073864042482190545748753860550075849652326855461135355193657889782322734226772934488195591231830523053220365105510205337130351202284820397833502381102860107457229391190642400865761628900338339423251627879860243830208341997309396594639971153808441875099579322425573543664904322996709972472542731993421571812729568801795595403360894383302774745981838885621046489623809959902597127471186669964241263157481327468677972389008810684146607791727560772694606103695101434708713464945410834746714126166174170810804161113180705398861815448854191143421886613427622531919017702598578548172009764721111820590944624907317968256448539222057106285963523255626897383827472688841459833741857516623301741419900048264922683415570129998825665165990042005613969420731662306992682704705037908177285874028665731902732620878339749077569185279556661231956094851063073804977572787036621479464553366526451207261415852964180338207671689684221404082041305565643629318191804293223327361104600463924624765679461042950370709389333411406332238742331981771774390861544014735204442187651416591399122588011334372034166325791533808475967882940334243010404761181740005743658196148047340668881177728615839025847429161220533772666027426860015975060214491545942430075734439192544943676776078523240951426833172565593673201568268466007182667759984984961305969541947039077193621186130139489311506563179342985014135660551326133455436004963606005000296734461038911615317919717601768518155795809362474622613235228310548399468630378235526275422204487272752201014413589839366441756745959579630660325085950812068811840270693501830071528328484320687377828556001013447366431729363983644117845023942932528000953438833691392321088144421875960041878675657484691411423538671692432760608031351786089331846007814078216321631817615330647528732059384436989283466863423477929785760718050706980148781308105757490331418510827310336293290383489884226579374270079034772018878432950588118973179447178096630108928783150969416840457270045832682949878505194355525939078002414639162721100357125268290292530407909031235047235509890273033941828646139300755559213850481431575057987287237505594510288676026452942253258769785988471762501604160438160966686440570906484485695904164649933057108550458018127572206662069678728794538318938369692492592581294739039944153922153452678003922594094994908564513016631922812021214219343861831952440162589258716743222721763219866079371238278509812622203841704425871301128260548582434294074289740417510646273215462430333163481055990454190457411387288361299440068896750188944823923389500859486519438467099294357866719584925359293744553304706038706247940524807211248116458276596683100633883844371346805739089359036629169297811867824093675983978620995452943027352800274252965115850628072347650778934618079380031979689409979401543688771290587870300951325947697339675348377972698829642381048324468097178700344399222311207201491410068804589370428981998104177331175165260960894718564895428321311748367995317051607884781923612687232884380425246320579952950253858030388285882742305942725725979668683765053533609714793192466521413510758673143184750864759399152752426364394282473825853490744385928376162478053214163302607736722704890355153229796929824714486163274313656973030012145105100995714426300017702476955599488024403925744287474832368303312642294725088902901018506589141141768388938665991163727562975263735350179222432588053555764064934975177912101820764193884442754408444526620835620029975312195857750299755424030310524945154082521995209736661098559019016017173083877109299149002326991155629927612628014834291945079887928067705275642945616004192282281259073359905089994362378499891415889161870097130528417153068876051397393168676186664275802528495940671863548748830174640814857024570484513527367688988213172306891537265344102621498238579605823464330304249446460708755200829832099733427140386091980153135721219586752386977444426278038777456799448978818636209003715489523068722201627383322872730458397102799305372084261026621315190840747788773511144195814251508804115309010319987968369389210978925664685411526345128208790735060264405520418884019424705851192881929092862515034375137570266475120815424384492502018940496699596387487284427014884246036781941978282832758907826689863814618778945664105104939188662414019474962800284267136452948987130035016071616934350995726925005727455024508604463779767215364207701288912672443668305262531713788604954799285147651569843317372048400174358133048215715499997015879416958394023137323842673046189318833362105691627917655706137696285547582633335149314431181648276648301417118383054800869041219540684665722332460984481235034847927532233111923145057741958002480512956714203685876490246983213924204026011598175781525890080971723604651146103075369101026650613235261430597686622965197839571377995252124170796914191928425709080680294160679878462948304505679370437149168296366406861440275826028164870148357641520872863972024298368809421790568084157245982128854310859695723129408542473233371781471182696915123559168548838848977641755516048053045446755031298624327361266598683117578020459457516366701156077332124756353181283307709596438235577137770808479462010030122748473877767385704987344266076531561476244311074149744712722210045417050161939379873770721506598468296549046379952652438397670686539785253412320108449041698470351319797059895064820209855617468577323207025136129728854977900382639908251096678760675192456231452979784003884210837312741992039355582353900240052412753130056046158899310869410986250345451390382520179587122835283918413055504822387544076910365501805040029534259816843956641921808655970599058710602424119837033658314235882112641485671773913063869536786633398102864232267639628086381931125255381557574310565793925440142502364073172042409620441924820440824680649862963624145618114577708141127850974867457827295472531143271040515889914947424966651770643427493772301616334897880486651071736353942777775142686239402687880817967977161005470933414586501174900299549472846462581788971589247232683502936787711490910555114492091698819075305770245283458284923468461359136278731101140305413073463962316780915547916493445004953690982687500895747044011043025061146638016881089187306080051568984118759233106763305347818124278816180847627738974616145576033901050372124242887744483601325536682344643164420698517733145139090109199250315641842377585501720634554953139723945468681085644246531068755606344732428579850765470137141579890026571426926939123067576991537938102984753215261659260023038205452635747559599873837757501597688844453406994871144658775897004128107432211042786346864652293973942483027909109066758768074560183246372491200986689157289470734207724555383154743238585980804670753045213220644644838961092171135145719270812030736841982602872255971573559196366035308529199537864524573206945687501657321530886858317183396682636932557429080292446404978676247792167298010082457702541245793793585931941339635000755780837591496756663108179668064931363205545016460795154317910652615522447348467421522188488672029613414141950479416667350904213324902254003788883463523152568151037282689835422569604468975009776141794163700549630658157516112538817015401958390737818944155156664280134970956682317836082536822422944406713882479536982632632124866360838941326528198756396898732614201292935675287824768464998537460280796466966454683217375947423773307559962436200580164578587084377350021597973411977080907485084470183506953049386657687054746675313844967647775130829835852405464887630002028821515575485760082436171399792585303804224396812109146174704704640613236771816953663027972913737880775810332039556492464714260558713435944133909254667249683145269136597011431383388123045230794808205439740501697123560566603329127182407397028710720111537084263070228911121903807829285359970433412887398686607340066069220511985727460176871413062088205788792195686042729515977214221024060782470085611076109304252432791206068085214879386138931159231861156778174303980852451365754717991509175913229726459115590379788197737157609121547635224076398573058421406271036379475706074746343637216805712482199488285412497303366632485003165174357620283374235491474380835882538625518908862878203155763552618944767882021480918890519089579717020700859689961109776932411132224780085111598804913093036172242589693231620626332566557663307510271565832233737879076411751104128888812437636556271681717401878067123991875974480736108666517967166893037051059379449687290588151363723437141963514466713303910770867363890065148769354959728369647517301280102789379185687279259265196627647414199166387061485414537265225179590667353962007812042834931260628719514869524568392071447151583896136823250480242980660174327661818661750143955064865769133670179074953517292873571580014255015488027716649070934561428360359327912976270666799852472160899792958711555060087590954596234407250026908612016122951883753250328237862877879075699378533444318065985085363596652542648855900995383206760499510401324573661481197074603296813075565279640551237420738851563625569292302571697682064729453707855306329998003619148673442299213087280424888339091356477038984317195207685945905663146347777266200127930022005372275686667085673487137874771610838611983046793194935495372452179979001744278354889268022751304573773130968566947483030719899244769097541991245115918265108022189492008919253626667531313695937412815062359845447482976456880410861091977388641309814128429084815024567196603740270775265171634684173940324169554880421934027123498590845237957196976093366311140823163415062631185388886694743685763932640632677115358651392504098804890859876704434576244828336344391392402469488670623409411103840037979169181319653220617434769965073499477183281481386527288660680979425678239109929226312429018791169712824661807342459267524340501281626658642334944673307858181430171264170733225547512066124596455865077456649849079932887601511193585244009635011693841722145087349665583459516463662858543606632012355200811056966236128615348094792664153195376348532669804261476068582814099665956689495181424971296838321617928263229381424074136055308773969354429340236721629185302666796391483768919364817092159596209050093402203450087541110025381391020221018052620231952386999677664164774708545576249286220102222210108770573226189457543845885619970531797656990506076771551584784594087519132421617428486074587734553402898683719293884558199858502053623886095698984467842606785769592976966913973551344352634905161010245474397526960367483239224572199314870678646229542854613872590021184903782314008476086468164416124503852349714267525805587188159472821320324331972079815298598390825355271986364168494250520033594629783883391146609805241136243102070316130664991834772443569535326254210467153148605084481549778150585431385422596128317339136488136803092228125136631905864176756867715304865834088562334268331812511125868553725736732790582091876098742454520533931275142849978795604969716516753443930475061345842658376656040980120791290509977975527054735050554216197694532664761038363262861053515183782673089041872831578912424954386482142665262410687284122584022147284871378808572778668802049162141658138753590008056502906880210529099240944047154698234771878016971011790958962823539634022993873554693546657760947910902361950253184742101709058834178591967198732069901576899475570736402809457876162494546298376197257699962824552806299826343778582267917517462864806466974198152297973403400166492461451730478057301822772844805364605745952371102311247838257922030470643082061713629398383214145718474217655995093821212436110221059576144287032978054256362034252056293658882456074903313179311094735182203357405085626901592190936878728707019604799460839647753157028264412910351004820208926480530912643423066402348930562679049664787774470495616592259745159275697399095688827666436862907537898158220493259492129539186311585970145113166902294157374065809212925841779037169340606977545254957760034568210766386461565372398666030670754299505749375404056583506448435396196393798523676213322142194250908901094873328945347367910026188598614625263428898334742804784467717241966684274297278468220450138103003895091976432029345930357624614581705954684233584655574357727882003964714966588332730641929439604450447042582178349111729372084711593331186031459908532196638438209522228595183609631222809933904209968423067586922949503963966169368878126803377438418039763390995726248825985896818121668003730957476302681984675249908232738629269378469172728304523468368244951723504246854070774513312994230265069908141912604590718143972542576302588586645032524313972339347857404628665235747461512345955682512464732460855711748944959123876429236969717541253822546629092517544828786283970823236738249380315261762652763992203034364239286886585009339838893927006652501354774079462071780720949074181451881287766715458600800585223406525066721915153599764657480107960172859376910676052288953474388739016015734520297326865534695091107418737122223171870050702417205666957716689950144703992472429697558757771387091374999275057320306263740280920057599856027927169275665965312980433021084658559568731603702351773765812461340158330644643645875846433845691472070168331000229429294139364038700493337313914549506438361143226383510331161198299424701374749891774560591465181608120347918814312519931144515189316920525667873691261185627343362476303318042417742242069068744652586931992746554335150527965854369292945118289404093632785063452513968300711947526710139716402146684835431096590523911001154107470816142139986093522258874083160336808863785375277808159126976383182660103198042416299879632207193747199564252706811786780662960074438218348079519117166024828410371769309627830752584623426120580003771443663097551274757873037447579213082883709067412613099047499701073621683973996282623499587224937223872540105776463294706881989274307138993827053515307978479641398032427448736446093084965424257573933075294077397054859448088467161285942228076761591962421391332480859680082379184160606557611806295120957717322000274680914719996535786375905454475445601816107051104837913636194008838124420366398448120852699788889755029997095052949886062129159779006005788234957948432864001304138005564537451242787582556921937858036403759277699166751701685953637340928525815504403045863582589514775042657209358956270269755672469728804939864816428486329263924864857705661123207992115635747763250983691792479279060144722277688867075115749732958797116657783549538147721557075295254597289769659459346515140847753808204525041729807977457871965527947037032826224128757524481637178326734995419202217113626308972320549099489234293550164468104385307393260953603409241256093949132747197860615156187489245597825101863431808768068953878685347011045136159547819637526049013475512633607219791397809099526658429308258221369427330338712481327747290634037955412171409892389509647088251864669833219160593956822107067395961448730478700833784091382897672243467902242932829786493895773759334440622525199641757540524664376222455374153080702185204843650879135747976590505347386231793655505566011927876049931281248658771943763338052355059877665567846823143262629994363182628075025544961198119216001308636735745589145025291903533767208394827560376476046003436293222420344950442360227384208811800712266744039835729756307464923236653427773995518373655922837128117134388711722924597163943267027771503540701940302323606940370805990258160924942066485094306161399262900545943567814142357649352641159962546090130342690578819839994029720284572657676515374538076865625270151388072499550027170913236835614628392450357927764144787414532306180663239809616018384794802493845532060252609845313056414432807593696510800604937135448506830443315060362324001764285568542753551755644851274521685292967002832062670341382348028168927995848226319615363070543375645074147298587092153547146064235364643780291865887328297794272431049177232934806776734571953949802827895944640914506128164725049594933267171388781495214684635025330135077444873886921675435154043250142692700411700953578559135442232808720549948089048063306786803897917576263785416493180803447509079435798019910965027235686899329796343891289947755643970036945052336076823397187627286015220250821823978365702251951502815991841653111566112202155036046576253119596196259471139189953904177333270304346126183539587816396355560902484743769449572464508255043346522145698883329396462468802964199516343984561628746039227928450742737725928016356788523808704348780198161273813451628924407321475413249241435570473917571852259985869365677961271582593330067688980149296640585583752833477796845950332245612999329886439522134550681599784179387508846229199652171706431911156480226638297414845927145358281727798259054276652111424740378301317771666224565094484525275590761333555797010073875128740548173504571236683521790876853287811135659776930097446580265767555534523818250530345238759360734087358539219399481968718463745266461376382244355334755830279865226927819462124892373718984065355546707353016047676439605471958113971067037713819781237952559156423423913666439405525897027220810477915204592635511339684238739302522838609357462077431371660154542218328410463044748386991613285285357458282911843695105351008019492244566657577210352913346560015013443347379089772256250581915869932170842092052044008218943102289920653720724152414645370023584831073993603490586795996454044046540753279937047264898962268719102311642012924687016167347363779123529928524450102293732869795189335935108413990753668671447655632755029493500642824918959580636530059829404685289765965660986202185265855344960189689012071389706266427148898070309994603661985172414106004545626901873240395473969998014626456532676929129868415129816732310063924571011661095404884468945357786146501883465738350555585536308927986142928163838550009045079940160671003804728908210260866220345556838499561243796148275759894728920820705734740801279692853410157055295075862143120823849842471542100852602710574976764973189556485347967164067571610698653405551178011437045127814609699082249981753679937736807736734337732625133153644171086969001817812508871405754463159384333850501938242027028660462220498853924555743873022046217387314705475480929980386192648217479428777691227364531537933208500849203576490013678014548084031172523654297268830898406588101692502561668898240529969731490202421532596222349216886832051931944134266153115983119061221666964260121484262742793027354902469719197696530241810967739844559828224081149123921927381699456622067050477849447111695953775992327183885587251785397534608823871678694822122835109347257179175422442226772946818517367714008086136078812028639810398990572676073180687985039200877067463833976800480110205062036483319744619028145485300661897567804968042126321462791440551686457704502396707349724141955677894489586093051718611250781290604719860359743787544246972290097547923065904203631048258899535431592725312962113088410390144597129663729373712222287289299531502371625267711613331959070013340921232142832303680019520298998114431582125661259635657999854550282570677402707722721870891900734733265205867697574622584845262083526124318563191754281485239299683115941294209584414164397067309852895933125012394633652105382254150634245127423945766575249226637733312533823369335405320598269634232044501630245910022416403201804327299016042399827709652269287829076010799284064036674917227473566461743259451910472228605012679461174394628824200038558877662078424543259031049780310550126338023741382247502790535709366452067954516206369499744977473675237455038652542171201812837131047140256539927580604221343965322679462206953265605239146108916176396545147746132370815237304221639620039753979113513977200791814843505612317233826723324373340188843751916255943029251553730180682435195735086881305732872014678032819106009445306267290110819302609330326642488703919210477336352360959897873746155815640853544589436455508910377658860590843121834058174226388322494998827951444318277154219765833518450661816674682064032135260547292605366189468100052532917568468960253254300847384075866267437775473821217258201879383099899153402078992056640215307391026238071061684908648555492711986241783460556870019859128636407888760145805704970393139787745718738039724915081852112679896443660612724041518215419394925367686242432304718209361397747390611772873024236549005260602188298444613274323151043887897056133924091520844227814509194542131684203342730125012145424364417402095866036745187300806743378728898897728394365537737186360793138083224387682366152296013018642360982641565573848577047013524647719705524968995748162187029853275968555554850845578596670068633612536876716145191490166017433953567690676257741747609252553662914921717788294893838363234213895829538362639180686854924466979128400113794681889931856268154140502600008878290090723997268607409853456480686904075327879295410061150016873100801917684872793382372022016079538899707696589594180034263331654616450197150431439460579055985910108148381435765423804379203632893417402206462224949681652707151108736945956358077841202105443222312808033335318843623369923498998065055124622468481276670241271520972947256912727892105490571816969565663114738519445448619174702459775687457666216660893789491394941779928938368718127353606040316033726680978420733058433657367092107609226340338034773439100797576583059968789014012277064126671141427270330542496166357911533124441255749337562890609855522590507013634419137478539852972406070015797623629656630319460229822140554274337040389661584627666777906305158524331940594229482662896529834087172043294427847544490739064178957182859204103231049359171260620213309633511241995198676226235697345812330349386672559877978721887002197121152508963012011887615918796332904576582961700601278477001402950362487732855606648313003554048955668383438651869541593942914476120944555576505675896847948719963398591181797686994098526146815156310149359206538744815350439445710763259531515402821442024876938762002422451207594490867310204083190870033088798243593421958865794996262030826589016456816434970697656719897582936664552043264858872707858210459221452011027951312258444588421128129011009691083638035690995910473071519181934916703323368659397557690550836627501568062687943053071721529616382621577873010739290431235457012639115334670418042668137048487191061054942137274606500379004884869196098552932786929211475568658578648581377414956437901897679369016228126112859291715930513720272954558297237302137819356505656281235098304980867044053185498340900608195108685621227181950832805342410393837848113223786134184832314065031359226454314160711050774812799488439743512636125771257992484287760146919996463894787219547781872753769964519819553988070542169370979607995555970572830717207114122162335991891106675611099972068470404941469734236217464770269396876050609998180658354574685787031653458616301526467271535799730869520957379115504122366827079051084781036246096189794063543383945117289182558526959757448967089153493062166526223443477418216400065951916202664057311542815077339632714491371896245067070883342508802978427594432376962127295284806812842406569689195879419731383629149485657734967635624635926825581277871549709914117307001987658674955839298040155828183538990385178609233998560906646603131710863621076043209669487981996555620281374302481197017447031860605862349038301685779207434989407179438787178636327722715385061710342555050045148823229068103094861202783324464821142413411713127624372878118391158631494227111830517243314214132545860559630181922926396822880088656548925825288094351659329830590584109065481696783675528955348789547960187827521320145929152476872683768253017415708779941999851314280398959221221103100696565768019073063129789107009568869639119061010042979832266925209767203264596343992073846890130237703967490072164364422323450709512800803330389122378749802743474939944197679517087839119181411716815932071853841481130509074847945113477006305778331094324067065842055402809326119480895794936477118036716090952943447027693182923692313386293700600472056932081629222372677749988682279557649654393919116362749486834813231603978336233375252496680813502723124647350201427237954779353531541215197959162815246437419349859688933463921270169138545380019824486300163497917217724506792674321873553186942461803799134323092407895704995971601430715418242470593799365161360320124845363703129516715992967561218145427412882608343702359649254736104719757819534194793011436729622286256537790599917323149801591050138460857654771469201343380820022593508392384410706066235921130291924312543175557203363302133183959880897837979880779786555086678937752362190151488239423746587680432411391538649161674499841541026919244453822667524934136719345656609703461962593844760361984784452154841194625523039399052177038885035491370857753470512189800564098045507738286858712784714854901348804288894976366080112749370079953437445469430560431529366136288755218626365032885310566152056234610227100981183378402857937534134497771336649582314108601385871463349154999835512731186147230201131840969536985825375714086117338729467080231128964796484917670824712020996672434648938821064234422289721573789830125160380682616544637055838338055875924721833387052475338126970720020015249035653967844265381825432628230510234876612519353792939472350134199441085106344701002284678962513610536117996624379716109234395369831651691283101740026443435936994941614683560650006624109139535941947057161541731751214996372706047150018586591238110367886318266219601308571945633036870197398325390468349453256332704460086174179198301609570293924775989526743221718790834791611482457313235808605375519554635262506637194374991572616763517664612696418348489790102608612950126786624806095542644168964381655547538789647174079536182587600328953429738465373266470755027104987716982398851691408064414315788899538426455444052731378770320957829096331336325630900480237839866579021207922978053497956010895740752420648981516054582948686414853160907764399958671271536122282429704753766920857380867986606620201216360431626156163629228451286663928360598296679730733727907702839361135704885997625672471152184449715178402134828517026175031823745164334851793826892751661503664335682859422521170253995709543168616849613833983052072756369956693289553488008495283226760455732081851882391029738848838916657783360333515147596638259915804444887239356726683341015979721512433410065504333862499174777610098108833118956414679144682553351746681213201914851269889348641097686444742995229514026789378362000061903383725082107960601978544309575019187756960467318528035390649432024558761431576487724063208608580035000708039972802616954683876375616662492195552094197794347184739169047367167701444882682223674895183214554548662601787099963529752620602300400464419162968574487683640488926179012320848362500889249723408279827893101741263838405202452433621200597713604008995690239205686458547614479088864453974750680350547834568818645592300254697227166315696890994068038341011076695142617924903699048542643302184749486229543036065032177436181674846114923927908186500443287430367661803236577005101797735434900284063660784333356171142001044765764853161499374742061593405011282012993151002957671117023104417585366436366535823542259236705769855904193861715749630017965687551194631692327630115539349073258865385174115550507182335394423702792078891377971607095535869154897501129816879440947041664479895237985606472364102697057592946986746436614634917229854181208832001714234654505904750099298223110224215165426719079717155838680128220648050663536293837916125176625290104040417159656730641136641264987037521209550675919306033699824347384639502024183915359927962136960843703849089941718050491694171660498422317769983129403216292669494826563743772759344746047828602562397682642588502638854950266088368450042333047586748945079589103919790516791678829312302967045441237981508789612681222400010923422080676075427126018881989089040007536397925587208168597839736314150430519465730421553965386435074195082456956575656092348474348878937458983498912872345713768559078738189309352902203259229624160431072126924921126144189899172889561142558431728666900898451799807272108064442086348627605865602411014274702572671394394021560173001957198714564810409839363101735946592135720840592794710611005308015847991443446725187279999905318229329185043105609004423621687538554183963570933971171883424032528726958756258740416105622967929440425551392215519669776415594553564197277242562591129599859072252056897467258037727151481864644289257762310444743883988508290800783328812205519552219055939808532313559079189226298331714251890236620360629292733782390078508638064322559158999451373886556810075895864451572069408274177532986201350564801189986970763435725125955680827726987997791879310969541007458269664801210497243388316772963457724027601643787231621566281976440605232878118876899175591610129773467853208620438425796396199326978340462620110427623102211623147567097058165213578922547327179229572118843456578284529730762386912465012304238853125599831686330049668992449542038046310998541542873710324089737028278411531120483523616804188591560345833429293918752443216990634661788876338247372823344053173381946750091451013432561488731472430364599694704777321354819068535445026587913096919466663231478119872251257964617325015769371668367210082575554437373022636978091481473907890670553414532222772957080115978348159285677470191162255426680263044274461772884222690895573893250252384398470837153766169420609303950334969200298072352216755360944651167788655761439801826581524824092102931461236291888970797445923215472476488768869084089765825837885317627110901139663154143511436354133065380113475002993249172933139738778614905030777770578564402767772815471969450750198000643127998445945553750629265826999016527892660686208448235342131635780074563178920186698730557036365398675376302257179211360737486201515212023800989086683321584296185299543705623877325353089387734829187168686516639626843371975614837861967490549673715678077717292725252225795472893509192895622055858351053472307187715682336938359610423653491559429813748195188270621016991153857709625665840242225336913301531464119613600479811553520015629928741390143226729030002473185049010415667038465855852841447844766200902410208311215341127090429325824992603915084053682784392568369463692978061180070592244888825802796525952334293158676617414587552877745104283298275416649471290622261402098821597613607313964613175826876281608663300319094297120597600672714201816798132580039106126952930183473684213298833399218215410831847021781883069072897569258295136940448561865932345298215744661621426852681907649503627329636957060715053800566181442288265133111252083381119363511196961466563404472486879945766890847674974010771285346521030764847368146429272556272906388611199184043704909718336472467484105974557612441406010501376411981085436682916216783642673770387233999824492534194235658745780445293753499851117371605878037371121338732773822749346810070327835067256876979874604812070767761181364374726475438249327958017847697792844498778966010487884624405077827572074158996516812402995509341547445521536808627823647055978082862078973110285845670521605217280361952254028453185368151333925695346238422794014709238825708750778553718634116202304557903535277782570674343014609068856021221665223180781594048154244821025131818865764979511467629260800687152605485865643176894586396380681116985150111113556743503170291348311828684285006825560126372804119738554124081725684091728854175682866374349232450354308544463152747241936692345650737099737684600956688516327975085462276188245710511487107092558450672829167545564032114183582590413162303428249754537824398369668507112247828750275870679748888674769664675466854277896432638209222797870000126187833860296972173764699720330343180804046320480971358108229770913879529527324428860405949581771051331305992425159095857802336526689215354877991968437929908752590185258191694211797455756923439926702690716757483884954245982286012318341005164787065025604113520625476085312627547600504445809931219488539693262328775307994975787297032577500170287998502773814150446304498537244742107489688319314606290178135210230391141621995509420927846931253998623580764996619538046542405264517226488271600811772777709552264683523865203683387554219408882084623582910469128464032196164060700463353690690020232311921040767374417531871372037697087289516252393410974188145035043002765770320578885182799555124389811831589394828861891110365617238663502139893091244912724163005386113307870927791648265611822843563413297932087684868138495668122760846678189317564543608679397077051799405097665654179502980975791560410468925697395928976534564893217577029328232669386205974058230076298482577358949429396633033573072755166740265810900045314072216353170300317076606946573909152257591157755809006438699018175421765688684764656079796407468792943265729838800369068579097096979653907264031465890667559060445877428084813069540243747828648004910896215110650189593376096879165036395047208734037894215716980986911275718099796035197123226499571076367455320127662922520377604167543347413301457072999662013324363644140612319726452585237486320396678105974879783589084347130229198483261719958398435460848964331297387401416049984354090766236173559189932487681184772915286280859092577620594009710587009201799875771416254507616352654453930350081155960294116882720360593388920500758490339955236327633828239780292811288729495649740567305860202786881205377824480256454332073368920073003100094706268521362385283754621845252889651565488400723829672442677817891254158555100807978780025757829634824297720271121998149677253439474982384597300681201789023697812101900769378597731244630342880825103391142704692010327702298077018669588964857133302001911861602601489357294919880794340404182450746268872509489680220040901871862365125262681861526824256112727839311148337803076018600479299050454862857907412353192940968106335977035869176655921327190445377649329703111629563526411827264058065207940818173500257983755532577570687928764017694557553736633686119481714908507988799228028560642905746307803116611922858875898688315911318105931034912045339272430952958108302981468807615155993757535138295755175855080890443177763340361294740151551647564632382769018276672836373823862000015715876203103028766953709319016768607269615920075822176337626378852049194196174451355814155407624427758709637267065706265061701497942859324693532235923709218437654467357636461296616445925067139847228487374847192726994171189006973600200685164405756952047000609253225379011626146584107365274036510615234598175293450491708123565756871346253808341444326357827436143500414518404495158655797715900825976697793910793707587904040580338479194545673786969483262815204246858886372795980561055989662511808605901550826629434944430613398279719528410822906567753171353087922073358480905323358184090205156856076157436605981937642158220072262990505833883850845557606686588698730002775730332275659687604121548255725102916329202540103639007487668002664746907032609877695907358963485968182942069348849067513444311169347114298864261499729901054207365307180993299551090268327492917938407669675138991601485013422395510302024606336079338407466461380524132050166147171384389364225698753440859884956667311839199122950765565352100054268070082922046720871188219577214500286080775527204592269689239439400135861597657383827232607677296752950152803818852454610377493959946183153700848296221383565624434918937484830140431328314407771877740436279683807350935869110177539954105526650808591845430404117782449970607533993381501165383418094248673673616978462127818396342778176525468395285088099468336808780375364372456966211670209500198434002608583387110030898154217775212126976012437808841285177843772446762223685854952109502196804690754897510253675890703623018102054263286861571704627200780508907389491940285482475775492871772920825363761485279172476396178199285227060440762747984891501887721337525046666682466104659837510235481607213632231897374111692459305614152155736613606155281966553826203504371064758700406930064449436058448216615650304202804389961428581120749519503315516754167219648166915773034911985232703666864619050538188651773184326540602275660402666201184183819740214737698150728010013033028186282576967212860661654068747443988636617781063136756842383669284449834944566342197725737405187824655762986950811286869823402861983178504089057280736898817925067004309565704313084251279227771258615838741473782174661286286204070386263433016894492874819812328624430797589229820601466259816203243147970173652969968958499781468322593338386601705817587537107967851382730805528405623268309167425484328249685367861735442554278252350253010437057796645645148308870421308787707927784047006607366585341279362627116938321568696449024956550096522929811358907465194192131596736754301614837916324528809433186688946112599072491404785369285247223371456980547193831678653084609807782977966882827572007835322901015951467825578585879919935529559820014129820026298663260315309196923214931814627893234875582040180430725674123887589703707891319898173441755059035785234729495336818568737604545415904443813142882941718998520425503733769378456135771695819045749066726956813143109620314012462460780384324913917083729560748786448492730681505170266942597473799172693907527619495140534908748360454914626089164418604622843479672088621351499756107217374998456071102100545935967882736624776510370658880445492296099353447236867836938396521707113328795621804467364252906335946179219894334213694680597812903761707597364746426894878867637948344361760340551702227491321956478990450739095711001455497737580905326023530820615826215876597206493203048874807883058712200847288180807533481511853537030192666554865246560367266379577756635459689088599282480352347550807273063630428927293608504855829192017328576577605150270620692439434273360363446455349133100585758963797137098261162379680393760204637148575650687192127989064079387543659449681325701058052016999958817659182141142010841241096791722410863105915133692357068087231116673624825271013827981403530370693775778277135159252753106722002802430578886201086566971579579689513666772565336696734564390741379115485460112742926056514156381880773065666651319524218175794184916494435495407129350502213768458042137890854658840219766075939103309531604014196098798829144434033207391410895887139119270269642305418450231653091299082410236913715430784336251754520475859492000699717133122639616247155690706283610493419240007846784312250722139539177990364012396989404825752688522358555829067032064522128645367833346130648971787282498374357578445871963237653188663579440117879184168493441597046166058949981234994183738100538634782574733126062709443328060915658446555526403831497085261496745242679009338010173291825466997937105649427744121925754548407480457147798998097759356594410219350255667810067802451452938373924790032997917245227642432467899319725930054225688928559972494790628814511296469553797267374287100900552721809834482178934817315270524648964119301693984202375789803821488405280212711821428022680642586819679742892945954361990855946268722432323922504966498301199978214046910959363766804813986596197005842013563948570260007481233879210487885216832777165749821447672931103572570152901529365071535921014053828386884753970221915884473967000311333037195372020478341881217399888769754165093921131866236257859769074670119105534039184051690398613759227020372798994314982131728912836456201882949541353481426683745049688483287104272515824421960439964695829450530822662010385307456368233516544723945014453593770567929416647905553849383385794963561264168708780857817023717448120865561863061470823401908797111899256424807089688854547953142207740870207440330202295457028339777208750541300107696399246352123437743796926435670649621785212387516480791464191776558003200622158079230766424469225051277514796431513047929569090661737811688672732585040398797419375495709194610406396993840292574896978932948053081543860695891816423968138902512620662209778182585583912522291565673908343362785710864993695911094692065794332635331734244667702052689403083593513511500216748020229136985712788950861171850575535482278825604867539922669637388884041990536475545181674978145906824087332537850400686452145505308826540453402720672780499744580265350972721946448707698509913582695046313157785777836081823397458955942770232937298534367794209482728017487040359720352411348664613703628794585347739352936124076531262205962692202871173139395513932740132015743041112801603871398421132421247364984897675796010825777639909908026103280826943122934906316957911825680206754241531284749940646081968926946975276213900428940203183385534477970492666905859334492729863683066815174725766363970540016744807924983864539334994256367275829192985679440088463316453014423881641750792563921512742896831331707142511918053083032598918156269791211616112826769823853914937670351569593906367150146840207321842969227787452237285416598616815233351848082464205117036329848771788899085112792529504706171592050228270349095771476175396722149667472331552909646762137271123952037706920244679888980607528586092687098699907516266421257316108133056031586908552375746251927493053966263751046318331054176367276945112806958599436368753853810607199406089498187630952081053222406431114659302423234151801857262761933958783718958356810097723984378005160245384293752066029647159949192613421813870746624975490026601007869059950829877657845757712568140510737704630623708949722640845929745181087422873400354624999152654498202187777707896191525504269253761456823215986334686978962527641787659138680758123676831528591553257494524774590244455036556562563379558787804266563027823150025831691317546961922224316609338641158664381903361028899305317705821952977261205779987697866970269294158874538583414310127761564267182676424975757644005843061420685560915034424917371279642148213242402933045032842945909239439867908720715959909538519651112122822931129367348102069857623057877738122990433111379105850528279544203461559549286216667678187809618745981546292989269791985758717868000130417402173801815412996528936460255853313883346560713946520355369307116350222113979189942737483689581242455054155586591363491256703975217852637198965032895417012260073565127989981449953009414329217414620638744703255676504340502683338295327205733822970422710287606555287203174368020670340928615567514349627729240560882761953306601168645701002627784137231101983848604023895750155872235532580202826370997403404033252297818382033156297383826035427223877857305703850841501683471575369978914577039542891347112937172924331940158521613538957324718797731944723192072115103246307543097258223430881738858485794708742334050138318570287169548269647268367813400720223419943868446765459229717665602636936103974728886557879952800131301849988993320663523735185699712442565890871575258742316275229780924744595584860331039326610749496352347617520111456093422340009796292396144000166933104182081771395771407147534879507957166806955031169014819188965139044789795321851157192391312679271371426474283130395810241472028763213059286920231068298506377032727804378344156306409501245287833647370186750490870133995956150698467288688396284692966147100068949489491090515852121257440805718420996304834851905288707004297637274750971020257830657934557263259203119728039941343071318115694498073782139976389995943792592191995833380039485192548618114766000137456185292240944170399169153705582050526009136256658629653473075142091488781628850136849738624494881380184467708129309245589168069436543080046511341632426951598929370170957982939465577884139551300376669272422671682980927817721805641461553127024068518240564006316481447607080035190839435598022126805039682277023366638532952000908994196116916932489099105004052769113440784365552656965890409434225277088072088826903038813631266570687263308326888752732046325931940598742757293194433089755176215353083394856596395371988286681686522113550852246872361182887691936498642897953214123671210217865913932305892683762858835936559904621978779119287459844862929912135439626974348552761057355759641351394351511504166110440151637950917337156555001639744356429307884141473646656162188950766061292657167786199036186886944361425024904764970350883173142826318669844702523687274719494861468185902290484671961882413390182534598974781714005806553377612549597217674165284070534901982893709642495472670819171537188870719068939142350942704210049035881597811029329153123179512677451262063225188174285050188552107708072985585981638718074922709394798020767498998383589651506839307518856476935044703231765785625180408425758181659498845834514843404017767757308546844598064773943735694272564915132577406776248670922310552836920464725304160829224717996377362020355413873950025247560197560053676260780718337213709314066119062797085244772329365313533404587551606109863084895961650739531460640360458348941529285223837600241732223428209784643319972757783731464915045004058990237402891552752897099473262691040300223227218130085118448026060773231057477392112504118419243631974877053822055886946100424955080199727047031676393696177838463882405048239324858220005801528722465832500769662239979557983041294169356511696162710290383381662516038802652651541881118573230795630603556199748219891176000779262736095023500026139044392517284960745587076769396065003462708727961848905090480191610679855858225267482375021180644436297065279858601701411698097035928418220546787367140037459453309190842876580560070868942675445881605192540729343394046955286093527519309658359519441277249702787100317803076243529481750768433928534656130425688427551866354052241694699036829415433681180705841649717830698713843698609740508703569217261547089670417848308720060707497714924283442425149919169528508934432321003641321269799366657513512800731044232158851633633032436392169326627072056784430267638261116253452584398860621690476157214162772720076485033007693253120597567862899416253123227315460866526399875684367741808604290205573945770508530569046653497916859466238176876952477172854576422986803108970760790207653006561259135091553601125669867844629344555065671959384901626993397411598753247474515349888249387390157525836737750023710314411273670678632810864170151797185289345074532190341362360256556165592791960229381643341410800062748186394381045754783291352342977956785503050028417902650838224793680639025789190591022526590041588805373120801546187422286420794609364454825322683437543607255141711043484265565265922975622151647210892104822316047003983868341896510482430558711473537055966728266326556615572124952910479766731325374007341417238444892867705612125173949722156506306101248657469380538285603106115094696445324822379621427183326821743107673994393276428691447129268360478292109232557300861511063702903312115306994970294449275665079081677833864677170181968954209190396216764924815105247988016492119985673213930315292942782887854236631507226847269965591189148045877176831760253692840831091494072327055613431633828923132255880298871642482843463316694769951601863498589584009726002162166954900017470214675496190687805407481108247825236819977097113152014481626784006329829963476974018702407521695278434831226926205396117017664228472261507770601807732399016400538706581135002006213865884600988035062155810681798872188734420569042005096437297557514126518027817457109907825859458214297582971631010877075210973334687654829667787348964680972231496649365292520147093724803796385689633737902809871973699365571694651166215537102401684039617005996526286742572811625561309084371393681906465647306055359369930233734063193013676116526277080399123840556389346140179678905672052853165806081686234986483579701607059591746242541200710514676452853822413840223919458511321134925117243090355001893089004753780967071917874091731940483837758617188811371824784414613174452872353547692306843688113186603227337729871138065230031748738502355674950994511404879681099835454858089400078272948300686480369373367733420136593497163545554192628567377377560425183838935435807761538457586533324052840810009587529921229281487545098777231311285911052065311207850155327034703581654150954285210160425561583124012550276952012965368137237829848974131320775215274670970116601915685062013303855681657918707138331278735777973883700598409946801259008168365709055818958301747888021031084805656599727261077086226872079514375058326362236462719664898981888552035196454806054663841744795383321430542149443862139157873347840254535405371640048617098755365667105718652992106302143744474322366550214271006165999244731715074937170265303408314097549333064650512780631253944596246724850772237629094144064777559845888295947368145162974507094751713982745686543777627527591298459650881209385678459642366327709389990772146640005114277804850431901093745373833003056553024217515987549866589623009994717187180438400474625270543077814784518601558985805562507642572292787879254456924203019457328632038567024559306464168816751475816609425946194626825673651362662810893992155589400765594480944594630780805507618814235448260282780608515139770210161456418673500972269726868945142377651656226278026623626096244452027362336085611652421311697920175698068166648306555411324298394181272110421047678150701984464959397740255252150647943020530476678993348432057563242829223598977334938773084163279714946025983852041863201891976213288334459977508116942456816321560189729863186060898573322416604997092159924271967242836906224136820196848548745267381594481681627916372661278061256167775131294864787872989886530901174232544426952809439404798858454368365169882963660927304446910606765684555772463667093307062104894494652847731356838554141451272533409232768307335715346835340019205122342933027419833889692446259275346663633517693330428835468326780498418912067807427835860951028271117330372812446268545142209241112283608930816266340583164826911476133913386730972780817830187592456621303322723374458787725182628053504219265912410938569407213418553479205445295220910230209118914052997496267728091336851937046505536899956760002842177627174940798920727183824555540389704853618804136952016304685944100523485150381734921055584348173552579250743074405254808653222829089052047839997827122236943743988412678304275060551658581197105184571921810148568006266093199180452321061758945504373807121952031444804122090649205299164642011949263717592800549679072951259425339646872840255850571327672269887415528388014223700849265195038624705072251566586823064307634126665528487235412971358457198482239035860529628893013732864675295133376381619667242913307750028975371316738774277217893566171678533110351515189873275300586892910496766971651426897861339723001282149344355258114263501212016182508607470620029301979993987526322681600176663485618564168199215675721038182860358623374751379089871713935458156654798619824629724220253077050125662566366078878949433569194678307761117207785619949478514279648329016671171771992976495781148933390237503602298206077181945849761045958889013882527972997166478386869231333542953167006943483040293516481795239727975154712700121121990208131039470279458826041390539593915991769105790790188202731937388318821098879852725754002931842272913010119313229972497505936856736925148542349902559805730116740021591603784566107693309907751679276864727529198289597448713297881696281352045113099399727626954774429522972237357774538379656902654724545062742550630436531643513961165673610752584826587956106160021663325880409949897572011021161983218938579529353346808481151878404444870082397502181058322342313050826871385080729876936297714902762648762615903629247036458899991197728669450279024652336939765931991814837135616965254862328214232139209018306509373747205509876593017929116848895850578316478924946474795670021842578919344209947953495369898199323204916690101784296530048586442279780012610328972089032259423050385040804810737187113057674412535202067936859020148007088580450964811500712729282340942137302238507852402515911517745720564759100556883955799885694079266979447605388474994919121643060898177527701824652267829997731806278133312469247178719101145548325395731742160940246947265893923279706984143425628045858612363737952019448368992704834634929487267569134053254345691193461698445608341024484050486339438977940808135482328443206163663049824476302533056243701697904793554639997880827767077249076463957075141443747880796757313696358410774099977853986964622480131787220960736313691935559388035297577620166629837014498590206727420786861082733418105020321300261087543566825408968802726941775567007327391855243493860702384549803261096554393021305887444503354173505221698456064574415324616835957801108517308611555650091507378475655251354329497777010937812050307873523041559181756025759665935047065324819107667283638514084648287884157017072951485742959831725195042807412151954733221327691443336550760458197441399074752870350826870692072758987529182952308016949269632645710930354163415423505515348087964899161262840177761661655324026240582092602361217219396168933986631086453721631662496399167791082589249978296817321161044877214856165178812631348844091745157838508261478390410536885486187251647141311885758220526798432480616746870956063407602723577487785637708028039155786967848522880388639535211622820819289098179992661747622433417277098573914123800925926075755568851619167494332628990696609648724370150913624634901513627965455527701153161278127061046714833951601769464474112261064174838514691149090475724092015394976070782151257658517451779420524236937695889755665816051369345112237440738556296101237227888973610326192451392230092711807117058185013793274629347068723892985858554508927299213896937213311831591368304649812393343967320886447534587881966694531537032247460990132999515438609877205702785578416607316203149991235160510534991991926660463489034904127917526651952295167231369929181652553896907665178566158280694514268467375529232089157902650646413875810243798624451219599487811886091760232829451255641777715271142469642851341355767902160820345688693005677007541181022680292922027622262555950417154195283019057231855579176029373691260633673199842698028774670165589446807053894030689164383658664404104853246269797743640871521419875779744692424916991281458795259339653130803047466966548504464274674474988198979485242510854278541928384555663880942489983285627288527555663511851981806571387085234785245053826547561462071202994894940133247057046401033953308670047291777657075188774892550816570914448827350015741832437833250122768557834133703071936885571715724426144629458353045399115678752343909072172965613131072175030742463030823867993331441777024361205608928229337497287461434251319110166640376514468886373172329992897110216449151220584575659594752028041864684873618714040856379602515202219149271266515477600836674491863674833230984748497022557516832260635983158800481846495331390961475065730751097005357821334325959126305373723046930466379707387499083874746431923981819236474348184567079513332947976255146876390080051337927553937508897468515849193927083570658891597841959537293601135768577176175043309460059456949080238017693138075543413074318787760927809314183629263869476451081023941512784037886987355997255438887278954813606013541151327720925419560188609140810042562790595161206920202381969450820181055954390915830002948057282827776112775839799401479837118114820444931638094016640361792649176092558416411166654355557631121225684654462938252690636826496585500748545155411105185153585061223677841804672977245557224380055359054090784822289194145578035583439483319965901314866049883539175092922998826605798150521209187071187270996376952909979387537221999650259050119809898734067003010389004187696857484753865325243980679323968349682805818667117786507041364486080901502542919176457787146954219261997798962047085228107980014047674942796220107264473132228574666041151030044754100712109345989856843974174493967218824090767222390732764582526510574212756278465145157161573218891547200400806613699240686663048767787960252880876800435432280820767141010253995095101987162303820783239255315112004159421997138657481466927101560410455811271249023610793819331866381935272496543357878090936809013106834519668080928435069356210786213963638402815731127448590409709356451938116045872705941954255278191974813417611093631483776422635106395467149002457011768575974979603901395556146354709233135809799258231341417883483627443128723897676574494861163413436624771948268417058786681352127997982189901794440864120563385246380447200693281233634955247493847092407868457248802907682548216921307779452296719827091214653071784538853548977390365758400483822742201362848355117693085356970453728914625459094223251015242906743885269271887950417413716803772893590803037029970414674509448278006099967006070351466549392421439978615939751364678493082346764146281424641003484382361060302656431064693517322392303662576714509491853927399001736744114282136574843216268347184856665627018739361004885015636669445994128562998126847338539284135650250463393727091730878938870313338114182116798795893474641275997679493299015481613559917727250075401101408416023209703586702290179258995853942985421995672231573578945926775493230103674433030878478716998367938094476377764832494966649294234470962360255183001630540998659434795476261783968092454345273231809270068418931248520180762823169263450899489059705557822798565106000880651573935280254861901660344010961087269225334187157942973167304997525692194059680474149162540630842036046612235409989288867247577592429822718627649943580444796864949903979986337193240035047533833731252029673142716827000722496567615085591505616688966323552921489667530161475356162067222582626070558959189637485197693701008074699500914795514943706138175561655140414308392166599706653622799957165157860831299167054209002279677701217788126297206069975384342455619012650371682818064920730152618557389755880700835302440000548633324867044090800635513057388909352712456061525209256535026713853850999007747355990647884509173590967366063309285317874744630558561531802010172008141322001074977363965079903973466070314538673297958472733014965377176352441088002145511949325255476369844318350920439301650966166426546898780771973843953474848960331885481462163425269789282264254559670155116277596321508516816267365232953278569604054034638368220156183676779317189506428393100094255485990580732322764130795066425498379593244672075890842601208119170883695481594770345236887203965162654341502062293556520095012334518622062559634401545397865738653358972394318154196366488301173090040559096891317960726623421193289849932419903970041629371067341250719863316512595217336068944858233391487094641618249553644869975511902232049317920215849235024473483500329728276793715707735329735510687139729981309352237579067850784023516803952671287141293154603211458331824313166805545440363321619599034291373380485206839173715542998774047009189497188276167673555496432205967693293225609074554769273278836787012177032652399954821946946887141633539651852037942018265968013386563988398245417447110722195928059143719946201947562438971636813779841898340013383773873353820492972345223818145247587593905868282448691358474378248866716078498437840610021499949355888208006366136703982927847287780925234422979255832370187104294780707138228673163125011586024460119287462993656837582028629054050150151683808527358575673968964678957909792164126586466989486563049495604466971480156676531889950372985884465915000997202118071798850505045908522894824387843798043155673907869184254552781747896986199794528415371652030690476310159942333047530769612532222349273956756077033045895997150299059296189592078854874209989800516555801292987974937002100538688962293265548596377600452590418850424719858180120252568225495711911374804623522817666042493432773380987954980725040818923815008175437052104811736661369750194206065587381198681562156019758008572004942252790285683233554768869889558156454259367622900490788395430007925677531868809158225003689678588891108773346518116563105219793188252351308493211115223498364401594237157622000617083314682489514988281025323884437982460333685782666744421596376617908292470440225063117941101440235819479818112994228777524013707519383716757862128110918680992149675984839725762700892626623857461251096415290729601040829156983028352101692613208487664694848777674318691775921577472606032421496467380031548354214291300962569616843888800844202553800908935660463521095269481599254930268764104402973270358692651110464142712777451043071312984038439922593435189138972792173469832973184657027946116847482072465343488807187235283278465880254013346447620508660929597178020679105859486889653507807806682616914743269012845040160001062367148459537543152744013296864442113944231994620901698141298429225797524367015032195569653533314973213496438395628795737274052577279186093928190053918175627217515485374537785017849058748384788332957672334240660935640754829404861761266773754867215874480398784331055867114637907984443768696150967921980367856647223382746888382207973043699932568712300760985292795972275494761723871131081516330441004382666866408517302121547709032776310372788018741942253051448335097437663547685287370820285779921339985757819105103454746955817178794571992422124896393744560560164245395684379052314350747072407002532920752163998592053794469538543398096110006668147907535557337208039909286653112531144634970987011678140096277653415915342412328068593000162065685938744581512665878428770604659426065069869129848536685083828734659140305073533048141008969754487102227652878417544905474940513134661904225857453993189618088744792617689837721789071944489047231165210988408673109326247482268832806949155417141467329230239601278619476129924081086744359280125909355089171373883848056142071148354991167819032836363637919304872388672571710024436748090669047841764517298596617100086269149867622705244612294518551992202937635976958276507310017874250170353030578834446035314208520046347803364875250808189483696721653613743302054027212128635427225780535108797355399452786266397693944660021272936662342170114529187306970316088770827626757599291147535333166467424569066834614817360164280617073474772650753044871271572774390976594982001916309119625982190223452960817180577823650743541744373267712028300349790035108818976599662524505029134689704666778087358004512277491581012796863558702754072034690657143700182645524871010519812947755515885064234225009768848551992230544333652190443746980711696111014907836936749842616893205244629644876358571940371247964491010008665541128263945353653748648280962749522759493421001802393891255044165775384156682982156999588274977250831298544004689733067193353092154486184451654084720325087547269872031245605440547494520554526165316122101034518616080575958633210321073436078498712181234028818457660359799059669847854324449169625018139027324033227340604588742859441076497447284665963355754103453226112252939440761027938385520185474993315890452026282880739515337251158496128006053520609753416896134620038314452326386895219249061758501828880847190663764956010823198970924003945336407245077535435464452538560100672592795718494528235898357235938401288098227120194344684350816000256671459581300072516490351064310452295568225371669483478358781213533803546286238971218928496727625365989695376399033019556815384606289686745128513702771311331302267077593534980034554413143470327498695030286910637168437964074946393712742254145214311685823602007686001373224594406276461712308421881807060770322415263124501774033414664551017782649642543360653921458346792671636699447658264570060434903105693693733498382565953289883695015574226443797524863948691300971628642385346037516979040226387336306587436021179007411482352891564576879078577043399778805577891339137186103936435377915800551233842711014964996802387654918606191572046935495596963357464576126579099393571786253635995942430681563640782879117067861006205328597107178249868878734459338462372685620677360761409624620336735226788911154590207358387400208043940732556864474925590855338085876146149496228506296456799045683190501683577305792385191558112403435787674618912214598561063079759518399434839064998940727328791818496052456982278002742902745003256034952829076958215726833068061998030880687214084109016710510387008926755947140039373600898356203298193820653506736775900007635348048202286382846004817131180910459894807259894717877000391237774100559926242480458183152653253706258755830863459676622946616205239123932277303004661151504535843592948087449416382187467782100308218344235457485632218597152928385501140394253091350004907305863429644051167719771980726542482565066715198312251735680910426029008003223842524848438023771970468896546238751231059473004250817130801235035193744767513984740533236819173620700498361298624181332623024075880874002070060701305598199824117925661225865830349508337819082922796115540065755791968963932478025964012097360101448816432161541257789728623337418020756266566247848578700728288713003911133764937820290339360713281685942029884935954298174722143713024724178924234345207304103615801600930866461117533079933793269520300296550272881172822761520358482760118379689101101102793297766973379698054845973242577891543128345469675883391732812727533385890727152783737694367250665978903056486402810462830469101993216541536192869911154026538322516390463206917872674416402334844797953590147517457725496446104276821627438110287867415871751560277844051106719362304381959987750144363391621702085116092622202461207553186712341829358842187159672172550112568736120400403380142113434683330346489365204723145822287743420066321997895111419785553335385086536290171870607877623785043194042342573301379020912973724171976701238499742810365883195787709397726986291108066813770308748518260078023321772185586546770432124090884659278790459475526602592238867053141100349206808689887334564638847425910064519772963714763716368439141997411707718657067644506309587929827375629875981827005872284847323938078984770174124799839679193466067370501811912882964230651541543948665518654435469186596162973813858366903706768231240243510021409320391283956348201232583733335460756487888979495765235329371500311163606948085679124732462961051758662694267287844410852480423191661429724814401262187146019074817363012667944477819035583444869774958180422918990791304871986449482598161612394153680149129327255267322619749578985539913178888880292467472769316390478778482145345363024996467653243012907241990129369350114159911103255998760219325463867873767677340723405080836649137710521081160470860113796738686408868630510203435136366921015357578843675489204504954067874044853333484143803003245614196085166735065389697710519625109752852558383782166194759539331264751292687726453173519419981444713753613585511091189420582361294307908638349081026448623796829753251146673759882946181576815887700090245322932682928618790563722908756374782633424183671862282176941091091920621215217836348613003742947559804898778946658579207500870471828059255450197981884132558195943857689042191496278991686775389681155968709130127528460082810306504436210158963987036931237727442787163861969022782204175583307117414357246096244005350222384573371475039763226359547161527602676624125553388947303821571423220803054811050748457199263527929756542280473599380715535721474539742847907716155854783066591687868197083633858210241660578476813399252679756082261796853770237802194876498917969355809141434139464643379196988302590785996380718458436773792284081517998098032260896303979655886942166125064011281488407859315859370347147444489250038339757871409561073461581040101870049135543901695348425698451104850750771040461406879961279028259566921777196459353525737584205365990821640218299142486401870250614854441773624422787144994713514276617242972709463662797313933271396123467013365425269988426342720818860654364776104464883441343977229843751708585687215917841652098267516523156539429240320538098197526967711687785821314742501378820803999732807677511751818300776755429637278569304588709011977634054827054930286254266255549484304412486345455022614929004461413512682338775099492847824613490832954921857227821567383686893769087513249066064495164377941921276221661986590050701629773384881901784298456629537170042574012917633438010108190883861303195425660800115055466047149330349674354760761127718466764808091177309611910825857947176742746182536857036795904265630515919884312880916478616973358765154279701145283435505560450386763606920135402239442344725077868369326838014884327898615827323084910124079827604825617713932765101321084680269532821454694169038162842445369135485919538879570606471898211631850524578401107729640914075128558532827729740570891363437762523128127229780945185314200160706286612186660204353601774676525495333882267188556862008964311731962956222525926165846358165763344293054997681237664350737172765550815099884919398626903364120953608789127495128051878929793013558276792155271396796573798808404094132950335725967055345101588979994841875191568648359104233875913231672075763814521403411974840083562223476053244106703846553908115587332078649580882660484376451323295314238934941319642713514924806272078773854086803774183010456505204714752938697596331810241942754417274854604004654453994272429812571805555481098235005260231503094693713634262539844789450039022486381524903354127100502326713729412810466818598155290769868350707534741280988731432858880363112801144050271236575957550570575356357162701066293258954068724377552414328625362540177170522480919359113733185588134162403016439309766881940605394158018063943438995896993013998514636078453748303930944014016410080638577901791759773081160023989770821165780106203553381997794945130353595088445510124331428351145760582879765895074727608037938772350856341897908055190942377729833118704370452589053014715552463187063371925480834857559308400063588318524656021246228038825533874648413390820990179446705503167992994954917914080933970459925408384309111652172831828010510763930793906885327169232632007899882356584381294550021802562434203190455651564106319016712956249249989472731888230201198642903860014998908546702121471837899580431001003482951927323767459614270294478569080900939284543501094350511833599890557885050246803000067363145137806348275928978672881725649884557853073924716711727699904733480606070673082633130954559804084092478721757392277899435075973794752486977093905954752928272999955104919417014675235165553834004243413484135736286347801367524093100814091759266915673430799094067571631976844577310482352598832798232541287630575351820953117929395384768260371304982876744811596607025546958458124595318406209987634888451855204770931449270757745271712523751589465404847695008276372178374302466468547284445666533151311771529683560225508926021350844268778601013941933169005987465553825617768348508113328734528174705437139173612500806206511564065282298048032794849283728136886228019981458534140149077781329630042310341923279636979737964846271778278461647570777454793667798498421802074732500466950518200799857273941532907917470220004896100984347305519362658915888448897535889711201274094177372208069037793328389320599204491635113917699129935189364125626261079786357383108845774043016788880022033038562133093836232659680060786363179349948225334488713725355421983923411929988087213912719236906958094671956210876025549756373780836510524156943643125765633502056953685632694547154010709982411106228665504000040027347286431876825970244670152022217962952799431078092108582645859442820809054571471187488419979860367592335114596422859776034619529272940475321613323644262669255428765366854225140244491237679621869984488457650764453996320666390189912800054795819428742174029311888909893187596571201650027033802284602981825020765197646593965591330394205463491126910770698825787698372421351248078768752147753020844871801972943800978904013098143717035355636457396417341211836651579515782993948260691483862591674458825896982086208259472654939272276164177910912398400185890705867426487270828565278741120007219941959205579956964744461975068642823157553331629531445733412360912286446410884238321550561413898338333229499355970147870467663843837557920764727505446333654499042777404575057164127516648326168895656503519223699896824282764039813466507422011486311441550003096906798196520141567641421575370335967568134552663194722730464191773294468525202289616199198498996638023352110544229523810404797399450167843360729684502681792023590167574872995816197884976809250749663274842043145537232440088591450464879764609989932532938962151862014231127345631399351003011357512719351279744485799378509567023307469713248209565410944704517966533779307429092747697171096961414639002227260126881940593814720744625690559525682117469086488762351076623505327605104619548087200845968313350314229675261039335594086008610621359628157806851614133166537946878932427464336661421162523239797834978293463106134261974396903514398256356175846620708455654396012817551780154039082399244135985818919447730315723968438444793229287024700797559181375616200830404390468486099044565763390268459952712663046895706963215732550023539470112516835672959353452981612711071472120258648499372687897287997901771091154580416746208139184248211991124608095767247731596430466317031343569274594914387926205395886102433238009416233065008518480133491303469861326599429397075057737879618852815908739652933023462499853423104450120767083420997624889965810760047567023890933122633221031811196145155926785997217470083942057407248784005280575101431226093715135181810362411537845140458906605263214914155615994432405945943998937418015282032386421193103508338830389283992281250909280259919724816885404959488582356035856042800989669928140500933654551855221203919260764343908042044996402348534217617487119192188005399585141640426616144768875616659068028914775660401996475504369191373556369030991988348305750707400815307441185779803242401128783299355371187079421329197550442391778609905715586911743029576377640265156971081702608881478616120826251359105913014747535310525290446752467166821679406780955498038747290226012995759516039793671761638828968265085016611888993807385777752599119154105696405784946190985305587153582109189386959314937122766170277376951938830630691370933124088284887312458581418206952530084672535188227589974158175132087123739903293891983516905544483977375294687171942244514336307081203400958867591058585563604536069257292604010851967005300582561718816421709479359876032602790047907135880969486191626890161045875400630833990375540688240762330471998574016163088421472462391129250412177973967072126433674916757748442239521283758467342860161922818697123976130176039127943801485040845946553320894521698473558708711144624174209335320744801059192595135334874480031738577731566297800422303860360036601003208968393255858639231460999178722302347473633962508850048215887894565347056391729387022637686067079868141913730529567466995878982782806949763256522707033520281906157725580091604618091199953393048047875822495933429190534536783467415356629158821826781310972739200278097620737165787886656236678205177110340567928784341268896273273066840455612064176589968127433841938114312842615590061261251842639679771782318562215473414981582360225190904349541158762222957123053906927578640957106541973107287793832034413841843792101172765820122819554335238302645163180932632888809029041653709129693967312180410797399603920070372909801645283313693869567266628078695478044760447879591469531899972925590156846854298245687968516317512004549763694293241962267140462787843938966418076861656463599312799454914764851496781297016805751929612577841946451567594757490217748796917301091684333917113899818445068097235946073114901593644905691404191879958574471372931474719446484020636017673817158115932378492515452771515705744722048107655205386136490343057050817617918755955658696634583771273978627652880831788723759532562991532525015915555076472666930029547803439087415064431616874177821102715287593246275972301402874965042517454209436950184178751978847071493744354937050840796869534646277479291407012710588065571833272033300115708413804563390780268556236326426473709926216705618228969244002681128139239637492754127752251262957344514651687564778017630274682484500969463881895273409130171388133813793575769252404872937932078277057989323605862588594418941942201138389751812844417846334711121788482319035813821596476377378678571704699874215731780308421892112632747840267179969989882568973536130861597894036019639369962409170375789404619577035282765162072762804373178312028012144813722759041508393374833389447835791955946442887671208754447247286036520511054234145262973140012526032054531132439818332221664067732603606949869417880419319803074235607644395971698501020577603699194726659847810890025955214517099581666779892675646267283613372112221022985333446664504316492869710437814741379796626802319844897807122649715060808916680216734490085323505596364768757216608353022993344670508103291962017517628373433482515020000606644533197616453957421057655591168607457152172693288926915024796008774895397289034723023335459810328043014447646005075640886201647325959758589465883253031612008033091156938515284498467860627892203728373736166440934956916977745443739782859725664211675244542801923303226087539591852738910896217639788813625903981575980387852905927901187953978679700167328357914207337382498697379080057885136225991592258812221638214374597748178878872057620031817558252344574576748541659753236148349541395800848265973368705742215198348981625448144601751153193685950122952347330450679904256077286580530168073301001018059855010394057529798825680279599261597511238617809363042324991562436293317447000681041370884468843130158118339754636584219375133573447445327682724958821202383506554125538310883694370897355434212566496676266597415815012493767862639926015398906001399933228070705861311788222718113584797424861816526672354162147520209783066780195298157193679149293016296187345358580758646794290720030875506542820844413877313951159251197551794514488915670076756124990115268761464298418218351919932672424717034333710301822100228070591796884745305713481420228955970979619648879526135567276973066065748374963459394073787992372523952567732097617620674860765061207169287265251343887209645607338394198292290657405094758180445042028276882266345444347921205549407184259304759189269072562269814655522372758144712655965522558284430856036731218635294790939241189094285319309906629216418793024792435085329310097710641656984313085117464176862674414242436989750897439643973780037156925495790427522847961421311272534267691011255863541077655635634893999877446197980518524245234971530346607842045923712899864457784297438544030962240493183354411589464779545679219216338665081367964120987736388951453681311227835269834715406294777016586189662992805995427963056210420435172015729878811841156310046707011975526891340191221591771749424377696988907994373378866314421716426606107127954078619797096733220727972411715305238422098120591674688246483432905442600702966218982293170504273278089971145819801933692929619832154000864046413680484159557515836600251229409218259977070845461504122976179809349837619689882257809909210211310571832256491247533153998069377633757846598445469240043889046538381168401274857252927327135361835190792351284617331672570548326210521877205443400178146925700207147535898935751352726707235857968062856382423188721090581926988153257344712521432093313012447244092744344693167287727398297835826127334001812009531352809908856299864478618129564240577184328547415738467873310373932756698788053278373969492256228472994223675572021040462994497353291929654030916861655323365354709482846246569317323357480083366723136881806586203332948816560471444636853650622832279497861442527673572604221141629961776092648457144902607404871446957237683962921029360823231988386412106662992498075755178359567238348015179316036800736659079359733981204407314477949960083646634699733878619922275555396387634014757815443110508245977471940395068002464082750415110305975863346900796022152383148932785403286172044832410633481983835103583717007467786256663792562017060904672216177198278573645383800364006803264323982038627914621527500935531564206764125595301619979759661040027176939155762730176806047336333071003561587068601042416761349678740235037553586994752494087721107394866880079114034712147711270737232325503616097195524332316178727614556523374872185663532591611785130031784978514383011726039792044182891529603613745381748395047764912615981805497519128237789170305185615284368321647418454979066055991744299464903721628819131141595961575871476421255819203851668095245340555290489624737306686298652252587036556847084752301460624189374713282197679737319425760953953951986010344344914744780439754635310931591594364071046890154107616597207561989580572215851606847816559939473760153587004908188416921481407387956329211497339642685735137541295682734264580245405120127038391688402858294818635068693192768230567587520323294592964774462508978161470736288998283419224124505737478832119998285372757015390761653513187602943648401240014803313311590428722072764696293581307061017506594591475949521795099785115564908512917255264971531640371556407535917489514118850625311883874461784092456777155374973022341792917587453218853645638408731476941911206164093036988239303338700889380804255187020846490014177662971549338266774759098729795340854118111796727891528959141448542758077185526412092812305244630318961937798766272765764263268734374603126581701577577018521966953530913075669934237601358322029318881242411897592702712306537842448855986409768710358642394306971654443847179090901517378962186092731216071999883446745701405957219410110295128906053385361648441475913505283143658354118859609721708719139360557196495797697967978336067153857850549101867874654248309448416462626474179792376789103199420345402619342287087075410145148958541167114264345074448110719117800668032727731944194861487537842675504091276717546051424126923708115861796899491384136567822056457139976636814036879758443366679902824664609145193891574865553124695888102015915061589145830411609600195463389627624102531403080689212046753718219032711133489128498109875533949838306041477193441134852018442749093587319572164499890610362866466742763458639948011224527273326053016146460028951193003262068576670484668518395196533664699628083326335200140191780471014951229062434403496406709315183866843481607811748698773123603108290084846226517605396814133652070812912432354709587085274477327171664215819856497245338775694409194673510868893622329780433580584769734474984045094234154856981104077596476904718760449106965377185554696669378686432503095792753779683221910856437604211415720553684452205337112657183462105705830286188911633591054054329940005352805962488473521958128179020514769024233041567493091124174702398178469136565933281416265728228392702872904231154012904180952213388305669251275353101828833330186472160641945006588305017032779339235966236415554322431414339456076274512293531365561467049391303564221984886536232565335928471189889976783648657128961086735791315544728813315539213554612992287332139675367764118065056986021179840959023109785455697186985286364918017731888748360136926898529123450117401583958458650378967323460133753991638158886674206747560144073910428327525282410553846954262278766229064581640425436694217076035850335550638694992159706478178297067850256110467257676233708013611942984252246832453009788459118806944516984783732052997335397318148058815142797573554189944022155647366176349865724568242195637954587963653604007027795436289900265422562478916471446645551461403882186275869277852430617244412675890667743282698906452872913583188889076700235761193781723317615105101227659754401868585036922474399328196436643556274818440891383308352813253495899525360614191980433409649554306156692822574353142324273394041254638544465305128665628352741459392212729126365163333729112183419732961120502064240211697399449057791689397222076497272348877143537092717387798789550716960029795012618975224955523064640937167842606951866127077467873578440443907314612806038948862481011270937417928905107963319251156651849334245486919595190838205120848843864966910992357159592394914988722012659219777136803261588260985448454746686125178829387147752183667118737150408702709923837429291632071529069845992134789161982671411341720478577893752089835063134296252587257716672938979592691928417877571308860831916523145913047121023796596287712406973599351494186769237876014030203976895946893714584479441356001511456189381545939755280281577819562586146676237162186255492846727844654317346063497889881884876021713642848280958887955312576978217824973710291606341865275679167023788621663343366739772036928627199414964892232737747807855351469540992046435618225690074153710957677530073466918477415849041525523366075496893600516909618647071182027747520918711006748680795253429498717073997995168813832093080605162868745129727417798582639534981912234890165591382312144239489324742395969375622890177387021396499498473563557800810705754010922999125330531605803023339398829666546449308376381547304822977012623242881076502160392302797774883127295945965053545036595284944455302331720238629673881735891114506661446792235346576723488893405253458344517538928968878477518612008024314125713843339022628870567703413752915381479726899083886898204439313168407014006262939639566670485789819508846748716226270727535100527221004907848728305908140044356971402748946538350457774915400835516482693670641924133331434848022038680972802111832599284010999395961787830182841450537678339584578468663877032110548300742306648849941594629680503708455826012462682096170519830288377390304599453325435036763156741633569337425179040346723157680170149642950107530766510337102977954245105683203630202114599748655405629186898386718653036168775625930837587898343968950118553072796493985337520693716993334059391827865721954536862997564805159317951102776621584305149155235793968441549084051872700652736942558971153805623044103687810298493612670329743135949810887210331240582403016759170855708640904824780798645002546940346896676998047558348249878545742218024424839036620922094462771064679261353346714693995671165755233975248208505225677262441010836808614562095974566566638661895295804728548911158692633020968050065230944751430990464727861057283566499296968737101390062358146022708747432102701681946568964499639954423791068642747994701492858224599802125714406893685251483711882189878082240475089258365685456018288680587714874572215385127272978970511434392942659080019203709310242449749781653250789040608293261765249096306241087509044665472588893951505232737655823173625838403880209304801514029471493821290664307190342598498626956899883672757309328001753931278144455891905566360319932783201419996596269149000806557901958827236337301575244140797118372962557935217019084424333023350269880661967948434322390532677991569229985294614198057905694397184907359093745257650903333250252102990775361779900454612054728994826315620369803848395691970835981001934232980585075610352255053380010462077552143571565293226073854964682446849213991960838671701670760555095256419011123399322400240532450345477635246740339287019361183609254235676700347699577084896026309346113595344273917230145142725407256435532309104304398656522762612516437963555896940032728021945641289746931163922349089635759288268711405635608700979783800338491771755464795527600722066854688212677278371083510169295192068634456292897034739849618882672744065332632460610609196372718961191516617099732820625112856635195096702084271696372893097535963584891479202903036379046565763223409864699661731658907849206446784142124498396001655509639601689688111591975510696548433280801099638561848222072357925848062294758144432187698345735244262242554978507220344745843535363498796633465849204581168711740516344514070649161355235029367035573039566440614417367619466246495253584966934610408154201799288187389693874594438179082895853551421169443827461028645714368032429944881297545553201682808957798417677661154026551420495282307507733332141739342671495711066562314494976377266067197740705271540207539720933193762286755811715789325404559379101363049998510374946257266154138243532308902100130230691052144328333371705647852890650956677336241863812830199134024114176437599345951361115626411517081421268397898549608343622988044277802030255152332487633437808178557158004189150504347882621306223185096472989576395564576872452630640294160614337430113128887196391248607427552452363866196853194419200752168068945025307074742496849193921959553296364244405630358602063404912263725524338624052663938100576150645258088665623860882233337080784806319594124319235695690698480227144457575799486251700586024742599113570883097306922586217862248057558539835405927608658078868050572629888732872957156019097343595386502536531891667983657629995090138990861447939367191619077567847557739333045199605569573425787318807132602513727562811031804930609856395632348816272988771715772255503768727443418064834843247935557505648469328198900903385277314113809710514860656072925199702347014257898413643340527711234043486306015073635499574664727761809103071191657470827876410437128492059897070277936333684373597548472332894670600674051789980853563546351953157866409395176376892305835457453106267036110912855228560359707953576136365525355918763386135398713197240119961930290148061553779849241950650574948107565162408544060250745004175873779767975280316330181958519872513588797240732375550486011497735831628765717237643417631242045082034754659721675069454450658212007552056062254884020755760965343493897125374783265896750491772349540514402103869615772064380341594937229331549181278203167288821238598454954281615085215284311578881007483260633148987928359698030089792092550893821494901421513379625369479241147481115874774073807745688453480672939518151859122337574894406710116769054338552178118110400196177175659864695321845317877775673901736866876126239523171545446072602556258885559404504807989269745918397786752675733748133389997756034962865290881264179951036916014221206268305528787292088933726335113730380090735936266078635793249472182961160480753495624199860222038641592604207199288709298184847903552295745868988056811888523825153478545482595844898969352730133196492749211065705489346749880004603077899224274007839407666153658383961203335879974269145692762651340708384754258274116518711466895011855367711108985518680526047950663081042158342770556983950889439525787356658198320461965687008155640185227388849990095536537986686426993860837680344621638468063813992345769331180089200176722921197886574339149314977512126745465964796360224312400853003640567562450818305055072620161356279630353868500631299450433729656783635229738096144838766268179905315476969998640780591165971570459380097003482285958837192897551997484253789026347994336639575406710507843743568483207976044430228596788406182281265531628560254504723625128686811415677627515928733245347104446068839451479735222486657781763301158403393521081414868059072393049034906477657511538140114809809273471676088914697481961926768131303673131353253145214491981006704773816125647579223986497387301920721734612758222101487696747930932842773442243979386477045410187012696764114636164072169774301128274788286977726184275314030648933410954596417104685864398421163267682232516176951170277187556314020306120702458853283955138284383122354691065529400437397119497582227109320348750939051451271987654280936017343227410450588839410078602005525145290997409494300371716730515720744922088696611788359563625427083997884027525009297411439863869760120510512878837423091484675355477138690659007354267749470347093569739119711666140064151009458828258483557960076374321103754629715128138629860264491974052691190568380647448033538588280660577049693070350097677628858906756569040015000026948101557480383051315268575793187732271352634189888558352545390552360299781596780315852109531146898365131612682883569991046067219090563946001660357096423151315156701556877471889973396602514985250248766021419650111702262177702002824501902344293403969950439771902488463446164830614334471948172972828333697103086201318720374154998165268787652703642788697795178947271188329775679957445636035056496633584828067045269458527623539358537698645465488623112344180354869025298488500551168109074396326259168031844262207676689260716708807033986966177525302519075873129263397666614552583280688616861430916956594851792905683408839654527123852362896062867755592376493685765456405682780339570113427620943873852707664468897499838694067113996669628832651049424865054387022430483136061468602161943508421539945388490975119252225068662288378099620862272980297300353335561590810519880622495911533933292807862257182026015422477348644010447267182172837771088000884118793521760933350271427399464024058778189244598807057610128831366013435331664491570877985135595215427554125899990396275550784869059005518696698791727117702125103096415285133078093965727811627790625770052175787010923790586265023663963733461710181805305691785506410582748625703420679984037514194066648801142913501946224364501122217440267072817175877859812900994194071971157387258945007500178825497071154541506003718554139544627980008627784192748935574591360305854769524058726716719145169928777013127353761442431480121725948256461634327115689331953490199316194446609153324230948938486011885047043389373648411871856466270668121185707865005169084531084029332086241701817792952210959915939865874667168935237447454195935988867842159140127880885997287913453220348017742207385083219491713152587932287819667913468353647904161805517846714525942845761351931554025893034298987810106342995224240350851950955578147808127835863015697700795779719156555883889610026031417234113485362028581268673211722418926216222644277391726856021022353553165350109853747223514569511915143195212436094473435715012549358603823173907752302170345111068369404897642327050719072787013377405579017053697205404055233010313058403470703299284904512401503738179418314432544398467546003387649852825201224742930072107841338726772848592788634897728296463812474293220478172971417321101651066476655485925079361977754546861827444915250607136751078591290417533127868380509424678697074722460349515439102778475679305548719362610999722356563934288041207392158002864871402342151163253863318458653279191376832490609030678892443173105749856340988789881190172154091784391868406857527869398741448654552395073853685923911546690606804132681835943282037669748344524096224305946444357686539084345457653603459468484405274058673592555479622340184367360501655072354146408623401728711243735382121396428131735329707078404189491449490833361778384173697416407066979987958635692326064442839905546135832938968615011310984965343773377668195421053177554309553494199713417779661672256266785704257663584330128932522997513518413949032381255913163532844366496801134049551503793004375608462009159802552549782111464105490951861030998764517613842262714956187420064525873524752990066274208513047196803017520246349126603642798668516786366891736829102714706411224917565348024915449231629593095574231601721600548535855849091348789975351050903024757171177790569784980276037589832728747713098841727551469594582490094489068863300901397583437592775291322678835640225803343131934508124424179797201935545843774234107569395576185676539885884750541025476712401578493619836219155390846640439091359427093976406115369828580441741377821905339422668850343934808354983897890045623461404324739764208269358479575511122659938805946666333794415274609315978428216193684712241157205565160520528481397558509278645172564712902089509333293323092598714755610542776630718905412168580104009945559399650738433341636767192695274076708793628342754286896048178623288564753300629068638912005782322292162311848548992422612182724767971040322875556610727926081555026689345800130500190300346470362376461809611930200401579464685425726814556746102591955178293597269157903712302035588286283898785908563691179511141033943062716574281160267031836996854919905580592999908880869275772291999035863066394170681025826172307607295275746661281677288098062634744260173100706556926790549741694445780869530186279179170762711535775972439954258217657429414767961217985086565537104238203204991943830762364131163669990954941525731675161718395750003341930763440684998303272361310386187169415911268250116949543613617118299738592972103379623520462820407854398703373475939340555209836494319403643892822628142684175705804240262684556417985034280835429089520168925562674588185607015299879456082893581870862000362263542150121016598743664933544182584280616740703883753342227010814251865165036806435354178537495776907757616659722991210940185318589957506846834288271069554976495538910577230602057956922541771571963763227198213755378262056775119579183616906445883579158429590002398715606828873271282822617598194178692528806821206284830257682054103355142466909549705104765468911554992904214211462218893029011200536906949562614539037691254532701481600538847113335352728418445274652266234236571109815508997625109352600931656304761872259749736021424432273038877375576333836931213519644951236317433045885581270496551484819254257603952409245810715534059221546173156053899125805566035878407442835615211753417816125591000100783917393950410022773127691266229849520239403042305050945809050006126959096530298276193758197704451810681365509152144906876830138471443668999495437338422044042078024826698831332070471573413361180394108589237967074085359649805292620963298047138580017293248404171988802329819132097541146775612572136350653933133670968138988312971236415828040091207442075051445015786708861875981321258560941786690019137456046959739544038807600269614352546919199392855074342003069548645986923115534617080060233042587293181869698899797622191555480286925353007713627921633047540071706696521832592676024391571389765189255636172778336673490885186021575453553500199611824738736399322320636915660791987236021093712204970890059606142899798654186798715177668373437059271578004588656430135443812848520091917311532385833147902920206918987226473034646263376165721995512045483216590020837577119309660690861423175801613110610641211072295380432008588999211121357123355342291825092741059000160944821075574414579126466418378038109438701382592597566316511566267454053305710094495837289127001313860744882158379715126531521136877654073974386653852827980255772837947014784586236628817034060158510089417694252432653135292848410593396164610860777585160980107777584901500428645032137096293863745217550927458811283466513002668640312397714818679251795068771788856689019151172049487201172128592161875467730825799251871460237682240997874895901399467809650775243604892107286368083968959566375518900699141768182951621990998228100090043737975128762676007630130203759095705636572108265845508097909558598750755835971626081019615410144336518040510277147548742408223793331142531475651008620498125354655258694605223612072918429993691362398831500571401733741880103074306765907901514550359366579285444639361862339894260764829719588946113108644827406217467201382666402360578796540542243533999012114285477694551633943968520961664606543579356975952720069597483664595568963343244387976221964191110942844687218912848278570914196176338047387292822999173531120710028646713218364806696305349774365722437782206794901629355127306080047007873740284274269085733676704416119827214063413386468675984840078650763342758068698480824858633490747403663961236156049789368118022570689250211126147830190344010432811379221431083206384625312043396533339562909691856242467499487448706279229522542685528541459637771509704201061738020098931207784216998354627794521639393496573306593128393571231848304807688994780094273969774822702523423338215182371045562700500296303004284590149957645186747181788165494236902002363766050821726674523965973789604982121036162497585252259856421050818741442700971299371283076153331642737752395932873332716707060479705635262692972212585292589447802845146704412550310480315680571517789926213209046313609965805439759840854609803353052507377904551449676795656851310360874925587248400852196505073688311991225459725541266297577289967405775646607743960429568090746009704127336012200358938247437713103222076401343473667924025245342266848364511433108487558756161185151357342672720321121897945273494745788679369760395645096989047359025772994218843813081758606997538164455900782399644655733560171317051171214411440232670743290930833012296917536165935653097473977125420598648229357127166482344772935765238206519503913295040043147461866079719790423769723326033556031932081508137632432670311657166437671653596720720087675180817980690776323013189038476697382068228703590163842898707753849646663764756137092179492054553822824362600731140487562465906057969290662564734830637828425179702814839005293865613085967660044276350563765279833887067521855332475197306127872274940500819127337698508788021765611573217149634409326244156307947532036994696672538852996989251629522317106780076317936313203606134603876325535107357321318990298283289954124469843033543350809612412347264064647614352597489951691295706749621980215332872939357402224092271468215384694282219047631845072622500863173482230101091781195101792033669007454692637741569445969229269391229576322437000803624856939881497830500894599155849049167472154147176014374745692346747501996666555356926910217637357633819418690938834458735872077022699874664728941417266303707128954044564248556978291881611876301450712996487632499216847484516460224688787146673620744407781426969973098760822475281562680202903753747764328564688355776009237686379302773483832974364524786261501088148079054458152539052314496107723644215929639439058287131313660162015846427088290052013750970223718179195931689438852551393300347423457795441615672944993957528151709709064132970759823669277188722332514583583950696910084298566847535059285086340725560579591192448503747857431114793285487253204390261048359495934791407256662428087521254999757389126724845039597463143466319807097748365180292864250323492777030424398244012191639632547047764943371994053127148120391052506258303095869549309476718108937139380388345379405614774716427025743703142091794944567044021204743253078450957354166976031460019513366386028601333267241385803328848281321215771564091163354811694044358701589156829753969461080888259706881809446153324287437593751628118238464030170367919370338489757141580762613119646176761817368524641869416096130559167166967514393726911805324637513270636239408362028633079320115055079122000830647302341210974844794451383028505638028443857020966475802064624266882211642901185369520165684034492021846407375074490485106724175597570034591539750092516403364955711468499653967012113861559623121231503063924036854157529763405097753210174855612456946470358294624993910592198764643771723316579971667913919133385989313610569856156700986553977476926295716439017997479366619370156799456821635382379578465879843645450524255149331015353929104859626611010246879683638068114319036635716569814920860399744058547911974930454461426515093412330863159434526228978610868206121540260223823597058333486428651262231100473686727506543230866911469112501564485085831250877384369450527350055851570043645301948594893385403599633502841108953739193787309103818249813687088967197322249390562221559899662371045038583026217911995310116220126962414061422986293467881266335084679811173880425331985017415107545609340271678149472918655578935785989964731176671916878723826770525243865677185694774561712090065402721415131506698829108906771642871716782126824880706982646916056572063572027381088493055900012407019701863229973024016780180460585996578053564605356689114484114947098599552508236836157345671101000160793194704780773164067892011185324351411140333293898626413937309368557415956164941969602886566061532060741426397877154230388578779040516233514397517064702186277279174284645630772979486256390550941237631730417478829464235896609005291370261533908052837858747851203475534913693734069364537747610070679491710028690770757934874655586959706984776270367569355225685278254247285212507733373766767145558289019362223561829634795283292388420907938463044793142295519465101172361944439384203649992095884989574461027976184372258996651745797166937985383399243131901981974175034322170891051895972550673394617170088853605693217849067573753357708505490113335651423639431601821272469107455154278019578420774252136768407222836845802494802130959344731615539983984294668840578124056826624340478311926048650207071560969042659663131552995111564388396942329636382212916201581352845658430918562701503987411822542845000146033422962496691465886524040963504934418207306727592432998085974015344555274530252094649714787957269362603266108419968741960438649347953422805376076658724460475194238572012315961790238684502068340166963314748024518650160216861171979069250147091593850766597604530917700021043343534824610460940155660337132683799133045415803618950601276791227599599470009363051951192692455862404865243946321214538368049022547299979820617857347258408420499453218204394749926657523013855830633639271593530164922285255605876924883557808852873078890898113893056188030992412621667127459858186785236025693423258830984137240965717368552253114324264160874026438802405526663908243015517057502076782340132961748696075737806625045628962160614878039431926276451560651466661410149321473960226675801274606042625574195814602483860262222305570110211742739848803285500866844445308841770121319882900061935395902774647647594250974187291328710782953096729000133920106888870979423520846204012514961833457161542194826024489561609235736975873927849223502442141506953948420436247629390846919818753157414141648543737063452203487725711754772552150279361933675165760308534272739023469578528218330752937326711325690168689178116122173781950227730873760166991329736402183230768863108246410751066407439457941080900086090350457559649410543930244688085046353834273805878999397109245916192108373900212897301605312313507386943503759321481521307075973995844618232124084516147130141781903174988002311072502584295509532102175992399365642250935728409824826740009027635170460355315210213103349240377304825587621612641153629691407439655676943273650224351310481816531840806606057615724796085211935149301398562310271590603739001675709956443749110557755830325364433865316926164863268039723726209380703336132387713432095350720215987153345375934959258561483908300080316222262867478044228040674441661313195743550680044677067036767544171989392191810936996173651077996075269112425896397728387729307804896427867148622254891878068782613221733943755189760124832944823202656569246908855643952145356497169591947556889573789990242413148766395516618335710393183326054413601977988042960335016439757859707186578701140543846447478559524715593128723260320509786310002705381802708775985098024658297630784615992186682067068922092658225699007459073518329862949762969002193582817931630146268807628322404606208122000850348336289214827610278076282714561260004768410020035546960599861374135943575029935304653939776638933663024521149514888149048757832164207680270372905020100295803943602731066330893813980283037416246001958079161941597883536102302316040928469690835192798933510079237552731193215156597308043886582141290865564195218068574301206189078942252086481463257972234984081369594710297619965338430289212604127814389944959955778548485213400569191931949817404745250093962062128356582951307457873392769662345000886606088450201517675342495239010111024237341213484402524471903239374020617162757855478357536525428120978724105215681344771204134610701035946687769325681478006925894104716573818918359320565646296935124015862987526243244844752098994951273745720612226886485042438805245195805905161929679071997930266107122030664932803923947240694456652560970517888607672486331640550767320490323653528866235847131036508120012681590012322120942351719883024629748273189916316692824144392015845748999616647625393216308731351920697365550460756950653970849899713733499688126967271580036880140087069611519792976221218591957843293271009501345069895408001106090611274629690091362178535475285986888684250104303307569014024080536580790188837046443733940568572503645658952305457451554774891513678312500575443537500306508045093524370191143429050295493599213661461679824355666276895591093675394907305259945974330715620552553700470063527415042636466661068980232061909508907218111899723301283504846269528927561323121284450827843297598059735949375074444783520260025683681325979075507150645961452147723832719973803930680158083307952059927368891070187499990425352706002716580708987243289958963780144909277950347821905790482252129365790248175885478611921251270272621309523922838916764357441798561995070476517578600112930866478838105721354905081667619723918012161527842088051331603007219509553193367514612822210659335215841071259898254703369057914789706488733065946904745189023051809335273109329370069417290677419506109910439886706688830508039813730107270542858393375501437625972199704015833048311853955734889204456196351271588355729509828507663961076905663536601422397194496501080445002918191326872789942321225155392338300719460581012666609179616213234368796790654455240151940746791598279758154789408946241776229827075863609194074750831164792554876181047870853877034846542315436330080319023875714739193064425077720068436499880985569672336068953157066778516262316881383101583079026776051312090131499052140944121343496969381085831100975982889204077029832912931287129365640501806728899745552746548438238802327463250361154996349561291569378324297712467783096936562669723088411555855763499119788407948478988657188838278462845914036501976390731255971036367523806277435259003336523623878268046485228736272820269931505971726771970698900606989133074900926938474763965079775827117986370784208141935901102760992254915614471705184176238916251297508270301041442659778823104176840457768993125871924870299668088868462690965354529970780611959092681536825167716011071183514711180489522114916028258950242312133857207551352666194967370978875156562442272132337209963462963668727462693978120378141467930414539093445345787394300608892478995954307674016618713238145596853199686446260594916083824785631471977268225712035831442228093131767166442437151682278189318518051819159761632603205167599686235717010316735375332120119607592458992711425881656028719781431892498088489505013856079056158693075543043664149487004036840863044914738963780000673305334134176596463448551969899467982759336740957966888871736781037658891214505021394490066681452885204925489155261018105607247865447853350246230503425979122866602615943078083345067744247370151223019229946951664092334467000723631624812525454059111706805249090455464335710642205313235934148591978628338408648131691123543803059568025558454813471665673106912262006892915687097136328871897761675223718510452169526141096191618907699317727689896094182471173744230650703506507262399594602134407286487550773271592917270536992440660803907027424242114392176774270589997817927289113487929843580177541527095614831674776116018127346581682325534611549962517731598742438972391725738382654888968099271991328176821944190652934726089568779176485005833496452323035623627775689929879925922294287553290906296481772287525656516222110575540848504381521517614523887278570938325576139071283196382160793283190356170816363945439849134420486862265290330102059612124581366214052146485393212317816832644622876779413937356138823815545410402731070703557125034762369097024573152999161678274236803135649007342344777658444997858935476387241231202890639894534533984550288976875387582610394862970598704582200979288656509714391997087780367732752159660228816669284987401769044385142812633468038347347700047310133415615496177970435236334540758736821568685362956101390227705105762031369571336610165105667524025090696574072274874102799936960455404896709685951996910741215320628879247011741886573559166713517895946666496548436489941958346134959760056179435539342115724991268335093256293282261217563915636538481326086996219925966105167208656151868320410818002707160783165778840861881318378083969383741974599978555181880603761099654946529346317305002155365315916445490614014039051926472974977639129484800192041733702572147574167536386596194538790880766347792851945186454971722921268515961429927824750078131684117154825803111789539512389087457106878811650518304711680744407348521669707018330435408097384294689772253383158440060857448876221792090102105076230390218972188173124205883310336126829351197892399738760427554762233073758590137186108851596547715114775519222420113535802280073748953496537594907387039820848112749372323658449701828327522192882905935633981315847431402637259244461560051575347315058098227205598479339971587367562045320263265597095795360413355166804030847243831764139590948936797178485233863542118305098983798235296897341609081136602730206580744632217286499360458151415972895514876797764566934860473971931285864916575010758037229265743938755048140670854081920397227248228968600651304655844889461871458394099887913955832610953176324882077681843484877458182278025415869027522482827535284755871104758770071319267920704835169403450210234845956815814085241647077889603939452549454382374744371348286429975786972108875852249824633290683268459642480701361157676522890932503544244738334365111693964678308049622332766201293969433821970491658539902095723274325237553408325065754930694814993126734376734816547430700003113143957789275154414234806616724967007638592127343527838797463920093416616998850773250581709060625560130188034137863719956931463080186241548983455269396032135174125982532037918064127299182364674635627732990951345881494624975697560285686664196295445870717781666198121996147694463946838514920338135014395682084391908845882068916149982909958449758562312389457737315419514780870201174334419671621796727853657811733067398730277733136060877391620623922556869926251937619554956536494136471972979871065743535788120189937518088830966779183974728703525864888931798934228560039639955245379061816940855854803346439572090308957359626130041456882072711916171566484585502640295950367240236721752616197877029915178389754339819980222415285947124526948680737598643657623103023601934169799667452874820929488401122256519296629997807511653741731534367330696212964411651191776190246038619136679463053484318199575263980851297371812039996813879929343956555600284978834269048880034234510221555455429991522633491282871830997910128613721675450123156386796136109948693023455330084427372474414117790474820753432693704116930731483867743666994977565621087996948658418283372108575769139008022550470320477478307305571674768837928439337606635598178484993929095181210459826760910167490921274050117366553290794831556669309690257984095728707013349038193537137529290589892923206656265006175064724472937069880165083184228018223825381374740340344726317018861965875468453392488510293393772450804534895859765220166717302040263539597355912276487430818607012100278607245626059980242356109472139670617096917401211109477936967437499626443632159815110926738673516188733757336053261992092925729000616886823175128374656672421035957858026627933048238344852918725103831948414138675848095854202789887166125810222029651136874274918901651691602595788114372061530124291576828956020122703544907619419735986102053398890998393182404521134547741737901543304738216964890140053742086003265564867234694443874433720985843803964976717403532151830882820313365993331156270000489445082423506487527643683027850801754532025638542743341538540622891682309300487069464449529984130214398389060382454756571583203549854146905648903664430518737735585302558843552074363685393324139698608559206786289296341484844798908543561976985468332218613965713703654737410076112235304392885634097503095640058974549846872959084840339635004030451679370194667991998551646933328223845435213455188802835817479968572466883045271942604741116348876962103014193784367840914465538036620296628877676698877788267917080594002650603817374881723915806725428615983107610274517452416625162355327954521490211106957249877748189963715886686474326184681110399173632753558219028095025264068966918992520490078364878449545134135533768851944491998816254728478467301106752910133918917959524124289298041792555912797293991963098835659651848648846799106836603911579337837497905571894897504076661137568969418000775470114369535828491755490878583870996945555842582426015792770185053379700697196632328320133374670651562889836304870426028109076616744567552210657698653085252171350653199619098472247376595075132954737801025050596267970563767756759410095303580120404697595002128493306465539632340105206282435055046864648961138596597731337091715286920214994674466024377154735322381027054175787047270322014186706049263230773158458805793235234941807411053921120225167570800374703997544309295917714395935756954403692301687786409752789431112277644952524993871220134331867557521539730305647908232283316914305302439698868931344986354937729640947228634924079168750372867005243455197741400610736569912349404939878788022232009599111102308026466541169886844924371793623317081339345685028775216828285630676836558139422600873927478747296501525931705476718617158234348683569796014281460357288413824329185394823120373672182554206720383868117181735169814151665461328869456771175565390354542177697374054027903206327857755378546016641143814763117839311403198471729456910371545437893612481761425919811201979684636036755844012565616490498835950708934628143185066388941382594651453803756862213132567565025687126029718054311580021675566666667124874913984454695509415982644038919075941260516023086471364018012021937048559663977303303390536537504350689911323939066752368865639489337509315502969242874731490688309039757369379478203831628194033964343554195735745150676442679330691560034154130259398017836346787815359213021587715766261984636082194287962130337883623968742457646093994745436702025866954654071294952631436956805302964974022606846662631361799798388607699767615150355237319111258810738627233722855296181141276434592763093156960294019058016032326715490734918892164932913272546819380175136273849967415883791715616221701092256423631517874353862968407504295648290688691016481404193685989329511032493819321976001724163345479493111961202294257716631244626132518095919458213071237724582807730550553789150155539594570955248662993311510929523464270061006606350472861313409388613625522971989455005838944953664336790451011565153059057540351025889624417047681731978622674668718659155409635915754346019518917733598799830113428207521970536689219769606052656813403288747246782883805265499476175707154844519097018256791815330673901899680134019569021777654527698862605111828240007863499495042574130015414204436949869812614557485685003174554598487536670706653585943143386319461868064814892428496995482082452584989024284915478087317239404274918748962261725805333297979968142038594573630489214675745118457521729607910911891569891218364744860861223933269511194460980845331362904001962648437273161287644161037566007269687513988142285060711647444671010968585490483340127913236639253172679191641827648059346412026255264905191400046843433793838907520056352439380942274186523289132657593181722943359733918287001846051885201013593614219509566696185494990264099494521893120971495038719331952349269050989477406186474390956006270982103040543362796836629407048033209124637394578400047605617019326011746475691784299755150711755487601242387804605858525094717611540898919547505475528377566231335471467438768163462251522767760105419544855446267758051216696881647613976880255671110524468242272575740921227581760022895976426857978335413166293136560945025982439769137222502215663111357607016677867784492639590517890655739504239077690319642237736353117876950857436629073978724044667261324528910693015517120730594342523280317323538693580150169389656984788849418158421591946146288316428815869456859910585551763067546142157620108017733469369596813670413741740222132505655852129806696170137120217714722286811335866501608291912773344273583728421475230504739320302837991398506889313077889844839023561128081886158184253221165188998802594576581518783544775137247337076134534675149213855220000330782115582515994793721347392574059009950330735307790253686358904488011337515909165820097233316665467165577668441238666091376853833876759222229843775647288007528741079119268529139393283837585423241948568410540355146638419078438831647776823091691829758429998204959877421874673385956680633243133526453315373490996746915401528885897010272365910312062750513044413861714474900894352234514046483477107140753829187116560034921428999754695142537428327355286600295551718530410832313821366167535464797507406573205565248079877540205168846088680270171401015206540443180300525366209502841143086415551808494508778163737139521268820033594414597706506068179721939515037044107636997919157394558633995259178838963713843614496362874974270142620764963685760178711349933347109979045697171056542012981316108938779579756439304693512376335142011410812604368258222245926747763189448734398966870067083271876844714501906289878981687604689627604234802072453321828435269543812765582174657465538023323658567854595621718671145677359942972533161524960136972155354035867073852705861634613265366590339658652130442826964087435834305859182853816081832780735206979842273190685326890611131592306651384444134716817110196734059442065357068320535985791017364083791126384475788613056413876778268336471371506493730136989818615061348442289030348877514525306003498190949172886122934202229082786838562478624725529282345811114447343930955291832983103393006910630375989003035506019653111947419919541262090773933068825549759594969005250388552206860463141141270793442410872504880055067117162682309142567777924501969535112969700808017389757892050720100409080624487170110780147797957157814100663410798005448999297499083749450435888824722654948262290097912774504666440448460156096373205457471450054633927636792705659154813472863545688189939242603296059138756573756876951375435557798563038070857025490626572611805810280888135054647325261460606089147977728775701928619310372619526021771212470031369693405458570187256295645704458369086600124812934793572514262915085256270816802290761370090573958701980554893022502124197500154754073873280890087785169022525423082262851700705711608975373399485835276244481686824786097874468901619156708096860430262286277347505598741474038535246894136130016337348963595369437448581061381883870147418514722094522953238482128740374002896722911560786116547935451280293390962038808205149406589182887447274049834500020630137521652586472456256213042094282024269976538596028209601474473018231246687581376862178786441075591687152638875698251276592302943225171197759703365345035550086191842087960244150187562228876044692443499485560592112492944827888290138104305265895771303877401243170706719686215336677230874453381318155838965549536183665746342946750713811734973940813897522873368520115275290837889886699650226370074990196807036919410926543001804806896622077537065634045776979950358911259515278232512431176805541590517290459006651635457552645576862517333354372093612352166074350204535426195304336003340115698297051428090587339597045132999331103028860564545124652087909335460055893455749145413466667736893714786600716197173741782793760763677958054262827412494302546351057254596149400828122137099428088790650767013548287976230334081389468686077582806900729067527038881049932769999009938248354702274777540717132658650568064428381211621725061978682657760562632112000104181204381668680871940496683319511161141939841536588217268078466745959121345693066451146566209953001408841570228119169604668559473417122459559236774149057156227395075003232692643334302970512024850875624294208369279933418925136852989952399912101184756295303833938256364169007182370240001288489699717772778659161603095953467243110010995123026440202517313433498978246489778750104746742268718757406289701036981781620729667485148708002525287974340734795563231043204379455337712586582956735635771044354507947602622190123814802191742663231680783324394016013649180021448975873749543734439986125996622645284411269040256980112683763340655968644039977128309376773358732853418883415742456568404995620885955710236600454314675160774594329709788184012071943349434836436580529994527190044224132177024027106806782051399064175688586932055153457735781888490139516918191995834370504928497644699886088198918594472235788403288424893186450520365461086541302847478746223487916304877683794405408679131351129868134979781432063913473851445910217431952378185300193597992073304760463479166842397286906616870563809260426996001092057864935534513730285426372561878296922152368278383269990550937060981633094633583845378984995341937758908106113948398297883535540702604114222744421432214270568222549043985436447610499732781254202300517702532081291762957493367942307101258239679695738245410542928002631616734502689118944452655858860422152960411054102832195162278714925043814449527948014036341720100225647259537168452017811560668661318510318465966391064741273748926716399361040023054367254788703288974390618323859042703987907436850197253903989178360270160445181680530363094052647867825672430089016900483184427938192305427207807944990331513129637784072527849207176855633881759354882046253728970398097251017146021745617305736887000705519205573934247994934900465587660765365446141082885987583815462891105137780458549303368372843519550355260652047471123037769991845997866316584852147920331505594936676068621094186246449353425493392274144602916032301317497775968918915253984949497051244852893561122367162130328390799736632907549800455506065932616850188391111673261694192348659046571291258618185670163937900296038557297945047238187265969097633593806970229170526705311075891852464451608672261218408146358364749095183080741147339052601241684303792067186444056046869889861460082105711023263969105695083103839408810819732622279125361638584480197618213617771749753541614989929166959615191691959857127123784220808079706905515177326608764140100217518129262001324166352128465627149825647413739787861213809716280895347980849852238930886015131828613123959049636963428196601625986824721561127133913885727122375963328730268064451879069845841538081574267924157629845363045873075300726066205501355421260286091981643901875587489169169644917243174033693430968190625813572776116664644641937749859389235629018450840703651169560103712042337172695131920989499585341885923205561943008523675039588420758996074141128103063309152660951245449348809818116527120987998030033116281827012702014964617746559490106263275060050829990229022332953461645222948129203919040544467539854159213188320495154613894171674738013050267353773014460816368079394218645821623963933816436742514916498171311485401712112662524932123737618758578223054515253449487476054443449162896721245182929817704291669454139151140598287473091548558214360215410470026108101049699490879372130286708619097024087280185060594949329004727203072994831824057138129588024850516726668893442764465783169053226752439154840939046984750712830380298549257037773951887838764284238568553813428694192051064004292701838571677059799306123862456090958114468979072592403201971156634490216080077611746034985226398413077758484207607082384252662666496933822349610467938030708479209561559900805375282100270238618742798435101618382760638082401557765073208182294068879869752756461390139833676004065052199428614791821777437103650618017518069620011320270665493850725930007119685492025450771326646914840124179395694337654310451977686308332529868278154713966936194349749297352860279083336192461571883950248723089373626781775614819151217049922780117636813432736553892083789208409333052536205330035593083378310635491786255597793843639940666864742472681455774416791594030887939194400187098345582143440687933744326773322554557304666351956269996146730519404042718113159861381506534911342893056800401601874695089122466705006729933121674620565500572264192994028401091801823139413179612885018364662012453203176003553943585661443853297595231944798468280333530664194999294175218680017105355577739182633809122905547638348921268837158293648617295849897075646999379777372881535366706843790026356076369588373140731743855329906754915070264365093693401720274523899836069625649332770020705169640604849686548891260069451859341378192386676743215979506106743084819743344388542739529815317149259122367631301236936385671877774433209857425241776485378801923695560795514306762105006963752322884357966745107160804723913295412750200453555583330865705358455307437705124953694677969259361571286105997993071774627944422393168856903481847914106793176291738090056973453211758144999472179921724494759198677111266211047832580267125862666493933616939770525600576801906062921898981789623380869756855058763878986272997807970952794946893589301340396377438594729765689611646228050873021382699076076064650980660808219382420746967122977863444538769929799779956207938330405549521830995357240354776930281750758112994009935488647152566473730756428952328546756300988674505604440523573657031310422310803040639633993283338513689148745892336342863816443559605977293373691215323426841057609973109083777524966246333911355087798242434529505810223311021554649716748400000185203779915271683988235144388047387928017439711307826835538062438095842090368902938282577864545750851540016222059574090044662575897150540378190722329318284097448223024171855615135724629585364231822111501064594308572249836807935947309046512380171786620581307245557703170256946358989850993818254732277882750073336202941964797858165835534609235248105581818765683425562976175257678380207748617034376492998608296718395091230803146708195590275355701361345971150168265325920125383855193439024112316646499467332803442552596744599112042585521672257633159192922073351731460484261853216730982901252117701582692466305737451171614947928153448661870721656179190099675142053724411547485755612377407295625672546217561718783469753934092872847157584802436228706099436212002258989437253169417674978161822874157062222908159643380821538598899838281138797294022023478855187876435882875921480837906222031997188152664072116930945039301021881913128283219699866699203570369255344625124404274196152467469911242963060479261351649786523372835024136157151729643071912452941723920782929811580230246610340637093060820708240834402607557330992455941365232096719130037099827161937673203518714308300297869323396411468417502236453386841317653992237426060978374586458272088651017626699863956348206389361620952983364012851432567177832082856657526366034063239779251187486608749342440734583910956777636277691086805031402013799516382894671006550105490632016025118345228205159264225914076604676835683605433156428496987306609138282433759243382144738785913233314040404911362364520434681416470520658055338537013089526331584971146755106334116939860679851073200705639713996482565949423067500679188693331870639087509229075762561919036619334517790847292919824704330796145141287387345102284310271714156418135326887918750749062587401291104902332220445673885540199142721983669440314303236978251828032195865209171026742954272287569795291916054359650226785733526246850071715216873570268767259975738805577651462989045127752935598055883476920054495463341966729984485265413492442694057267628966829616558830921519194408315694313919970813207405713527770227116931409795222983436919508768652482971990910256186432065730140457424802739288997297479784493690754834015193585819054894022910478814146518056010301851221158327548873020832757526067233595982235814499078252258516968370705716429902435077580673319236524606355896205247262374494750141564838832769189650524480024824749984699184665925810477077113802038354246203988144005902454186888654960280447727665694282744869889662472345630876542914517929697487204617678736292900990292827768017908915158282754677430016852852999212720107863430258334826788614564027897503950954505642673087744284355028973663861247302782254339615981911636663512406937355289835248043181409806681057481370154893914708089225739720005675308532360506043339094091241206585216734359510649756485623848736199673127500570706755481870248054024721988266487976715604072821263574225247590560705199606831808095455606243835410722876334130341165012689818100431908948727087246268705746616712503894008884939305503935528886223218377064140357670485233124536798888562507714945027103662121373339950951040459536588424010367175565764478393793417738108162194530883848779233982426441977707601438134601042422341430020990252680552016898256116991548363127094038700164828166988261628751391408531612249989325077216206269058454476955793865511780959110497033184576499846393116415859614940715358540480983592658503928039621185535809702915573267592910301433267828930227607786109389181476680853650169368923067516832619460639606193672222232394970446011193672485466409455253570005488358973535973270812179694604207086967975893253339548381686805306713305835283975484839292155908584012204980153476787639033678874269262691821428124746650353176561683066378433629863725090727519876201605184685355010658256640756570794237813581562508568445586320524022484430842143063421730935743528439220782826304757737643283772945115432218038918870799608897651349561437117422804316565259096415422732651046563731783576881088197285426747832218506852397293712496244531724860868114456764370464109761076788491678865860257848447360353128412776764333874647576457104243806379348197171836296257677988783769236013222072123484103347572835202264395158842471677467541921384019190641141325558861469417220153437135842445917359139265239105441034272780083274313757768251092213634853380056828112008673750105140123126740119066841643894076547327572253424688085647783570946347981290189643274562676271404080722452693459452369328325608756705127234450855397189803354864943994905522245275916711274595759238693976090447584797921042514700945904475207241214060983460882019292330437401815799566220848082469086924602898282851095140244776394391408519361459167475372093357973301366715933710850472175838100788030187670471926186648970518028503392556509424724522051285232773692502609562340477481994224475016239079763680628602015401669899707367118008403332866909292541519014645758073801249301475875184240327562247275985068274406833215397049448895671224497474773074885035074811787653545500238083291647624054528191790821385752377302197339585900187821177587971858989556045549033380158429015973715343848345079698450166756588150301578837983081403538574235302254477015824841942436515432883134020953296582700346856572689782105891801541533287887246242635559615827892244367953199057028565418181361802394758131162636644340279016141130389822917211791572616164370685009373412828511495315533176236285219988914910424778267486871544844887489925631110290576427765357946472355744461932775117265994479139873752215779992773077960966697473850093360150993936832808840445843945625202071791296229954625331564621439721122190170411480387415549149549268517250515022627433544125242610877727791031088728512654965246469018249870577131540046305569103192291404837739947617486197636598278772885534699444339681404740194833496452078126561967898676926520117865144639212096527804936651408498518294453784180175473728695461399170384896414539653565456450834499495365913269591015340880380568295759693523377723947253095431257218656503256344225288137449086316254077259984119437127815598930282119906537093659124125923311208322404420349778264404438911125961316063981058690293988111054580727466557470744699596661648990951218717075932838312093822689246720963329353432709688383013909877089012365761858604274005191583731643983829726978636058951846582503786380208139521365013817168967936911713530128286070213331689323331011615624360932862938948533754781911954440767277364497699671725773125490150696037122525124237433423647020712067542239522702690956609237280352657713033413478336066563668465922438255813581547939594364593724922537202780698927827338643226602649344296855042590980967895982706028577091241028831999915433745159623103616128448863184537396935609024198079298953239085046664522545270697175259595060648603298651240902906172130874813080018375169801761984564245645112269959812343067235386615858053780982742700444522288339955279544613299238721294270216375979648003551085572439962640056477135420141626987377778536427525438244902002376415092446173393752301186441811885836270929676232087113693805204959784462804653088332581081366015107895920823317434905318416573891322014714093678336373102331053690207505282365829184247017145097802487672536676144704272546541364195467289928619853325322425021435172426742233205292141499376674394344238347535486156390875258768077973900669716440922430481372887123100478874899754213344766464088920780814323190207846086266351308713477054252035725628147751963288145196171413050877777270857195340699769340703917693494238538049009286942811536401523466169049302470092569363930864404689681438303446883050921800188979123851149549050877870973913404412819015361022562128933084038941602212092197085083240676495532847394084715289092524162343041829796069775725531502715101426314233874406472138746765268932231992294830801938180556770265461544647043741065549475635453392831115375336351122162692543655795366911759603597174628145004365245980880167162654227503915150517553802518986300395504494200334756041265030254794462816735398133710893863553075646336890740169306414671760894298781695552108007049932161125240521022228880260335129380956136015039177404863786824340920767506599327764671472394455866140756088429990937933289455328966549490125626154693827313380422304715600639613688890526932310814523126567914459649325369464405374985211683414860397428472285584412383769628214118342684348348302993859361959391449748989264216611419939711975321296494696090869898429425100777557302026424577512304741358173154019040059675038605924233016778003805796639778391429605908365831576489467973276406961851171737037153274478561304324899610863159936337909400145376419589593129958660213924727867085483982683236904552161266300825979039518562552490975066645908896505251482148421073503044273015348088996364173380578033836686186059884281586196197797090488499198574302066721467509733579511675091271475662398422600767656663456342187997207570516558328178307807143218530765266614799761296695183826576751615636064819787570917412803116384357558145424582429219449914562925691311465668397495070401418971248025975566306297227323479783071496560350004239556609575384662762493248354996701021567718296659764462625862720004022205803444020462175747403429476970955549100884598359432378608487337044467634870129499839367574286764041903803284499140775995007240813974523762094138654815800583250694112754406883694233711738322976531522115671365610676733654400794998173112036660540104295805703515731464674395106282502366055005957812623249705206621823784608467652678729204753763879174470994181059790206187431306062954193050316380740131860195288607256927767546175093526773401294292460198577212615681560159138437180991002803354061511502237654661810207505450616557345145529041537769210322159735140983590241181074805292117039578486540412602087400747206224697319803845932926873780401919766399529982227008972040088642479773723618213106904332115548619240251970830687466691382955585544783848451836498446472257161594297833754055477737077805776094895184618146009137818536150704790442381696029439198209438178520996818670176701239972453389503264537584436386529812127212459211691567666327181117283790283396173501614700655362912599152241164824508953837189418573610789123944196403917619240734420802384751243782564538255936005364416928984463882041963572296718603303055892241922832228486708225930879213444389863895538834486426611625744901323090919666623122568285205964378145667466773197629610243008221177794559368800625115729082389661406148345105965164523010491605886096372216949041156956657231500089163823910286932213086413936310911696814615846539901246612232574637989148487725292848269681170978398952253196648649876771628632516644800145451495521049507673929343747405034597675119438160756033351823450702302106972630598591138575690607274989140297661606545993532772548276587075808176628823087840705183657149775336445651337461425585680628853523039064385405277443510290510419094887301575265846013302382049482118884026105768658247859134455250930367502164800862908340178447622152356292303612323563615875222623556244051458990440627914081387048294024220854358149713374361983923918422054315982657518268002961971553439449695944201144171238674010103277955204209380096089900478122015505223098576340165789982321597792276436786801119534749665999283292607318302227799739085172248082349181103532875740603116986002286891061457111084413179532104214209961938188452120729598567489310058439254335015844617517440775584710070489778784443749186617772549516656019889254070465840556574580349664491437922096842049651906202238593903887671689279238214723505183261861063377095553196613579731880116722289431229289280522482254222658363572699103223720299075340015187316980303820699335304576223998659554539057284446112891384110623758260497836178883593097531123916472370703599421630776375771567717374518314406879858350652607455856115854413802972747003265799844638151623295125493618307307069733195371550175995865568078542775231477401341380991706311115641266167890271265934542299757751102195556763892454185221471648954844253237282772701612330019649458938064755087759729653630031458775327670068757109743373381116469689123825409084688982764392525638817914555003389578487079424038990210773889261032498716284902121805560352808963180993188232109305015064338141854389203619842730309105257177493401126709072737101424737135433425021321051714500245356950270783880883057694737658160340621139308219283398050996288247310962097808157030094448293597157690340124919095857832636484320075744415407184978917307176521490362896094771946810993099178749969472493389440638189430757290944523865854736649915337143396238998391030777902516850521038635894146832929664080928133302161652990394219202959220597091842027130700518160811140815072708530456434915413875082601304842397921663089135321095367847570814064714550269934645308077330188853890848775508023543678315665217694096224338954493649872994512422628942984728885830337725669857374493388501791307895828774643622431833921736490676416652360488647007864512796993685263214870889954115207613813555551652643958392255917733064342795490502482103927753084906537544671845495611951017915858762073883209171079204225196180961930267948047864931187243012285692678861593098044593732082147523689837268004093957537566316415269063443851743888512645776206549166316080150115913526321873544390859654068104537684656122026033420779174589214659363944461606780040564293126189030312272165397665996183300769607042256768332680113099541933896926833746249313434074361926163688317937676182282878002006745232511804230730378230893669689858411683513280836032183307608125729600353719270632372664133551958646614536747474372503518396785429436486759983838582020000625155661976852628308150393784713614751903142705733451900502222247743060101420899596943085978176161196571593844432065698231826888169877732694821132629890837820733421928441507377135639032175825884585470423808021927395693041437806775759872095788990168537367917189793239667358770730448878700285927214026241540688337669788935741959204539883300576076178096411843253848631406317909632913009561035139926761205662777684389657450004545709089127912917211776838237606595986383895317443761444124406855044742455051513418374302513490761663637369887762114818134138731236334150304792575885561306711322778247986019235513529743257666659809975134697160119525253762466816115348923349545528236215168052760329439383960468555532348016467288658093485936637912573742666572363355292307098439694656888712509613861365934225486358167119833372391810025261489331367350941772361011893408243994166893158451868915523221463458263161765091562083940376298860932867511052439130519791112021973597972407656269708488394167390149995632886943077234042951114405894318084075560835794048222740923890933537990426010798928427096907193748671644088014987675498785213766130505142594918785334133830498438986848918166989208619154817586308392355663746672479994073821987607904753095772067790485778785072204112352167875309522053223478945495617660043287314194946803141428822990913544401475483346506457025271717687163032513335659171591171274292491768679242916730148169701969321269519728875431970867824525303124800119928244234345483488120827455446394539047461934296884213723713804539876336715203520125998086428104897542132321984779977195198606595887708810999597944741436792194552024252978106843008954347710367338612343604314974902574602971341148897417022393085045034852438205348583784290622608058799903039140391715993123758061614952399641408476641957826646021882858276668200635747282150014966399531435591688396941972035210747098089110465069720533563380221294383973566077194306567787307646705266147210903125718620787057728390858878818239036960046622755386703694121174849863365982795246833791816457739358326277151664049607442224215734210886315018388407166420959379609677846558203075702765455750692482441419741339588914648662395292241815496204498247441621042833253132330333890552705416694774867235481243541877097833835999079478545271574403695764637486646313833549829163073359382612827871710593968665270028839028841504367430240786299477531624321174686073896759975138208147706326747572869376258129310711849782143885619408133490570357580676754730033647340518098104096682219017123589150465593322880598738454829701593042067418742558803824560759432381716609073823573837151697749750093720521715264651536559693790044299934800037097289018245020206178457683587132227365943165680717814214742549538237653415623596278060796126808097404996865346868977735385979187819705071083724848364736006596220001308467370283005437367469249537344492047782991176961399306200413656134007305470627772559184144772109132304839905103906877153736505278599260611041162831351536856751783826795644193392311340935630578508936588327293001263012359688766067975567009689373701292844892606951010307743098507304245509282583412630931889069135494924879680292665927695570400666321031223547148694324582809406979460383083754646234665949532591230219632051904186291420041263303772970136975710222023382106802277686303968900798207056417210982735473545997430791055706143635833927867544886397676245512415323540105156407886812859669210775291501383875761053178785512235002873971542381466462309789345378398504360749860795703434823586389106088748693883460939341104520071920796061352288751694462492056358125533496168740915788871080978609798272172163145006980011679644165065061791448255321036093915825925639053375602669792686789014340894546425988363479240554357609028942343329193575790221977810660031510483259998700631906444871079770333080657559814560066350373453628993003827053407606074713798235100180156263180606748856363843628969038786227773990233011700833864607894714585103360974813944308220329941901468472560785479792973140624169315748957891782620627294555935740183560029461616406092630955353631698069280052067156972173906473433483531681669326190125782892684147575612426512981944746549627097500521278688922082931481355087542815664714154618167464598787982536668270710976370177295545259285630813449399112792040236732874085782931632617156988074026853305904276012590337343466639282966570318918948862571861818507510194467878499158787117361339122294077876572955236967879515253401062546223607496503535472605816415315602392399322255554181370491951249592735477208999755961442361377116348450290174663640795222195878304041254078027491090910875997568931145804186362695184023961381983678804053087430012916261814446612806826895955022503331319094502465126839700679981571772304016986483198825273625589025649055539780849257650611083881415876327192427157864485759331810768787436226089583223658852844831723658953223083020889630460568760891531961678928272838426632319392097808117189420533167448933251826001428270543519123973138763184900237080652419255326271208257901301250393930940245398129345231799214324237165073269011930145208163889859708028800158697464528801415569263650441756039868683500435931687606725739972487762731844835697646828076036081868174584607390109587109727384417353509743778851788589073999539576915971837338117911297126339210454543888524692883024669318840636752534009319420957752898380399542877428972006360720910594999768193081397638465197985596033990375349696334559868433701367742452755319001783286957388005278881396750952141288879407702370078942184478428440687182556360578911384298556896552146675260025645256393341855080725406781809391493481203947756818585731223012873336364672109749278769567590081488683080913681275806806698395171369457971374561570403124295269925120655954211459433922919499195698481165527901121580708414955946237594827577406000532530336897488785762795937038139724918350988994460600511484086227310834148757712184137525422337917332791256524055844599062304742041144772820298156401785158923273327813004005846603205580308503498879756852294585944834619257229040005828774774617380266962911177415830350168312230617556534603534693351463216103053957734744346382756971887682515470347256889974317830970373155254086501220263198317229183717538465127471917889402302916503042565543267316220067368770887302822589604593189069574416919019314861969090883162020443999483879511825181001533085067672995732464161218584561649395080785997055326641331191656632056283155828953330835778559342204091432182306851570172996888597557627817301811775457752166285736773079646285529036507321482997358327962089899835757623905550301252559426177994341816275746084217366380892551204036730738456000937875041473046797214306269081427967172153478787492991367193442639246851313184683038472165356558007450714063347830921247486959606909133688800724419880845031309009103889129909282569464866040565321895120542316639448121083136614842888399486503350241345235123361911432783758779703730528096747610870912366957302801774575909961335902225117896277038240343718307922292689228490436290848556028562561983262245005973168292320346158314017493760030262307338888803228786281391017765943818733395680858481526952390887434016063672638317287563159220796433534672511116696437990186425449116229050510656930896779519722375072951142968015257977333020469510164428043615823320343457907514131777026059679309331625289826499166427144302658612292573534820400732549952049742160888496270292453649320484535477833248310645154559373951909457415321521125912822703567426005841907188545485020618716519866534263096772311144692911982246162846858546671691618124503113476206365380506890933964859987937437641530823115168312880676954525476471085478150781517623836792132170347508106720920418424550064751099929288690868681388832892221368981533461638567232332255393002708422418718443081470145388118719418109584197064387401287580439741366265968542362586426509280237073593403749786768261448132521559765252542197887911342784753924125778597743391419211543363929629315981120299024789231536355289699368345866910891902228120901995522701067252281725956265085307247059159144537149293373720954464668905157705429406594021252573573052085559266320170680452192944993660423708594141489103240531727254618006139720731089810712167292050295671993934922736750367572381886003741481404310438103950991655155174145688952914094284127987358069388869650693085007022186275054121738813512155747050967490099886903921851875739557726793283251012573623561298782970423788598797192355828525028841747694806106999096848016678666924876540561161114007354733551545410027756417551425863361996675401520966618572139211101543145749999219881682151266934934552660049806989454332763712074432970269417784331467710494959896061957814065335852888676182164553020286424258009538660383484624964027551915483002577701193115988265109565340133261297937476196812645164030706342596992778300420314635613310403318010417282644930034699866340385543449544227194308556994479444967126711258767386565524824086671425963665200613867096717603831284017230813026821370405393311522289491164341241882623381891775913560208386216970108428795768468929638355654147363383631529296815924980709961187747901552961257008176674443049351444750869005115671975520242391042503779988882940539636142673122872644096956553146678004052075399997509156819709728282427360099693248025080960042713849635206049048022081188139301666533348439428975133097229790289882611579996174967934825737547949348531037197889970092370007296902189961102801858267904710282905808538416751402900051663520113941503501839461778967237573805777939908417513931656689621457446299667475877998077636432860653305839939966624546192576827216910167782776622195921926206180446288920470439241342081429965516081923295037972874621948973908298896386721861602316323485136940788123771796359131964209853741096791082913629931929464620421205629944788064956493804259221080217455360424659839007121653589735466060764740280659367657421051488057587404388912699063037059894209287142424856766798755359857261254245157929742104388182689697820477249949961972739001525168374831088895710320157131472769464701893077487764783613072877925643063210671360211455130235766191687125444965781328415223904432984002824542259812530407056049007241563623010759101229954784983186257013987765086263058234441626507333017750653511481828655766097637748915293964251439169898977708375864325152575896631187787764138459253363835572302511139693632761761041491718002656568402587592781491773566381283197079986493670692410252203097362861877404891533574353343793341730206344120171279452973595236904658360373540892217881117562566406394130292839578026505969663104449637097627793883915297163945229018080520756872043121720649685188810939715318777775698943506197029877731371290081168030111026044226355683331189796799173568789895005110040146190075310289191522370861856793311272340182059684502080274464289135710224751277046268419146468223222811637412175410077185473081612295122092429537615246421279811584625195708036519289729431251548987214878993389752878605423145326196092176171450368117426630232571348299128878149534343926818771116216830386563111909419724654694810998002634693452034774891244887685045609069151338122422173964440419150420881213931694068094310113805637059772028886482538408890688600481637501799408850689553953786456230759965339785948209957334270561243599581325119623603712875130821479629716380164632096840058553966458939954368330573698067704423553772914588469367515247662643201916086254273920854622540418395050428557860968402727247904971766918483762153220763852154111737202081920916483364092632324405982617245529406740519518302035272514135733210519754975404067058204825001598917091439896135351577114809612117926830277463864050520773135476382561643429451666818304759428428059208112493077766837872787227221743419454928772538199776766509028630625995204894775015126324845827984013314740611198109364418799719510380410043937189278122058095081387805103927796548985443994538650194998835262451225648334852120116872806557422657648087060892503376861807311843185401156365735315861143874363400548495165265997389018182353389441679203923440637618129358542413303913678810643442930490059066355678907400490651765115311792842492222127373441847426125323728622829943723279734498240310656716771332695821454641776499462497745815321424828861288778636601736108791975316308085970962578409581406584733964430009330827869332010958341004103427292723706887617968593805102258196178326791459780548064830032648073798466910174258350822710943713938616114018232615077127312970133977115857321721068033051440532652131522575935121319804228348058219749713535235484208716128927211285016043665993263751790371756249631707910526899493656165508748882197917125938051832999311857314086930562947549766999966340891859918054953475818884443370551612043286054896468610055409434102202875312204969679929733098550326551375974968810619479032169879654116956534272871463641804544151755531568300667750167215963593111471341410094887753879891151962622727781112844949351944110518638354185537021810215579506606512897437366264712346003525201352168711769052375760505663110627281271504407483827890690697160615728881586907552374334244601127196106009656504050464491762539563455158904245602704331413230855043570853539882021149693179218546595724030581024123432296676874733218934124101976727763046820324286124485907557953277697710979585124688979476549850301716893683825878590681602344177205339405547101368688937934126401212780356087641959157759965680549987050660533239576538772364683680719306666612689961324017731282372774851021768884445967690558573069235766564097027903231276080434797843759194126590406345014879434096079931526450098815061245527538017974892957381618814109484667278688024951567988640879818102026068686390900472896381659546701575123187678939029486736168851581760072297437589025753284618860931255861216783517815500728550946672652089742012749643771343269048690423318687722982809103053013217797720345181532916236501647102097185683864396336973644052589927136455650762415050023579671918638080597783485896616487348842460009980567240290812285722177413760576535615991409559889924497025666135995406596876306527326568825565151845705330042126763557192642855773424072402620705621483373507936664525809869592994193751515663833957879057204536684985638367869255540850700420966301349176652921468696643554184300434639558319769827059533766622118997090427875387288729186927577116713143656695730599748423863847339535573873524657486918817880359560693760393561644086948048751337575494625143766605985196898788295941887621131406689327269254112942416019795217185385289821724603421400415612676028236727908911979141360627801503094724447489731553502297163648589793798560844083579358974223138525758891100494129933037937843384420438976209899286442381373835755857004853068178746446349810488901359930384504865881649633103566997526502013906519141224463426322366487611325759096650199727087331668906208284612807633035775792329436227341737460160084579370548644746809288799935149337862329234854686051575212686027255883248521034455311239389214386250824670233864994545148943951773324943266839896209049920654203857773024655590741448907739153888014148339530811384525152363342488694678592613792451788556198286013203917552233373037034664954057444844583582308589472620630039124361316198151995695593430188807515010684250302421883759524358193875484554302549111508511633830653246351463841069512127778368557742785351714957913617112040262925189299139125548800695558755419992222047897603946433336991874598726074174023448793063956194594263731099261096644923581916648132889809757737660644878934869500521629451748296323548910957025927049279990216189370952478550062955787817553508762982070633949000535967858340329968457004060717422493508662229317528275953018584458009453803057982239842292959269910407476960224550437659379651144267192864004797313567989746558636230534517093401055365752838485733588496969726598075061128718630689607764892153372400252836115405396086787223114648830842899856184621328389409574776403189936362128518147693629989588640845600696584473181749793203035381772310931240679316927908663185277367768106037091815477720980923312022805327412477624240393787511945290813829422604772984808393925269740719080306883101207109103361072138106038966588593881772483254178385329103154640025938086162464524973973396132864152952124565871955643433385756712768030363688849820424250017838119147267181851498372147455916763336902499655349545732890448492168648274464581676537167890827235369630221607012243489559337769960279454876363311097823019508511140850989150221986552946421574603434267492605556271916927329216075381046525909526212732483025951875219587970558261955097152282239717158597852404586710133892575265362754375807895451660399362634386620482030107097563544498621817273838187314116024285484211454311926309788313801139818513496586339095193402122672374629986154868446505585959712259441875283931324832626709829532614972588257224423015052522076511950504828520128996297978212957443145812032101190858641260870207324718195919000204545336088476000110849206495138537721633230654824483585978651949200206324095730877866703865155440954637537016717545821497440244005232072851585905055271988985499829633430152303813086736557678263686749435360293674439827919630880134735523538381386771942801507448700013169934963886862817229842865869929886189279477740450212957647148505900366059576738329311516211825761812148158738833354136800467552038523718585832216664510141040354649781644000998272857760070620725503327831098653289828555523591659224437035059224091835515838809899944652298572148056926000721516427636439145733705301644761628422657328652826465372133188196253303932613694024545937359766493712226233968615232973109988740102135840683843961758287079874699744111131331952201891413096084702497466195429787538934696699770660517910733501424692544741271500633789616216531874888455616055573168348789502745882152956868723343508422570369937501706916963613632627604860144272584377152547433407169530917546532749599974741140067056945601230485507092976572182956968343310407271290256897853705316760722191539834444502798928422551884530645906136623894225127892509639312172617205097593224512068834266971179509606623764654378157307525967483839792352356417062965090876387630062829929429290417691297112568967880127089552261591517466281631346840447694148710751172987021776387850480361180596576004871332315610856440938354546819735563162044180492443073429174304068018996590319378295036628894106272276093247902981824294714312200670005324245596534711418291615693844551549857794618443886611935716979437627844355251377519609433709699054375558086988658429452690393361666564510044058727478201518323177320036993495011863927194933991475184389395580363541562803158763926899525044353496026752403282259907869397089509523200673418802818478840100009394058166783833435114986148289730480950065558146687832777478125780957754076870620183359492472557871283388288049932838811270889117283369602662354940500119499062774475844234726516080010457615628056871469094283082055540352405137537129887321316287500608705105990529981068279059755510709564835610514990754570927828604405286831519465082516303386356242861511385287003485252425099143238009381712540952399531970034158433540907974891153691223851718307874323026705414230152336297030790179083939232029867410981745708691206098736862191421203881250630502017588907571158864289127027134799418633726470939352968194964281934397247419102479622219291930497093326280505332316163783728862895449244873678633701444480066566632489518006054317197754170759171615243179434017645935802947014847915698525942637216424250775470760563693599652783669832927338363315110200545689239969702076616537444136988956759098052860102222170520771590531526056024198960946951408564668750318193716271740579254084596441793775679783598924773703840446102961874569014791890869989690305049369228346137393934522955543560952384367988778803113751396418645794998115835539200281107861789910966410930156880332639738108935818022189476697402243002060836229566328146824994346097979235663723772032919933131156851523429429355335311179810336463444308022199354035718172485300809437758237905624017655745169361183517605580781571659009407766909252797272536167200900752311656913919196659882170325938279453565413813547217507560655880027172512305824670895750036817531696300075402175400489372373502137227207118731167422847749481896393115327158071473833184471905772395333795871871832423938126092910889115367908082574448923870305832020400389868902180123127959316269051010375763750239126564353789861630799444245491784920824713564913969440163665968640418775579285386666228023983682814186056246422471561454283250430203207390522461694711107464406150336448896768237745962320831962619067335777333932189481324077832150316169687390561571324364409706464746677632318307207804338360302177969982617572773819662537204482665147043226325537325229093521062878618970586103698258370264413422021096666284800004593655868948362290771763793167746562765506606614716784764950799059999585765298895610537074699776400045672994476002716041862183287103883956022136943885779885995178419070470919483054806681539048732253048011222848310894694634970855441184216693411007818488770350816747393565371535454929461107263719605327711561642829106037303250108478497490343527272041982653226596753815179492894932829930449958614692603046242463061331522608046594508708463794828643533368822794963100376115774662091640354790241120269777156501017992501356897676460501290111550076154295257255213744381672781073403829966620607131195514250039029653170394763457764667225623344261769374198722816500500868853004014088792978419652090992041098828065767088867477492102670775862972184995624572486241098951405867923991761576788918383668992725801553108315752481272576057364935062837778717963336956642552609326079999232047928926977053922410004188294666377616409413192812413418924225059730970273042601220533832896021937508695498226117144436553749976578393860345999266863480538243500829515505082642195232618647469110838479731834707248475586786146353991094320580480036689779351707737084190368608645247892898398368193966403162705024712458357365446600117093877561674672759699356930122971722656042270249266890507021181036497547422904166374323328677245375622702509568906130333097182127670587803880212149860636502438250189675995476911306957850658564864787135608892173272848919507067737666043692631189456942366543348257723490984641128007538862141355018981038100002133403812988835550673279462091600773395182585236286696244073543419069618944735102815847573171841796449246276670303686852258446297573677159346475674569462908428116335182600139769112217711770959571501528881653308155357705738930709141325807298771308221442245295940094950140544965891711036290090406021594668547989776218731167168364964564636350478683742689926510863107842425162153300839146535156264663678995682431084248505951562868490368834804961514713157849424066535613974604913295388589826258573667189521378396489520272478921804084704034316868480647575432147513613255389976280177624335715267322914450575838627597518082941505044844384110406371197938686527570764620186045907271383118385267974343047539293129315359368147213901381172127775837447705500984907808450610298865385618859220828196155818617698978497893176487590321158530667201708353412880030744923502318770703967238062638583851918640461769324712891789151404901699652227125367291796751911019701364723232254566425545200430183689349041408042008591074298112932746283831331235517554678818243587135172247895702270139118515892904757363462742485124555491718683943699859753249784012721142232805822136333995630108700466516907870783572236839434976663498590916065814445919493045783384946152963417054945218156476488509728748775426786727681006005358848697619619517822882179997414814955997370185056612945326039253690745458121738473134324382085982770975471825293702492175499334046722157307906630298307505264268271405632816414725202773504474351395647897874917569317118928215092101085518426400732511879383064759664905121264721785720480997314315774873758821279718694235644739453002540813996160633056137956805620377566988560385474358844549020764162662755590652381671723980836992978731712650286060695910404863958374915509760606746370896183965114817856923166428693376945685312013551049012530793507317352919827878635704894151385460468791736486363056004174339455477559714553954257885549910477975532306223943974028508649813469459760803534097045026373614755206684338249754637561247112659252614119744106925004526452502614000772528955124253741870386803851843646427671871577863653625959153636478043583628688262758354058311710176668236864484763131201959482028813406242355864100053917551547698861567171765942123967146254515535924444216573502915052957986857938225978223820677643942499274922119263890502581604664807315466183969404057257996584999828922751442986503854374774000271555159011103669710749515323856758833270821160382478814414465504527531528386021585998721725482750734332385548968552215855850982981096453377398522922871974426757262898184868293535853974398937425806338057415011916795543291004390694907123224202726115369985246669566043803065436639294210046172059677468998713196652772492527915016492072979942441038919556808181687316671760102151418418597786355249436708563094178727583921293176116423392756901235150114361399622847224414742719879972042885583846907176647632914254940511589986158306958414120836905973349419403249340458470980115177986003445871696257188306603407580595513367800123205308640793717030059810392674816692200229750120416505686595987907889519558013789483310438039045315752831331892558970080784870356393863663787529203427242942963429243304972336777077998041327947548638195562197268849389504122543641452770396798393119485580898974233610137941002760425090101689346718749717398664674453464496276546001438138915480538057772330723831294063122148916480667086649482416824185932039525944821837992585030149842981356786398731410430286441803561368187791051791681850717121819784791139020341330259386642329726788146253694329704060669237415192705581428477404609455886769490115166148257634113912489371878531652238535680403616138441739377681318505753500057329040935769303675127667676961016023097572973553887957012803143417843224247468493231267280895185977330043429452624984023621940684736889027926376253469055810819826755271886688610675652762720623279613011099318856348899488977420448116596193438262168522092314282078696933909823138409725601549454556671595267948469441925620290583073874076777540726115449872693104324997876278377302401939848511321402709766849403783793737640949310378675251087721791460564614172057080547620397759281304506295582881145853636571877936956813820896449348590051968913067963077033994501475328042482821141993937999890854934486490610962312220524093462113479104798769154855598472477895329603434277058716880476189157516407651703039582231031510558653505471727223929380426411354284298749072075863786716434244602265296705038448679036152380739179524006214498814632443370538606140256833914632411325845393094537855499796618272838395754882586766542314779699539523411069172534151960278337623044265525818760501665420979532041461056962923329266903925110361133378749705985019639389504004105903153097146323774048042291772824948363523944125230658090728804437196554859493709845625183129437711892995724971184358928900210171426545207521272709449236519073352180663755770046253921257484370576069619981057164688786177039947145483103330069895381813734005357390439994182609592020860748296604365792485832446016864682197875198118562820678452982191973595324588732902099070746733680034827756089704955758805961461357088548101530791102876801278539855488599859434340643017272003288145730640754133248437693933140227090838290667962633856310912212768498538831474937130305802597970190618212016346427148856609197391727060970402260334281655381627726033705313881356668152355028975747804987519195350613633128961507990773609589141971125288068453121239461243879014108795999731312082706495682351225001461317297685248696395887429741835497061576887353701355447396754796046893823875038961443911621055998594378183100031483925955339311720429699630843101780136654027769095623428722277156713797925765864680688731526305262289390316590403834784180626292666511744196773004637632368127127969466152246383886533799628062789532685391557765696359800669481662507600597283093318406956734979422958859567058072118037018586994612953927161846874281450276205681852244480008187950495116850012612554622187168043647713608628959239166984529189084976907239630819658833372042884737084912387617274230268200932270976923493380100321091096973185178834219898462788644252084492318560041483508255055978744163732508299257787234741175889224587880994395033156198494713131114868785562284215655720893928697105595021445781729874846800012395069380879319276761639523199193452961391626186834369592534935289219149349929244808183243230683785088918341690312829276636932818312234045862291936530173257343754982244936344112851355583089985550390404000708465056330529900704615796787828932796476730672484719583632994467660241333232087424476042135642740827629186126478638072772571502698646168769732441714745441644290377165713329165523103832553533184470423087898713500359818129407895931199850172220492015404960227473830301330433997067296180867665833173757323501926920202787321124204898762513977565859801662542603105238686199303570829732980406011876632377946128124500842080495210679200641581914296561950544231412733076607663971958531872425921983859232357632356822829276421503559983062168394662261071614350500738291251815874329271649821154405062563571502658149272448591031747311672368135774511951871331391750549427784405405895057542033514403528775669060102035843099714666382462250135954639762605927833564191051550428700555828867944453870949755117060895985013202278864104853728040200005737626818923151403361612325734489125035388036140533621959317391182858963046529934852252428082686429053026947151742197621435759423801308442011545146135569778020480538208475214176388360108117795559173473753226407677865583370596072493380765804374440018275901873002194833766028019283776727501390661216300555007223500798047297819080639437353601097500452044786651766927894813336659972338843549141440374352400850316881996321962920404218056033790067315953848116783044831728318315306022447708905803640531058134647221045686367149808353836717713228753801190415125308522523306091249405015201289882723458066404473272049904998597111717523982674989883351701596604348826293421841613407130235502080649655306864388592673816325911424398363846829918217845954537499083813887015729947854150939119059261586375750060378656315562554658239378767272539722178268900158459801683489606422814353733708081670964748392926531667385591296643408143389578495132139176730996236613863805188932461374873260038514290989144634165779069910247060008375976994068901339005668323715533633764219813519332390242323361183778855519215739838215490325777989536065556160668491499705268813768480152754379030814918544327876838878092348212759028570062797157375631084331688437291963607509058995156791938817074536519134048508719644277823407853712751039907287230304196569166949603905712777154271656881943160073974431428636115938768598615001275727148221476356795435349673241423024610017127030287197834266681752598281896837457029716275455142485322081355316085286236420063460170115479656865450693896107866737950900686366677843802207988134109860378688479625090976765461977172544848262867925612595464593150693819747042332871690142148773198364539963619466534578516357517721001402785225781494099311403751706878052754429961797332673685306753009130155761894951747303051671783569296899258313565151076375603247527537466483768258254631815584537104342914838511201409000486325932395657003138730023283357342894380715007400254183223035859983037725591838184829413480513150884686681024075682195755255759262549940026159162913481909847317842824398864721487389632478483262172863125616895577298793004542550594787376298043240715509407774916248367661596378066044318988656623726922017553839879038414799773427405881411673860760702938993741892376257769614785709223582166025940614872442298843256535335965237790041510238951556987220517357196861580335909101036381908752665157009628310110143955890622453319885243439554249421393659202343938683966436881161232157028273311843114067442386181631813045618881052273812060628700049682903242906869231120904135811154899180806815137157154216396330764796146859138435177148246353151773750652079215792322931486048796368016291086331241680460367017684056400772282789449145897712996493477775709061515122763086455947543117917639716152334038064897648895165553892247675437895343579839783507334666971791088201760218214799364124023348854908046865206150098157757204784828895298972702482514263633339853923145840868012505016867575460326298730445614720239689485526432482463554272073930936764198935172612109637273393715615597584530680579858338006890718119437440815783485881802338862524900721259056426713619776985367370549127027341612039532850094799281002173513394364169988288601400390514537808843992385799316125815484267497924626370836861373120417754212723058523987733947191655173871614514197349926324076700507403692484586177137523332345934833139277776341360884647383082411165067116994982944633912115644033432603408631497799980335698099731893703252577309856438939300545354306824086045399493905748533939073509794191734093900437033089353472934593515575996423604323436583762249925956088360051731312801514759966924682098854911474871002367832876873364507582547795364343964251348496823261815304511149284226579744903944218999637722821155563227738791847127546655192777429544317460734597466026464977574657612420091373913847122837146475377173991465409668672759995396020100175350217372418073301714869793595062518253266686936233115551450939072154670305702668252568760135253972425890826982395404644651292262748436990626447581628496468677373497662943821959043388212304721645112610824474232605245486908866772751797391053895270569992324213442008181599024287172115227156671751817883323904922474024977587484508355563630577181324048599903494018398487067793714361063384099829154510308743013465421799491052575796443269182714569442251820723667294773749497035144142748732073557156256709794971201466403197277873396423543699185618135738938938855684386797062076829239391495930672930211128551728527398102845296678150883656774162328076065512165031988500904673089645040540913223493198532774889892417336985051663641927099299126598034745448822743634248818297785338242141356913861521178760787745609720490660810384303343844366966758493409625412440693283756266259090211238995724951879950587716321206897205095552192126495923477181401396948739970690480635202762442998813664111554190242505686827620643864054710777896218898549271942967916266062894339963382478429029086089229970066313859450899260670520633108513791923874838942436552790839174258732617696836475522911597462278099035082372041048425751777865772308955959312840436812936451706097150183496803132630396557613130925622639344159884391077269956345441383211186502098613088115895114677138611389250649162923942765504537977699737860154292027865092723672467933045329346954065359727937309183919021464619331711340947351919804687178414947407520422542264609366959776917389112642098491363577716943041509259339939716990815779620468269165629963539669033066779594406153520041336164736282441554454020901008682665915094403832010349721428992083234218434551064111826157661665504184466306219046202674091908270072099495427932900257867618048836054761645353353859473399715310356838963723687953115555672898852390672183442802881374019806443477585345482327050984582073575134783323106063314200157543353357474598717457120691732992105973591259941360206255259277875095522984220686856030695443738679818050774831162932480534105115027749995602277841579523278444868293220993836583297616579941357749547692777361386175858605429089529849292966098748515803152770093464434106295593877968659438007980416218323498019980834781654358021749938750563178284321185251790293749758878949217260619529271229739605705122195444520205316534990797305369665581452209686200088135841431281034670363133803574840651501489015121029432262429075400542410429868999206591901506151150531880810420055891078057529301506946813248584461613138517629224836097529505147642558827480466411057984863742376683504624162316987664362702217664084266266570381467000862902320913591193332785300702638368555211344268233550657516408153361705591746821953958684516690437460577177368832690875107857651780203499824627957635780729602028516028941578073986955610236077864897415867726345231586304584678389959529799504545160012312217746853560113650781034301154923968894426258272441702736397884101433562996501695234956015728533305546266265962756884603858294851620554096519565496432392012497286033744744867990041257827094823059133073331441699167198625529855675080448214721229539467438077493141779129197742460252412229385744153301030748545031579786306993623778315086342967029675727546878641016914994071977048728370685825754094580015203300962654687011430510119108625967550405401514454411638833697900392820203582940932177170971993499813302698109191771266624593261083598957054981310391248003094976001820714360107549414194872591610025268563557676357105763317435044430517907785925020411674602207871819560768383995229297659048980112445372252604683970510587662601159076172719737504414283746344088160617659587865716699041740972680743564018396635536624573535961048283039269577380824126151954563332326261986526037181300467589303517387774026377184965030255600537846823983542859961516795881026567096177618987184126749199053387897595365496814832391364349639362411245642660790256313143357105405831652586333153722320212141869158711050461873103897654258573318844298386413572456983624263096590510866046388264804518036184892783626131916819819718483930353578627742909532804513374230225064108605267019692579606705401098936723710607112974820849645975144488094410965735460906306467965262567741793441046204921268866631211972030320529256547332116983392531594616289420276878953370022284349713867175266797961362734074733270333055867550504917150446600352457708529771885331894573445443207776941436788266568427877636243694408634119577834843391211964162324194962423435791781532733290334637233857856905333698090561252440613343209609250582299898439869025675857187528853411553256897379029238679665993246722314361220780390762145201141269109311289691836776755286119175273972546045245701643697573113555327380346996685783932557891053557025966147476151909837300259176988710305813011031038288177411157250611731444467828722102712824142439550843063805510303820450558662491605481582435381595673419136705392327012675272997376771840465698162291208848584845068385008651840939537675674269886656694297846899823984072913972277889551369186748037143852648795956920153267711916910288917676222076437071678597716985986945042756538335829996927713821688887192289742181562430916504210662299749978232927842451655446137230823456247441114580647093242763869674715203287164725338421176707344785215960977066180172071225869652364795034623107323338360252015186200033588103538195143466967461097837875450690318116002764693770790941738131348911718131698910293660610293154716046341485040880339367957144721680141112025081476950723144765296762941426320672429925540179473596948397461433814726734177577276506339945745011462661295143950852501019412340060502382598166104681692568912559741371764806978822080258710479060233433901075406045630606926330038009844818617411754157489017723096110588062108979681815148026873367496438151020905110536063015136960660701474270068573002234517848848955366432693662895793519178044681017333302028913045422408657187302267717036257932624832727828765833587145663003092383177359794722044371212169606282449391189967191463858931195959137815327589808859489511647659433526371876534629289689876178370984868479228509199732350776120704615685336023954868942916077293737687746589502779819978622130293147771660451421797625241000545902005210110233133594526326822344547886035971518028851903383432061646309227941830920927318534316189791036984839474340316173403661585139968555756058165716215780427152284555957492027896750315076656103683635485532122921064165054075958636035845895840920703031069599449297654898849587761110960450432230251617403638177655967983272006639558401691336310618134543327152900793914580794156380671313135234884241643057981771745590815206099091625932235947524332595116135105514623250925742279080573428597815138686742077355577905654979106716145618759244805598713308008138347006884355623515460256119522114086133862654811307946553157069684567025042419694349373324957166755634095779664454295638593018025802703724144638070521475432038515909809294368789926816016629477903202863646012987908647434684653318792649716083843244547770255106043156264775947377027487455178928931120922432381380835233446294162840182497277971093243749322125812778045770935698011137290214542094463886540410699474556495562378841155534397173892979981978591152803952487148612861783323069798019976230717282457972812309266873414273477346074009393330225949924990241117053034587762202201976491186953625069972826771426116283024011228397073463693549978395850273674641147184791751864002760882292648839654460876721230556182870521176973741001679666238327614227135842669391704044764176026111424714415334194257424004627652145823396591302687843436844560439921549969517048595119946600429768710782327379235465525890262882794249759552496304403928789727822718410891301378724264620994906092102019462966644186325916972457976984644138104213418735500501532176241044507779555721372709664904253183619660146703868015893929053210305388880288251018773436907821707558585670350833697182971819735137485589985079409779467631748448164761561939745389609662835942565535505438833928054274250876794115819878078793307882953983781538439711518411351257292195593683608869549465821211198214708372939365720854737208146410653837264225531276403484662442527232765504369287165622372934096548633570030960603459946519265669396597923525651673930157287020465712279311006224600034589377618110099199666751873728919979282535559641169449470163472050095506522648016741530290619223277942290985710580118349167332662981521872796534761132441779381834720332737135100124472897551825398883477677790044216668779640813386000591755116384413542283424378578919934115077869879733565849405414918560326134630343095853201023663901762198938276913577725066536114951448845724047448515856882685866949118309549622847833987223871213373786147428625193448477355007940150816424641472027092494005455426493480561205679848875020796691563839802377273241738656548733559615998902525421495284662477214130053388347077226402588097807018464371275231948399847950484768975652550207649822987320619081202148129869623038393510430838160403046374362479449370655470613262201798242276330564308061056910040084361440060565390299131673088362152354476872038521561124437486561660662527537605082423414114056132775349874452810164655092383562626531465326273201955154865571702361643263671681403157917699255705477085508386764621562321163017771642964906839996351526339899729303884515529539860691048137187027730889859464725253019995055879300511220938382815805513824538428630550840289376798913530004135228275259756492452698270929427275329557217177269909125460536510446399064442931448084398430424452491894798124355835550876349989183708143870586394264580908736764163961384177053300722649341528737894195170888466394211057598360536028285694646675153372079330175501312536580698317314573905811721286400294730290483888005228121987524715477191737524304819296563003565685123466083223953524190158767743820186606732552218646253683930347724245405712241583480131747894906955447176332889732296738253141036433239905633924026055680796826281686226934315464636826444937573807292684261583173794626657324577249452823583234494802870241503287360363596518028654040244422349856679583877324832229772218109055347390755228179991671510475871346456023648736553211468218412964143241382607463800554088603012675369459249630080975812288845609334615017754241838093549853396365432153134408829235871255724707955098671801564486314471492848054225717085494228359268519656729103114029521905898910371834597930448103998689435637514219836641445375478879120364220632108516262827696842721407768255023131918902934595792949345195472632946813931244403996475873779425030301263969954462380798295948512458512193659683484763487699512593009452076763119456572344478111661097445500841293315938286215872962166343670849503622592865883086399159780875214206700269623232904503847792491000976997561502057642691782589273351102026901753697566737919144568028102686821725855327389560328678492411851123258125949947673848319991731709014006381593002196506928044734719429938007345003515386308829894838876772818590159631602259357055868550410847154833935288072200775017730950820711775732440391811818847805593374069675068573040381174861142304385474107973833446114761052962694670101696922738418392958756998093840474282494819866434156343416405700700159011327053464449781848105509917751845970519764579489095626864916803597458154610533153607301287032365368364128453136896718147019385245200727871440606076914019951365754969928007742104853533864358680670138751111950312204959446573841862180529109796399416021910642316330114497630019219799145400925062533457743259833270425184218761956898513123324974610627216498554425598117047334443563889057801752936950678810632610157269525840484713964551595089044200864747650470442794478509151450725596486904275732863305399618529862038941916225935302821381367659062234332451786338024233696415839494312152616678616600041765524889569807803177241093270447351795690759763474076355742875745302934757250746383593585268531555239913996881451210566665265688713810291804593458306677646811785458319899749971129854877023217812058583901745256655945332515845101198066697589433910790101995716846185815039360941527264216407273179615645425303515398013772479213299951892606554909008926853872237230246198170611470630693012014859724900502565531965170874011012749236864590710918371975471806155156780678542097673630615987830609462762982562388686523558458478629299264312797555872377760211690031588880306922629517334677555865726866264654160558335352958680194287104635373193843646076290056911102366013870931416229476043329448853303575723690674030739540058139200269627151928451171432808890796426474554782390198086880896509338918774459184412836489393841773874155706559721613081711790971418038310451240919966726664302273082841695326761826489087983288577058296694723132604971117170682693342960466417621019008407130806594420032867500390325065923364837608200055782270180587630477463676784534913927818497354539828795326842003576736401542022138412411282874151374368176990459191601766253443222641291458570276168735818906654683819938473860108027796335260973749927615577247777663666419542334759636623666913747714543335667877835274663720130102696247395474549888665349701556737770646628086978445304356604362953822637060676025322903564993371193780568763543779661955385126765023479269126715003272064384852399343728173233814813550662025705555796745400570988554615415373015283925059702573344350685485614359019250992070084510108635830989452655585089917570891603326777630761843718277778628403585911304121046620710566668646168846388919117389142411464921371133043352302079928775077217623097896623124709339236119695164974109680022712598532502172981363514031470475967972277104189121143071083338990643866818385696188686660753805787885895424203197818511444167049519771594039529005301528648855789691151320950814893033500539310290303527964221837440626912558347637741702757399386221641482181988099800693248605859281522067671105171915224098651985188208708167425222430188698450697424640239533874911006763826168121779245734020313070986537134042003197329136655395876647597122252937708847068500099966757520783854644054138877518523542604844318466474476531216466923923226055832235917135545121432163938927225824562407818207464378741991711604856905786272041504771586668185628312512708612218280110820388110451183298612778761804579309523457965843818888352615864649906138050554988768736349146278128957785458356762600277830062359176678595578219568028614321264373751955896141924494777751040384387557389494010748056731511733624320874904766314170952094175223323976053663849284290986178818113324070947142010655914765435517096249520756886158248966267828898165537032768811955993721591253983541228938902829308293077603903278730520552804425767493873611586000262735928259088842619342498166013861904419788992581380790373481464229831891986781691837348961128741348559255811356768881934014433178590408619302094852023182986735995647102159629566051933123071713382431779757767829637739083236702527866950830078638996494450742599747636462326840262674600443752749598251653882897154348469645742689115828852824097782392466345019990488029507651513822168111310904307771573768769514476826125485082213119055415823125939432769312989396025371281880036552985883127682989992679428358934395735368125553176800897336807523543754614956771894609211050695500492250501003458004809217619356864762996870536775853876184460397455668441686783646253577328623147450762141709877246075164418485345645161170355376533294507275157883779345857993904312662803611174090666216910417429118158594571349254328194847631137605021528440205258612020284090928938285786174415013965216887710217429118734525821450567270458840504900835484291356815395577062578979768637317989391705749207604678141682897280368777724416451863745434969361999878040020180198151764413802755586840433117932945962199757283144166043499854664636737252087231150277277945654904386953855323377656416071522956903400465145912529259665278454718951259260194454012213916644521024796470481885953237281502497964503174105914482903022688960323289977713469164805127463670194006139995142540224021076016950677973509850696944126791382340321897935225108864339120075612343086932338796333970193111797116642089070727593315969076374581158869303725806088813621729795924084284305383789421312337856865480099935105601653942721133137504879369249302392034647035810221840379945075314822156072300724332589126631568765945952890345417200297238452521241097303167963527982190409653255749574853269257749351887294991069829667771882503428455811440256158411472743867114036421118376241317472876491854005233299898982103678414895850953583733809559785880285638699583655832041063347585530147977083904865665021509619144679034835560264915512180646254347396238676778644014783446343277201277484050787163889536368236883197363581894086302920614891355349843311039115262095150768642941936976633915285114620796518309899341808316952681356268332088535697908909557947628272422498382186640133856736172270244965959808462299845373477785446421013719185542123335523541824928914322847784800776038681436884603906594459382258512484291685617382133171653785057647761978604043886012270965360950235589801259753936143046160275120550149869285844955201093729386079998185985630419560719305496155943756545222681904654227640010959089441643098395623495668555626628221834509469168985339179647451983779512773077474561276998541983468865568902935275701511096777688906027368788357522884374591912039132827781918275468907189741474950685678859059060845585246416509630913525388422117964070564947027783079305000161156147935423611426384169857003494630504658117347701760456506594732047349517740320497189490042258344062768704826262465442332560684189202597982738104526808393907885607332903967777067072198755167970778611003148554088436900568114154343078536225793597224358498013337935412342585342578059321702922316136812155633945275053571195151209776317633193045884156907129531178903694995862145135834985132632823022431699563730712799442902329053495527079289412833234303266739427235417912364920027312668216223204200987033728162508219618931664193679715516827549580107231978480126256408450038523329926127332942183696915870519583975915256319483893272661490081762238793110844386420682443785455778566176368364994554344352455339199539736912215654815681344712747763770130388430172659947719278865971653005789983844698900323450899745702770046263692599484648056213908781712343801206920498807687746702049702907812571415675939993034363385679483601746657076543456078063534122713139039043840328990202812694103805211867000412245526041785314143179511576120944964922777755297120559947518782468904292823469991195773873745594338642377271334731794573163811972941615102809008898326521518657157576877913631729960841585910237121217979213346984770949692320838294106990721557883089504916288440092207157590109072764208153043908717450632574572576337067241192772147057818615843919514090832908244072789532222387981134544716051882913723452861446205686060322856449927298795910816316526319746224371020823128301196538841173055505060096080076649634362655824345797708240569901956796243465275841052052518954087968625042012194162179920638521279854946654973977890481658803746982237534430940847992810284460595409306662542130263187079322198034140825135609355533986612122212717947212858246629229540960323188830468164948216528044892748344621603582249098767281400585317274316654671883132061813771297178392994757518224122126037798148864462226129024462258251788841381478930134669542988744014545784325911123290034694433919882267624225086997997046150491948223887454893188967275480342086240781542046685647755962806409686764481456759246242128040627663148934163129397771943910653701712772072841328036485207232496118427151612639826697464424450554271677824800586725799381593020152235218387221028888399099732758495351560923866215411815746023319718564436633141125181446269256148572257514933211820065686467868681978353438670809252923850056490327971018967132664782867773619362197801139131568213037968982462540873207816980998968855456074329404171056830359087776765479433717790328101024717542559726460452895295182776665563372174319279350504941242347372379628111159235771519051498628981842692964303211142145376271214229120615682060807400843663653458407870723603172504303908039681158021288392888514423621590568847182960083553731842034551663415635461922507286131452855266216648807291929651765747278769025176770350059770790438998800398788351942657609101443976172977555516400602398793167776292275905216858217585439319992555407408447936126640658047950003068361827112332064124193129683101549058202597261572547180801650525034997605588678508520521207361869045267215449926443361845332906760303701932784992923835565488745692694219973403661280539270414086343835701150300089569137952277632484917291982166346407558786545045341637381643463084638865230925080583412381939864726677560327276253801856412347758275278481122534401789308327569076807608068206765829861750641641264666126362794531697676898465458404861532006849986774766111159096209808890407949579795238091263533678414588857468874156575388871264008289560536156806860955928084068031190898332747060066563763014968997352634791615809493120264219717607286095193776673155170927453732819751602329074984979463124238881518659472502318552386371835722964062280799912295893612024222878305889043931581024119166879556039747625415921944868389464609530456059567109927958089556677436101133388522169757228186479721228930461376734430002093448379128433483446900459871367182324363631641466201322426183371394351518844377974501476699333385523084979028493512799255595822202414811337618608282926768962699064684886898206343631858440363514312496742483090823885087144072765808824168203653041194160655090470267354279183058223652328511792952017670415596540139090477517795230206226559211401046605846273177803405233382789349721280232013144684880599146492994468635470412058740956443267555697114143181086275670654950077188915119955529312953027383333151502831334007481135575942194889507210887175180756082634695011560394608646008779406892648175179405934826286020662326519043934262623602852285330136168957041594645623599916712760154132477622709501179445491575190544108366003559921481467836156326477654115853593510641577965779401703332582786213771415877045627195420375416851334955225758047261680621046003821791023335791640813494485057691521709212784605867403274056409102143677376196283602088219826465535781168862353322002433282001955220483315011887221428336956602027904360884499901467527634253636936153992426751073099369683424393140064050746519805492533308799354821410512879292263941963457709065300125254144485031849405576986978512749691311559210396965554268146181497035292081204108749139945446578719953457511425636981364531590797390196299127536081041510372194234958992994020986765968549002309467018993251928579946900129355841238563605236380794699584368723612169001014089596637427972238522242006659493637996557476178731848983606179320567836566696140478974602915318728428970703409553526064083033659862236807317465959723299078406626773508021538024103683676066024551842157572397525337236304338042864421192036968150503359755583002428139844895934801307467765742147694106512591293666537577286070566208878917100665739110261126925663902699689425478242288954793793314492027620904754709230342317020683932779922526610793095386677797825637363865927038859159011420842178445840100576709488230602787522441391199846019240391126722536466506165456887734475958123248826152210903543625411120665257808650951158843440378798875671594698050763917273156677447522661235844152570010546360220273364615992426894728577574428793701461695385366920872218223497675060747247686357681215256860411614420486978740354564915555260330434168764880369788909665862744726187216404834292396357349248803462384518197616299942423731719127031425648522675920094515270328938322799670376822073357243843965357051954818821452306871198303938480949932757525954262881352756054494839547248986859828148235338803099996864585838403525412914566721086517293396205324025848949182471854571317895791036561557943283048202795855602157467356908916197331894297953437762926791867426795689161414260253667967797356624745573539825685041606370860750183736203121988476167206593369693188379205180416369553541512651250407039467892463558517188687110242006353797457513362511999880535448167050349000736372532811083212373805897215566349179543707498746915325482899779644801393427314061232720714416262299810910859218717724238166657755372175374597626293519995100966536440169645331993410026768668295900512106022457181551930844237713970293088646604670369497637029591740958349094263666635193240305484347298142731934591596017954771431052242696078217307843802364887643632855948428729685040549265571191442137468795513482386677617081233406783672924171695982365085205542560942855481402846042854087105051294159409478329852122014121117999222875528099901002421909531792882933261931253366624462276099966860143067409890345156638499792295443100856168030535106962155082400885796343754226444393327015040380693575489895800566895556082692528068630150214689382368366930521773966480389932321000630412816133826355161292975682055918657097288531625120451851423569651884141817048797831995021311102495297778744261096798459655479629288678645635468555010087828116870521808820314221574541139071048186043926549646909758797453880007887449441902211658060992087311470307431756612263658378671387976886667011425204176716971582714099282976182758422036711711440167171695888462130059229865595499813311432559030242016242911096427985401613203896352694064277483916118317709081798124118182317528346861959934693468750638479874793699288362053290461276894734928284825970314284411438792999530251135791023803521058353463686118112383540755527751379595173089391136332950296621236273041308404131738470110103583764329599243623317824893462547383765854058993314975996256857501994443201505774365830361319905883561816709903484006778536552722882385722903730079681824248237963075565414307040314928641500189673958584942029222837011547569367142281914751672528564946777510944085048103642345597267388241905253816414007231880754756781535953069452941963240853303979121094743495190094204261711478738943857895487628550946196309839429461804492451911243377710500497344097510993778384967642109498366338261623736804006613276464867118989069657962671557691622220549507349494353926842435893192892529968623133617177364387948679327769292782710575581143588821066733036670302957257385118637793808216937854008473939008317986705723099192638638736396287026303003749679421394246312145420025584979605448081066018457572737839075377395810898546498329540374604307861389160845178237096479480082580002378648481559867087353753134861544932440570873850200402747207751338407249988312219659560456088313185713069652322714787380240440542103905165162489039909021381345202572747661995642313108969961675051158596071412374536641030066073301365412867107856100158651193057867287343040518406930024076075064787196952422726676391823601733816996984316382046553978372277939306397878362006622700603533991351342950487237460078460141479557282002935677698605429748834561965058283706063301579621693781831072153081111369146115300003874838069900660741315254825607575288361497792602073654601370771529319673382789450264441035857062116503467633367092345156862133575622349179837407692105731178137345881349668581080697119902278159720996638742039309153369888838605397957512792739858960756071773686845502880718775627361103485034672537434387481722443616635283207096433275410737539300755879167979565971506541046164974149878409838237895754946093713513827128296890742501819076156115645767383855191607912780669686950677290679596171268734614853544939797999768371824084983330637833456526672254716848885654704044349580310986369049517181355623973509508361146196094498259477020878358451726193102985390116837344691065684980784024080999197896784677998395701738829333157601024010883000105329836629564478589234212222285926504132901116906688389929148927878164365473572089950337577752182129807500713186094243010184443804576428557116663163070957664993965730906356437884017569328168885610871138029528112316010642811781722420571268080932179250950387116312326205401415250627542619312352707454812007211274655291834712099352808305168072178427686467480103644303248431466271583399481761519648703510928111195118292953696976506346754895817546768795976458312526997091964410940431766621749863181062668377961268560396494667079189956095992526132128003533199507889341980615623619948185244564718742856309444528394550127345690869212501410082402393033690557836545482929633499519933765031017810026395749267120643792138659207911131440400370076925732430630813263917423428572651161844564051565104426264540794370530666702188052523037337938462988621629137235203150990341615087893088905519480906164550461758799487571822880330432847969022509807210448158443128906054784355581419023915273315542647721479372201614907884528348433034853782345801048058359346893942554604081077966452740985665652046040030319463117528035344733706748679617992641282515176311513428990323726302035036065198771355438823180694719804574785583692144661810121742039670081021069451862278984064053877652540283721634049481085000305451833104166151576973474254795305163626527391600248373724337776100306020268292500925137330213920566879132556240659846180509433691827243603651599217149307567321491894852793951115659303699285326051626485539053413788854293273019266208680361891057650919787543600856746985824690194344318919064332837284326333601115607114554980737439941609757852767725234909155466386950739265080262076370683268096604002053099827269319864747655675178845240098227528706873299680815412177920759953417194809876896810620212753586666653809115783556334997195292134243109571857450773006184661056309891804756262610474872898033775327222512605968304523162726946880221111423174812765615285711387639042357225170992334036991951528415950683740751956186020538339564834624820601383734979842398657519651292530563451736029639552426587966022712904988110636137875676950242589030121350467173766384971109489159475853077384897331065697712239242735249523937910189074440341448516641519513862239172134168198601619161465152008506249276178709972916498980210849636115491136653097296944701892111529795274360641092737947209449956418498485635018557409124771846515389812316400173102889107201249432058772886088208930768233052182661135441197694474899214473205314423750413292581829391174754028534442386101875275562526682205458545322384128507228573497151288794266013881774338926131581316374602335145121205114360942120276997365910207450300689173340267426985379219154451952066888611497182989098767526623671907369395529551206493882025696057042915436595163364760950685328341458549067054108529595110617928454017501330035914248413625576828404195290097899022349276900885912441176091414100225865088007120761888588861356097811789243126185006047526499726844531789157697651520384785535744800984297390080098827195969809121371491422811294938543894541252644209128734238222089888507970338835847327224267517545949134148910201311668842514569415508935863280310205095511710794577683644497693951849173647733865534184132380966038568808405205122546429929295617013681399921698040207025100009916568856013471770665303543822755782598859297083649460942825064101552672942501412523925439767938366232318994219418442786373250665119488241704691278107731861262671886503200572661057367760346566251631670020518562468345970385121499928051064762024209430226367041775236116226821394020517493326133742998012381033825399291785708979724129524759071573450519244362809713321789317742201221535943376660246109445229841337397888326507171752679295514970090497014162373232931082664565585167704372079844683743678293857029353164033743859750307373732212291729414003489857989223758088477809567026393841381628452589494173776682293331225342587651615046303648736137670258164692653167565477887147557349578857833755642940317787183200190442471111874997446612448572567279364649688479506730362710075072643116339568444657337564889282863446082614005413643611240646785702902549799745781866501084230392521082008945655123260093921052655921691331633187573896542434980809593731841034828164536468274869552434940888174575769852563237180165410580886301063801238749143444432532975413828198158470005334329111418966632737902891466260120010148169557532962139546305644315818845051125112919287606142260579571445758339929569297888538936148800573616672258752941555088978130226514307240326644411529872069841431255602533170735713197745644880040293024640644578124979282353026164227188131575735648294490240285181896843758624656559718142042483713464235015627152971855265951064771638451054688286313533187354704557694773104921019067932240669826628165931039285410940582779994517083967133743408254253260085685042954442108980333058337228985250663601368059844688019378083854902297594968623883887643565112322560590280986660238271261148171269781743403262869808255504890085969370845802064711191137768068606495638165555931247538063447706943148097284732448671600051266858652686970989244351885767220873821533350009914494728581808804799675177955499176143311527185079263480044733571894891750043589115153174145095770822289588458023709653659282933866543200605587596845051104412874005827572767045735155039337094945614521259820827382912345719787642747892201938562229869104337740563590757990323420707772066766654654528545970309649376943879998148825753975095668291530501623140098139703035082178261616084562479285954346299492886808140120688812307238479677663351658327027002733488554814748236676607224758163937718480003813474406046626650212510864674478082615668210052601960092507207287929857825804536995283814640201846636545947247392482760903188150180876157074216352370451580513341192319440030013381662769768553253300610291561647052588512356604024804630488322802344943381017390854753067864392233987284350811204305252574535197231048421426553571795895663445772379847500142444502605044382316500297880296404548631850743349223471260564659068107958429888383782686443897623328187253605221880745450375017378241832940033536736090883059347505910928381823747164002200885310951679588882367980558824410154641525748228704770922265904546833271960444669503189231728808746531691092306942954103617755004688293137567819207328175431502272862705964121674392069115838422555271669996286359842633887209436325080749556736532527237918023687658727449404023844799260679987795024672242231711929574740328836210613163414696903251658585611846898540358836761189202524687310828681570419832366486815773844844971646192812734947569966477285324502292490634429341747475134068192834245955521319116044708484013492704444482732066397269982698100684558847982256425232044233704984143544831708822710409834037837204734782804094955544840263215009631797695934229034828923283662749677528517052320880016397752743746189078289325503666828238640014244663006212447791040788473560313027737818511801553710977391097498672222173617589477588561622954004493035310358581766499754500024699122606459188991600903896620824173916763980591004512919358542374946696382887095177820891804761841591534609858980142606790443547547433637296285142922410048172521372021172536036201365340049797973176774093572495248034756793359178901933925047158296830783889337147207922280850285604638402286778074034669552636548155071547183730729148189575930485959348633811175139331988832801265418165858776687770290748287139306846603673178723690051767591600516654290778143527692191020653846912973306357215943063908102094965145910610670392575274051104450783017873125512099541429010467576086858643335856150415723991855474365869112361911815127960484024697068202832137364623660475117792717534443455334414027225762923667389567016050619674277045128698718217466626035185515410900178622337095073926408362532198980847820944486603946976551457769806973789020222960649548601231487692298314175069638656458794438039089045863616066738992104458801805297322271492155121013583570322783120372320206364599136093515816678276708038192490321354387230025724354075224914595054386665542253082591503733811425994044791466977358882072906855928334693955056892098059285547878777500732040676465446412662873173094456791291433497286017171918552316874049969350879148969628044472511023657123492951663018401579610096055361898618710953892070396158635438042977918001281856921911883118800226850796601750174882303957319524051585926429877114395679589616164267999280603405105452277754613216773220147910603368506298018920327575024178058980985633616486048400141083304753232573361638968718155195075921367803267726856495914349499852830407117228921757691497259124731435767677488708267752867649581160686697131911964920394987659521730356438315425734627262194412371831226779106505702460303905706276918911496197474162387169204648125424246645875591742296329378789749586756056585816632558474916883828091442804286655761309203585578564462292692574623369896194718052935624197762198494536128436160165186653366431174028834471897217431067484648813725238634425040836019875060610945401903822540624499498272021370157945929760118912580770411170168157564921092586974504682900957305102466717238939855579874736472846249158210894739999712313636964713171434884499185931908006832371404748380938739936020667161085787943764682394026591666258083760372689569438037545034062392215916549215640071467703109230697172166441675485052792805838926881641124556215659742035757353022286980518473830060448951001534270195904914003450209021123334247047850301557457076211110889020527016585319618010136299346329547445237209960206587885697847556835870467742632732126539282074245933537408836999083905434379101650494135890108553277104453206887706792918683168256395784330351499031162664849532542092610982844852439447204158954896840222121445215306202444638913842667670572756082369806613230662159970092749393280743051960056826910425427650244557442526838686025744505594171308975915373799034563583128530991837899732170662359703021356080926264447626167761165019081317096929313683013360801382529245084730180421586674324740420193490514047287919847429955764959804663194341775086291860523926033921838499223359973347059329702877987569132938845699748779596855106553211427258059602279672811130860807408777521716855777256775876227968261222387546296687328423233685863011822823815416748853773632522308280127327978322764335612828635992229159156581337851808905082820669960266626194047406335972073046125917357836610294231210232784588359914104082979874592604785354276708585310612079696597914938561404552463408700178147774457483288012960197758025654434183111375504952045473651445629194029759722561557901761586804873965683807887349692484561124008661300330776135118570777468521747166662879375170050489501111966634634575195102582824118609197577625541621079954866263816862380130834491120173861431050227803203383690833510530616114785858747821194659415759249311591921326665878692663265308704625865809980514759913611060531314207640744063914424187654009118005233127685984385316586629336469378927930912112469392517062692003217714103045637244525820052491473943082131927281182961846499894883446977942511171205242987098650992162098131796815392115689809473329793243245026820915804119646657612178475086123027479309999819868211856839790139221688916681460810494958588135478753252388759842560235975166433160347779099562309120488424217143338310765059806537316839672438662318425716595992252372514391321377707830059603134729844392568914493260484608202624591360042457981058276336366621773491309171689787436562707735857763126864121281824347100249098962489787638731935436118281450349284458376576007466054421322744532318922012838643453579493989741845644428057831622246389484385904738318271854537821594603571140632784821604955225798792843218169385250259910476434392183380232036743593407245640426456265372157892421237196288077279786881542156233862746589383682810951845162492350990530788859066211056800552433225740864704843572261447536198221582301302251862010207370622627439133641363885199782605688563729660058280544212258678266492418525056278470665299487105948458435327684120455640189794663392806371445187190426164168526230824964264532517001773414713947559549405028886700306255206931334192377011239484508356009501835864365842005543595438233405315705857817169516578898960400282387584377473683250014028699958041800883296056105290565082486523796136697524040316001513027858560607479807590581145969338875465152382347669226141062977598282238128275936524483298491599365683844061980042201906833221229040529880042285990357077188091146812837924256364713319673182709738970594483403362445268288599463026581479036203036157976187441289856667906567643783023623259792055285260092536668086927060751613054975333342507847801799649541478118808885560007146235971663761988637880154624494879257623865361986553064700085222878513718360978231506620938310953663438662807020945847367164892378766484478521524420770261019981628708925637413460169446621071507357606512305173428981134328227498580932215568042889993958714541462081616760416663637403604035286855827811045164552697902301805645970478627182892030327638625400090211051430551500532117999733792923316096636407734167369901592103094886843358466851772847452094459507412154574645075767867857145678111677344987891961928689385626175383920512509465219526644012536779935845377868468475736430880008044593893430419877866988689717553512174974670647807544966129518257825402850221787780740945565931307116065018276305273402335440237485138766381510795815146236858335585242987607159582349195396210882453250208785683904141664259235131813192651275472023410985279064578165423693049624008135458178231808774605800507889149963537605373825539413426792315237363454851693891520601104377170673900018947278471010343283844578479486584504611802318704050569537790536063490275388492927716039741787695329094762374182681426020649016611652072537920101920271386757355832782694113648109589549730054271865716347679189616337533585174590744327373538763214803302314810570052183468842593899309425889463643718096574022755149765642953197710261837814180083518293271228000287101001889044183273717153341679789604703485390518953967034886693838651410367643263864387461714724688043719711131484547535818725574128906991499028149899353815565354082959397342701733465370380968701644702810225245494954563092935274282869878609414771558399700905547864915945898263480796442595064973617355105306564389842412084295870831958618058893413826496193845582814535883566341510945068789019122482989233962767099587615320835500176221930795841849692942844653047544888571508379627348362480016811082487819412118713669486682089691444810437239275671477624714824671271361701444433861087724115704140784377344039165307287555705857699261784443378110967334855819501257638438492076098788020559372266129322873110354697702185642715996925290989036161235943240054766514570085031637321780387362104524387524864051314231736168047984145047100757582898772583206129526641938780349790047329237315983440418333740032626622477110232925341746787870211202537999068706609961250943223963355339347221355361520068439326018240476793302883806786166360798923062021678199900743753221091430924887492031350906001472782156914885671201889315702981709270159784030282859285298374332952397629849164682550061137869439212564378609152438160406613927054087078260847022544862899393781099076403699545999525303289391827223807229743155013142339249831051918163501470356148961352188665791688051012164238662932277141912524921942979414229251197666441033260333972296208724956925195525495153653380412089599298001488479397516411610799931772771520175430652685364196885044872548714352013176625354016183079505319179672093063403618022941304233698184060829769344132420974915223550411707036898508140153640113873174579949116133722034005737787601215564649059925784450950825781959224013325197959561272133298325531887139489094436975608471245366649213635523266611838228483165830212905707930721027973056189273009005488483606572751827367135649104834018117401366326923225996531807098322157588768989323368590872215013270494103974978334002254900990302966780125537715713050661644736826449373753211862549438208192094863588701102784156487048187089558643161610351425157094005441441307486740096373846206986536430920833676084515850556459385434306257902251316450828756238589006337096722714959705277332034943854016217924285737275182172198624293863921066806942207518048145988874316829737227321451482504527923634246590832738860290301057035639895291451440322888917663918430190239089316963805220416312694336332550151003686233070901461533576617920846547331834791338604814113921066676896335063029929391991696952486356674937824058407988768734914139175636177861288873223403460783818489299294698242600287201282722177332537754335476835777561050329536370010794271709826021226968478211367477009828374888567252942967593671262345256912104343730495454873891442991910130051087542360510397656858931829654688471174344768337450622067887119370227067105882475929687647138011597953924790715113995727205964740727693470079527933584998205800367204192137144727841697914070258796662652912560784958930381683155386558891460994482882047895083204861549311204918296343864836099977720325019492175733852004302085901874945154115950103772537657711065114879048710750175954064168359941602681353418573140724953300967758357013055800852063159725120033579481659460877098817085040775680804123938410374542419941966226157379918646715772864283235319232999637424143850524310051729705781942170842288261435566558964088651459576234220343817005324450639266329400626550679828321445049581099520565194819556929094316766293048618574906241033933184998836849704086876934377287277780187096058219810501363661022719588535097477923352511618215944244028028776942589706223062374458864190787590072905407549101207721284405254447083926056546361638008094459375826185935398445718561647215541900954126608327787662605966009564578345316223462813705276314778700612089097930299589385203598142298905756368706810610533559689282681309354929934443186961976094085691320442744314047044169045966001562433745766044524688026703784486244434236950021116185664901917186771289360215268190250061732605186148570610276867316936800604567923523569870740679826714491309328666905505784770511061712894717060341543501335139123489250558482149064508597845654082144657690699232097151530721814475277313517895249900439938445089631755786934614005963274185036620082146625841586664353682986546649451991033850947991582896502281218256385118585108044392876017262875592601053988113988541684207757335714966224456955247822375546580294722838598376191210529301858904095496555267814826162807516775632395327778895383131474525182372642057676775947392494278365562715758888291604055072637246300264882032202101189453953827846225760981034761144553215307421587651801497275406851643031863088467971272976349372453798788271173682039009631005016380768198389903364284010740300327616164599360527147639310636950722084338666746874767104838972438984393615906889160684325190444233642250854700933099387379057491299092988349195517140714096476671237993369677743468305362313785723735463815762964555750109370650466095851246193851121913931160481367748842552110706260294744485330567846147244780527592656894553503645806989374577414091056593711724360327649282391508099645601317730283167720480521651811926761542828282264503217937182094827514159823301133423894504506330685460133380966245252786196968343008527872558483752017462262568443623187863582340244745518397336662581490210718146524386293141480753999534530123322498007135361746897401791812573574094820011967111017620234912067205552049945340437870121986587451775172014990964164943098248822663679040947489252018057634223248570247253326742343172501926664023095113513461088714106628154723360867948124066594854284313246563797149180099615217358314141707561682688023411957301895348619832924187693886156245816224071052958012245828457099708585944321424369125176059770263063333445356622424094673328233634535942426950930290579822454849598696008613416884810030080615858750642721578373913256132736051937857314609287977193602919787399041376548999410405272855624199930382711293587479087678245343643150681572672506213034103265964665878597201351485046564393893395392084461272228158270963663974421595615151968961667402965081202950681806241433238304395586572978696233269604918137912505470570182011402363709947453965077561522744137966436876360253441117501430766349675850033314027432555463698860049646454172926531886245988032072711123277019370760202062298677867387936850370982081162342229850254718898856786206189123269019918512009362585235004226287773985068197782264117317144203819332248147085061714490495365991319002360712588293600401711687274220428382998262268033965967070106016587129435917609847217920052782555431911443718484431607373922014420371339252846291291980283580598115068973887438502425673377459051679835168772285176679580035980433806277015284155691647849908195011858207406272214780040356217827200324969032331197403035582712391098934412933068760869028908997416890782708351223184581567523578466213338774205616920048444884933452948913628680726356624561619941426975670934216421138944955334204362154507132151044803748204598418244389962241253600755550695509062064876355798110310012596853204893014528191203476306347545109757356022362772473411095885808849909980783228083011707067576707849354913820824052144405885093955450408889590462773496150927728695698587473824006601613436834696950388633443468175377878345714719572618828196057626788556680240549927650965938024565271744179923059447190909584344840356770656861689131891091178938187002829727749914549376190828761733081570802396901460023421997643423142216256269618694509104072559622361588189691950556504381250562334390135505443594936243433935899394439689977646829990074022925965970477720912315793108628161781852062677061927148482838816151107718543822951533305869651913632373366461796253917233721550597687403345786039496840416390200520307841436500066686690213549103846599186720167885130394914940342686614144125745082999770083415892680379244124985260467359158809322661380713804782380360820458929362775896319901020563713273751442267726018735577317263920762526078718498915815566124542196852275564655230646326065598408232790200665841909187566486679150140970649315754459985320804625498709742673759039395694312742956708311119799076781479049543287337896725637868925906080246459012706388449543697987958063050625793264467972389859948829638899709720548972680519705835477688209136677323306476098091728331863869669563252472274298188364569947584070414313055777112983247837739429262057468684798858042720424024064671039279365312442463106435287284285840878875615505651136560589255748313635185757360485504243315906240840624959323101800157167010698433544992461698750934880624754974140029742136670664289321611724996969665093649615139421781922676558445827325056596963630429622140688966531461664468471363098525476299464371849974000762971645250215394321319144156282437892179507944505866492873001489078509841043843955246685869378972739342962420258092232591979861515607848778475879930834772695802446106276409922490885018708963247615448080146534243933183062959648389657797694649659034028295612845407253610340217540970455626251191641489972684241450391779960582457907286675763444664166023430191102842376655980148894810468754163522770942720851842135674929545451218491092804922926099541074322791989349407821734260582688286679176012990350871260902045663945278779759913407517643541651344622150220868635232806830281008396646086190557065930763634671983615352265073914283606750740161889628967840403441532233933474331686031864467518997227079515038812343007544977508505468086807122771222617690527762664237599987505583717448481474393509337316597407502550919344828493011046125528673421368541339739174155858969864612446014144891221161599645693830005696159191974161030222705213430679227666361473446059557959720345485196753043373533787432783224648709094891032461611929859881456718089964554780145949497948309541735725220106224146023332938060691407388038692974265793839568678543948077227540685957494568453324787626784918927311027145304011729427736210727442972184032266989483258567494675684473068062949906943254314049641764847538694677962256818070526933812156272778300841159295991268509272375940177883204194715006152755418642270331881086505615654035425210425101731310628939578375729533102364570272363479701179178205519718971877295876428474654815099328385953964164904830280034202445325945237187993293321719908916003558441666113751842385849113954867082941749008203591391797065725513155023846784898303423432627066004793015420378239932950391868457757116422501321514444234102710151723223997375800389784639389770593029699957513163654566263567592174643583462975265477877373444592176750085154277362547810915161468333555487412249095782443548382921924095743790100813825103478974239524240071007474415401720699057097130481665405185632783010926953762681736669465676835164896094143852683411065225407685238873062382689644512581527238391257742167002239160141597991396443802450328532413839611139515318868179267730020223835978881286275512425075829741802370429143753531604213309525285238908261432956553780232908600635793993221492286796923285619645815536708232925780491501346437272494638531525393579760506369542783356359421471711595819379754675541661899100254312230446622523976742147952776778877675617263141964215845420623970768792610659938601294084025960017183459660800932336765391162781616714530634553515930381616932193105848922581607764028760518119365714154672546558631403238220598684993203314498522060578542687146639286786754165477289769348332570762806643214710261414201497904489640160469573638022890845514289833337841991592770954251358461893831566497644702511732413802640479138588046416405734890016250105572674021479063033379499635294938708248382467945398350299531288726361998253272455750910233047839369301436811817895054195040344203472343465981393727930406439133111274706872061461925791886565528055950677667423503000503645322225067994455936195415438639813315174470232022173530760168847658464581214963249532196880944833688611230523576543146604462785305084284933089430748385443681347670886250355206362845303329175698078898882450778499346505080861798421489336185538504803529540978803597127059844052220936707717215435256929091813376209477150579670989523389388930602214154508493976295569743543772941076183454648168905030327460171822870324723307989568217255933942086512548089309227208434299897444718578701053070649631938238992319799220562211494110428274179028951170508371486063135759768832047018775254627428992610403957761447309123785241932107304606375530956432996603978894391594299517567506232395854358397177900314554758782304873677060776558811109994180861847270182818068976597888532035545887591499457855637197009431872630292265586147665058553969924057332259247956826642017148976766689072690840790976435564562186906702057599043273879629363520756142975856566177172272695442861940265897642776744270837397669866183283620388360327486606341247935704838321734948680039089415710381708908746081016546299675820772647873593636399783563040914931670376809575946719053232221294521900941669927678601990712726765049088032858799659093642575428779865203435764490654002401299931196032622075664355742856226450795511230158842011201235007757756670280215982359285168409649206730403029168020425204751777704815818270286789139936900472974798062213038835371015359864383826625344197487173606863696620848314419800554610725535832453670758078724350456828289194372086826472523412439694765426878415892974487354585218700915488602095672314149937776218644703144755438242297383579360181611982943921744163931430223528078426632063357027886567669047183696709650655496555412368040791976064906071687487279625060872449205170672227774467740168919318842530631817693336733156231088168297767751697579464444874626746395676997337166381445336652487640288388976922373405672745342910694317784607970477603261968049869171570988947963490014467382310686402481308684478671750513366568926889552485855907601819672306828584861890412373977077153313437007827789102285447239086727688037418407195638019411477548187519432511939413216329225972665065502704941479990813314317922882708856593580548602935976180291164632518929540719685747287106489201003461718644826342119667978765449313874874793334942885098292943100977386736918449895796361891419536695084586951170599867510393589114028723197748319480180480321855737654254474658029626019172301216866417717479797187129441553324648161883765533243614499026317854481140829823545746055466329058942896326762749857406918275202324013869215184421946813494365753618572307963564353383365333914796906842870014957017543771257733360127234272840757051458672892716823682858304829743572893531581126710745871973243018166346031150854447765384986219887368092546143460687457554664242352895990261310986853552242315276624052440083655376656128756522079602927765643576092501745423410321187250850098596739241769551514889968780725165695757811151923388830409815376679025943740597208286402507749553089782129911940763710699943094415941213633171243232517438235530693158667023013700107186452365516341643554770932637521794100529208080823657816876944593302936153104253001208762818313170178537847642151226157746891751474424792882157027794014999936095663469742518003160876506265624129142890245531326251416235462323916058478969513159587999658464946359176248369133077064253395902767236002317992930488986989727439013178548913764809622323120529171052305503792216183197596859454927069465784262588950883719438774652408275911651941193130542103830919222741047677914891469396847873804676128122276462205703862678268663471951024806464079731953100913090233188298678796292356466206404012251208951644361845006374112380076162474127475673757982943922068460825953350819617691417197904758404312034110226464936621911891892671021082767644265242725962451168579266393821104741330862427867031029197052168572725858064675530663082512422362479054660819896031860992143116311029593934680501343368901227807226014617024189910816336985416337192670311208984784883223841609521329392589653838034477113058303327804932782159818631545716903184919337469148721235148083994457324544308910212620871213805179354260779577958591497989164496925671437134242802017257496899650095465758408979099201850084818494546164925704877794217916721151151857089981323925967002264088088145267119670600925744653550369583924932565515678122237083043938635206775537627658865551184021794739842227118796315141493348753119888173676777584551342392971678294115818714031182206057306163297274462780523614803608412901127545583024847736978031077492213781798487228805080358714001103138926320991488138876166449420199239990843353922873333469172532777425314351361380714274890868804724577056657514557221251527909962057715669421957695104094945780571855309131261424220781915094348466792460682375346337691262793975807412131180970576990002019603586347961856396523125794632161542817636413975920532182887977245805982389582050488423821639534787076039195749973875655023809442806502278489498961193926470273249890905577091686297645840527751960711922255372530994658228791177793185132888597410476631182306552600141920557589372938911598889207356064907210247539643492810230653283240917286148096180672199609985571756657826219949788809711083820770378827711407067018162825012025042206613704111131423371334092300470305537878224381692365566954333515535692197062920504861468438170918652352171660182160438450456943932708416756684981448553558300064334439105689454065648343428981899955265994843645089444333009991923328213392397590066626099010861206384766564504919834036254777768961764959337540555395982893990647027489531930517217747957927461053105189825268729124255883169628590496066623761512790888331547568619659590872227880120909664058666473369089555568714715218553750856749993532040746859114400706668056652569489903673129820699320969715018636397417725660624836857647641031397635424619153293694975562151908989882474318255870499268059156697532009907784602514805565939337735815053094336317057285814636050049019013184159212921358999562898005510618354507984146297139355904546617899011768168006781188683467972556161250890657129343731708903038252067297827164202196337748147342934895660329050167686817000946835099109231151564439529704468180957947061240223616801846868537914004479034417295601418879955319208383006754628103360413308697394610380648584275318252778644639246136268999844394177642408843715821523873133007404293331656053456475307238109068559034948517585574021867207118176502462421369348728713656600552673398459459838188570199321916271617219615692472809875937417387290260278513261348148893100765903231835802376952574040113230755042370027371446089531923062798443948027788881889269185803332304900474436488563016882733438829324650090745675297281162482797999645065934032769796944899762609774492800669330769927863704940250554562769270187976858960593682377769304314933724487075987009269671390715414400842088516621122136942799114721869380265674090086483874309381621642027218396951864899262273190880345456205898606980748839766960090503493907317614432597280637892377930443156348694543461873670047394234030640603478702495959730926129401365078336484150474222606674291302727064948699757479600271869531738324060648187585617912007496271530987619512492526594425501954835343882830053526093984192027318615053820655080978193913469354207778553301692796026161004529730284751963875810404059188629742231246793785650272812164324952125102059160232236897295019533484738651423045510857243958318273755464957974761793156975654826077673352629040414869706531238739707503663743365419748975140548466312422540504492620643328461670623123402037144087112233360994707949154308273531955396870346948633178462198000278840356188767212685943381455388518511413210714053600176524677854251421429402250088096671269885679493735247300144490130469876477709348816668103363384923179545047939467035113014840448790681674154485394993135395419491179326381619410324162625526339902702121540930751181559592663255139275865938590523881396450556550411344254474343914115884962227683376764110034950695027960458434159773647855479750633119178879344543851014877873942386384996697683743056724444466921960992245544720325101430901956950804168774935211871785272647069371244759674380238252020264294351504072266994913118117555515773960317837550874536357584345097054134791450158563239569259717252881899518182412056006871152255175543980804151970200927151191812971837393022039637745869858908023104649325306339513547067719903801532863022021047884731278435827498008540256228327066701110897246244700568291348618582991649248887917186012002523618183284185301493556423352308972270343374518327957100311580365767355548070489636546209907999108747117432882433093939132407507933764069597504629795618989162258119122368390720498949801310620583580603285717490268456091289592279612250900256106085862719411849396337032058711467463456843763028149803529288801330767966169308119327145594617796846351796287289787450536735752348938415404731488723765586864164657286262675345214083058462452428974635496362594396399612586980882437340802730565907983177642673606835680068383442480202705672162577528748587311627297608175105927668061268974383955983790210190138643601958601404335281211498078137943236230267739451336139109228423087330259524021279299595718732881636901759887213105898044570279557187966966441730195532156016716745280589731419489945053056131911087813905907450845471267422200321767337421490757899197497336361066998838310612256906873546085055467968884742559683446973840579150643318006950315884755577522956323124460827695406783263054886323525757421212490395472810090207366995403228379310988461685527238625931759207986761908574076522126693059480115888310754662328267512871495589994939852891251634995446606485058578668488293517629698144225184016450472284157124595276009624461418689771732164435572427346116262145663219964714335097341438903906075884275252953270650452494862170837028023627789100377491580306612837660016496162074497961552274512050597213777056426997544614630645811939186616458524435748772688747032004715892385990506397147545572459519397268231526074102421283901709367030535737432539033703592862076818026222364164771179248944497476862340831367069342016124533837987957316205620509165873889034054517815085794537756233588474078976992798239561239963753893290993459355540136717476901638491837169110372206820420479576949135886212355808670459488576999573132900188506551830793042654802238643405632704917010725087021861777603033559110536916284826476056940982998163768240295980004056095655108223219051090299339642001544317808143611611867113743198046589906630098621767236476215487353706811840721968054298566331709262656718775785244937649898053582845358431623021636038698802939245611331703801150455257200698164704641602610862905280918197694757904513367550729835520381848242834170057755853773864064611132288053829503772294920733851907905994886811433568681148069198719393178120670713963708587239000650176555731115935714667840897722760424300253086685717995606842258519242419191621956422116993985058291363869071654724652703707882036195494322538058684741627007972800331839003275668471665927742960307840552965108924162840369798538402421154043436464750212621743388322440403630031201222325848557073508691507968270523576933086850676538232414563798009074402395834036126455002690949506582650342394376668651529935640239208889015512639975992124340328735058271475154819457969038599522133537105823157872486835601336170903787461141425656610168587598356837560714962729580529782681348967646793684204733360830430074523156216830816042039394816691262487764808584619294057462306513970351430715768053527852034979885683553967022402772928495462975975947487812983789821302889748152339219761322385102646959849561263166825195498144589096655064856756746730348767296693018833817757380116217620355918261748442928047114338328474318356292127174631240137080360953681881809766016597460817267001147791028696167231477479146646173594275228590953419517878221782188579244328095118505165593699761028152670682578256547615292153346573936375422331821892461139678567164392137672877022816932626123847216329558793372571411709096954335887404744668164712005364281712735341462587470420215455526334787853497457000362018080422908952915903111610131612532563800765771194897837496103028193068749456324875030157739190408949895237183512319168549238572200514357287952654419059493729508786490441470765894546776034739440908825141568636197156015402277201454828293526018972017794579689481263924585009480784596668909593953545241811077833942398254732456830702526196230279788267720709151664223303775048355160792002469782008467363343516061370105065363041141257003105212367669794491702769575353172773400590833399374897233908553621018513207164512536930938690957855682618333949513749692945166044501880745462075640407591811257787784423334026363036756989465694370856709119517396748041218175036928639752694036218619593577522382600608865548983532992785207256441355037958978863583016241571963364059438758676991079602283622329567657334318221493257806732648761599922226597219802516086159629966380916939330571073329063715759119872603340803578145999622611081115527428231193098763687897895132331826508811032821457005071325905982867949820910823456088453120646256746493311565486658014454107149342710798368071330945323340050705638425856917512448902492229374981745788449469941655702843637413672664485953751420410922857536974646070246965110289766940592674009536115856854206334979810674964882013118739653002250926574370793702390230517787435199913484062331368109934764215244216315420470528455374105512305371105571637323181767283613890888168095002099933376261677566198105284161679388446028578997949977392237339363853665196644956441510245186561839383550594492690222935597523967260896736449846882316139330204040964603901349357719762593090251306365126237206572945938570834262822109876133306202031954967181068172439133592009841139232018191583104399578479006146893390736639870506732655650693953506100901084936456446890489628395374631452964485727350396507352178274216951436586852862024884249413961003392575018422381679761662795693663930265297458628896764423767540676949523114362400467647603832762420462632763261699780614276328953025740194205799124288627668710790951832743546519714568277503861447094970768736024413942776187300000055905203053228036081521701082514189368193587861718191926602523566006880488027765099047483217173000436657982249831921064106003794160441717061190025198921960779606715369331362044215955158580029710378135772943109178471800178713726862926946727828240666276122622789204661844201291961581607356050643039857886194933601821664864035221472952437538939470170788807615705453531181716992004357968581216330156508747581693620716261789569360015332585881109890509939925136232887558485048113426653100749572129137178390357920870119311829873622196310279773493512694003051344309309588429054588274779066186668477881405049270485951956957205049361373785813172330494160035135865576485856930385301378069139107673839826809722875913385129844452402344244540966124563909196386092709140294987831352066676869109926626471125689126377800677556228196007817192733176428162504471692775439748470593792497112601306974902954326885622642379207197332887611132284186695992422155644680727732971803514065061685986748894235928689522198263883771829323956128064406816757554850655928315587095630412723449075937926449430619903149608550217020851818321340303420899905060920146299951526483495896294097353899027743401084804244126046332181383061777141960725046280064082132335125086385253760513333438298922452162149829845243569300509202413012570517562505237085375306874647147750861259387710173619293812605509237022952245084853475338449628320091928938962192630843336132807875598412438232485364747860679769612558545953443233727329568334898741259981516149967800722764755808036231670047345493822872581918579491756869624489682698375819307201274223729639471003383014270270820055717923576796176540931009144983850917411836315092975838846181431565649825939458728051488170299782184133589804102686864839017572515688502916461474341966945356524237493396248689158016986808508561941788821271557707314111722118518915505065021443196484985762096062686436534918093333049287936209293591700190876038283574071352308329669813285167398101350214067020880892006663495690828657969957970554074220984947650940228697162426457005688540269096505664608049911970919210984732936731825956305145123663372251703387621728565595720561721727292400590143932346369049839231315530765190115705637416749906920603678796623452405811835432907947796755826500618745612659295731413068494017918022329995864373951192263726799645590027535098734938757804485642962396327195959983151595709484041601433429313538033784283846085437360559686096776051828683097830844190198065127082908633602079879092810124543857975561892758321888799787433442525335735382036302316207679136689256837750102433610549612068201447673001066675549895542016955779658385942831010620698235298012481503708755391643561293821611510872085073799416247041946457256417383820838877855767895593452698729678783257108703164148679097934137294726622249794338487064696083871937120015103616002825779934690784209452591673175454467211142797233925925635395267866843879272821438647512814221836244682095689838238389920884787754868054399344903218007868892900496738541924092383764075709111548418956960490819542495382202792061694160295777400361106150326003064829066752929283247805262000965076533690133893502279183414294237323660798490685195658877304890315826355133168335013837402162357482551554646572082647478615333530326529897843291095405170873493372764758102795426572293676640223764014922088802852068909775139668459602917126596548032376578569687820530454458075552389608093580430569106223056984620842779941982282091109876121929782008947496340417029490592006529899396302878875737105677086027159996690456196342926433603885497566459821337377061359663666368924584079038497665900121002633149777057896293685029126688110662986487436073610565004217901258483356055507992792171655971810159525257225505805500033325841670071514545392822285240916503910735349906298937348465056203572821139033738634242177276269755399921968804144544173461774243756037553368511345435573035977712199868074089731426103232128098287832897198782950604130976220566702910041771353928168282119503245031521655587087493082293429432433861840943533225443921004745895231955043639944265439458006329834854278150968517759425980855896356452942210402992678972545251863152045697345993433593956841815847757869782969283029164004647039350962442766260292317676934165299010784429731289117482049902020879439519095791200571528563824121771509445854896525358233816624416190741118531269125023924246989015801719581213361484163748882523705568373232149094682665689456410224021995549743357993854606391724633585749409174597497394315265710153370308552188941244367912814383683751509594496764261013495734121976271537661804103742216558735987832696575151615167148402396850505845706114061827537164835074279291592820435917359291271813796641815768669639729653643556459912995584013819078881454938896500679333451003239650372203941761711509671954784810602307466083448517370085739462705543669744928714354170827242849319240656600213043535994947461976024057414765728783783149696780589054560184516178565558168613161648577988818694631800172586581995728500008717521905147391829101512183918962889471738872956194304751150329547244482770692786207206855014132450901818643089640191332341130130082180570664523288068277052561624508411069143761242378758686434235515316149522923883515309804263413793161247871487376777185870003400720728938485392887771747673031496547752207791620650750703052212351557711111841998383277375035414337857547548885147486047919065714289207010959281879515930361968598067310347966396785564869665471545314468788648478946301707547607928362926006447520982977520725511177142509907626532156049369885553643924831173207252655593770043712227477762432669314166141240312691063062862237980675680354245864589194251276324836730746077448902031927955150569310626308783501573227818667425228477635367173838371807342293680177194608168611750437751452943410909599628690667500442029283577154167158450885503680248645149937029756509279293235218949592530293054597191612216333880016855438695432955177300436583624178113125812851089639897604598917571099899420788939412898145109679250427639060776510854075839171324676180661670091228872252775177722537710136644842332227370688131765464880689902991988239857324126202351025053780279649384997818198364836629799862885236762690840358032491827396200575040849937652825189867231269811390816115603838311910896225395473336086208541378189743156170505440322092719917991826074900118841169727522344060187461176240448041584621723660519286491208387708798351055848360483055094287790362779178383238976496290369369776313404654452074430380007838059174392459960066607546895037630677483361733340306242630918596877336077348635550101417024546151520438537346066229564499276905999073611847293926446807204311838276910765541826613732054768065097025696600720038524410147783531564911775322843858938286530076306188056676357215911155875123998567442847744221712624217628457676834226950469319923491295313420170735391725091774411199358058120705577953284643572647756341486068845151898698441372670644482279537442630318391926662365264264637710174816002114550233941508342838322619281552525882814164745844339914761305379045979777138552132786533904031964602092823652654500211929821856846109272850740450548902330304176095256833515971008752335516010486681225643889659211596854009106877661756132735900830953051844098763712030387221874592792523341157710039685047872939871762380666706389716270135220689306949872420406522203709407617926143126805200857023875031936467285458790210929127921498922731091213173343626616352943700558735648143103133823919540347666407416899507582340714698362834001789549960916754188632171628592327076128539256349737267464625249620250255011265919713771376948713995932904449282938516188810332566129714754660768919319225534953101274234146519529293897827008170144899524642504185657971231827184141304749243792919981922240113355377064606329346286400917545404457072760355752827533663781039265239738989520576462495186993347177001669867200481950867357193842618483226702685087979186685018429996781491156849518462510438365185630151781864818149486604365769346377849671353285923549892309130487532280589866743357046568237133913607601619481474404980962175255636448989962224748590997673979581169911705692690058109511781589829781051315157845485947543953201717362292167399843637219685664593168453950057440455077433261013277714056175610364406982505406976120771712191072918970399034686478987666683849574722748882740744540393345283300327757262958242773233570373097145826531122841431519646263029206134260917390896007116023265833260998828670886890861813843979630225144444396314225306702524012570363710495285491661905197210355866909937318315934887874487790635804624723158531919107031847918782612974874791997826747056611100795543312447730987040782203597924742549477987544373770342041698849588259705409636493202085690021399687193935487950032492112784566930097755483315633740751339923656080803598821083431979571994931869532048884940586146861699994765485571867990889199559460256350895339953087249365517524944588742702755847853430524070916041867844115053179979521785716046672128159381908721754344567295665424748108648049314151179304604988977014532005492307679357745469363725895072345851027573912004176040135229400113097988727508931439895522619967784284399903270556212255638963989667157015699627055121570855075632133137995124154825000331198124195087741762954156513903305003648670084185565759026782462443061645362917412423650237897048967150649790206584875004477489268194174502668290443338582288102418837100168138495799734050068351992799885304820112236008970309051523077841455010732751345660238560427252207864194850686966536138309034493930782739366754242475049953991901440971766721882474061611957892766181484969488990203251103533440481767498234919294591168137158414085166790149333096064589819428741537720037011118570286034369589991834473235869556544402664795040519299587097480274796606264740254984093497537936352695977649512243812404337351956247276290737441786819019675534757957880885867190571876163521507244353729693908410373109050621998977777892063098243481431994719340215936763502748475975953204028867555650689053905258379236110228804143120891539697570020641909531636453079719859110531613190130783862582571786044071235907815937782409607818370413771313938151148976537523629857507910646191703021247819375956099825842850817884741974928740311617867168757871478943868835476860766674873362561098594983397376088080561363683169494509929635850986727473965602734272408034773365894491058475941803170245045060123318483104546828205400850139877828282087177167547225494542502977440024255153973858501865353292565504013199242782820418442167007917171614601961289739886279849412285578877725282647955917978255016250253310065785383761461113051071301786448635175621794708493810363109338440953810190126857044624269267544746247072091502607165129630812795924210340448044168567558801095468000013966212235035898908897640429040094425905685386527431131791745473516900147651568262178094346531346471704574589116323461337170695608926056214806304272406230596516911196248631933574236636612537288115453724768111616306328988372011702558771984564419823588860498205383170802333778201604773159275335525898035755989596276549132388648666181139211322579919268947931441887859137957766179427516486138403698995846807555771341970742024823495630850621602202162588026208034309672127318199040764038950461516782756605339938385635283220457360874340197587970472020649009901840366644915447736849265922761318999315866151578099491817604728528603664621791427706217843034198380181517076288044464071571063801744349125195201443965310211940415088089656615752829863048571931264526355232798099142282361705318752991658747640198228851188955746366883355514588925691668363448601912751709346094153093094383116586765756621941881624524151986701781032934208366581194918896798320600689578772919849894855512939670724016430764933802925915354892106393350964771975644626580026342667070246510960526929313345113871485499338282592462733429274500343346605646468350279276330859172743950727950156101087654971171865518732420545088683426503226612088560869098878234952230264716971799805755551968314392473954755237486181137813958711025086515908371792505708155457257475867294666492850513368122073231191677087102538198469606922648928799267448988587318317013771128828684552380779980252064485586102705568653885324477760351786869847820619871063957298965028426434983390546732551560983190914607495896866207548645113410628256345236916925719940368208310023640245336816544651441292215286720152495810048156810002274733862401483584872215725219251622852215473378853810054707192145179328291224114894468095712622943809364833903230961470555077237968938305232400491828092938184267687027996994350954210243057405531301869870734814549486971858712554499193803312072995478346783962296487691852627601225684530681865075162568081771666476994413482143468560500202800695087229274632567151382227962589971335114501508725262315424911318938834877897353607580053674755506073939533369621512868181195980126289749746321826641065451694426220294688434772202962838126608266868974279769272893041238056073198393496810073868644307702475396312244824454296126754373230607551216798688381115683048672057245195257104719668975184703949734115806289950047746643548589033104559169181602122770806836131899912969323835017017156666566013842757804385772221414300835946139625063964050679569613133373185953508140591687446484668265042255840655494906413457383363960593095367826956267477949319789660722210250835597639134566809469867535795630025347686559321978246327895922939276451055709835540079654081470681331119076629886638683839185782709928358341300116890342912378127514473086607352007083402267863876612325824988090061482294201334746154330323021645040860350195195947269473922802893877112932499605993968682252162508598332947582175550593579803659368323434384853492748168547848507578521795863415840942280552434149593397915590401706893948334140802774858714803679119135091308160881610537566008650707357696887722351074145937220166730872561375383885913804285715519197058622001320606783999021870777447192234166865422335097505081356412145934609703793951166047745585934217484319566866551869104487142954954434158942998697440441005381869345960933560206389978801891549062741274091442695744367456593090653558653485528538613065246189548090149011618491811277327045508518201900711327121952247105828326314041878496023634265102940283595880183817311293200320286362596847684042024044854486358466600934410761139365040785879674322620768154624532270609397407874651307053205075347565368283797066973440521306582600778767518539501327958382869889161713106828586119174627814874833732647504212867707846735856810046204675944809296693571507332806634554003772402636090055926986047419515941028051019620917171311293484580719435460650224606555293068628019221442098677482185987011029410359268824732672358139826968594112423703328503367153221884554627397502351143231554893589504226712861170324854768924273896609673264993704554717463798704061744256237703236680550211620138773440773787969843904376957770711759017760348472241030544095821643212132520678009753652564705126170303180294524391020062859646304431175108120050405446929298648347763108127667499570191564052918637184251514535238235191281757109962422621025704372835442422470510979391749290942499950392454938627696272908214221519237643356960694383656986834273922069608423523067321937636241605820118333952440735804402636691597038134609886477415522535235778109600184410714761330860075427088434431760646748594194555352374592355377395706708249627744339816038838276217178382157516228887323087403891545078009863515081548264903846552351538019318978886355181937059992761699395964680803639770094604883680151372917059557070770912183798805617833582022382538809215417724109223186989684587754687067968442889147132983310277583057157307851048090856904343433559880809397471959364031559098822328268434099335384156374876105006368832681905444120789437104421181195180491872100785201277768795559133193002266941531074277098056151351873311451042222015573671585745637739996354410309044941800971951862151619275826493133090027359383127123500836875742084206246241823671048392524926589844875155551437520072038510582016504193188421366860336735614096993152298954324303465306420608056717390329596423942461752622631886769519494527769022031930052059877291791857770685686788076228174006457995496110786702118946927676608486816332452886827432564976692348403172188042642185161849409414757178480052090997046159175800307243740601543257179115339738832301739104413485522527109633920836564391498755633235304274255974975652022969122517679451352258028944534605781458139701467558790311685920776092786999563852415768021709079992255186891388390376527463813107904563690482472089055695002269169945939465594437561117965588737762813499091957866661409452773002679816542547908142882600233274534299027217154894484035134692051972016613050070763144751698574547537083564793500618889969572977715815405419338053972498780928333035836599785519525374912978551610920647146386691771179282414660292302639020441935487142049525198010291073406536153201424966950837016848705432531300975286919180294001462773188028896392824241761607890781983302318103401752334661483465894816280792924111032227991989776689073449474667782298573449477898556231456124392461374854799231681751547176776175291853516273915653303294857946100469787067149500236146445675248672433228882013863342919148455661363965938013503431576635250822190377138744982079465676742782442255828563818297645201944817291450402787574233376358119589049802601291971574953808758852356860064790887638388175689961137505156176493867978208485565671985102350641471429273888146554719584556923966964314371253707565708573411504783342997794763752792651523625340224947937836870851823112585659332377636990136375642682348101840400457907474960015114762611427572970504290146377698192413885018121399071819926952163188705996071999232865825675184064158119181559456585690167397710246001459828294553730758427727176877899372650105902656680378204780340646620545402178779030949246835942943098888535854985075479958682818869555839483369543002615363988458008464439520430915674949556191180413521129337418738027228406871965870029153859543336262862929550621792093167959400044650759515339240786565532129657281441721522939015911096566799191363599212138276445163896265538378114705650736271459473425475239140340132597114282487549891044418666811417108390590393043574637392962550683128977480417411886880417625858724388005465967750329126835636322069601177433593312610692659636781397749301848052899334592963451427993320169736033744985207744689751898154386917675268766381523962314162494269362621642806252620323543526076080278734608486475782544917459127602683103098311807464242877083891422953299008626673179207701259649269130240917722381864214003558043896928879782386324818491669333526948286502291993234839603629368371387284963489314356558139510014649864286163231311970934097433773832360528733053567284305004154790494484120849891020271441955030077346759137841949340827678715230755666499545222511185089933178233810338051415604836954455561791455671110913974188315079174444780525619719574340311626661024636792991585387686978668367507144676998415367001258579657430579457220037311864667660380248845595243608970242987496309448740020542834725248569140700593712726955459598850841214099104332905035446872157666849326393703578974001413779196521798430966150439546670551898784076373351281904500196817057405261985839895707435974954609562641440316036832917270735672281150110814919605402320497606022907014323002542370120113034759006745822030243855862433538477559974511163811902192367162049297441311626499749386085522223980735440490200853618606505231601562743125274012170682845906539925082496262899623856871983494554969962446780487506924088476343538605220847377852691059021488041439737777228002844213340399265432032666460704159767601455713840719535624089360685058600075114226727971924266859517730426043326476754041781246837901627106763969318318251542357909218935224711128314388076783304771057103802183305442684551836728793007858309984028735500853388118804004006931176711374453753495792058467847332955348981240009034632549432842160795128069701108333828959198855103948239272153508822039231638873587103498740808938575073935473247776234255537547387311179729484249284592830306213301421566316479006156644934655042697692523866778648583695194897681416070437709895964342951896466928744473885150869928776298097003683768875981782694244226044839390864121676912852544392634823815652471374573567686043805553076908592668622105775581291032263273001326528965259151185083429604215304442641494509568054241210359652539435234475612496091260530897213364577414924457004177266338214645068240196340536789552583306180170567285491690254672378603103277517449106535536280635750403492540672311794299403305179378915484291766481386677315738049095634101233734627913651982519839962130124804991354446459394268243437694470842867699540871863213993175973385380781247864849611204827457641202235874125535303951219594025595947800100883953125782683590858934356835671865116281639214338681445532895279728226856998831440198773122842607598160409814690044666204139931866641293567570812629632085023828786851041789525936312402613386555250459536120596802520651786768620942890186021700365942253700776539137030857501437741851641660888315607618052463597813676346153273842076740593366114960439648194973923572143843819411530097875546017936047531192959424966749944311717901533689768141148547840150425382866323613902082242197216958404978105216705632899458514502105943845071196341778927116843215793434888648102876515257629415368751977841432922649664938789609823076168498400100926124041861696661009084253303679175095798430107938930572458378424192041877919104097904940367557544278243935299915305645755091321959190874669480345119711469370648340095961751477843289706800297887484211786144981380802123317914155801568311191087284270801748082297495799385230187267963124694293680439939818979479272752940666774006089521568994387050348231004456349631442177415053152383810047895243763209932280907404415903046936661276961746484083526148297478589145243581354803936326875956550705228901942723455546990932291914764945664969441081590636479288880813343936290005568163741741324958148568029932792279044848620741867731138485302709730429351971357738352316785556811417341248982652131931189179251985987669534148229408935687812797395352779409174748358944484997164675020407688679948771155639531553744296012333556611925889789704085731294234083199470805225920818350745880619491152446663496657713560620635361411441629026109760207492866117184092166490146443935812627862689125383778034341015097048794950273568531394009842773993162076289665044307668717110172430123018402872250575137937445238981213648628031993158592192891255241655734517331941387842886036075305268269371454054256377174019131020209289559690070889594566970239531306900076748571753481434720299921787642741290234764685855948520181798998161183334640588535814607075719998536303641561327723942792388777606004723111017853158767645100967998813519483256618584656250127747485810161462646361771517067418593504074009749327427841712732864473085806454560101651315308688676509669811440225877571391499640582919919739642564055298480613115086621972297951075473302277473202256332783108849649482816495430577956878267607168825961277114961401720660361722540445184320012948526382981485613652228492109181328735852354083916954032796729123492424535347582172293967783998886470122159587430446798174540235651556433237305672879971305705819643994566934556872480465616786394755547876041803299391658317119355438916649530152166206980585543961519312450504813406224816232687150055192437684273861200446904343951456915506117471622680338125744784753263339335021275983495531216721017856681223043501790084530767689755814467543804722332532798382128311321849268909820209446604619827736052287821739302031322539751563308756664348218461525837359840050778571690944204335758245464996355853343896316456294661128876760976353055267773165034670519264934459529459648633783727090575240949241168313579543252501986854889227875784141884211499260801266465556840040267430758475369185004822695263695162664427642810996146207202450401050806584053901264020015719238216347342212485997725523569905607507101331076842172518355092190343925085725818567187548014040015928595713436885030038988531654215123515105163939789633557974123645175229564858492312815123402039162291079617860020797529617504574298374171266325022581589711661553747596408740294404743049422636678395772835877142726118971307449804576328787706192222019429561338881357780824093485760440535206522269696809532042205190626200046613069822599829258051783331829307101341461149876378765248254856275398689684217818097172465708380638379134425287485431198913732563553091626302957359717784129143123850871769441722950081141144505719027617386050558872543186634141898067413515236794530414110720363653294515161949104485019183145876540253643649346409978183209345071511927716853229544049111428935200202296562024173187134732232347280406896177897087352754995959407398660940128201489451757259759062111946610135338111302914871310260047576520098363531194250718415932971530175137833999582823391958429291369360770477104463455183395009000152729925803899187140656121899127126885424791926405823913640123815591663957364362909806043146810563401690945746932468952026974475672902580556282454776326353176270183912327962641414172707898942536784911757898527422831678939648890156537585919581951673378067273406033618132584971020035314371230496796396362765577884071085208670601882918134781077754506697877953677232797089097534135093188269267168758347415371181103256025073933521769190464956059556332809495590610155321565996971113884827320642085086359513572096211480771721875118543315520773797370618311427532562005854467710657014146890729685147056520480959384407268316787711985987439519134048381060633211987359700939157336114817114324080940011241029833990971681432741461499093632694138278838831543370438708372197089050280644303611334778442601068576741376566283748902774794104072508766727578599579065403814070456654018683739715199380171847572481437063807766746340075116530921296520161126354721290742908250436605060960140363770859330578163179217980082492400344708685709112176281690170748599445231946761489996218523865200800431530076529807883614105930792298685824705996393269227447712507538166161650881447730479620071932443140481661278558686126056570391376337646382095041911769523035307962474858748095334282390786505803899467582785178502343427219746508275690843139298615644755140366426955164156220507925916033321692760862223924844134234833311594281829300545667532187030939189157148125947930680249564514362673754133687193260760759371843152919481486900313421756274553504651180415864383571455369300840465384382916833144283548451561824055296418382627215024042243893067716653742636932102689055155033921756438487731509587255494462981403288963702474161284708963252835656607104055097566062267273954509985049440002097757358186973893987239306439123173637235086901638382897151166268831953727839087638063788093853876812459845240193389134499576059958341199123703054118685701074303730867271256131821570078804787057733179087810556699253326909036241497018432746806737750423359539542235526864385476383010735782457483213262802017552594417057393738743786530846668391590728535255965298858963685158561969622029413354264100920367687419158828039624146456295095749292000046852618819835641741770223638659484105313931159585120220873635840123392920615595305693923384698317237211915067137609652794423543351115111626376644439624069631322858774593495798106311790621365487986767477541434867407341671745161461922772652942368375494508370939558691993828188327976447457510258021639479573577912124501231960886957857497856169245083411140280704602459059208872944195264844242397715196329528802043949806743196116127096688016457748472764430824286263309424395335129836957572592217304066162123696532456670960754794328931955156973552038403031081174191126975543100742424430621811318573697399735761684167967537313320320857793240559154878100258356533834184928590338642651716467042829564030629971048382010964131208644529382762105176782704687103369976740515726828330577001524140327053189669070907430369479686481382363452810258375053971070351364130674481813199786259452485520275684842061398012659086265009858571693827448057091982853372264577339140033047056778043087162734104022605031902718695314317410604930509858101743117695878194753522502867672485606492711441112521026383972925015849086718366246903022608645001338154964994463877582762622534401182771895894959768835818947229628839733572758153024860117447763789703483589014660305871472442427835048843456031046450237842159036753564775740454034996934492079178702119243901441793526780511373257034766360246037367836760259191764610576052776747498369011877703393947065483922135589040073985559322341281595324140813302554548395786007722371993651852374834226852879977147493698676449658661186366331953198226772962550504932931885757100259406919523290574372312224794410530616611767345078995052993354831721432520708237939755385731968180983196374489291358848702422248191285240446435549909831684269758596319912075910120868319316876448306451027101977492120796447966275327797735255966042020370722578786437693956378486107364172939410583825112575781484136796505741483566672163271143449430251652103869762476502306740820859589512206326543281991582133195709400823837169940921570969669014337865592016930424870846909013585644289707656775841987704054622595898806032094574082833018124251132229684615910116153112931718889152559519163321839259038311150880548095531673880188760225456717691022204581081199898526967401846497199711028170069857595294432130154520095543101191795336667055398043898003901173805614292108539566847915575803592464528752346372045056764029127531178594100772153258295042878921208868579238629069568467936596010696491202308634488760262467546709458129686388284151301726639586830516766407082557422787832572680486918317707815974890188631480200897800551358047631746556000911025334961036264914296308247869445212746773212274483389091236517517957552555844959574322584331510869849097678203407112324167072349436573074752778788037748699522981492030455260332478672527927511646473627649791866191707072482122470037729599862376238370304776821516726663951052792342291716531828267609933693270821524549387298138451034812347250227699923917105965435365375992862989609759649565126565141422624006764000114987422283281666744859821821868703464746450684880602746962716299978785412594156849817407836644448948226430010045397049953039034243534696643240621017461184582902987212086397466798609699483804085271015373603496710511419791182584221944036961044308339612774385218355892407216023035049757145607837075337480094870854698140670989625674304260300242361542608582856064841856072374016446866558608790454904920173158442359069903488731734552428738475675344099827690663132069956333103885105441726217404537659470241750797460948653888111487213721473871087951917404510598024181874867742536426221282810402534515064494610854985168132376827597628071466801259243015357727503946326407099765434339757189097979140317734089941606824320621057095596945149323877569033634800200374596555590821029948874136989571848238840239389250991838086770116976251378454362193218632728313183011530970422159998156590798977105895484246974453514783612991826864517174491462507794472619413991601337706180788890700650394822850802420294872309337950110413036260604529714519017342750716948131051088413127706001821898292751087911722373082096694079988380750644529952308398194859680733152759278517248466570653611370657734425787473377019837075261147748531089847086824487456226095084637344540882597690602750504143399020629874565381168446903444906472949395641374083239892331692061443380079302013113289848841036921682579327317678093399350397086960146746771392091181720713439408604976370793693148648885023767992005395193456785327972826492920023914791605441199104700255963320169413629781092043625125663758584493641542159316264101266599185851606509508250416248398696601671677974053854349725913622529164741540791062035427217070870220018274950223260297739026725893345446576033971320553787973411255349032641471143831926625483609710418897927699250984824236767384212857395997032523774707515093798194499650702052023406673836131134121234749781770858276630973040475306965209405942035568570273967544523147052164365167971496160459361262098407972015807897678468733209773151362428899727067531441585121018513464384929841326479485723317973481067655680936881079368849742260471559738778655181701744769268759100070979798190220237743444085427898205619062563862132270332148644346542011661071903544079368808264324447732244770605410692478181118290771547339953128886117376728932459299734902027379800027659957143744168810929722666807455907248364210538862164258811525582474113293101224001956717763041875956328772181466350478274239184512897114924636724397819261279318788055012597467967616832771575121324345100970515730933021902106469973151143374902175916516397829733580006984752411181046486605207828942990055939169527539270345365593938224032937406828921295230256697580541681029553807848223474052405681359978257719573083270629410824736178268625538199069176153501631682558323564749066304455215851849045325245113548821780582711756247465701235664507609970596745053404998434880282092717076452684967816756605833395408548873088747741301445263491227150208368051987290186054440956624071688643023548033493436208525361285975933362950400949180871923297290088491415402966570943654935047274809932686007633062957897673318407107439425649576144664933031073998855429832936705102229959874318498871027118445540180976357206163906323101020249453874557235441581267734539135426905499796027959773820517951726993332163843712252544790506200104380842433899773429306399179844678398201397793927197893737831676967287430640037590075958735314386397409926703889017800836183342100742019986193351614658203556004613412146106448351892465096976214276062035724371730919279931933739446695681215445623470892103645871308622257953276620724940772566157831727183671607884561828990199330792547474184114577492553887384646620613510148893716713320175896540706168459023974157784049206784349194695758437689825688784388712130013516436979372747899288963797439310372290379992297411043291542743799526402767142852333513664817773603160026610176463659382259713821688235197137719759669176442804853181910891365618330248075624240885942588486563727912699764083987019811542063162274611914461769760678143079500627178799513896035552690063306642089817545039754590157489081148653296114090777103859538072060425755069666583385522489266485685141396823839049841749911583087702269447348975130738723791669777734757503043152048855372184921095864201927029398463080650265624711893432350804717593912959859121860008833799176220816273022372947833705837047592849402760290289366922286357449077569318347684966731283599963523218132705629315376378580613859061204910099789113962695316088944265110770216472122619813783724560438068782211656766396476092671037249775072550689798570937820556322861121545392778848982194099069459360689117001611926915550637848619462114754574982100962900242696531679443972655521681813085688867386263666520532399025926044651823013520225280466815696335958429868587778028420423859313222199092887797702278204719026123199425761325980888914598157303084017112971226745508938045020088536419540156297434834461412836721231849533532259806953622765591377641618348617741771763211288984793931137198192153998584507265279605345552874988000686849814473326188396329918604807773024373932133005321931061591031215976387270792097101074510485407108746511700473369259530393688286565961981126197269022102435426520855933974524055676112065454562626127975203528086248867988973745652564385005140599786547948906628483658126122596696302739436832942143749849619442648315731084261092790034515351991302975618617640327647744844472049039398029556109581349160247157595521490640521761471431501721477177958756301121858727561426250802380546062527520580026417968451636345983121500967278758734383507590637129340604180890174405943760820724143055589429949927755484787221871310251541730472240586267336242315272940554500413111809807850235738000731139631350446990846651180179952297137621168383956249150333509521938809151548364987886284003774840533635671443894575847016132379915158240933684901259532325993540464889183539040868435368537078052959604134702051665746440746845908180173035156279001235368604268207722414824070112822772197069411960501288000532892588369994318557306197828830475305525074045044675814919879351645740627630247702421694321363023354699148731941559463274590186841618540557098839780584637928360775369102970054974742593536166932575576120152272737246096270194669123464032505815305798309706795674938174163148915052976454938757983866978568839201735775542209701621312619941677319255869512099699343657674276740289696071572410879291289398976399029961157142510558088885251341754146464574841862058943187144382782502644634715916638500069346745225422809681487015519790203989581659890778873119092144357033060716747732245057913315503544964993583494132982271976789490150046505621416967244830498634662187036254055538873176439130925815548630196783251154703194737019303002267476505042458059605225687339799720907058862647794695992310148071067628616197562367285010908686835329324916552156129447548944958112480070430838737102947991737062203750081909374366696645212107579726180357158584138736907411994076863872159814398531450312061294553675342589387515425197431596529162220000477413753934294635302998731097507290427432588717990504987369734571278740264960553524598660288299499836820840217833456109542204945850293874543256688612215339044007310795860906761517443073215663469362892284920136531986471848538307933795462359289758579976357258571428309150676510933342687886433240914298321385231604435326592560768829804348022993678631150969199046932964744705475452314338307960422539359721913340158656835164675745816373150388712484938883900399285389784667285391268896710159981514916308935777825999394848406768647576770801943176781005674714407878641536141570590682291637431903479521260870429537036689423268955500925243723907300536561774992398805234372592153604585866047069580507236928045253479688684089478901658131354536313442318247553374372848757950737351837087051610442963468182919520456992558151523820132186529547793753251547360941073939875891083446187183976522232925060995437032871821276237391269096354735337303743357262991771949841300974434373097936481056624979730648663246190213252428957994600465342791048188402999697227294176717271066642897288740363897452391934072005190934196812283144299777340905181377402455805431582041221942442879957295130659258223612226951853164302645646755759049871770399619260538197726304732495555116021302941384264683369835971990217590359589903999549746881149041329114873467340842684246736154702298148744494398144016681894201479689774746581959544054585940997837269238108937277086256089287799547482741504929737455521293632676781523557249266489599771659511654910535493317925694094128368999559629697011765153794586546997517396952029171799521319156211361176359589650728401522581784482144868441895513111911071852920654826514054166138261557397316208676327645108545718197230733565507514261425559204682284562809711755851155525712649396357982611329309498382956238107408669227167181076297382990339098701203510395184597226674417629405116205843451345245369791825116184527942377799564988720481936501722368535229231494776545550438243955204988280962199464883824813188529480495833257707707653535567981258386786640503013759860080196138776920158258457280120675768846051431918681808007489720024901944688680142529066022399233010462766834872245878233291936918936278021550557237342921928856587275696110553548237227404468955701338024670376720455181184726783179650401021977070208416616523901153457497418715618763958218132382373022813042480039510399505948476549183500252860150693208027650822484319800188797136418469015598984897843387913537648400169998050610137284228638713325416928103465788826303376854738891894505148293786117905023867930443341497258709650162621827574311389674166207454720759551984592133465572888565621025983889299639025442408388933356243186912715086920782678129149714630320795814390179259269740948250435578620181306079979444162946399300213843827506546298518161708341395732638512064991856057161017860716114536340827831038541399767152040280757228067788816736749543902560066286450735363448513416010406703857732903101456633208202205925687601876412823716947721676543382754352152689907017737772664089284472960937219208225626884181959194531069567828012632295904761810013052018464587286831029535519290198222650829664412969839012292624047702760423888952470178246370539453781573429983791929364217075418420556033703814733012841262779433621187911945728497182415387112742296312604965608594942696356534865036652388930017309839185890483888184082934658634456702979901132102295261333642388423693624816917037839163109196475597543271842402905030434052043842137007212986449787207768858389608074736099455257264083292942115688319896103181929292080607734654261521964656797442164187852694693725722728789243795262716913231353722821943388798173462783834369506616065088682013444555470765200423501152067574896804571889502945839602946688207834344243567113630455369058771364249037084404802591659871010717523610883764942010859563104310289073526025512409829817903151161538738096754650498767819852181930031985374976683495665642059534213851555068857032058125729395134691188262029730996690305391622884147077167811666567644649569110487200447864403395662759127129186470008440340340047124603761053239287325858567930267460735567232626290071733882428713810444052215992662686721620766191914236312516442249973106474745647662849634162499840394424140932534510577804540359986849421570375176836129270329054083521831056301373923302735842863740420705957945707116943325211410811370677790940929973550199399538888651728527387557722124731248692951059310090579930295260463798389196365599831265206781384704273613204603568984964105673268661752872388040858772416075607661491386800559170468074821416837577093734884831121343620636156814625274793883736031915402667132184744651097027866017976802796371050502396882158028338773173808154544959537813083982715013326233634202565240593833529044114034308685381492175406546827957133481520457717683113578541921585705414548435543395989054943504689170091864563185802198593313525133268346446499389487335527852241339719119306613855782001564254047265951088094910682354175087681840897036402837203024623129409898701895349686390775446187640953597975299588348769950320378296868657710732916835595214343198302058130046115768593235804223171299519371059418974229838360564611681465080475221414388793641134690426546463932829828898783483496561638607248332752399839434920944744573757454770390765221275258347477483809382227436957353987525394513270417577961636806366091223509916597515669663495074799334240243408172122418701093468114745947348471061735912892564531055653924900483055987603819194390856450055781336407070361856877047271632975178567652119751340816803987293341294891622091132456538699389229185332425166333742317896262862929771372282133528815854054348331061830780036327131259306036918772344527112674489626673336612584410893817914822572832922820333521933503660714812799549785246526242565757489195036301901101188667075131993303388753411670980697559857837035391918529130225185817766998100014141532265791968476539497313939755999669546415012642405288837153567201522304664996823750004239259323910696734968918746790482124754857072898744604647108697641213349308442972303807560249450036087049459987386804623123975351535960862445784598615605569338037076791239887099435056993190555231680672356566440523546353277783712415134191694504863621493647300996599642726662416913005073675064076231896728038333702533782348887262889899687987536935744437725629441342229267226780449929375664244718313724298919315942185980769058927559318762894047204613192083680467263784105023295296720902579977458878913700585626638920103742575581272027220421889387135088111399606567384400298214060371978044495195166749529278888827442544064850547194077480495849073598910144880241936768076108377940670181346885053140550284898088487249328660402627952616976034472728742579936241757014361088795480257229104118268365146657798561859187979460733372854705680301710310166385582673179108184094234354084992146024837484248262492525310829946382984986554651765528004256061044829942958179332211219375551318243693483343485676121291089489217344494039530430516168172941939750895351584923863660711067404466546947819930711522250995960030888759162716328683202190157977110080772594817868644048586661537566286090607771455702489552743285614175749001893015904680614777866495647873594530546176461684495565916993096236324561061029138909763310360172807399112239591381210750844133454775230761047551243830355052672691693467244697078115221779560190641775927554948515502929769567145043915312422334071807919208751817404632346989156743960738885763967466972106215615282268349199337378443142320110492731782169058311508489617576536436484198975829777841650276255786893578320828293011692252825807628974101572602027294147925852547685909486893302594813872099957168303079224692359757077407654509504147001640901546319249567407273413048926125015475668593144062713146480794018420185766072507520657105475738649571735057982833403452589356887264078188309614878887750966146619334505265274511344924292496268149801192987436407346508177231711727499951027550825157286137952591504958939948311345803408753355647359879095198326594467135887091464805325613502121338838485839893120677438526800457459122188695062666204376846080905784376629319198182195373604632644858982898028809769671595953448296734404208835730760204098893317512489985295860143520039022604221150033764586756269736896047626304559036569915907697491031980510719664631329099529448132518280722717074227754855545654078139915574360467957394686119412464172055597399745381737941226174458930675068139217285560345026539847984134851469097276316747296825635576889354733367669266509055546093492039164574790272850558582070070254710434418499844268419190628772824315799701408805736331845762505099651591598851936912101253279006175362852817747468679747002115228792945258526821237568779557802072484643249101864843632898765560639619235458120184086581996453061924592172826039421029891947100566895902229488912294216367412195194851790830284107932447027873250362294758367688746387757249965499348738163142135791309027068250560539420217467270081740837408616075681288516736912515168640534703980634971157555241430658313278622064992379436166773555129620988083814758876157392704637692156937444331777585779625883374233589948110588025930210408399435344787521747608631211152038975866660325172784749195941291222768373411003658985763423782063469921658750941621190087291286889843539436828411118814988459134743258408423015317565622252577457017251160842791653240200380696869648650461837180816467979897765828789167382348790038055466463671327970079739675587372040081970606330283944906450815496479376006206553649290722272932474920627623006236435509144031573220738237788414426778474303607166788666021385023171139591284243182652869816470361885736483903709915361567884926339423941051832461713132106478253785937589368613006574108170387665680741251641628637124850675954743227585956770404359457506420798259947424548584600764404097108213050579242637447713255398663272806518887699610168665506203549035218614632067134284262208663192828795565594103095566071597629389693748710379014404175890672562210387502695542030543189078062085126375133282244487224556001901663216754188822930065257926404479933891325248063515009650086588522600421700878167117420304418813380233261814464463750162536260595159715182207193743104561146965344025070044174588668057752326464554058199784747072406713525087878659256900309793571376051861778966638809692488255219895268975028824103450226613758499230713792364605324776805211771339727235142992147611898413480699492725857660631789805347801933145732080426650571181512848575087072024075538718734763684053391468966444075281329534444523378489131370344716978565714665261751953086800783072995778291514496122824610493663821702475100725860871078490052086221066112966894177118593277082554961466198380385853994702152506984294661288722272906037072865054345638520346586053140270502927319469722013586904594875837211059122522912352323346255010507061396952340969389477849827943783649346958327128208087460866322981984244114079408399538802123262779995151706710665177553186301107642632190504602303625430877169097203515734740202413086284866631391779671273788929212256714548651908388785265855377045438737433439855961552164889103612866229619398138867417872065723384322429997450762348991476580151115973460582348044061487018215726103068299953820114168294171063769957961613450203258049198658836408903503021354765087291438187470357769436061923209289580319581322302101050358264367202231218022280522137339317124358136979679263557864637535476559988427937619677376410258265335472108929485983082514123466278102344081993156783742130644833606331302153232580266347192613978660897776872725339722957411957858451690954365989624820555942742588705141424329998034640265270029460660302686468590822342799108365538466755506368615947536995039059138451491226126312066494737080419251125803185576263561770052494705927387338559961947087840228266965308020729212971489342643943762635043406222675254667694892039600769542390425155591671076862330285949015797202988769639538075887815670483069783404005574776655757688497369435439449498415116297676279704546336365129725486013084928673271026936641522150605893785196525310750484973527342833030533720160358596343734394752646351750126616967152635718142963988445623491280637160020837990214439861732723912030140842104249699658731805540923119182604009786804654118845941848055307592443315725881290437208991166147641149079937921953649036709171530833583102659667574983381660129142996494265420311627591339581279836235255827837610578013517659499957152485508133239224532504882660072978543661383075230425964148094563068450355872173842044237628046035037471946582681103590473980726224097464469269475234685876630431575520355537979501405527900770381109359675448762357529520078505660881631075007306484711364888599982977113046204180713530519274396332683593303633258683144730463978222419089796275978730982543045607949040193405470949263095376741435883392307014009376925416869303268313914985505583801515539609430372059384263130973934047440300906932574237565270841689866051964380818800582066080181003649028073624576552640784591859472546103842568829845259871410790142079052606681865709170394475724543757590100842016907926823650475630453468882745591043402087809457677946963701572526294825522304161925654638499525921960949347311610735787345180212492045698874186946993933051942282979271584739940672953057181951914067735272995747624708141281488320906757417756066963910291748543399742006370703279715756250467414193594186041782268725810922429064249437607319834292680528012668243557712661441491195421445425258216590300597772092451229946567005647365603968840667462681253640333226458506914999921487430782063346476648211697135084971489241959364261964378820058067867613709133139811925962162785739479854238884400110644115558188538717864655465222267384081656259526029166201787503354601743777447049047876303280806964794329557466726834434293673065662259949030088783485564857455935533548434400754328336885130066634641926633995560595188158393613807458010579971926526480052223105846525019376134643341629600146161322769934885635995350958044645654449361706553338039759797017398858366440341289136718918453565561477851834924009964918503278374648542941835228980326113971858913630754234674857780223092171633826667726446964680439590033818551370989585024337483538617965449894457212971024627097390741924556161100378070447101354347658319871899468218121488714779880629786626038628315777662891798107779586388710854448419203493377260824119523653812119604320699431367043426213013673003519237115706112227082710892042828488608095562522035035530437246921444575543634835003783110791156364171869873023138337784241743758790710297897307567902393744034300410596813115169251462380213684082478652918897367543989641900423844112607796834923379727684655972119500787446732050127317327048198771695416916324659862884148955875473732428721464074220260715143999933026384303877573596614838031602244595075286752658508698620311520832285853062670182308865568403341175800491004803956488275453394428617011718353799639890807003245172397463731547922082316566850848848852631790358474401735309456733837901549484158054445167060370189384389773787440466001146267989959759748276683262862451744781818566736598662819994421226660529228281759596939280498866102039726556631442341570134948044055822223324169317374352442849785638182810638072977116440593104026283806766232395734398568447078690934118852634993047865134326702693929219438532400498622618718601717519837285477683911799929925956123301730895645431863936735604426269774848141801867058366443147990900735505524080544667532270709470720157669473283118669118143426395567088957991601205920558995304137908774518937916215430388921594080188767700413300062082146511523860555659410601837239238181322404399830624161586676298089411257486736699969122536615433244133278908170120623583888974140133051652759818421248826625106720829694150790645375703694473896743228326265653569939525068498799097289147470486500800301348163526707912776189957717431945831148012095422167465548605262426145862983248483024429674152356610250978977887910028406697045131133374622040350481416850971084084849909331352869762122773213374443291316609333271129972821202741696850505875233766956579528081029018913949144793085198703608474992703624241312835727229022261790135610743637643253070682648626752443229345406060134797996938630788217207676942017040426720659071619125580414457064123731070177941816703195749448041071256089305856322551219670036808644711525112657890529150686003648094126466035292765945814472998476162020402936500824813616438101982583086485562386835695602906847226627492726530113424931235984393603825759360380537349091183100423209131843840801662566303930283179417430446205176178350778054246701384787206544763277855603562900689420386036773953724072925412608230911222965732619566027917759738948845107659869517356583818873980245045599295630018559945717422411099604285348452517753020886183525947595578888618861813312782980082341328866742620452760972547113253116955143602889760341406043338372996303037089603062379623847480864570421708619406849999492741294914290216852065048784556971972366370970925055915182159732674492868380540284838420514018245674099969166057255178052077554208921710518506954435175411826525906144759041842271420951333546918950582314158052868114858485065179081870545441332657459864449202815863216631563000616444499573549670940683445090977946670953475916925997149245788963648996397628413080590135504927785957122384778764437108461375986263282689841683348353299677634599325590643388162660749352933754920812074608687941186231780920858163323302994570097501366628245964672708615079239111870752308702884816537230204890459258155075902860182008617935723227925081710295149001496919230749728404962146414671982449808145667504301745419431900327984053680698112463104376163304451124759969551566121132297702200973927854068667122695368233104163590750070000078258743338527558983938497800645891807689925377555721343675700084600983741079950225460094669092119706098478285883656254712024272519403724212323763538589612286616109990661092546689799225346573567962311315169090280789265509490341702085501074995063838975065484134197893477980935867676880103897451125506933134825877381708134056323307100701491820357461957738301290615142031416886078630344344259536339887829776125619360568089834196112042562717263315156783203915059978454159089342236774690452008638001639740935701567442271380454094954574742319620710344881775101353534708641040974380930088984851989647655492927217467129376302148401707199224455460236554031311241339537277534752133185759155936061435992712914191417643382091554520804140509360190008283224254311828681001083731179694904127464914276332288650163419010586527184752366421234149622851069590021734408944497463778114992654494104267653224954007462857213833745413245917097125638377245830554587673528330031365532220489805165673321848764803145904553212906975901956510176447543632945306564899004953460751827025368654382504529667781020509409819237948255696567284325378612836936865021116977737564917998622306610922996027916334364749377191504037999515047009278681157555109203520883499664262932187255862981697365865261032660423087446668668891746223434446242524611612407632688318934680170280165166852487308995917908144891479716718388538890633606349156017859519395693847217962413344715774894662539461943118035177716491535628948659883570610604651988418300503294371636021305128154762552330184313499002344001217373730459624904606110740904886706085946605533127301440959037654492189359091285267931545157812243208519624103171913975953499162272707568954449076452594236023306955155119594827263381066546562124061953399829568827466126066856066919622645171774027504806880687797918078821947747914111341288241368871624130595876158874214143911598803344743219334132091203919198651492877342983416423653795398864265734597147814017697321851807389451324923449144765765938957246733081617219388664432765146705736415352511540830556330254330626647105869826550985104918510329016678456168373305308405270330876346199601725002167270588569883677543560024800045397147607652315585266728406308110273174530580280394343429115122549526945965540380114382882634293448687803514489642218819522600273787315163507113894611112610973994828345198704866417953485581445822040336917735823569035034928650003548484056523383955076510592760064692913732243760284519484969468780724055932932069193358074854145743001375766796311134961514816673435509788889065802523030834006178254761068501815102023734461470191781327629433450424079316218943703030288905543161758709728562829069242213680551857522656541885339094799483593223129145534494434097027593698673776589851698985396926109493344491199953731417972015678096682080953722148371153612574263455291317940418645969403888600412394194570093633715055343528271807290872134495791343673986360332717241182447310501467752480839267534668942523102771634371814272984455742334147251607627779450137256971214944361870365275187034429088868658317357154570473198481157441531582144987702502347422172335683949757299947630376102846080184462197698174872820151397886257111782025590921512402803241710972494002110980597161166011278952971655484648727389212830100309809906519407530532974870626141371434602639891229401538069552739184607045976116685681469111076839385118308282862462658371958794354678875000152768072586141526698518638673581202989623561251095497952356587228108962928615463345167008148037048593897184146327469354278505470282430851007235141112201617938151290276861237672900749792356046234244107285670434805789809531945113808542171426317953886022025417826125315607997834481253107628109649779021949835481185241343649555674652839113215836026770938418896558138514412341991841305615744259818265094697210836984687098428273725715757048499190193954665351670426869507668102451985217985019640894204029666980494935498686189586156414046506526485233012369913527082011168667084350139130533731278301931550059202726802002073315290480936665393679254720411832682270372957300016079215183743669900119006693131855914909925395769032270473913706308180352093422420377277604386501889940099702240719137096628636210906254478222503735631489994568108632754960865235727351973970502581334143662824339859357044804038910645215657973671884914491088698296389216026865580611654170110219680102478600154442758744713228628767561799908614188019569589270010011978678559008555134014250655088699285423003318324442505059244929942156543710569736101408046888592952233915301779596856219203260637442842294644130456185750965488555288146732300264410577209471517692888742258019812893622863225009982325906455314971655977982704119730451900443409785640630603310262728161619981036249014415921587359094544231653900184008205084015791540587466637099314806773430455609004418895640470489176258725395118015099678583155987395738290673409543333705140256821220930939712992982611342476208144181051258237478943579354271640825850225581775854375354187127515798912523117044073573352800997125603272101116463839318778835112749104121099830021910422294783958657136863002552615180323089543046349987648108334908230389277467120990129458003777616101750701389706959194916777442887285705442391756095101626476867867599442839295643133449847272570576671401986380959166369038176238159465705820311821722380091080516151191025201295769396645364593213045517942748082312148804039366851394988822920610807600073659407153744545695578182885013757726303447747597527786589499891912455207566145052952759330377400050133334240939910925743865096077135187352450823057788654403424056645212833121803233443248139067924345478148367805922900336910330004760734182919620702497618206571386069441134306106422709494642152472296813941360976677728376443876548579065585175206564267021718283540401133122570622190838533313028296560243055987315170737197248383987695300322474952634186432293016747298689945966216737915017226723697358188479814790769283104930349273994492953343397483790517317658944605945677701715770157669054904911786262988600204805665044168995730615757373985314451071211180563067612739976160042198997957773697434734543427584234847449928017135238053320717354771855250350312376522933976638884885614140299474974740619432462120984061815920494225704182468602909218765084668353572867805438425785173003932143341508683688686575644762652184847738356944573932820576611836935951244753872070135317407307634734489302320674085322889240701336563583656715187853007697433282292392922021711688922329792367313469189549571562866625891492517888937016356450812036371895040941655332958593008803506079919464680210302484073121280046300341418734855787102917731540335163638050083661597492070760847356039060100841149078002693770679223472208834785380956213084674380751889974002287128803054082369780419124470163604474846678112027132517818297492162899212044676792188813175001114737036645409775796651202101599083751163235112628362229114162749917486986336386901561105476076104903327846624240584447796986657401488687881264499708428289467931586150800971554906425631848006702497028752164817933816790024042429399469615850112290247545495342327986988669283001955354092351809191795463774508663972650360510756617454648285265598770840463123575812604882026285293321368556775393101542004433963161003547471920977504873821003572247466783579024254229623858761686633907984859475689043826385113489357909937961288766806691375221189787405338171897874036425588682843334511799389103294097941513541346099420019961337087360658152490596061218676659006105069279670803704164942519264425581312867987959199420640130649319685715511454767721604011569288017823314681373285160695634699239061535694094717455704055788446688469361930740170492966023790157283292869886730357120616554740604124360233112777439631933075295687996126973835846378356851516793551542901419821458500446363854864149081538695333846787949870649009801450621646153444275013184189090214378175189545732906681777380867980316136615339609533672469563140849683897834564943099202956384550915267782393205363087243917682612184270663966242020572606537683455192933386414360501017134698340591046778543215558168883637605926677822493665818033770219166456182314916408338626647953087342155388434939076729209969122158409522947155248605908818890553083235314041130485926729541602867260367318032249251676608214211879266107516641125634989176448934709716125252215011239451992531111411841698514021654955034722528125939695892280628793134773223838209671693906395359836088956088282422765509499272361354142697007437710586648395776378594385268968625454799355145806346435530119154583173608583809484168819776223490819480671360490500707789434763038791636961868177475451956273416198795822605946732596480892866427732581430711279002238223814368138794867162257023848891660534234989561407008767297953626341530131202065374661221952676130924677639027404989711063789963544303075105794471431755455395484121739686732582829190918282844645302699825667685087386394254763804332580582257878307913720511710843481894124037191598646856912560010235086022438469616915283458442908093152001324367866670741849382000187885618864384013707926103116842090152142251601785450732223250897923254304540431486620488825599865608948996376617456648792644432046010894754572504596357995013867366247249234104562325866359657376454798685311558182629180797144815034296103407372892476018115985449916757046224900719774397469067498631331282009717907935002209744932321286651896511320409216857167022860376925108476078178548042840968844625123775122702134165313106068492137494574029502203588608787543226938745649020849060846746034093439560674772390864253099152989659209860231577608641608908185518211173481230130129236449885856437312112733487208146266720996587453981237327885768744504961620078794518361152900553020184297438781243202305834468800386854374916275131080749458708942399106762413075313795176684879078493163050722035964356194757205984789765596106329935359761567280794843135168415743460429495634835616708817698641256339355723769232793446642535555661049114145462765723177159931851696693678501441409693985987985609891807678202962720358312566509372503066076816913967916444996507555060164875487937258671016127934196995516009202775396409787190979783814556940621361775722371659536802327585390561273940984506700964065381228282841827514277305656484637454133561603033474775526725851106335403085462773296576769984294857622697550324982395820884496595361408516923353856013299539632863247076571868455059959353346751137551576257140466448924990799990897699620387395096615139344302116342629619621228673505571886365067938268549599849038568927622337078675146279614152331153647934860737289857457868907811903581672767388485570232142232893089460331675295547669128766196472417414571324136296333026847621482969732326018590311187101453900423766662896085657091262112917359413435664697775532093159044082808135316623255302236576619469439980117264818955846798083423617827290007456401717883593624634669970471848612701464952632935102473362193529026191666539732804294331098220989722394385722972701540309497273343805037917384610095144054747516133698702232069446677921941675691922140524102813673155948564386644364841711667989458770115820674716348279628975813313393611952371133825578876960614566331397706930166029673535124141568407778461218876540835194027125155820823761699272909484853135122411251813522593936192522008807782212236869297495380401238541778360347889857680761648335653521725611734529930627087645807959262944852696971637043491613231237764670459413247486879300529636006542983719216625682139159353360777318407889302518583484462040587974391512605753026681997039948795951876662022815932139028355678814131341395882052392340865982554097017860016546227236614021692668577770996695132658948131717618329994892029984412354244199545676519369269195497257227073825563803415797101483453149876048404828386277852735038395350371864149606249366724060359976604602358465678732079886285313833829882267692292472478179727823922271056688094157798833637897876061725401089753178757487071578892070740055099953522474499882691501266686777310938728239833597729572141187209011688752112315085021088966513403211000776341616781789156345766414822216842358434547786907573867414075132986678283489686749227070281594163297233619890196215199435859873328376412969602620112942067997831983877126135350476706910787539247412760735869378131944030104946733987194713668466231581932563597898945164569599317049847694850568246227169000222987635205640976501341618251556229000856626862444022494799899989064581216801896740211253375294342377915106801144538164610842096304401745587177743481039413857978837352860972976650770201508405042632964157377939109377560935033301415628952774529664488306779508599833956663766449677743944143662578805984390498853945146836033850096260044883084577445521687333069907605175776495073009693770085855434708480418983965664075044460341911728854713606875934474345237718803283706203394971971603606328115658400551807087881755069636494660891014096112669951890226094905142012324313018386585440138130558018975193201410241122446895157561249734128304365777249015478615951592998717155137125661307229111243414601433014300341334472833115465594971841377551914064750912820744601796085595546752203200078233267551008001993034938774134574278802779153502796337683290019109235928275257233878348208199069912866210737008635628871706113623753067316205309137323170847938881076474213148758827549863233430048044902413440624797642771412514546976111705380429980576719484667683253775741759049253451005440784573665589984509612551563221163510839420060201773936319366419239600816069273450807191085658389611930212900207708434646608126457647407419344785846477686576874329104313897747624623605405484668819528994813140936791146383830008880790886385306930073468610682962607171481775278435137928940801607945728874481972214876353526667184817042276899523017463025957993503665355639477950405153158995163695690575636565668167492331706018505724198378860499859474676455562655960060899259450083576980109614672222078455432755046999345564001942706962623199534327653805771826316615642189066194187968282589680509273883970022692148465029714718968959692764773508908295875369600409871552741253808188521721352797386846526400548770184457785721455657761522591979327483920789785790679381040638682492175453731028260937902622983414842830813421317626092531933605627967479092812905040835920488237763333427275036715773832085820915767700908567370675150789599347868492476323974703086541280569158402667243550817577427812206649829323259324603763440224724486754730268725531378419000570273427873415664324321706637548014952029200409145535819842300592783048851542839693202794507614443862236519546368453417578696133875601703956812946928442883157273625358135778584102071582632367671494109383037158815076877607288811945672650342013037582421652594720831925729353842283983562591320683792282413778468963676419514503156858499324000245762895943249145207433879071831214058348548514130555280625776179133611693647089155295116262414414559789258415340918364351531577526365531571669917418384686867939654265831473412460675554038074231421345338323799785388449490467925454079142301476669966722594858890456288967276338272749342657087928302084213286389939076878096418472615065449921576967046790942539728819107276174902008601869742005545151556001778808968280406757862894465953259032256700068219665930172625741841161865236675141905908343445374352685658576150528997524168674953043101624378556834420039463110568613289733601888440596529176747126902589466692139180406319598004904157558251844257144324395807655904400064760701802938166227308548862296426180555096376099108239889606082718076516363376299105132044866787118879636336341104916519706673192037119512328063172369402898757720737714345090163585457453862805264976608130213159390017327851698007457484741228593661355927448799673511245003703344151732664339183823154650517933853139344350827171430189004122524833235046338460139313540049357037153287989651328643698865021610681523674946010368397774511048571715723773885743979521947973296608969396671009756536099221930598775338782666221799498431996177967234069867778160856921053100166087064375064256537301543293440548459424324816777282486716073252477257668164362827652552798139438663864160686861087496099049110013563688102465411511053088918236951613687020209100077713443656142063684083576706578726079869722325055489170454807541023937266743607693226096471677465836355168852570215648713918384240694933231311577653776029675734131166089797934967244934108746508669907503884237895214594922594166426192814799966105980209347501385831794378295057275222661151717739735827578798721665200895373969172422253049497979843889697888463149757559527128659905378103531197610804148403914920126113520121680975417960967447388929721300181499989114606794571111610353411598752224218165195945855985543380025164282732326726372217654389796283853164388717579726198250261047532797035506213647334711977827417365441833691107410967602028264426593574452427383664629380167019722827063510635884372433284413995784903502741764178555269011759563355708996363969898763736601454830093672431973978424465122955121709633373835284082250832637647292555300379350504285805358534293042823119116342416527793630567087225948614064460379580685288692146455618667355314652175491431621038000439012657329885327280250794556913186185945187479753085607214613660714343677898594096500190037327680391727963155368804534862824001460862835169598057002069950340428200154008765419694854809790575927955642157891290157396830046885453233923325609603215817202909891927228822143393317779218816516007205659866655977332802267543778362435962031385148911457367668943559732807802038164680296810929346823696249335563129371650951191533354630113063793651980225590502821478256708713223395454073306350241053626402516877861881404603086050114012800335182874944941365243182381833747618054979691494241745911149283944236080272173306807391623436539336473955072046319409786967225871844505578473485783904436206025116684757988116845066023761339129148172514281552818556383273419720822375075791210435313098398284711429724176116288924202302898895155272761231613732985044264727612407493145663910631701738107435291196196871881317366479339735583249587398265368545417003964649176498274470021211536583382753026338732855017761008249723256191637980015225345847221174656687220767723263289905642990792793035640477919844384595630228423292207076069239891503300930889661838242424134276714143207461425896271594179630352304313520852885571099931944001787699978056897955470766509269240616472223448317027580852304349539083595163395877819097818742186750114251802578816267851536873409352067636432445797523764972418122656066552603535136176189023200425181618280063367095798271102882987746736105001637271261196090320377653923822519319244638530829835909791920515812821485988251526364659486198212744770984465165246845805995854393900045835395915160309225551450016538172639698241231218203600830718445208077801893256850351943074130835059685758609295675479464361232642248199818062892287549465875391262236321649381911357416605114071932536025822948665508995240976824281351423698838061129306869666219347114617808455622438253211088608346812663227229755206302938807578803852271062115821432704457211471504350693859426587880070791626901268754755270243487841864886143257321941713854322256300328572212826221361640785196896412840949039197587952467058430063169830544093483260956331360935828064160660590019927876365404807795424385269521805902091089360217657033628274360681613434361776840145467279235478217824690526718769130068940299712153940863087040030903861954852636969824128581287797730264767510531202325069074373146303741871186431075957071995643859927428738585341191564660216402447862395160770919633710937071763702368803669142624189818563273138724187158065622502853064499286533250170279752389603260940152913210929882098953571087764549630974770707482247778901486911699421304067491031990114762409318094636262535662651817502910315430463582100067000312918170824231326372612737467121476085207312323773111650063768854635024683959037340218870873948019169701841156499650537281066348353021969534848665769041006256082495869994694176503304576826754223969211639206657092348761915949631133147103650091466700648450693114406778590956895156691280758842510786494878086392859976822540463149566108613504705562661011066557882313693933257275092405348063612742516254007913208816510864838252744158773510577013438941777663678877603287914627165874109683775591399707456799903573854086112898241007447773689785432737652862105001662391760418241053688994267335469022386867453009759753189316754246843006638342617479786953117304517031381108948292917661757304256244828257261627809037813524849963001168708089646264793653287287841691472231989598354399844092922384531812422499919891091584523164979954540549440547364970174964315235706040886264003122595977574775016516361888726860172992331654287215287074907199424908340659551411525245902488102243139554571447279519171432399611758568625943530234995956307907257581815830580867131881465547032986377911884368897707331010655895991828845336670650703541309835814399194201686402894393493129246567942148395417757844714999559663518933221222655626648561884794026768989917013290145859308179284689141155695662247797901386529759577403064893494906801474714876445785688267527392653982003527154850553595304594406589829028363335710306125059760938057377179928817576223657551908579053320980573760362002117757144393527437465175064427874197843526202866794007749125888753277015804313671589674508070193279322114854187714829715467552528576142681058999864955978196621096252265278615017466800333139567670039403743312617187962106279483798051966757334596550967897081918021800910862727474730005235079356546775675203900807163097902622244548252802201866638250912460271847772071139139963866577803432628765860142810196010970517647444822813681398046404813605578057775006930362880651736210472914805481585653910632983335227374940833362448371729521283333082739598022512120161769143384698699249098564145829353670143410127832429995059484420176449824919658031806767738816246161801453607432508431661467807181941263771351064157358393533667476953293145811050503142653251768520237927708876871462877246537249183725462221701673229338198872297104038977920193678723944074423082721649159943803073587544175011566026213867494043994826711474908059110170634326055389352635430007531666969153767974767735915132590232821745292057545990348044615715264234869326530420263142604411980430021785133937132828811522644985002592234995979586440698439100420056260961452624446174926665745287278499707162469080806620513042804065083850927241016924402950482023406784800078128281272570473211189456375875491054458615776748771601382445852111452040827900345328259826999446477360756073835439997127997270477039413845234926658798734265185878133102105038861124605259049277207905725943272534084421377970158258420066898449989618531872058656238684710171436189948867667444274390102076120536242358708864916071740564597475769537107617200612636474838933604957963975552569660814787401750677824775087002392454753797298144370405063002345185206966832979886467914738810324404718462164863474280629887869658713513083635261026888557568836188188006775004678189825822392724799954771776831384836276954678911023169994119550461120748293671220985170601420084463918259582405258470197739830113294681435489351642835520200072860065165523652066818023231101606411166632637202227156591208576485665150973620030454526772432010525738194949222358232657459001221802657885191266516160748478846633362492386743659064015853447910670436255427317845623606789998353034461149669352933700588373260873858566150853638573400874333056760749332787792943663793142609397579827701249352007461358660734445604667692985237784504890492379264715796741711746422349665188142772310627531922331825250581007812642364474521649091063141712182128265448144459751164354903939239125397485417317972269348427223088538198920674667531309108789262344591742366171230010631918848088015157814811126028221126992282170047182347944004549451668268030330594647055589800282980746318541947193180293490001164425132328856716437438483245473095247989546523982302088109783345958252296625084931466039253427852750123329670067620450766197268977162321215435505549121284068668405108958763699086043431186167130265702335016983561679921268130979713369236302662232087353514019884961795504097102366085539587941418339983263159721437819531746903223697065729954850472731540372378138288805583000240386867529658257687386579190263723586520413317836726527842226482878064544887585626883618478780068782272306329752566262770007766246520303710815685324272187985557962286422765926641461737092601930385927927588927597458177949161862379818225271729560037712483330197131769229951447820895282379621013002538140705615013368979517080959572696005907610206109891879291445887153792223686388208047390089222523873505082318313780969034625206029323603298704199395851162920217569360804100263815204197459932065437373956096291934917807657548428765639376087450903615602859827994857951465706153622375217837943029623304186547632629404713824923476898427764538101621123933831483234075353217847402209406149036841182183845033191054005970233846767594161846002328769890767455919948512331080974069883700769152565349141458399431259643366625497630672029003169497498195234206856518106457858618613055017224916933912848343175059989301970855809186353017640844188297048473760786704705095472720432679638666545453362221478321210219213117490135402246388487518238180964060349557321971665101143060727694249055096669624760476614947735730348279479628595820348139415566482552545058201875577222625948304471119866830306890145670397805214955729344922489439366482414675814694683407142587802177281038753921094561972813504353629224802707067234756478590316584752091478907624860893833167015694778048071845840798204307115159832737695567517618665349892608180771184528939341746836296843015471885234180613163780242692344501894394519429846839033060105772497824096091278309112461358555482255251243953656796331090422031971011841587194090133194313851271341034588432763257870925245985415577628817188501893289596428436275898683302249644796417888295789352169722018762767537356724913679666222637275493741937391572872504674091623089779780008133938319675530207176112319207834942650099856676931301437785730971033584849860033305247671365674450996575281858291646062344719891996966191498598183590570874181924127026000962204803659154313689691582262877497685085368754979662465362020459714807979191632448998193264684639906398867710582074847764677694580571191908568585445597712658297772852144091779643762361440601902409520789732461727731207208597739203446727344676863269585742278715891635384945167027075295086282128804542744032064961649303416589414529535522748594097132095739979168106023834234473587353495818423989913674242111244321870706449719021594786981014986336507782755518736305443114095061725361464337519712623888817925376355712984743643609817264009787389823133493733136390561403332893604736967154406089947817298395172273868107843050146580361492478717899389382243542100868821640839986856554344553311734200271761404375307774109900454306474689068801503054389457236077320826748630471152898541819965850783672465051111271230809784643208678441903252252653280699710590026289426738061005410524289709674523719999233232909927872629332474205161442700106454244107443462391075890317575391125884186169626594430251809850577659283946422124142486687435839809892927375143981065898094594838011311590262854025006897179251403726736805961376934120974566588375946495675758700536300992146535056851543818043538303704109220942220340576546267475281432709996729426624234524205392712111054201146876010718765222961500877329877665405837857054240783535184733900263675215482712509414451937657232219553587813020505496919243792960710790285353726555250315821850268726157742453709129968068204996373909861216768040933661129878006250808825967243524784077097268163472173927573547018507634919497343743762152149754073272867578555835671249656558699718955804626056809186549711962764045654354622164532584372578544395702752475929366713362879748274009220269119210427881280393005957978897582215264263943485581168185723558554185585349613436554814753197987974340887402663330682709112560416472757372246475462386238405712068154398176091570402484032203548384585062372347276022342907680404889451921100771464797240028502475371343830505349565452103363649572999045738021570496562759930876403290606120746773001116703851607173936299024939847722821866776730305604894399655137926159049589729280260786794564878177976201912834842488060972099474216373346900178544796753184248739386433265906529738309278850182397395766217477439440896817194368436000038929094555030888074190781103431621472301505960407390553355497890385575035315607171753387189871028400885882048125475554464224877652319930655717490579176130754685551856339604619859162304768420273022793058863561622436397642139408440681247072755275121825289932452553922650741636185324138952960062976476791644992300874750502342124084292346466935239727186555329337881012338850785760472849648177739724151251498114492064997539806274726668827673489078559893859596104695724307570295256363056606215668009757133967042619406316373553995907189911224326341543778669126440345611726085823224637515580505257824713247090533128928996243686015957034962106736744880135173602048087455990124988718627261449203418288693056549760834883647054283756488743878774541815180804819849278590044745535077575729540798818210786978338411404974674318033304112968135475381075157635139407461633773001606837422994409817723559452833054859246995489589437169753268894749793511679434315595349083579662222127749276677982837799341423623572030986384985176606387394308236907373450904083215509299239149722476319222276807030981597730165324052546878591635565295380103943981247421426046550703157414305747606660853044108632736467238219375979212305244427381581237736638827365896243783879382533225367540662317971001363588110810226778116182256008335726136373533709704573654171592855567587782879582130992425898832107575915108559791602422252835793836301249832462161016547765791741147207363178781277964488256643736182098651654316594294333478572570615245841944964654846941839844529151248216517263895914470479457161937633655095916521597184094567438379833167855388795298127290051537047060610546359285479541079878407725010555145834843014440592135231310902141895028916142073090561192891425504128666107295214467632867268458042945750665277338598025216197847388732174633728763415752175066347327421509275126739004341188541185257806125855813717292100357382531588323808662865963314017454344986049867657073873480972564190324747508846422161915408114395400199188494722649912535615501165258097780988902645628636978228020382847957547281521934263235953608935186680185074684274546361596411865450631912227236059762298887027373846073257425498104046143882167683665616822098453227253158743874938732729709621765588378421721583348284155362522463222116347832697327557026761788654548968458470626976119893407980923147444095909486008060358986527292642600579266653848101498013375018355121184069846775755139596007923419637704261133301809956847728817139185621055770121925654976418457219882053925944416925018800492084903408215160886641661208094414161506447769595868268273596325486680174410768556869079258229313256031414425530056896086813431075237289597105646173315960742932003654256342049864600324149777254424824828194529776782930937982669705162057652242061824038705750527320585526342228751280288099968707947243093365007588309699989843258072199980430748180427190952184034812865637262861522767470077304899699849156239800620003654862355875440788774811145541153054007216937194850331294585880985235741894888400927026633876940986310728675749389064189999574086732894354041592273505538786401598153395117794381860184449931178326745019117750174220210027085568893952824509733695251997266272563410751518117149742263798480916595144327401363145304235784901979959585352634667524507486143102191818892775950135684526409690815986018020470444615252569673193161068021441217196023406129605200120660545340516993963409676425620952477996259432043974675194150827689610614813057977310743092639970729997447446584364285119702183665738816788364301339187126907292328635468631835066709339601900468164875345933259498235903927251479242756645267716883297032156506283766833562702772541168176027233972674423658873827541480433605588342105660471404318846929558913982483111986029134629578114558718693214121595973818712169986164751303079924413510472540675910832075780898526697083205290406001381101371718253676171887531645860107934069959949120874484378229113573841732003292952349808090610934688802135858154862236156399317168476685135310192552937866990016183168587421157013172174520326462630002865630900466671824233871171275613074902364807311016944352848083664003747324755057549177016051430408878678247608672088931160529871893106112761347421754242954441389697452887949308367437475457115751654987375004563526834877357168343991933724571285525692547580716128248965080647095867247365632034958993059230024884457770564981668997470530360825972777222630868969246413986050459704218983431407190071321968315419400532225938581830763923377768251200508797419615343789630264817232626140515649671409235237771746203246706236946951536414109655408792684828738459642455222677787761106102503055570380360679084830855094037211931719581187736229511333205585486733102099812796539544787265550531852783596078078894068636386261009644526117691033201853338520223314671888075736447594131435267317507632486517450699939148366081606068323788188648232408290909313156155970381394516092851903420444733075235612432392375737061959860033884940780064621594430063378963028117897266028556808561644763331323434213612481600193328110151162989459168286658615989641690696643726668640868881656787525339299258571209476192503357557563658034413907914378953654340393547736036341552701785602266167637950365652208463264887574459297515418969367709942729372933194221190609273765798976025038742327896767267245587726373746993198781409525032379826305769208199902196258192910135799969031416106549762543426279962454036662559386527631134502276095397856489398958344986480354862087861736594420451775386940451633182207608414932774983622321336723432122037851879614380815649883047499802769671721083173865342420869479950492856998457489379780959521206369550998767910201272127185848059033545185394165887602699655705172791945624060584775620756529740568999584778816213919901816575397200593869259063307802991233774676130027839626512827991770825531655842858835731006709444237562149567475384892878034777779868784148522237751614583977746965676317464206921748621699319697394423714029747301018529835426813477797917903805855363414600044653264153395716338512663486652616511275058352748586613599434099861649770597673435213588796513099159518583102850066462315552143032793419299613927556013271842931455005905649098561388598483649694320199440015977744433281263111468646411671547008728262430865382084758201772082008684062716620852292475679340205577354964684144069931333156448118598940425915178534025025429213359879218934691711777820486839406271442756451364778385190934542874482658253411268528979339921015535172203142645176916655482098890137502626302608297569450281406154434603059981364522616071141522184073695424296476599771249116689101667546616696498516731400619688559219208055488176342423522186442865567374054543387723295130388767913716018162158570148130070893778287479840588266344569491088992325995982895159453032387203474632102803580145087188708026709465323354763218962517120271392869748216472324074269011923561960700597406493893405755591502339123753149266680553020612734585032260792915293594926364727859071653487612038638460869295475278394887699359017682309929260940640183637407930912964770703494220509015383411181171046570369056288911193434446671698337626249231269036821001333300274179559338843267081093740698369448992596834739981273241115941730854693409568824399594159325810887384347597246077117503147784131248302589762983350279455777582657729812059630591361141210561262052212638479066697691722943628073874676363865897978126727459036421807670045146881655738305050934463122334160912983788064251013640166694985107444447470493444471510224668225229187776311211427553945994613125266697856787882671277514061121116196555827696856083275150754605377415355834213884804330854063723641053713820194718394079660478074786709796795001988384504102918089935155152914909327592451512723358318949398824570724594147191624283137479099009266702493460477978995950317353855136085751895360130878360110563424649138316410788603266640054578522420857021062101032063818972736636405103284649307371715448902196452430838894339645909142952663487835952110382348618476588991427118702715860218248944745616087028269805519072121311919131036058860417410688176664084565651874765577731062716108867974628043917029961725139843766563815855070042157357309083910095456427861521867477755280546255770115975889104221888931491397516631947690810483470440183117582403989465377088836406314848608526707010957015039671528278288971695390435289010943840952528924705787580367001799317552712201843427827726228769657450690587762785515260986434345223685092899924540650794622210363962886957602208157628744781386769244943387047002256146217794438847513502063543642021829573209834285493293606060096058451269536087317668791310704825291093955318528975613930370779046035439683683751494655097872594054920071188283248319344702421330624318039580002747890389785055591657451717657690876371129676720590334831939036137683224728030556734220558956661070461437203730841740763414919423022917856142961405340652577651414405524607206856987805499092953216656435216031632655277161287898111500425368768073884863039284156585506110699811586537876002761589587521616236991931649692551696462572735903417875034231643182024835329208754585891433693517593065446801621876792963066893337209183165615273150303619761023049874843956125499447851556479004100603386650217653576412950443996189610551829274560097463545522897716583480699316531860960954060556439710315023317323683680548007022617815951734934745670409269462359870429103016352179642329133693858169590944344158862188638410814403485928187246409046477081870769956537304312365555575253910332652245931692546270705959798424916112742728893965286033147741217069314910848687988489907244228363828093631668636467979126581053706363632591933743016676863363603098811982958134840398784614403761060806593902870702487414483196120828861794270302255402254088374236119783440059653871320311763332027735125207250058014379218146841977318360913143108617440668053147633122548362694091660646915671404027621344972405319238385830611027115097020721087560281318939573234812156459759674204202737742172459397139297499125193162131680080673718464840203720924488455551815983104319505905884773425439858423805290924255720355257018604565488371201356279840568775059867513859873210415342359315266622216934260916975125846064165800080313693839450883511431945074512361023794925603219214460015533473958961935101928775928655601708303477484215689368923681348084840108619426360671878017557610655778944855424260817345942189496596839475652285636009749383616083226523371944828905818766326852399299122744976963870843000473874105420281779643508107349611970717678979571497302538449865650993690047929610713292437763612437869736882289273142062564705034145630626794693271600753658534814470419895790155736318315573938077848287343601822172214746577498508300498599897709201169156989520149967080210800434913715091153959583757342217778443939055886896619359618857144141288584839249155001931766515741500577164287670304255764665534239177852193357702574944573379904616814890477840616492286672503814918655246315758827567189725804777481457449211984282348217694281530821039542847342648855619532818542348170002515501705267893854417829599956692092075320526805770602920221429677658493522471949335427315579854060092421239491399680822954945959389584126978853144145915251335105035469421452790271679930466824862176522053948414377608344818110990218536590491612807781297433363883624445745109426604734585342156351512555581424140017095098461515188416653174778108416513131497428406261840365619987050094041819568395657253524028407095905995791171664176357799679610007365899065705541033853918100282258109185312375456332187881435304328527095625295359500039895351608737398042536370481480455913006396385948499411620517531750993441114191944801208239652310651410768112727087787701876960638053005361279996757282807918442461777357114652568045549369037965153634450217817362953783578775313052123896769773204588925925301947181679232466036220694482584870593880927681013825685784332453232816542228343422278647121921483558960545995212358387373841832977333555729986515808234732784487642539018060773899734141391121388900711029584843926919219579575977113503623157294728458793870282858225588603117112862908999378193616685158432875040193765958313380039210524188805920448622585826067593313783061948688707851000767674754498356448951920475192997645168976383936853503538531624708864642461295487047730988682568572336726591480649731088603807535165589350407128007632615212691496761798667260140335213803515420723877968522899271168256796912118938620070646509080131716099577819693966938945865210208724269329893610895919807589896456312192343237845504691437311253397425231166511904604410825169842509461230193325790139651236803293080581854664882447020351485087957285856265006038361532627609031817559781051175451404909549668140221870281130982530884829849784111992458718231092492566054742807157740288353889781318400613174618329017914418226949664566131544478736825552601183627078952603648032180276358707415334736342944299909669006829557573629728404979806569630660737626302551989142345777048283759157569770271006030366136746740028828727299874079673446687484902813439959120041013776877744656108131551069157518225303991081771005491666858313605389906034973024095824611189289084038162624127791994542937003073461245247079989645363229223726656459266956019775698531856836612822724791800345163648715046114513358107073192394137112677856586631189176805647730469098375878741433792911108306614328486010230052862147669093557410993978935406287666450156565302920049065175958165413165500162641337806536616972946216410784186387462705431174156503133570208729746251477868281494853469023458601712944938204114673346090931120276818085696534879366872160738070284108802969434660046701631996081036828253507910226258443189999008382339320994643837265577290828222283728001328221099710789064396927437594366777167513720355621001967864639231039125285181505890781377899898970991575095280549252640132005962009196703236861832671480993963662812247111451877530196838698390807934326286160026485154800719396225175596764970093816165795237120421706756988581045396456754348842647737253491945175910186516669344629863028434952375995434814092610912782685082791628556300564981348617134087199734053122319479941398764273205577094126421750843719321864108546752905784547198408948277289974345056040647234072173222627547351070560377405461636022887374833491358212532250235749246347036797382061452002402793452131659668434228353775626688665058375732453756058792008547356556437149326081687114195003627093579850391437906181869188164948872798473140972387289775241050622013880461701130516735696705525901220569789815443036685679794932696141353838157533278236269547994645479485714552462832726658316154466365331104950985198093996204544219242243645783535954551612832004352721628067475032716794514093573751463563129945290237053100289784876615676508856500666736637267615109598262939307985702883907286647887219338210275219010093164556028078081487259555512652067666627366142912251845037073063898492924395925344401134082281695879344508676454188223060541367289234751048910757485928636176704619371915389826920779358250740825983219690708583619971228903755034168789497404182180644384712302801947990846981530241924204171010922573261775592393050007106851125750858951333770932744300318753164741898316526119345018189518010071769582194554760279399738820950935250098401773424551297905404896166325944900005861939470200816429131018454826340436597027700457133294532929449274633914973335795441621651116268749599229136482206895755056911960541314135333197625733518657723144049556413517962050759217640062123909212716631641755127970186451162030998672268344097240679253592632732650319123837146956705187085957454761029800688075907162613491395177497792685317854921318528206370911617737979854528826008539207249858977482672320090988721025378558926672463829298971242037845858749107235898227409690477010476948761361208426346887059170956780071377189625855003805955203634587680598560234997050041887698684471764217499240115148518832322285960577443360915130627096430658019926254485930510693396478628917980072518113847386757283967654349217150209843841750424680378493690463285790883020955876417039167938070019962830017046686266461879674751432518313085344831556051858678723654180931432035692341517202746674869967566379798169973534269392434674567142662859788591920036795549576727912545698814524639824213018565788282754472727092693057205901331732936399124693520999935470029732955677103301932849765767273613391829735462035918654869473819322828027618708780551615666019439930920520207986181154556200740713990556236643735057822612129316149137944750158457600110810095248754741328663525763008251437995354453195253908377723107638550626742630429047842518920646726961596453793516387455108895567304951613369746906454010186001601091535785942748970456277656275691838422200562585932531629597313890731535853831434392820989705988292738366408294351002895616630281567283474598297599641896839793943795730692074969006942995462904506619188382648026985733400511376826029782241008571248308774131126732642238690250945613205847252275871597909108813505149517112444592857386588616130787330501843685868376096586318961282150789793729066968897911468749990984483130529362124460866013899757278969215127386617893470989739648207130049925039562597651209854340868835894415270535223343259972319640024129508242539150569981561993617239583063208410149751620207302400188510426706329779300028726268315416314115740503817150214957440308740258050171893424912773844792508083028593380351879400153790461241671484823356650680193868337033550080054633911346168405377561989989669096722417248595383530070617527305661759668284516549843514751566158981522146339555304423972603551714883491107041549861255727088228664478317852979022483561494397503436550884442067528050569244601465523711602440899298421799433407746308169440690014288698225824820676523705400906532981355964413394755126568622816265904983592448297221885440847989313459840146655755259079283413538074286412125043898737146769512075227284322437241305533976801161356909913296892902502822731442860262042992466071193137110913003257014946142104462807510721658618745120239274260029559306743376020085266931243881933423298843006891308381688995891646324748218049164040444909129815548484554028756896084952488855362879983543273572375753715292516558746802627299141849996859840571386648395189698469386303824164936109082911659175654494696042627436454672311841890165445689168304373707275652679973338301537293870505106548904375292948472651649368608523094804698791236288405693441854261920347304356124605290897373181752233758745781537192789598009741395709429501478149557155101075270515865156069290284657963750278132782639018488055004833859761138080927958005709940166375736506454467241063343470538493209197241796002695101412048780742593211822010199710166493980709800077636636020199254246762169450888899877821033666695844340510358233913959910902355542941743943293265770224107879071983889181193982942265855260142628259923224779242561909135653555310222706655287946724003008448794267903064568616064735222483876756251705157062952981055521822536871305279566298781576020972662668470079819954806783763296202994419585883748006262939587679203718729364290769062070774737554412698027270773888771905498869796574004884021712117406081296356495297655857990480030787988519003889166448860239647315327596192733278561727982480535366830530939921471542396765375400719063019785060620027960552264566588615637652290667809590158001920207400571114175522406383491215169495425176263300195738619581474865745646285087738320576956320801433830107877429895117671422379704126318584038308955575324957212295328014279847178008214261411710093129812423336157296283003746772647508721199497502467805967381945723218785802125826590305551436476638331242832715952016009463069988032012443347849463093229018881858876524336005265431582090879143763200684653215460870681637057077821469589255225077097309655642299498609795689961614654933243917211432135069015344951008362092682869609126816700191893917035873611579944651223455333865539200697441313722513597023138647373920551775567949817562420259356488960271554753415808652283827551170674775498668908796886240446265330260847462545947931687591452597653527319518119428260641411346792973684385395233662226525372159163110217859098238104265771705668985319118661544041976121289050241508937740540503647698627633757548991732997786263311261045928382433738076296653729380018586956989902075734991059594443733312455816402925931451075491939447002296993434171778229412553075028655788280569328479744294636084540971614346557508614157606377425847902581759801914918536683730999832777480388665856053407191981115751402678653853698420102417832380542347699629380529863504204739656758930533819359773298715823514255212966791515196979420366510192607438423385079875795445453796075040598071094497811926990907767342800605836826825710493781358779422134423306143535873455514545640347388628571115419314630566156778184328447757784263122710240749828179483489413658937278661459168241254044125333197836563312969129939126826224042793277453489972641671566412027496047574764515365367301763045985636780155583154320947051721224850666724576505880085560756034179405847530117609451968386038040085597974376024822462470224799905745038762137537986760177583403741093016534608813188913272333801306238535814987279939074624551722463485075756608364133843420477163360758426321221422408200432834407877226908440166876322919949915080004193311092076962686158562269490299215107119318206371651456954457382627352593380829874578945251375075378116424654331216566570446388326800610630510272490213514028590396612422757404521927495330370939008028851748421550511513651957223547315545462531508084787379214911124295479201145458283276554598825208346090225462210999884480976886782744562085215934658235161226605240242474270223656946280336765825798818784622893386974742542034419738713661561396595744060378265238079158408188335704434167567808216730325260322327276056766396986563298074401892718614792105579212934451152735737019638855406471770134237552457927107538840247827956177968100344480433793322797074679799499453449836022326172937529945873323458213151078264777284458798798406541719057206278886704549611270540636461203826373072148074450643325760938633766617688744338614946184580805137371790748318242059251790449404937475021568795461822971318805923818828825709924839628390428311897718319482080337887222854737419448868865953857495067115984306437909721113559668892300490720475526642905477185863820625761663089622224335881052912928600603132812912949849525256439898556153881751181244922885003441212596913489135654824056322176164625993913650194757375190170480429653669795530944513848862155992483368116572718711087781123247579468758338993620414617326777019338790960476344698498167125927100276814124134310552243324236887571061070690134479760623191297873680721036780757934051328734656805273309724572420998839734469984640547387157376241318977861265909366476005222328943205704764202530024458464675797679937808837730130276127480199558815713697396852105334100924888315473321474799367192343734372914920258177303559233910557501531788780219266262524626913303313432140862787674178884682617627500515759048974964358083182214693160816106276137279227454217941062620286708618489474972145130029974441105212478317209151159901973310091706240595118721222517597887518638829176901581432131474777919834464940546989837099567853724592882829460661117831948421484578167930938386301191258237728730253101146287344056360761186818280620829681808174537674114269304642992521945459154549081267483549354401612658398611546068402088308921194313722832843234893057380602675193445372181138486861242677933330327019387275715020841354878108206389461083469426322827708196844142976177998620231961414236680908138603255512780395281480882683383415612385503767250386615336358708358714597703679789294904706042159477228037648039092677660742965090345234681756278237658552669039869871567031062572979010461626721307189006855585559648491535626092534663097126385828900466356930346753122873067820429201821765420837148035966020971699805736967342934252740286644313656665615368878479499510234078011836170166533620043592560327168457624925639727831941838583856936161676610677434966347851876780816777786937515996953866344411713836424279570529968247544339123270012790665855773953405680936378737325950556717957852895723235444742602756610688915025232058396354768272396211484510365400317698720148386394282859424505949904128063404239689962465331030056332844010285542867684376550887639770477740431775535666584556033556371611555033683789090232590150127614800794649858502535714596076794655760763435107055592807824390806961493711869557136088101111532250869748435267113356999545168989602074959295980565443246392058695769181116566411610507153619149542262657288694040760814931437637690410900612011326445879526269881801865070466518791133956480490271998112725193907480036970971223900097427476936290649391663237174662074857269175387548382195372958841620994071095579573460126871128278787928971835714925693797044039150008356461965449342676220138010212962128969401302959073470733651602155434819131362478265287862472693785002138344790177953398320820764817709664790672865962038260788380968999494590993930391071926284035964177920418294600191571683631892399147982594800193153176280773326888246433135160790898622368644095927053304650186085064278215137788447954841715853585525627504719240947018599113221191128976933535041982937209214072132286860136233282740670280241730268349137365676278533865303592064751714721081057868402926601027026917149239781963268048736200327394515465855452377420824672120614435217361229470142037331123143781980708341908167113796397546791493081749878634355577295685096370307028144236787752808462897612974038208278728920928813728761290434397923878334306243427629573360965509106028054934857331920943470402158678549914516412139202802248745373518285272527124075671101708183056386971769703573046167112499128552871801587126936122106790748815538117695657037382312906906371467223113603275236331417377864502077319207628311648875548426956590441900845458177309740596986629929917923543065264927127826496137114022058998272695578895739885224331995077072058612204140858676552570495980315179079839405237307029797433852644549128342046253878277984021059484124734615035769750069614333013082077429744810890220960217049038821104312609812673292389727329786489420362785968991032243555364133379079439374407330104773706178747145412447590020327681978615163190827605058443467133885639898778145382548755036936152460218508111932546623956302768397046989132263151561089411269355826241854756782272196266747406726718800050684905379456940924177834611883254168613284984370066391450557268594486971245290596375628848085923949192398894034968015239424019192295619203067853567121099448578006877291406642659666428469031933290211475115746190298224484122398060340455403443647046075656240348201733215881179478520604493727732343076469058057485123205173298898990684824876878960283685597984131708178644512988599057499562452574073957221110843981148226648260195811026379489175015091437082165367663968385798716224609900814417276962062381428364289305640555774374436965970948216281765187047192788381765301415877773719031384461207788716399749866458121257207867284350813193130848629269597211516162397452400527433086762650433677106613734764075573207747240729872937725298084173207765125067789890162194172056547125848656655518488566716721117704393982298464227215344317851369542564680208354043488289513271484137875665373803626956729389912098968748421668213774762271800162183523596542209809084508437212384062982381347569195718335436718173431838992451272058518121411440439561702937232547101886986892598765123175924585131999001722525215985495093846746092256308439133762194276359987676650839020186879879702758765030545517186360344708236144362550417062536407206464707923424493407354606285838166106859756378848008037260699007272492064234043826162825855959710029888187853821378458879362335731617430185030472622328079122644142717059364826531059284909807608952088115702208488039992990508742087042628352116009044733344417997744368514112160485600720806693408449682829110821847648249910023061905283345518108714097323021621139706646604990024569003127398163776228956757300432958997519401586921546888613900153003186666216931614126744161895792043159263808771691028098826262486572622433506841836030044600524562636008409080142803375779477337441661681378100247532828175099715311825825975131607760104963203482591722404665434973592664846692260835680425165912406080759261097072660111326414273866319437472045253091188089226148759682457708816257269244565061100792624106997634158054971543616276775226455289326125804706809152012214318981270498466467459953863419133686085877586800759347575668183457302434857770782335563327357726408070623912531702056328647497148066500478500385491866074095289759062073738888241437638456375672468049182196933633460548271912277973764877415285825442651325347139919164144702314167615118785778200590220594255137646966286511008608678174957875322802950161484449913411092847124925480129588215530925821730341536604249341332400927213339229616216203065485432071772322558505750704275806916062680296948198693036576801366004320378463389641094153520883381437611074254334632241147176190494865553398672345552622249087947631119193093039996831410725360047919460092906839885691271997234173075977298086784841029164134662697740585097254061153900239624299969222506398277657355070793545920367950448865390506129729650227549127152163824066973759984058029858460082312766776411479857353341393436864483546014212489361069178227839500991716380218796149743844641873766469959655798530612245223861743896781791100020096820567062556497626879543605891109171528838145245363465800164901684841784455912516927499260569443200046240559760407869703913321274258653218257116958526196088559487110763122832239890407668071787150858882994814670663365203548403659300049122757267161039507827991583052586877556228809898816787780805791251618966426762258517445489111113053654743487262503680089326945443779422804234444376086114077886092924235629542878938039707473948552144284554119065277568057788607855215840040128395307420657247433183116671528265322666014820152426143636504165624642548464580036247608699647166345748614592512889082676092938588534149420102247882574618227037987387926309203264166642453769290063649594668346879990806934097923851356479901533685879012308748449408947304524189384116029972896045866357931217741451336813145686748998993877675937242490688099981296473317217218671346642167600847147638702088668157411859690839920212696350576293010663531040134661485123920557566845220543162622188017085739831179415059104522783921109729068586938439461166666819345338951667929337209108738297724448631787540183142051245375174453886174366412118306175131957696734989548720500851743689242153140551660517440266323226869137915116022381677152144833638826577805877483182311544181073718818863049720933130874610873315697665023357844987207558757848475400130408546111050635057875824626761412729300913014378432528136806749378928447065124122558709106384564712733563503906683806609177200773768817584498260448881765018649111779638089560024501088630971686356983864589241108237370881718324405639302848404535007682505702459517996100702178955443724671971911855327051905007607012394048105341059839125312925884451859303159433046466357313673513538663039122455880829445606023946716442540649148383309029890114900533772179534886218229792769335947237178402107987142598869179153933287123638759450401486433478662434926544586930903802062368644646894354517326536135712773107534149416813195285243585148589666184300733226321492769929558054630900610466391916811924167219726312966993059291790789204965590108746450501361556432748092843523790995469649879781957389776213293995563356432643235392578898624081574450038904657915414964643474056467011260521631179262983431001549009811712588464383064961188470148062275896163152598356888989406313474829650650760455426007447450405257046007696725270248033089697430145477725613489257794241196482746799523928003188398126909788426129159001430664309125812524937682698861964732789404915948016476067581549012967107389332175649726568800515347189791825830778184602489943439773473793421934269741795943620283244825235195022176077825762206566629459677308756356820068189290969117644292021584842740084913078642646769624872119725536191441217374345006203540822634933580912667259979406563306885731051604216334969834194947717831391825701668148813849991149825511853706939022295078521675253388802991033152183026094725895377161390262139464171549220845955636348282279168558087472083912932260036773622483924584364698896723302876141093343295627650242833932941739507153864630139090958090457684703206506133890716049946792427418893138327216740251336785627019792293952339108120277243284061214273329689876372306903249520406535570861467623521439570593002540021902005123382632553556062570649233178379601340574790473517088090051879012383070935494449402375567156261770900516235381740020146960356321864336932765937740988673911813734298574785180581530325432485864793653877928134655981806665536466994716177573851442311458330367262143031219042388777277222363881391833513121738232189944157447834899523225664394013658219423173146462892193635905115574001844258736042521553437836012687333420068642608497609269726573121888107170719428909949231606459950753778317993890055909121471202188777335645448017379026951484526655242514766319302908932069938826430331170833555968714057435603395306938425258208856501864114041392184756733939664003777597990619450186365193057821958210794185248285689047412501135722065168869652907574885999466337530389921965006067887195389194750743218915835812069948963364973999635133356221397439464725694554200111803247565221478581258765180611177693447726425742785619834513179687020434801972912900297062061665314683385077937363583210331032757431588164657246398243927226969915684296288961562790480662534086435291596798913674981358586165521696610543172443153361897804977753198103681893806152980197984846055757159934930405039325196165579556466986629634735666326845453861663859250863368078182323693106959383304399656133748748578488584766073921121848931349919748729100999631941806302348460085576849799385721798285136472739092317245481231511146913422273292957273109026040615095748791490232109088668233782785167565872156888351211726670071470501674584805798527906301024735473089417120641457950218476131840112486012758155252615301757584982296452249496691301019713454830696686564625288979606742230159839259924385542986486857604815034314697746547661109670099558474076575086394016803321745164214347608716384717188770760105475324759393374344356067924392290585395815997647766799400130538670903868634936559694775747977801602937046127645837376417701468845454450538816887188948976683623249979598288633966740095484566009073804147359479155666084290189225896414653340934445480618647688679821218577625331473379093398289429921938507994525575602104787787845131006630203278341427494850079205424078810640517147300666817095597921911846609958953590448748294354135842493706091283029407936769679395821767170087931760113339292001756980722641896498509116488075171189199865643252921759209403021688375991639389226626868131948168594833426971299255401025507920711047067920295541719260684264750484972813088780435181351504554794571744597730404385031254147837914899151337429201113190096200382266012987163961797001709614302759188786306748503864450058922403064106988696239700482035644905941926662109902229242005599420815336079948892246530737601246219141542621794285704982411608900024816108141451132461111830880311429787400346320845010578012358762567410882662112913521968914909825143116470250362351388492792771448312338792742730631600971704123570139585734587083702077854648169475192087578105735145574616155566170577383598416866951953482332428630552890430426922234958578573191921979348910217983844965964489131668578315069085851057187499332593597496477756800869244937296355036779010576771612110358771047672869654328680625246014146248358340297605178770194056613014784722790619935325249569511501926346005302744097379465433699700975409637400832115274140602987063123924978028488436705388122473086933742666356956786675416120302555020540207068689362616082450904669650092302125789964557347157562259361837057559445519351424992081642068594820610831078407492319331557070967820700669730480631199871147909979194150145454315136745893092471741717102837101024727648375417914382618765612190873860118598739386073229138519576630812616787042005061154729920137177226784194584315077091113236846808695234821914400804406672704171011749984354640819630977661950588379828878788636870480353958566599880665545078017690865675743983412278209589439876303984385573150924081904660976553549982471158255278940721462022014069143208685485385560685279314847068058993428268070968980778912679281581589063912866624746228405630853466832688822236704555974247522580193124880963886539027640969221461008980764239313886618195758148005151129270406745157210121871213911233439503769006801253207557891551325031112315654215981634494717275036606211377921261616919568697291593979818314453275814114755603012065228947914099302897548683334188190491416866095057361094134062771700432636440860647933072509924340772697259172963594637330750223902854329897909876964482511968164434732410381420439426844193710855948774788711820585966081315256563204081015004294969083293402757963616133283077801662570921265524991697991611040092399224844644444892392673440810936637856006555677271112601490818551072153523062746364972477764854848454007036131778110445943314037512778682700148609239704242373194244798191589695575100510943258470751195007090347561769115353501280585261149619070568144330930725220785841516985533936989655527984493230227296499635020092059415291764399959539105653165608480317171748860410307084365928136401763251010477784683380296774644433573130678783459752951805928933301311160949808192926101220846594971472619936369816851099357206223691757584816472139827741004986723233180428975350801439114198461237384459994851402372983898943293343231256265231907300893779156112243204073870742068929431885866481110118918395121275810944154747739525094479224019203166217353357337017903107107041353472975034751329807750207770561346311902248314298643420773783693129377757576878305903181101149993391810627335538019420516422105448087641044220125581152925015433802227954577511763854735430630088560708295821070044195996922797195067215052543696739646529266744884599251622011344372641850288944807277153868809952248916695170979758865462657125627542482237199977999889487487421968746168054262085134476608386650580805512327662851424682128227228724209565881617196660864613750759501848717727187591444301015897434545723358596980820769781513075351944979230447547439681184681265831543213353478254443325734336582818895050309070315344854105649548555437546612054146455544737856813467069372347026168540494025571531290120875219848389496703389512959864818793904085909221372287565345248449777656060506162941768316672647772020964037485743240576192133272377606641776584328658476974749568974645991797291310680651494190372872220060690005521953967368944374389706331902326438654815868899808714003486007346400910889379862789791417980589902544944540416416062626403782518459173458771284276752388160309742772159272538363587027392431630716267854349551856853782650139019710796510052387485186712746833631202751040135571536343197971663075706541485703484585554502772482738341846322171765117652153099623077762887348515903402047470306233388645728191018186113450960881425240530602160469024795336486268085579600021207579867700681468125751495151680004467914397087795583292684333208323975059430627671282367958550978497925355098480852225487361129712800026168331663760893344872064204029166389081852261958632396409888602689713716940410678731612226419413921745358234229444635438894675018447232656112815378546403014960524626996457731984758731424796988899283638340607186237302224692346284485380240239142580243846936170875330670402501710195271667921399771594944931617451346642724269869571452538853837664918164345442304409158518177342601599276219523006534523621878188675765245037308779201276182141398159333102426810474385243169500883972333197734692325033514440934707044669099966089354428091538894822776089724073480321409298963328462537923754405172343525614411078507354806527222811493227797317298695056077371304473501823719525592776802895687285083074941728054931297434347387364315367179801055882555186604966974259668409561737602091911895700093811879823769313839804437768652929110219883432022812412175665158279747725634138163971255229181259958964176673794226539581098774522803844748923856885243628969564457352197366248315357975171615363075343261971176531643183544015640398735946526007193955619199603786938631212144190979254710762769699479949954183110187055900155250428861940669486108272860554475972697790721070985646249074233481723966826258240382335186952903408232216276049367786669053701660230524037801709300589623238772518249299054608030063796495660763153936449244461771213538199133022524796857214723871029553207870339161320097630386410849052399704827550963380439416339163261820381330736641843889616010496057381240499492647719935413464389017243879823417323580406202982928940226171229379211891487526084884749728839645947507022579600095897581172050575595933780844939273903045065881803925853616521100998036226926528910277747166459051464028698405286329063057717926105302516418867513420390037235788131842972643468243479246220092576443971614010053435052021470481311128107443640754837139038874413945091002396230335274100732932993315247768699487010040162121272196426512472732632834590142432437180665584889159297898634280829605279589671409763599541800148567864696242470026552609873484025411022734261575175376221878040561633348562978008973844286039159938966211251013048377175260042156187702459911764251112517339075296347988966179034375522636845588944447919287701536948166753952433412894340217910194106218662659186451428040443902845312476882051859946884590067290085304818460770188865286023301255411545301178625181058173752296312056967830046075614177723024678766899822602238921142928035336083751862750924088768773135003679494766961678771172889449589938620342434325784437293951549399025655112660161181925161365914647510419637151553659310030953274862906069408290804773572239281863820794929473625587558611177592504224882914694174752257726460768838011699563167221708846333926599613162636841753953545305003581304519501059059715898893019887017860021083888063057301005587430423926881019900025190761961669755693112049981040376560038581438328255904959598178330239751466812960954239653350760360157060074471756878975244552440013500618101355458264159487830971546289639440537267731546533313866945203164642586987189574870274173220848707628768088963618438996917501320731320032311007912102914264091795854373217729339247328680353536065802934189428156778725934038796807395356057092426662694366615921952777418389074733388514152246384294077125373605458944983474743134858170709529904671974888435537069719478395766099204265410305680716172381117647074294036407117675207484522794258076172950749091156735505805733268398704002201616899807104596604380404412969242197091021731199304311624978052512453443493752601189325491603160309615220198729980839217698864204759994559185818483088008021175648506508919057557197236498763890268228453582934097553546456257958028489119212403417169396913729784550890534415834083943622006400877217845956466059448916983328655406009440330227396070162497651213420019674345231068862878383932345342110374173832337630834681082987802954856314754265335080846506651169686242165446241839188971378960074299739652602362408403923821626098395008066596918989531729338453733355645260056742122752803585615659826258206180351696078869952993851053903318341255531238712423319516748303123549519860625860646230816050261953976512918533084713526670012466083977573061214602191656658978630894293774236944871217296349859316393164428659219446607388123884317366471861645640475184748679599525196730996163384530630735801583969510233987612023364621156867058422589206019344024015219688979996546969614736426376281141281719309603631149713473107506320181761345796855440892745607906297430466478404949773456583964918206080170055578871691369332513709881839054777159342459218599215582585207062573573322253039418817914561257113598529539612415684162870884909593570349239695034608933177224691361395605115254426169081865862962318878608295352195448714186604442559027690602665483150236396547234031800000557181667345134446024855573571314172165631456994963470920789378443155916613589228587851193404542491781554203071219293319185373856843740202119842392970025565477130214851579742735273433677821305092817620065989451482999263221525514434703226029581861976930928285222534582945258997199016252977893996407157126289418472062466242513976740289829216232594747436470340404280047669325732495841888991472872423260128689104790999067784204479857164385907141533829220553958390915731681770984543767480692706816271813470804026137619845691966033083607279365379189073676887066778259355613781938950546482990035962865625660225796195766368803735737319686711515745126477909049452746343566487351508810216637536387909278767616922747477822017286172499347359940650631995514491197300319129412949295792544442814789800719758728045227410221821177818080304832872399370889017209989201998835597409644910103051559724057467811905199909751615005728173005414031805633143594114910711190279149612939900130025725302996096143529463205571047275457321415806077226426491804344890828617331019625332219962792962935708593952353249817654287353283208040828463999302263042750253352486705568403733476546333538339274343350761576925083535788426498514580618354980315773702785586925503124924323119609112919018561637843133350032466726988332325610935408840006190707299850516271715297742120327512094430404058543176393162175547672311424811478059826694107186145142006166436098571909068218975745328549259137021928242701230910446126345566709963879570538612403448939360770919918931711785291256862079990906333917012168006126228759662858382923561720815159607854882503582234948985000901249779942552349744270691717476900783008341393898314423010672446983801832395322583379689453630867356565801591694935457475729756964095170038631836096011400304309704795977837158507548985530935621574802671602586947053020210559116321572749017280696477721860860377967807397787941493924257164310407120554970014005116530888502116474132107536267906286499268441911058656001880180138756507401005868407946574436707006747426091385357012652386952960010718728392146596044142031599316654073911935059733069604302431073098277745505031603085216186707584398425494784846095355041389354751545275962605361895067175501744694698659966735113599349838834517201544357032100170242167782137397933871652702349516460591626323604520373120533559677658501109059141891032217943277490383280307172647497145865761968414052523195826163284114969509190213831133954515004758094209982518825845197694228939679395646598192226340086258502359407568135690314882440902368620403601547241319469191228166751627827095913557229291252833535071455064004853423292170541784027618809287145868058178710719808997549103184035712857570400734238889196883522660560485807946198388672052001930651408287705117369072266321133175707715464523807311012380990017956029163513037866460417054229061722683274037956386048521452578609552867370794815025355532067383753478007562735073725559965672883015935329288160387138196912425223143132837438877673749335842329434038940529800045272694826984411285055685837133945782364478916028324138634494911479773954602765402300804926565078636020211998539677740423366865429676978146965037166746347842817481419301875642945221610137183748895348077464756756368325516908792180556750708165263696345982494901505789183811163055170540959349034037379110861909244022418518601874776482708541222300628748147798366092462085273001039679232033173898283586659336001561469791784182350584769771251492551978316118805064705192995827272556677455264644080261341322416181565439309080669576554078185640944156245318708715862367879112012865780313703608429610054365430151034542345163169902020705179788598635055430648910934666683507777018203927185910182912818134263523689903022388109751575036468394673473030546217789105871046229845130486125077493239486059235580064678153572800235435185493794686928253401112526721120376311165851826187811135668020928591418307564500890061865629899609103798989334384897779607868228135761331448424028906421718610454645784547971437153898346487666887809622346769784532022316662567134349118138232025006309885310103300192529976709175449231928719628323777669462521034357395751855999931696541052754941680441002179682409650430149883224492302412633396641125723938533186641871626315592965941708652203553211420716154488451813694660915275670614039300602111184162071481401761125712185999936331787845094299734758985389028596522279663806657739827037195569463418773949355232469172330664652566798038391893336077980880625593481148293309400388739204108837230227098550442061471912216795351316575780239265535106010787503169384015649465021777751570283954537581322372798245138162611964709207383307272832647115375780022487656073488787874735549695179629214520480620666562715898764496795874472498772365362125155883712958464379097341218576571465297170274280563028163230455438855536175176787375508633306466140635143610058449946090428230364522076844078624707893395419432897118167837602312881065935623609912888621996513867332274200329001586636636314204916198651631607443527580005514194069695549617175687122087676313010068054837804465419908759199274201315294817093797571810115432439527363267511697356970384275656314622788234776423007746392678701454290950108839002940769179256081807149059382574988072031044110209565528143474110097907995926476625426384672613696452508056059916180128890304955250062906563963039631355881599018751753039176092134736604145352766379449615171453729143475889383083793898573677086174731829255568057345552373553731250440617369963195047880114100247667964764082995389645585394394139008544392937696613821594799776831424949412275911482371210837156312349871900360396225670532152014430771377102600399643199426658319212209886421319615495045418196206688614699088658689553727551002181377628597193230198472374298565257724750807702009231577209703584828697505176267649900593232573170982220388870153626069373531889983639557088224241523854537942897948732940047601493667280264863815786949481093720175274764458218360669636710104414286163667409015996882817628240523291649299234811103252367814075710860340338887658297554319218993663128469104528850389346151393557421844701406629380581689788528771992571723185466992262677470884191381193667362519089965324495763592432976021106833987035916960036731687620045182692871361423336376856020338579045653829808420974280837328974742314610124019896357985973380210077998738832934558708392045097822663140193302603759242232209918436125621362063553030279575057616402420675620177326918445046552907781983409418451946560710918534480795426100562802630940960487164427386670540429958866140316393840310374107216779616880216383207560555800830429872771116333524626189272928951676120037478271171095425773007541975515454887278123886357756443762142670626901425545356569659721572299615237232881131322491995214099881534147688799024577987104754419675015907830106811321502102671958252446112092838312859746129018035927314255353914213198631162716452278871477984249921479706036522419004564379099111528656694037283328634425273528074980872574561020683975565166479699580288935439245390639871616942370303188805585587393541065692959750205328692217466618904542152458201316096961811044555675835733349497018845885204088891577186779099577146194296637956245092673399687304980738173661034756823094161633753249310677199203150732628006639576570230711094682188428785762569802019050785778514836539641755241803609740690050331054313663065527275078459265224323390786907345731628537197949723031403219412245601996229922256682956434245132163072075817504537859916734399325687852634999661826325547500503821801588595970978368500378582707186320827052647937869362231666985988879692602388240742756351486915483027886026786883956319738058035789129626854192671029533396890938699116106366299161528158049023633630401062825517334637813711279847821012414773381399375007129283726509066162369036471180462021969803230592264052590979890160531351973727784954476661868729014282513723698459610451199014100267115505232147135946658742996052085153691003248285448127362786657358627004865341680190604195054957148282545890376629302947553229432300088151188151568980636443681742545086411766032388226374980786666001626034504485929526870626757380795003989441469060467854322144406945638454470341169243042097848673348249746570831655380521713676371491631872941889178687285918447403240104042394757185483692354331205094841468147411838414762023787260210380037059176689325669136018680952967698405801280033991855045644151428364509679523995330505130357368702279586204349110733586731719828225626603247825494893382665226227641992951305813457013038791328728348696294157320063454199678321397515896860757258660422353495921094875512917272404276748888123631268619156881686517910799624986242743302100160698134615423244195332620326650977080214747725180163836560662133014948859937851446918747966276442913651647079744040826627295838175255709834822674705227081650544514122037976111980211861253375120806844018423740511662646183453799124921252566546400432350535881781558727389797835989742283073152951311865379727538704288674127553209251315562834444693304754284637058208487990118718956164057834560325036646536882202487390590535364318105570222886481385978147534749076860257094930222624752306549659553492212944474607507542879749348071704952772742690288886858300197944226125242186906754639588123639953026150162550880373329784164620334797781446941223559298681857747302885032375392205136762553794803786067472798093840164593596717517608139319871336028571554160460191818244164768166225099629369621362605515933778353153163067890955799273371554537688102501034994083556807593039942371820599978105806875640680431622787859283429585256551578214650579478598680192452353323185221788654682717462272129680803908817343487373786869938763503767131995473407788706838393011140936534335661781337637131721755757744664463597301784696538543147469085312227853793195860490208256346411741902859856284779103468200872713794632181776877237662327462927651939023089663477696520088837255493653095360888130132389422759289684454124732401457990522336657884698419469497056149349535732526728094550161346331596701397370902745820781975121493936591664299317492768063296889210944443013834600851226377668072109228298582480818151692824009048968976749886437567364002590265165949155730467082234880533418600597333882094964569201269609103120220000494471773794831686961253874917691326845481569678865948229973158876086405069861691571624702670083258303973259057800195739312869364923997112377983097287639643795277587542344616970249879511381879169256047603798876028978640639687831059397264640613581965434460481926248920559910688445512113798999511733296795007976753580345964174368092131505019854651485220936929375860980260007156664724151345643800929670821495151799966394842321094150177879281953218986808212290504224752870301763028797590065203370120818224164040839262291233543619036222505893781435394787767874363202227324781625586170217643289619317233939312952628962201874026132157226387333839006778733029553784199161445760791024255456039255809864720202073047910424439773815880440978130095025830343011720138779026415491632601045788333894568067390081548051263567147457290647057229375179333552572419454678989766473288386310341655526597894630782245496918266027838503112660759361902278282979460444049047861984847434591554301208775168783076132264979183501941320010082167090552550116454978839377093280098991018878627818961213439092739074014496472384499046174119744369124251103461614640329613580204644846665969725376823112119028647643198185864282639578226264255545555591105120612730580422025371444631657179724101997133393870722744589175770728659971923145011385097798500112376734639510256619964686411681925494461567480028562426874408554359599812287330049496426043396730390083735474702418997500941510945669363990582228110544785737977215802673425885195578946524687645814069465432628912632128852738213012077537542424543445874373010298315354439399125618908755428451720908817276975533735312382756676201058945667250527169168458939464465459537607319393564170920907851187304573415099417414369215457518794037903796997912852221505121097632878727282980616013229321469374403858613248972629611019834007801564690833199985093852714348543917546498936509183997646250866706237942954374753896691473282573707240422846117836667310889487400859307913943653806727674515793224549443688578761977645529689591499718971894162118007723036365346271909220052396321549369417436504860951180467241657985349037633910154944973577423286246919590715065213275208562999575197084162801969222004974444129974056529966145331852431369190534491115806309686260331791747234854634328558012533610921294665860176449485824332664769239536733302885199557202636547099588194750421605136316033873288418782774553164143992431374489828026943415043000364880254455519854393078390242343271490567473853806425223383675067431826865105151118097989120153016091442806509169443938186793856303127525254765753591658968049775771186173408489921669210769448113437372126790110706906660830768430056760542075709768267285405229268420179776418285216370261695661670699844153865827886753533459070957856827302104180643129176544101538814686368188477605594932952423245915373145911366871311373512528759198569958996522405835609397143853683374041326187155256617932390907401273950938228916652311420274961192856382146410049977968607117738688960080925379222122050769707253736917051741770155340397365757701923325784466516091721615672968382178171109183940364904055315644582194885052219166552510789332445800547191767698505478585580601652005873506273489207258470279757533753820008859368415040544253865882574923577589495388121879693820267890861243240651284687466199231773479352017217577653474959540834384144018575499825910879697132665995326450356548760033858012655452506332083546239685834883419098633672425219606203095051030814779252585556642555228515251264607214728345845881284407062591989731442381457444257250460497856542687995100106384201121184396038159973903532448191480518172879395574651868653236496713375597641581994078707489528048858954361022542264450259131330173992871246622540922681268194768566342868471115784027994041302479977354257859987001001429143459342060569757969343552925534473975669604287480814101688334985521689135944946176378231936442830985574200059810166834571120668067268498405678115201903589210417017931300548773895482314591348034716280288469393998286313431244389226873158617741519370915824854519768663413577413302141880812512993933096590234559553631328397634868099916511670345252673060870623222488008425856971934603862877539126124891404360052965535294723877337733863983545857042822351320082358971642086369945342558885424517156376933250450656169039647780732366530353767236208468001147861734627736206911658267680826558575980579826490417712532226396621074790091076805036359362286467596933806878077031836914499351188161132524932490069797938543473305340761700499001375818002033731416836640619355160150391594216350457706939982846876849844634292064421739745679708563562745638140964955066492712633332558520630743207864335052124599908371300722144653257608748406066931411779469299429708123206219225404143881539123313928035896332283057482117719075075384531531732445904500285628876963083572360838363449120342228095426619827125399855963251943114616314914478330856135767504976401142906252237800651187709225705268482747945787601111877027300731356048572955611870202698189687717263479905347036126463954162760892987110137607356772645997764437774075280395870085065526439198986781857254412440076474752103606997138648138450408080126036226178547105985054899944212142952220266627533656041040412702108313679758161240851321059230333894206943557370595401869660191162685919756320338832962455917224198473719930791689155192793558447030467310057254443241896847398068129364594725687261721200980173149700899994818441447582956391012978020707495660537743914963766080073591992479017132410650508216141218248176900566325372053667017997729503766664978848685435786406074318084558979127180850157612465405285452263892569769414575949592281081856538132181365424116974651561727331577337622384363819629283113231382112864440065222652415110435821528772720122094529294295913979603276739557824559091453512070306461400843107789200976432865105353771895694793153612389389506209921619201914092688417161897873427383186429905369665091937523829109351112801679931288984908578283643708676745123870772157420845224005300134099624843971628308762985066725370198088741875694366985699485931342175879167758179167710466686940991280456336283152594004545246236236453047181164019941702893294823036030625618469383431078121967637991440842633092446000737868707262882889680150172629283776441340080237683741559608986601378666240691321816337599002382121429916080588348655329290409468579371760407079526892608604094936152036099927848187075977043210489934053605466501920845854384539809239682764831204441493461879915003245758981721594562118094715364171478543513475919967093594994669958556723427781116592763113698710825227025649426325446611611157795553116823746558134665161361385371011224077607798544832330563602044789711080187370655135021490315723670690027831027195236917883825801937775894610832806697775607088530443174626444046728461866002604339928070929212884848911486586099189900818008188837883576506873550844600949001383855600452772849827414816902131041071538079114853317720440442510528064734674077612415607280748706043904147524161256309346819304991628212080338714932784139103995581679289339969305432640165166907852934894646710194439536465907575884910575435811846956425640565671075917822416170580894419705090911425432951083655192871892903405711079475111223391496461292973342040883392068390582106682047814390533756208751287031873777146683528346151012366017354870778514419020447663636229087504330364858195161255363821076727922512960172988314786823306165262899520796683519149907690886240921947101547386446274719823634835940898916822491803222876353740513277616977357157999157250525929506193963724304412241404124532454236882969627649269858545978421960606071768950489551351359455984302642780156286345925480984559805226371674807032487014299657756664110875870725814184690048720483690850094519096913228748549049279451575693579237608082055610845555403492310292976198103302628122287920966249051561760814755721223779472869157997216749388717729887166381330276028480450867362066520371371256226631157111645337191449863274072779638667775529278429912470828770496246745579658768839940024341430208541914803256529708800191340568154890776338250920879235510966566061850578102944745099013973534647571407622063764088991589845106313296863501098521357438710624771449733130186791654609899212457594492480728888294410507003159349725589504972347797786823988861294401160231546005636889892691549930201324872203699721142233395941311575646800939308049054260583157607323156077944515470133205709063882698469048868475005398231969187663425021801041880857212704744728483202175469022267653777138631176230088339961559749947736603842664015349526868092814555166848398972750830038502443668410912809897468604118250389270816613684693964335566930532381715907683299756746136591922276259795064691838388300421417375810965509139570704209158497904887260468556618008401315345061279695380774608568583096320156714294213612009507857226409799235173914935058651726557087836863879733000082667740737655639048882788302317890786750046379354124444363901165049051200262331839722693939852083698125676388513070306369132229398537269652095989648789188922806548004900039225819964023716122793748344714518022629317913739008749170152711265293710401663045443233021738707215001856987111626774761399540884963959627632433755716136487422105422138239664250880498658071454286131158815877070263753014536752869016010610946893617700501075104447957789143718246841432408340452176581822748494111107040882803849646141867900259421927229203021456822838618381391856305448811430732347132450007481820063707906625630005011155054099094665671555099422277988677272941992922438791311654638737705339351507459047012137544413688292601104042109660294512705996248795476687854352547200799772713252243934050286237610041406674489621622917716218353113826151703660080619840935610994053995244524673665138072657822009761192600256354044904625366597867894800655949251424132031712960127096104341970122597246944004156447445666060721150125214459714739341148746530573007782047001933215199615167093638455204834009831798572494244184317409845360689623238463468564677177017250315201384388289853906585234087457090462983357101890430887834094195612715361659437818106731530799069152175119073357425782843771721366413308031469246285361410011448877992265251034292691657283506131731136213401599224731827344301632972318406025544665270949974650537449024814615039165239416376912178315899667570613477915577344589923402668976910078210931469813183297072743801005249548661772556880885408495914371896654533473084054923748210539344168160240760265600279923542122681041765197762722314625254647960121493906209794890206685556885962663583528731900757258525020614915419726461296432699701000992856557342036327974011421988067746589587665199995537684587107513360103173329497501665535673027303304958819495444787679553602073529544771597967452711656609176122622250423185191577679542847982711180403432650520939716398099751750389006293327615402746911919534313393845934463597749044262663707249069597514552995808190764553270826871893876994137649425096451382794581145289184481216541459998747179745304900607718019549218259390213737576275862242740359901689937660123125915393026918050285417598341900499762999128063998080653032189088835670334328004990575460104611085240332956976380565604743704546384700778996184122871296074262697230212331083089722041959702125298360586431462821553890659465538982084855646702900398682321410632865119818210660378002009634959573060242877566475731457856205172501385022213598909203503902894980441652184797071361709553589462271200646795310417310589845668636617887162692328943091081337773862701357654341503834713513316407390657049474027824744858853085306396509565988280076726216422768882030065984628924226699652494863602377378140975287821755979704443952289397866001845924480614591536373233463327233463818605761331659195451136709354208168805996891369552071657876469758350368414028033268195635712872884190939352443063572170951084163254614147762095930543393270963510089546112765309536964505845664902199622071520259986826421351734026341951924392977929207737422921537029198203735550965911206690443439671859280575918415822944706085693676807613770752738100877833414238990196701567655002963904843304316303729225593673540661638543618440082403138099765736171898317952661119897762449992235549141783717862880639960484295001047228026898521664204648973706227422948027377595032659606379802236619010308726882927423863818113225212064357975536822578507614100366541679700537046402936962146404616328032562876527598308097567365270742974315136862576952167551635569815788260286108581758945538077837179224329716139961563180491774948944704313386509855260096916813784169123514799057613726169320660702583434288653776843184744898666547404725539533135902572547862450454424204182475297499259508200140618121559867129377896796081973840892971844691506057181649501772059932140527617546376719256913208957051916379734033118838663977385878316037693089323818009439199214449059650537324269341282162554966643015007740576896760105819250114104673809358963685719675676965124179549676870350074265366563899691145236414271017464133746466659761540799389337532852216290855847098483748531647387805906080496463869404897676822696762216354674486643596191220644931210816279948485999089420448901060118933455877829802325486229350670858084942187281992479706712096289147975903387311580737591797794784608178760791122338178458022394758229142704988898058109528651302036579145937316617852172447110378605550715698510063070252777608995866614259198930901347080967301696101838408982184104592702816052999039307605233112017880232903403192707383036733696156200738218126097479992949716589027085187045755093421823098409146959751718018575277271650028670250577321625511381200105522503256287370869008169746452870577033784205677804684658082046054436430694811679875109698507049671183055203849779277044240595864779839508859805484903763602273597258138118330377898424278512768472886751998037812156071390795090255382787053878705004439272295146301854553017691688642033841317569212504018492099257153251617844277327474891646499182111065636988661223502209566317867660452187960585661412440788496297508199013305738254489235816894808298868768661176689558460820117867053342792062679837511315356158321053798768613073410750094074183765095081611640493396544588006453520900553967878338242822427164440788327555921518300605009421845355329549253665829661851371945713300317348889968500675808382123388010378375127168735746902910957834251181204479329734025928002528328724727866183026362868598199937488871839507384789041743205239637237943535975860037744843126930563746339847235352458381725518110244672142360254256916451879307816647648313145549907382375411378275854277922844261976982587508978110834663472177273936758057569819173513191325095386067798651684212835161113011364916166210277806861510375418410171033641771105825125945476469270738339768423854228578688562953778257239732110823169016944489446496371491648084580901471287386296098111389693858915584264381422025223274015344921655043512192609370822434654699849061958872213828567301944380817374841336938138493588567571441209117957717688317505334757818817198256019805334732582196371811845885895767660949659406861972675573732712884016047144258101439850392539633793358344349327074725905145472689261326776138427423619385306930967532532465940356025451866504080431427525782003817902645936692463866839144595595168779131471145434066405698040408105486226090393814918972390494595280492286478833274201750164450138831193432517205632038012158632828616223932303701305999111822090319781797397097981429303829017834507739309066040121291275827484267212143950684532862487316612319185534739530741590797019336235440225954019909193095078218132459732729266978151070393297601331713469062490047101261145380336460721101707500946333682665711161235968831506166412485605556176957404745338682241809507543920147323765582511371517378436245281292255708260442394291220218467495938701855098459514600569724694162208266005804243322519891340864932992817817388972431547796055508261520005783536323354311364506452611719269674538503286314168484509669145213906365048959228612458814856621053164390845202100086442303043395501723440299161502527335993360440422074277192887156477653995690929118860461743136158149257945247012267706259245441269482680022263131299973440895399094616577325976523165960299678556940588135655706636928646828945510235898593406705078941226990720861676535578773450540011423781386229253831544584097346508224278850523469378473635145002003466830091022141068497951447249215437787245652505753841622292754700664952036094233756381158949857503234269271775122609720195285153849446735758973778268274233272906765242138866126992842284492358240319440132528086242305915910834381378299177720963930749047409880071376410468537448105896021244282994068999281733102000285906536865353708461582318215541528046166172428851847123224580101772869556815640237101752787794953215574170837385198050228078221671301444834180962165728121592222367842089548714959987993348658223883446947744221931555090720919127244107604662160471385139366873265697885050420451952125747002523840438839683780371268378639519355612229453282221106297841646985688388657489055481419910803736828856691826821604516171039144395111486890424167096676798155485925968340416227156650546564160454826733277068018334486773736174699985826182041905610872105725620957497203334904777463307875832121728755718843905191336232736190891069860773385338111167078445222799724470843275880188592971094424358260173192365303975494683001642386800335244206439560932632312640808581447083860441092264811556095875052252832432276999301841603778992894407427915881442283898065859965454824480742875217050343986132140951778283922649369378221646064087659343922888853831681270871103295425337913658126737494548000697406639675925442731388117487572206825167364046542828046386927923817130968183188515969855629601278857919361156141404954096638345516471641969714016009316786210234989331499265199437158023878666662278627549694827683648261337895982097359978302693757441003311040176702438295992504581983228329919449271205344982134999877223983272259021864971250658261503528853867179373275433030682554511889205196615340115629855024190836792664680259808918037287393966931062700807328012212266722261701704493679739630773368402135764673641207950360773045919019975290534522617431641194510916887228885887908873032087424093359440120805926573998864497274752461703400716740103666572409147987062121902917292613113284846043433101659763321882435720781470962439575281937165814370364428141444312922355630833241750937698076399689796164545308544837293873797008032999876321843512992354003097626884222380559811067399169313342728140819009456289541450636366740096545643806494291601558051749217709609752909602768109773583088090970902704449177702843955569843631947912446126145889005295015363513624063345765652660646782398702561596524307775393743378961668967550061208295621689942419069906797104049637849315803765087702002096269295119246037272320919322693013447890109714286734711519025538299631181761757334345451113507348907542420050363738017965259833120965296366648236309721613401088411502632977310593231657282441885301133539364987728944161333607014699022556644523989436462065872207107910506363069086960362930350823045314216756945235860980164763775488813559503915621092988000917482743402364697404863853022773970138763698167449329192665917576285749115548698243834068420132920959043216001991967654898721099493373585793257084872107887342655290245790170140691997461911712545086210244389961369688955738982328226565479297760501732071009649932647678892661341727451327562155115117050147605207531704301976592093452697403995243196584736841250074966979292061420303294909156858940126869273924332969914327189721734733634782627954946709207475254805547574977137624223782767157079938576474636957859676136859194564595884358071613741868567000185560570883921464926354132088500573000683360374223256044174000991514981837704833404743165200006271171334825260701255167868770655868087366788437372508131897226532267191590808292702447057185815347043838051416245663727730560801074940465574690109372271885892862997918941163964793987715694537252168586417928457229128479199864237811000662790443221647241689652689398893730181088447839384491294099427037477991605942422818963937357323354793118388332088837876167398224780225447729330434269788916813179464494387431017409400682438133274483615342306068786367679910548828648340777061991893131207846306959676349297359982050069846931455868417676328220195019188750248647117879132940501287277416472815394046447248723421192721671048135189118836588367847627365140902529218806102680137996177566094073629832678933549510285777844624923285021643639312053327971267441659672145342431843620566660679524590076580407155056954416228863710537250340039833430974368717273653320353209254453798837546660153230631345182856573845802368046854733817543371598776816994384305018583817142669793420140491153335479976351996759648275884719530668412017377854954002013694164573807332427006217092223722894161368468047939994371036593518262924360352444502029335121402385572174240589323184269884561927375029280195016679139742541412696214426607787931279765488474393829791208171675985896819442379853380479371702358786191375761889296830114978503819581995377403300406884796933558744610200639408453006367986673634447740070637332597776553867646398738696322444535818541479382223980962328337957628813134906372405677421466411110508746127777865277121020780835205620788532180256623812287130970613271084275311939635239221278204336858098576807086936092235885934029864914112949432444733251220632507638111372084210716033485237245570700880087848398082891749129022397137668714563895964480476043207161714266224535962048406918740273677464414223780095135156159829433836347561193971011307593921566761933610775653423254850098944314906694999669191130078643805328749901163000680643122139744618196096548967730092623313881746259898895022647946498819365131059288877166718334242918346654932094745987372014045912515530318602033304362654455365053132181783740799965211758815678110434090606842058703010818962772018495814604309474545125036458506942169016388816252587913623490734532951715939145558714457632659686228501287028377443947907988514645979553368107491814761385054734428212518065014735324406977349688481932048067264969610376380349256869854379899937934474128303885827908163750918726742676493520233415747158163658890880923228084915474092621265690877237022190309384797898431248843911557138994885861732818297574770399497070723537556697329471744598460154233728276787427996421624189773583128814965495009942003529136843074518392108778416116818132615195130836485806645967243607535495841592756688951184139709703335722686369427149100623558203164214683917509606360052611148109006602477342401842509509569547183457954304112871937424073374826797395469713056483889638343462834211183456017573547676996923954869593275027999315888963376513410705244828362710708731480151918348162484868086721552509211349036519514218210671978496961741898360400498696852856199008178963894589709213242296706188786071615604304852594590396290490437848795171873942778813784502738939156109515500532893364214130881781703382929520060039733199173415250358486098424669303948199283464952889571557712398153861723589416014733202911811358116520696358196036958897803705001545091444865814490668503152329972820487242072748647028083377763091234587559458418614096715379471972244892782472000628483583234505175045982798634218791463020089229445286132049471946162329908732513792093667003021039711247874043648008437627969600959172796058334926992256147398569505184066445340582068820546685816489279251540827653658128638687636970094487860728791565785802882750920001435895985953746126202887480621359558076308267972042369771984503852862943736205349945250534726479859330410386659078838364728183045921710681117067123126953983255669227369221417268031591759655644989893679523274826548879660974090953102927607241899286089215981694792304048430100919532045396241983143709278641008726766976189156929523590657590932989023078234016634609241357817986348128510519798379005319902240794099085020548263655114638292267507294949743548243098059273110251920264517091553552439380079175485862411865005964857822196234020166418957570467159442014140744009950597643422089197322462089011785370189368818050684773276324415936694249353598492368763166647168057547920226261355656939506368403303692758153768545611804454500009449529275823558558888378560874358567612608617973271825349009397693960456641540549333330653703998785652546446097208654443443347479775508690752248989903131953236972395628517315991843959895249152806871368647901136969506370666690571384057139870219706302614263566961840945668852419779381098733988108065845440805700672577355559159674462101048586497291150483819037063618826886947902833986611741204057635362766643954830960776263204553862561722667345483491583402362058880446522863405502299733851127960163604705217785131619371316884795588147435994836691042677538769748234097306424900946612466105392054065799143484016643926119581196972244999754669595378133356661689787518611312259439690341146810048847007706870991867755108914279159868625373818936834753612952997642604095012199041548703278686913902645984262631485249532794815439099650449358878169451026163734867765182541332147929414182665985548872892250306875631579954226155429754500295444985803230901785284240261879585472320987604837593062929035072362128337546953951572464435052601736854438798668926179320428017253544003845624594406045361870385099443533307245827834961928719423924168582121502503330624023026799231945018574309081590075574288033105798698675282576963159530041169628415099992524391938122539260809881304795358692746856121439985838830179480342651612307956195557377673182517732040778547239268910996704667768828521959527181467848843928795609002182156079180342937855044984741914574604718574563285443401230673266146653400849788292662075553602888216326247738599776826188380078789070884543105953961756648646478545848071116924657162677980166275879935207192951251853844452306252719243250404661383746533968877280783720263043409926451553136518751652130474066399081201417911304882368824713642434213140760223821848211489953925177425073142138802932617113789623677728519107625993918539825971623544708087121532467614500372718094312175899738394887996638604112145842726260463777582281583623877174522596120597130027228665769658979665718718062246318581625325278541090960852249492489618101246649301068164027223211198476809023444654989685692780778156752736624888684935142295987646198978730478450895051670664452846264086931593467654727485034870952828765669547284284348260138974243096187718577213573802648506561387129155946535076292952662763793290212891643280144953422911361708167563220365582404561461352565546343306543811149849039652059968722275200867039281494916269315366621976214733368162187588837821658825704202644171617728052128708280090028384980391691512126523158484815093380453351765412211076130621096983552132526081047582041106050623587589698108515780372639776131362295802426311335096165638877757243899523532103670469312572509229924023697562674828143111393514901406208265427447489501962608233175963501028770879519541180201202993294385206671438281333240773917609916270459516578060448489663469441663685230270804518768874558179754568067089662352552560221117555612441393339720359685090803817243221850868140739740066292014190796754401705646365662079196345351141336617038835857556187576113585579762359568254988244168185625262678938413024173465542243504475639235017639892663161255197069471880530265977084331381187062117642846714032533559980302788356652293460859294476537811575023908161208528895103123324381835097131208594564459022958905887180221444597407093427194049502725262690946760977415447618377471133133616578306217639439425411223037995545873104423029071337554495058710961234048517837890712097301249282341165449998885150224235604417441500008039613463051488171485840670291774763421248352152417381831335849827460006265763859344042600512530611357272993749966991390248579782852427291712115879457671113404872708053268717117987436596011131749072932916390726782793893034298278345677250151318870783627330514993082567028446981656844810983324715436598613162220200590103455370408777917968711878083224798704434549951255048809194680943871657044056566665361847220918800217345706972533025848164496850637165846707104432832745090118793024481770233265198758008304584465611174929948403388970505175462532890981817142597194068269339729452150774554496026013517387974645277124713014211603835374979638304089921927272696449836412610949700329549748105594994967986296603160169008403102321451934808708885675286125267787365228889133950767228232003857524834706080257668259923717609049742350900516303816837502263135538958167224432000151423910987161505465740841566420550808058412752614340159684949456947240189640891072067105263361719837664263901356219038952475304975104159698991264383373309025762893334636559644864040707825961379195145633963493195582077499331396489480977479001262100371671084964357224341916357994665449081631314449190284050907796036224351187622178103543576791204786045172828831767512410770612864178400485271653911202704331073533870559833338755463852116151841778509320924133716208567479874631243112959174945878889096117278956341830427864226341729072850384510147813794522768124409418427635255335051656171233426301779165621400783377574571369540168221408629058350845125701569711587871458890358330409823528190233415031801103915329244013692362676744694978345094936373317276358622591208841627392856985482001874823347927378937172327598106892251731661098702211761516201074981163450733572874834757667483298844826611441551407136186625243252332153511441673579061636754393697320486905357661768508431382051169559155829668235787295878806489187063478091873003236042138127084823526693167778743045711107859925278898945383804751048470298826349333953547134306856081790168801788245902307143897916333240016728099335136994509988459156715561472543536732436982965293351169013243847316990062056766851280052768999716763187751235815919112201999153379726719475068136373878804839203266091355812815545125418970240795884159542786093415364968166371205277374738975025257625542537890249238189541495251427730098981638792151337620059291797166493236083264450232696212526633612844457557039249852776108873473282822539872827694928375985762288592190488693123831330793798748271497162790847210247661631069629318910321650604435811402916999936561005387765094576220527445697356225605029181597696108158158229325525086406181313865326029295826882897434092780966533573659338841376529293093395899401844902727968643800563562241313187099407569892289532326853720550206161584601057459587900537814178840887366155061843594475641470759147963610114492532431011848573340831599927509655050924007167790626915509449761414462166887929987856101181675193313794098213739629796500422680695069297275586960932680001176653356487062870833863803829218911092789433845461409934991093828144654508920629595838111921166420628769634766760268251852396026456587262051397883275744893915351177595804378491054603323737845561929148813156384109488330446892721302553211164504681337024810641726235711188674847627995514055683757138972042072120322063862840380692958259767710182664684212985484472886593301715028455320529565103376156738603815422364779911891089752572458124912263961786232967215043230665272691758017278151816545383303725924417659735382401159083252966596523864561374073503448297654717619835715631286020625372930597535853922649389289546505584788608196917994466814609378825847371598733952851931507599239468473027587542100208809786499486170851724726327555381417772422893207396908417194526641732625017088613972629459250540864657147624003354867836573067257712478155351875959670283211444446442697060162694578741583293860070462779957647350041650538234658166615022351096078040873727703479449157620439340752495711561412207992314179973045522340097459069451992165671813727850773232353496793758905573561481282287585070847010486608577628908880329755438081147812520870361981687143247299187645086435269325787376878962706445351062173238858267410644024242765222220232162142044867386159074109862696642703894309279577943686476448221141981887435506676937648395556973901859329254495718026865717738361361425612628984671199989460406257999554746187887999688607486716768335845202230778341760143123958615576517793799966193828082630370113842033289608009746492065355674409961266632917313688546950923974907367915700575317636428539591646441271098848160082989400303223151237242171341437285832476435549454861515533003392292304605097801809307500006454182522844317180358307242968694015104486171738749836597662936211204355695232583246643205805304167051904027089944996074949392030305118984558471818294661715312052067960282006303411111625188685767036724862966643771448916096070020840576781180735091236728560119271361721455268948960949342267415073609793322565193725789515502500597494233127668071280022067480945969421240878888855949234719982810112718377810757525569651297570043859551202073943619875331091700411971969754336387158351710371440123328643538546019079660610649658725510467384990237342124765726796805842529378317329680775794730552384955594917891710978495434328945959150055944531316508340720775658535116987662823717132200235602706615972344295513311443856881513142355177859534282189843219161838002625417403437406484672439832466319935537377212609482333184070042937456901680307275305555056898909035203881251671107681819239343843598771123082947317543547796753857601955696344600863422774474132846971850390206001570753431467314521089044704584988659208589727010252383476908754278228381406639181838438914220539141188696257412716615603745214783219184090999755839309350478528701556117683140919414653000408208436269003164732311038257793719935968747433633705972492520932480620028086228276847969606928400571544263380840357069661226577884735743755480548753525824149665407706151075556520785921543419472154310259154854212417834846440569046089032161541425836834390880256838405477347114032657657782471408338475827478476483968019669867230482408169502050594501216286931794468245723758157793454960287920871275232648858474482753761223546658938624756787908278642256429758072797845044831926988827071159432009871110661540470623939344548792029783344469884823872621719647161121299987775006177307190476609247505809715265134731087179586741955644801083077309418305661988246624012327521390512332806128467636503830940489300196348220130720946267155008850673182435562808490899218840654830746585985840680006020025836796295664091953292663371310575164342184207914080235605006999398844380879399477258457932938222936478933686944707765405513169988079747812862595911434918038789026488918293386956588792576600705056984786236851526592125234549314957926581941848755509976899338444525811962022091527195080891569682356489035688684144651906728675124891583110333238547787355054720368582140813953377968497622896239973938550090447434589824283009157349791322301577631736861394662789359196436695369418606506101592767513197797970292980460105692482840421264604895467637976285427740103576741954578071122522584622245443779124501863799471748262711248007863175432640925042582290983753874954405706199067726901502419061889708196660912361512422902669399220565445749663374499726561560849018222465980736407935165666736853619853660601848273754495902019462592646294887636937145134997385578147410525894007831445002405868864431505451925829741553649504286424429196810470408823108887576193384264245542790980911238022274716594643428575109735258892468073528820902116795811478953497884482707724425873856372100089476413745686601996986816537654860515224893047771850568095653691189386166600578297015758992812288539408357113514285831910977050857283216921479742157292416407739190076627607674978492624854293208486360289619665623723156586664316541576334729406764253786506700096656608990176055258303665862497886795996610576459801484571379144020537328864413530021468901375859108707666821555673096375564179335357536555021352077981164390114510136078953934557500229635946814996579751635968955786277806290845613856683929587871174268121934846427785439579026581012012918142951616642857864406820383190762001189607573372648099651776728672758846513829315578184306805983180586284239708726598510662162123121084558742542808718045309569926736461576056969997977459150523792355508071401206901783541256561119740735479886301181490679017490227732662930591170203320540535693401478707658379268653090714902219599280606160291851867430731242123772196564504676070242518144493290037078063121550854747891816362544350970179303969007825718809759182286554011362747360408877791576976626739207344816470526663599743882953066189124712075096113092781841626839246475114063727195142926345297404336722702769062293415774551029650929053696673038378571711865793977402580404321385904387384875573710540357258394278795345546650907784309957702654194353572544139949020930659647564547290074602335966253149640122513724150930957138433831293335347154047599576690197173515356073750027093302349448251389925138904610366445652562313208776607057452164506995240781648898521996984745282758905789070179577549497186294392836069222377214756521662742986740775014617149610841841026038064919291713603176601114287723753218475748662576954214528134339426924911791145298277589065199509776241000336159816095890004609291114316817716106054342648660158811979889704775760940719300305385866881054629562615524868548859477040600932130869784493646612472850418628042226814284820601328044063918351040713805152781249480223060807131189420327841837757645829438415467903403872498729919894515654170112918445078432780542029850284934007637123348865593402656647399110958685006016764329438260822841399309315198875992372449747391146209594739618467456885618173785948629933852676508769938781825203057279310346705931962004533298645738739474813051263434396940158953914654496806909985168090105342068732539036331565231124306306780992994422341736255091435381488386392526762301706536493951930501414610698329842695539959192005777427417685710447612883608866690123529576581271357674006456426979856078003514094947682195090447110425231558539703812949570588497192326791741475417014071614502824694383459551477724349532883044152700189806992138423858637968973262873149696887358898971427067857662883194292299268519701089284618987811864358204483901205060228345308297925287229603227102772441881155167176496675821037816604172963965365152159162041949925346505663995814746925130282992225480037493317858482043063691497253269568969709898288888780018050817792551156210446345059443793254480552915305684955218534349385718427884821535835223425758710499644549177919253519083272111801118078297912792211198609131287569376072143747213833906978582800885955827528469549685430205656596019528814946541310722500520830288338848541023776726812638365275519874474714637113295999473834001772648119357376673101662081124391542265949563392682996587217202128261310841724530159348184205070405098251810780815962974924756331749566997751379556281513871723533921508227255012208312342937849840762667462610226972187406355071709681255176552774445989648922333632434112794102016473910855025610384747710285030660480026115919227698963673003683942470318262441331370476401040480423143293049967561259252222115409529863233298350620664847259716125364213948933683116530022849754947843348928593510603363833271517498239204324087135216354559132629853835360864789813770501368073884430903608850700873760920562943725152637651995750333896838931303908569500425397099286693443209878982064118711206865813383295998528531837601551287849692619535101836089088625125866471895374179502983692749797225282883598405416675548288158832021698199975781657582244072975694724272308104820331748961208379670407543636183932855238075510053108526789285281750232209633034051196948094572440300346518338872560409322397648664955581577625840924220947254922179640770429972540694029711150548955118311015440894617979683847186598084496150978110776957206721712570452167372585307793801425652960461925595826629796831495830415095779755536799420750115795485534058345456927281196246922491471245686497993687716484537056268963803187592661641322983446843038837668714538329741412196937496132617287829143110707523665416968545288671224117203698002289393741384281069258336414291544651908720820163387835873554905879877192199768931719660653182293287153120425453307682858613637554100022171631322248242244149899961227711264823662080886151699013896126632230074605083797377368928620419546161099023580730015308953007100544380061335101199614762164219885297102162370615539101124384485363365177447985656575099167413520322844562139261085967406064624434444585651454763394952823195592385859229546512868297372806984202843475362402855158473769772954646830316269462252026543274421218763529792688693419729238093885364548132022124664998024486481381042802458994850457625883724348814371153517970054029417429000218527763909030327589366489861870977102399820784251437479957406794750049264254657678485833565661864920522249772387663660905723878477031990030430837660835118355751604465295051300712374256222792137351883811989070419941845292261540529395457139759953659587094063902705735991396971694574316033623998625251627125541350904018058867256813274238304728793900165602705509412858840837173923011661848706220167551276698558298905454333078483570039181643832247658077479175523998299261854882124588405192993526811636819437540788240001258438769289645704692685545215829294841482538100936127901933537079643039259198645236339263341636151917185795252905568413697552641412258018892855209611612788987876302486738788895427341119142274474600945853225036374739187227182913692694909097712516281075611057174849924264438853897532503731908717060469976134541893275627337136763690837958137522933457403286291299280927533317553454175521806977712436468784740239185840202447825901186588389909330233141625017261608194976142431642034942908510602892803977124137742862356448326725143864723577884859110948256276887733031972362996388169889696823708644870054909868515395590735899234069360807217321631367765387176860218506705343391407863690981396997788671444630101486882758126987704668153194812139118316943477966219500042304226591618474131307124244002426978110118328115232612080306398954018739546550161012426552859206898263301542157081458116362312602575044173688367180233649776271101817140142996422087437526532798302163504689209080607449830784046778204568821312565789300074697004522546156427602168207334744566546136983705010152871824504620977130064177250457515063704652022385728164176071247391909710045148967767330844293425809751148807868865167601440723119478073036946445769196598151192327973444096705195218035406446466974215592224682077379755860559145961485092142634310461054384660036070256507593010879773381376235412628801593739834678670999442546325328559992637602229754287835777968192672380462076720267903538481298247685956114352754488632064025371614533595043433584016036711237273995800642945782935969800632906963336241895412674114917869682940876117330876338637871770370960934465125492564683571086804301041477282959264431957319035934979596167055514266596955181140320304159939866360449768970689180197090561662658945949587824969502939301732619625696812229774987831321844201557395761198744485521583512289485032072944093944483608937535540153013841951091776703349932750663637218995451975489038006696599341248703331478680483080825550209535090862465472478349300764915637647723374138446028268127817961349980640201318645991518146509920269223799859792132268549783147706531948062069831098850480176789660420817859529106591337799941763637527427911175453948793854871642568717872610252716040286834999016048941433748649337196762677346903648385336019174405703011836148185034518118182603967232612255692787171831998742196186245364567352167023200108640000946393574761664304404032158755466067121537443666005955901720841278136018898908944991236144958799780487161117135451168101511662374790250761917917129898687434240588209953110778478698248323580337552729469315170122477055168410763652682122848160308795395890917464616335512511346759134773668697693579854757705038328555905348633154044236555358229577186928596271813542334457688296021781733803535144319645448772798331632091805125272520458817067672079654070553959407948308743881084353272221215935738542628651035195373778354181605266666231318865613246498653461585255547553488934387902006092036546437699628455890748848669538451118030074564593312131503985495331992458904060974076891700539920501162627738894592085164598632247165888240919534878680350802146072795211048183038083110113673801267007724722173878652481434981969769291560353068880345916629558142821901687333541583812740938008243694658205970821918468488656468154426812456641444944574651882233236896572948843480092327029438036931753393536087309596731752164166401291839109564515526700584524746421363770733319746369141326686433802481381291007349789141560332387266242612223418567573372667242823217588553500003753144101956796324142335696282243744898909312095907655531479250621853055629362657275569117815625890247633994248082900581212050319207193358531076461975730357238848741079016191102336218248151986430268032970761574226370383062595562984479399479139987234976598407783669243534287311408875876604344250532160708971099537509595183009066620837943230550196353729731693451186283573640740601130651642855519660700094715814194479106078718658533216889090965819475290205958752134956523796206383122613846519492298037110177496393922830418552876359631270247649788519060111784449172109007181893641277815227120392233663659354571640863534946366190826398815310018883033014889528588528635183980318055796560466971688154681900129431071712590473278342914518478181507421576744814784020904928655977832699041562364860467409214163969746616240870053460190020736390651304112389912388995600918448063720716996998586434865913556161301777807897744655092754513150838768386988135520957773790107184911458129565230802525114750715133235129247704701023085851258516582067127324496195367293930605684590490677810970677026776635636798818792144017644605672487773614474148686503440021975110623007645128300372475704148236698150687847517937553886818035687695267713532461885781307875793676630256416563930069232322100113990325334133192986856408157591626038103331261761784324597324122718794339081283943765637195157023918177718063760847583267165654464883172394430430318981063629563141304864525522093971492863525267442192568816472941825639973198687577985919849469724154676143950792924758366099300036255526257344695054790074972401866675882682961930231131756738220942085918887743079836710133418194600357047438423066829936033443347481958375546762591959386037503339205530694525565386601900941491297345014837236188372977385004361042385417279249145094407201242287950817997641725970469296829369983988892898611557461145792939023952553079178552524942512310634814690566175426753217958325872782002340875699583013657720190987440976594199621192871912463801733246466147778925719050500275463797885723040392808845465193362573653078965714881492810514188074853318313002835581243055543323389906295557528547559581364242039656769973158973318933189869141156789542671536132173024866330578082966465265909957583833506708390275882193079230911386499453082504233371851630490533348378382846861557621459625452100050387166195795731084444972269272870580184461640004789230532352528631578523034243893094137423632442808974070068445434089585598302827043279137323412582787592264393834605576350984274470200308887983047144805004717759961140975400445272094511378184104889645524140969942709015026145374280934838917166433701479700662831683497646922483936650120403866763890723928070925748798506943151800233450811205299241951804864845156758283362206298286460580922439383654654261415382507368939065994154356442944096699395223914305760877961261944107314986602507885528785738226119711144094031435648685784200451249494131103954212359891132017730786177633466363642543394827241527925399254373101776268438900942174095331898312449590897805559731190124447753981174413543754121401009162723825714170053683755135032179478616253273371732935021952995092328958501762440520886955600323656579268986698813843883282763011917771880959282982363456276794693925482703126497126866736421164768849207458652924731968340176706191023744927059650873854905359959164829619412066728145541416723726820659068485882382111352290886069562452001228598151893788446514731070230008170651598500822143892790032921627635779051992174113397521507512254303622998189487594827549733604692356232174652639164062744782991487702287208839585111559752839754749420850354819621464894248350561298506355057559459160818422722000596311551357994588883698317361813819361804203330950352067262905150152053710962180389700364649470005709427684786180946212263081781033186669192400856317987875379080054778074380969253706789979553771619069251459651500609027218189621930663465753146958287498425597812037614241160657378018476425732988468518664014359018057590690140150549801171007445359678114275829323886783613015931841769639099029873234983081412392032682117070109785972032858061639354552516955904419907289769164260234754934932660946052194965593034658527562606357875352820720591798507471410792319673928028316729060203866821464679876207760481286937427996172541198642654988687378096842309932765236818266021463842097180634747939715429933659187632067411537836854404250718949975344336652579093578609043437846915102602216233087078454008418777372481362474659083055220073111935728960893703313254806738820643939896950967260837779194265461229939070618052380010792657392747878672263612834450174632578855885800667309521813270569874120325045558282658882957745038972971541163477109769988226279272451050473716704491096812999767944661185456555987008808886695705393997518118801642702216688406662895141593965223020151254537580518049333647365471418622609008132510048974558921788902192124394246911520355099845545130857911175549041088796117855424633498551993525909676790183887590835109684725959737863030583684196742657339410654683986946638663056456647874324543261190840580800678112875689765248802294769928221455985195619859965865792623826819221350567961661670181159512907645151570053448898442881506893345088359289971496777986951536583857299268074939647209600637943461029197081860121237088686786774247884131444315675312649117551920168440832294246159441494594014551261114781404443559251489549928030121278337240974388291178493665531068791454984366083681395816627786900656565228240435830585717662627674114162640962005374512704954233503776524173411066717562271125870135710366628146252938784206573161817968263522031989178365057857526498960018924793563939299457073020660738761602179412575196326708515483051113234552672911629012249239510149315290269098669487709045158258575305586465335345566392955370039661491433130827275830507879159040497077708696371481256289404256808473447685918493722710022006487504446426840149323892250319759332261782793055025181347321273320124843963871659388191597405828187165971218071265499906348670587200997729857622289714971026420654441442192137225077208988305353043247785405722385585786202029183360903867074033985096651770724369089369371636266407865422599792901802049804701761603518273259183698352117224745748901348093757370334160709955333214346404434853820182986301503331957962870510648526254848245101660022171031529202526709952493515574774530576704669154427135294708406306647031673165222927780651675193860471204459088246167063850619010832567807539633856941237169246573775013645685446707894247034113726284894169356851228433169196590925121249632549864292638763423091412466723720472136138141674822553737332657014208313460810212865404742904847100967771760279583043987978657174448721600492945604772984206920913874348614033467806697833888838951054649468113109482296106738637827403821550349707542303528544871854082451639803935338489706242774196535604700787293627229829488086017967192022709923402505840913692889493244315551628826467398538887468962680011462864448475341918666809675751493395839614583264672114150438913098907235689569991424355683764943067658910364265909108783538182282375615916056740526506824090114046682844373672328733287117824219950574817958408788877839840395105990818552470277052020960506746564129277955839840453513205110911237618365351670619457482067312871917547987758901311863286648117755756358894182352454968563205955033827674975713743356952567862126732862671947987422151916411191505175687573720385027263477128344763910075257498200730143327296667419859028454743242773765203605500780082597376692910018979014276622981084231776121468546058301638519621650076583621111766204139802943605470384196881331880101441923280773366392123938029043926857801708621390807462858097338465083249962236477064825131425992063834348878342289831657072806398735390674017368965018409406248166678261475846902307349052970400910315343499287167502091115860818533313701958777603301112476402344764648841739482676359609710593009814400924376672901267950365946396854819561313154081743537008865247015526270990797557621494516513248491960856799119286871784618081623192634622668208585639065424515174223695229159758114429548611855773326585079104647444832676297628792421637183423746713729236001374530178215083752526258685593988786498911930053727431081244400438848295951107652920566355510353735283523241665951331219554067667302230639131077457474116547096144071124415491401244187701133129858310734811913464853065021098986573602466036051475272967506633928735072991374103050783323090874404924072692354641208384793483675550478899923533802066919079794051549052478795976833299753707688400308220530640029440359872550100827946046909613896089244119309287862498841397754555728883365682605431708541813786532454203086580159402274981048844124009185410341699131492506880210228999455783242149664396581125334983565542682086601416469473586137957424509066289769721366047399032988124202312133834075791114308808879788738348869830244383408373446420493176293641154518201586208491031865593452489712068500787426744512889211922157007358051609161380262174168411146561202538487356731978225948416144548877583599005386952690244480231938838872059299448919109513902923705485441531300665861337900652154391855410521086114598768260668814002919347755207787020067194977724918758857693522102061948205755317260395526643336956516918387048796207122159842436787247941444588666936856141421640073646994145013452984813102106263736288227179840475776534664984023009511252881300270776036093243026693148625689277537647304619824059916892523184506485560216013372493232910588871836408295662576196616739699359464233437451453537075227639410248161805711727960519282756637564707433062523048619250713357499980936507863880532534941165094681177085181349062747254261148094075630516965405930421267286187567830045265472518396841469196037621833278135876563866860933925031045331563208074969566860552628764750436387547644668122113530243526685661445491811812641787679211796492472741646552452016389870956721547503502122269552153863647979904812926771583162532057208754714556602649321594473394277018652546698021669672329387366662885672013196068982909546802914623366527817657510217570071860236701473255065862049802174026346642410366589996093561209187283906554652907695373684629528111141002257150218740665293666570454444553634056018660807164400213521208794717286945536858718208623973045503628527225307225056545491890490943030685775517265441765890122027396091147578016705724532095485344564701273366273388675012975879730135547189756141145788986194574717931021061055699968341309059805350108486047557813073411793002783423595972312414532721978476566359022203801404339801681702400432458181810608515885781105780151321394938491350884372230520026367789926010502440376181413062532057847248517592749022989081764606005978071619694854948913149879290536211550230558141107377487802082037047525263217052973851379892651816383683475077692131560620179505303451216483471012029546066095383135161571473867817301921503584245708670071754797695990119501510200307020421719614700911388940339146186196591429166483463348321559650515796330874342536582793247715090730218542713140072711077409824074233666555607940468487514339092934967095083128842405646666784941640968316573565585705871307202230671381948009301693738860293309207518037953670276877823503708718370227518022412123793726042272968823223570539758915650359579256456727029214379436313619627086371572331608447010554185235616778352816667448292662476250436100124403019916317896940358533005309707717589764740993624660050515924212907927318467044686539752579764865600748402110248102376170392443403778336958905379190236423259870850128275068607751164355427749876251504407723887357561775907548545296473118180678201744278329032465253529601631219971411520903544660159368055071971199605389882334698947159153748651894673620069408611264664826829634913739823710870354057428901219409844250164135206337716460164391637009889732214602371966403630992650131459971594766565283785065619512460004672387104787966900794327728566741037839705662169110973286376021099476237740977882649000149271665740906321853623698092741894997829883615715746578965309807244695186545242294958796989603037025545931939435831455147087094023111701187510639546525904342014080128632462867801855880258156342343605239829730689462835265418584637289493724622864040092392239627250476585334715777558987292695584498740048596032879383942424545898933477477218237043764756370804373755509003466361374607422955565475111801916527972449525297911659920176949351073348903480225511873490429235852267380599964421750402783653160919749584884520048755247322253619994741937006302162028515527963276777466036614926419589296358398403515786523048676673888244498611123182962983349309343123421162782491549146701213060848579015601171554265253034767666454380781891174504391138036665828636221483249415619274907175442010478354476666006610677629387646182809423925108600384691155246705561166326638186474685718445555482228706956856893934448376226051579765295714647379099081834250823773913054989063617094039210675114163572559065529008339463074146711210952334111769335219081707901724933827556807536457096914913364744175674145420814525669223561356549225878403469632937899259794943684484981394598055205110675294193514622491739115763298693687489115912742787633408911500693129367809718122289693279554971328927420618313450341411762167680492341755406627425396006308522266213265843857477635416917552699341543406981100446791253008732286467179753923360283703612541571827632485952084423882789618314532975550689762586448398328241263577258055859274403416823779351651958567432972019670916032320340088749709109038619201177618122428255697501428287431436178091892334801898474147465217697854667915972899551223845944928111302840682740694903458039589102390103200838168017879366546707162205253088426657478939879776292594546349020549343408397836718881019103563567227830922035472633256599259911160421007283496719945911967871647228276654489118161839692271903004928120690847435409967995026859680274703409116132762124475295116576154511437578605883512151382438531663883534559594780097982097817127449052861069257104113789808508298923152058277744326941543333869188819228444201935585480352512498807444313071639601511462637591703847860311773680662187632645086860487454775316217390930268489910567981099827598988647401229617793751486251890774592769250050962805145496011905536336621730485692771983235780422285926819609692539198654929855695747657217217594289577302311700848443148260511266442842203156694573633261945126815642032647707722764166586579023267747699185498897114114795264748132583965324744641787699553774218296410374237900660006834055781074742800972857154055598882407796183327910461829107283147754198692511182039826695944486362466772766615262821151287606563259511738221889141116586434174901233019429031279102114643548327977380013394644892212107383240361068615652408195628688214052887274397025096414006744197195603449819529421639564031231301005637562426415294442189084175974727539679534915236202606509602227557563164955135682768493458765571886223696388527496319686540700656164779222199448052129664278789849939009759851500105865286745828913297889127091960739934965797837134649167207478879408716397744701747523833648942341375477687295055767043564935979741319893876619462726209370672575123073391999614205110591326321237090332056509855142856947942678231025020093500443175186362309576384563506465214571005584639630538041883658435342079737864426338331791255617190861427643373867908122816990947817526800667253872026459376826178304235903578631976623230465485474389576657848017358711840129846479227470809834423814243941080902338920816947119610513723015141488279678952271840888625517387266706884622014337480132702825051956794029055364127850225658645894063084741832772641663230574336707005088900878046442914374172074888385339246233688125076684293122416694010137785393019481299540509014589676069362241728804400779928855983836906655441046892134108119199839581301146190028018163104968989926035942459194428803416512625735835413033140576297236599366939255860903785862876468152595110814888705427153513381522106046879745676112966348260910704092547820274914408721703381332383508402439102304368335637391733860426318585363107976156356070185882649470332929091990381219472251357388310901835808328729400690777143874391103839730886497046303147441025399180024313977887574859855372966260515726177627999187335055453524833363644742989880299037631746393823948066191229103126130929769422595169594859789126627266521789349758708546363353542247747840650695433425860886725593376585394357417678578786024815921732695916653249025713588047858583842670968872489686002732022723871333344795103497873469588819155919474078746712823306196932592987270789563808704608163915490316106627121485277188374148616154388002643839888770994501881615825647702817607136420960563999762065282976254588997843473277035614959587152957764337118672899040638710703801418280942477086677941827545329000576629929263640793298252372706447302341272312833335604519686503448327845502594359315126679443551613729758990599706575837937912244995564430537619648365598281534661820271716276531672409440654091463782461405144621381450368408597193595052414669173197015983667629782401795358904778050434084025396709528154372400050306404529501803719624938994752991620620254397798925456154294538524674691672169029054637047959656024908842364729294037290156362278532875504692081254651337867915741139514963953441427236285415617401107314006894581295779411496654600609397073285131585401123209468567285230003687671621242763650900721912576793615526428697357724242185963776097468315474508844005453466015983651825210026870330400439418900239182991640003151719853433110914760720536007249321769255120340925058537128933665190588968477434519183410083803757154659855789867064934872434762276323344916215778735532051608019811725093245841769142792153342665863128405052600545103950084041784498189253644165896823595896271035491516698831494185109706651477788689854087485638569537248031921080611578137349866941045995291068959332176319600831756339435701976895923111015374649296242630640849699290660924512109724899595486770129120906371154199960956761886411869154155037368225311200667814568381664724377566560114058483553935027466542740490206565897058955136608396350134899417890770553562892181486713823963284448986197240349602765179367654510623374873565433079300786984994118453362441383367611794444904176590667337268664725381680672370229938486892220919832030099766063287170144108472732743277229422069055167970309250640989938207783006735917487177303200395813810651774013263684649391442213689521145063861198123923066729061759996554891569518165814136303266607270311285653186942124321512508492994615871362707677653454890312421206207515458359991643218306725866724698044074514384923176571203899793559185867806486010087673890354692804751595259893475008413133998085127959303337599875608270763797016002735001050820325310525443758797277986944426532849011856231625847587502587146490735555705514863492326172040487724791152432469797934841346914027117940065215053031372053389906707591718504383748016954336238850553787501252639968823509494139760087784893652737101159730587189534776115993391735168648132624660733866588149107408931427096176456023469593764209177996716220536468589928323972675849946378988652415004914562637218980382629899788290573922338759461156299244774319276520186359235902293835063387813982007536701919358850236760111478658760402605315704241079087187157809356186941750517274127897248615097464942387581349147011502199587589033188867035328009842852090622505055762154648798191016127491201034528698786042149894191838058196545835923727552520036165354254130260051288397397232382968135089399894245393773053651877433865370748771277023868372614130591369169159982351533739677220287757604280910896026200373911130755432404304809617296428915548235668859899250455366665753506999135882552950686582569163499087947454148157593969565728143526624749597281154560514225722187449680856152790190998326484205644426447807907141887379132710395150211863867257866147234186002783944521952158477189046871713403487046303088566934456885469522081900937709507130866745694919325434007847753673705849416682074217856999922824596390119353963176231766195925468223953119949633522523599899915904289607657400788549113193428307532831286786687262782592748410622709035694292082585077635177277428949025819286203642554439508851476796043991163041461752575294044898176747493528274019727211095904179006131331356374423146968643979764093222299151436579352922962686388177785005394126140993114404822238763710881955500824176146844329573494031813769947014775135613321466788905886896683464640393940852001845776939823947422452430814052973568645298405647587322672177897022309153291390629940516241475451379355622155222597184145868055039439134021349586147019143757701152508191569751253172310460424786666844151947927841118869543221018643920854510245491115511780049897780952155438175791069804586399503687730432314511238655217825558987560535264660932360617861057107582444596829288094326592183038967655584977665862752715756703377456643067155004963832018367625489892196227888477142518663268843758272022636038416830775153822629010129340555823823022140305686523606145909192220788616133883928005736515258513506778966983502119476193875675769405198822811831356682269718800706035940626329868903551384615883222274812011753246434981098045193271233547462072981518011861313331580273706641674672610388626645763899209663132164461317323579215857092837785854265899125699186771103547384414126597231897417700010517771222190958856210326471317116191477740326546707155443123359417162062689800854470016160520196325531203385946537065898847865464922305602111978533119529513945746263456175808450018871303167717432202343449405473482051380677012422298113605653872396375785668018808825212364894341232939039766739998792277279411830462946533794955784384470646070163290661288637574064634662776441984379003834420790328117845836761097892648306140250944289975878462115968651418936873316110009961343221624569693554987713631109540205927508945098333014684887452022092558450088578456465046324863976471948498411282684807006146456587426065922041214320255003486332959979121878388409779575000011998958901321818910841115498892689725676730441885003965559268002824049991002937612513251324868030848157697334976046024772429598243911276037684178285877956232074147729813254359451545733143070672510413647694876215789568601805341157090538560150535101585219752119632669094421700588991974146089699815561937750825315679767561157142686973264301321733395867066611198946599939132513188139351226977491594784640917536763404801800533160165705268649213267321375746678058992720601153812693808151675524873415059096069589378036765124241892776128479439829829908964698682701049480500565445002777142682565339165468450074608517830025052973275600934637960488073043603741395405709711241270179101550484543321253470793768228762794088887371894886738537022896515650220944119084491483578059770838689432650935736156788058077212865791508308896541252779010986132895007759110506010230962036397964934697531365986666646077480650024040398454724104791404499197539943354379132633638830693681952805115952224249061935213012760021001434167311825303852541483729308251216066686759925906950170156524702086847828522394042766826318910672078254829802907348057120964501935658404846157933035167219728243858246521505277202597117534203989350046852298300188067470691523354003337681564610773897827294398048765245663070380618769195808751878227094179149531699023877630336685983151951535595485998882724381656984667986230802570470083039208278586684641754951643422652417483505837531126079086317507472173367429291738726014631863922927996584122960495016827848070350447892715082934892758479465975723009248300110748208567303966515556847590214940126405174676395681627520315601793485727509195951026440886721487707592621636401017155803984600498952949983705364613578401574764252875752050883683049586975625839176642189342477494567987956442915478874712994348389585133439684180311102538937118263209419704203404928030495842113262470162193910733507331473048156955996574142288229574418990890080147264135474301172017180902951182862997027315102105658692570365976328457417230701486936586270304499491250174556456083284360087743554741317569596745647286737376522424473658897258385148615875285275630301948942213368142438085733582449721359692150046833157263086697749418359972577876453855218743775751115626699155536336474029619470888943163544090098926613572257400676300543289130916255106462253398747382032771306005668007577143266714299953800588481396921705694771198346259529723742100103586359044109548749954358419837176769124296160285238518285822775418651946008091396221426956681228695371873643771662934525878872774991246752360610514433559543986291780203597654036647356760427277414229802636318838160794094992530768526013814700970321786171928544180864388616653077127793938693750964484743073474985859889685040468619683657072183132994451787563910960707415656453424746293073966997257298971086450642547494414255351723829041539900034718666331091307360803267535940288688378791854524515191079879155824726862933168943390340487038700738166035538361797189078878599579824583288275007462134043195413563899547855799436985908223940105074088483246310545564684730367324366720276707059130545386511988798221303919771449008895085341808614762130518870465538134831661321719381083844758799913027771611851720924193459112221574271647296861540642464270159111262694426254456557398002051433671303399923297753072234020309361342397378523919052518715962454521546366909368974998705455577160877646993780870898332899742231627984078194254930074961919099839410714371480363037710582037311711032881541264021588794668518089025627236523413807802583817205021845720452726031793879167291901577224701681658829948702330446632397236377144497299277790595871397559900630911932818714186882498168402972937503457693106473501029948411701224690862088477889964955111717210518890529690918498411435753508630533596051688306570546913748033994454831494641162898545864756160142593343178900339696208792919582749311651529654548699518621316389625679017895123518054802814540266096091954524665139811447375090979021287696699190378893375473432961262946183858347943017973193791730737461673650963983520433671761479704634326296794976479037849110364507095299682964938309043579015069469316470971671349678278444681228852553863694167471416338934283469262133502447085346460459366097678610819455175794492056306750615821342349937463544994673543828053891842866429808376262372709438252838343790780750940327559883495285007175328107600840876703127360790763750969904708575915430498108770677592850814627647364201912113185076042281125842735367592715789081040913470555637890233971453958463603308517750436893752032265753409712703896214162989459395313739680757542338029448811511245104126180585147699908796849563750218016390386932183788188890772151413047305739173995688661147350570006907842812095698181507548359033752031519196679894532217679900486302280409035240403959388980813488197280234169288455604243555055741291009822123515328344884826003047446430748960305576477441917131294278772355474661933569085505456261456742225519200672853089669809088698458631510152356748396475366463281801692261544769356554788135477499715972226398268114938169295621703168093254630731342744074144001298543093529747489040872828781888779790987290654480649423799267077270892361676798512518853383043663716721624322666240399286470555706078941397160177369119281105717452571568789320664711255495401448766391294126150030304901045294309229161757377639833744646009882358248924919351776321463545527322420151130514997103248624673946694381490854239333659214924683076131573565905600219296561859169966328841786501748099040520190849042389736447639339411022873857416898177701838720381245928326609711331959123183711352742361943394566814852572305555160435138135457392272375176979378703851312913203223542088496158651169975612573660553980249305483074690045595861413252458796227749625499027771770509801619415609226573081674833389192983471280269450427839719428079557514299580878632747658577243386201077896799678259572703465543308156987052834036286195940279927812182643343443012028007201536021596561161438353945559371113095858019606325729397030025516376707508902980925686592505035666745280824373221567179765627939445197353094271063795810565097805036117388775069038212830111664984726714626094597722417025616754863815515212881557652534297105601793295895902069355077043982579310758891958112537210417770579916325173435468143666588035531246298029706151077360193836078781073861738853566527954700766863193141542421098828703896818087879887056445730800136352709720247845335554244213990641024170498961397705303451212084201712132290786147936449906378491749625430847807418849119956000418524927053270630999940540139984892376601187617592306298876093699633544215139699123752201879681811161131862439045651024057271350643636898510679015255172657203886267088487093401053938636365838507311137057555116874217036474370664474697366940197485148490180301757938563033642873905594579659014355730405172106546141333408908601604166999228924623029821209983734167755634620561289097940284399367954814251990916703933090230487827366738855130891706286007229770123395064512161719561826037689849376677716455578986222389277184917679881565024029477227356702282376788227458376072799801626154628015548471802123897668501092198655284600640918325945925997760356823035854533873030016786162729794361201632724175508099529083062780190609683661963780186678459281656652821560198274214889074482626171052351742287439444802135941419508638441423684725847819554469401168902752217648617040890057478835842058807877045713803072854141939663815168766553084599587079451812567821830979838824456478239203656260462507569748001624282051370157404068516368778073846007160259867876624510688085821310924176924898412752387884121964702244329689344473448417973676982695912693917296443010374685090285969632974505076025596260416118540976505083978049178053676164911554054700302275001769012095436841926231181638641041850762808042162140537286987549651741944298607939904772166247013970194735017743242021600813524102625261838191947744911100367239160962308428853361921260441603335469480894833841569891685219523098866084608517766879267676831568390009261402747929520407992675727334871970838493749023845606909748159888455171710346877081294565105193240537490472551961896492549883939462979463316653524837321930975257256151249897331449143312485267338704007235115274917696727370141421821115062834495305779037262030783295556841715058354803723913502182968513439284243385392799457723988144730603621635315860563914909446065524124225294192083612247208116923216705850514882665897613667261249465589918676559229084322368227361271595083181073260057544466273911321483748819060471819007424225710466005306257476387254212589321000510679238626795138037585542675084214431773458401808716763064912299135786119406361867008423005740795975723476564292255335078340291628291848047545113449514749480386449908127673436382566966089854243299551252559880707917920471861425634860666132883756791351048922867377087843132431526381396905007664815704407953709218298574698111619749325091036514762349389049993670382289836201575511857253580170840050985507243803988005605821493221376772135190794861258253324992448021674742100407396327489235913717791977399769419392167016121446787675872077906760657485971999888242502761866089597491468644605054464570801795460656686272320048586909195839617975598035907917176482567967025018778802609601036134727984643408932709157396319456925359644836173190524534344206553125982035472564110476239378512495431742673233064654544052479470949979131718075720704272764077519611769753520226537093261294596823950739042271759621620903532820827230430952498618390608020752617920019621714206938480325634280871745600568824280854039381113521445576747742464414080439228141000607164221037777085830079420524245434747343205993243306611528254428806511535213140473804936662819507910869225093320341138152195928683367105309629521190391563326911892766532509928665041604672688358188974794961256256095494939330095121746120793166806394505623795335353864930780035230868112325244151823888482316265643413956256783661475184560557718807296997008940739810639908274826015944079699049153110746199751066701303686969896370725370043112325469489899671120414326889534811043384756623568372527054669234023229828092482155576773081200138005630936077389570762029291295420565325256263180276656421223370214035059691318025245512754794728995844786372875763908525144499334284487183212454038255225887117429649331140075804016341925685669990500086979847251448858364828531108288008391887556805747081361305644859571623730481540069735056962307562289880607589324761856708537811595773877712458833803684755985693533996785040853633989600865252020875859017720489636070491963266806273918715777193226980548400839027133554547866458300184211672065336122735759108010905264009771485709740405996228076071661140906085678150563037283194236078584818025284878966257585270283597195852550595901301730015323777093638996394547292754222776962546358396253931156376016177398474736433457644004447359324255281543039440495637375336221203456650699403880986370845444861648118206978973572300227023196258538557436575643053964022882033325685129810855541381584534975388419016078274856123213463367415710533308697567977250987572137965465915012472442145006863076379603350506438967601792732832063581052835995054639164235118442694172487480574394743437936301037467598183831672010747741296311756341430489899183859562462052576898167352406332120609741362825185444563150409360862048619372864040317313443136507230356943317293605820710724707763368240286812208489065683074908498111774075424514619028622345000462981442264300923011364344224995918410832976495255644736438289060599952520627240866084091271591268279772209139522856534915220867527272525055235368418486398288488788874523720383573731190203183247532983932553999226105604267466337698611440395538010184779355355096029586675667888940833054485755091879469441574203325621228729223445703903063050908300462955813480806023144697482353198480032990851098079483819836133071800510763950584847658820661819273149504537966455915389984819878584598136570099868941654416171015948911391023380482436456493204081973382903825858452444545690444827222516318399075687210107845077991553112342685363845126391846995348181678760227252716079385118128528497644230323454399377513759515379703446765923434032118204431104732603973936880259575887942906731867983902730215945731594102724620809968568310768059147595302669705689978465386380620633305557276541060342107451143667880559614759249678612210058115775577370854145123527429274208725952188893610173843493027861869395980399500509151735150104465276681980670767471405550554156444846161556538989586973292721578753025197694837731038303804139958529521487572228562471545468665254828490682742647910097981467166040364872272295766152091883446210450184578613846668007611670909339345324804166844259170705424408417286167393051925244193964183518391034199939677935534276323414371071672042800342623096406991213828916934010831016134924462541323304326934253604187886678224759468244102397137589126271068621971587105415836585352717915533270241177760750512494406792122760835378209338465140976888218629525290180586416582377515932673422655761775922428917120186668682766488931842201304501533866330478438072652054421762374120222340643393473223351875175013559245885147136767085373422369431167306537924771637234238845813074258912389696598649764734732950222824928466592146902743520461870846501652667164125177614644796675511481762517356504853589562807842144718813627353210210230307831398186321587660452996568985178743578639742508540989569365909970130868178305556759847320662799320015631433336356118560048632925950002028974042255277426477373973720621461882765372764629066919436814890672930136362094790343067805984455439061766626969528558434184597282115226130680842772785024660724342642904033676559871897495650908390467944059168014304987775202550949671830960950850083934979753163841839436774015986218724730184212188529591250973486241042918451353159243603354848842228681436348018210330962105195149339579731214567581202140928577062480022819201332852863690452622044410552170199915672115786403054713690776080916612192792808556604975513543159511646050563573924603628287069121344995646714281059866418213285596124962761055557418428570751419850547302151158240566939612663099200393000038408938700434473140501492341600747100086601018717107606944618026360679726413788283958509468705712587780040971671908126911344038177791553875968301208230966005375737181882672812804538115995300038215005808921317119852700528279234182180290480563237145799957703053564752937475860318983000355877286099022827854073951234799056122126530239421047809629927540348312643998982383800548799664526496022614018246790681934611296327894496975120140261497211186977150637966385752604277667696314692055505330627754554281451873286349861982763747310858863982690086368756519145504244656641206355739518169946677178705350420355450158204893310015683214415059062552481946635563106095976702198792121382960719539275198313725872869280305048347976521867190038146300557515322590328805607165583259007633091045921651450406835424983555563910368264147025966801993367478078315585268624231592520483268944414383646290560382294962429859840755512903978071203668882696609343973677120905001433309614558495020866822113292430372818124510381597998748624825212992724481723414241119380224349324891677296160546269575750890875511876151300679719484146007126386051606077446372047508135098116163497389052290913920416311485768324502036811263263909500373386269597802897552180496731370687639348875713476489635991729209954500234325158794934977479781464279597921511977635921884929622479753672382941722980581754904270119186863069646720338416845670324217009118095577375338834462942010666849010328350200597555300545204577971079448370998190488930851539380039116186232698354522301910376192646257088641745954303681783354756679156836509515783855993372356362496529497371453769535255691903515075594765653838360956683599503622313034620497014423891269221787507914857529480863720722314798183533734671690451913228785252722968607562342136869524082461712256205386065889023635892374451774639885412472560887177060033053940280080295642625823538284594393834644872981919976222808943345971620059489557010143308911473754466496928350208885553710518414409769676048443735817514522002735019463295608616914425046137901047972875868292887490807147952655752652157122003631806076642498700314628498331554519372819832338794702182029205588732015121258105712473579169052553375782050596488787807433636235401821530994386082414886981296122126132828407412796362870203108945123031145883464219478985609654532028146616952497432561555407972486678937447412515169845800217577815092519218467918476709843088018943276741184249413494202022785706678216572855368919425897230919071012605372794637503744433574836214799607357805301773536524010931353106253190470164137547033115572109608489768838560014091935909151686056856156031199485073318695877093920428450277270175543347309497296427242996123667092633304035683186050089268636027471099602487077156617354083393418558285512786226993304856910347569206942189901685832622248815376815446815316399685231080883342706638365400515108491621858407637766213477792577931278688126968153056386138569136725584361688462710876917114063972862350338687759309041891940136010222581368078791111463233078647331634000151141392439060486736930576530071924149305334685864902494287617503843246850805911585582276979185363161681641898630520595385424055232683314880908289724032145960319489769825149828113788443807904923529008988823504046808170332490703372661346592088560123341846500848474568793066654962463777896199018771285580051307282618304521767364987692804779482039773190046264424320363229651146418489398845865229253688180827369934651490175901465751618596181170794814012142928798531948406712968456822908567172010722885877156170663565848072008629074675280870093013460904925484403802869032942159322564477300044806679166726749471386513406681375110026031112068268306714604651447667384989520915323578727288252926948901735407489950758047776679728825205141576505842988013846316453891502429155336116784155430946013898245529377754738419209190801590679282494696208570784759097911581940403492870561643398433671615883329907704790424281614422816276645734612701279460274101080872785306458354418887665726560565535313302931316076755042031127293893304872693126691766588313114557538706684549092705463452970765029051685045980028486177065078733559424119964103261613099809703271385765580630262745311785655486935160720418410828031472097041721214656622495047878349300108837473449704542202797245885416147667627530704121930501726844192226022866460522155506200335017933333752761631864624304300740580034032222089984601880117963025015694702029488371753589310626920473564203307376354192592904619736910934524562070896966875849259356204793483886991753752965271915098938378773404372926493151118414651034491885436570579685369801317772076104450197791919437301345128484514524226132513485387056453824433073615109744526050653060184794700098287736667350605194383251506963602367802525617776594322057073668921802045702288436217969837105267734991433185990464869635522692822983633992736926770952590067961574726182746276205341181740014495961466637478332669905725376767575494203217177688187413275287855305984054083805672364721612482930091408950192671269560252445870529192409872803084174315767822329235617427093416916435151359346235915724673409999084610028771763153765777250260355270081834684584443143078945187981878241065831738680542561447804728435023606778564425354715850013662219748068681690376734470324099543586283720347568099258395876406288923458400799376541121488283707895980880348690261805793930149351711913061117098216078694979934774303258966084548703906164774945913164902265903716256880854625315978924335247218719666636814981478727331894830665422425259860361685582523169898365860880014171936202257189089129615232145094317073991678220791448127602802989205231471407737860205481101367456412752385087865029561289666508043100704516707546437412849431977783507592142023846147459847470076177749229875429127432976700010152776854537362683532773921917357788213333074591724166773161170174777056187863121600910889866555184398589204100807868386958565216448777704029586340366135370510913608551246921821695888444548233672775443342793020423191335388238813028407288781299349546334063057220612587593158566405071262010651901692592722099989986358697351715196741484828444721486987450575967312991296604639879127958050742232909634274811660211516654635907755185599758874121786732424518626618354129125003046721208854645265002133671238086422138691258261843327774008664165684577652720707490006822551071961038052286590335142884553729047518231865495534202571847076473986593895358800467563076967909530688601615176488945144241015442025747914036115339982394673173052977562326420013693255769770958061878060010045191175249500978032742386920584217075605349399479902971016151053644333008231976614211418092107909954130288354779631310723546804128185590230854214002792628301182495345156021539645381605192328490365893475532605546102427714144876174443599798994609715884971198573416581884892595480035821560764365759078181310546423597158489639753091726156551047257236499099901335550573551196394305709136141967005503498528949974846612720604137953172916742985903406869146085431326248369230951518523332716612194365981755848796417576800095340345757621158942901091315875414219564472043481982052964823488156557725146713723171810591649514154575941724819181471736243616776436041724025496703421617147726018504766439377288604455429294706431338384967759469039103329875140270587778141572561277138042385215803089736099809792095186782441861094105282333287030322022528564079034585637062643562362257705076497184191203836831272116433280389109499991944297341906368322095090669744971928163751192304947787331749608458206146380292660746395678027959409474934832370192265880240296500755911080970758674856708836000487409305706177940751473208308711507846529976183749051414143822032596789747387242073832783135358818419773347062010175513268178674228113544159653499052050315662547299052269787050415387054775656928292308997182572318275613047666900518609307458992915008382932724956681097172319581087257881885888687825431059164332022194353303033661292586389517867936349712175706706015193540331700700245332173245627130338620259804326026642451819149635371391203663230225942603053497160762153749075885041911224358031982034481463643072606828901663665648930931104745070795701391502584506728002085125596909754249690673339942673225154347296446140426743891527633979916335639545159096936926066521657479721666368773531610182423450371198894459681564189014220753428510141206407635254389207249357693994485038949175532803871012998316360306628734729538128777483691697876664077084829322641799421904961566618936522612748733085234910546422571327290955699242786560726526695888723172060638455876347334920957717172550335840579388128121355779160408434705549076608064485589287903448710273467211847567916353118279790015700131325704789187954067914003971331329629172884424412198294475013284619671207692598156689754813696031723776837210735050210386775104251085787944610787815724917802214779727723272915152640147671993020088523669386071941121729922806132621555302918428337998116008779578707847623325814800746009500842565456712697228228364083336072948436839890022264552435903846176755734647572703424540616102653098367194122222639981495748683757708306861325364623225831695755892286111214303042492157445870928814628314074226160704450311966309912446309693043289392361456156694644929056915844370907144067853474488369326981402829032384077566967595840447189117518401500577907944864027953966043648863004179498355887782277719464973040582294069122960952670232901754377404876269897113747449546787609003845274018504041289035210985020880309031390532675888661035055233594567815281442787319677749634236898839948694201912070698032567161943121636284104406524556116478157783667571399335634367283986700855840308776536612394233906541270611286097376887807553449026560698239106831271637726263004490384638239193827711601069295144363480259353413557445294839365123791073403082483317922800129365454870091825403972798177248071650145088414185304455764750572020801943343593306807911057556299092383226616773161882563403521363650727894450452432407401819001047445481287522473368522738681993082835270043876929306816847072778270042859651025603059813826496623151783104010635160258060098845787970522177665473865710723331178208338082447992399297403679762912927083953361575271850269171103082095184088431481004058871816954836311835807222872819866271439334743146153246873396602469726769556878897580484839770666659469248665800469231998086557104738001177618938801841942504257854513853373279684055197048623783444649042630039920877822420491358871783047452512273883482522963984825560962049107092616795173979814420344510006413133750801231597349432881910191695224001477353948130003533235844575485672571637643617487964711922205880419386457950696157738985714325376066820641636958791005812653639907131463792120343743009914692191172949959082817746576822140756503198965744843206972195001966207325179778753142015260213182454746474610073645207966535283549550478418470322748072220199922589395799444074628165607560210461448268688872366190785615568303259532524587163837992085591337678728227766695917967406990554457449085583196915352283531089258558447601388077983670167593636212396482123527469852255444790687453008370266901532519222967483521177814514131840753237754881494805885283012107049907210591932952910583491147223824494121796959236349963900808248279751929129680291334577945647642019091935628471487880153598526913056136164570187713712352078426219894146194667492940425486497811209554188564854387589621643615907789596521646335498039281823142660311067263901514372639269245827831683564730494784581373442121433593772795763999823673138309063710895328967018847906739120206874778152655742295983194227292251824962569817417881072689499318831504288071671689266989511151430638901931098616137555211879471727299226640417264785075474968168798128717433425464221791015138723222335394733313458508253159166536300196429456406270397558050399374979742994480102468321521084509617711660513586143632099380180694536455476934619527534572470672886422449324065903028023275774252611867120157562704647298768755787354145825268803005727008324177203216720538687705161403201653414053642344427765485682197408828875399214633307855160072425806399525916107282174270255713433203373735985458890627366422189568838791100216817274606117556920607347166266426111251318350658404528165768407686424175468557716034342462133035717607435410789081694719941424090228801958438812308296049855885493003221295065706400428056132581776655615013571415874494162180124081026455356625560119672502689157274245076920347041888874653635151725907402997392974846635110473741963273501344542530668165974229105920168464598666230191240841096956912425226916539102487635956698318113682350913259644461408913249615325149020667558856791316975539364557185173163934248597321425485477708949853910643184524084216072870030790955074262046822349704208466477177048436207254095985397861167601114512283432906914915645161993244301087180254324802059902765153809139806715053385970377818453938552316251118188872534887172359336405420847635132214357338314357328693167447840772719496396298945730543629989898784036146891729858434366924570385076015107814001795526079442093351178315991767857513353984130384305191314935623656066918782113784245242540578204165586272902638288298058912127857293777278900339214182446874943146457649333956108880474556081067802453522563446533403549603033593533018573474981349689330979139397713703265017097986970055462610109692124974667229344048765673283164835778817059037277934823945548786360582909265602001182212888031063343437836359880023171909511454171991557216736587108337108499055107360276528372675160584353650435872410012849214258901638899224765953100427842116957858135287602711945300137980394608029482271579355221174376601392816854155209684533851951168346440070699203708658135747873781449279430423108586873201414134549772180741203154120377332388688332936172253093127176882389560094548089532915702994456240595017946078816868459454431066233025775729394578988169685349492297734166985123156495009092237200405710160018734813507298332920085661566326319349608609391962006385617311644596863710946588909709451320483881145366371358917328416436713136268251962474772929606926367478779767435179652951392982334764470409944462031877240893762029638136240331996431274793159672787188281202362791925021803060976499029878894076613757017154812088988065572808093720365939233952942332388993532431326927690197534766483523089630749313765953288404656269620454888110229040049178834004858663722448552491106802094110637629686251742330140407551473150117418350905690269905975031351568247242008489588792942889836210793092703444418395501386871848414051044577015645372754079277951363211198937931892114013790678653301867214334428671308757764631573498385015078901106001918813097056580797801798430979862536202657499823106420597594282330265207944118329814209542086933182771340115312967408421705733767323724378312365432313404281974538104998898425460934300575720019578107461846266704911092177764799494738048941680214095598885871757820965715126058299896520589531877202317763011452153699666992360062558772776508478588310713242264305944849332235686065724500206325430202551897591773661556492864833700658749505771261130920903012264833497287165324527944652908699184223294286949397473111146734818885042800885451665696986655147739588097670183232745712556409229218527317382682004761588257883768525373635705865704575172212584293504305707749049158687023078151020218737909231514457821920822781453876513429727974183864928787603259129334727453346933645378714453972368394385915402127668330971618948724944449695581894169171472066495262473337558127838392886738589681508856411420328784868305174644341251282126845513956265656666287608254044062858609978517153109869643064032258304264676967449175707028024432654819465135416831025436127418644049981720699760371704379048499639587442315474841412108171611360192636652754192877253762756392133432037717139307655171617041199513519629371143069712398019339399093682882649772034193574956345890329079774792274574588631436763714388608754394393616826503166322563314378399519833147316272591303040280740982666810709015449386754616366192314739390716748877386883180643674419880437218798329300468859063116970797509235273004164744045351515018489078149919892734108279089204291488487674333600736000229374400197347237382191178212484252410403776853226440563890592107970933512121113097230644755225991754709320259300878558879435694025595305027004585974865677423390493275846904401590548972080585761269683496779841469327013081166409196848485944440632359244328520676720252656213122619756390530699398758147232426884281539707365887302481172290934112742675329986542793516430210968920641232747709112898001245557142086848279057152109458229318745218551834564982960708748698262122275448031061188709816451146876167901189298556998017972155354874837683333188460098651670168651533340641502608401566837281171037677203534438808086528778141593443613371789360895023644325125068778339571763519587680810257166208552985246421759558585741928632877907569872292495904711740241734799232281566581087415677826921720407145894688231362757701253804043016031359722884168347939548413264805524041614442491643686817998187817912451275333340600475858450685617634307417516642296841666346722952877779599034568437693336706055490282801778954831026720665940404871505554351207556581953449721584733013351747404343542481486864131700200536768436340069463169682326367181078123195959507625469490760352812819977646118575053591325156727636883442567002645558750304740606038386042586875518460300777061226181625391576824511328755777476933681410125820698599720606405188780710385249488050118180923261219001707146001361923896703161370072599262163401829552248700837466122000660107775358310629332284565350008182601271731094295356991022697984662289140580946250608348193838253550247780408552861218059689192301678572710309283902988564079266782160082859044743189031136181513417119436898270212853306996540614398383831870817747310585805080583194771853866376438970720123710990546255283995811579004192670713620828558418264847704803705588903309065926125431148342695924128139414840269212497666404618791969940487846882265857549467729044393521353794982189919993344080196746422566168774665451086267572809230315201155375127171536492694514820248065611505558360639550116547887214236366678192182960663358161270095548057488905458293245991509225896600137271871464534723091065318336514591349263331659626601378130666742452474237562626854367153008046526521109957903469404284389780834810027410885356483028228088748536884331308578185947318243667607808941266338564856896344720018051925615996222141129920224411548987986337394999484143795286961498014759859184168536403620363636835976586931078253787066184978789142358257132424699727515686987506604211653245155521241273864939859166641884313441975159632609200317463075830201636776967677267284129972494948730446671907521947516521318286762829463438490485487009770498028507018383876120773168160285218880653929571053251629886756082369365609678763167483482453219126288430051477008312969972743380581955571130735818565444600440076139327147758823934821945668111492511905749645697661681783157396456492747727384358217524046374258972131762364878189628180996224258083727541642018863510017674923517785481242241854906354719612702646850084369167677356210199350031067309247703453799341173303950457517328073695188363047673701658767004153358568903528316547194240108237794286884645767244112512670221426165337879379495134235775379926473140536987516195843328083296168553050689333941671176419481091185486923023256201105957491100780019494606644696504091826043210272867322981927001939450019978230148666314596864028779298156455383064941242553463672712349372862809606199784740550683589188606921470204982111215157863760226969358614368671599965588835617270759718297773791648372501364895861149146704287697836464387876902710728717839413688747919746423320856050725445650758293325979559920017160276577984876173282135931226623664645469595140723560465487054701441203176598085224297054483362936684293883233913758831620323567455289514653092035419497076228735467116046636797860433068535621262934552412832194820691005634339312477198744894718649976609177699511655531819572997834164698301756359820581281449358196897678441388768817422433430847913215479500055250582213598099806717371081916984048521338351059348650106841176336177508477921855502707782596475163004392387457224188616182423943930261190118225615923688723345723720506426924440793099601747272543132974913796425348509906660266071113424096086150479596531883321498312965183792632478205676698117974893648592222658509541206207267217765914799467924881350056429475972131750105709847131726506595114861632079884945744084844049015552615596391123521927993483273347625157005886992103484441878831727004391397047672765026503898320873655522925566293546361148095110973733967547162322305671855388903045480348169937430295903849116742826942521266796691573993954489358174182288964117298561432898735417474273929509946285776635230758802402257736775145082400841930710497609128788784544038035999969530691370261442930019451285501802531689689708146734483353242406569337296449507566011189916227680572044145161280493127502843336982893122599252629243563912084548978550564081005188780412819985711749490117447780634976686663199122680749785761427638647245481267935035137010517632247266360559250347369663494266069556522275704412720047473902706513835128657045130953761625956621889549490639040318467350927960332456600563439509502750094897462978329831471169257035546613988606547344584243714094435914575035532033166806133621628851088223425577100514860793251017733509075758037571431426351927679606328870397809675833441171941834046919727040409084124697340655392187630067186807773304948724779164747657168870414043640334094963606566206691059119791728144772025632579149527533893483060393748666997561538705656670668697884595861140214349338587129698734499841713376670979895082244011237537633632234290398662285986805016590536114801607731050923267497755219783910646622943015114201635914574430517660524358404463163314634976743573467156683276014761934137096778471681373841730387094097186231461921890565899209117587548836979739503963472834948077566514938781921153343537708423369655376662395753666107213528114157087013208454062444230326193263456384713301047072440017218430659117964650734340937748278399394055208413324417124470354905150812544078693987621082722225317108586309638233359559436559066337339278652634635197729158845161412715891874414869755581428096402619449110958189398972723427749706348508026696193378042790972574027587700954476669117610535587104609121770053023321254673680571397278814012404838535141443296282275733680459818059920034442038159672418376957360274436395075011706696695608154188279469455883992817792409758075243392298203939849214587959456278786044262551052631641594903033362823559182345522686335731429967075010878794695346513538903114381048004004595725494197184827906552093505568030248020766654116873617141502313398710924804171320874815751993910302256412989381939408766617189353767486359183819510392814134489736227813148864988262970847072438200522594086957123525342644161728767312930172208988769283409643023042701870720271994093639488163970370874280152721642874405763983900524862958531202009516376021460717388175790027040904777922401147898798201963347407893417794991147105207827721318383775722750928424659032397533544674945422942418771651698219202901551797835251569508881752198174944758282470845906457984248023311815922509674636810894348017140383286360147286393404109647104377560736792660931727919426555421732022028653386832755718830889909358485854121984350590811771875184708833136163691399550031609307289880590026717588205874097659722101994379105246454654323595480577398001517784054592340133323896927018810271102276917228768705659669957503917937262486784596729587734522286164620986100391968200462691466789711130925759716611699503984267585634701288565194206403401335275886092058276202050599197785970752575037407994808912886057343463058935717887966030140928133569396209325721959690957132665507837386859035635535614374123353586656767528792658889970917685772193105135897957833022356900967255514468565073708351136243700529821920595126524391154238295068025983537261781499752161152578492123482181707963224892653991330524484713488240819038681907473283010134469506555410677373169297955185149699972038779850780947627372329588851160997245506672301809277225650761043866430198331578119271509256710091429060921592214700895609805378550975775689354171781642957582188138990533531821100140711953683677047897327028499637640004333342973309942091255620571357039208583497833666271033998047832470492011168708091747446261953155673958441129457808714223296728497757651094200876718437954886117572877707632214660213518632571257856630193460535202211665018114427692754433495490773026242899589652924665539131808665208261978621579053325601300617976579012217473263471634762987488747632780913964355862731109492119272249717843613006508357435404293459717866786901173312523514008430665872920353935470579577892873862777964339646965150824618861571341464230490627247904853311638771343051938722240237410325978146461438158014932507315816099015548990675289741426506892723663602167605507383666562150675412238091120805676874274205038180676561144667839949435142213760723481517773361346776490942041606273149047010184608015668255613814463122063689146285378895198469810228970275491102160750788425312964152255178905706522137972420506021500292738383717806175426160356350782618163693554870054997332696018031122508792824223607039624874864224057272456458364350180971576298005112360093309576192557454040380584775167156057832497320635270586560735421995910581709667251635643454304769077575727639725982424595011164643278822140678246813953177978544673541390526687541143405995565738065383906700302934691891238605731004901048978318114999029500947359580142093015253048188518629893297185244732167985983927288639042769613055628605805560324380477093615682963520629830776142951457751962476942662889140593841021171614352740446297188148815529906458724333877547364099050453050438090994198238765225804194314370204295252343172718909045439114817121138718084418265067083267019385419826119345461724596879473961815697534196701972691097198686948881418000663031295887276191911440883188800220921636258671877463968208637890711853110682686384535880958792076122354899114238872038633077663295791568664275279777506043707148173589163832180351559631274114151359314511229222622438267704696677470873174292626543561558250622318316986357391732292850048290880414396205663937311936777464399227591290942584807981596133005538922041556147685048545437078680334540903575781500022002342717636148841259468287762156719736504979720879343351442626875356643095785494957116263589799575542680474740054223564814524980996236482393558793099769378942858670204586927365988603585990255176047149413913788112291771708974725204248703456702283560504098476132587609175566284430715132836137462871777992249115067131267237883863371541518784057074976912947518485904908384098241481881836295888810614249884814268930811642306024798735561843437274154815968189519626541943469813549076514546436449788611473753493016562232031203876624633521214628618503210367284188406621185349616330887314611921695716734885149089780040262477428251746466080862700584879447719018137939474075163741265690018466950185787033508420302653610352792812897238150579955608918215135312913543567746584713614217594577250461313520177714993930064230046018968708480510534008237117941008633288737896704678478516427515193996511247253721502924805242340597204734656500676553324477659931400460859269078792416385043520700498665580043998655153575118499418602479651780156705893466345042539977094851348094894436897658051353961880147783613656608612427049540053915742285833613868577747944939295544149528626273696665288763319174482329593707521113556226451108671319230990705218316227209365431803851960929488585351639149382701959374720428652820961853630913888504319686619566613865032376166107978763724625094838706167455058749021957425069358949375591673443868105790448546587236065902637243658824764543234811125027532138722378662977617686605978853761530321937292381647886308813420946467821175281705397895457121980136574191279121951410813335712088424065563592374500325916514020137152429070587250540193827074469439298763911162975698910719141504392904235015976467962456877105458619527209204272802500061279437970263918410801914916219712371359786909393357030667321738857191013881493532684241167848365698885188774971988061842881887887052128440846762057675265232925174859301038695069753437295577555651869819024034020607410595530814741669187095344234714689887125899954893864972797918178707564578952986435950731256518130208027819949835836285475818107062115177262392628986616231280049529560199388228371803133676237659819643700762586398622056746733771386861145501656776263416796553840855250457408167852050091589735702883463002863575169563336530450097255951808790589403330787660928442919748805603519355704734152463032949708091192589619098137373292396607155600200660145999707535063296690244392859240451160140704726960066216795739020387596740155614627731845073128263766353902809720342374522188506411954328056484271462413512066556867216459360044616161157015899186251354150431909337593275347682073843010005704114721988761801140640456065117911444871370130623910047330657971277851331479856583168359707636755053842920106734452050934880725078557557341929386902972127840636239192848092146692002194384544974459616596043581821234404461643550438561673452718405696461638876348364979710964845656989011422644154300156684457702052546347067035567829349119417453722453992524516447024366837609195382298115986396456681971463262280023239778899652877814187967860162957598792244257718037083969843807415250436911755677296322129931965080236077880085756655726238230204748425269045343676493724766646364152830145121560559447748346521000640322605980139185883432445080434101127993653949731659148787640345475855382430891275919437800415176621509401401934722908494732051348366318447389164222237875080558796706536430595647833033768434090470571298820838935743060631958644496466785302683020321206872286547504896641310673705920564897368982215538921951637868656705241670561136653411824641048212069180827627865491130143013378419487987105805751106303052723337972833559728711366456585603268431326904034225514500200812542684314850223994245763575875751644586786731750985107285617245524360510598622804738220029415897047389872416080805091158170253315701835233515338048118166394170221141391165375069429266882286611852992700149425673768571180990749151936741348870901428365189385511382677657770355861548530067845096211234134390648441713812698362337090996971933792792176709860876845782295287449582400651017235283113357032820295728112206251216843052286282458982522239055214723139886564710265899097847649142224670529921311271666569779712862285272008464929147323487145432846394684884201930153701204572455781295806765870047683214708538276324357042399858424061910321618144501667079150726957206007748832954604876060701509600577729490392795900636206399411003180373257503309807410457277782137970861467631938608379418801424022333717752227016510797866660560958752306268231554594257975160645245132445538369551555588550540008895868209296332524093618278886736652570632198233192395169427050732638779901143187953430152981460974739769032308901499478314870335601576401183259079945129726176192651496522635312740181440431700727855632952807279129368045498510117565114300884149075132919113045615295275212249993743716689151353702701211471051799782572942253261447779114905636475612848337610529173131828229092224604536671528747163037750172065760672790668487289849076950881385526090003911717202327508047412845241961955512978985967820920084350381622403500895194890746753921051550435146020206777520776807665155822043068491819771616027987257285934076746915084332032236031955125575182930043519442039647985061416856694432340587719025305071464483311334728882812795577586861474030604546354183124896005361389058983008747731997870550474629899764710616020928347405633679752388449604905184168440093656839095281827357970741766869538392203405184198674975623608252773098367796121894857247900793836409415122624747089398246839766193247736508697557046389125278119782818640050982801816244514114736425863595335242606395507640656114846100575673074501833640442747616208392936511697836414955786662820747972233592149762750040722713167393139308370978233582595982674482592959730627333726690213613000699641894829033558197482949018303967781683985855990074475291931197344442560351931752470790423709981102647074586785850340865888000389980548782910241368254695592972543761952235250424143255343124592189564219826954220288891231241993176668161410757680916658126382635421340385984102305574807899578201998950236766163035679938829151468850357848197483507203441625536169603858437015758690185998060023216919356148133749038936359657402272460658623602953818072826892865984747874192441472716311156415127266020740025667717083740418566758827099017516107688077955578917267896471069896574014868659191091209751780983301432729916330023769821123929589022925025589681845929283326251694385274077140442799262747937098346118389996497977707671276597852849636963078470262955903151984425236509696358463529066665904741188630629620780079519790053016395789554331223277760087649232675059523837098900657812809287128508133319193094463086947633643346892506872052444783712995922438532678777533137515828107197049773651686567643724579035146176008656141303134632251963230966369797847814591475600119097134278341131402281834126929727644283585924514256521543173643689552941727340684965937144388662297309486671563180464706078073474051195855295211591885056239131119056907305302435393245077707541303828333379436905887879390600730001790726024046995638593384494383196624095358863536840029201011217732838875045744626150114611407295950353792806358483838823676705249919755803035967793960242985386987972003882789861852583657901284253724853959954938958926824344665655906484412316395594003395986192974958779546822217599168200540614944975524017421038395191358173662157234239132188514930083521706686174147363141021569430010465952104352574141526493461844404118305042823613406357161280118492098401053895296808702996513591060704849665348365447554463460774426919699766687460662078956626466935280941446829591304491970325746744403274983042096674606062721676564461552101813027611978174838949405186465586761384578574039509693674285642972223367871909193654812815921680147605802979342231486769124629076545958925681897178520163481927558675162292376144328072525049094292502317553026238301393931573003738192618902900322890379333110951801542154737495063737208367818107637797118981048734215285624239671131007882395306159729307636037918325546451655051474400532120740870468090009301221021373284040135310779759622999143255180744376319171065059245103747613149677805531672423923983904580261697770924988335421763889429019665817524211909484814763901977754299439093488692915552249508398965493487445470629358754966701918367830525452417402202553460564561407472763950601737258863138789333603009216394355356895978243389350170478205849537596420550927871722435305307048784653914888697701546003982823665593017641740372999819724443226629016097401650274358874813468624902453646052186476691486303710092202155329197726774434283605266711728157420187977937350474239194703328834894529856798286713289544927610967278672932806188230333026562136231507958717162082126668382081605536893437349932700543227877661183252556690980046417909142211520763850323822646162263039036314509928831587830759007058567260693022674228120268735558733192744848727766790572731076663672532107306479403070545912865886320183653036964802148124881890063465345453825943133360479244677462687001933490681849660937425809706613913672674198002351475227421245752125731555128334157276893711828869630204292267298075121680363391151395376395749505845452481087416765919922502009583513118538614727570108993155797371874801270253065772635478677177902470159762957181859876513187259088505899017843106806791068545946829703870588302229065230377615713495695841501777829637602168069053245009885518125337103567898452366003016217467934273204323853721632455391956049952192399107301069397735495765509017547559283756572721332086392644874036433185849375699674286412884337671485508907423352150761332838859555881608009375325635233143006197549584405681244187398614372571442925537890025159038685305378061058297549706501570892908938258029085896435043143755765573159438783991094466227885303000591326783972023029438137982004594526913822503399760973401887398716674644020973528381756950417485707324865676569852640012232886352965306636954443360888825312192093526895921931866321126571999437418450899560498296462133957282454580259932129604500148699793745394995627059403689318466786828282590023426322793379445128844625269991986737536194751994730935189210370242600203356406919573199043016644227327797006099909178048906622006441449407687391956378630446500607991414855880953637042949600793002556782194613465825014163661151951039946592123832050317760515071429971022589640843869907343283081851653100276732344783090065588500160378439973412652959191169012736776052074135649714884416605716669940782271440175255316392677799617354570532119334654705050543433586629892392756867183956160562897987173053023702094538382131274880977429318782251907597975874762706112853294201333330217113737364585296050966673594243810464061375040797588186672951857394946118831300033889628021366679164502040033013658144473948630950512960339492822435289396845482979498175669777479686531748571226039430908869273518368654435353090623741548347056683705245937003294249549455111181113741345920752160106696882179315839311624041527377178588483129710427905741704638669055164695262657036000309082496265207382104465747441891704942740158903397680184089432384544426684148849150308714711771340707132372542539123557618297483206314065453126684477842953297978860175856684399270892501512023516264614953401608409185881212728542708195383022894378957361510670894147881683118436263764824456700245632056757794221341071844799741173303904643504357844846836856246089420382776151702546001278128373680000497818161233570359015208797575609598970458891019052236103036214096893080709136946370493056278772131004228981151803189146243367452660278327886823473245481953744205122375175136247582186919026982084196185618562830083239040618870612144472980365291425314678575268616019667913003183758754409945963864506818022802476309101001309614005152390970301553332906426859004509022397858357267588293564274927728459063641311046304599221783608888024609663824214477748061233050843716455676593404015607571290766770281764462764097567034894125270162868889889228294030217282605328298579207102375479535387672094420839178468099135095013477256877949012392489979534249264177820624640863302771652434928525479214261703150036360392424941730280574347071267143097244297963618726149963865382715344155364016763356252370909481978083334746541227543298803465286592255963743736026491229460128278871078480148325739287333447200761516855873709437441357933319331537100726027533505478658914012756139246546803241588500811224444546812380125650832828731103370674884285572225002721980997047888234517624191134956192553109840780263024063642420493947996285216789362275581554499658816727669563147555091615274686004405765365027562538863982229033377683922300706704075970079954282575598113638587765950896821458931238823436981469517389727974694381975956581027490480646081664669800014152980804298494770323843022643084669944831923080047299688059446787413982929677990270566004510645454721527136936622606953903300707125065058575993508569663171189252216243335188279010021127276834611113271488768081176660942696476317622361615780896558730227156240100660676821131749428034551280917598194849151749369971618098527062290046128909929237110907055904801675982573556682979422260744484194976777112502743373956850515142491941056421211388088301375315794320575972003758905955194193017479738643214773851712687797512703371871027102038589900666516309908208533838694311533678800062498598742043202840856291235136600513831995721356475134412575734821127831724495872030025458343177168841793394364432210515806748107254412326442140223167627859076864591756669734240690323103590459408069338810180583760589365528552000392020775134515859219079593652916978357736112447988877826750880670464664181730106715547408058413155174204687839235551867932986876461477446238589188261044970390759195562454728624016858750887973797913019270606907076113952556160430533793803567026045541630799392473500775707631058398562956779449611455362972870875081660625226959142338845362191877973613096144206992931711712557574877626750388425035956833403725176039697530799047531624797006280518067880228416325370966796633385102514629155485612648346347029154568855718015282301610589489554629812135388659476464964640835454997519150318017978290846987392463185170066714643942955723639247956897929111975946858729521797334170581798317787914031634906744669135384971761153471596809633610160796272477585605177146215507750124155408316217976968757488464085847476726544669406679254887019556368164695403264517865996313544211540170063874822325041688578585734970799148350956569532582699259571916138120949026817232457475173616346022735472490704849728860953028041324346302538166801544374662596138774881677121625316651610501525726112056975165815604293450268146567982733083581759155894007090208022865467636572370789530290762119799025495950006573930745597891166095925640928368248022132641532129076550678188148590402663099997697675136464642367401071706749459878632820169448315594761000029322160378837494953818283725515774816571038152369003433698540497704723461275283395977039244241366111257796047182306291642315682087215213349388035323574418138672765171328749770990257566571681132913705525787430860669519692969369755759564490622619811459278775704556358115006714929654701401933733308073687161208817956567040304475859927270891262041475997833542972369649291491780722951312597664761906032805925361236676287043260281515330120788550094585297317216619251004145914333827345245317808484433299097969476504245512974763986912136745486961205563376931205766745368159765930639082552657590091847247105167830798432557351428203247324685093951216726138269663682610770232190054711151844665270474798295828980064440738526650156567365117910655049040316747355180768414454960939897408265712524398106494648748601734633423057465880613990247762250552206833760748694673209622750583215211557657184682810184704448110938432650585346370251581479989916040241173087787306516799626947282211031073005616736020572794810667409513406003353099651231860514031039041215797053067697517287636828861882687460841104792933915727811256947945564130202878942650919598438059163712216334531716493355889801949259245051923742715950173114614460599997884866825359495858664691623663227568868594378962643659988819437234804350316940720006689290328905931055876588767743909944327993977955946363610625574504389561203240257477314665354233648232511373778781602025921955467938220958700537309921261153165506989148748952035134736535720145040402476431647974440439734846913166444130462941548404956649926691327806425080846450980466640106518870558019053630977403602571320340060608474106715451920244350225531926301142170182024443141169167007013044930603840296510695230561040011219574576315683683532502815156023412503991932018790641213415582717162991091929114400291591852699498920439008594636601318957061894355360512530196570044930669798681844751519930250106976033865311382985511849737988112212949224868071589276586817970206337242492015953789000910344404345425916848628015054014004727232000784914610136748755557475757842344784020181110365792739333984839366411902553223007303675233132623792484563721291908799874104638136588131898460028384552168239476923062495019007093875114895552497815344740216877101565956830774774969694530378413157990417285730353367565733766670316694030183398265577460651973164297571673081489925503640154964367012908801628313799843263525942351275708008817427655708545976296540565550933579441337272299071257198279521908673963122698938321223879173029325606573645633175555361704905373829664335127691100520163455290582323719196694329946519017849100721212237396114982773276140965338960590332868407246498035663325112057858567769293330877285082841247992382696846000190891015066133491847177245386421311697750539195586376084026577591698084905831037529967021757800124503580350830939814420808957262999770119389092254874988551854302690284456127021861122094887735268740594412077014432355371514630753256016845502442583042906077563844574380796438544917924776018493900221021382361971787805220195511486113705607827164414645535392789354815902587402492646349977967435332427027441031299090803380456139824822175327382612349355226085887191171816376215720719356904122111386412570136555842919630496270507100950673302493763339306584896440394892200173359609732982934888691734799729810827073205636990198363813591262645404360582449527148943738268650927244950588259633979217254986287706104686320153424267027030422548873405439644258380000661519422047546302815510477006367043967038778162880823691293431903554802514026588730600758484233419763512770127164506309039232506705012890404391587687377284063601467665290148372054874674031401604256208484990217736476904463752773925800110992506060059393140559230831417182548767579904959258870978916900786773624957329135486401466290799601560980037562573345071864785131471817219764652873547507721860358296639706450266575405121446498686113427626929959941758735482254919671051276734112492655229309163917244856847638348150306976297105054411359911743607482270882706354774416278299619041293568074407790090831034353124285890698483782246022346150437252369064216863469333986878608701014471466347011789057193766284102793979583752525367112531045131725261905305470979978662700065958394754155066952240003354842346810330189463962210581359580550323263073282517664779217497750860621408168361585623459287681258199907071396286346646904443570574337698015581881852109581910960278861402386670243080416355464450915251057765889311654073443806283040019225618077661262595684822935769031725781500028097738616113489088941783066773715000533536138734481574753807946798490011490680003705026038367030314644064485643077001218636447702400833286162634888882793328297322663566670748310470659122721286225844747662862384507381860658730727994908360053883481302730208303791955409879384268855429951843253039565548265820528942685958024274727617559073253490091842133386133223951678824722176386029655284555349945029552601160816666408388332596754746852738326644596736466195802974896835981252537209853169296395806620166935910858712764820633183096547885053382830100152496994351737581934194544650735248603404704048042590303954879373031109970177537730290503586399363101398237815555940544756442649172671607719953628756660738428522209437854505877421927289173278386167185076406836991907645477628489009537032746343767858053430086464698063067043986588587178404128759842870166265332857806674989397618979696789136718162100737178398786916859924380339457559172966918576605348628316575121527854982569170654379325431869931185218764525185561976562472627385355238787331352224939370285218122677225610486889300922576531873375774178057346055963497141390715928333390469256725308653480614579391141043708375621992292464878697467756325901467898431615365473719594618714523713692261710094280500700367988181582668084308316392375620984974694462982719341896737307516466505199269068925150564174191178149325128175124564508568910570608040254693105424661965319846986733378108182800814330981954853824367190712143892726310281164111723515906729629742454344438313414885809810310758542753740223281749651796858020283502455579107999667967911282842583673770337111338413032384712831280552979904113470708777493965117806028195305701266402925911484476212600950140155318747046031948844483219838160039285161240057906022666623690514032292996998406564404716181182475081629064007476459952063279132680403481563856104662628811060074380894679941741660901031501847762141288191026193713188558884407672501741346625181196669864532122544168343357756928645493394254973963594871296836890538242842929001854011618549033908525909256272426785277165912142004630214185609988238949311379643275230719174967204871864313804634727869135177703823637194952249308284109991544557431588425437905467405035958718043328639498523863279919654114717713309993606316338512507356414931196393319738278258387508048749694139487945737486392921964058282171784105290199954272870310843524149054581890705465481951106734905799103753130317757693941717494255030531227320562576492411561967016119631124694385932478165217714774278545356485128218528513728730459528228239446455133553564890827171373056226219490746380255918780638305012754282803367371475247188522356383377856812851653600750490188999528786983433073016901812727243585026433440549957951427078757416860628792853547817136011588865728812481093382963032936841402290312834589566299925311748034240984671853646106256341490964996881568950594099518028162390026957257622789558707733055165234433528078613780809530859737394826128311892905054812442049784685650763029452687277082629571471377627142437840539930597755122239712471408488541993410410725968060136615563643524465907198088664609366025991119378920303593165346282208549905664485703249516838554700270764215576658645351071117786232838782699106646701479900868103436957070945427852969096996038105406713832839695082020941667786618898003358131392543208591045473165338936505295148816760142285608627072584330676881564929251689363260589238582563963524969799227761412981941536896767722411431480709106175260992693075053413041578457640719644534264583360061013302798688936111691970277149585513078556065272148460783599948770465843504192035664226523216704880009331614984328090016680810869642108069666385040358395171367382447431122480725134019952409369375293434899453934357408281493445771863790318286407695551010032361002131422246007714533017252590827512972488515951173877310986227443269345248170689971645855702494721483857008809620409834123952856154430339427125546368925158152463950649697427680988059995695656181055544912968791980431870423473169493502397359582975627028365263568084723031083215737211283049144427728523949470188040000525481090332257526704987600280140025363979684413054127226304979476720334613288486920821098516896919019822515297767442950355078139922104931837865250998408950973550952330861584920244529617533283612887027935178841160361248855121419668136765332498991383917809394373504648798377127271689950431397199227007327542907981654214636804805019684682113866065687528506591430007896473271059752448533013225739499063303970611222789324051575626018553438642451649831450162935310901178502811229881413127563526790787584985261136350297765431455279355743361897660620954361154509802225468370318354489463198606500726134441187803638547779434424887827714872163444405872940733230036365598688820447893456409641517274701634861492309328484415156149123664015805973997945833833376225020092654527547198144800906488937451494024610570439543206089933134142594458089350232975820361752652346637757856130497117014675127669225985641207415448135258180691816456603923020622459188860918265981740458402507540199587483082247538100329247463528294129480638763597778139231693472700525518098111325035922594780724481564773831455541795672168272017436621140747639827709324895963255016731716494747299448096176246576030457549528077877987867420998583790878679924302334048063613156918619338007072484553878675359736257829523263879350454577387109617822550305150854320456661584455620987819426319241689079194978585770465326719951753128182600095960573549665391025433072713537191176229428308008646859177313678533458669855312313771888042893847615302455875783811165764902769115249259581760890913904601867255474954899596959368087207604344147077938173936191755650377020236043321205556564482486817152571430633458997493048657074601364694881420821092777168862959425898779774400284369453947718298942881365600191045598988536237817033200030611812461323113691315800187827227431537580811021267540373947305944357407141432177806744150865814163798465598423846390477834683529504929095623582436731699557482449688818420020101449350562348795272081086499177686993894105592772515203041758557357699665116631802275615198843770165313892013123764407404484552157645098320973660056646795368625656313314673139443837895679488929383498257159405365124168587646651753316271556415118687239189805438269867979419849873770592721340779917564300840015993254816441918472383914786558381814436820435835798437361056234878303424119325347415165682668618706434078595375982097469461510424424391258999544372891009618260321923231611602892410320070577523304614059561241402395231649460152262963044454741000405945529934202235827426179200900860437997054401797430259639329838907479074079929913737696592732020751893618761394894212534145229820511730520803069475772771301728961323695454089865498737327756572889868281545558241306688500547681749176860284810626530993441576060034364378167210877597765018680299382146203653371874200984190693254297707153660762480889211953606450221642514055070928729045221032954964176682145509272981360088456342625254259992323790600249161794058375251288757837750712745004686037049886613219013060392271510719146268120560410745743694834266577807600829551736130034741980535492874664220292913601170938334523321454410518155060528118341134546357246613333419392842813613419210133856243476271124450061558431058278941238729590414485980296443897486081447739960020394032761671662760258563441053969167006443078160300499545641967431703650990604443928089532138538035845226695503249118595774955555132142163786820441196244649550436362034406150285769337419913439285442612514367420917273077207293063442023921496492580638889369058475962904495926455492060888932699590182013915834976292376076879440659571999371096299832114387824732437957891332504743796197763070445211234382406527458417048936304227023406702397378672343338620811164821458969665396589934819657671074667134415828508044123979284348867780618485889414808238911890440517025259189007888946799206258675133414462576602333006015297328272981496288056614394261226986898661140531193757369661489944497838264303175493225570260002878480492852116392681668847615740381531430403027628228075840590635133016888607876792223384047652598945743839749904501256819702133955162181356807703437822996562603286516670585269838533517182140705458319694780073394149862437484712633995574327802531121265248583898525910464405434583869444519407313934080950573437129933842255596318375436617960047854882582373589802780913582825258932516579681992971867925380258232231028533355019668692088320475668394189697016371405302737870968118429357809692725809406531343149779150248158690256262426675230209894713565251327936586853142650998218372464038210318287691983058541191196074834032858346938093585809121052923817942493814119368608806264876319390015362077911832960931831358710294482361774600377678555982005736587311810739131804244615277849361834812898090394697573066835801641604114568468898473883883442686007512372186640696903935442741805212729323619301570077480935827752022595517849338927920749228523745031614978497983250494898598293698113196026734335713898143930081202850833483511378997505256668778333918371589983016996273416560117884606717423208195854911599194865899486564124960513122821809061650633815620639012836975072408901870365188708340684528454242540125658430801538080467260294224769283550649549559162200790557121021530112899327982243801077893710285971868425800813462311326751669866447202041813228458597226703006412385062106365302226801370449842594801673179267580126196608679945566344971190104437455716584408843892744150774930088414817332987945313188644407506363306955822684036415043648932854405894671513687095620561299690520919064012469459523622118775646232839482945336408952860520559334971107474575304708282359918542368055502801679114654237985907897915800855044196844576345888649383305844314872862530757629113293184102756568790009685092306185508338107594989660678833259509629430976185338978067450510552879316152714128311257064442510074403082285877653925597618588463552671158729542207753438326764290519081346050203342094657578532306455967125759436443695021038057146945580250371825166818703813157795692241020218615690881166629204536656935569307019346869676255545777396074670084107325118495565736584540058373451262450787011237187686001591910981088008636461149714597325464942374882501307169319941082417290609028996479840851481577661666769140204931782004795421227484742420556324541741362702384480050730701482893081617036734803079061734162883695750599504564203905059885946930957584133672697285703494304506876787617020764252915894403657428098803450107766916532590711537061500236968784538263332554478644500358890116637149908549295459168632945892020072294078560222584309018295010101354964604299792158065688793870003106218062525711341080033133171897543156157356888723406596084084797894526402058224594885164090937289697114580024567571640784145408249837807401566803680362890645065312119445816274739044203388487311256877997962336002145785706330910147187239385894736279550975162822347257198243267327792701199076084722996557545368879013569079660598363994382615233985248609521864037293884781127741537150831065696160270408855611455311801106815245164317379524273452497493478710000249736313337372897627189357723881804495396835113800776096560926943507754264203793959059944863325467042336915502554088620778279906985212810637535883635067828209828413938669818634346262078731481682141121438785241842227880975993091262357507674143372830117930260111997535273879238140583887102786710716019101791595346015791733163806929123974209765948865199901385779189347767408111200582961936617202328936164565030898182070892242239696601040835451363525701494452906858996073418152734868452848880826640634471924135278034810999471030975809585298074398956007374308782517830061654967290274120224278738686389522789798251078426566856043256990897980191599072646149458044003676503854924865240803714825671563289654708056108576224767212735433806259586112662305909521015336486310646578512488410828948967615824521730942476987136507044044883602524656535016347521246745968298870372061402057384719740745808735074094293547330102514709778284492845281964280588562613403364738946281751902460703719105042437294671202950233371575960133734288261703158192057853841526807773256592463634339820898751910790884928462759064246232823003825813960700565751963779876490090830302213757509545410543184964195681438740387316717275009700362324058321193769310560554469151719007073109123336070650767798486591482696166155119657800381947042113686441368362071358927914273167882809354229457684132449277954532436632695534850611332023428231908898117127446585982725061779324192103719977527991036225520300387593109417770382623119892874263394622107085828234907936016723307557406641950629358076679716523666839471886329498451260459928861374524140244453972842114357600257837892922452330977239351573087012660028923850060967949308518629264607380257739451274036057201305713754027281469448749079150572072395739557022466631551389723427101482648231767864720840639003285048437161365583026127252563734660481301454438782656280939043632190217982343757063365427936767840571136744004450934125824618732275735956018419285933735516722699431728139581194156964345946632267913134994268452023888628526436240243220045875489831158439054882268094525530222638420278843030023367751086425472299369035522065833650639959077331035362807360040308254538283300532733383645425731353377187457512731481484749763250377205369502203183842827489585530398539001347795684945730259577478706408880315125403932783638742237684108652635883508969547556008035937634489912219132881453363710886005399094229267343107774504266365989622467384839877133375333446614161191635928343476455757140313346086712122649093261885529252312747979934950294400605326324731188013982955279785916056596514881714694024585456834146690516585766161778471568643737480231475744282339732616713059100966094645859709701101686093083333028845372157407967066698713820137115905166081357444333886636952807021574414259862603968823288556876866762215934735937074806502702023409847018875397998079362572109132653023305086739169990280386088430824205724162393882298354402431686507601214355704443620199390122327137784628605822698827612384759998238868230834687733750130863144418696107190567083237377183333803320280257491671487581760760151802019335157325842131193938407146336463966090177428162405813820088119306316727514642480003861146509577944078536272460476891375410618622426436276813080678827681604201919968086230765339969947200375496263435394544764583907617835327376074102438793740133279996450192696705634687530456929541395926978502378658412948679546648399193486619572157246657362736233467044463799508154833117841968552267570996097208959813601763387463769554347739591666239447802568696695070513529577649470875070565972284407873805486315174201462370676035473852752752155790498700201816846839747276155844078166151434500609234095386578514544678105358994556533969910224838916767848297975747243606572242131715472175843096955803439452390756247871157746969081083838813205883775754079972204112891565622764497102480043827566233526160799989171887814785831589310083593279788062070509831330730301315851848018870814501373132834000517346026280838315743951408990127055879129714952025975502694119402280326603347366022271219752854023659964859048460897678363540705525327307162372493970256131961173179007124135310588993406269346417141153102603873285656326330680576699502844115808732438584684259168341946349115027057225966684370318973444255732190704183973691318353481039247192731715026478374428020195793462713988875688513000305283364677853064686477817025818808538565909794731480271029754340938273269570987080487764676000133140946771653951408256395379665336094475123708495524842785731497173558752715020085821080658551736427885577795965732241786812942818804093139985507775803767369087491192562140696837922571340036577546170791403302559137439395858835578010229423022623656895333981244321631345679872387704062912160751425057174220229062556210550442870900307087649213281628047644843363555554924114493169858025036444610208114578460393559263667680430891116631298820446058378738104599000197338004131527173142849934231435907913393205912687666531109267543902174512696994903153045389173128188157088995352341798378599393509565850643073211531524431379731613658661521843245146861792818499028747232591918895662504172612408935063203944056183204435187122488004003740693210231028969221950260801792837519029007269423462472142411051616965257225516684018393400238697872774495585135950919524816082374959383155496268769348948652478466836349076057839103591196022036331797219515633114113829454751743852678566898785220111637284263747890333911704292638992846739586532164165886732238426684744276775161642686034104562292065229591653002447856163443941126305571632351071062263159418409165700516054849514805647136408219615605579221495087186424504072358310338547031294894613202902904289859487497258048473410696142869521073181151300771968323455723636907567705285289484764875945079590210678726418656785416467733506746650286604464837081195275109249602935453722976534163371499476726844123706345117187236060584209249706360406224961504182872036147642525840463178846374198538813786374888682275336749247763227920667510869246531813790412914938306456960052482958635293031086520579954948827616261696779790819249449614701805203382565412976793113941245659927456719162612905042783260768348174389711668596155666057152983636568444500285527712452782615174621429758929292863007298271355553744720904398720859031712673420439831524849806567270963224050443144161208934535299626120005924173121650244562057367017956443348183407800168740142411062762400584988956183934514227272002996402922526342024774954502004645349671360699316570654171407382736463459443374193296738635564633009154514098304806590095382947253814011582218215454701920153680684933734108310658719994957078715779683239728033016712822089732971461255890549784332143420645621422800606013226288672594249821452907931812314248591440062593236822750264076523050807418016054855195280614516139088705153340001798083688832803862704563060299923813684266110968329614323849469675813749592714539413419932679838448740873267563932194555913725073691106681402778489449053866318970938935918118041103145274650665384109735508276097850333058060887103242115897987316875956195596101823596823757312695333735952865140528510603315575140949613777069593315242125051575364604261950518507306595925328916011944457396994993921690126646630366890135567735905611115184073044399234573555562778333925607090951738957827379524060897686126747884784615776086546656476068101535734353969929289794201433971856190849161213271680382668309779457420858601796586365767208443659510608333855665922485511494168100806676608428092522280986769188460334147268006899022808983038366738064862092908480771602865159658428801583119090125033442853687535024631600308287803946094315583315517796614837620222363205569610102748625028070190100838341111270819463452501175061699491498917629957118819206157468801449434176884403813996087832380578944259152036550932455945042509108415631022255388418169552265319502454338870351449889903432170181060554400228497318959632296487943819414631147222837907327379443215376693979086811998497348947650775505614051200000478563452448671534589911096077391320388497885943622487850257106778713303926945522823908427584270191804786988037294959120771524225130302494142450882506760087672123299281143719532557260148566598857338832087651238520853491756204605905396798914960702913271631026143969298676515627086803388172964180927293650071060393073296770231005693482393468144983572184710166366704944939920976595927415438456115275963526408812169831072335762351035744860877300970491280820176350793065845054522806008014752169010003090066611173180055511805902672394037643570716330966653084127897429945157039868747079295774142796075990859332742863037260306587529063045008405757366953331770339356660473970233628947822000589523349121886680386254871466935815379093953843970063475199355555108545469768575506408408817514399448728597541647279055315447727012717800581397601355092739646522413457066513768262687060469885469030512216005237397862850967644480531311158143978588997148119413045757251111009631385809201868770617768923634336085839313755627649990046713945523235806582722893149356080748259196693634811863673343668567579567970828347984503674119699169325664208890603523604021002841130179472211685513251723775096905813384328319652847797825241340503633998787399034683294075474804369300346030458908493905853596746154690137827171687260113808321897900473293542122886190847687947676851108091779445456377086431379519840645582843286998626467853122037522703705409863525576783278394702700901206040975809034648809389737221443185604433493050068150840055545935177626716763855268208790361516360152408495384307484404043107161586029646634298793764745523335758275551910599766375427297600830470498830495654691156574708987612556505401666267963084031465769550696341454995826218783904984231766328892592681215329728539332102905263849683130479524265214348163424643046948990287726254014602692204679901044630836696779799264078041259616456330274602414784959045946862385096922951771682700704514847453634919767628552897553997204043462036627127488707136086390901992626763338520383191660817145212849205189329092941570981478192333917190638395085511901747134182097819613116930284973310314921285499644635086295165775810069794852609333538075579862280483713092171812772129099255175641832986217749602469381931941937731402017675328883936980553020293516922422735998713734312728393348659434375170143364881597728024494146331297976572669865634364584076836164249870091839557521603187657756320127333377629125940977604590153720740470127371396251800301496651812581370664669728526294911892703566608424235847110650350616704667598114195461097386576778712964514067417244454551430069233265399335715176991558586955059082125533472257129984203981937908430335273876535334193395854702895257016786991868825936797608450527705935807536138116056318310055983855124102536992669101338879258644099494235609454758410929144437722461531651529382983668703103078800798220296061437839784622996598470964207523690069950928615057149477235520747973348752100118600470504842817895328384427120259154432629157485930828462019857542540434993425168410906998581922641443444896190959645231253180078819124751010073272984297546866468791359419245062569794619896697805948423018509659042057707106670381069661865626586121632315491584678170392264324094136503594205921236275928522894457320637510559901076273256377386758013570891700800113741557727077096517224882721670761740337939792813465845515532581851460642712264394193279111557564793310820820264109720810594363552198307102496491060665447635890400524071234081555137853204704223055195562039629911643173998427653618067651528204158015096383306848199158010266845568166060407568378893618781068828037392192962163847815417653379084074793949647649275743999736437317975195851861488571586691056301092489948684108295081752829597229857236200389319737986176804112595879329801382795351876768967221562126720859939887817177787178909875602582700949786071177158042039772242579915594859455284555746979212222181219221951819702325565042589318498287858465174992105561689141134092086062725223042394821126688193670383195676297947687704216298758909652518586807277426552507393461611668018321803406754994503559659150519829690209895200788621790911536886679949249380988583175750483237526557686103700552130923834211918274853562636478005371132434382743530377986521946671262317461136495756268920151040396708523270837612698014671377203847770720887251757960553270984338425883686265694048037797069363042975575286805547526424234454061703077280665800974068173287545601329718278648948153134644611089635625030169301019865848149836789126136322549793955858809589278503271386149954608474288402221610269466346401202400098037376295497413753218658685995754788503154621496969245101803384460793873569242480871637520632965798229198237403903553544279212877401374501770194659861293621958588483694740149319869120497334348143223239963471952245072062904680184061498868316078324377674297840693440810854468824561512216937313493162612748724559527428054406237877562620470109426278508486659309137342126760983640627796045249652341315567425418751467352066553606683233024657200893655736737959131095991060523360329681003352951159851406146788938576491675377898431213453849982104156683684927962341731185087111079078870681655734885944791731301176504451913222312912081529636365514629573614238769969542439437018485769692637970685856531295717963371431595738830101768062507695142865895723299411271341490661197497893304849757953187926174466316330605438321376911544181098091619556590882776374606816032139564359666742590226873592642825696766879954658482712749024499241090654381103953404078650854995809706783236539168940194240274776626031356224134638039091887339626636705429997042621402225013160059549453662138152511494212120902068635977290730867915785564994689577115031466731068938749232201830685478652716853567298115878664571065545048412872501954427043391705701328922387311920215682929214054274465319732018640422478171940858932512517097655043167108446252398073597452751950288907618624750662130085354266495245031767748311618402619653991308729814606626399065489943106734805741867234181691051506530067971164851267140112814889428390830998859414348849582055828122351593632058185847785537400755175582926495813633468149308658022048040207748738797260619798438001341357959135937833673749443467226105602035152027269503399010400674214495501538572360053054108321304103902236593690866858513829716434344954178458876752413171251435467324139888659581518499816230655939950271663958518864801176239981510406418853359279551330825105415596991492451931778364762693875544149230071725452086262697212370363926483036794536740651228273756582111262038292765102257800978304360606271750188585985556344608540415735382307700579123533798143253627137529907389190948428151108913012006174034241241159848915744284861913844734071835862037056584926905877897637240826621277976388579166765331534691211550750646458537242307927459153349968184695643438537414669986898797422467706674897518967402878480179389466191317415489339244994517663585390875124670473962549768258582628724292944825289389802732728496882091919131446997999844681229582720959085922546468564254903359820015148870489456127343328952539424819681310736481675363874944590482950608908287303516721506886603629641148290922832536250278808559134468133176474915468105055152812678223119363342342277137675602945313096126078183364284976659339133870292701915564998710721770869904157727966670605880943689958280259305851198354567733075458942857056225096207304427140481643381091012415179782967975673345726742157844062154665974026206607137416358441574539602742601639476595924309925432421806069696463528165487486897780801834077567868914116322493486748325146640023992510550469139223645248996343688291143625540197367473538083145127335952388523574149397751406790228779817254231821194307355829338362263508206264605569266153906264012369824891951837081527560367204273819666689154271011626057925437293237566937686386300121216273894743646344807400977528511914691511204783054087439706020699339664623182151993470950470660319345072316025543464559518678237676295777731320224123651214190836237210355950892169713240826438485315265926942024586933403114001750277041823188803900964330347034021884769933029762096759263454955201685608934713136395785304403558036896614930350460069797804166833322275224946643815399559703584882030349542395306933802086531936170652023716761155030035478362820001588520846421947644324919170047454669786405300831838949198414560629566263028650998302499053504303991013181809938543970896989176330318706037899349759736221514802431319119578467653833782030002494623597401473778228016378477687118572352069665245886745413078632160187381186648179437572856192366962417114903976709200466504127672086641735134324057244828757089209242070354225899585496163719876181155650175992401761290572809983374657035740615691126057259716787251279042810629895670800824707227878595059423638113933142035226724761345836618779171528908795872091457839683030561564668035303037919274805820464083006275315688277968416871562348198392093452533394981861779130665905305179796030824599811671684690253734288801839633149967650591559290221321231187207321622462309398592834838164873424666694944788302679984502909317098914980822644355686871558563020922998054031350462664376501869599837036268231918546528720929921918590716566497039878559054939695203376076991442576416151006027310075197865870598807280839850362018327138833277987691300440578974488968398137650097138262869743268065137874415586041006978544968805054641921910641886315196640905482643990766048582055124656475189583620550070692750590483304602720605446508570164448642215401368977634577515799925716638895215401757181029118073912788749098246913404594320512163542647323064181667703473087531380916141128971050267528465909928987137114373252695722943501145578807533651300467843983425980194981994898755328497741177382523546659716079785989052478271416277467115446639361977792152084041590664370719601755551346043821643995749705876049722580226063938789284305161932314443814501664148666164324461437522509885515736164877977825249189660475269595059363041570233215179320286780539728831947949302610039562314236525167378122708591917083627983017192934532960272705538055869432956284375373064313317413606890491497339059685879244742816303475111575820679854145726178627299042026496518810219515066360029474148970465750444774729742919152544368196370796789891929025041040286118413945707181768807333613496474729284124722263133681202833074987274516795566778697916447209629271007044257958145887057487974351887220738667369484633301734614108682017742866005760338194261229921797494005181700185271326177935393503508952367927537388013638312117241940523979475543573529301475302668583536848895656777988477576929997342059547490971835372839767719181952191043264495414922923175978683390697854428809937157298904656453913419460722329816808242831500010865596626088222865939929094056912145406417302720565007792697032504278960516729584270790759372509403946477238362919420624198627591393548887877721890942164937070376871215563117311481961733255517096386154263867677655204091426562790655524312855896410275601801688540144976669625328317030854205716954353548598375099061411888119444707272230706070432589037778759822682223718726974459103994299271541969259535670814084899346925372772457696939738124737894965771811842411708256317477837939069045579454139158431683032019925621683188757078189211197507879028943260139345856697199710137558086570145896134448494610116523114666775979811136362543371453545227679084773671484486506715890266782121547745788642168663543107145388806234671859959057477557317442390757574734444677252328374457752037914550367912209257239340584397830719080746321603855086738559803857192271479889829464445187258070767559309781647106378549912517153047136876207450572760620926318836227279898892100492149121319508763049800486124231772845525274022615021799950399724525871564184825527288672853277908278064486050486022471260099073583216882727944575248545968702972066336110050811495399693353744835903467489782859851154342948124568854882124543583665503669891454853459544412434715612818722052433210509676038172860636814556539886874543636618369022418177998304589754452011831576880990671412004299201767967544130376087806621006353635458547268865772965708928955067466173381323972857668366104538169780561738667197044888680366783445863439917697721169130529220039033992147319912605875514097493900926667284340180770649234026508954396385948246283900786970889562806119219076285384996619743054615184032364989035580976558208736418700801149648481450029373628737543833526200461566520382146423733233556111472225835722519024176561799248822729775729238110347846733346018545053833765798191068650157226456336567773691244335378080847126508832588133444801185144124025199339901990508785846155790504629027424891399659584158189269544220892780658961736687274065070763723136689698138924440124782182900456482556135809468706923522129986907860583660239758748485339809189984881520995872439193144453203343167506744400571831721716216194872402491591870147839764325842182415816996173228294329668878196584560060555545044620738048657126944104058176803316648225776220258219890347743472348621497157109791929385153109885911260430149709877820989066260238085004692549707364363791429312459978904002975107538824438754131791387806035929919857880910487307604793980342555518112160688060118791089290605521659000092761196260093441786615723744578442240415570472231137540614657361483413917449133544696031088729492946089415761917887653555963340792455127635278740784511200942550375899801806439505120638909132065227197688010184948304107699770248013953237792837045629687333840719589749346912430303735211617559332041006281438752705661037134801687042147229839713878896406478645409239366129380483230078346807156490056622128207275033021882143538370210441882173865976200415548523229348957197925528139491458050422961105955800487125411193910999805003137434276560850190936853283831007436753258410863802160340155689739774167537064283036418502911315654186650899147482272697356597424850032053861541810335171775307639522945627088315507618786959260673145510467167415722725934448457684627284366831777347881278403918959016920677619640807694854586377572402514150022532149497355520498958783607700034243808055920768644058944593832569694938183316177129522921509749846896276085274374193533035799538690145635253639687159840372161277755012632207681086751454543498555655832387197397400565269984040353714198543486768237967480877705013030551594060444744035240283285805702932822838726340693969562377301984765377535545951348347056466312099154102090216193761963610935299643961899456433099314442564950178300832909547126699826060928919352402010415149730760982289973758800134257642930600555828817650654468999557875237888798395374301571984180409057689448124432689716945863355244139477196848749637155084510595590586187214923374015771095017890640083516616335779542013299964565547783298068017691170859873025638269145660522264803203495478860560531978487933038656183494502607720423086929473183574463060451362075823450109114034469043252739617586904379506386363636281857866953670557721392616915098382045538997253865717566736914683972385803102925622096235612967071199481903410921529994695272513644556477967004759153307878022079431864130950782865468667635516469071482923557671683046743948695058272909270881858221885863495440291719487792995362827239039784492608451785512669150005792021670716137386155524605907631953408948433075088285487995013575964824289939634231201424318523293842625307048424436688481834317065746155338095217962416047073753610741224748081399640321492132459322764764104561202060616479818205454023741120130172118664310140227512176671979295713244722343085600248459325685648528966141436530346062570607763526614268845744945451278165176450746184424960890803202504365035376553553218981333361256047500667214218380609308018195121138587431277377904239102242603856904703848294521952996942652504314670038551831999011482379306151842023129264537509884671007012360718928022004206682087927189983004319427557897875509249682811561733553823272519711992190395496375949710084946912121707592732225695688592181053193620528776304339246030698433380615696029831303599904310091415714280042659837166833523554001851770809863078565598366183565526989529957004848655237528659804668619186624584865922135632045615189730477871821162300532160596080661315727686426762929689996208079776164150041097479198243999992242153612087277063987503806584439761429237291117053197892621821101092835933129203179987977127658992333003715009125577891275121153459837069836902319399760766043747227351629937026556471821341324195100051548335908496114721096839110673144156928212463100632907813156370165014753716484149454863999518530747763392677675588826442500065208859802842152635625013974557924905503698006418961846072426183387863447479335518937979745822377029673101014832775602282368466300987360455799875170237957731337007224711937773090738675663492096719862210321772974357873191812054091464745048770517324548010287611111017165291306931810821670766169327000219059073304343710565411844070135945184506255807142456523376595300044771565226171978865842659898272529884037161094953629006289813028634962422455556430023479868334295926968269912177463765229374912185959701761104217383707068849932443231391151048401176536305556498274694377043879748653018236673135991195814177410115506162118970338374910428061812582556458875675851684679481573398592707829334697277629433822714944243479517568128338300987432903355842246453888230777207623416979882768302473125480273951702846449637446008690103614491492110399546139929159107049710916898432083536216937882422198480756757205263294694731966061450081268249985710781558147023776035155508126860600447875771028970229349210445695177009360870517931844683001000493870857905688795245151689812284716749314587301064459618718509556791513106892083767025963408531256862023636951457614994431623831332904574726168126791190444908067706991996501201811332164340088395755907967810831194095251080505275998972599809374813770662858657408694596974064119965136393005018759576037756970148135222020198447017356719212028900846844525050602402015721038651411752416517205838420760456567177155954850195627725707260130048228363907236420599499955021255504154996471973063040060440399497411240499821997021417818779591460102917157436260515485764615638157266021432389986538132170727274129468013377512979566091498896167242071102547123529580038312185587960655830815031554462590453004774881309410617125080117190072781970937251811367702907204717716288640816936135386046036275376216395518245747711438277381463319369437699683736325493879411806274991020668096355332164115898320489450947245615590250965007647999402532179683511388398085519983849014857149862153960339019303421397584622080217997580718401447711517142901741923743821141829048413152494128507895633681384327167166473167222016434126518762542292337640776386950583137773486799575727861185463009651292879572138081387034208410000049208063153975231563112560920618226315146268856276990985387433842595441487189755741222277513415910544888986070648769997562418360862555884365478374297883868496281983802924558310912610220450274425833317876793856832748259584567937059594151695146663660349167539928852160907228090630510163633043836267958260422930022456411529581414459851682384751211806575033539232019667340247991272427929034701917350005094601718850676532497102000253815199582445058151943251547247894352799718888996531189377347115826241316066964344415041172302080791997742864008495668709825045659085249322810482394654800689600789089394017783342783475221852483557686001166118913695288283989719892012733274650136168507840585915354660235694227059041146042324330858515117943920670763703122680142074156244248109552134240136649105765293077845594734403786842416114486701401180073110319300307962323356421897539928822698810362244243285605153415905611274127252332969925031070176731904763204356537550990100298657129242887971494945970603858828170896364179606337190566543307999936880716646655648267635607117668978290819829727829997946885892544793081901311291225188460298643519139249598778868530308661790345282852937463877565429412011091480940587732170892623371249170530155074453210072226445568486539658416038611954172331871790053520731395385311692749768083315921717321194645156867605694860084076948384403683281620651502536474378855177784835445566042275262730573771234089538468949464488616581232041743491393299271739033970789272107555565133305626403452259132934161610696237305663807555048924118263122756493592601788694257141006857679983251798012467933033091485942503059522001346891685217941110510796784588206018076842518276150729850725122476571095716247807354171782802625065287739222627289672792448151342554071973876349963084940301902376073230786724325310961981029829893065306406786371857366704277979392465842652128335452349971792403695017909495332782968422935824866404451155451612897468647972738845560536591514492077281192399136454236436859690457367345203820567849541167820716968407090845942557694912783921628358100155219430653627083111484213376348945222677838397000616380601427333718951767220696696679083475836509615104274833445209205784729073663932851619407187874241276437812559121102199792039426293742495713673700754537389217635349733037808737891137264223886202895591828592870602386150523856777837496422189618168358044472853199037258038339946956307573858421695321972239254292540653210519495098667086804735432938712152213796307704654083956894762445542388504458038059638976516724887654946268115859819135684407068434479789610680531487242804715033807858333467553464324699914435664775449426266348078546114616333106452199888082758915162460293397542227932212478492397070344108897453160845916627259209357706880648671403027918913578009858734797373679944346840311045273278045223396583549567605121507423192392910899221170213672347566783160114228488139252318915341239986513871340084678864853104692720656340934506827503373006069828227542492802521388623456661112020345442533319750167845813734314777437047639561382988564117374397352221504249486307243416217850830184586462902255195513452770091395685295257187601148464207781896442365805159151659685484234325114420729399466954830534246866014476989513649133412764895809441238115484764371676433822257283286828597269896222413974303958159508987100737733561550732757166555193588550181086990909078586499247008563364223789351628105033693779899781593719256241417155438330540412504429888529391072550739918789508906446287336338366676435977565982119902286363317858447586069107993011650381763717855765109259013266130022011213183722705332644391339017458144202550481176635307250896323638966273072849124691015988940635897366987834976490784009768585511983888281946684342325192216267175833793935280549763765873830112812718065307076317946587081545655571256393738422846938600584757914761044832049823887612250903737654964256662013618303520520542055604140455877961882432417456227836026462178902081778190520833171811948224689743650788128724939522865858810818762188092227506972762695516937217326106716500071609330784673895732477594208372167132289609895471786049169395728278839735581317060227847277518314029250266029978923403374111090417591466016673802306966414898316800502185919984809786646400811058220370863222610111960090464433180160988478824319016508574519909118137822958201154116035914644781289648525492881411149415526677101308397487173417734442226129634784897744283610395801712816409360145475332868013738633819663488513499003618932536294256534623840908322731140053140411443266443776347201516500961603513184258730758308455385474230323615053683736769556219544096901304948474746000647134489696144570045316748650224979184766755374093623576097741826047603258103617174947127382884615320675244222477418685301322762414233507242043129894456568040724688009312390397821932308710706867357391118091598891744842840316860052597804760925868161723776118087792155555876703300434697901998531323477355791661186361136242660668718680091720396141738631173049741048332549070994381652962729104106775274467395047455480214045489450179304074668538813026076644935511761617668108730776274226627804538467418651055938771090926702031148433928459459926477087466575488289194501400644044339730933664801506614427052211253570427305125755253811971103926602860565606488754308147168651103922371108347330134033735455672697901480731527618050260983595262191890908237976289388597091220434859821313717017247891172307690065357889218832659427620851643155583497658601610663554521669335310972479846988931407990785811542905552359450836026392511831032302390309160048612527001861432729535605240616415776815641676397101629163595385592402564441841965837935250680233003193149228554057203418599795228691188739738157231455184339189561402306314846922117988457397279496150523249633722045191267616609325693849823948561726103555090561887303650061226820839220289782921628356212159405273701512661434338262420042839570109140595025264874474356178157230126420195430241861766131905245269305280247724187908353720024124563299232693134431719702446675281588909868154987722722583818879841792601811695965091481509562364475876483107585859746041277785340787672911032314533300703370167258025221292296926321548873839366716788445500945492683755336633775325736729764052506092321239002512243339229471812007939156494075848859261460244711987061811390940372109940844746173769039369527391122132989012109622555630720315693194766743068157984204701498731788988937633144028006234030353112645187928597688848179988461175450654934187225406618280513269885713065276897862339135442381358473164440571393707775112522831055798575359059682159802898705691839496297297854801288370074327307256068371354333485097611964027783664701935278735794685197352813737385033701557496524361780694543057387642001571648970247908144985113548081403057606980496078689931995870213879563619407926407419607839731112943042128982095241314292279169572965019456425980174293019841661484678458884807958063781085025198338324241817882936317173229793865785793973185153000896733306761529564354299230690941571983013066165540211440115261903692824753756896708277425798293869043267808506654487710584527317228143002854496445072505342346307937919864010055258599578884460916736440827471053377284204433020665858529090694468734025573565543048877418272014109180305031062910055269275932536759238156696404730459231657386159776079996277734535158294770187699973237265692194354045547247420715746904930441591397633448331751220606264910143121969272839670590277293329109418614704062152475199839872595535949952683192797631660665295907700544615920604480772161325026002135188700605840726338788817201983297018485074621533375740255701263348391834571245529523828163875014528524877847330085994479990275977661097937142152421251196785621986025066158668686159611221457646985790229948860508643594582034101213026985664465157852330602022651182275893216105715165274532142996374753828159979369851217426342923133141014146177233434905215543082284533370120024982091011832250919349756775170479253766307972837747296165160909653571429044175569464654227008374087511548200724592912744477734211183386041665007033866559855706416268148665707495284116102633296955587266322358165002263428097794382347492364815373695057954233784780170981052687709613730752398549342780483138266344826324881954648145876748231612993248470925722682676889286431165616422860186938276132737323850065620402683091017459729856831069459728761923933572654094459996614067498265182494986719336902663059816098835616210330136087080183294349938548423733417464409201010405545076742678800165750301452079664190173512276004351895482165779664258724058566375565257431042485834282134656079490729187435362576208380032061604080715983177813843957859971825111398178184574395741224216482930488431361961814225294997117440087881076783379300671297173645656570191353173300094253875431224798070870902085829575782770105483532091103849368368492559630320338134165084787421479249340481422265772290282190264612617825704916645799663570653927121592155003250917141793901286990595118458623598002981794718546302186207209828450537854277850999915372197384135437290143416758752258290284986093115337486672742076386126058268246108378969598155634121394345952539905780832419816727396359535200220747812957821913188380572285412913000098169072322902705253890002306907099989462468116190057573266387733663015380354737549058162683016481519993005897506720565857759192789956420227206452310140858312378972692915566435746957227545347515586727678537757322703752604015947196457188260203353612923767985425021326976443440901499876747882662292375695708707202841463718410410039261594639377457767216625373919195974224185287862930603388803362112857627807387157178986473845843138191154522381950233140203082307436934842509713063862578614828914336069074523050386314302341325303947969970229559438297825930866653416021904009724825459918522156687613443768968045105296781096391115165714753913588507689579627607141681331289355835803673807646418462643763287596964825050964490408372338247556807179786069952015112604602753599406975745411955095845058591235790990229166259667835351470362012774764171357933638443692386910681438964384362233090491729065848732292429364690608889279594190055794664856819250988966082837582712875881895495399419468630911337372229109797168922085879038989842171118438150578329762926551171084606332307822312192032254210824786837370597048604716207330871228474814066758680181156018649244554351224234527274838180433432671885810790363052922352721368018854794426867905139914255443869967474119720492678572420695555623126932143001138245681510526210429834210265129938134552110313998893716041988042873888963509626799152271396808850217154138188130626152764917984414806372323649404609582110675133152973360208214417991226802690406643660570442133956828876101792038043530296624458537158560019644208347804588514646389629330185519317486278434751681914594490521587914620884806054988933383354976131843359232543179551659006517931545572584150988735726541346311244530988116450961104460284690815941379152073216671524331271413238643567927177740148256855145397631946549134782358824781938344555473273918513840876933600690355992052715974134896589213597139889871643688532647292003419513671485867559496724634308239568541867281796251817323092067553412716412232390971261950173754220254016920814143417519953928477513089134093793626627253855024388469189707196940686740088171261181921869202110559088234812866006059619381652224216925274884423989193322383142772777715977243408191736041135681784404465741315791316562669709485693669102147645857900623514745343011035771590758087936551672557688970054661188614077039776574027553486056075305455116839087137170283291164111029109457772462373927164404141669214233549753560322890150137658665911581443289377840689884763616916062806241164484041432627656955733780305595474145509581886200414295332709013622408910727987884360713455288944082902240744520316582511463106601067193861096958766649115908841758626324890280225657505714068348680406953479353325092180080482715207443013570573126467744624757326594456010633748998599541901876229312145851403844530910041974176019601899733981564867441590736523966810744658184806946562018001746824513216820956732754426792650690166465061620686456179736484299545496184301655820712760668624939707675821423081109548779316307201497134639112340941229617394282644058239329783930458168981917110003344983600321440948220574462393444216064613548568275561577992810195435035010544585882014459134472874794873517861603439728032532394480425048697461981726878405002840319803952809117949281981908009720225145174321328270421005509474946647315371403348074170116144852716576047717623151014269197789731095030442669021372538278179879542417314082752037575164737456977963641260498048945194448649501778885662352502520445123709611987632503715058405223825576740649584168898872497786031077411990366238516737031261943146259393454773913620433635905127939126778704677373434865466330328819606837805871761882306914111668390825079135563603396979361660906830657918366994213545378214969944210766268891723870578953472001535732860618299886348649740822804148813540689987543257502520296487716994688451579405176775947832989618268660387933795276586123563489542201154390951189813159897593791669137382996767351094940348582880527387376744084040882240452471978990598869697703683268213528450704234716269615751376420783599213219100548588788163035010802726552450059211591559784315837017103917319747885698521042029255503179478425228403724477269856139120229888118961839902597097322171017131497848942994269379271499621506051875875918663787231443629599349060236657356004092416953186607940433965443695863760219524862609784831969244924380631453124635336211866850713748803818250263392283412472308801283102107031564890569768359124798455458109803949217976862118813193621331232148312148098474505121580208278666081136133284196930185166138904114895703221201173524462104967736230450129872789606437862026650651697061639737439774507970565266970455408708269122044284426046667683381410719832257135951164148860939283498378043955679558479191770293700315023164075395319871664937307049047120421716373371501030943241906837205139593421593350812802084453686401639081320896759585343683002205362654216355206683247898643262107214540608508138764458391590478389428009791694381980431683932564475472190832439535705285548953801784120057135138454446710824775686961883817152734319194698641608742807340107436136424893096436591091437720925229464243301393016996740913934837320541769448679341943390305325801670389990131679710005007669430823382345800973440938810878973584359827687768249838888911350474875009624087822587626348252130665418729342580493403677064041177362430684990885191974590684061885886811603426665904636440767292164973307111746961467863877166078086670414991597302523171530497971937514316557175679973064387282494927862546253059784193181893240743246071110723531382508967545106007947710016983252909418444813164538174909096439426941829437539668948292186021515903681536636673151887861123947270796350077966408203729141124070042266156958244326158893119047801596102922001325076209578559772163958914664777331368324693614847153269444175514840996947746513550752757231826411581306879808879751406955138237887840801724129960498843229194755950320297510404516747281017565214488455504003705183182202711550892483536612301504211377303511421342584427147718122329404159649564266406656067234355319045852329172130518897294490506518989675357657283937307237471554366751337928355810650769494442478411329105473252704645029761304457835108760848095562359661875238310091673427893936179667520641108916356076693241798944180826548299117007147799255472192773278352860824828460869461873314630180486524309736397539415518799707440187457623708634156914013448435846099342569675258937593215665500976294051850541679509165076282174283974575859722362574121944368331072264673454949327786542476014798205713267227483543291448571677374764206457861099746723967144639847863550827335176032193278713321437335866804543488774974097163656260666207987391895673295650010924632223899281007441505699105701787339927414645552664599667623447948147436950123879898714749368281641711260265164054324059051411736486478901238180610346831587864784985519983802593033863367342694982998518259637804823047179829296671394379901547717729915650117173639739449363615837276412723896517042295466777849328595362497958192293825018486287792153610659254102914620944411195770939726381936488660236071955644974887685644419309771492778395781068524520262772100063301150114880558324513039800151485076415382642790110269931627366956957883991571582281823901938205850574591465266837193587992939096197983494441810463030952488878166778669239319222084451472896127940977642653137798349897518565803624258155917314585816487712359515973643191592083641915518046141458340039908351829719301545058085178394110918557182065525938569531373911334446426982410536219346477623773360609911074073581042189974528820020274475572534280481497296643908654637400559315230221998448152567031779317774340759602974948254370858710393416040946988245992938794126572479977968088207288845807684928305593074217538551169076522480912270170558806567558167756375241471267485807456661614033352621435860552305693311461058639845660891927234134318388070650429261019241626791921207953190550480707462592391026940034360743521318597837457892969117780310085953795955167183051966840703577013456805268716968117205082717709778995049709301184894740667856503443271190632370996372585736556553012710570520189249503108213831126662671954064390762870107343518734545458994885888750885931512973121510057859788016315121286743025979048223043621720738435134252786537881188550792773505361424794503542334875641279239766563572620224951188065625723531200938237824964655052121022759274095103355398179240736549506909021421638787305952217938085498694887826670616342875725149905834982719278429568126562064983821357043532214126816755813196895918412175423369847046709411272489468055559549671351036242456891174982570268217144463709356296211630573889226969611904952033721058593704298030270180225558528055269596637361025196412095015153812158964190774585728027267947436212159832824810480589737529289455571357800938137040947544467187845522082645154007441656967034668091839315072953926872915356293507810062974882688242256810117703969594700765089813039227633603944227981793120838835489099335442359755740331918435911854598964850397169447745812867668588921620641270087242269130604349716521667356836124604960391831342149194023534852491239404287909998916354015181769618198467473009251180364537934061793235644066631552552856873261149945151544581458848174773124749859331157759896482239303232175822509594472692725094481032598800304302658892322352709685537775814803558312505713054910678741395358762225759366035271582521093372971665719015252500638254416915782945769173569257511085294955702356457861092186813736698819782949483708760646221950704444588743612878625095282728542728820443546128688147990832769686995323687381310608346846319983388290717420976315292364311540368445593950048519291926394515122699166268962241949360641151966033835768708295969730839541931295890167210040818803906323829968368109583096372168345756848386243247948403062561582532214625918136489644762165153349750739152595277679203301130300475485571926043472930896031543374380244726176775858798951880017858646154193809104854552849538002670482427053381935182895086053594579370849593822473080635553561418474369667636307618679454150062104428144826854568645450937120982041063928526531947948271746504363165333681437660110012119607281005840829077309732139125045114073396187152953643877178292022060411800247676595040995072343964484678096769456273017570783973586956900469096452387733090643030869062931426202683534115364871526634103119165453046322583695842587128626197403178156774865229235499302460712614812298754361375501371845668747309434257330662034435524613499109674918688528794371120029132631134297541820599699304073268089405695273108240390410241799533830782612057044896553240410613317662155002324440186345069883091247303121447742840375982628750115947385063141055364475976913993738512651300653197465366107307186954980677750989268850409646048330111465545796682950497661463279719555364720670411832633471176837323420234168678733143860232338440575077427044490265480306321338265799971126753464208600935578921377782569221906580703872817149504634266056031085195325422286723615137322964782066107908310835281033632947049449624795131585995514246275470814414101064172567768760075122374641375864172264089501518698645301045951814086788806766384699590426813415136926631927970245592569491357900578374088467841937496581379010388550362095580064994916987778862426503712016917274530479673160832481299907709224392764510356549753199912631088108562630855319376817345457027175426890915168085428835510610854439793816623274810280604573836815619102337451080433328779517039689702680255691230957792120538050756322930490024812317659577489558714813396775234984575632422291232946945987227553643757460275004489504708984562606004044316770070658410431441593557790213496371295846030288563516675252806173370690450202769584184065368725248654630388030443947459717342872820524547116034317718537131678101823272354850129465985587629718742525046319741654927306177896053754023306975605298651597988305361523759921855220824747710783202660314455303683662941249300475921458042560500774621593564550500821607810113577140074401497935900394648754261341341116439389163428672457806993782296243093547206862784266541623395011889159177146102378654011405160535192921636082645937274951597845552475927039155291858764702926092248916579251588034078957177136380792763535643063791069645484230738936001165874391745289369272783789708187266211371924942734190804268363936865552732130111242308896379160309622093008658646908011477558087588257507013256585598121807323109157791222280946783670865405388893373436733470885411135408653942104307373026169840608018215510736345378890119858190612977000047367292570924563934760707521245359202580985766527100869533910937815526744160614668712539225694798021476090854515206470237930843319597728302580914705826846111889200026930482371041268581232643603428311940074554121458825396112607574527641557960809133426961881515094312309863241329675108613090437965476696477055343364934686396401493184779947818055045139659735648553963914994797313019361771809606175311006095439317199398832433004954131487774527168938335272670253148792602645362214385660546967442797933236003954393538328978437305654949386943809272320229203524161575634123081662334638874010423059114772448841111217385512881675764794558040614029480762699941247791853517958398181813928373466222307427183971823085414455959725262724892472499903274111266713401683303973624433031217539042917959862608398869870968613153138775657029625653277928989437408188546506816251186121589009771448955888910215598323488603981543503116769034909654669262787256708563515147721682142821112088925298961700500925821711791654001199658820931620194646831551356576921111519293161886109582079516547758904129050197251507181574868883216763591809239380767770224250351262675793225486226607906259690630900645746422556062468779196126046701842156491187106431715224056718973410578547995130551929816563075053794965617636160123090989591608115439145055511510929380946411712094131811154334273329810216934973578653318495068184236854408378866573859755754955493840549266158027336076039430114238938460646394638144419208814148556544182308139142884648092890267730453853947650774470444776647149838559464904624664614944439397121924381750055983583352909221873455370967840521122399320971660929725092027430280072160623567643150896022453566066074436418278408037312793836245481845552024896498732132335350246466326081874425283146287238856998174813364210125117206790953764460564915525405006237635621966811036153479422738303684710514998977943774327945943625809421833511507898807343473730751134674064543867672864425909279537957228192558700129262262971797833901021078978438736715605471306450601025864970497646342792281360726854944481965516496151123084988219511027833061467191515319319045341375582945609536966621225801351579512018471199636994779543524824569799476497879429619803126175089375599529730662582783811056226463876162818369854823444654007894310539912429901190195030979596521737491196474263773463711560284246149769809851221981650453125154933174423358513657530649220745563026780062456333887309906565946911506298382119970084621957044306636269585112586464577525084568318493833935885960551520893005415155136846072868908024449884031948240514522212824169472776361688551886233857161863845111365681330523508182458951464006401792115864336747797099917294570701293589884829208093078060779565684968647676098015472497797633223173953110690345869618633159852477351500325922856500817294802392720314071034705945996138720169226102813889215678112558317086963333991086097731454285874979185233970064833268658527017121759749063585722831277916067706750317253160617933483554746988388192965695317915008812005787605748804109050637881848967911285931571591361336383918264802209211708100221341929675372081321242905795854575645504375334754289380625495161309270507883702516593240206633263671385845531444017431584852539555488880508097827881306439332339840277706862042847591678884608668096631051867130556171439473562403319099312352311843229923203138524599704217380275260895521648744517429627129678820492584995123645083875387260383203678335865877287363741850149282266323122860324541434610786936495967611883053398384259929623876744329086479907741993919378775525584766554627148808966634384889781819782904281550595407714553875476125123680774386531030932712400228443264092310571086657446312875461125257824351812324346822906873611516469571474992324912253665691815612474607182704231951717850603041178286063046553125681695976109286815265042252879185098425909012611179835379696028819974979996813202959608285194942069552816566060026707205023829732684381497017549146672897907176162298069127996155638092388474670446273927365474247190103718728994452006611519496920335169019840705604184573864773274480905171333124320562315399146333038898281558793258201728753546006501677309164561140006368524738397697115858292481320157269760349171211137345554982105157204255623396327152436217377107847757803050732432114455886980859811691138477673004399276363022068115531675259942782621265939445043902968059663806860348300598797997123848548871710816706159601100309757216906122300243853342991698241168050486804592611194727272474931320925147297830057130577759606992569386071931232283879378846199532168678239729348004264648153982977033035686050826264697171928378569376973239484342791096547770291089789748126576716927751135295454365546229923181671103899266451214571092255778589913321211150994789789408804557450591743772145729450779027296352371931115657187954902042355494114519800930783932202620629535914132980631680691377529598690338340911430548544834508789065441108917688767444057622417351437910512944579761860055732752651437291332561941310350335250202821023673199873936003860959563379427787471051448109171413718642975610449005991620836071115259571895513149729297761675065004948476623341672151354927972169544799896052315368398566174221603597276360656824830315039800988778061901776818442405855595027336393162433585998620533829873936159622899920888873588308232190097445276186524391674611713943346596592452437867145847016457237685183335562634668020037934649078130854518501412046773393017378915863521719574285552026895399120631174727130339486103005060021209648150539646976573804443280827406543402548571532238241504772251946120176266941496971740981439784149100388408040999445024711276626844907886592461882807103845664790343010933807071384280608042534960420953542363324882903030089781473181295299666125038018874408949569246986506721492586712543097699994024387566175875944384611754200960982910604495467174858579059730488806320345490595079435856830333455936003851266547120169220609803424167618354933347209187266488358429928605390579110835740232595247575552262116659394220550863557569860541440881872989103992519714891259197214642280147173149285290368336715020069757818824566663000918939211550121364994137879148542033381054713946532790479824980076986966338085769361210970820043310935728693133580312565276626619523143972336466472341912889298661162405543649283499257750303983005570004224691919150928821923560022366169549538197388340590996886332949653832533254010132752141971765979685046215404029828587993014507263252967475481070439677448931312658022714325054594715865952192187454715866498943249024662547987590129250538158311878962946111286955860391885750580512714247787043272450661332555139367056542949825646551788199227188388767691615211509901702624346030539595000951822226506980616159785801991599812195216826429080731026617898363097025372357849012054092368768574192055988714469510840497973786244409135205202486491081164089345313662748680049969082882000325512617622830733953868038729096098035760154351270528368901863647382306314560625621690504682274591396743755789011190130012756620956721492718320688591616316600105045665937094328405916070201722724694268976627840931907808239681548140615504541501058403757497631774586747329432630181881571218984891056938650189937154795544869141032695339816260035726217336444158171286299714944015851234324090528234496791108763991373584150066675902946202733979312551314265322513262267797031446504419626513103705545004341460980307373681755367058147918794908058650536316059562937966098463135317359357456242841617530609202609645670427200158970086447889018861667562609737895632042219649047044235968120308660015621344600358191048250264596728219843458900838311583405105638585909417859595059086345416578452788651393210953947935604180672787074173852282255348132646806120899340771885422211230604404324525680376661134782548362083563833516463019272325646551912338931315403739189647144879247491349496981861835565081983559672224664859397802538448866403581263446507082881595023796219889594978665278254406919699188607725069158231433907262614537328211152217956446653249649727906900905072880594532042703185188020176542772198615203603585287552451459293534257253931158877030305717107214924021754917895047719693724362710195802548636654649406683506512295946674804221890970133513008980926396079599641114060833840238545269084061214301222160122946814366562094264694201682348229945076372810938859698327899539251130976994780130892149597900937025917335607333336751481029300677277140564361150649066794317022768656632257798764751943146006683666280832040614460883222491162464613155737954042631420078269913108807821279282974834876073984887412466109668801004426767869674596486280956386088919592121153296406806472418485320299330257787802645603918660806928407673218297792015879578691572639409584929209860051976341084230784408352948503107588825123553382611344697908806503251715136614190688185837604326902956616218489154687393160744628904722644918666404937567015729797831382064044091983995935627980364404243599231371879778730065388098964365988137747694124157833741253493927023216072253871523601460602714543140983844964993219974482844137736463598658350695962027641868678620706270333745025732420093931866688369081377775338855677194376323965040836980352155569825366626902947857842391219162248101709704769405616423491120634583890840807022842692553207096744231048800363714511031306879639973593195873344907638216653204180614700837227696067012269800915353105172402855934545945370035136757897940633491208805593156783038792939461860574942948449490248616753265242928468917915332855646504103447366051006628208023187114576876413723501665147880438008841114748125810565199853951980740018209510606676282173144422708793400514432930958735912975442769581222872998896253420827526288651647090455892858406860697104937258981870358919243580817627760940174486492873687661086468559227699680292859608381037074104211421133203251894134040402538367813803851083249510062499301581980315475325983508284735282430394981668809154358097636393931492275789953900596272247410218242655943681015445687046051624663254072820567167904212177155619090379578955935936956924796130404614573088284591253308983442755811660184045109720151023215870793805905191861162349790054888331127484759893750338372592467236751878573501977486710293115417311860699075707026203090163556289653774053668188864949738709016960068801441056903768683891822890300259476486603721053934257425754350384206801271786091918197840651710719567420826287060519794013104803246516899006636400336893642580060170729151540429159577806813536530362664510829913007519576431509405009731424448267022463135039070561228657016807511487417955097606019632891006911515513219080130949956966697762513354610322679488381184169856187838930315321928616543523837100874658307088250081898091060069209553545071515966851135698337203561443446462855730071361315877354226098718838999382005987493769377633963284825565192086378785808719320036388577060841500997524822209559065216557388948404855340672097470845337471086027234045602559511298199317748821364609660572479859886223342162704625053617619679517701785536969361500485331751869730316846112632986486844914309457308699314208912842938654565268484961413475173644138682448268703387531032756125109502790656185689866061098733744097010878935715814399816499429931262323553917747590972409096515973568596667579232936278956390895352883233009996552192507978466986050883017497872117044194341446288029155637423962950324576062746107699558502121986345629998435312988404449241116361135348290876760305529632692868953010221617071430285213024540206383224093930558365524526547176084306100305432604412030530880948623468568487469353359169342753663478807315580312563616451561461092085282945178069647017626511703229401648392794878266086965297406787603991462454190102362812777078438533295963557709900721503582444634808409136415001412234480449295689911846494032793464939231387715784183764197655325688790782992795547617468853673388768919208475967511009604633063252092896023838589167741105406464286866669335231660763455761684400675816285309515435769466505406868887631642418143826984138145484786764099424820430947526353231175067978507489660333330506203078730685264011362843640348189060799453398662558621937309111166239915212536310295528139381185639726326744996674696007417581571303071742178020438247330925853296431933947864731729019316821082796848632225273775096381996354249514023205921068657233419449319758013174851835342988869950925989083603615619226001382614880734531525562098672500812044499764770790380318707231070865838863225547908068600606725712870104721841559985159825452557458974639968301563108932549980072095724954273701870658756560183402171688136948685368582023917498664874061066828111078655172556421664486808437464928382638242683463137209223361445323245158639262647814559152043788344436339776125886003712761694819798036172708185226267563720420588569653653580357343573368959340379216851035566682144714941644599927206015878872965799962191658101667138693099390959248623266275278008228742897553497363895345014943523508538311574247848313697253948681184438710900904662654771164480223937987815322055441720177165563860362687066960638717404102242668669888071482042258119471938015259442389852270056604856831990989789642640427770984627094868989118388499038265542452871870215828298397796592180999173122821138032970869147623548251667739872852639136864641153459104809881930518572227277161233741363006834533899856530078815437466393109332442155519551630290379436170713809727039176668088657099618964890297095692191556597099861637757954763352031279714802081362073660217773996844249319295378299667278508396363473188780933146182472687646032666395164433601238888608691230500599225258864015884676819103244552266114552478365203823627021959446593041952799670518649544615534967487224017917954863154399131938319027572580868843337889477001071514980835369250834090671714819674476734362051969056637241922550306116949314358351110939757040524758452893225769627209850285558578547733787517010646779664958550538426445626774425958711776992577005308574300173471965714553981946717055924030597799450136184062533926985655257458311733775981631819757439054809412131660812761619532782525608929339811686088422183114737517463521429735997509153190544235003947023241297952802311618691797059613832746740294050923937349299115713892540029045185041278911919180015044060163066527802440095385491784963543798747861131768004940189419638614642791321892878040652176306504779322225613084626698747201391635343546472163375621413352998369510884496930983114804814040506517155409956939629122518379960256937158579900220460681043982229863716172867991991256604772088767181432838087200680876347696280997391740299932875546474783288378281102225537189865338478506608994991725066870625929544424767575178563255804520311941501395209182860908664205061216882367315682429891896474829825320727139514704802900571290355031735559838490371879830760043701862326322950064474356751001537364917988302992170001294061701062931278781060115396001670480522516572014685587466187682859290714380769233898287060298161588525624057827645462755169688960770894154036586064589601849875730301846559440687054225099408445662964942197111430337271058008003198363857586698901712433244593584131988955412594149346595887157929722901640534837734003523797302463606052878226388745527772319693313534890567095518852169260526028952914811463661209322828700789783760000975306973926940839123546735497738613859963554837636491093755832462173496477761304791621083790884565262077572674234193136268416750796815695905150507828013947314991037183512113573319146150667639522930694875281863272814483927842786780928995358694358585595974210015767983165508756909810679493283216568905757867369545736832729392024074896500473428793318435879027956346913399502784956558710071796426316686040273457498915317364977336529021302234910154499974022445421935502633346942993141831376821483406196415698591339577700586555020021591342194510930778408225314803549810691566237862435729613166922634469202501755928605020738111810829034415331094210799042806209774120575631689838575806930036465240718848090594494067120282319481997365783765256297619396823435437580355820435425440796761661321449711794477393144355411701082042781686379756092293208391643219656629499396548907156188372575485095248117408262533095175123570622624531347064783139672416596834706568714106530770509608213126243388255826488500318363355666442601060187431233043498736739017752576131015397796108258955595302042442677620470359895084037707414965362338990301113403574715602752970132391158838121441919834611492699698342873843778997126266112037464678377078036221446691627270672978915833823005852625243380287026261106317296533174976745390850032824447923407703244859681297795211875019543601701234377761895620009468505684673594225651713158533218815287296590297411664190762968475918390136858647462139872938467098971496147268963126543529519684891816563637930438447908150891214924048777557141289637891107161597734908686805121027378303964555777031996037598105067969101277545779061232688352562073414371712366950249929563054410664277653306702965026303667139330617906896999604273622058219421727693447796567052850705892259596557046770506115257253962931647945291363962661328501536357213631042914253071898143026155647690190556627483421671804465222373913472640113593807381135853434220722559020156820384084464595805305346024696498049756541037422893613621174823427116381830820471107249583452189674164381582976207613932340672363892915246540743924096928368373234434505394401923351834296022852648576806416717404592933907068983763555780872025368697955472118060007706772117824435146687757457634607080821898549398734157575086314037366123146355034832575380430255537778899891130921280156500267300603362582312829271284806447284381429653636751333517715096478778164757499719373133790351501505635375294930974621373488313115444463262626509454182379850634756021013926891066906736837557581344006692044824169068778722865862266906178092558027983309407843093662922467605272745521820995830767204856326373589789050679209937660746833392782124371263741106439345805821921167280093103703943207791959612631534992629183899958368662390002563110208810730047331041958200801151378686763754519558170736005303927886160249822817919111194458967084209563137925696189952068602314807580254577661988562008461450554377616601505497131236452322941304973523225494698046457254060961597112175683147126769239001917747210337514590979621351724468667684046437180807980078798447282643775881271921597107415422355614187851854676676324555501950970790868357062308288760511765566025627171950801063041413412268249618517083610366284071558954810085149648811294932707927319233885934924686190932740166331376582177102984533644403040669496808764745476253594334060909470444311260788091455234514292628844528213699634547677062699494783192388175048753276976294823295506983124611997953764952073399889017838346563708236065856859409576218244309078916048489585117094832902190938541563997853956357953881787558262749600821409763054720889210085736107235498093673532074011064742452323366089212141831046978320323282448014181859575948325450463996953726837456099595065332096491331311054512297736522089340270880519119306995960365611849155343048316722661161093136779614877011127744773606660547037118041399825473218155122258370969909526122995615441211084469493712128731594446065670335447791805662802390666740017321995254774387658129548754066485314559292677503400667220611874336773222841635099639294380371676291875941261437766568033414356674339834618734517989390354301135607940617039674242331299781660962724785938054486099805831033515655798427750090072365424679724001437568612087009841167341948842860980927925704769983838846173734364221715909612879660567115520867206955894288215289833523783272217296467482192393572762919631796209138356171221760382222704475945268104474343764007470149399880510478754153919408159494109900148321052559886151616063615841987414067421299610095913018159589625120112146349290151139789640929754749831440517708163843076829598193087969606640930405332662543652214166854727583851192326490984531566114209745856153436366019315124647492087446062390194876194865987427977780197798903076825669577661904729643034949484047770478076696767229027175761314060639991503107780998090291255319897373322245687055494958214992462130725519529278405774701787704050814524428718339995716614053790593310723953831533918207541805156868072244942291003851563734969890793614122517287395181700790315186219259388295984538826838606173581244813751117327357671692111673821218263973712101112494243868845631939943917264938416957118080480298295227095675099609868245203869771520714273162461287377010302377648064310593593525925994605687614795821984452233854877319080198970316084931295377739023345994841896093635294083555730256841225225068058365628301236378941188006392709718687257378356520792342407513138769812886346491003938713534687912768468999142480096037168839690965763501000032730963332400804588692530488832864539785427817316587621342597728766492316464355085317922720250530501428467343412177351940449715376880832037098027006702214856239080255725550113061936024505114099826176290917399674109320873209313775282491011144802262412324485217256974102756030719613354654251710759678673988648068266712463050178503834074403173527835671553925362326642137329507849109078743436846843022820472285695470950266337213931353947096702128898480813089106163925417307978902108805196291057734839376474956663987873919738271965945168183250095445819915043408832259399687196286236750229916584276304852920730705355500709840975254985725677286784483311366787332823945610086637794445688105401132697875568983447539177668932465119476818951935056291852270469650214817367083271998593472586122997649665691699627203953931680063146602704530816102398726799704625192918524539739241427572371474021866308276443946462421388135431711054390566053933770305672901550129050701644841113831941252170680933808873012076910466180109216581799213476875314838123814908028420637616690905892897629875414539115773325902677800106858274540791222233271709206300940948964903393436221336266692446133103930708269652963018019632475659754814543492222200957458347256017886622156903729716565113753478723624553113209395715366961411074236792935473670281250141546678024950354047036048084809179453692798595542140818997526300850900861929196885912827675234831913758912038847146368276187297259660119788972777497071848510927636559400638684560038047679966489132077813690129436680982715660837926030464005547430351890928641290478786486764974806876311761672143435549423139737881386845883806084280315219333710804753415883360560094856292871209510654266693697866630012238226884304890035068096918411910939899562759128975959621709202190473891772782834243204794217019690223695712852374034998604237699957710405546924908460892180299815946207360278618789882541632847285920896424208862507661624880794498581220573625895239632065532904309913803734631007202353316879120573736724493046334966771590737442753774147521033299483028216714927873704423048871429974999904865173020834512549833021606748035188314200972551100394219990278943202840564956545323180292404680151564682729680145692835339168251428897228056497403957491191503378505357165403360520977756706143330923304333989962044865581841174693420829618164748928805418011337139095781798890025185802410308972772228500194707034471371835162355337955144840837980264168011868698226661331670073408083753270727191238197722588137841930407882050605396656036585550383851516279125151760919134083360380480063405482837292183051681232040730355236589616136320523649862829639956210719409997115685214377252258230790933232990524170665978956981094219714556435617053080563299867063235014664380780989895147857456778994631187504146716748206991134171243597510797419880853156664577338755584852311875120808748201456748232282369225389849474151581753827050836028820255374408908423032768842237706938845759438338897678041124351303577354298384231062271272258741432564705656205022095232918870725129205800195332608064471044462277191390317160828575061245487010894351464134989413774899910642457311077240345572282829771616451370633635602743630515138847618327002714106668031490865287713002245049765266276818293897966188368064172079682440444286988550745342459661302213305120974430201942902955377162957869314750651584822507714063914434097435399431449375709724023907025409822538167363700180804572611025813906073535081483164358994985620562593865814389773507064763194289789000371070445235437014825450714702952379920101926051305563882352835849238269073077295487413901552050760848390101367530890448031925277768874829596907194363371906256419087519255311733419298389178005364048071483333398097179219502856389175184869095271989618103605112334016332031754911611822688707992701523870927859627639779338600668702079253113901400221099510535886731867367205128517881832848921219315043644499882995024534517863568759883660092882829265590239262306018159686110758057400900534510477813289119458674658809013778723467911428959836462746498196359488199471535699663040279901181834616050274723598121499876878360526626676280762216322351610324640806924507118737094316038298722551626011596190378999948147115071328117534533367276692904371355549088256210626643074880650939526849259304522889468628277692247676101899296280349176503920123710277711500996720846616141689127426114880554932937394116361280064658868172898693963190417434086233018350529247462937401063244164666038796896149848730181180264178898646349616437887192805246973063165278892144004841104278528034843053302394047685144304031084739831736348862307211781671870982646739955828697433060753475171890857867592788063925501433625742958460764812699292181278574448897850399956039987522229456201789906906074213859306259628867548673979003906280242183061573918114021135307646371509929567846294783916522459017455088481773785636905848339594763469984836901165310814523522210132677336763959542478278355550545390891238589951126641465430358656912902082747004916373122131813896637379277712342721262845775167839467245554146674082802806802694035901935580438587015651621183241867569102571240516234938946392544220518810555117290804205742472932065311115676130237315020727896993318206113579803071073521561479357446368894456979989465162651293189477802205497780563311720814962257969961586396058096678365822790250413350907416303152594079537066450186721494438721578717455897445264116854179464063632404285409607949652044286520511540994974615216079339485718751593362728359441817941189907658934093863890960015892843321980527126231787960657596969856882061525500856824131425585327300063857598792226898233612189976894625926207446975661460598256813874722556633183376960742118442644189473508170471581165092155221208911256742439433808432742623010274960456514011094037893375629299930357341854924778150221434627149095626237042755834618218598210966284206297846511453239010000373197236949451329744354811741095593358928010896330605476830345987653158098186476601323958292837221633387083537922056447249625133286630679743447127338685499202945723522271611827685066271036690412838930639498171389895871984066068251296138246715746430423888470933164001465915143137828396103516627326864650506564750801512779592083342820877226763864439820219048509978090963043743977296708347484651571944061766463643940025700921863389935592814575744456134726474660285690203052053180719268689235305631246554796629642284871990602108411803571137125720842302400282611687067128896033820341887781436960643945287002650528862825114604052229507318335822711610589331885253427888164931807257179466487318514119279221610748970423368280513394393941685179747453412948812869700888025950887612802171843110145523798759229443873703479804880838652984051109287311288914964282553675794127346108019021743970986141199294635973218895319962617732393191261358853353704853344660186431276321845610845288287841304373264391431267835590714559999174017268007476662568745310400902416484422944124904458961560773196649565448544513425541041422506858841283687607596369468204634806605775109289694435202133389660920437620830762044397894507268321373083568110667739226432805983563489661697645098967717081797875848949265172011744839781845020464699311689152674136172176438475022139417785088634630693495243918883019218591463244764745288060453103550804616913285163594960288244797788617696838252092148965095265315066249600729973146140512925942743938746041291610133111285667533028182394647091982946377080561533744624012584464173224350132799823297853078605215649424562041521367444916902055384025485122069234573128677032586327435779559433031713541033129930480752460162648688213879320064157791775750304852113671322611898634030766486956843087199040130977517697073601329720211006236209301143747246941310262663267898308018565961535495160457810441665865060293311245471586189003276088563535616256629115584438342668969962151389269215754991259265953495027243523749347160706912019416539295653341489336247500239555494201560936782298657250647711505422568874384991662864450362292277424629904766101552670907426486256054901509158257690833827433335938853137582717133436253085933305927811420340265480962859727226886950238540361770954478821847086199722270458574754996393413042791931442211270733957466474889809225047358206746678147796162320111068037493168833222040880250587310774112938789936848965568030327584056864698645895915098636414719349010877791950120477255816864313878487181424522687686124430073065135616020894044092816471337121750498127950298439203895610077087248866986394532038399382040317114127912079718156033467180276086584009085413584015809511341939803480309371590854943230197879591727807975751489504435334557697461482307743090386051507374290465623911918757882510293317385546980786317950837413532350365238011899149335958244303854246246712463614987619039996163052433923388055661459204456692452910542118727095039894463833652511611402735416429249205187466145459062115813201449760820188357613200826935447687953647490025013589179514404046278053515533270853505640723224020486796432878175017436527223415066773461473270619118908780287985714204532893051745618740029142293894746486785770233010456344651110477452781481547017489020677769677978898685264310199525124199694778848289041809881002954983851219996313936694237250545464066707810458469245172504459557173447332086960063636136953667729940352666285329287831072366525686789992249841808470019933502155570157385916943213685595192467854697808040190964401601686906385235865789245317670772507827394785090035806263649434253056563867739782343038552739962912643118034318566234767470833868115704116215551655964063312708107989412503229547728848349611636131602984404903186065424494400999471851663980937537532193414293880837600430827618206907717935150577405411426819838995066906367855127495341803065102170956344036953296405976051104168609394876012255896696388871515369955150781466981139513530755764762315622817960942548913372677625944140125162910655311673192648576200464658502893141969967552864271911060032134196967698830214854128255218527669806485806860763002276912722248060831891522161540430820461357414992953482086760835685859758720886982167736974415485536093012556294993177453555302962818948253953936586480942336431013415355961785147403975661988674682363560004439386615540202071812909517351416804918040681370027569363269379714854538557695550353345131542177173236173973929387532372172057590291083289590757675744832512609598081759425888794042500715829716163172150028651617826808734641966262152750544027428373431590764484633088717515620968672161808052199937211388394946307303722782971596693514363067085927237029113298317959903074498732169724194123606675531553138318841691474842723759867056868806070994378602395524488737048649989989232686225486479463055123279577799790726671755094290463890978277194537054331593565119401672237280217123284668196401716202069250578862016053714363726073930557725937055028874459331438923537654267651957804934413592877013801168380458864899247696069351222065546142479212353422167348518782356762781907896678722622072625661984079697723781615963710361254439207853546199246127806180989796601678904761906041673943942278152241009053505337253177799106780709866815132735082195239240167974397256868881481848970105101992356812425424057879616021919936022798475855641708207285975688975552613652469624995427703695821090631851102727852875189466580761850253797303357937903492455947989456614961790458727674266741785864374619416133436708493062055063733464886458837961614571186267806247335817267487349686273826027615865075975152244756883493927904323380572913715843334938969927572031782511556331318811837628866091220965849308671850932224033978248944920997835303639128450366925887181191486279399792895667280112901206153862707379172146806423773219640498809800175812551063555721721721479148343844806179226906207003883254360565572591636086560058787897328873086532142811011243456182815967940869054326887380551303108262057797289551089223447984729038386902432108057929371040786484786135656249305222708585047186256000606760316710199198371668123569838910654465046436521342669176595676018021168071540887817535172215454232001333090357637192348153139242653184861963110477206741217505185365264807546324535781205146075171059026571557516831848501917159482252393890209817604258676391066428132124682355330400140684976065155692721301267391267363105087831928860445224330202495512425348566819973907030071503127179331369689248645402596543253849799566484439237700871307765084865163629250140040637292037883970266646374050850041813843902292245011442107539890195001653537509508712831715479858071821045448466052689882622736569730635578428749651072921172840813367697248181631127181845186501832944244137777970985607447138937736058556036130543619710317419222671437568888284282037943203068186563039275352002579967162489656406135858460149399245980966834673249113610625521219640255101873026802092681304809879583745514511576385733619600772780805602139287691163681182446811750708482087756635048889187583405038787514486907026228486606417020538493795250257790398235172362564505860982255563668141820492775830923933965488741103390079429201089095183708448534794722657566111229879675844311641817028633116215682915492561267101031120788395745860806587760111562601344939105453069047804732410465138978261572338239807703987369569004885204255132215629970916483991664156713255111268221080338384434943023300151987933314004191576346340093908222612554233317904706464248003534721032646467852052754277602642708218163357083433499217141889916158330667169732155996669783160952892850956236757567139936327490021336928957344072085090299938030793402351092529209831341720197809854589240052477310359114661906399742190502929205005969031121796345647931485231606869934715484727174896763018660394361947699884786197043151574982649723717263697647682739107991042223401644871969163790531647959166667639745236416759275902780780136379357967804863907740185597404246198741131044487889199606888700296838939290373862487172067941795526703969228499016307532252880667610886422732070174666744646063934684725157524938975816263245771180308354411200044738283583451124763126744403154170430994134574474870247336352263940179813273266765303095643026203464917797434347872092385387538265345823862087836582920280777457688813716600851489393608411631676501627071197209953584059108386508141114231459954934144339283436638381766420724132278789672494160698717044614617918763656807488272194893289976923137918094571965311231359953389823459225687191140229325338599991392105175902791961127884947269739207303424342959760293732599132658309021575886497724593111846058285988953110304854120287590216411134823660717844265573655903618182540854760730180654748771097025627909988134472228093286374801540323117461553582935493288375410822219718908518292452850130512685847811020440321813078707654930445385316002863408746517317709702498171645747747157032382299596338631553502107404725188475329254821851869421051570518060423298665417191065706129786759900333740377294153786125142417927310605132067689453637246642089405121224193738223361124409532190390985953286830643045460209159842900324772291108169985564375015319088727015506968395167105015221007807501774557455158622849359871323593646801360363894557361784868909385632104444318699369019742444572940562033849783420869031661125876802133729162450448318010203503737129096785531128297064048308629406419421156621279053570394538847196542097913354093342213036566784786369273093292427494894491865294668145032426709222477038678129482306317413792235586032944694577138409068441145430337263719199090552474518911157915157125220616180879656208043691545161189175189300311487933677497637426729443315005025751960793978443272359677689346222448171819193765563962046214641327931750644100214531380228551248237550079594088712410446817898314422947337257520143153411604102379064104979357375373889838300273013375796931619578728050665260613233964088961003070179143888100476394556386081715079609290881714289475796603833003311088939109762435034441376417211883098884568692389683539479586956970691883663177734495276324038731837651150915883123011021012408698681273055233466381877027545293703393502297154448506355777759052783504138550714982306265600530486098320920028343085930540830156091794797230184868325001828061428773604923525525906028409182481172010189557571269768807910340580541881244013084944692727038124635673479482649231562033902144665748585128507117904480054926332071534343230127643552380666812301544918879653196581916430818433752260983304768407672878950371404752419886301241872266087321888185123473723810229112341611294099865525486331210700122239547744666157316514125447657190005183293053697933839075628474642059540383551553370412351830663274797234612749128381485128030207379727239299529798176155102011485997124416191382518530285263834771538539621000803489441553537537922365365891847149811994171925703041337116075007084970588155751945312943089436241717925299774827577450205106610377492401470176614814479770442264550559043899291046743349003618453872637398236694767904575988695180577430739056659210357932072876076871229817599149861861771801013384501012906819310088653892027052858455588233736776260183183840192705523614695068211142030265260994268077159895545266580391591039189594307333022343970434201385784937744413405651134486286882608343582026418331695472861380526866008913503533887450418446509955103724898256659486324040666146228879326679373366330461148179445121774467673056418258952284526093513781113893176151292653716345107030713465724115828345253554201138281449404759044394067490477732107537037114137511100217176360508512047496516772683954765807544956545699285284487118222817175066544442926053827388498489879302833384229778796305405243308193475656391696288079402723970062526178051776739462187459583624790614691685731502717879534806483124147129211624797102595771289395067393264773010063240392447564153750516849685285786277964600529104832599372395740281153693842791190256891313460193866745832530678102758612112342631946719079021628035970576813696562735078197225167009605774574194771614285162927292873071203535990273566463910302124935202823261732492382514561692531856948129198527991637183452130358351906664423502077746375589315753812396450555707298428275539816007673276959626218299851705730569540980137646088732912174387879697477645422007874556156964661841885616112680328327188450900529387510633498062047587216599117930371561062009709780474695940289203421155763151955278892489257507426034440520902885187743011192804656115424634332256185096555556365210926484469757129286881119356435687934478198147617760138123873266775436154368634132332367706681247408301664749259219475454909900306781022352594753073718036054418512409381403683771269398077333630866544275139084953901606144538499925064227185122729502387716262427126849282533771832872222219477375704272501242677026036548067540953801989425038558757189772707254916845771414524890910317470684868588092741570781836824952585564798603700704484620981820054358267827801218702202265015523380774060733135683947909868058503226958142544850719562913556491379479967191471607709303809776110095316277437071251748702231456294625652361898095070185684903057633743958941149774417198542162253566820305352497350272774213700563302880549365806039332168141658513878950707850187059492490871635632351555841474052201064007770360220509129259358265565968561127988926360604637212834426939761305831795458675892377938172368174342325759149255388639216271980256123081112218440028979521233205387981584727725354302423640331733467297956633389665520955012255606816092749914277042203322521007974673547361173922367593232414865938398734387522800747441656063387675941057056548018819219253916741997795138381480400811142363563152464473118948424209068430220629887156553182020403377418547838197060403237287833277062374989697396603521846542980401065781352119083645193272371312788468488019026946516082863340896730542160268086210285101466667698485062759755614079449972120625364719626891116179039237219333574603557039881159328039503274278818680800531741416412643619158771152986592572583478311446546224198429490947161737449391270342240553335449255884180267551906784372370411791621222545616939277896408385715945107093610238447266587942723475733639438003420059189216850841120304715727636013086338676946539704472475801373783552614064467417197674572963769668519355316714463315875330348758056926807581164966564608282150573487266987610800405656475485333162892033136320738862623642662252242227323485779424322052587213007121482087329389543830028737609670052521364163159255308465856847762956358885948780994834622289510234205922432719668318961672637325950066205097382889594491208432523056253926951996562035088130542139897093569507701009947504230958700125170929205538526020379621077314722880455662221579996082190371315966914044920156108249004749095390948918368727389942620005095108967784386083063538203842184279162510405351903421516226575431535956245482562956475805713656813063689056771523696303196733342573473579672529975284278758900441671966493954659942328914441200550376951840587020238425841185726004944633724354421811127856203120703486767162930260154054023248915472648914944697094502120510607292081418561030227656338790751831536477882479923006662262976588481237919431021834625157907327451895921678502594251557790052120252139696205223122709616856272288271976005086606430700300838692819313748450343650022929330495508923959366744096525312424723856632579806425249860870083000842723587724330319620929921544577450143458569523953978125187431724378283776879927055693149837900816896949022679784517563462547558735826378698839190479082334610218812503076885139499908699476281770241932824829214262609478116828547666502336120598132235444955072859919517710036644210685111053138235570904801505085774985971306803939887701758036181316222189492396033513612541318971087501251228559011266697095472729968048426392595367558873579635222128086307540676462691482819112992323506136565731095917743601476195396809998941738564320139224328813199947262864502137425674172061094557997312272701399950084241609228520636499665588704634664516662644777967276418159934120801001700201953187182563385785289322500008365849002104964278939230366967954911378773725078587176459638596618069358339605646213626122454530762521120373606770144226194299047121025350099091652924708647176034998110105610116663544928211224425050550634424013411798875815208587837315345224121807892003330006192042426910427526591006630796041560877631650685266077250385180259260533113949630846145029967405159993371394768635582543377942702303836259362355528606030657734063510246581042575450859548989718579671187188297958612095919499861160930010162337832289033605408377134217587119997970710794682499873475912725991799260344338428640362531272066663744649189038563238376671470349455184509341277630679255840159882802836923024378573579738606590439447904569889690090333553762886026339045485335641337507765325335528344489856225948619675514311663039113446308038433596799556064290552947638294638470733761399030613111416379575251113506758433618591276938898143433779070144295481555874440069048195260280149110273818868660288695820756630613070415147923002497793350373971703074319968264675790908632505895693584191295314202674972444197009002364407745675962955018049330886366632030795071834300280584907546562501050922906885106812509461130087423640687095371230220763753391618824512455192145768215719252015727433287691971025094094718597582932414337570843128099933782690905143386159242215070917141580405252177824949004891287898802691212282599179073062681092657339936323237907863218081433823940218097392560205477949492202644059102048118605507637609070392091569761936843999649360902556345130461889170477846975615824900276605629117459285211670429867276886103150225589001955804570740101705399295853714747476958663683912623690655843695735466832912411530799938598890407610895523580608534340474693526302782776918637760413215828042336044909975031199681600593866509700633705677889441766534885809083306870361006441306111198132022777690034981570146643989772108253290461447547081748959753707857711798046015515648884014071098840576039314613378597576413057866357029580116582453946987737384617909673383808518258802352572829921276982476326901677316014589612403884707837463274388028965797593738542172220802043097632538252785915835843849449588393184007237453761645011683602443297752323287874118803393172232756867818784469168278497377021945536561116199764578809023517371976384527160713475332106909350447344820011645722996295228365377935663792129186092426748848960718114910221410347822787039666824069785163762603513850919849766920448319508440206674910955934488288784910648084990886013516191382397705454182929912716818011200594893138417514445872938720752131490707055689172637555599891676918017759375557767290109218351748337257919212205053652777714375596939480118254394771224625158785116109150725978391730893533659329079340470967389318414114986651745086620939960656681103220403095901216827832339270807776016962077303690431855365635646520482134561818393774166306896416900779841997691693800231820900576731129047006821574684674969933924596904554263849123935094992769780825591890870679317752506634650514361453334205624692028766033247604613606471481999168308504462458547564960729761597694038378792617682159588430135761243280370432734156784096076640256977447645601911863110985131727484484128767889723323322140819596404056738379883081411135662402312465562905141420872800523113104051044213991965798673830245130155877334028330048959928775650890265782566888398242622437557510656456590802666123667621434315060168985679075440117334239512282681884139053681812502256204221360578612279940219304959556829058418295123706788064215316658937758628012951516275481097902769625538567675831342196944697333877472595080901835043767005874295274203308552567691382806272361396940924510759807920339221147993042866195791334541968268289087328794727794840392495188885067408683904430036417093483895065377319794224483597363227541141333208216143424678705412409777112009999721581906617225672725436472684007332129546292257659161796270175023140212968624971428042307814602134842421988371173682012620470448578201984047315924500877661336357046073170337014669710441393934507719257076339062780002209623840800122227414336460040515435608471564321497303799986664520951870835170365336167561879102186759711876057147604545654906485046904356542693599515222937293806512686317826124788493997396164821891391679634250783505996997578502458081897654322708035651077758504050644871074931629126516887475488879702416347841510729439015066233811821274212606500040180242231322427387530693282581919219958449582612899278078022021647320807872493445024137713549831766461518419113000274571259818899452575012822589851422978469155012824694898890959841625961093417130052460930067755608244064942928799339144704229036933494728020248054891804381347495398938997201344401309737838253398790570488742827656591177491732463998993142819508652352940440664122725099608149235377256134031903153215047158838040941729814162788874669883324104420140955584004584311374886842063237030027222188341258866807944366524682730681891332861885838677926738767686776810449477371852867665523099670250891780570533964808786303042077541363434703660396549087182571733589800221217912570387790004379129664597012804145074854166970859594716735967847574771818117567331156688345904945674210445624802485230118894779119161387460217657366676676090354742441893851859235472894041498061031300482188690410660775513411398737983897177661766326514600745981472013000158443539143491135244907776951996537841903693689792749623299181205351868141387042954265236086586114338260377582764859963522959730545818872716655461013947761327810250610289291572022643026854798184108610298315078795427198008644564311982496698060992651200613595118886266982117431643998007043821338295437945079910406468372354722665231104497516884629457376432942047622858421908537313468621399693638104625961103132586727359519698512128970017624904580588706899345251603904429738208961383103623575271744679863323797107931415528707800737376571856484510344029870540708096917365073416274622630960957334362841777004451500429470597953725918550378801226726737291253137456650517687665240991925464655265145178448295596322350020728044574747321359629405505360025579748206983740840296090617212648639825507478949443486095247863849947808818729426257937446067923527194736679157273443032978742492610883341588943337810355227466187120452055280204658456235948103099292865466941804240013727268126152193606177415231630137559824327063619585500125233905491333422361749533908909086716899788116326960873734891974337575736315018568502267031678485220142857763757083957328960122348263689733619536800174502139310060464510117562208903852092705757378384867606638008359636215911544835395250756273459342852167443360760630926562676586212199271581635088054261579497082464363148054863299821261149921146613990523872319808740808069343219400249311166973693607671265541066342980699470925617241215484842456186329586667214016044744542058376243654417594433200176973790478940794650761130252897132785815214449194687159116319502371865122493241842830232061197032898968040263432690997196589489725021113391497100118264726883110169440801258397067589930437366771566514455756860195708148215849102485439167202831669403243866502441796455303655518963073111188397194398442987182751667711072970178247515594749959293055571232053317409855246248684878378270747364308090771946078627514343283017793857721473840681252604988005810337183248185523323196509735505969305464463522785799391814707205201682975107432951894362152602069136575887162811453447669477080933971301337551332446978129261678327948984253208916274154839930853491001613392533219384442350979708789950659275298099566509526650246696042837022782796516996251472350436011837009769796173049645399528955244949928473007674023741058907916886145976890416721737101203027566528606267472335701902584077830094704965748706973122380587977025624805875582952589182052426818173229217972868622797918865565528471191888040248543590402353640937072378447382515312022421113958744428525570454869295949620709625747122017828487753639919438820196684186322627479957472350514492701723599466013237570662498679687772436940323664888688605205275929813658437327994886218042105864566954564657244281661081232762915049229719832161583682609989780256685671792198770911279790325762580327690626912057884182543189022772363589882426004047898272165349426628200810692912060950005458343508151264393180810625289485983095512763855446542251428472350238021905369150728624687047586353826787128443421414981852128976321568602399251247182016176181248409052001469356861598418946731318363593428786453705774755682297238868247104010593865756895037770513745416578750602030014168066108088833724908264403132433510296202174490121155935289530023393547211916106318265128301411619293787424605202501459940244395936648034055783470591036999053247159198622720197706575777738721887433350564675019814034714847939600694162734354665297245615660491616302415115689043187591578084319158562439188365033944448867559946596643134750265654432929560419799836120636330616822480442436454068054474812291951477013892531935943651897594773735866258051572451751848999244412202112854354044584710166508995612629411043605357832672648130577085144799000532712480172325672121456692232471763862205513200997043703842430244863749347126323211954352219201705216728151487920991847494220113434611525640856255130873337776140146567943819001774427697818253338241767630527002720883086664134113571369764250660744934277400144591710391142765788871553145005940595971961113029126019216357810083268245649097298523384175137122697197578306743595285752928498161940094544295523493564248801625355207955355185444735069730876572900645280057094152181193420184997127516608111329638914720252762817292253519148508525841493638709456038062178507160001125923471683417770062852854435316341215833053282024489498152545778852584049861996226641259759943903730682384854257800019334272737237754754409376101767436538448983113963929338954321200595864593481479207023938583143211827765924667995476034997570584087181452851400603406024609025005506215743052277970672862161483059828461068963375370266328992901215949263246788739027351504890741595566229384724133937563858127951222744754519160277942220024990962984883711885672519810171581076326057517088154136406955888662067064155206103314725550446897188373943840109520621041982786329758147760970589321400431193134102813415840462528274123254153615354319648893415114492401577919715520137617815416041345488406977950883570690028419443921251785593416946915129292449179207260422702948150128666292772469011123665663702276339014163661709484621884523399886448703664849973398837952377282685088230905000578526815359295782720253928638914426883620224038728079683135896124747634848777354868350852146001749553926921560402157552585569814208196458329268554490403263461610855245901208342466813871612216948080896290341937272987279499182227613323397367282952618843053559963900374470575369388477997740833503707895949331513899040793784284897398797540780619937926042101999169100471640250376946124117931869033066836090887658045380236287911477294063640818166983901169421161542187474656803430761115434646602140525006638869011704843616701755850538885251090850552193193611367565804360666395707743733734406333341159423578657355152485148262624393222024553084917843221072524719203413232904711672637682105812166751663412878931234493212231070762534310606338270773794466641635346937980115242416934078287889075958070862763898593654490669267733943407289038086715299450689054065788945762597748963974858563521711904357070963344432613215249319111801518486039178903298220162863888749927142242002983400085176090456205536823195815119139183215312244604895904373558078534762151289053132744485199850258284444291444679964515761947826975360861079352663664511386951969246274320857024870884249943006674308489499357534163228537050437586368124973115148542058349655795525233352907948466368365010520183163396805404694437717178587667282079258015020371430219260249089611134585575507022149749254444273521270115917905893054708804817797207972918635120219813792491589221675515447064363889864991303659241199883966745662045890261678140203984469141770404123453149590826795557041893966623049018838968280616081155966354949445840264542101927763033002891184974893284332791312414026071943002586379200179046838249106274697091345334654187330902240565079693034337042270400280807311832499446688360053102189155853706701966442850063203014442560200919002734048770122972023548691324828057649069001510448600667800892063437650480257748206814436569307769768145805811458058360135546403873305600110763604773274630903556731976643312535486925569121760685655381311698885373720252698524483303680499172648981329455698833311962702860797465625450908727331438916433969402958977137844246452451730036378581964541700125741928367072027449269935809279554154459649506884782296009408166029934245596993987112106966872449796061142948554186532989112707918939979681120251895390950575062565488772408805189307033116629677236482597245188081227738991286645267656341929030430267820924240478725297982436796315755076038449142292740694754146732810402591427679484069333512996803858466999502814857745818316184654449267839348992923105728817707678325699716408662640074669854278839000662793286583624767178260906545912252846979806719076539716647767086179387667362575980293644685198415792546715841144632404613493930748985212623512835886425886572289341892363547960610138068710942068970382694348723600736554023128233450078573199385272761989750878449826798419032322525209100084113482285962735977394422970437604558656940893111363151624355051812483875590264903337858371720222453770046501443524195087510970265937810327741204759192748993628327288853203313742773911572397387469906930583201190594984855839699078642992820562360855472356085499289640901978646131648986665701549387933614006670038065774187353190641165963128414547282871163100006437944828406913265058000760031394799812544340701348427040556637415920058152244994506543947699945390894946203289926119317156687938102757325163546775627173878895815150649803621961049351709735302480871303666408342060544623353042878875806180060948801242723395436215952901018028142847724423422066184224406909634041120425354074482403607519594599764897910266356671462863478677585745108362653423254368541033256596868766485101990394657927202757840836944989716586487709578909017776659280128237718736393623250895691395148525815914167797493868641588044018096675345336763358072477047397791805950462151962563956157049448293093029926536532247649311107555903300480592737852619784629082392630027055276124123965584754733752007774500011306228990460788930593448397276883237946038386508866331039459191099699816255374432930525786392026787531649569275699327542618943375463369607268670938246445890700093663966342954408707446914781887990030214174263895189044504894535940310956294948314032555511974096667588746746654475459304232855710481182413116146732964175123675411304573902837018416225016320707550097197030024796553786635126199572044404010179312649745902454545011516642592633328888910146996572373011830456895499674400071884224993390589801256229572612532826513454194529049238854489981054085638753711521764559080118054479249622663805824889038679692048516342322529076689741479078460415844535275324024633079537796340161683818994464275792624291390826959897757792659923566842054296365256478859336046649112443377784270366002805298754043778023539726134994568360841756194739331278897861204686434776916070730769090725553649505654472998815525713708451569114845356010910057982381147066564471823451169175369527098181729838491310093950122529686262510580376040846361392326634895147106191179196021312239361174077549661488369141604020309636627844214366993719530066709561656175711751473312338557310569002461336005121906872409888269517187708475858957801991996055381102649768022809884308744886001420818099525724227054978698734941547040165639456689085082342764133636136086833989466922768512184476147115041785259452781044405744362450646022594995333395961611402597355940898505351171132103363188170999688347088545145661095765389601625203553485946399180759641760756355646101901435647467458320069786106410601481353683881116157497126723324037530575261162948319429718807781248826001009239401842717287122725066053481145049631309556067386505256128800312134939167082307645352294897251467126362169932012436237222278894042815656517136758067152047818838161231600631150955809226812367786430629484151256869330363988661791465069096117539062555016130390560244680227910496722362358090126261198656562420048801624364505788209839369933042507899835087429417297290723812044193909321323912356253160189101403244561720721142094274365829496365128065518394320280363282430823767179046834888924375971588258084312283800674712607847148171572431318067393812145469241077563365699049230124558914696715376654123179554942083879057945020673339215543738006205316732437461047216066224683841374619439358072779762273585114029705733351980487799763165606825298557483727986469739326715286779055051577572514059235188767785814957457342098340288467497623207340065855442850504505558253797081719494992236717015724402290225797691490054254267653164427880834911548536824092629745639958540985903452497294021185232296913555084930020097959645609645526276075723324372300519179358165172412400641065404966419238417632073098779693886313744844854192742458487430467119304554463102343844902306873581957051280250856438456018187318545737278574605568018348477795809355550007721722409295716412843548977773423871297027116738616794117150184815887369911791456696182404624080373025770445166043673898844337552314148554103959636407183264628379139208800290188237564812887085502947867652788861959225695102549617209450477142129255845366866935203182295169735055187527362346050875122606071311597665551527431530656135352851414333900455613774903706383139573812500120708182759701506802968248427722321649901057616512055611783523848061930138867898819720913536556228580827980009090226425563024591392750774908270687096122924496280925907912033173918197443519193844554124374959637698169699978016681855389204881768205691979188569715947993160610451513195371289731893369064170218710297618787054301597827557623858309040535951683599179794813474982348242836477460130288867299895799700944145935307812570046436300547707242320823856470966307846870807071398937110560362443389679143670859767650780430030818127642657266725833556314173964946695952188984732146595922132440264332271412859859699312688462317642439141458932884193002192291117609558337450103934597754755475649588683578295909278217951022383580777268998667928745609064322901075494352649407442072542918599278953721821253203177216212108031622367292112363419364177559387333007684705856953670163774688122510169641204211778737332914534535644140635392003522748181092276406988617244540266132816738217424931751267097732749963413778516324348900812114365881614924755036955614470704226420406727166946609028161023814421910987584331073541725201810159813135190200550705571072165021572700021552817689392265880451791147693842412827445373568682737883390280605864321684072757737909090994643665210328575169332978819046477605202849129645264633309599000426535210144250955802389470380013016167092227977570247414626918987972249067605171794288604023064791090946464424047108977116633279575603580141748084867216755575554154837229669952765017596544361921989422065153271877096708262512237080465035716471711064191911000046964228212437470284433758418058241401598689938285651579657467723572838991265800158676730577749058468659200301302648862571796263837199117696373624653337773766150657205788324248925518092746713608241373694723134169003487083397927749416245304423081266046955859081845197720370135864149128085691822756318655725426233379985398619823671398184772740964731895995413475435670304688274118224125967833295855785215963911545269475286846377235208452826729529347605553655794116035749593848263732734296045973959232107043622970612092622576382709459998210956072059135036709567257286424004817894093007624243406003215794069043534352410757865500166969478055775413273669426187556916168374383039597778030815156547070419051086079083702637446548126629013571648999306070761357389160729597709174015958523561991113434671001030040245351322447235594751168419456480591349529738600272307571673016152040384651818441000522511194499397544977210345074978458636709562107116016147609660710377961744722960984133403678841141254588050050930991528308169431772691067482035364329151575322539467736738972734294592218628206843812836859787496531167395356567377593611482576746670185171759595744090694219790649775957704589245832646775190020132439753189418380535818455145181090384503730824860948264627902680760433587456045707471296058000055831371963585115785229278959818542661955280506406211762078873480615172236240260231814938936953582767453207087848818109922565636312727952958401364885481422141342194331133547833452562561773895871086699277934774449213363191960587139768538404719736076365768556886398959478360491792011686043230216980809796464066983438691681789562195720202934607607909349567340910727959156922174587041375106625535964902177083829640325615504335752727344622932454119713409238466138935377143676152846600411280076293464809820122085070766592852921459674597214190570869034972054889371166405008248785641271772425234520372922040141785489068493496730665504566637087676175609994022400447840935940560663406181415269385977911895183878967428319991083073999422106577691125974953239770304520600099476104797871281988077172827016912729636252788488924261426651387366816474072058168352706285249270647242759641588100773025327409320655796141460917337893924074840926618289775259789372871264765900709678651463761475466180046269696646359682842480806870229647754966768969701772098106169722578297684953727158401675115671339692800316313779783104777887929317738879199555115308076847689362402626115588640353118582469117635994957406764439485893451799789340814348187676014704685915978523556069412857534947286697886183167041727723681088716102704871186320052566162960330378456617414036551224254739466194547588046329173901167494669472052310434437794030354257096767579091842463607366852330913236196549781123098185353053807472386861235771111950700573145647344738764593258946211146804182384957159417581551332516366844104992881180655927244635345418124267815737566567529859444931004818548816767834142292623014651747820677724889624459373129078778672267331451989091685565075088328624776826837458882866599918152854950536179431562576851646709875251470195392170348451718142471172709712319473644601923049121200269349446600492741934582758035645961186836756550960269078094213433662001087017586696136045899958576530120807948473040608587712584091005390199143181294024684407019688958033382790584109394374567651237317847037395263904221566876337753225224114682909806919921393199918374351207530361771277013791027388263429076785271063532613605772403019118242559820867811702845496517013620081878722982676987463596318095754080556901759328478959364253299478013981466091197536184515805789870264670919961990055260157872664033507195893430772010831946132533374897181373849614796169462434521302549151471466715009876155879879933126960974028822026364909621316521110104744313501474830962959859323877521209839135134028270188318192366209951941849511058440445285340316296189288345302084321679776116524308758178402958144786774083039832928024464475017063409958518805549351881871961761021205048240444541390889600414857214659684834019913866420397172114699996305928223491081431455470160437246023291418235709249921201346867705928183625242383060028959574875583994180425758744539706733992926682415327143262753827843912263582516141282601234607102080340975649442452850089149331769770699052225842141951146629452388640035214716573662549451458811245165672829282316293400674403160661466442515151344784139306728976227484431618541398760496322615445703422994691625157687311143995706203566454470721906728499926689132320265937968057171035166854934445266584093521722209404464224538513200457885357939513185351483432650940120468119573021354116905730093896428308511836849057465090980607485644828491829468732627214282018832849639107186115569520446318151684989270565881125720337919474792755472569908059283844945911428187212576681421203224058185337232536731219933378337065693772352077417890942744287246851301521411057836709899145772916835113291502306605259656712255998504320567858940043202178952523554682792199511471043359746567518148455139783409657205550123887638794910365056334485226125790354147178319368644019958064291690042630819800596985659418796902816797094062453862841626450122096500089594650145978610084253701341521342113182036906346067977153381598134656012346159600366274871345112214071079920960882645224588947661712115695465820135931991039215957452843553293703157128595689196532436361928886282376801153688076098009162776186225683265831005500689122832739885641954264912985113399539776747987616212890497962598950073004858477234600650985108116777584330292461831391047549578907412462611419789929491689119157734515721636683081378060694171731476413787280048598016542723685384970866544205270350580968497374014502198520093015727268071854769068555279515073552189782112704352045821132388284501525030280238591334447808715334312022828264646419624728203607333775693471338030927126332806810426645876554708832544093830060542209626089454537781487104960644868294690209295823606503873538243408238013995303436234426449871519784377607135927850856284435009254435768432135984474381654082052244770953227551468923875778846815807158840616006816338587827004935793531644003733984682568796728675684783798020863789638278378070174129740361584489278682837033218640101455493414497672958581840723807824962943314773854187475294139661014408278372614914560468755162121011721568396005313466931965667046254367617324890396958768273298551828695564070859921290095097257499161253611925409518224630772633838437372036524604790402418581460341044256765358152754609068443648418345863719814181692746693855497709486186855970939778735553152020185005422477793418865972560305558849367906174277565601133075600806483286911577726919631248323337884153492963070768618948938599346069370534827987764569193448263906588162585778233704594634340885311571236536428449632469595870677331498714017676500655569456124736611306302453017752798666833206776329102010413603761561682529463293468875330921398184676772110158039393853161636065491387049076126672584010654264789131129264256849823638847936936428824684425909069762901454049878693402560964794950721385163564882549637750538997848324463662612544315014338078412254488148349631787926057399112698093934613192928741763111371397643231332756246058612252439727782907310302833920031442273773014958940169431336619916032590684125102437941464581915561147638791162153672717152049747187894644406153835390998373946132476448433810461547357039765122488274449461600748614082334346484986485743199924278739171857825405889892570565739727971761943401108717008889450116123579383094476478130192535623567472304194296818178423858041726348948563679472137930634353681519772558456428067206196605101603288581381894454467861973809088647797135023779183889591428431184701589137452756491095642162240366154366649299818977480098211932807466136395503854471569437588656963417005522196341003763646296236855633385033276884812539298142888833001571276025408703544493847792409199365564746646795964112956893384961977499717478664937592509156066794428386374623235210608444108576019839929472184196706529223712052729625422696253344949434539026454068032953590523524981200177570921616514695640347207944537831075544657966832413398051124935132531859332599756405731256254018173218769114805377243188359521646146923797508876694664893386961740495985922693117976052052109017362696746253402669239748035986868380325068757332278814084779723957207435739646142556759838987671373099925972081062036988208752625965837523551956611296165070346563368533156950476706865844765834832371244334538277778065110755090722871756042171775655886540904765906402013156919537418348794619816707886455225640396882228931910539978758849811163224431968696973889099353296142006007109314748029997317910413776469446436075275796831239670259894206358395535338908981553155609775071636525572345589061992096955331628915454679992538362043488808783114586389072630973266212653512258361285085247195534170008055443976387334326678039508724990609749817789756884585568865991492802115112953243262883029077514875580183609530610828370790425047186314974295803744605333759506899798995858079148379899957308513163948640305147198860938435253343071202488047034696111089314118569229272178360522266659399611990794775897302909667108259543124776488394293853344286304286113254864408556719257035301773220597966046840612337915263487386976714896942459235154798189726427778082949702915649384512232747049072971747573593949154229182410794314175533291233573052276798544386796430466060276708030953179463683965611503676169542592240676572391018328702106498607860965834221933324092785012972394222117806728311843126860202618138927381544023619078287883593807693682299486198054145305768327876815988092328536123388674363844760870699191188755134031782290558022389164879942263701232641641587153390772974416144684551497119636561832928911892960029803826959361753687391733548830223735845103874830218379294600614159111475340985689903894924483749369085475368681267398499423577609058596027265761103127898525235818989112976298846067532188217541468266250579744451024352633418217576367390538378650012760181819213680056998306772250859914750898140433034061840666567283447457240934390823167402749753307703715731531969900525359317183883171064277416720983958698283245111671253906382621350348530530372807957570188345193711602228908657063458749081128676242506684023930325204971195664606061408377652304860436404151803390231388319625099674397324997616835872549867721728903185661718414428033997501662007216928873518320054030720708318155645190309929022280464034838239389900324582382054741991965855466041622015205356376165557711559371760234760537342957185031635769627420570438286604140878870242673843239230513833701215149114663841611453265400513553073696463982060941281567187010453972857887653795458615748911747546330752211696091512266191583966470229431030862353157192281495983062507704325675602635385637845834717285681759367160918223356385307539831515709217620448698153921766435477339571932175459679008127563512993010947216967484945937673894452425369854551714243775428014160935960076366179189372787264008100976660936070115748364399615960115109344477610517527230805640683759846475558392287671289919967683795971199626825048751258831076154778276881658260595401658163954134169123108533921625182279867464618516549991333435404894454689404470532580056693332761843621813147312223488908091181259348113488139408274687246970943803571448305986405393211877427986469604925627570309158368693810427854516124010914655152003745911180740013444541008026238967862517750584699643888923779050332302567567958075276628384669412544904011277547610451826088409759138719195664652828582417365763602268764026050242629035681017950626390139432923181061061619533249948671112708528807246268795884147950085064453478818828684189047490663926695674952654129932219054339945642171415265583884785447625133674331075320268852278383048763445961046240168953665624051435954101055118886320254407717849929215321533260123662595917967264664986899373387324246632104481146723859663065761768430587046382181861165873379394233904330203218780620464173617029314732223844526060013464808739324168570227065854520878997221428569112568443549657667977373340541328920464097759229065503783835559561057678895826087054878522416177360545008439299654879102151220529353070649446876173157086374124905369941743724643415112502859977436386082025358765344483550430673548327664522528685859058443157311382367288417072736638883441249275801128841174294528684797360938288947822375786561657276515610399343136707584778131672130249274332804842990119039112013863944853588307643831463070191554574631431055443971508902945297556371068484641320659187742303401959951488386637167881044616189058376527109960233622034894613233817129292713871887498741136820595919037209352397680910969615317461769822159330555898308030580211274605133473364646223911435658990104262820705635432085092411162991962868664850746609422600263529890060759826850196242762444853523910783853503062449060054086995845297861412882500044085041203734861847901144601830655566364626978782767744296170680439673393267242508593847582940614302863669845740018416885940752330125212428453632133739525663647235894640142802337927180786937944179611753523165747952828175365862849888104998824472792621549026323828867781706256676037057509520101305385437198235599350855210519416060508731320851222798317638017504370805496954897981102659594732612765362416300212867987365289309666202666381217955422785549167067461386932018869069722996072725404112672843034223881680707284715109964867366737076385098394216963086136667782097385090894050891337989056996860797520346555417428293696331691796354198048814127604155025377418114307309351630317337890018047048596899908203559398288974622748259161531546582593385124069131802923251532931246257313083016501397391884903106608909204056830840917633425304180254012283471398718846832756335383520215931979352090980708656113928672172766490865577338141065325592470470552150572486361403013887083417404489138245826143293822724153818232889089123145388674812598316073477949745508711818226752886057700244435264248991737794798320886746207441048675153034958250567181623922005623026339678322730255196337508585331375417761532197437110131934400765439627401916730593890281820550943028713514064106819176938106967645053103142735080021861637939731746592449748493762203676602339457420079550462321268619829393112571861362788310936734377995281475243446315068693319874418475445784353057394076971396788812276036138939649295708922297951379612439095295932608953662595150933278876590547457563131359249320179489896571421314020621210759650627239090802633154741337576825143262792880548507007204257466262809520679582254351158986830238367135347939672303340994841673856838151788708442648351418456671432768278232792226600845329491839038610589795678238369884975491509028800993996198409978779466974146596970119393908388525467301372946988118735387350865394011907790858087039685183556966204977534131329071528368597199122563691987534483014244429902133803452894896163085363442258378699565068851698806851575549399529105442682314397085662085398617415773081318320556446147251925058517857583321817817092454891976849713253349620592729377854430657815087560702563423889604360219169218757224468367613507531604971362756892169798057791502676785673783887044776835794347480885783543759895599026277475325032515785709932579842596798674341867128299461889498757866258499249173819014098059469749670348914342398653154254293970497594047821417884271438643028596255445417635716302289594195202440236771909550847570255816348564331369545042787244446609498789820322678626783574704039423013491253428436271484139462057848674388451122791509142712541900659349847425639195993404295786287719909769402267290198528058820476667696560567997088522419837850360964894367213269820991280834394657797934606974760996516088829982278857934940393490073228510979000874473582448119935211572228198848276936631837570802996179813934785901083286791638473874887677433517725357778856722532754412573605696946436892283986634991806240167002802112782338549314758917015469022684415592932546063664687871065658872189671410084871654688745128476565908367872864677774311333650069493382084745062719081415278562422866856050721544164342073736558002091458418246741412935829021862817847294672507860689104139653348951615966348607750288780374690831457657175760953147290261401378264753289821116982403253378188918968686638620246598594597230541617846660985825278222480526203855769334834309108584967965547453162510410012006987770293207160810151436779658973312467411308574924421563542109742703715239419612270376009057398977759580543310434028490436531206218576730754923716301946247683087177746606413021221153249762477558765978819747524960221388791849846652641102149256210250806587026218962123225456462072481663571292855341488641343345669536122006448698728449167810045154406369200709160421015627067197836338962165211325363956072865909435165137527242217255795481050378926724251496453102212849444519071739327457636590966732899138177496632824754874151708271785960397327359882067740489339652240811788552628117944146784831554404075078266931842155483558176194152613490020383560242378894743212536030015758517634432546366727679511026803763274017614908247113982110434214420725891462244404870838082708171678867686756327490866230946151074992218904355246231553444216953998270064466222714073375630837010800829887855419246954681131767134171769053721830178349870765722654879384512106750517447463940171160306388571989449890560614079585132655341455741373405332455071657222805180441357526416696797080834548482545454897935430295548183533907158165129607312720569586580805792402516871166164037850732834387732246814046071489933344714899479569463126865277814612852079931254508867502866112157458992626426400574163312901045185179689511362566379210797178469230333423353603637402406428358297352130615806744845462086633426377474041764740405578783251677595566860176959287518920800363607190173842890648594698250479098137762180564169915325939026755886512209752041804000547470875922819679235115054517239529026864511621902375524581850004616708608934010843242837437180353461387753363198417855612368134379844420008460253640056399624696685111209807380905831644403117742296585123967639579470201132371187247520814220641843911197081576607120073479914489134732093398884339477760275782840334472045989512554716739549295740234255904134719642736259714003030514397358971897715181851332833667436304952870651826611013524288070010624698929740138126133242511230927928058455482223347834792092785624577172243229837350613931721142500438578619780081738532937115285931227884727625151476881942745563652749925174542501589523423907478138442234034023132962764192422942464491547699738094385196672461831445552436215499827625453283468970164454822731763943766869913494193159471245788009830119673855774319800387387580541653646863391574720014557358468970204896927869281190142976364184609734515414635903446757121932157994392588535297665543331913044115901531320118234105359093423236223993586678460881198960169114996638433325356000259078323466588077340645841823911207084716450639504807823121472909596859975654266767281555341751019337812198094733897284070996659458250724933783301026312322871720807093798400014001608136827123874783605393268973669062563201287707158017890627382378830708474364297618451910686072324365462200391899043172247369983685847453185745870681813734168765539101146857849416658098086996441391598234852470594002932243342205557060260055561686656081298683662334050485624186965992082625636484707073293959985680153032839716004131994178971969616128374514593457664769898078450456763261634760321066166061779134075286438862320041348933020997706417724014818070175884030331745024426786778602906958550526068241701666075119633068163707985282601512230521088467462519801220495826884102280373848023846999554579022156582438976734144113741627987989119778338907366984802812390915123891884416771158244016927251599255947704442869799628166620661983970938218381727020343394269912842529893487208763479976760454359266873146327922713523792973580577938300690788921882112898700404025375496227074518653978903547619725991863001923039663651730155601615109112539729870372447074309274297685737905219450846967557409997566057236119162896968905072839036315077039842224374642566475739184150091801941478271363878643971760998105853549220646136171111773603345271565358029812651991919973237162383032723846071138145968001150544806069253124145402741291072932896491465621700526334896428702414286851248740840071826492537136115462698961246761484355309245787794043348271349820777673365521045359218506422804684911082835839060823808481817935681499138916745577761517779727774691413120536142136787284854301337449722452811517331052811305488648745531047862710050693918286183639717240309694714211878850958284173439499326618547343124563851205979669900464142523031049962422593068045711927478373585163234197495540935056993857717941427904207621199472603151835452992976092693049079598524271365676327526329660122566886598581279027972588003677960876009317990419709371110434997603722209921157560443056684478640756891383642315842929981901126010874655604769232830362243675288284040946291743902045531542372776612350050509689780883144772083933094899603191242640577581774935722352551128515121369655184902662583236339830379481383443601580296971781331414081535745748593093204861064929545746681295313939242860821715695963871618746915100298031850977130423450533065353485190405270430081287421080690988885187729598986844541372168490695178385544746348794863377899220593629295454634591238569805935592272686877813906663843951793713864701002934421063556207345601414774882896108260189432427466132186024635775801424622311292352777425238577707748032585797110834273128644781519104370297283982758744433487694099612756079945849690363066327755920477454858363584017959955802122829016102574429783746903025714721064190010949741576290520222975746983357952136700922691929092324697396232831831991213591296688303952161788766140344915999367886073204864770424697959902236525706265510322922242133758202110395318038538943883748814108550389600569723003615986974427891487747251394769834374766150399493216583076254420483528982650284429616341401972741090024348494192051807673214497004224437414066452025114347656725554171673481011576300376760367759804746405137177673044141704744948051598999371209364338968908841554224180855385803156476182130121071340868172899223050922900487023657293277792551732292323506650655086522901630682180849165181157374648546852438241756372975134315554215596134219425513221750485610073514214411130774885472504306710223197353087927935049336787058417085688256619046202580149593228154775566552270527870843705842088449695558457657109793442113018257159323193513664991521148441159804990297512050007361091794582548064465266824335479454703508769448943319598582206303221117825865833807583826518994365626652067553324534783701435559785449728550446746586233078970630715134020789737033200273521864763937454700431287786132936414743132772654272669447440746738358248116179316044203494470169353332618122650899039088626119637246622097495391061408979345240494014810446569032342147769936747698788858060770306402307432781839778244403514928828345416782486841021200540201371844471448994890646934631216934257588578735181059480014162606713409271412358676631772716557435110058044909720433840601941515337736929664025464129065591339099907152970976290462184596336261016704634522858456291489109580666679676338161870376378482373477517287120422378628999697703030756166432924804890168375174583439286601298487844511768720701928790768039157541662814635241059457455066670499726859750833861326597025973009830581554774006324905386989856369950616761565517970817731113773453745818139302535184134889881773479311890123417585626366502530681006205276403819074966407252939827344254343834090603156824833723480697509454852893402486372073337431971841930058797832332881175220406699356694744116216450360164175366257795094398184845175449953060655530561763951369987696899951468314623989368186471150153570264312949162464037972050328012749257313535706282626891124431338703814553904952666749088439406981738196955303800882011385283286759844826308060364066725985554490775919048247453184202225730644858165385965864290076645485351849704095547730553393428790733173247667934416423871875521305832675715458926483924355742022725154945029422444571421820592975120344997848731990721516132472550726354622675323016086227099345816239217646157743272365722629175073028379539032056948062539494583549660298849866468619024388261074647526910085376949569413345730016407447615507787969799655205080621045544230440468727225182641500477434424214192528646249500217732329543216499060477847882984040416085707333793255698520554522717597276819282860801193171349587043235438062478707001956131248215121705220578351544756523031400185656953710422010947367725827391106518205322943747697139908132233796409560008886616946856783053099815292353606148629070599378777448931955367967965926111923012295084872106897823185326587384669241250574939240637616523775146015675307331348199379240577717055879084280219908000806334415308631505831821599750383357983479036453921277100782076818655570120305594456883199406307380078164785594938901051099383448503899115898352845034496541616481603095539995284065604474542243097263133959661115564170974114638462976