PREME/G/MU469031
02096587751369227680431020824495474237377467820608246338695242907582962070894342517058458129636880404700578211887775458597029623728167176729697165563890120363617286946765584325034810059288324655910712947731151305764551219727958636516943524965730489761492798747008841411359063814200084645596522680078795398795542105296191572785580254416150984846388965597183048916058163770795125098920332923713704485931849171270668639937474163988965460016624833101306611307626278944179924921665240402284560073176322506528523022257340778113256690073411157297664615119626607544982630489189955653409521098297591664740479750776431697513680930834508954759103033579523780008110281363362970401726168934544641913729420270781190324171747479684029610188212625782281074375320557650520118204028519039132884930227267143831844763849059419307457486562999364156249101167255800962947312675844844325588085253202358985403573470499147430753749595659040180810260089624857601088484870135804166071485812283973449548389933609883885347062514059857940884565491176184850296220865079702477089883646567156786505636429935387208544395257472696355155014961043748831223452760090520788153451181557212701059791185426877562144205636120475551633450854878742403114024656994710000613971116185996576685675663520242224239658732366701439508854632367600587001438834389481981643887879205135869297726030232715000489717498023152849896611009462522657122718093682602708178914374244433991798645844630264720836502459485541754560371800627259875232406595210677945484964593023878888041307805100673919939092463082141825131167234177948051242478578510627801980469302141890423606817128945666192676367172237972174221786458926905493859451063574801656210041979123805699859285954583973247005945825414503834846979102676102469623503568812378977050887633084708409370948988773389363355782061291042870548733358538231016412928231057312522216167523068352509216485300910678195177282860724510945691108033527466410154330267976645209487804451104735948880423972523982564715791328826414234875437349505780326970652294616950034747154078637623870390200488587396853369094617964944211686733218560020074288059394950169191962948397802982418195835319249543810607067496069496367822046177004070534960093537931740427088596982330761331626482307273288430747622039538648461944868055119416375511456504891898006430424527393884697186362369042911683074118645551558461428231219607729361733457227516423969069305020718925157829961412988854508050705194353215631747702126677154201042564984824539530892042098440296693610411257574595446286593321019027223469583347102856291837508616963730279120100259984923709450921737668162019242106029551027848351240424353134305836918145384660328290556743187338491005218167893558969268334809086206310834596702770900420028975132696088424382650850853958900968166399399039568113274741785028096207859008382778542549545604852031111668378672913079569058520451663281208097072518635101060773444475217388732938253308537954589140203431091077802994284945913636275096932444581117078956528446200881199159206528157414578446116865400135511957937410136249958489796175261426492957886791856650684651205466812548849133035916459939954192639013985490717317795151426119794918853807806638370824706243846840134720666140727702199860886189424959678201179827776455983405514724554957894560750686925715022242411259166454352175441946706757396247390632175972972312770560556892416203049099724558712159843317702226736961451742850777615263497110656570519978111257275492846402739689172077555725801505321973100266046493497572500599397370417978448773866441940390261006888405331088106380118272072773865616562852870444464184458652619661744298301526744547644729794680388454403391516407482516165839197512327212947358739977424660994115914286596949618345319679832258975937527927378571311323835283991625725119549516093865873377254684963753847567753779608144356488959337121295355116473964732586951842188005540865429683948624142370421366149791378639802489344348304849120475358779744437910942954661179294130135402958767711861199543490150935678963910898171757699557536942519496836069162765062610119441508755677856920081736420377792710651946158793405425992694407844523867579947293045174696386404783382109179357833037810943974240611910423033706532370104406572659261740327036139436468785691954477642296368386639857747667691705267424586629552653216223859880878516560524737170043277020513569896373116429124008664096966465116995208837289418919357926864832783134507856404379348809374595387119585647190449515385858867309597815042796915100138938502916983590621929653398758332544760692789352799816163055375139735982699084628404658952726512720832936436148224660863694184495131104616947308261487944402909877688778573633705662383153918966081077524373736128720709479917759483760874893294509832073611198948468382216816975819165040152613828445577533645799020210795989145787853225906867623271570416646390813709240858336529581956290973036929428989834788475424946858028041309733203623802658844361122755517955769701201541044239688055438309192486772610519115624612859088321538530521676275532450785715005531215613543658643915609949889952995177805524181441735761191229500611688193461111730564543412336700968465676855761650915423283604605570319442824792885555968874722901460001620727685324030134081240515382795977913652682474133604551573884319415218117002004679583791376820744279470888921599423264653589868341316781946287403091477796300064302145614326907419804277042055919333598620456386017389604692828632730427450899879573203307255018176975812966168153414736252201928097312396973677120246655391568748196714984431152929622664111708482464639715910076713320563666110791838346766240892310392919239802272124034438148314818377852499477381609637235293122893711636033273215123810679334232682721117961773046352239815807357627991590988890859383358326471149071211480703115103648250015727005004108728364562506345927428070424979761930650108341453705439593436608001954589476154691634032221494677882413177405932476493623565610088500948852606308110450738291934513130878169758568434082957782987333335878845460891321165784503208939691019825019696133443577457233654187701702863530456815516290391237783214737949262945273883271580494678330221810235448576368621090410723301544529928019266890150897073968700877481137825066555776044580078369485059389850013915280886377291554473321959576893542356439499786118490277593608402081742104265451508586667338231559437014319647265884193200319288824615436883775596375502884843713807640379188886881741652125081858472303797207386020703999562316574716372712120098592225417582249627495829732539489604927074333951215712891760869683620426790730295454208883890243942188268892709919862256421863562325690425445649809348105025583259963746908894963234455629351916781366734658725794587538141671448239456834167408354868915577175687025852516268461939718005309845375017276045915605395675126109053415511007598354061725768285029361434172581115425457092305990127221855973405205039156572581581552223654181671667796107134882871491301819127996529926738836108800472381358276536874982238851094923303756827224368084443544919020899372265486727221466611138392751297933568882079684076905317209164194744917322098107430798778288080502359364342076378178410038701254607357929304934912733125050095420984430839901895541330718554279636704550149557065976509883049047661577238769166129410814573332853883449308665561787120571964641336065763447904410997671198373286746614634276920278781347410645093584632355142922976350778339106830634812971130138482737507454308641597756040926132301088991891997346152427120142958930082739161856711886800372173957957356241859285716376820217368783139395528302241619210531672257098565581014017418714256549134483837408267560484276876484245330726869358321890958734465331675203113170699000163544156464170511445897856104534550082295263050826257419003773512857514307265899640302809305519259624099290562975014836580351148419136334994425929838398913976287395617207434535180871849145714331979068453203087043775772862124535926595263640103886211957127937650837092167030346805045896714776893239376766850535298350969392502415885437672561547007912749884050667901544347988284657804222683860828297076288487081774522304655414937734323841991093115361388860232662453833048698568575726220931045635681826226295398800435894468475667025453741693655259973896858218042625559644864622917109131153016828418527298268339282566981055446587520608467457352866615849436146289625579407866232991272807980065368217491307991202728145645096624130860226818360089653415644720776964109050596794411211491115108310308765748581065697324223397250767259928287272050946617070297802860759981719986305931610811428702246000283889306475778355219004932588657503042748862996517479190196830590712119159697572686153087738573856590351979138129441814936761241787631235094493301001106981317206133441530713449406625482749501247704492174949058887748913043248917131419017091587102969046671342842250661653836177391998559496629347873982569460849436034408963284494649957772798477013758242081526758352746141761205617142580748096533283287961005647881941440634229613370757764927975342328240918770626387685293049889412157258027889399786717058264537092489370063526488480130331496303885043366945232387631477740485655466756223520877909226469166669790845883887051706048282046156130989681954050056739105878136889642709487262173818257073582943723569631596716250179320756510711892435762432371765934089870822452877987945974133760306976763339968778696818250900010226114768502380219412238560303058489652434638589942646867874895520468182760597474814137164648047018719302711595074170685898285471503205409185719098450361343044965856208632737680504384842719213040813158397241381309647950435720124016000807022786336506406071976967548098479305340070680126483029403888172286403434596205195064019076634976082566193448984946813308630892996930755730177966436191397539398726527596089445365358117117734163677488693477578194808479760922929094208509542494977737853074074150904398890372437073978240701012140843326169711855036006788882710324087322380386982120202232920994295135799321206324190076118360733073034962917206084110596453183451217422729988945306824777209038056054347447168117458911135831794530653346318751395742059782313813176452353488363333946731886700056526968191793511936153093032838443898803417137191694997574179242587267086164491225233651531105538808902887780902088980275470112801426720108963540568309681878506266996064112050549784873266289736094578353678242112643730205105097141785410801943450062958240388637874413022947672854430561238640385453345826340723528489159807256960945725671454169549301923993619469290102593104413361239671864418011923934210651547314911386704540826476275351051873558860246635218898481510505835803256926474192485689929720242982913354818397936105479317102104928980134131754905148413438276055716413294901920261099091347107321806083317636832229309519456201882733905937858210688210230439440914341062445702541219387071943644203596728215280105101567129821001663214838483550662017587255475999009144786660197905713051724505850479988971394847844668343713816876083369948838964050510724675431583437056524766942494060024184503902600011784965342117937740617221887194358955218721239340951038087540513903706946800897751720164169957870452499372597010099365728948108167535005381795451413899347499125526033837299886172163019469674772548286619702508118278294207193073992758820397461678094394040249689845067346215378141319766688163076432325455105436823453939428617292305780484354922834459321913847087929421087797055851435900085331085570666731224247584749827204868221520033633262778770912825843390676028664276569575604697085514764410294393654340431030787648358681638447554474774006705558811990361469294964148451890850222611620274195762845793625221977741265689798928043867613792923771970006854398673143155295452401365689720279471401868040884720382852609066182574658588336381138870177113035721517852979549239315398116968288590030231280761324213312433057641651013553336956066837170931944922909294612598721151264885010162021244005376274068269948020513315033077879012439789045046395578755677478660528192953619548521533392532614440383223560091420507569190287313442082606943544472717728068263973014378198301688358438499554031643864151394203323191032914476024871605589907108011019107177677600386748301914476112464023246434395567789503498623131994257857899034196511578512522708989824255105325877113253390055236630758233777253445487581762096493273030435659517611893695152365307793606242457588335102152842104903786328905585782441366170637048836377554051831613621148364253648705536046759458750622970869553288881771666962652984219053818020103670746944883601958380750654933196810362584826288408287296662826655603999534503350910817006693837657311777789481997021460915339816042054271569468945944488286817304257729593523162302888462931832021727500255633334973220114964265238131706329385602088933219598162163578275109775914785496212696830819180912372869069749530470236725952061555048282184814861232004674633954234775255793451531561205725060713547811664486385925839718652005251906392991625801350055396252857622125935810678849339609030022661428609067901749056416204282816926662434831691735579352962099088852574532114950343560512151067516042418965950152727166784305016974825298549383553490204420389163458395480228747919731780878985848577842014706565817505193138125873475963303510100068187834307381614975716961275610042396303052038985345710874698849601930204855375530210828405471542850492552167338843142200874648827768252519986505406973714171444141632013353623234353531955796904983906817492224766945120346201514748058532024364774356396790205300702434342693413185099762255392571944748625568712034224483380261544245288024499814291008365013638086786979327712182856618688306221200137519865423218515412904563350634480684787004069630694965924899649066156552668253499333825283685343194270530052779588017016013142730304361611579206223680406215165638736745291586669756793784234801361752291391640528075372047169954479377791021923102922712686391713516383894277974787354037071596716913379457812605892842349644210062547516850465892823260274427264471290556392464582255744556386922391453189063637197005495007677679760154553093132757021099243020689193263863593304048173502719606613309523050087498098033433071281491280457617232069186661435494223496534195177074158743756646615884459641726116191127752899028478618041233219326213873904687545806124667821566033979203128302867338993856393304730086482867241103217637675631515432842817913081969784224870189778413300697062732955956745847757391449109093877389833241441204592654459593118450467017633609148351052198791109093830269627742744624591905815465008962221266361549692654589828046299483257676264875210224941096864863235379411840127589669619637854400545138743232234329636183892052593122286383319482540790234868868470625997102856690036745192346911843407644666605896249391878370324354663528625607548677773862250288010592714868989413080256542975289012549816268262628640588242499085204464153533290435027619594488656549759186966051601656565388660430455593537283487728094891485294248519495402911896179284686194895265826790951161729070530319452818055191556392229639586859458122568641523497567661126332856380292071174807857978059533794998565647909295285372357832305755689362842194196282589392670850393825053993352465926687552343724134815535962204210004832229722407933853198887886255045035913623109240965984232455950938754976338545271255790882021920134909689639311308002000040410216546972093050744143443171657679831076981372897949772488242823288691372189174411379136075382441619829726751100628205936848565273228739489594296686892464595835612897674507481406965156376387729090458289825217825395676808180131658557152598017285248444781880436184166450956764848344457101887686665038393332584751291832979085406635712628603947202383701635683910199657156913525970386204634581004111112441455570780546698771862090674505225968136942540515001451031265375235229510737405821218214616356229810913207403402691702892202801190703357109314909246785737764695090973927042941199818221423143941103970820246253387196933382591305107017529974844877643147615491705210858076343510388254091653576530443678268878224198445656193203976952997288884140727729663281044800591851327451137236343173348823936019805709091049586816150519087592539593906340183557108116509583642698568516511988553020791308123292897142661682316143716922314660475119696872884784438122170440783527807189271362083976347588494590534220115078321301032023563094550731743818327101655345007314308032880171240713491431428241592846092091413884339273278050366164585180880269760762885355189756349698132618495382004605633443423065734212276608863843381821588380277250782325404296011284059929543728716823268559454616249065045015095421258251367311945674174285152294789979610229000974403772385486546359175114662724616499931812365144694781987704327333066561177858147104304160846132575637199240621182650851637359248113088080728422722713790901110953210695014737497529296325481574036212547459272795247226191591290278403575730805189409275519192708505328376676656516496106984848622830006495628667472616793796170039878198984505480843684065556645910360740381415424571836000006290410754608932903027771538233272030290016416294545344202140829530365269506049578184485737070356558134640101786787818209767576892913958737590449055058950382807964007730200178809840196087536646257591000218870516996536582461657080406682956168453465054427722353616005290758434258664606720821065157940640959852389467523608996175800518528468947998502072867041616896737456269103924278648374287294757075937399702692796259414052884154165455727582291680641478808917033402886037876011096805648426596099030430794361819701665678364713577193012027601636128569617580360192606941419764938012766235284463084401269061532536824027811867391268583083903197679310391911284937404051684616655035577188412971882752906326412221066499664295107280596795198746366833890985326218227397181694846296816495233622601150827646188237142687447876584174481783199135517905839571356815636669536020593055318123562571340514880557897673733887863758149285395792873656791791247300891140822770240449860620197122175875034471073657992866672872565715420420897721191850369298981483908686905385792418606059986739251921469731753340098927892209678139889599529196455954923382908091855516303032428219618441839744915340649654762676344384518287489070744906396362151815505079195554505041767992125260798790328120689929893990314214681129979935419598957422451888103578059509329137352487578853903777496339058950443128487834831481173049767928091195270503665218718638487860641312636001694357250682949863832211224255752812671510639940717333178447148363369337127004882951022475770160959520163547144254046662410435828631087355536734092771528927986828162971532191031383770006641703867668228841572431171710948523369178929727484282120559418339529912221201526213761540885156281484909560831707216131998056790685921596225387774062853479183089165968442642822548675472265828284611404469888542349542408770737026080384420103179536834138871310752418834806270843797924878798035769398274351760993751290705875287552374194868682258078007001513476578884251245912297968419857284135886738404680621886939589013468291944355851228790811034709585224180908160984640570614608138361447619115451624743864886976968591826711758820006880443779890951012303120208812843294702831673786458862190930162078606381492500983652515632992350716495084665563218050723234130373455581788069094524154495513128592101867502055066716278145483890408451821442551689219519084421332395375751488059793420002695744393666981438298492046194013726551702231505727032039109747276283691705502245343333904986070917464516138327614818340010230110400600249937476819318750189977725709393405191785339611298361117351529164252781029271706343849350459632977927686685521281089425567342476062228583491247670519540982962602375991751054578975223248768695427461708714403600161502132225009678748023804791405059835878071753691451761479489693367844280205390533514175720268477873865816238581741695271662843272651567597766963063878615758745556273585675704102231756877907165240997049041885172860664022953477825525102279488885125769706144389897026858888692004294115234117470533321784086505999711484431395398246440850215528311531916437943970363592881514653597881625661900872989219397517994790062387931761763713856098499156131693965774612958221677487661526825996995572290942471373867932212201552602407589411570860583126131221004071801189006230496080664069888427549218299646919088294177549900870730092546145966591126968780580485595577422339448385267577015855379662026970012792244211927467056554612736099760220920015807855677896753374714905627606403187266315799225419676740600596921186020423672124551306481111675350071979049951713538659901591893173729173509622065164216735304366537883408063371229931027148117573653956009391220302490670884988563791789874430491113731797766512128630971654279875123656749191807408473003349503584258561767270028298172693307695225538122677820178334989731973812242856460542451594757023440942337136011384600142704300301822104791891849837190287264095166507833441616467058518563340328224141608718097256420831607332309422062671012035055190682839234675918328396849916883127507092906909547135880311859067196041971058515601224933526154694351726517402748124552537532677011158398765014380141240670846451942888422115759585219128408715330927031141170287275376424568266529011234028804147983875185314565186958160328099414901750643819191013585669739445602960968871372247937231433650433080754612132113097522198915936900186242474933928816899770000065376191661670368687102680245037505379093687427031397435059970168788795074899300513552245630825703779033159851415641436314695993827307894201031702904009850344236331322766093109384563647571522263743534378835402328288936948792020377639676996391237714045675300641643202995164517569860452735516768356449261439203627578459058261969329759912458125839296188865791260352561966386028826310784460832563774225226704183140933280199743635797968454614454297521134930700484513289897781541212684646207948692428782390768818495429709825093801614489794611270012475004164499168748935993365609417302478744887278281105372334863078930873564022567753506787111637702317867196283617860182352685558335701426375814590078053369708337507195391459809922192186990735422352787820014580496278731043355860878624229899988698536428102442844736601716465772645869826211788360085016558367210459796788444323989869347813596180185053725044047346743652823996191104557826674155724302768332441551355025510912856845881366155135346549933246672876924943190915862217311385130412743005483129656152429589071845750742143667110474677873629948260502780070901546582074748653370908989808717473594128173726170203069991135095411177752732450517138895778951195672865473605812502503180126705742126840918932509025925954636096094349868914407207427492908165097763711644298416673163177970838953388210273135375142075814145818182091009183490161493463932459717141264605436356594841021498191379527145353316440624167075694977937160276342530709322574609870442415810552129105103484961488614362975158740746712225427168095219488379278595463457111286480417524863151605941375284131868063273814156916387556614847438714450357106916959411847687852070844918320838665238736521459583124466523650340276441608553211809760698468959448195887495663533647923750868129000162734040582227061477402192424501139165644711398898808887794278453067090245427803914052856131441969487502744297343049112384891755611078998147755414450955160031196005522801518820816414778456792727739699444603150306834912072579014618827388854389550846874049822359150156800593255936964372172363993044249051413864847151366065647862543845447631102770661747576179796655672768568726662158255635863517536031863175857183120857788515813245620292492875329337515242968832247277104300028080158629153230713890681405870728434705513230688142683584473917509092049634960275096895711259431383456204108960520412877388380302780139319875468425329081174583506282623489230781271649245105557775993450104874682755888772308934530392878553987084278912155210646433638199043729498935762461112858728632750128961312772938893119247350842747102942876224619178109865192875502070288943211911374594703820484271393022283432302467951092471372231336514663918196168643709519477077589184408005705850658702620769986617284056515352651712989771023917185420396897731029371468492829875754062626090657862795983746797217759329921604312598097582336228939848612257335062623675535527411222313544183664685904093920101093484953179182730212801338586348851453622036153193528087126161918410493676080472423917742540879274138160357071283428521508342696362192148887283898725521923334519409890195334130160311858029052483491234712888222527597438972752343634967448564671866459475694740964883838716195616791628664478576867412571873110091086405101856702350989038356444104883675309976840458576291276780606694056424435219737588289927304749214888718947971284045584766302717409347607377606115281455414839178712743669848759276220070719584530385537110818603107847041013889646431927123730137209992081765044666596088584100749037914896517599722125120707949034959151630259375199822184164338816126308157243374323639295957211195566302192676067664137961159164638057263516512166543619262996151637159507556511913171217640464531943626352638681114162067263073123028391872708249173330504975059756878552914504240291985699926964165440163839242840144806228509844684501721653258899902957489288517309200564113918942544599506250016318141166589338645463223794672632454171076591075431510710486728173810605403826547617103495360154584440869757883616440241938009189200653899739710610835197498601109913439190196140762024483519560610764710703253013743716868710567441720540924457713815115043646966138266429379938201616943094862596357804792056845456435079639496434580774120618356694540393151096569271977677924953953893713013530283975635029184602177439556493990707006052546155518429628165718236715468386382066972803235114218531151599095604245369469054005636169647947258755176283306014964277306357440162088927464037900926769585960246750160511263810790374386636388693354019318450198563744243386478187003693253054660499972568066453742181322621831189201876364606564600925220533837278166155596601176054671909529496798739743809699392890756325440963320271838399445650517940567471658388464659048228648232365780935656992827804499726500379676967356066940522594482801836846953323099591386763778202045817353603955435146029513314113603534901316514474801853088252625441388660476732727784382699900805924909663474361658132761769271972435087557379791130233947674482298605354922930996630497584188660689240403999353734058369079653517068439504853902997337392367325610683660819623911860207725919686768114753020082447373009608523927714820633142607072026931663090201385606064436408893406172025179890280181406616303803039861409148314547025530252716288600360612903247666706482863845672491579163673282597858032556101089007755289895432265073731218835352277630050940570055852287412981705142883542960258281712701350736038895034568693228805182047236701159735533043290764280436062180552303416003097193057145500827189086690475977503199194465339819055486187480547987682124719342355592135111646583424649929509597783269833460220650884150163812605471027641486925508596503591129720541917339206866822651109625110615934118069254417681638614287631847485882036193424190822539756448594358062651567434439972692069478067113358450843601612162165747926890030336442653111805910169316935875007703969887069558204779209736433709661351823605913757012863267566247886134649619269693678498336835379359258851306790430930269339965014992174143179072621484902608554004073913748068089258404447849813089935253131584338512918373053640568149909880549168956851728180337562835457227157857999834681984339210945656891002739970355862620651245061712485760661574876455845361869535460010112681651099959931458256032367911611974287490158126624382339641280158934675717007599692096857388611060900417800971088417361573900932393023549264282333200790259015142971672291652965955577619296201705639556581517387407752255739549256794196084723632772599110047043921063457524564766128805890089290501060364976623591782602657842869671432059890966829337628931151456592812312038638292306971181592400192554240405859863384211589734989545486381203728813293653132320637188520833955640591828028764915174336874653205830777502812198224703778940328293899084865120240750556185679785961930718000856366050182256641479224027538446410890799737807476599946872595574852838214345400306214212173931563568489167846024027459786062943171655036977038635353325958708662782819242816074604489273163348373164127773114112914179970163113197083099688649254156386602256825234106173942698493494695696562795258436898611023762394765118228691475849846534492848334438895785485036384597429341289658035796760712399818772603509877526156410094550663621589364771123892853162024062456967509053423789507683624407986967539580594825257475184629179923046298635014728774537664508191339960996350258942716005626449877229877833975080998560731975796655120677407251447847489627122731543684633260296424686821362122966035174764369126079821166685392492590704471952762940772276287704574149084957384494866269886672812868200760524453505200917337167366180935233129066085668508076424770975068805240517213195287038229000145577219525407765831363457872761022461764905536279962496876468323172161045922285775916526226974854829730160738155168494598020042752980035440870668790301299275253074068024965890102282147072567170715205794827525188657135666253371746975523333743747477435106463407529791874020302004886854766411276205235049402262410643896159046219541721499909474831382387782471314355669668330663901357954402452913727140508035464650990722120424282893346492577453353322059360912983612003315080020469108402035452365920773220496050605937507806206303116989361339929078404325162451203341024258335154474794910787084802736139060926224443853529473581292817696044549837091720168620440842930932968832865683479926148597466371104569842979137845930910524903765259074621739835021817135016991545426089775076475274544283111994841579970183267488366032130426584743268838268022153460487063078471347478981609730088639641402437544753707687548900688835448886706079407611343224900239065490937869321400771318277362271786291402869222465503494034082883448475935763624373901868591820268590669568232640798271289660297143768328188762793658140036188133188924608564565257203323692442024514669505061143452641076570602312884989785919404254911828888485955835941396043442071099978920382058382253324686802332139496532212085419621921894672358309845745057261070928549591134839266500427524536175644723418659583776787511992282068012231875330452159555892350177658711457936520009313974378357951023013999751917815456961976515293419343803281190605690547960011896497209177963929377496581363917046855031520270020370925019343480833817813040289058874824361572506316053876192407422421230579402514723758389250545878349197904510316247618662742534329121174045571681840498125307915479576127576695166095912267329516839283346771389071173256556910996442647945539776870780670605500018621450014140003274366472354381352449638050824473935046971053521655064201292923923712764706970209368987342706474093150845320584176343400967814384258796522999583632851892035151908892770736480275442363603252771442692901512650825659837888040913765035273034501257348886519837614534134950223859016709177933374916502770919376145514000706855984092482297247020671486777456769439146193032726936972965012839622240785750311755871817091146201199138706915636092558153053066765860945284400165552248534684622786611252253246246375830226855926028668022434440599828167932704587397691607866279753495153465448100446887754152651333129557232460299331500775333033797944709069226852998878238767859949283662339191429132484597856646602950171439554795073689549200382327969185703140751916946066409316658234196999073635859837282720468483928130072465936070591238022652512949795100915800911802395753972070525485660292114226960426602843238947314265414070576219520320728746306280278279828186307352912581122664402740434706283119777505628002640021968777687949475826942524662788378347386127257120357881379957196672432285235034849237846079559301414948148632233516467237902963063599949650643204539069521310998804055797889516195435764597423208330452594642242358026842662558561140666202871755607651252867729663762050517374581847157854150316416309837561168960506666766117245421850957230955342432028571328441920261455089234050417111997625107852392721121935032937847551646033237264690794093816065240141217777905556486657118263597859547242326166185089676896832710946744415909343919950355773476679348824161460866394502475678010608687928888076807252842898816729844230922691897494769624989069517537541728125434985481102515491531117479846126323549586112539280802565787697326830557941523681193426179241146618054739712147878353966394275502064189924150844256211066978647917230596019125404832910711733475026837971648647792312597392699260680661379075018285917709352400335303554108461272537325689165852321637732718196204619229155619122149795395245689912383097850864960005150712780878880159036202957150120590176560182504130558047774184482100159825878998355388598083912181469755513496852878176516094211097819113780243746676320644222482462418065933857989522616280316687546339374724114933771505091741335731044153991176506155247637447512839617139641707103412786935023331380189290074510511171591910108442052513140844537935765964351579328545017633614983886839738159412653530426902301641580245120096310232343679285758133234136772748455299008793994046673147541468061344516776131100891902002493635590115869672615571563605931202668928480683312674346958657182749940738873337990674915816550269753769938571079490656324325881813011969618706422087505361447758311821187351979067986566715516637681630297701465789250010451801215069371083377478707906158730095833067908094416373203477422350711137678756114428305979479519569281699877107024625448004703854319135783251338346355588402365686547300186872019780806241331599071886505153816978463069381024517476106798102277570697110481496020979717220480690233492118333630564603376598720662946354255965315479252324389543328295733143487779086847412457011498556116496952414502713750449105446245249630201812900520042569264630861793134372511943845651308196382997711098929050130552982688770807990569093532438424800011451467047680079532062156994208795902695642495903948975124959897257111548631821196621339678869807638033892027500044889438912539938119834022904941143856888525428407665378523878889213519712353295725307965539174576098885271367163542945148708287527321198446211311839628880812352338590932302656454074037705547087766740758922437285600562776958473309989002529233074834675525629588786626271338903891705061785159588300068672564081928753859863591099366153927930476747150453769848377073516523089321324696689544403414764996433359732474912069328599399652152008389162716789781657083731283767332686391803743606398463418351820531621222372927822345900399069805013117941100306414609149161177797889979980916574476479180646705579062042002084922146515920149594414140249769146581383533539937531344109831045544330028253918190272871451788016215979758283908522926939091429366204064632722780525128698314823869264366354804973726463406987141995693695496728104336102296200864534090480711411812083038929793533800517040046071419258701860664354692995409661660162994131308411897484337676933103815981339469433426471626458878277047548079103566486652116780400200878657401945417828863885979543409243355926630915703285069670532119629326530257903715155940526476048802709515360962963690870196411420106263909438210286978197552462602794603270276752647676318770367548638803763649429727453171094445141695946631825515008504522035615657839911027171925069702990477122627902018186565224323284526393803005448325077508963962846165660349925290948365309070535389635181340010813420901511655607290789491196155804844100800417180734105995217370781280709739327976659404217659371048183695792123613856617336260078802733547844587792269711424527180196188893917018648755192106783000228013067823075748165082037378279445951664592668307747732969736591492645840381999156505290956427876226705857399705880371558159482399507928282430446306209398619606262258837800909276152150779524945649953215468329413601629791007070756569126619678168421826671429424207332512731909397268712314679083073402642785985968429636321793219154167718723403146273362893020183412928245194104348000474671981526124353556967100028116704203046538435911590028176619232873155762837627349919410812817884291894079081241439415839557298621904340076786558077269303436041277353930231901036704029227070272089481347425961130553258704891146709311736399154980459194887755728112005440744211950524283155806815183967372430112038645190260579723957393099315726102447922941279455986250734354071632013098448627975289997325139792323188759743319540079623219360578133525248929107523280993752273841493122095122002940212047866930428406278621518841051897422819868558950124236766577003372582056140984116112506942398350058741123049865869881018139550366660228556706953588252847631259721951571021434979031519256842311670415572041390579950852472139888797525739156647217681138296837463593314364892445138975975975759775132799755169870913027114905379245657683193361833082808341131319935635314168281216711142210284006071546222739585520746004664022730541217239141559134299588374572893265155681209374481275140041970940685601646396780415374180078484146719323168826652806327577364365785506672837762771520708328598731471794054907253389426528930779358095441686338547554299296102802767843016407434148535949935027396647806632632204095970237033676898494732763882449677771730364094363992314254654663960795276265505997807717749741279498291562706460590768258195527968607180140688389634539510438707468627994080697218102743058694956805022256723649276169562131592307408529972005460456812900807948591788164797235253724709920511415507234168925180985459012237372139038987478252772773727713407643880848749748162670931333307873305819416996025070147398569468367156749705199306542159593511225452191536780906512252149243687369604134613176105930547899958190159385804407614262375846797461179425096735919267346064723464586211570417412094708929838007556900526650877097192328158055066449861949664191395200579651624702198724740421942826232763584765162155736984245171334951415235370656446824935423250467893295002731197748350900985040400108549401384832248061070718703835383620501878769790054495827095131985852339571973564966193181888317020864970442348564905124560496899766163865554400197810158786782425391956511956091072193538103542444295077934143268607626714003622769899050676718894161928920852552201728823573417630916240917626787870027181055203476857610669077989535250697235400844726053524863020183078927119320737926753786185623887011681836942783666915929539132549219766499136447582438642983110872103115563090572715245755804221513576325576133288497896116798277666721461136288453821563213400240641503876612226453256456289299914393142666227949547441425451243436970371684100883338438921462995118625469612273289890949004487615080409842030955938233489017014642696260615489622990896955890370046542202351416714577294953099744381970948384517765357873480642714651365351307226842909678057627081346888115751935479960290624522983324186430858927286401400750186269958258418419894657233826549636944116689650616782573514241120927176823104789989199133902126403955573735598847288920851482040522549435687872850054766117207457751221518560173468192120751277293372812405756046856415124924540030801450559400852025797943363934745815863333215921994044163309050209008358558697766275995225424610638604962742805526141791085645134093180061141416812906311038858536772801807130571937762948094983376228203073988535971090156820919785507406280943391922091056802295872477879983217647485692642042036619691769792139951103096796717284514499014532725272048726096235102860126424133786725724038322472999690120677488852610508115973128901426584962866010104207608204452967718520980413803843870124244453253445084171689749179629894097157391585428844070515884982225769263590557244093147909703290490595537514940049887774252452019132787049185549488422974919519761195904350905724146601269495444187497266080362466288981462324533312556423491786308828466194554037715731293334374435968265270442287573764284449027854913265698413371273719065089790901490139742218034141800107859926492245382434943256139200495150117883492454296575102713331169286537005399546284449557761890126329965918462430618945028965772137990807106881642069036316632975092741049794472071425049976667062498614142928898720298084896307721793214058050048966561928347226380271366755352731993664274571087600753118609205433553974329986665204845459847134951188086111116304875429098870836258708916544052083898347230074499102637853180721184956708135536424654170247824423198417377711521441878892385317918236971521947836441986006490965302363793560856877696637044480246114250298985098013128301999393542304008879857481670148701158235699096584474344413152279494458257937848227393419635081223202003301993046309458628006765595779318403844070285691807236053706235954928465254548432375707040715341896188979366442869907157141202251648553012840591944861085481707203724936625378755932374563572118992260968172414168741343758461158551511097460795971883203825533428993166242388059354357946652017201823895426888961150200757149978885973326907972568016933849098537069032480461713628179983380644909931794758515031745254568415751682391446627900808446771097398389360730115436313583185570030725545936731119563334447024500613463513298580521430013565392742041198342482287373045676536455045121861189594497801638013290650116883764999130071827520744947943079812849458223207990864157248029358668824838091337493103675777095639961674115668012235055427447463218887116013957267271762719292875029061544915661503435154506517010535972255540841646202972247060301260035836249347733805742870648390408316634435091189691920093625298851980803628109924720358037091746925054095254454215098177386837154059344557832520934252750693604366401703343650724798171316018766289356512954876153588792447499451456673101550052097651903719263161851484505973682193578443801251437368790490621091695040744947976125562660781513705087469608080673559878344069424263118625984075599289379014508183280414323012818480621508424483401439742802552233902374225765467984033102175919527266039827823745702141471976855495109129667723165575389935852473756221606305264105710459655466361156190286784490263314504180410061626326318454168837722589717377106875674279192040995017216075948583049962167816630784961216774453422759970102053372715999888818756924081485301718535595956428234783731436932632592266197044668989581995942864481988076194339631391260263573141820917895436584606173125122362597698416819836372938464821398975425268370642705538318095950138145955055108631715094282001721594799372860087542307598249810366322130896187348615967861459792217805078809663835106702387126280578233137748145357524333992416790963843189666632180460303048925817085728425645550863738339853427759958442346293692168010228322914179870948123803596766199849142657000317487274502998234129625411273433749764055616093470297565399498120295049186798126768072563878357195688617061483340799687249724465086004084074894638864740582165135497467231767608967847853546083476664522808671580488188356197452288581431361615392474044968767516995610659806565202505665191152583774501940841003566483012798797367301713782696008311112750176286825030991835750980495234253133952417714094578902193397442700941005044126070128545878327873061667304582955190129497801006035593748348396455407767357381341825000009502071793396152159924823814912979265942868410689619526161717280222966872212007471527048904570331018054034342553037517474734053138953190322701835590409988351620194144909995333007676139050682956067829178989151713419592084477704418984052279950425630646954191788475385924077243947784845035283185050844741080294737806507712219215008122048069713292301487754147446395031306048943384995535596436226928893941668976480984527674706426864257400907000782047811958553598991630312925751384810283923459408356144456372221015894254407781103132166537481034936672799504402738708382003817124923178312821450265650185743093916905716320192407412483172391205127297856564327680792220696328617673773008147403547613977546323041282662560304276229480857074344939013962734557713706348656944284144567808075567854204417286918481830057952881218769457509764212078682534252847379539216754973460463394904614464425161456136542558770907275723823257628973504374420219551873620240500001725821707905427769201130846951057613655417480196803600704902075746449177174417952365041073948739369209280963665185644211019935456060956426422638768579748485673514743990761035102057449268301124994908132121000769702761729055315872350837183602562965328678316286765989853782637762724755778229432089090491664517743782463792033263304575768844298610902745248924957450644169250892387283421520494809289286928490087098000363411330975731951397077217845922304300760474984785964632192237749160745700910321160723403839759204883623985731387936655407975885782846257441730097212522555788726087971778064691651773162951192796045215230858413701898310087314602947069427707124507444898600768246150495241436100781647336040508869646645440710751834152464846821025938571218733256579098022100242538393283753405079405761748790290654858385604822949237472696423303524665332425743725709179919957679830784257849836917146547384810641982700187867875088972364540199854775480584137386790540963518047057347844923518351165404044138446292127505464317727459281213559454981851609679837404925215419072774522087320833977032356198548845226592866607248766196090007655558575710108841814378104982630210463795611420274112914372628707659725709152822144764504295064718313460627030169343954514151804995295236571642980406952046296218888883537000040975053017369686326216904256720683761829459211551053226368105661349667414639690704026790557214982086527179476781822434905656761419550185126837600656306643275146160049752470320077342768419155878418452957968925822533472325914679636027674684986848281766665105024411467820845578767714085141902542946432261609196061131622436134434693182067747117990522017779533810185303587900471201990697543987675555108483994582123506713970158191459215742849004862455990623014197690207704157336435229553468575755889917879769185735818139195863405379780136994245589681249434224554406442800358355264113071676533561253365675476810532560894857541794884292104447920890810628097461637900004722790715783079528010272435017470305107061459328928990724810436048774129176711967861132436249173026140069414905897642558184049121854138128264999928070158054661993410876491231111652361531635023900391447720871110263773366287976310148339814891274350562314218750404533451506043771742414829135727396032236500299948734474630440464915383414405613460807958903724901912448609246813964437201462142078249974605457742674735614092761965772779267859421843726716134982775730684664455808323688920691527275838951293731479920309352778787870942588622186657553953343656283209258810364042560292889468023322796346953137012427965338114198436141140158018046260373114593513187121823064086912775597366691657480297487842603695403855526645900547735190657722329270297895315780932729800928887315780235477690095351588012738950820675519490905557254720527310304170525373770167128861016267325269575122571984208122804558708383789369673676027545697190183764871278295596832294921177987225402442678351573574634502115323651378446951887665049956425115826542150101048062686329431760944784718437111131659178443471565445502276902211672602002603114350173203469628540865473343008423895362548597888201495003596287918903778401247509770703339620475091753546661346522868588297465996838809669381051348750018916714339749025074231404150870920198456522440264030018107692297645770991265412893610422953451693535246214306210823967588719735964450947986411841371502023019395288452562393540140294697364521024578345433016710560541084480318501235252693000998005149041844957011650191067732075912289027648838783491587603143096997704316907207488105088723142174412644935936288868817275764977335222733251005563034707795236151216232546774127138134498735629604412484763612982492421116820053558125825254351761863618272025797384368031500441813011531367297858127931649873534652476505073761204543418789772673643522982551112885221135471425869503439577907626905028848020669974297007761693521282545702995405728748693837265007229223152584554431698764640128282559489232475252891721551939049318415694361451994475511047837138503214351266121779605819903567364222741699961570246177750734810259956780622669742693131497278562734834990743355980288911467625543965892504833046377710170987278339675308289581034038911610890443045194595680862227771508087179908100755261741129392036570451872334706380160464229375366944550528902155040643761451006401491803446180016109452916055308363190737862766729846611040351698802191359704434231015532328485138801721293898065629222079379584643929973076078360364347344745873430809648598988704317480266308409489916257094204622299612106954975528670465585883382838117260982787687555606790514820432944934444163946048920347259888800667459612787170966097411250801212879425386725351979701786510508924081699883707960437830935804894901805359450160064310314453340008596738572246536224092494445927723260518664855762918575997401409549019432692769297733478073178126461598364700589228072353896849602782924606919872232166146455860657177901210220939690083561462426438907904334822456857197154107305943860939767838310239149571827090103179879702083853524916749269253800290901666617040200185692945113224894183831358569126128210181013579431574195018690152689998996376973134848564113668444716156484432040915032926774971428131673705489015659022295136868067252701107031020597797842683683939949523376190742492238414571928083536063989262269454598745475733791887473828171048106281349477044843162190463153264240559706526969479806163436398400726701440605765273129040913452387763413994436087932721125107998690577558745951175747536528536575367890947861285057246415890844906214281983972096943413380849803331977306067005507801601335048274087260425989748321833022049349292475388486640708075430598663749608360579851147117302409984077148858109892498707872878506646735926075866031952137688347272607990234350617639246471844096073243995159137616239588560365798364422045531592364390663396504466530699652030926928693891492331085955130465950128831078713008390610621373495657271604082512960694671186338423719866098592875972764458821193588732973334266956760010564729124560226542347864532711644799640384316203558487116869543902358606158638576406809931697151395461491813767595053052849801356302020688309001513778763725063032541333085806136528714659577355358877557672206771434650836592294470706981146590236514317585200455518931439834388329488633208022324947820962699901454785915988766496993599088112462759229124802893839118742146514355659994461384435980304870091252125737824538306390605612096866460629641000033436838717242986764810417169621547063858829265581085464708080288549345400665182296111039985914834734316266179492281316344755584211567089172708720550331399136689799224429460620504373649115938128838905629027336355264259489767842433386198965382671219074194544014735530651236610204977602821040431464425393398679521102396367721313316183015089886591101834973965153457503126964429465757552005889452188746587607266993631321170083968731233758113100642828053324242658799013681716471961946674764074262298707350040458671823543809789727924843010641957479951944573738877800459572896581839418774077251200482098303256220855363337944269883509699051805561065393565563650926278760358045288872831701196881788288541155688782824074584735928535814305334814023026982701777804329213153442892663932383011122443762131677294727400307510249500275381444200528659524557979370435044579284049466550935864351633842395569691633335986810999730236908083229385385032771778539023935676178394992557261436951065371302468694678385155208326641082151206295731488812447258205848131954472329410040843851913237932847054193791329093062401931201360174394473251089288356812209772132466664512662031490613014636922358686735066813518827067958134796907695695268230160933411162203832020238932620117711972171665220168490523275649557488308424054150020007620398777656967048986625714511154792010096071348503924520614856258974475678988678596514253208709208099209543633758173289323759820429102072311504029434667659182657781126325154496376586975231900707510443217483844427185448219144040408975319895521002644902627797540854281529852914808416145404280438632899010329166807945985386042944994990177092996230339977209252320428334186536368660729153846317202060716057956266881901904910300587408466454578283702497312778713638686974415364037977526353571396680226595093614014958354893573475650983426210223913742817206072432311110881091432425257504696103038865076173095464355741322011115731447127744952794517653217125712116681689176893343100656025904692264614536160917552238587381853518494140773990343032732757442767906967637105108298764855501313621812241683830876101401252191534001708750914531977700368429510683554517685121616376236875222301788428978078559910850908703523454925028885100123865863174970071008693326725750053363833482413344728603053637971531457172266217258140446816353270537382844428996417249194224200034707768089145646980436418632000045702366209691547423730880189328417048055371409902129108237993806130975859796479564821210621295243676937905434147128853998445269543954287006062147656718968473569223827157943628742067736809852551731504681969137036738195938327847539966044118908768058931160739015623972727286738862542407156550637142225800229260659775703674989102926433573733703408281001668159207054334817021070377040473386521931642475455523923398601994819762348745017171677917788520676280705439407297242716991012981599278670755401664385537953984758020431231886348275017968564470204018714500924093105554995526941490787626797199087906466611197950448764859427814227948330586043967869848701940286351498664366514699820120792368042493195537003341546419299788833012124974974467744747330691653765226972287243573474752304536715902516669022725325539488923432771511740998559909629790397288265860432359958945648180983549036608187269229523876853788595825937291810087764658842710774673801676825811438535056761350746613900790774229733861236990848288476804371817104123921296417469010347741899196598490007431750070802131318140072494883798186795880554640387087797860225311055929767090696028002148526237494253862198841055973639576847028458833589392853159129797004608356687445439592373389181354455507615261690919122885012619599802873231114472055201801301456261112852801347112767557563272621973346538104078944445370812692112508856706454247622491352343872486390375698776468770022330284096229648968648427273676024491443624570803647503577405091287486677754844651662937194802556338696801864769375776473480863119743933494508937423396763333787983240450497950111716681753866696386657470998420875089140053434074835585554283456670604069004159627950297903720845284684179634210285446448090572502602438887267005200830957146786511251507774847703852617342742661476844886913219371459137201587107417594848577593508397785887287308002418195648544120969941807771586007160397867435736007364352596478678526681435003092894025467058018916852558172341306331540552908561079184031870404404546707095505655432089818983395530562918759731420524737371327467952864984932357029947810906073622944999515618875867644372123272783688909934286770101059942051278163712117588294645413777089003592973179447184085936522097216419670055188481607394258271570867881916920041430095946509131998466359348420618945813708473253072300792768574210440773661390534222501557494441139772172271945430990925168075786791075666127988174136196778825894650294595333516936173462266277365479119003341873187023018285147573129746304714617101306667551283822674472748858567433309191804591562136864992783941561989309073035819491183607074715332508878912994569093999364134276467744970799767857310093961701872446476942784250253692210324754095192617426235137521032303926828580629831241502209095907549586831371160666103258856257407231690406846714582018561732973667801445370440342567520051320912586338451203677278226197050946632885507171025649424383532315415191940661249172514684305083130430546099105538004721403751556566433088843611418663324345513500283537825286078209025292744245217804270692800857827150967131068327061670452329130714105954309212834516171231121156226759899062236145204613939580624032911420774384044882974299156214100584067197509887220045497716500587766314567633975891885057016518821261754110793495327845590567188839386252308540563553220314512219447481869422005568826020707311149273264279467494603159992193998308503459052572156750910769418738083803569573641102378172096727730345269942454804238441113945772738942347925276944675581674011783304424383227749079543602725845397303724537605883271348681609313573543593360294959611141364210804138897461058428038442984092515098369483752978626398215771078411729154602009481312618765433483961737208511577741290528915120926459679574122217044041734226599001500301376440741432010103540208673488168502303320042860362153529073894135265462408087704850746629324846043426852285979748179020466817009758430372052046029894187931180059283378294417451646542187839938853761609598683644684828529050388444562385555067148627965224043472766940454703755513340570502281475830928321510058063784633837227406944788428355957780031777248543279137209398467811021992252630860063246621479586064899615086067113924258922960290111837846805593245362760266666414306748950115666344437599879777495545486183983943793233644885290202694037378051094910473904946720309885238321626270576991059393063499663899981634224843086164120116543090708401732450690822969331859087474699607793314870056895765817559868047035642386512785371325019396228160710768021614465945841886412853722565612214154274435327897141985670721377247655676655272806970247711095214997439596269032041175002238978465726746673182957572773374200681494058084254944444787732341296555682854212754162005646134259474231374413664848567849871275708917421916127393189226590379734070297852119885083930955018148370165496799425019061433821437868777899152938817226438014850047700939736817432548827945525980164527527079352019410971715653166423055188199479913647552131858302628737164993990620374863273563091366436455466098149247166180726394676877866358880337569060084027349479111747525999294556151666871845593877353322428162661819865305262275326141805667238984848054223618427082610012368151632727061722977091706992511027558826118809888166875963730313228596870307161619283386403596368921634057605750220499821431645983904322768119608026756495157308606827328750298192477724935471422952998006171268818112208548144988892064913656576505832335620430658172169620985164652008835716314823348155165240596775828442383041960389501753368413999876303022721312726797616365373577587866329760256670736144786273224036250721504707805415657796059106546544530314364472806562782282579390910420938892275744480422516167816421103340806285365493477213439291557814039174511348769960403952208935799436900398025888191135142356272733725601083646389938736375148772304849470171946500121535548156562784256603066366246589089578098192686744439784878883419146944188578200822496102171748475920858305724907437470465702448029141748346961606527051752199021489791961548892872853354579625782994318059415834807091218912040605208545498322651314042462786600041140923648798135973444589488175348235245629240167076954850248860856108914753255144662792241745826726895287338042795392280122038360706714556740405282807207345342655096868417791423637323967618717266790018706698886149748416829172362050836641559697177329774884088994866566660197546936597141329687938762752694367560992073528874517435227001518881168415928604541651947502285635350891537982915761500797326140419209237765788224026302649245526421378410767562110288501907572740492273679969114619776215520090113858226959808368684547465563724074950830358766222748346774162407816940676589008184785461002179495696868147110056346317470322375326825770439792806017790295930720781534189907639367896882713021151450444802825709916690071201659774093480500241168042037258058902491434826714570490740168959927881038577604350170731015636936596667199491890357444697884355523105988869451079818357129097454901251222765117650724952157683927608778036686395089704708216277161424919555091161855728546728062861185672629514765725133747334352390752070673998292314690729661626558663817243883464483443281636873352440994855162219764984490017964937859236983098313267573929945170347502786945025679908088343223761329172843081864402891973012391176448587235182382604503916046801261224968577211419419664601848382216827560683895969923057011941263749575463327847017081931387531999809001589164156468981309267452972238379672541864674385122295920312007690209481542795586502488012023005812020749278319607805156048351174940642061945192119277292967761132304651196330023149590154960966140653566258857641878598190816541590697240664872590228505289002746544246685858973256120757341453242619428977650655838664975761052550117102616579860947720781663552820968005581166066557985533186016678001274056532553856252963134383114298174433121154373297792141370861733149669501534871125913567927260890318869258735622118934552955947725466054765548683159549563912190708945324961653394499060948222632762970096482926438361745030177112651297567100816892935234635223264401509065446257563681725859957069625905992917549498624357902186931318820031255123319057418180027123722715842769086588897833291471953691115252497478114597439317326142963247657738786650773172737468857108630096490234798623967718809085441357192966745910288797572319399004786247053564530353742947552983231165996231025119270274462967659705436581078884619513120155061277771876843917682093746293665143016312504297024999199288484060012055870772065964743953382498085081931920120717532995830715231295927924460411097912861218744634470274769724462094081837426385122937164715414238523624763937633644500200275725305579186151840039123861140977248310042633689814145625620358059732568339738211954467392252230786948608881365812635855010427195491848389172288418005706470557701477749829068265649539988258365395414593376276616481153056479537615754763077297297849976026427435144610688208044699277693587750256495649404208259044085043811154236545661006521058489503618979026648802948268062633352643559268451468248823020579727098385491648630980182912470673721497902372802698196193078193792676238310598251765725860371938279006155305107524236401690224092912826034041840115147710766060728738993856221156559130779248962207393242734615919239201359558816431398584901923728067622036613004398972496783769905508884366271871636670233045990666594348376143383933403088461012486774237817374024076132214445032177031410883044466830618233780685016297797954562244057383089191920694903131356549495482057586240604250291081348325863430952819418932353181693128028743197154390670076061986416777084901547698034287249322772545897903622532326764818145257497838348866422081296097913999161034589486034256380463562410289951737950177759464607676366880345485975097828546563305702068506734146124430521434522225474866873609792052864132124790674496051907919241429095345326627183669642979995840376310923962976983056043544803702080776660588684075266249279186935176434335045430538769795513097888722007694364141803827401115561826010670653756370536706604459591967695215019711230355575673313384381993381410372632721078690653560467891148924199324567812009634266795276474736645750541521234375131630978408891214759746714008988843687457573323553880812418576297460440901418015307595610534146511619591172091594948581602872289082684333018516267464471983932084722367302690828199527287385820700766886221264565987892152767722651100935386872144417481561072319655961887061395698075080257522606020134373305069732892069208441980540267715852448387824398436417796442863869824564978937246313736917396120948088023555570171381940074431188079011559912399572810409169477656031858692502614950638987724229463357516941781170107775401362476756937955997998836619803307071105147400954315151157652036495114365981191620458467371484043442784692846593217375385919975100386260117807428807714015718400649613655716545665756451559170700577090086353191778385423388794449200118230942919211160145423378588361409826128600325662410298374106824983439438467273058093864809581010337408158210723338509348761892921918012755831358174778814403925468849613808047769044497340701056572513785297406411241273762664419319973808858073472876180891670573236151470359570084568789967016047316824614783152146809740236705587170675157730387015805606258539186346803441276447973634228828467689814158258315227639149191543387993140065050091262296570000048030045375315777122810353670697813651055750992139742901819109460680884165550574600271358595959869476246549475412176771064668266006694889011148038943939275006513817633181808894146635355750274495536754515217042438452136356801626316629086743909076900942574785109673693096145694967452998926917481801061377210756918503368556971804492257795434677295721376892831165716370811566164367151432991008468419272875733010939850100755992763776527787578992639304226812678812055094363594308578728372311117933409248012257139313588413912847052631666211988037642407682592815791675048785532795316674969589286301484873918528660101806840676132275529625413352161827752517629624209998072006457882678002455925036520644725223990462703173932638719843730561138290746520827900700975755376896155817881640463676323152820966148692966105049452369079081253828155245047945423037396958496159469787950629691407330754203945446933909483806298138878980319826964241209936650466928864876696294643833093028773475503554340738389576693977617364230943700942822262495514808390575229436679674820252513573491886766833484985240145045190685164280320656110587570440632944850405511205510165235169184127051342916119296745832891045448741619861907275898829381610269975350718447985912435942214585729085014443869816962772915138458334392966527528746726642942240947058994299748674986571392234777623027257191016509506281003222501110099368018280721163675450738572461449662332754044525094877446693048490752319591584309364846976510121059470977925010864981892644007663140442207360271223319361408054158086505112309098487974149416336301168193864014433032156461005712737096546032847557442047951018370416019630528478244400350236642032784736317533867405251866217587135378497365120773905010259340466281273205818479537120884687997814104371699947757531043779460347655472665483440412614782688681282551418230990777267874457715456789900582395798571062014647722471860631492307872936127438829164546991283073249197731932204395249841158141651020250348444167708430853759720191083698628789839673227961597623479314794861385716028465055668306719042618870630593453133819070390737046368221289760177119618995828218116899027803470519223327045159233075708852948601200015873947347880203660378459216529735553531235062082085113771273753225239523585305776020810056006333369742737906992676431935883466910394766397413700729154152886288810808661636228622595409889006601041695919988553229588241485969349375468034091544827515864980323129456443184842825742288764699965658276854909524541161070073167660339736144914996060121367743963773955210691181649244556165940922681397031716385100999135481173239827394075696499393824185369788102664575955385345700589132854680908236910402608960718421571814887077460900822586112508422610448034493239445871113484549046062110948554930000087082306151359341621417682762969713900637612093380534698837581435286071672855236643660621812787210650590477714566143589540670007470619309956240773508051661279360937563067185756562935951558706506106543145509396096957277726162712083021433137416542043978639119952228984787331416419244747279378953614536086034051380671713120352906459777356612589490771198203751199997266135330875808452862542620617344590117190984583087119540638729186946602619210157592045490351505392303114820511707799547065254095752970480501326318219731995591444902275542220580367047003574851721238395425548678095212816325614755519634153753915765928848362288272881582772440029392441136912887393656400496070949713471901598196558645453642486458128911773670359132411367691337457469364856728067542143669340873244074767222673221373305232692259104969379804362350053924245956877731184230761526938245969992497967791282613544529070964695524091662813771216316328969399287446190849824064381056653256628214960071614875817413320335910972981095408053922337943327707245121840701340529734260533001990998583841144342162590304460814552266734692328615020164665421477764238034032272198666438662669259031477327871872473813241523853695398246142764548177922129244895195969158116351269106441135066916243785669311060018095964365547538718200518659621582649065468401226095387470588635018373279705960082322180732109785375377010699823146407771591181715394104845085083466635484744728598844878641489556189714148348027166504488750212610931886333447260519563817693796392366186981751554471773523907945708239010559280497715553430380007245484646833800838257506125370649739811894355011913726175063999388153268860464814342412127316446467084549465899917418164548822217733089616359290347564247249758756980364785075719279608060482196094274078441309394318613948841857792342788089607742394839692639119343479740702904754672115596731280061727525006802590935184722865195714657510596719200044465075377021948342785145374581902034448902450846816928862459137440943954438732418527572063421284120967846389647740427733841865191626307047133984482083363183678328385869749533621760102368507660268240280735700745290656404980861374180064067223791777257201989935402204682265075987884714673248854144947685589561120554098469422674493543433374426669116147837723638428703585480664060032907447924593577979791304689915476323776331487388682262918465288780358627836474461608723618672529158965961483845851033389281259719277166272080502210651035416756363819848364845478057706466984789294142075369453728562084264310621070032265093763885159898827155716364548633778493085182246943236651640438568640298096492378490172883875869370805844560737370278391863489084517703982808962385291999415385060172313116185406970266762156704360589140766306637594915916066433351176603611138296016759500387871748363778642063752186056196741376268639466296893312740230068447057820503194090418935386432190391565332202834945641076122228110542047507063285750326339189927497255026664067573387559251025626667171824054724672766575778121295104524670461232185372558974323964850447274966318473455542795862669340315934414409166939650269650720479764353275055380756112638677775978080211234503274633140653516893706901109416022386369044915433272449795207989146653026959720108025403099220739767703139475334681389132137869622769788565543152924786446220108624119642398317091357471884223483597142611048867590958221219276265296190660048986996095846941950185639489901733090111884860398870014940886412333361210157043646642087578110396203978918505136763032732264982745674738602215757231967715788697968589326790831923488970984738490871166164176903567672459069664902389725136234221828815009439309273299459233586238007846203756555350803613939361158956653242114102194460620172778159153716066029011772982617919317141352565541070634157242224359628855244350552325786459799821239707282846857754620651731322078795419257794051838366382318508154583757033579694807854549905545677170166950188664214730781597237665809021697718661093271635563675099743801466883102204507234454514364090966471576679478158428769619355828426097760579573513220846378892748963957955260562088344564459212630617086144103334129097660645555296505215813178034973366895108742409236499137845817819898122075444551369054869390079242000039187856103317448541056159132181845879388129387863995692449092852632331153978576604428062854523248314853487473174926016722781663780503913317160605657221161172116662152802722578647666838360552061276850316999967683146664800020624850877041370578855338476469067693213052784714496011883849071980117469270939899105674587827260826932726609485058323758288344946604307158129291687102566803040724672100624456818641460690501695034460201550162074728066013008639395479781350756046739733273544413567649284921894298822859405156127654604788819326263129453209408192643636859520713660195884777078926705954036535530698747403360933526477074616904514608261533051953018655845022507704730328495421082789344234429876728292615594950188024716335559100576411720621117920840196034692841476521594596722642984148496098008625320587590846144440528334470583670741711274089349191453277823104500402214828859228390829036973702099338693259260014984986413856421649721976830071541372362180876893040660698646391025206121968799894873812645125037971979017827929594783072405398072705980851385406510147549723180837977723712789320147378173818201930736448613488965575085373012199819752451410192843955797922394991385156615796891954985578965902667814226055395387510988120344697752762075029608544038843736715970074615211443822471346550875924261038432641852681052433880061020311692413938533209179444588737667729128365027599470397758408320569984324148445536363757301401485732883035533842575476369836873081141721998366482018796642756842228037996244123323896889793930672697151897160265454220400401272916238259600097526179364693902181992697270843446812643538665659198064648385523390126024672263128346615174986965848231133577759290878224523591578323724639358464102769766576494608099349378411472512254308567800392091097686730322734597641404620804105802840688563882794393615143074189680433154757840170978890917504526515675796514507034978845539697616502553440930779054925429415023807129065064240953879883118043004273999640542535419293499886109276414581156508566248112376181383175157439660406610389780231948762446062130775438757505630313014053920274072448969564000382343606025544747950863355940070123301046910342825680488845443492469554745325480107517580488562996740864929918569410305373356416453763261736189981686765280479017610699223903832643237700396395786576763968868998724103101435030083247044946092093324836696374377013486028174938648328394158160224578441114681927168700182283840632913915200967171203066621761486537770695087302027137016802221247344556491384738633816937818249472875397279499772996935390369831258613645707252627936079228165300857577837810696402046462731382517785325617497457470823539510009742544322793143808257781457275555695344487137854842694924435849474949357620195180137762312041725314081383549653317340563778741806905677222852522494588998096477430472925188718400199949654782058681865435799678992179587488897850116411243105850685944856681215222391214684469845681447855817240204497774597397669985612072655817833915802126563917127705437279444944680459838822574465078526580102927406010060555041631447691428661111773931238551936012201970429334184836443672259434546717708587533806967754325448544365716571208629461537118664500805220069808775842531659763047824688486744389541791139108034551421271347118608725314295128340557927696683630266340160224491711621244127063188434258215970379583299869819865110352864939620110971029947980273614657939919419181878698541663840377664957576966457243094338856241380979196667291710676594648191020561112591027890011829437200233000556914967240428693393401223529543805939860109456265874537788238599352251073713804113558900770754436389575731945699320689592957575530819585678591089441794859496781677005377835805416112952130848939913316736455299618413918653989237530516837222581049405025591935824110539871702184464251004525412452879085348185964217605967976289912821300433134090866844410139756754572866797871142072138476848454497921752769513294269815718892399059613175824924956505231160038723970265946564455043752915402471029129885765310421458249685302064771325897885384148294438488601171722528540064240693384342153715363278753416179080981810624195720376649749705679433311812267830945430278694220337887731426909284982816595375377412259235495516343565860519065260355967797006155933426941693526653707693178593298027304642782110369792994191396013603976279500860576523945812123126552420867303504052766470131531323676637429848408009283589050011803283200244305899996845588324327341298658287925026190933346489952527644059915824541484630492734976379185627792821203113797915730525212559853948550457912104612864471102710568095894653653486717235630252386333073145164303034988818424675386195596539890115198924088972777657731539227442967278891737872194315014115211776477995740269869166474392683917606266610581028563120174600766980760595074763425838508279883990428126799341018379966968927017694042276999396966369717961697498634449002698069467492231794005920126465316075946034410886428710410042442678074545690869850744732972191973339907355745667177873429806941231234677751530312912999437708740404328441867855966750518287589920968477096208131939060701529687034534725492461814560102470765176153556475967197327323402386580442402442839239463489729317548492269957009935108840839266446099267919197569576923168741837034491069824915189119087009043350207089436044980283573747738822783656032955512362086382129515046098580561761287594109530276002709693431031056414266780231329479843572181032665445109730577911317779383090348342761331528590206648649668250776977490177150286201724452860715795689726389867856711313414273663764982663652247787177073563477489970694188615094488301184931257540581496950381388139041311817236197545186953767716060831977483462509994632478975448601154906912310624190953347559376536406498999555837492266573967799238374760806294563216495875864069916057368500000435295609090213587820201508451766684265881992864203027416696034240999771034174467538098338381168154469532120521204124546819352102127502349258063036295783205636699345070500905545105228908953517413239015883040742144359104906575578494476534243706570700153079591141214024494132843686466529288554580956735312024749713795251648706223784172087330482699242130090546642423793364954052504297444104441626126839620255035696201790836602159525019461052693685159573432674308176686879510930757167476115234211893053415826836313822890798239874437153153469132918222475682015054469505080439217548481455586494162159031905486421388570090144247129066434583453123107158567991095269877928988010281704255199912783040874228659812302615038369902453917158463505727420119778996988345976227718475508454637280229520500928466424887795227039787760815777721655561228813671751541523963785007766921197322474368279282853711355075042543815292698702713456217804119423480024910549143157458424903006840103272552924721914063891225018183753273480424735813301583605982527586962786050174749482143831705227061030589423949016011088915383943383401630370899912401363903068679596254008159893405501283949397837878392271734054110156222517812136010987240258757744072485614125202653207122223120273576078540049172355871169676929019919606808711645123617654947256473565439550231968758023133722088053442989082384683679456831533411561490393701326829713600745618224883083526703686048941577027040759541197774585210543490929859771804839997180341528150116782159913844918312774961499798772534027995411767942848855893019692084201974535688417312516212656418848792113611240925805563026680865151801948896386264644595096264279097642129743195968895331834664967408862887785751386325459593929166891419894126170961974341100855957754764900790038263204219666619999719564132156578531547087737649820210042437573880689813111058773939116364476762887835905926632640047950344229558367807808881899819954733815995739668908838846022950898993302805339814713858412546836981508010540116423583178960470098497148250595315403796354443368933090439552774691048213498200342519731474982737133302753047974732588350303672150626050515147245264154278390502815926174638199040651469550830414119904927086908015830644465330627246002843855626702173715826004063805436371001871581289923980523025398386740503663050425758590400633583691746543756077900231255819985941635390555415154263531445566507108565711692374668206400238360873215371641744333748514674285151935425904527516032336882059450462140254166617871855734101852431358765482588945152234742293787942073059460521663711762257663393270947591785672313415032420389436207300948892527368914126909005197376504143428587041695901740141682416483216066114091896698480305029415778657751003063990969902321975014600489841983935367263881069292779684173169126359012635334159978584281786529256684821080223256168500096030485104545026956727981111118025677698626908991255838479049222156069115306355078718674176861416114281161026648739685832883498147487198732951781695830031517918058166608813089723163872088227415418633004207391929880876463000109594522653997732759642544983198572116521760799667156208979178447195121349315087454898645370580614995848439735245216821532842807409936840691565732799860901340731065770260424252970043880473350359367777457279971351200080875797617265149113926224785259523171336953211012317522285368783525721732564751689481896755986032207906843572246328068768877102443606066897981884918099261636916561047621400702298749920948911569975998503575376419085518746016303023765551285934082558431824470054705741135716855337939062415363054796792843354057568444252131849101116460634855080761314110593737392237971553767914373592805965763627264076716317389025871741048541034764986012868180162659293268759553496216868701229222480525000058258464054815633912564975856377757009505511698355347905153144852790444027825682231571986074201956163715699973067729645658233684988353539726404544421332858124007058309685297149022071696042742580645474044638476560005063777103272736164008071324645735772837237047574358122250683180410164177273549471103125016834485627575672900533776896457531271960438019358531825053043700994364535619764965668320072962217322158104773687268385630648449168816206894990797979677514915814463852167701863764042021686083438195238596838281122489721313677096991646208407872681345586059826789970164250625475543517687805918220294550352207005577315517222163289692253419605059130807603699904437898837883820382536345210994696464327689614374438580195015569309621598496297939658907563703055467891645556876204191505334325002423956392775151305563386731704252115918834872983760211774150046630748915437460604944228773549545550925942879398989486048986828899495736903043494041250606113218356624360918540945790048435104109165189385713247198171314752721176556788201220372690358751743858457968220937755662880731920887635769965886585287718818361243082446475922283186582600017275676863498705309378660379795686166596497364930631792313196785089997599874688584249352167960658558734376723747303773928345422643838008090815735526134151619552648486239280369195954658361621128820628792792381728932155312399849883462483282577424823771468396781433916793726052403246549788932449816737032006738323744168018287446002501023662676914467352209457955661492436935224088703158777151016141293012661503897546125305762328515002472926162461884133761827385335528870856380181271744811969818300306838139251303273833333883652777592360719695208455179084209393937677817206675277023982677036084679878787966206246322983816304144271021491305699097250390702241101636687395069255334218220579152833158837360541905684318115871793449164072970009302996331634576533529321310541803466209212513786777683393448117589065353322590680203606243872415540827378739483660259334619457504283110473598226537590884472632723335258999779537600023290704068292055383653582063005519862269965411232433220696490025533015270863041933078337321322871256927771941483669330844810514561377775922870280827872513210433694082368526597566076191710100876996700908886700708160645460469118076817908488144677227206017082504171427489929156674795224854840308995432928870135942563672009336374670424984916988046177429338848560896794176147412495806656571213616325748958829750451147814154041666027651743499678212595150185012419877537554938375494762935665263491283701073335765830556514010019497090152340368065039269168616552766855213573050259546363092265275833627609317417759189337989379440278630359957527642057621151077255777738397033801006428355909938256951052350816272558975529867465959335299989215270092326062458711076484263348150628811712278450173714333158618005281437674171218697190114218408821362770014948817526161882595962728179931623330765240831123210757421662640299725864251897934173939229224942366348302305010517837320704402267281792898433196380671601018515677177047664119692487870230289278949215954608175543085388481444778202687979412035712097825189151948848805303444883958365067852637463258139858990779798994716984483725940921198596555083609010133515381793637139302581517079908939942522481186062312722987084866897624691647894959592394983623667226472184534483875076033187592508728817526502938546765508597262243266546216438726714266715630428378188034163624689218209742099210243308824939770017356639387617718796563539325121972928671904627071051165173469378939036624388113129752896559084048729579112486739797656962993407577569682751822696388959574403204382055782122833001409884568741919712730795317668675891963453337633121992453849280245796488348808251210679742063777189810421416361088215728932407697993426610113934917041434357309615419586809574551663302635358967246756565149356278372948172644851276560948410382390305610306302184276070332618073382285690433871423766837511877683674375320157841039892891182799685060135977011876446442677324000930215304537746616761904992511682969306860763420115302804620761859462589707910630558134095432305383485958373181115204004746548617731080331824671549209578838058686162868364312307724572493769064721579221552354901821280258586441816908336774305215773763317011717146056577449437560605414011077611022337361497594627310236489205546212798142206275403199558215173182656098649222927380702634081476027686381179644559210801047878767964322073164815793729386734464707354908465178406223704593367483008892188781377787298515901766722735741475136478147379089090292098912380466466053680126148728902395703095017111303414592243472378732861987554180585992244974427462413407708624876160942621528767438387292346968400577324585537086803194128619647799865060680445437680160222164066362654081563543507725936843424869962855854174051936946987571624149775035218678127458183608017912119671493726955446160396029205554558240172277196327241569204423673154163116294792976488860166417196093671556880171817592219364666690368271270366334230372838300914358097241032673829024254021882098544905315330158956026096737565801461707816367176084924392829168987358744376644465364571791187001719825616333058816718737856848115458411670393448510668259744737774957147151351357368684050037416247300166035977744467746258479809531583266697247209983322294182544777686753258247195163855411505325814658759134959803477824074259202332310986006122937582458049124060511525188319350654065317060724953962049501987845294864604315598826568543009570792421693627165716422962731993331348663023892713777442591243901501217833198776870212277300448381980068751915167509838508479065302589130521810038751251451353836679494455748683498164448966510846880708954669089604403342238377793039890606091592163434005047437681350137887701888524765963332690429983505799448312035245981343511847955177292806902701693262375371095763009780437064377631264476143088785503661689426636295926412146410780511884331795545288761799640239939004133388633871079984010162418846116711756640171090969026176719090629639281501163885420662491344296262883518566488142583304576887298415511715495894452221787102165648337446462771190031501093380308640513290881182132719931059139968939244734717885580593877696897948792356415787146939821656931932199624587894284724813341028940985062823430897503908207339592911461690915006703377187905040949602537246269957393319942181211071202552742809793934553262078207305214470363468552425993217679025953061300495954052338046583380484070463068616868916568308109345391921913925998318528285179820700666558650094875884483469624403038399407451318216149217840361297842856245672945958873354783918603680143860740860270453344102665373821698293838525183598610100205196306961351484345315353304526416382482418055058774025462587188192094004054473424764039081356661254021991978075059408875936947864176519595934399445408465683873834754044849616554892364103734215457229831325981049651701532267405610014042866464487036247282888861546629598683396029588643727278957888818711451541014062205568168971664752727751026930880430575432451081785118285228935243646710942670262503614929424986348741003062188984693915111215150601004346103227208681767859724538419105854927310977628307892636330073099766429066713564853164433081142282947395088359853291913674728496602272360910044008089571360082669126620070776140222941258045220047337287643669862282686876195201597544921097241030807025070826904648942674884548105603695270477745198031775536780675878944470745307132531882815447344963192482220719966508882442056410352489419223235993562472956422777030946956833217166345984122009676982320297026466106587137133153118034289063927931686213789238749602410688732734657431668779554805506304116080654864219440436522085325479801691235451473365242860932457621134934883794374084429854480454913252499663740250666176393838065186796800051401497265648418412523861633265686550318518250690499967507999362580729324112832278711613626250939287954173779978925399775988252428766628132510267419918102791993104361096591351285573588351940263594279671444142917731082212316916571241934297268316387795740875722931628632596022276891973067126407273734637637834800488625066570654580003432943888843158828957700561143752614511702256847175447285753275931737953549043943514222190782561961596817611635503768726464256671906583882595694224230655277948990942437656767649992766139389049389666076052609955159089675604162925156215975634335924203992803360673000125197194132617757410803800312017596491324893916442563256426124479671768684944796361061476115476512252242394589763086529609071689921644711771976243397231441266699395352539684648199574131243531743580034474886726062903209894485153963377625299039410353874746235096135004879252162518645428338148530068693764208384401942209740617194598780785500150531779096292392163674737511733494925082699279529503315266089758854218719724919340981251771824465459764309411490041124693369016607029781524617914162143540709602171359488594058503681968263215643440368374134602312271366953872215313960726315719208988411882876641837464931213080895248501020677955470296738723044644836854900183723995011985232495433813787308093536255356082842602685113002636829278846400025042059156078956587817453801884907094185611419933126382465700579716473184540384475638848687546119934680963406071090846469385546473140265445649085757039376268770851795477828700933328123209653650686017142486061768663463519962910266816556241348584802237443703684421897535107162235839476968276053907904750986352899830986363397550100895855985014631023753955266674430007713488973505917461911797673149013982049948938191699056119043213421629218936007074072060881415383725908281742391069952952546992647563453550484934541164461917544747518813516580255067674480345914663167059629853878190708903379619212560078219152212415494685254253914735049100832224517139983993293066162392174902412324464244449415108542355864134888072499986486484402178181509464282441146814492839393449288690574571147318556725291988073167411725859428135076690900700553747101491842346654464721127462339184340752717117769840630376020790879996399671943319014552873102531063578555157128176743229353012385313647708444947861793382279565966317435018728259987013708623432178654600201077556279095837843774104935535993345505742993818149686488339548200359770163278328569664825564112757432407187605116724320704130043623616730147339200663903934489808128509242598177549330068820066520138800696429976821458882361783372548844944816819853761121702314818939540665765612062118257134840234944084229926839558970493850776885409876476855985109316586940318440950374410282673489500886283485479800495682403020527215747103753826707414880869061626972870088034476374704406080518200843747404743014123079216124025632982029998083054013551033164142883275987797798003703525930263106760650980741309127234037930123540168467935592358632103997013387737697166054298262351973354485192185759739553308908713052634425908938820144019666606988308631859436000891579403553091327843784936938161143257159585112068268992142176762744819514519063620733312054814053274042635934765879442150684922740481839868515321378511314772280324288741622222045836459633015393110471884203213029789246220076520059433581655587725198895467888334664884370047894887042195785862540974146556991023668369649107240569835985454810387734759379242729163064047515294115407552215101439717450424489256146258265272040669608349938408348774797309784357027070477023895627887834041393144117818372572999797123200481101162668102322688066312626271692581404256434247425798117197914470773444809461412416947114266057089953370684176868549384167846831409981961353430322159981667427902607607521102170541350355474789893088611315744355759235475272884669899029223346524082415359016586585004988645550147053082028400502758082755327133587760219630255801949230224232369862810772905354728195746061008798334498724604925887208467052021151096156198987938654271024493074250078473102068633267900394882654605839856126967138806154648917665544783568056785467722876429815738343126413743096021242897797193950081043564485162463374960371922576843361295638659793388925219742641873984972335866791623478444676900960569121506288708543413278284083077924786892689837167210024662780950832831618624761475419690891634142767277045406895617704074945364702023714176027551791458447789388994787563533820386533150905593419959886579442419544933164238569495376984360243903109054579272161638117490020293290149156432936180454077062309131072705512273448130038402782173994321558362694962973336999199749941986866725936708396015907821723341910789870572297669879963293652590910767232102203619957024205921763265033152600191676689276582493017826355295362301154844000609263969725726169275937057751358309909998084756896899206881492990904266042754700188967976741958038543205903437379408242772918642393890729470208258023014364531793154155258121168372364460210801446143490483207342858696370038644380454472528359174595031160517236875686293381845458953745066222748730771752119295569331122901984091862721481901408062018524485634227045476467931515923465955668077228895179371134108597422223024872845405250180018156538021122214334955363924082735923187912964592716488912897002544628328237690085381374876612390330148555719901715617570928695090098493115287325049227855537559999019330358912156527708174597383959750642692148939613441071700808248059176786384333735557270641079425433642280039191174720325340903142806429171993219318826114085360215189735884460041756292335049649414690671792999145124211128645725096605611108841097345004553983522119887068277927046466302919163710655509124715830027189104927586235061961781751164993887415483951124571097932184409649304536326138866789292319001355942698159751828682361256365503756855115522694771337153876205649447648535442491092089680456981636667817461082606260307445526261827814534986597923201069093862325339319083116427371337676316900741770022855249369272477816528449492614877448902936941991084834087286477103198941677234514337325527051753725051868750694007726529079719662827316137887625406048821811905200830809204783576455182699867925274835696473592255810316470767760430294991340708664060566502433804955987192497530367502175244147133480560932193550842478315547702252154247901665771828131950609548570567653979147406369362455688933705825208969239483387280422582054409814495987374653531458957663510910742502046959810451148526929079785489725787162422110689276400014653335352373805851962013286832402285282348092267103981562711785978748838280641047924637061126046234177341366149460768114285055070681226864242830199212776630858118207047864884570149749125152085598285581349992046705514954796268172829681318259723474491925690101265154929162446476490404919157842036073569669789739654449745449188898515952432906955187707178507414645909731117707240623837396066908764130573943243496836234846117515410968499104006929419048397476210841416604969973950711340902071906996438169380707046174130270831411332985801770080176745626220308963816771468108188290329962050001198183036293513882904887287288641616086198745617954056065993766820594313170904696989259315085387117101975820765333198476419651644528753836521397152824687491292967351618036724002833857703897403136869823990553462249798832504737874023325218359173119692069301965873842260553503354749123800184918454638001108431294111531571156303801278457114481556818335158041205310497264723225313542161464575887841115386550296717976882011767215805566330856929855186865244218382804174452908220449755341229643949723157676475227414196831336409960294892974212093706987062395684140075686344724823259182488740875555931756403055179608454157118289737555788961470608167202020796277256217625775209126086979706868155901098202938049355492288081691115763035794205910290186704497207205233807791997581458173558730851997330832473611665868306932605977381656330021342724750019503256531656649379396371608563757664876745254606911688963565668327119538281473152360723350733831562506521176875951648834247311379058572298935900645318295448832311539034664875427407654729837858155680762412023514962725838535880757248616181218531157678884596646756265698176911731857637583637452267967246161382656550536515903622508161056589467579220387773523183183076500301531397370275227702005434097043816280106648238227862564597925144972290396735460169849047276024152178051283113168000896772170923475166556477440925872139065850631603352353395296692897173327902672308768534429801384335105222253764254514858708051640996070985197619575811171514230588066866607240108148798298358506713446631587300055671225949232656380114361084192179450764078162200186970844740814552527576465412677468341556894988381673997822687503209534730063162409753410952706071615469873144681284253260337816557906971147002273389765715869040302944768725283205747825416222820627938064464718862410877763719804952322681867870061030238686700750755546167276278558697845263134191018249037671629287190810496410601190735448423001283198960320229133826726664469052745019443360996273590179795333641637981038667689394103411044323725967490368779533011717121284621590748637278124059545111675238214474978877125471554963382083425816338954922609993211171797144150708035460368249332164601378229712559087155457642382837711532225209880868850958807682624607323524141130272147859384497686970491576724190427660749820304587885519154855051774114540579124700720492136928138608523802124046670340393864476900462543543798917081124272937337049255970238370955051323060053576906969401228146075824406582298904769147392253593520680362499523650667464912529906491007018628537623114808528128446836485013978107202110307215295800779863825049093088811789737481639528536383999674939975912177735239405862615748704266555622333107882413878234358602652322027191572051475079320033021607285301516896302102906469136235744227786639057464819350081769198453330792819103049471588377710728139885738751779415309574659002652732534422447413498386816244168429340540663192337426428793819619152087485241286565491398703068128413095101118071266793900256574587772978573072110424550313374856574589282557682982590436646331108195740515192684581369033024123644710392584938171021060392049470705367592530571815822852648180515401889136292136919141234528887715431165671009355151854644153843541002412956890245897258426667269707782097877042779900199191330609485463011251530469734676193113232268519001362479143017397463047810612076236198543589770360331395063591975357553915937826055116908038521426565081313901386801909247442801625358153979358928208457318219012506332827340019854020740670190633972282134612654285034638709774982873305777225386306193951441486137728215925097508623163543645262004656534907378306609933891731940983554963513630004633624729769825095438684754821270306332385908026494092728422895504888057453818848393884620511427315712423538927260750866119279506553636859790062045332567259021497799213452967478242038352722740036012574319778240305531198296189151796101076324770306692247283263964717114570891232526246948315223770135843404428856663510106551330843912972425096210307331321949559273989259829396652293763380308793657397335285886849261057662479598619744107779866851982223035396091252647758046825894191779343150942140387039635563818168346906553912692288327889995554171124920155061999078702220248950870622675573223056722556914445709596881715492687396743301349802048398357879010263731504472338881892226486973273347840332752130254616863702504259622932225784376199820375773500429642757967422541746142603223089710139082779708364659830479256076331274020665640308041604987667053603029169726950375813235630592019614210289212694334308008850953425581112130092589906518689348159079172979642288867392506485341236213913080932507623328516987414618181617820276916290407362361594771985024739677640724893560184256645964892935441575260206139508416965228055938147625516545978404142054466235546575940035123096822286772361682502098161495857120213033662724359847801022683739376500568652301577230311530044267929141345319109881424947527054409339320497615136324305345877368659651278980916240336060728477459410148089947921006949253494567175742488865335939641910453437099098034248735387386436671219576346794750934603560699687988692773376724560623930566161593146310609129341557971689506300988857745614541990471037230608403071789333830028858818732145461051003660966676232855682366355849436619925059780852131661078846156681331717184093967693889477832530759249059173997905455562434478879759722139004751340231106393041777534562255306979953865789796017147616566603090593318315090105098997982053803463646656292550192526157098666167099622693005204152228434583108186583351395828509111923619643533998085870924178251963074775188000649490073449161848858580519356220192019207204415541490689711524443455530123948057550278557725239074326684865205600950768255174922827314188411084209905458288220638732133252511190541223800498048745632318123775115913741933856769885310250098354294795136485509437216294140331391454893092839638180805717785803311629859205134259158460220446847101246528086150631873560373697697788841566935059123802851650834534691388202982154689389764105959451429185167149569082623421286643575219115944707595663933940980704710458481258420084094090861819572452645392050808941228103449482382487728074452939149111747579779401997453897456956629916613183669265218497557872500793767781179689229346451235787430271476081700451281015946415448060166773736847709683279646092210125113874308448497041478875947278914500492832428759182432532147941854033976037130436164938554264462106491062767208555595886641172310282411237685699186875718503022912121869961935509120274306776788565375328620721284606800863750003859413919293820981273358952156876775977768959583079739843555560937187640549436315237315323663787760311844982795104932776403625759693169398561591757320824644350510010752086005041217956966438484808097253070361862513689807352545361774366551042061867173975194397684883904581193140484244488549594482770981182896894646915610245974151738878157961673361348818168908996100831186631105884505331393347091456990492696032498786556630280386895662209318695501346541437401387092056129892575455724210566380130663569015625012573598311759345621021436416742546884206430733783642603507239208744271345632475425354563197426733815353747454908043059746169208211456025020552564180277760799527692984705183492634416829890976825136543542225140315731633641114133958825590918800373900868759053675187798616793800518928974811442782694161129923739505049316915938511132591309295271148222592887672460637223524986607910931773067988644438097108360344348275880535153740235754675155967893866402736926852281157625022841546558232611581612569173622744520473280384492674503218830427073515432373919415785217816955538323785049557753847227867525191612517995904235380532977739009841637618111004581996335550410271834876441536082428717620266236638898529094743833773311857074548220775153227397024901597708286800103471882195364969980960797176768065186454584807531321018948260138223094980829265946982287053901404975367904701043913646781452896196530838973144953918533136396205215209698345785701978699253326372360264643982358267331314834958934855019793930615428551601641448099595556027347449124703164368172268301043436785642598110258065550338512337675054496254194827708679739983390237729210284289947294002288391107675226773819076570194032643352772680135401836626924499321222709373195260959882338398390221371351947803063816257582437499052341504818004475078649808045492231070670911136865068866642665773858004788346131464941551623838285142783595065372831272334396668938000212641332975153078732801996120645347775358612137489746723439494756508871362267824707048411608829583171885619276435592049739464507598861563853712348642093306211174276442771191545971089811981861674517044673078884482295379807725064607332898641248624669344813420801620296715793945700477815010748573721557060993197833205434361258239719747470208012281342038821072564434380717769116744947397825094206155111122698153418360881714387598718745444627502372627551922796068953399182374920732666864349785699049226003197278327261323090665670170974422876449264238063979429724829571424222955215032567167664556540158157944350211177959390684829180356420163425275716979226143193969781132159527384352490363126482916281154474869345716730040192268632708531747939845120382209124966894044717702850281782546095731497695323228270606004167646535437790142901105251296247009906486710326133463768295540771206261901099189339796801100692755869131928030666508514068846222913755624654363198552864611677678169652113645173030888570692551212342327266161313292859936135712742381305532383601133225959041691106101064272175293301992245400124283745443730274427441854382163069885981416699706722660143988457009496667910223299562423095597865698854415034045682666749694459623500271497379853544710108911657485037112561517949146310852218864562378771372300656138235225995817094991263882217290604084058727052647206900973563292046988040787778826259053991466376554732038133687887774341035956778936639016268010504145338463782206744070909372530824891887352082366447122091344767642798081697596219101665880531487331890025088184192174051318506473567313976864366639928562600367990280732008451173058921481441340051706114028374537094773137484943999654273504258870078579466474637659101895355828014831507190258488614282814148328408499738585732735525105929920669797223661887070470352936496405829545210828723772914689785166348135226114683273587895906272508847635463135344220089067790372905066611947371210687188307325250853596092077984857064188925416400336695629403383756403462663966286446520964138371926430394788680569476525315361295501354441472997247455930012349135733286984961383298661307642446642497137087706764513678067506988852746690992207665979460270707110296102795784487332692227105244067774124637334373997725657148589606279849180867243720910880610615108087994803282394363559962057862970643771422108042259359228578037595699173844117616539235947021901565002487796409323950781181076141909458086350155311435296600606340032939635613128240494471604452762796600629684067344346140534672849026058222449052165945061719602767562988812316197051203792727269252272276467664608810669580570736425853847593690584764903259371515819444434419825666522306537803839344405091194762948645721933905634509210490191425004596408636149212445910517744825190228283288818201381942286743245590948472959486585055071516902339652838366551188795357210328477138756185045141559909640285314482509307347879519266167691845258638893690580041108364305613134617825793213196290130540186762356378668276112993549634779904231913835130983582675736568240368574243136414971824228543200435816668031524156290484930552067227506720918004745086347681077945472736439167837479294846668411007400651527988211902475116485767154249442273888667403401236311707710017322489146709823221117242558532968062237145163751625269340539976719547827466673591077798549245787162459086526853330944721992844085159559070062304497640525511588647440404287448538196948590308245064399190716256459672924555280187289103192043182239197504742564153978686121574484205011813761853430944360634471624287748463377969164794119161000911500093771603305540082696734367038776760143165244678286937311478047798389891541846997221039638143026388537140350516758771772043645417395344334371383499030384261707497016825825080358374885233503117817758458790507441732903039176615395764613696105628127535383850328319147170015427672417799906080520255354181240911268325491623861737350388727086179477175232468285555547149909375571597912140416220132622973395206107574349422244993249254061012523676195023080209639770244213494808736842437447450099662925360518644774381977147662761703666476282310924148422174069202610986242392171628869567988029480830307683692127590659202137441821469970096178917844247012351293801583914372706062022776835217082190280074880202523182942213951157380533861741797069112595520661640356130215986944406662454315186941009790658264196805702948113480482320833162865825591707857711241089543519597102185404306672021547918393066524696053768926051095503793355688562426773877046372262771962024603454463490429261251518950970422737801380176714364771974030270639390632259161448222901635130652399766771038436020821720388577605142542629144455569387183378811672844763068914387393860019412575569585402587374302049542824732003218672053576452276748650192141975330039638345405142002472420526206460372173486389968692072210484505596184336380906436851915218933781407045240049182992839585679112972585119783342636590747258008247709291418902160852109385332971920873209652813945310470923310098212343255867563198898778405832943127954811506765246823563769703685647275540607042884559945605590625600186669424021592831194238821524833440243641869759232833445840940010645839908303629436055910556605197359663822264729854385400902489483286694351193405886808441994449468454731641185226902000348463967969156494136656387340228588053131250492601493152658846301557965665181442015305116673400335225139746884487927344387292281959647268686831838927052912127196675256477435909107348378534761109824805343029232544259531365769230571184715357049880825024358242148109654133631763384751449508708211578024906014174447493441670289242406295411613758291236702045328302348790455458804191341816746373619049359314065691685109825060317861410270630478067987137787687673857978500366545213036919210795718852359706274857200333231057069608632860925654134992338211996106238108893576064225721316759670199978126893557320560164790212422186035694540851707067063100745824433883235407196596829991381268039046694288123642509492492697583687951976986211518457563860416806729404757992629021990396148786633030329985928249049239406096820234923933478844125654867684718941328697955383355639734289008758118061735432910051445392448740099957135544929149501297741729669590434160360153762728724100622094506320720277845574886535431815884568921556012818957291508054836700332974196686740094937505084906318658248204276327982753646081218250669360339144591226201495188132204359883729867477829183032963063125053198415277059035693581660409521962195239058598046960839625514143612450512372902743750961531497901192242583963222745153072734277246957924977942375518924592367771959395094593824605615591883839004386105175451971653791201398838077284200189202024913883719264166032716752791541682729252624766465578667583857759840002804436995936165269713058897263466441802647487426564295357096746126490789651056874037916290148708959094313123378996384954304859514394161480070633696202109380257104298907580646126092082827244090812153997667029528328025288232632805698788208111871348032653439463548519099257243875992928574440459723351456454722793746962901395730808631894738036849086190729105772261754497385615536798895957129074391223943602742586529564616324818879071579930574154821724544040054618950102087522281584513592049337658138267180046552658308800910617188892174531694942384634126690953397426175409880484144768938751774871043389005778932170332820399826773478022026567098994480237699871599734340793517916981745395829497532818835493070605790220626390472541105300722186046079941258883251801108236847465295095662717753360921685099289993373575629063844937715031208570312763549416131285114881953406326109472407128580852908612158652903124638952830250976702858519414322163647862440337720927125526569873690544918116838091847498514934688173325973964679191312921205740412436024032270584838075742262067768250870241153657872084367437111289450480065240779461643146153894068292457051603100963433905719215589575236780211383185818278278253526237768232037585499990592059864744589789263421217525614646335950158773838555749005526173123411529398878876031513188904648004102444609357639904538083360379219542833402277472935064030114115909534280015025733140453417712379608386100083091304288668220013976503621309083358725404404795886309089159868625346021706493553104503033107782225994488828438100841712691341848790744698512145382496217318043120488221057521378579722212597889120135244160669157450756842595937500550122689928957522451860215557642500833180147363687236375280834603438478495630552581533702793553603152887781830799328167035296728121012263949314594732511569412954908154043619374216563920275996626102134617551908732828125356156720056494251297221408653043192238171604427374720478210513932235605149375133222250516945304926889400862333940339093628845669777124573411631315791457981637386354255947182764778099525130574338790625311639138867690158856502559658195400090013510478657911030487265161897887459747317252813697470886596351487912267633931653086066886077298402514188656949860557224071282155759307750787593722059018500634491853288777876624767590373101506354367872401165268758675717635640862294994142558862297685272898874011004420284771346485108865225828366857683943383396328903070865656481564629560803715148376477247243213532111831993972612469625667300629289533950966960166819424211974282029881966262518742126251565099489309288216520281162286231841788235999303662536833635881792180470338698738942161842398346682549914519297767836915521857457399151972088896387520263774066259872891351802230876165880089174975052447662661726652765361858784790719121740352533728289496678621146899822937497629308935177680636325240812628017349780618222123387328755735729098731323050450122942427948255877656300227555952373797656381173307142689567110675659840685104390416258554070315021761190683135609454205462994674790866639091968298260529718276931061503726626801360455326940452967193881988704189874490168382821874765570237812435006446908961788774518535746049225743191988894480278309558767696694573317663893797234853083720499288904093363405652202876036634475892830478046378254008667707402728822059551934718418155137157044710943219154828507671927215839175760606561547273032601488512631903095629479371380102765568882358976560054607368177917884304572382399916861559943091487816499326856789245663567885440702542131352880954188378159827452433573591907547465225529857154380637216752590262385354371442102281969607226464560051766818508780118201064670738726229194557844686424322617920531170736342973608279188665623911537776918515815112776128663139486560488491986931120139920606088660725296938445926220965353390289117711400926948528823971055118741804623176538073007440468288441748431712243635944782326887610670736457089792226937690063759729319825621497204538541939239754612782060493067529077038963778857346898732433404475295164831065420009718069673322088678424751058159787583344128152616284180970085048697062157480306177388446022008031915678645128013285485991954809385607963551619601359549125887621324213199126813806268837132105299680258466369163742221417382059753416790053493846708513137866191045853357268857787577649192505757404650632009707958704280536962449173241191356636446588488285940397190681755745377646017561984567457694962561432505466640046196499074011701169173191327950520286370625606369345037215143589559111792297365259924134229243111951500482801087002967703853855643525212031493814819850666248592135785709845945745237467744351673885983081079662172083100841057925138669482592406737328648273270478696237161681536028001824958344739458693450384542030108534288124050049238991036430994332961628249436629832978534094622576822063298783329171026039007982920790602970141867125357755137069761617582412171275879578766839956229648669979628726189670085143733353446417107913920932147554672691473498120929878627301044832850533098061637413321219617390855339534278117065721716583015347527992875992474715730726254033026515359911193230701299306276402049184298479319671281247776391427052843342344727303498774006729867868680262600611530931827865812377961174778712326131433202309214366188779156007380329624059068734834345193675548422238613663276254681092116478333254653797766215521644145433124565364959249318190706202514742850720090552634698971263135848299501344134780048716080014246978001942773448867383958439804150461944082290959391181899608578519542891139970167348053163916378085745769546161158039099995196722466524277585825988146744906302531788747339907841002592745447616567159252824582396588756241860730504275294946461550709154345756183331562690354988801272941591381781863526753478636425763402918401676805314706854025862932372339382913910260566795490872515740568964837982225110550633083453166713919697877642821467101292800010668012240604726296238896065316088634634271146186116165416473583342325031273993086167391431342072853400856791359047052881059628298645551295991569815521739613082180065833735644888998902444509580280692493987519862260683700391038505001358319993911288046525096538845223676179438006827445578961497537036202964354868996080221264542840374967477846101563519823354619756809849183445149083976743586977614403028428459203541341964264190681652490684880401996759289888529317507722575273278636691137497535876976249191533863639545527794646364495916695154302949705431482901445870578865906767292024627694556193544689928500966305549148217625393254265612576148274386025666853962718888457592493521416813287725615513187423774776944847905722159187125921353534161607265490769356261873830719725467380789927948948294723540035932447653069385535734315063878440726343482866559991295321844742760265985670503098619794835459045372043245191508934873242772221170522519764843028668765972944761106325999387323680273699574357505873511859223379510681952113752231458356946854582380263640042630594646673944757059346592254878826711024247082064116266929512033510445328427640245839191554446268942222407178873444825691104847907271323571593466493033472054160287167869525837033107624559672442232690283535645315612303909409088869620298304970936728600935193495255463357685049896672258750240656319012612948989875657882099180279751355568247311233250422938097868169003812365882997038983230190633942065387262284527599993833565028839560516511479493230001789460793938948802649219428662177450997933208313671843645163753133576923502462009717276727851583595998156580918788999923581325380240114654825071085639979662553627684350478665691645373082939973476631538499368959052069828378590791674231616148170085838521109102939897376722400844389750845490124708179496616783084902299634285494931288552780003388701585529834897134138436329799677753037806350302958196027303481546888139380193611058304493675919245055723242412019020464846256924670968959068989210723161219423389539684348647942582860317650896021706043558623845832647678523161420297240144559294926642844774000222626219267344660036602619271242649417866222751766108222894436567677115537564270065692221401915979271798033639804914467110899640278698550876405726551050134869269503343691393881513949878161851161217348242670897852570318003447412808342370527139019660374281322198793275859227643507952967769008083331129419513243839625480809024337606576773534996761701618308078791323330997680112965252811487209611150304983079226284986318209851368760420684725031931829883348766325520491865390510085634581106152416664442330236315852716922302832099443024239720999065778873423797882113290211666823108022256317972679972418603559433898025458992717363764323486145955707567482470761053296556536251758244834244844879206502749400554738571418661469424714921115202429663435797542294119622725598996567780750714872476465651094599359865245460448452274415092102384000268580267318433227844512343181903704068721052232232520181591067843273275299401074366758629251483055324115361378405823155813816987619801196112666001359019117316395633697037143332690234394093048368812601919985953960205782712384283932683827162085498223447358146554990703891317818737229543127082874440336654171306909141929603407303348816803862103545458818929396262504515009810169145396601799147880558761084877815464082109126711798397946889849685986640093217814474359597869220867751597786491041420114703654038647191115171609966968189469045440039146157751244379759820362743758144464657568951155577567438849504716283010917118836396676957022346063106141967865020705635574156603495810570947903799819349244528118886134751850225373921685744935157824735800944017168339995468611239148002543950871878491276327109807760031225595105724205892130409567961665060444087874123956245190656093694331814140891386499810357470102199087990793907543498859502079582890121824865644621249040929066043047575486408819922388314297198929637921587086080896313418400719255827476876196572812402049400786994491567766420129413751435184010125606929428007219876103943829941646484922934518152056713743910524644108106486502554259720904872028666693921416805963095237613039484552830398265452254748386262515821455797499015896142593940712946546108054494173668588222780107353704211799972563569433708523974096955837603489118189647561224427914798584494238565501999016737650982376276594566990785319784518158196222372838290553271639624902995248569728999202154048635167914338139449549375292316517712065914837753764563139157390465303920049336339480024197434509739972442948129846937974480771854516882218672322955917428242068322482181338323205969024977609098423578082945187290131535782805418294614170011757127669120251922913566813816495630554658070190581029975905985540180035912301651071489234350051265932517730285952657218438635571025713665826128351050770329654881296981770804480718961832943494243084245471471653142013611203934737626848701178175321908627260190603045294404377595246121880096353800619363711157830702754401120176779441675779695113440721563672306861793284912798530249917015329930501257539546118962287433735904865029804314519994436644352639487639003034425101793095678423918432132577990068134742829976980804143946925447120044071239445736741992855852209734108748526677753909779154239427715141622871330812023900315640935125973633977119058155333951791425277978009335426556489977212112478141227240766110881206770834365504883131797947776750305997929702854074019532578532845551170848729906239944532154490904193257763220550133826296797899898442539209885003740751190238193541271072490891289862718425096694083064765073046364306061920545388172051300841736937064348738422022549770076396358394473382830388872526920554932134791950536440737952704998631494107050957708596106983527146538661191239323741593751456544601582278924908029564084695596080752362307399603924004317520441370753711485603519315805419268000539564313839142502647969456790890972355549262458105717559777773335752502477093157714083744826118980325780882803438341041250845701954519162510812131785216364069405145341336446565164286863986579087875326174307436342944277427343114293709458569596950786924703598212644239535101572249104669723670148166348494411277292781091936564043996158753080970387770313694093013646040507995312891994516610490071380767203161907034522919330237525482699368567949205056452306134119963631283545020557359194084401828118737843052649384551835343675497964479569686331265355460232805389924999205285155220928687941187644841156749125304944280792589806674425775062835182891997061181962765099332279971365658395317667561413307655921851065461950761567398011676490876306832698030848549156730957727647105906184186312752129603632263937280815288049911684243145087235999824803373254753394190596073030959600430526953810006158181987656016171519954822475960180897177757019677950516457753911377896983820289107194131960081230287358929390844177959589442464187846748121209156662248438896288296016863025280498857981286765813867377388477575868424996986651485917673025173416355817255779650449204030271514764697972874545551540365617913983338462200659543379099104919425416679865038947278718162949882882531103100315871157445866674478785156473512896550592820859805508238900876830156461110869363693929839677953783036062656082358785804499997339783423678340725929660737383879448960862662919773849251348942377405822215680455980615200441576941936213238828196598539382080312187959303016863968826814724695674272537295864856444095837029917521994090663741718952602080856511605819086118459806461161568833296037728459125928488200764736727009541908946424273397207324703580903931184821850455120222513868469109158701407295156712100017204553234683457961968015670596399850617340804322942535899002049154086869106851237891633471806863272527095865042745308761651311975588850275808349065500362208330540211083867365923759151354025548282110455031175877531774643278353462813372000329709558123349829070875237290008793845967951429509582785478084110799795975866058241439504975246530791468280698150740875920197742250484650275977474636427320139246407691108934052877748728265288261911956560181800447538745608558537796963196121688045461858622203078464573524679560819628791663838449958171628311940353358373968643748945028492876810596042915987159829209578794301250977324717195667527341524304094362838822419835295840892285384943666129057668450679212269457956136764758401778573187874470220283489937385615689757828176042521503781337602633696395501887860837539267335870461903668701450154545459943852301117634967414665376708109940028299227740046695679531547528333083096386278458857447897373924088078390641008714607234921755709231468504842011189177516228123361067660912405686778824956961374021828973847616605098806033188936573665792831709384772023207389441813064643946934585590342791876653200030583702896078869624588143058790294085417198299353863171982633765356369460157175265573503441829813648997249220663632119923913566399052954841605293158726203450241206693913690802562844898369805793045544657419242256328786212955297007550632443434517391033062786056363953892226926546022536574763251114103091040990671971332308371632176788639994626421310673857191791452547966904772694357796333890870695677825390147916728390064611917726681313921599923654885491260169011731889113730998973301223015672948357975643490925370091038435508399588691673486291806960393318026887116769135946613047467352882289953145946488963192277495621337193190099218073754950434394549411138511411616942257104905000484850714553213331244408885285773381673546690923470765659046128511800063750422254022302795212909897308063252158125099241185093975428304296775428018434962763092895192491907529301118403454887433330939140381429005955978675706283096519858601680783790367057417504308288348147953316801193922139913008048986251177178271636674644872898325644368631845935943053548355762060793924828504814955296172303911495977847871630761140525758301177974820731647100341449422971236708478976021660330377010431906517762043758048054427594626067738132755365753203129843810194561132382768920817196019328759181773816832819440294812399969190026438734900897616686638892154014512384970579983322051137927628186528464221329405366538301936029025301320462025159559055209844657760452665722286955996046365745571280457747214108278785215053120781782233252479051744822617099744578742403589544469345286795062167509743038138983964283359535077025265536177266344411111157517943450135664757926543210217979943187721729615299460237666114757300530426921495729022940443123873463165356121382315715119073361220306578593787252883941369374569066697420381667628674125516863342310500120128064931870024040976522949988891517507987869572464511685592443722303238457785678522357698852546673625508211481323918487140919045787389299585916121768795004207475099198902135178850372402946825394865426427712800119915686386661017435838457642301287635578794212082271129381223751768414946696030380952316529791278998940208230461421904088181678538166180996983935832532250617924584742397182027828750070373545206327191992494166162767317834822867012715876398083181935162802354261405598262041854890089796616677843136489415265780392687752047604403750032181476283353956141931442334406772907141647875973235692993605609583082107963040310553262517551581103023114577869097654448970778126443056442039084638260876302486449150836342724605996341798704526821311517591238781302419375891168785791288089634547764647070349605277207305140340395045756841835818078676980637537905778428358699263277283158401527601691682239580402355515516225493372029471606149862838240685769637013028807613697475570551885389035290186353902140279109736124689701966088379490806910118466816571392600773842791254526983295070512598478940718599364904365080517205493891783629959141214596058523323409561902568126199703480651995322619856116260761483318281091475209768917883901570062908988780335724868828694323514577049731746811448523837385231242256369045684970590097007634101463423351724754325707210487327387991210987601519908132400318313455109040291096305949223667648743481877433719972038902011913595165288186570204048447093609129999801353614159883612352946902854015444790638500848623992696927783021304595641069689235334160706920109312665990066104860240361852938611008487110268306068039526439131841955382077283416255427526675603320292577280791023555367014918357767269161066510617460053080144403662775781546555076898016094493110096348141898155500707301620967878966484696159633657059519715266372859665485346632056040247861011214412576002224057869897324255323694657373587456278946845919062010032862023166505596699475423952043798467216395448952904673844145689813805199836373657561111786193694917209301444492306132589734224640936691679370393129841817670318720385302388871952684420632363897994762244663770492282884222362464778572675727697963133220637099141300816847725169096792257288140342604061152797170209077713591381488383404771820308584211409789316803183721093392312520551271955395774500434720054993444441757328986526697896691576506498591860135121619045951877604401911282204720400673809683012292974658890140342787271391133911498572471327312988374828950618069432634022765681936363899644260992949717733610418997095044190465854515926909222642331774218605756097095045762059735752727348572216112200438246896060142580041108802846359891981652699929687926110052483628132301329619293173927401632157716932234310707665683717155515227797126720602334718576883263088295153021782712391019068518993327157995341974879885051723302483572803651681616517760716775635261101454575860824510603792485909379160905555033942585652739067836701594195113225765044548031090837998763520775180978222975724822403678231967043958783560266425455327236762806335724386513726156187237006466647766740799880210738624737276778288876925939191355704229116791586451899195327641158666409401849540804503372713224541951010965481539843454654811634968352962756443537678681833626650525266723578120970655598300764153063166169701568097540332657924933343377042304531353956358014436280673274056873275079430402848289105369740090329558253017374908471031536266181509289567711757688836450457188201825848897726182365010894329087361540710073997261257999739575429697279933829356129803779663920732530052565143333178750037909299384903609391604076697788782672154912599076554568681928127863235792024523166449712565501335365797930986735632872058002021615172695495503515243228620793992024503022667782309647860561519460711051427685017677263054616870531842535715649928692204241461498578587798070267835268172734327769610318485743935682159360442372667077168883683899803923431458412660018878423670835903687678897191280011194079315909098521109070284159814906020832081992031706900732646396125991829058227267153525425072179384183440620921079241653724195308016160457036186353654322073984305038859457904862948177487891570782342127839303925137803786834431378796508640370094995634987708229364036665946266393800806857609876608748924160139690489083132125619309962125943253890360885057105791119982365309922298128990917490602946734644310848699234079607769621652083495766320070195817446798049972596113932930618266885773027081561555160177314433004515047024404084914136959975138991873906492029641551466820579900703787908534797309074052267058853724271348795993516036992146088430321951056713224248154930495753283965843741936642841169288340874284011823456216531258019828353777732340830357321490589963300536280164584659263833775050204949638643056552256652109852215454471794535237683925544164670960329715706346324062310568957881035192158494612934946399245410650772747501089000766813950108109886944196211033646001478449782945414495090809407399047287292500557829135530802750905841462404910152921909405945089403587062257604050226029073783905727337998622751559429292350529892923510236382942781932663678971851211193740338011668504110445476477221262190334093931030629222061769792008058249126412607246614075395693070240375343349102568280471742894657990080534066733742870859336919131782019328876728412436897799598765497122175020517904812371722307947774068631732549576476372991417294496612281029704861404794159003659868043458478200362469800796877114899585761775159843569854170568514626016039296697765582289073166219301766732764616280669522633917880719393301637336746583329571155835662483608037784042212721829260729155500323522300871459984294852938214043076975694129387302259487191961338206435884113110212462392223457366467738231175045249614050521667882504887065458277194647587703923121659316456284912651766475309655074849585395481242600545204487256630881442201321746940679929397286826648362156544747367834312385523637025375171389652574160899360057087166294302218012615163906200838501626138439313414100891108627033306043737390643495828629647042726146349006586025796039235621233267179010482580155620369392679992487346310754628693655209959807471895588852916786825710498653056215547556005480448142401615160562861650233840649376324317371113366829790915190776416454686960760339582232544119239108323501383727117972939510578037470691118261386524609761867416980496145740750607292737504302969433504629631325064840055172023401314653451256899729125444403783402865859247110614254283606910951344285274599034732970743390514948651937008518759878763372993861867516110953965397635164849383495183561644457538482957684115318017209017383779614451994318706613651068730232023389131708475599657732705261678773618837370990463302568377842458946171956622129207864199647619407152132428609611202914657291985566450207699039733031156428242182186531861521687975229234456271288139119064215786368890380953217129550614262768685415824418831981524549590376719389278599171534813647618945211150613520631314438149243157632624236762315891049300208079976514229832067664536797455635654896389826589551512286358355422109137295536926453119540008191626999150596692713169265135869264659388145996610303693923384184730425784441829069607320922868825395028871291163292210715853475611134020177936016133663740696411991810851826782805147372912875811252649384937081261696841471250081825898624192592786389737497303972109714106764625385896458268464373241601070581216944774492923020939297393903662579247212568457255217521691243464466249317851674068668774209927534304051376529398876493794851889460494631302157706411757905682036944820849250110153115031160948391614182322924193185843328121310026614730036581931131536584296817068908982673979884689422110671870251688741250864129852653881275693906836983181504116271162286424920034196410743609632212136073939344376403275800801951638985639458370780410159459366002195547409916363844290655817116575186843921304723984056412735505890675941155316452737188078104666243554660960300627311790441441700699351670455558142519184811483985475070963698451731437249364258783576758425166129369315145506560014729052624455516044079226899101272074610252675043539860198918568354706836691112515100863679825492086288678139082243878834488764290494405425030642963682515057471543543511770872483971310053632452593040298264160181459620236084679486562014578167142281203685278831631938341077045132964305223086100926460058082202302852768327398577247235189262709681716093181376597314345332111867749924193140079528073078438428962195043521164092109073483689918422178739818781658685360167016704280922821684828224740651160538405968052874950107366575030273288710840612741503687645316702992472625267574702209968275968863090389753707717383234261028573833771127403547442304138482814905508413600923798137952734967178920379079994469860790321116623865239151501171688858133101047864802926959502533449724668101297616622925053400728557103786491492557016917011835558949946488696860923532775358519313721715318245345153478495120028438552985074840822832121540716160854499897068390572777660463158228578048438595239705933671621015592800241570548666831041106286818518002547281579988442542644797013876472848581003498466962073780190941414572779531254871994282981315973143317127851055657077988019873710726594395338621431220627371127931700839707716655274702780698804596737927353387337638274863897263153746603750275235153787723962094922172377527493404899343890199937260351160798223415547856222884558074017858696891236296280900576357686176700193297647258251957504785949943208422986536419261454982608858966486217344150484145235786966608731822699382795521918100791222668367712133287246107461009136055231031103633602626825667077490830194426424118612091313089661858400703333427157723954044957967999437242373319584369212317911691221133093332619502764502665440969124897600089733101406562916185940253156137637819519400944109780109003733869470700427257375969860364220142795387773168377200729455372825083943165562423491867820193598009145134986731309438674648680211013424371470446969708367721017866316267232238150298910326000976344292469940586156058969880170669369842542621932784174116776022113793246048202061517496080405008889645107123294917428810314926358792013505750159762369633649229201659602040519102443086297879868538388559235969033968704368490677357918210983854932275761846893529893041170107491052882034710919668826556762625198977832421663220496376992927521003802949033794399617793934782514258528798147376771318119905296652796065154589032855311392484674641525178513066470929893579717331021963259000347711115559258797331315502584919508812847259075760188901507228809764393158683722047195589364282253165658613564682102806540332157432085230443703984874453317945083911283821685615561204798984731465915517814606116898051482188623734645113315477591341604961251807875177132440424859566002191535025017619280385820572656596822102179748919248635999278972751754096886467927318789160961796854396094957409156234690578124339962597640212557209266121545078386890002955653821724348943491574130506504399630912946173314426521598509086290063743980262674275510228717808136754465547706656638793455270443521478468123813700985605750705173286550420538861875838889310821863407077733782454445510946511025889983173657492946545355036546159685041226434189523385999473420483715543486129095762507851817354267622656518900073346143417268457124171063313584918510849568068314599086110895585869495583588100954328977956275876082421068940382859488357022178391878902121755389062773300234241249686002225816944251424725369562387505222977370533411521579626013246142817907889877733547517021591639501757494536759105160095683894163228022003638450391052557090201717265933371088379347998835230175705595400355983367606047443090823764648953979865280490311658392735253219089197065516384120586345631756616841323928581699541141700041936539944636884024909917261629329199375451799975303922522369476812675809358171474170810686113874868911526649327277800800935597876377303022732212362167860448563137486926088069422513528893103531802502521266767267528076929394953021117455090765932797265074898381374705905398203815139528550350548808357282083007780307626950719258956656224217242875059336600878672581096872921119420830260962890624526921488306099480335773570088364387474496047288700513313441543217213567663323329709851602378563177781691524392964093092169349060633234571909788485505388546634152465614763552829000669639626261260247125882615512063151730691264303490153212083356950018042401661611166133173730058905448592835681986113057034217754740824074705425279146399213871187289149383319849158773785718081507059248963748402955528368042954495996413759474399406366511853070716050290683415199577721472405878050021748134831466365855868789870604848228262336730806109380824060635135118299946788692574406659193632258923594266325193036283387290575100422532465104078930925761340089877193867190830831207740638085833807983468616427388693071277086819129182302997415038349581927306132344869055313853962727605270716766227055923814128934620667634157960893864010155482878309211038161676182477732221419495523750055987980425574120779835985392522264756976710429373333531372287834388793694332881873917811963373675709407667179631519186395995956866326707655600415177581977597888265338985807746404191167787245646274985209230678724417047979967375627741274551180555765331625551499113677077345262567220543299247490740830106988280203169198350891373845341022191159464908826853163848432806947786490914318501506081124579017322524773287125758848787705415054470497247233980822913192869571531319516859349413722135175478998534407485823391220719596602410213876070096055906180769420441024446675107971078390498304386985781525804166943173704807245794456930676423670058113354124138591736298782099714321929406068270249121027645679227597721344409634474987420697066089755815110069306006649963885693298153453053274162540042261432028211320032322401673910800163992272731318389261767224314600200077722308177577044037360623243228108926163835057517267455791204527730730737079825728049957755401097625156993857491729042245413562401234132603992373472581920439537562795877148773514814593220604122457660475577542007004522702383728076373746388558765108458941414655054003689307323861161604037430682354003282170978070889845069779038364858556575503149777440053614071503727253275458486131183260179202464096114636236316764569587523634428444655003500889921289226443800809381317591602911188184367369870108603745131151661320898810027632427281018643516528100145817975363534497445796452414486870500135353079199335806950729850793443191911559345962541709182551184172115649324720520033874140318639000996761764363633770249984251636033894163067670585019327945561579429120282712524470938922911589911218342427751858185726833467273983540825982751690453550670195811466122852781710940582466602713247506619551170556315137923186111872771905873443740352612495466460226676612952103462552740738751759463109685778974832750802346835690470876376909470140319094428197393462104751173046952791125199330807274974726159904425155982951219430824124706078880878896539671134365226034222390647917748043573625845552950471227294619704714297169036143037759889664575074150662816833577616949885343765726985134738130923397150979232765895427004933689063112051089693737541411254514971486595390198032880932737085860792488261736677467232501289524856401643393902684258912850884997510734206938831574414611852501869221933580512853217282321222112752046127610387229343833048458191422533849356575233137045438112929167252539765635016961249143561310839484291279520797200239990890590408286374471906364549501134523421473256075548341965572598890468757536874990979746562052061941711879049008714981845615727957003309165339418174909434117856425457699639872452342170695139768708954862431731350183287748212198029103907432307773271053798146266755266358973688187436689898296813455699388638900536639176272060605436403073501207452487329359066712139511671734641209575893272330579323218237124109560791912846256838201047412040378095279549280809068275398231294244718705945713363932059237746865490689839581575565717130985455096340252775341583158505057118426795746955884131529801095153331678802975979027295304676935289614194509703879348148303743764102787331675942698048318407869143473242561714170703465035195119831264068012583735650452792116475393888543674268917056489636860443693918035016818047927410599655957099657159531810944417296811675961051835319062071919144071111520999274503984049857831680904876660391297955749486365693073185468883399886377626833666063431929948586643832168661343450202758764336808669749065380282419072961942098212922963670648115970714933135981838939328757167827936220574405991670322972759064682611720105936150998440292026037707630395785831350846649315626854078631600422269573489372620830198844998680087583512315788262455119078077250331506289476340642775907299169473861044493247725604629537793422786003233351921830178421452637499084269695265589136720611766631247363742344780361977200315585427430394337281925985580349575332841412388942819292955522903424304319610188923705882161592451798913117130656548592728188463199560472674888878087089410548321560387369436284765341761276433833156936424750810991408936599166443801123961444498307346508625451413977844197926572375226311255535410303818226879085703362511382503814493835076697200917539359356557731335425815169463262309757816173963350687037305873371120991838588768059565345869673048461103472694837171108498519501723943873771184778644303296831818525932868798648594170587437113929106422976212145315193265967089255077753149365683827998653308988994155702781678235304763229566040683753832916229287131456145989771076555401735291979656127137331935777530568206808442067044353951522577384511800198097525840017941263526494708365151027884640878556202586761328967809088022668562033032997101684131641952345746418319171113505971528356143365174429248511695993427466796570221682877752435594154348318959638824741227724655039206524570911562798400455932283910175280797353712595798038614962822307352290538659697010176589246526500886895251784617017727308283423893280681585396672848868678833348714057580284219973515513580257375589508247284483466984420249843609701529226150807805688564324116962457639972942759074633292557053815195233420182367980636435759357656771630222172054107078722388272073768570716373673314543504567688137782185238341174681321275666039792341338156369751222244738430032485180090404794241646877327164196940580982318396101097069633802625303906733196076528518382488978504139500496944577112167981836620497874682768863385063017525947566086896317171168909577700302826855848251979736031224689118719425417637739076626713137196131520590336918188016109420395586049624554051317017239717697885335249440672246071334292184110503021398505372706409960391814339789490638302440613011576301710687263420405291583654681414718923864476943527723640735195034558622317245768601123192651834483325333221665827063512369618245040284760512826569021433831545656613138349165920345930439665116304625313038934917843028352468404907356764164089799854353838744940246876612237467535447371009805586692345977088337438550932848101633399952139664639544283025376079460337449130403991949631893949911322437683579401993118785069566224158269609687674842378216399777646649300698409585998916290006847226942444993213019443081614526138478333542357528162651692122961518075068096474971437816924850483469887452238225232294710096791559183054894216034582677886882231359089052373281146021665471563006114957949216815482980426652135022647835722717914762712110197330516732304946249834640783400401601251680056335024209967251887669403141649057787105498779455614445796945384288334846491319232564373189730017791139250663917258243849898724068133996891407650004909218675228578991308014547454207283444035100078069327686004561236660269820229871053801802971972113302858560080943931749627285847700427675322048341294582200733000642755146544826717301995621571432544465043778064905103122087940215652783743616174165329873987807905197622329744791817316812709564565775046311240419991457166047832271015685130103263918089536789166150832077920794583597887856343316282407898119887198639728450706362255720547304449331730303108953951750810548041529594326024234236891484533268374676086814569076997914519079115567989450320462625255967489021659114117004298074946388815658528452122271236437617587571963802547995015300895927908790656787456169424169529704408242034734943301534799956908367341218597797643187918342911960380844368344727208817650070371760994515960432147495712509219260040057340301345123239172292956821300581586441205998233894878135455665238546734520469953386302070203070459609170588352176473915161915225222530259610474902937254451959705359863137544048402914300239610600684167626930909132123573779305881067055709552118486590282403298244738722830268359626887914399740391863977220631993828774669058558965217326281522918900982771116421312251312959050490507507565258204309455258076358469672551438042891749417852372433463786002122142225267192681014124714186876699318981675279729561797757109029909262928153295613413173794083702607422260132461820254527184435155815386378168329176645222602550975484423004678418515908673148281449885083787366211642064904756945329694394566362190733605144417602276788443684088748183821767674428292094976329084010227546795037025877752666698565170129035297793274041001129437390471605020694545014331563015027498982538079181182423179007423046828597736431246246522301224256731231095525443184603623108013021363317456866699240439260090250502867149909260561063417798476171671117202426701788877569200070916447553534833609191674599115107074488176872810621447652506112534860920146044162214932625748683218917550204944398665177952352357298764467221014454948353296101074016551818303831168437468582395630959570382345425348409533743361671928894937026946007117012635495054348522920666710848330190535145508373806504708583145706197719460182730052771734028272747305585012110241665496071017868214102999900196072759046740864278515354231893643993194596031741145177337717194163332235554268836309469934151338576779278033778971704056318849630026575659274987446729074712562890879269590503903610166279076166990588552500432649428200141131831624139043837260772380273732704225351459212881947637283209067616742013736314095382271295019675483612296046586288502635663211269022010892166203172988867848526236326294621933937026219540562403597632568646624924598798846917127529344688937829516515866038218457088873969788348146861523963672037539426779977662470083692039673875707144353844784126911650127548957666109910328928492438223893418648814109485662989600401326231767523996863360365370600340394421639613719309150704489202972213943055220755373369047919112568140079205687719018489872140683893836352545502813376239764327996548675682800600856989225319476642843558282520589708476840199363515351418016436966111399781232852228890624637098445860870363133155380317112267286383879215638472752243884858936337275632480901412805324746756212026655181178133057373973041951670448346793139904830268431615144586434491697871189669484319010139466363307485524265528972489073747668415153907138116453655466247003029260188546326006595078201609763387696576809591125777347195743431008705143782304440879497447351907894707748664562751693529736543309801583447616910946067745242983084787454587101437321719444498186829159611837557250372790305125301983080787205887286322521239686119781318049488241816506819277128245407614125351647624783255845792485254030142983477473835883268719574859499118308477995744557243238743867678386175857381224944498234456691318212790352441343847363428132940901222469088856163134048237259492883628985268173624425380444026660360458492002824657146192809178075498774749131485727168972844572721322770962155506187156107292272994870421523139840686567782088974275541311323851188746408364361291981323701598959624633821269402894936375316126918040760216285290152556130617511725392803883232606010533875373300316750950214210419051812536633962520337894571106184599018060201862239208127497892012418122666857568027762361989641151193661083811613714310719187270427212863615010012566003672849353944150254793136425339223417608167919420620327221170187109591163036660515842593443391115062153521765708830878890492897716339156335732146072051353941838983149781030097937155714414256670870125568752160010038261289882705109406136956327537663102961117478550153342013752384647679231263387987135633011167118821267211011456934109814543351844013513493766841124134590070708920086497932508409648376164955737356089894825671651270358195219317518245465698418224325935616884051388166689093758542250780246635264463221586699938202741493343271334173372596353541564685032038366077071798734363504439615875113003092253706844202387039213769741044258543050472003067895566250902807613281387500738298871876408958278993064369399224360700698332091388783728419648690072306654207808016114165834987385154289717622809675978351506583285007970613667626244922233478765692979348759182149640937949007663137615905408758702135147443800854651139392751686378801683052517200185360995396965660948905445583904641189370772277235080056011737517285696949901448222700755407321340041580967726827579181162272538964813738446807609530010566144926267026498572285360811283387587063959861229489370210834508757204967821766601461345650806438031172674972088206280541293795930543067687818898454265414061576526202179926065177554392656702246630502815371324870293559350244707042229239344911361372922781763516323363167324467593677042823003663981548991236141060543092956438706906992931415456803173559368149920602573675291005242197143743038357288844105571815813992189479678963985471874781592522219999095015772694319205679091746850401233997552810538440928028851828642667517208211906527429052575515092761659962419426147372964773552250107332654518441141647459516558617740583542357042753076719213271477153477407538063206909485494785227884953692559228634129415783677190705291608818589297822222646754177193471252732177865096859533010902376834075582527034562877613517813646629481346950817165971512049696717274486306929269551666607053684358409743723087603072285589041816160567554880204343280332207062632620261669686380833253505353138808486451070823057874413089187101231151700686278299356460709867401582601127742581064521175240757335534107631466519234865771310513597015074836948903016530548308597603944262380492773228643493220433501164224903494336091687392731393626115892610761153078459860936282269852496614726185301528360757469584377986351452777958146162412108338224199725029308052289872010134738534363267212611353279231702267790540562130009127409228694287214355502168671288682800017646327970489453239812758058976089489940114579633628896649715374087243606061040111550319948827902386800444557073437657767899933404945242888454731014743065435078495613172707566290510540461087579382320551570360126669004297448441487567699263498878095079646492407319019598738139185896012781878762136771681304868177778385295700082394172329969552321514919893220184381460183016943720367646268018011820889961067044986696682744569766805118454195855059639003102951933845356178484155197033379213454306600784630071212997014439261187273423123159309646758860975534030026418428129121569960668687783675964911582872530933510472521414831657995165687095179240471937518807391697167150563636793256988124214641754815705789024840965067668266852662863894586510125640397700286857760392526239050405759655569301550058268548555715013657285043674048288517450845681677608406955199319368131566168745398719307853287545152523707905812859272824388555549971512395150533853133424373446505283667958331624820060751686379056208163519978864798608461757569394701318051866337585965017955042401314904551228907531589051404868535461990102886246862001578976908627047439042723696842479578237086017992580602025225738122466436237081593120524905204395709620966514762451402941430583038075215719651898592196841993581417604232259221231507168466417561675831161620742131875931771135856530958045507522714621087678460442857231278333647243278218013494613132827287100218426141727978172375997396670558318854359044209410848494128034534709272889646205419726695366064841062569344132994112163226108816147122610957849273539907579682577040508008219742735475125246009108411377004597863012790324281907654201765788893907051499641534523932345858050960772673281003180454068502735793505850855843438369478121148556739731867474670695783177519685330840487632536938703790749125025138093335863769509690338546439066753359695583164817971776746894801490360500265142729838470734268029115943505098382701841646219664207990542962781863784899558751770763900697006822754110974719733767084735086306983606472463673784919173614325974890015327832764573494096883611159628283371662796438481537419601174961865216633105675893961759739943243332817260831308556878511355063827102621403856483494366895087757157446194102919323571378587110913242568244445704271835157376704317978965609977394846110255133417027298371457275186289473866440078773681471737993827742305438904202242683452266713829510902969703803395219722508199332658724372733250923990316706721929424022006575730132416182382123119857780473048565463528776212349914338233795993997110765605961765155807671214570022857769437300482375455791074846406867297510743306715544159609779488093678947474012807050983799418054336074271091909829895013991917405853474135902219088540405735468980059915273184488014685573250382265210193195878186016948825108519833546048341074261042515777338341837616148146607306472768887986693293022266435696774600295483074665843635822722823363585159390760089290390032949580210526460273630865648477166692711525583693446493456922346510037107320685729717006173187230316118414704757978383940848502729470759340102732914004117957771021610589572695691677300984200291339975864991477392644076038380430426077535418803081153154379094381414579549962375925646318139739664176884313822455696103984686012457830005677913099368154666009826985147247552516610067336814149298130862114566142685134984636752496504439684652362306575319250425763521102302273721164877028701638819111286191026661916096348006967521336776259169654129554749441247184821116170685924455663717791391973485724141255926613489905244934283478262149914767730527132019866622335579775212607300073455030283184270956242815583756360654662657838595759434355465009258275173409828452359794687284844984293949079182279598844957771216315951592623554831701471262780138120942898940259297773273338716856841607550727476902569093329346782212395071630878979591905498705232967591917729274423278570742269520231183842099012851046397955825209521092703883865175228206931383718123609473079389156816646323452765977844558726907530350288528433677860062339183770705833953308179154959694931312544166110076000690515987113808321742963946047796761477392699549573122292944495047783062770997573236538146255024123511599606056229449120605761181389409237260962604999028367078794683453817899017871471885122107515608834835932114295061457571671080562324442689616004682651438030048245464809192435462528148754464340396097523718586351801994721178609079901702946039885737427197136812698020931710741417979211973225417870282216200816554095615627069029744481713109690608177961648181135216708837347455671699454803922495773140635817169285842192512866980807597099479292474082730514213988070022596457567121425499381527612614615366429817030000862117205302204796878373221363384184043420476764091200742098990057364211024289226343872931768734508487805174147434647544494602202776939176517763078317904100758127137575235862020723145194195891412422553038735080767002241335666705274663797071409299867605041120133600473516620644264304071589037011590777937146237861075370994072465465606897975353440278858761349365269523464462169752318079290165300245093069409454905388303509145604556041274849546341751736311563652832080969129507135744716040239552708438799843650653265241623066421756941339138959488512250474017033097853633896433444721239938409147351002799825345313635637354050635128267450909001932689186472410045965251162142528611382406198492471893741841773888789342312375739400497430635417592445900834770578544534479991316323061814097940961484092137009880937218797264433748242917052985048648717787770541388629871894688898668020139733113347439020428495609469771265918916005021457081144995197718067894306345058444090838882315551649646755882415309447349185718736110815542508047418000485447303036116335106012675804065096246158932761067103098993482214725511722241510839730190930398811696166089228763060287701144598295040541198752487919708065336719198348785986189687269578822599561108733692366097841173399891989309900632206290733462453148371480961558117329931501080590051334177393707269971195215801353044047721643234115226916222688347929698172903518708115003280466273761117572431632441657897150933210105372573622700951497514441570244794570085976973492943221899946965994390976935703978744881023047295788471739345047022501672716239802160917274495231450621684861897600869373409342420757362258119253951244953144106981623244785494729733115473955509928249066147538930263397263569814548303816482303934761235039243988054743064361909038320186162845498120918807618442614949799157698407384964250875815205800910639223456251253854200663957833196529898931483160838087235159194293495180197577211077519559964028926922323893495294862623380746822542010947607268619161628502838591392063389446655347401952848871902602924926127839300323457964153924317535184176124465474421947687918709329515923451320791832663694769868712640725428477964298760986431570007138401481495250247089981692578061785355995216074324422011847538149025188260796756830706497328221434463963830080819709598631950665271337865527424251366254414732431134435233431167716497318406461559243331216729488855121028085390948205263558922959065333414297524108205821856810223666405537473126976828318505242267317978621702363650417517581040940027091726750513673551653442374853080092095016329898877947811020911900027143603318354495315072762287411979555096251743416606681299928973145581166257030343815568892361372023852401190967419535612124656273987150294598930002045208134073633118417359301487464333152226563886758750948225569035654774367904559829073215130025537548967942639992060190583128872953559498568200448165599195031328398647823147170642393562782701860521799472655327867113950328842350867055298039384631624281810337607465989863390516442052114278179543739618427891422073949319033472748021041821165052853868898796741010979089815977946665468261700153551483444710540112967458271506839677011900932632492441442620258949727921641406001740854230888762382275344029356044669716739633649865190702592030503528148851979566108959961151718730719481091709528835566529808312238692690244348767197455024658867452478621640594770938423599058635991586747188136862534684178841160458222493997936501607726371142460842978538226556790777810494668785298287096215115339686890281907465833874184881197076696689832321483425419500699832399187151859277293481207249816903058990665400884191702168699962858609963332096260983023233694874414548561465465410040924559875057626687069455630459533082856751340240038125103126353301060905727834327961746214559714646633541519667688320511446966996764902266140613709583032120530613262501620963972863313952464536093486790553202219375003755337118745786641935242574840113763143811482262558043769267517583710810596844009736348672763674472378903139867748767796734743319681062369608575484257127668861725824270797469512770729358361078430667468527740533951480680390334690993133141898993009948104684580330054281714263312213432271816064244420384183121432318942182373734332174706579866876465730514024275153914373993089378106560393057375737957804013845368503162015311744370603525604874424332809890477957632269199002800825683113072736907461377826001406235649053135353999584645942114492176556289147124908260544136651932355089929474892600717694912612052178689919695712014951614946543617204338349280509924969267746484089368137743935118888432702742356350851627798082034709369597069238995786535124531673894251524357458532434023486892666652691401186221038676940764347097122699194334639664867789080278700357828294774594179564090920870405139479505764646593929010591910863662309951975078515486882031645431530523670377735879703255141871514203235052691051197548957086407519085589532966168995223810074269581801991934641037272844764637511379739700431656923208745107208955072678205622663263274901268643028569198109964897270975871418104066756496589579398330038036152809590607460057728493740590356588937762628424657871580266189267685361504405906557909481868016595323736026092679470610414338206855111545012677250318313832774637077447331561939156814372824797310034376407985603806186186906265534627194138682331211474085308202075377277314627898401365284396037579665072117539019589402082781302075452023649235594819734024109089776351902415491379577075023333602973445562512522040030422151898990292167875581064894389195012755133037776679668256597151900954317499693176756006051434068194050622608311032685411763089180034840696451975790642735539534855073524343861378113520082937064499942196851690422621327658191294781101177374480771058913718681897719747599226269620956319257836611207546552062334370180264732712329131258903392262851068522637427568587680238851391074394877895716359806210255022430764752669939514774266416459601124339717270724075469628175312434086711030687742622336582854663346406262794635181906110981535226544483080734684630779679999512625726981560489438025263595550779628732651653718688251385959849835754406786637842646302090786159100495959035364990869863193745826166447602108757972724930542767093316634109060295520407671250123958843031815671792149365735261778680069562303056236071736545452021491372652925819805980636281916771869800316057956046301589769177297728246919256812487329738553451660006600954987238814129599869367315298243912833695511869670298016153637935531874019812641323504104821557991769437708549471789144823456622782625123664384055870141527254271721000340039203594271832303396163688253217807123465048222820605183898724365997710608749096350335606511252004094089786925175960851674369523824429363227046372046773949040695039551534905472699898189998868095685719255081475437354037869385296381990300899931767087291467679286303405071296384509056116732778930402922395682821448520515212561878517858706849838301331504539544972655261642647934350151652716738799444222566465151603659103477710558110582548996201020098471458266687933898665097750028137927201517744209295459672125451018168367492852368437588194869133796507893171536975973601265890771040681091259532867821735402730706013622198977794969687810445720060846522363460974011710390993650240244849820423573288158335539707981114369601977483749088989866906375929297447770159513197262317929023780902267924606621462219430835339364362471222050221857926666643968227332647255936887860069965236519611184063753379872334707900119508721373329450163043949449089701005272177088727939788810106871604712877192849978595081094342412823338133210456369283152837692923310575004227681845697913293819423446030812875210122222127294448095273038273199432082935365352451494569561637760677086226981157657735035234173568366471640592033949162381914304542732704900012888012119845882021432847882270309273117950790033851338254463653526069692618145776704780298470183335136813733853689167668878067792957029447833925624051288753611900398438480267169209560320256628278264355080838710765237857652628768072006535810033026325404439112366900858001004710125449459626938221835166385502580292800800223162153827356265228708193573341165310174159398215003740139155367371738980733309970366848018667070471527202170461180917506090934786953337913032402438387218631261171760343661843338437967874945924411862488241162887605613914787147009086569735858247340715404973123074905119691776691282040248344675373598920207864810270047674005178669961818362498486631913129065204180090249678389349598257223376929239027725286890199598986218805621479803682448811792897038028749509343722646438568361106033296151279850259694994304541686928994226486715507465658681559307210958307197581520347613490459414298286868748635907378144291898033591666626622563033899756026813764583085374834964963920505586039953902130267871730758576884769353172860003631775032713410231933083056596896289653429351064886664053379454554364359280114921746543476634096320448500074879430523743980356528300105054727121898788748036430888436103545542328944365676262812945903086624321391419987402745214876957986500571114650060544575485503344513657185377843704764479214962986507305874105524507116117468814624580897193690378627031885099554209875032150446006953001775979921863496340230495767278541245638374519721990201923252202151295448154243784710591770283477704383403729018714186651852244704592553017330010481974311120314175275235472756542520381556216337469124056911156943648154342008066267470100445851649368284656709132826678040440440270080372267192003535065310873479335196499469574126990649893063978943508355773004086975638934877861886760428299498836123618365440417250124259693512540993947637544546862558684269281236670856078138544592478736561853566911235987965660732717927105162533308447598847902388777759373212219590869275986869917012704865964058947224447044891871661197474443378085062466199801676795672377947219008439129241148108411459455881801224104534865313989632423532088390244438044686355243873278572262482922339942482310274238772639874184256575164163112288092723715825396996082828492761526597918090398716909792964187927305607090682940920181760035764653852845578629205961404881810615139285884194528743874281857998500432154247846945051665876380840449288611481357190712732204182357251406840702428637777264482470555111506810597290336654257715732310029397812444009087777006290493996028192394280782634601583050388049403691885066673194312054980259274554733883961431744350116424096752465978581877778934557607586952453541874459650089825214130035097324864425652842411112538377005769305103172308250670768966591932491895273781877127084351113680356206695321970063034600493611001550282438314265202903504041441733786671210328510793193963062528537304291734704837178855764620210633094720070152299744558489859326726990040296563354479532671913017519855115630075743256009947448830454404995830894020598148453514654822174925268747609311145220175021703470610943065974934161652832477295158271393762468353495604043347356798717768207055746338713834196980239608305946390342949649069812415555480244850070348960520682397117411099922504838452530548149038567974646463872047049262861363663108508786804743498062260638837724096540519176379315858474949305565321773523078724409225016985265384441919200879608425458674681954897322887008335488863312704362785598556420836907511803313877487420694702692065919861253086872530214569650597837940141316150143530185830726559813237038354634962479062276469666575585363111416203127736696014270960644981224715522696078310213628359293656389877618733864746582037115720480498257784279530969408638718540035879164234153622692578896906824688585387634197769222209404716636998389568806770356437941905850087891596150348605984269900829734063397936783081597066493775590970760986164430985672840272528937453423617618097684749458593983310352184806297163528819640774839567761580345580700400982011535335596807627530976623355145998807855923703171128919806164255180739361062920219602493357689363873452948775487878691067277747670960904191052205371099182043247989604010559974745202233881268206658081372422907870937883446488755659424731764999600764401545972086785714831891985411535802925100250914451551150078413875633881558405463529800452708579275064114215199162211822013465991343676993242922379145077101525805576667419316247618014243538126185453764766034273851931093600527490470298940159422383605020726695030674834199865030736258536729427985626641854602401499136960094891983845442568176079351094816769939638426743119106206481090068056668174623461908261271145694974059468936114868683668349021705109028386453998605863264642126614157492513727704637340866428042686163436297137650431312460687931529870542519057783138317656581143983025476135902841303848845445028591926437836576108872612150073235134588928869338940700367034273554796813776673785084883396998348271748085122579861903070285053366284118176313235996621607099432861611504774109029010355664431499939047101511502368848185928259513945793874835144974553341452293754467048364178967135976406012781526736874610173371643278939936703546614094622408134947327466968471489733876777420941268414122349768559088813544997538754874346548837470826669882280757147013009181973535888039425433625345695310673547951325471894295577203554166351152906657098409627240301774280525092498609072536467272817046635081170040555286050972186461877668999482972997219571034006250647857496629262269505289117497588368305968870337879983365360889239660121494665985476113866877216086467143706451223279976729976376299203095653272383215786043893177066615081411815619307832097276721210925938862410388900936494791472539139609667107193288463035394478248827041122197039782319543455851665573573994829037145195681690689366326311336607224747028699495974542989093458248336406010935197595680133962921967195382792023043343678758134418548800338589074533647233952394770714796102016673795474903096829693291331934697629477272997556205256032854959663398857993223378480092725160032692700738614810959163645827600761501764914525740837219556849860914847433730577272697732011361246529749020932958302829624464737199784929716629879241071733071917658612814954992675548018339112650281991422467949651610585855511770044945066653196134616171507499950120724211529065697456081446951672142989173180523181649740718670941851364982977947246663546098033027478168606961290377989805971215452675750668938387550004006171876153801506694724789814485788265986388520311177536444390697820525296812341768096581488782021780100200643408971806530534793066241391368304895286236943677927138325846755739480316656448471600849280500165959912631407226805299571481347812283702116608641492701044260701277911013616827315476015676500728660782626883846602242363362140154274851981408440271013452762263791653705133989193175452442234761066640501134028908424663649481943396839875527881887316184609788351316094969879121622720673471283504923772585030339782577749249206648845019839494588645658888120141561086082488149170524178328366889019790691813499557221301741403739577703099700804150466109147414143136708411682448644290732116062322010130869167550616008826230961348599918990171620043289523403322863645675497969035309943630657658232242056471876054931761207555584966100966563124396896319022770148061604048210524361882231076268043498020647097758201540241086843425688557183542376748015013050108032269685141518295885289263071755065152187234073731195664121743787112413271392220409481746766823309343386100872464200288132890917694362337502596603185599959774340701094762750315292750173560718754967167385107225782118998763382378050719459677570973803766614004106960232847212384433224556216955685528237157879716806904465732657552969830261384712370198249311966943172433676644803576909448355213443241899960652739084280124932818009592944883725723529667974167933857532239750498645927219003194754535553151876978481973496655040834798618265212171350392189293957462704714901952320437721388158634420820115822401550377623921513927465639975896112745368042783588693648857994780381363087481755978339071704279960885421047893703917851442781443550583938252602856030712633925518835258757080528905638687082522975674209088393163308793197934425658933738660493819495027490430201363928831453157874470785687003574883794488827010651628830276612504987426779595303354211560280403609777420012936331189855404919474979623867956232022524085847023106708503227103538839248625544051880281242196233850130310338339205155047847579213311027789305773156976307213136575691272016852380339947442207436059329980011798026840119342502402617240529640268676475017767927752548244987020692156538607728103321281914746687304177940695892788372713960344353697788771729567418517257346596447848939035840868649036609190870931248794497911482449166878183684219806329633570076595231078553402987141262316761723634603143192700332748143356575785756691687625130246954857056131406154053686390040964103757698225796707038196840338746629361359263704611670085163929234510690047455613294560253903075206035307633316218968308467458762162709250254488046207495169041187149160303468840707326135190054657655048133072194794765821247677546046710336322706851801551895355019428904334588145955368526556728184736527439287370551728124088933247196965872683319228188755827454521308792439238153399483824653665632456840937206953359105727481710632037209998201934600513785581747624802516853512872903621057396111466796395909409126771562296339247152687491229753768723931040724919710674663442193943393769870095272101378333057549212828720986599022856907634364228612468806056558729472181059031668927404717298376013083543101689870085991314627012338064160354134824606599275510404434251862931840518817531475464233785553471943788636214830807710899597660573696792262120362306333774099508613360903127094463558063947728735234777969841937699916989284427090085625887597142190579983973519060347361534003983179760161033444203714628350315430928789261409973863617787385622382388049347880920691741189364278687391022452012308533653475099625630488397157856914780797478042803395711927209795364176127597247818136679245778874837794732837792591018703553584531445936163188168470930335026633833597756338607105914000630282056039671868630645260148039727673934626368693601613389704385691591455994020443316418969410892193013037987274672666603101620087673352979966238915606878314781710482647084537865748543762864458579927466819999936254274839593575313142984535353691079045151353401523284223467516195599560926443693923544976148339779156115944313189106420810883786734750488261991485269550276081450453544222024107598900965538640299405461651466746682354412393400266120221963410037188031231141956421130468115442669321025935246411896182040602981440175324283361363095355532125075522520107434593847335651502554168906280939682487020463053913744046495969018602795755741008769924679187174212660848075584869274487577804988320092401007580659259894382682245302639559965451571633462708772459985425807508157786676708630739211513887418413143250337329681167808088636490303526626713511666222199460161602432152186109754012493277950120127416243003359119636424560152423734216868581160110972095825495658675229711563846461780877822304814757757876533211500640670335522039235315866140419665619170679959084757472732211899075783677825568926208363287681311059314144293670469400376690674913969981527961964932335116373837982193185328370432735328909927572029548471310934053542753644007763324939961353132523670648458309646416902644654142875075068192620451104514388085755519749145789437130570964010330570866681498289863441706662553109113519856005192837716701421769160144590483023707959542278953208165720985238700002743111311645886049446724623932073657540912925922907901336039549613306070720605512598503921987210782828534077466517651355823764538858226517977633079382467504640601630689395772042778908643322620818728632179107779328642789320920903264585019693102187242484754355636267114194030060624943752046445260604888559147920791120393747026171403296157250975993941009816909540942551440454844371323724898573318598760069976338544422997244783867062394909655212929595768420497377661376676785385126438830148355234726861208947446191045192794419053840853994538358835525877245808289248300880289495885738541346589544465034276935316102504909092418976781976598203421417418924480294419569799611830269482183123327863585298139075963482148854691753690037210457124009471858798743758005739854362664458719595831099862214656344715301326918898639129363997563016748240540758754825827404200267555047570229887649826773071712172249948257003544432011895115886267144976049055985864357036736135499553278746179391588635664984444641223697656685147186867029476796133674097187562778579091181042619092536286696762571124594917809122110709008147243454155458923237017080176325570164123320100326116828139013203537779970874994709721084305583968796811272155324035222519428822275736001226879159328159462938579932038699748444045755041635717978975032919637502276091116417062760591831949187871686378072043268479753409349269200929901316486317808662404571263401367638444559128491435719286809121507301428892903917532467333471747823346109354768320818627102323213788530732900626266161623587248911787131659531547158281263187414345456060227399373690055338719424117664494869267038822761881922677714560153004041627679981681194447333340456022790262301301910865153803074332843489590625817543041646624878629214559768448027826273406619132992034590789423531857256225537535139455891119336449755075142779955235665873667021259443438380965939831054319196136029539393695179666972706578987268029019761315304106052388784288860131854948868361033393886325707114069333049298542809468477705279653114209813838895321232110484814514273064772311789876085288393491767795698513845433751394049023562033122586053505682983176721942445349312653649354037061925294845469183451674967826832979572868033524521295762648328269492792059318187919417574475160913560069709633160343855562920531191926795871339951132157002151363996513479694525959312086836563717697156719074484103361254856732226624196873415179546208922971332290482936872421318195905591832005150590896393758259766773869448121958066395347239067627959676531267735545078471291186510951794447405033251079586666625612477029135109430017816034210348409629940976812668002001340934887581104166715814817041800979899770761361431732669563881135649843702269143131967633429106128451520629488618280127581120844832184605437645787004255760976553280562217945325603014070040176681725010813799482378820789417829783325508017850166476529875205872223117617866661560675298606676698212940422565286873552928059822055879785684669913245368580086063853270143116015707796205851906435066768974585852496979331059299978830346819105092261468611852925509819914896047517137478557345264265502899653024689772860346467391272479243663729188342411069029362906508191868872965424560456753970243850668697047570952828685819894741104139728068893338322024738557604581435713845325485055209961992227888745329661977810367114436591116868190995906313917475268458977154691491001511130201798703907254586879544250549035264313260180675877676628971990659520898037366510312041198937177744502931338951993133890380117152271146321673863672085632366570514186040194493217336055240723873178676293664052003734094099004756660326631969727630429162531429581067112492458963145144082099531669994498722433822411188534510901177541251875865526258810663867034461548458091013484580921990289055188251557066358786846762762258740934260497442255864731587798026269784300757401660772611355073937110598893868746011728304354209189816989218819055949954978040404526558339382758581259090509636007965791578077375617630822773998750563700828593386712491458263771465127420362241497278140868629177084983570186961834496887465875939706887592161888933728480018708731653234004331970958858659878180904781611557150585288651236416858591426759576343546886135606670092739333465665243838506581158317516402407177418978045937945547775110228417517005976221353503005991459732224283722837680669855175043269841952119672331415470853165908784017057478070222675752098611789698708242214391711282279996453104623700652524096603160230952694600470788164684808182925777090759201080837122360577544700042060339826309492814455217531420228801891633767964548461827620887485700990596079204304035010945193365235451212024286766862327209337496828715085716769131112239217794144434723283838098635621871473624622923164775701770167983512434419845859518843040816911787879931966603079311941578481942470339090613297036738833023115919657590415174261625986718237429495439463111998907029757064067449538527171858046393429991637215842662097110721011143444816957409543891127166324169189098732409414996031620356653046998968458427892333115896256897755249504754869943367152158343724763993556803094860749926440174616288474027148958109932847459602904368972276332680574220807006351911582337061505952064179546109000005395836451880913384371920525293833787827291525487359233005222339320563834162757722582612979573436048192569400530116704886961114979421937108239495875209070368637896090610803302882438862889770687241391488453434235442898705157945332531879484562696254064121187564702523107357990229929591851071288850913942708244677000797129293394465550031057763343272707135017430304100195954758335692763384637106090786544984117295536273405054362134770717437333928017147029072516733790146841643211338715078121854659256540132498259680975425446391252643355738028024288073262387517789894336424338022053622559161428837979606626202942172908391709597080469861412053065330911499681844615540391037756034805882788219787828936432827667497162814802658972591446599693612429173735735247296210932017787368854383527545159097422894131119713798158377303820783795725561487282613485800701802269313089048592943308601419265871013483479263605350271782400836289334454009111600141850849720399387185063002327453473096374645089958423631373803490954302279302309408735412543731873988977642540988401958706181663068276907175644668942806995643614338395144785658877118440634811308528242410691852150139025362721278580602250833535717155241443262039092021285201894147966179280225867692574380110284042067743560308449100062149874771906853198990965961730824756058005426101207782749257860748667324291681340607995821188149932189427263991726211744525897276515923351413071282419649323607804040397561759078755102884086409739522151898567818669622009539679627103297571377265706092764932181514155026790025372911747757544992748619757749797196179159147458886477058983385468776887443377062126303417007758940976302147830236237665929833173300076795888998477204766551623161950003422753242398566930007987252159089726132567262981243845277872745055795055648306456596669116804884220112813723966572212058284599370764740674098543558775435496489222037596298806106283484369957841001654746169861377404882692117563605743058379866002164406917127462052822756926209745970286009156015861370491369526325930729834779260646744387113139073012684765076319215701719555185416525983285231106097262241787272329833799755206764620673416026890996822227715466412259373524998395647891886196184367169944828087799682603724693797845681193263333094807451537712642990007165948866130443406125444590818912429237761168043009623957261369365337261654803052745046397205173316935020020831275016896623610907569944033663347545495977772930984979059302650697235114771069740302453692426570221034929067529792566479005127142198940898301341571284595872391369691937341468505790130008107332908724702069900362190276469364897193554712732854523098480228024383641765659196627606072286285261201027651504312797467620503882767936460590276513550478376127262536990383666807111373065276361869724912658711384178060487102604653994494118552034039271041466665037254119907977902062175185243373959474283699168918319047289894165015700941187290590114830013662353118748014988392933129879479765399749762408504335753974447284982252788225281844802843958357399608542308774684506748444880136264558092772075482965570509404947300557961474008288031319901327153062200122219834245362545715872167693382379104891196872449927339957431595336847213613208106322299414595667136187743633280629263484714564073332523688986125236139373688982640969874408809634752223327284865628540249104299263790828256660295009623310492049159977786406151956765393402223015716713746429358394242798288910980834404381477626240659078561159616571021734824998197687326059772427720576613251172120454537543158362147416473031324035114558559040131315834364731621689244202941813825994839088988089228685237016517542542946226226907395668967603460841740581404715392483784526461372173714014526997960789891795269869739769609615798741082061374263282487649120274686478861244260326679201611141557261696578626329756432448929727468307479168242048015006276746682681906075539543290458441009870944180572409456177246246417618998723374774005684214757221024863501707978686747669529404988825165853251654396801993537107930227408543070252563706865368850189052883450454469586470761762579028923496673514058521958473962325242474683909270963385001048327547810743603662997720915249181213559535334989309253326887190216119416031836096329763519316683892067731347832602413380343360445963674420248622560103762938411858568304258659346638003953746643361047599593567160792363261582117779788059950024015488604300215131004988309118057294053077507848575106361977114528620462890065872110152605332474029492008677521440312351931735779258083787093648992568272681222490693917064817105467780246264790653775243989572334453833395887048105021204884553495186984195624141587331672924602768802505803121007565896659980282640441337778693565200488950938564359297024904605650885317192405245687031858091905794117680100096566617057942683068731820424679424649066730784234661375696089959821955127750383421364324642157908118061427450060186355640288245649180288213241380282914162509478453878016610586627962112206896408814929762143927985814068317127977869309339792724427100700672015376349565391796658249994372689486380108676672331703839718632660535446410100240567468400419514867036527910999739496947052537461199743719907594863759336324671074667322180302005657959655810718854056214286635915629001077624676429674692274801958013539655263834311182373842544898531198801275050921236262329281448306146189780449835830056340762527746286322375136366940168552147906156515480560999376645391654247251919986221926783300427098241551826028413103243768632830832508652448962065345379412240287329999284370891351431408334997462556248079260432535213098689499723576179116203739616756357279961457266804283429963273642972796608766030744487412232715374026152229634309427464292835516000313804948110501314796475281898438075934812060589198285844647846624365568167282241548705963432153302697417544484160652314974934780026138564364150191122560620980390390576488950433846341354043996492665164878392453439057730262072577387945324074998124852437510386973192762234976176358195149053600223939799114362014741256107932220787415198401020260417729271980779347716719117309700908887186544379497120791541934741500825556136397588251083455036196240002349720137831671045910985748125503473957616356678632143258871618064345451965844561683585639463102372976193485843312627929922711387197218386456987061751264750223628422728710359336367230626429823578176292025313493039227623519755633622127747371255433834819465586427805430149641458544324049822387510281432073870441580188731841025574814826047081382135512735878961333893959662620446795606526923376252193078054273637765616874920134271226786620847408113518610480035372800441472147088216119318564165302826882003107385370443398993327806515436277066207384142597454235931374271411970335207210453982064006382151833716529288232510683679608679018160647561730595258346313825994149551831068794243798426011256235924471091348176739295540298836345996797167153755780881044863429574810447529570292314758652912041265607189197250436816261354232764537215956572417882482163111590901886154179509598543828223456415957042352666693820309335183483884883022920793532680784640245021548470141137542425492400252091279819187804544322384003810653377829943864922443657955230784206366634958612696867972863702524915661097052462781775372107996443939266768345217670609084859076967723179937060960730885012330198911381947697826967863104898901582451289699372235768114400100016066652307831263719429588315810431823455500554222770122941454521002367580137183996304116112907202895447248617295284267816410496828054440696259150891711849506567658106182456939387439371506785991554072532855918630636164789132610124990381502395788236935618006622459102971872074283234092514049684099714982085899585644884930114383535089380521814834581070468790160106044251411269845079033816608396998077104757181847791442371751542845565742982197853185141734220535924327804560284927301115860786246731000402712683173145528229555007263138252066634756732042740705184908782556891413793886360814604219080822610711439753678408865540212962470375759995103658440835243813102833575941072433562799687770012812326399852290167884813087711753288624624302381897687481854144220884669979988614629539866406961402767012378988236967050833544299769939538209234222777065933143961926591657305187468076159870704948985708185300346237527424628755353786526147788422134814479923300310657832181196687161154770955047045738782984109485528407741610924495535848730154989185608370977429413103865239701529049128359500513497172552792955438151867017973379898555322271799202824070071432989393741265000460934582048394830555248041923221498128909567654828964371546128531978803756458003232225993444364319027958982077272534480457227247963027836897203357075535446944773516637454733808376300374646234235707819772311975327306072018925477394139860868273900678731464154832559194116765460400971872590839862595949235080347851261633670178305163340026761720784266444887793948130588908322074952568573166961156984503034211741842103217663004124334628629859368235358860942730142057336658849673980483523070604733565925650095163216659814318756936442374251638694550719998997797693106450873818459780320636279223106822874293823655065837936526869363332975332350453469083363758568078905007208109268402160665073359209557202135310721140734645984506694401613298640814717742313465266359103334276462565310313709827981367725689768744862881107250474162958122525592938055061057659658808277471704215400570284403853554368849332774914283039779390063558845360408391047426110329282456133722298884822214476212122801864108883083946493849176167613244253804515679728689359310904454044316658575400900262101465280452725239184063629696969867205887380537334182274947137361579511673779732287789794903494264227646617699655857220947106948546257658641942085791335359605694265270560318482897007267821913969117056202101631669721420235137496187257540299869847971105282542765749731795341349204197229133194296773008892251880922850991577999597490069576412943218847438718233254236499528340253018009527601305559369543426132611971813295253220373412830818672192398788794692560632586842392983371399863278170036623944832759486710981972816508911138215503126545236047751924519535820423166160214727055305751250300979690058221954563892549263981442778929021554911351402159094966282580090858949306462664069034308862315725484326932599701428633072240688244304199879395261580659354193962887724432604650151113545363528687869781431986598245541027892971192663446591024549920621067636309465884477535295916092183990212758546906045468725883720667796987679607728376956328807442093610232816203011527218177523516156468467441655994732207354398677801992424611616727032202391489417498863932525735043939619355486054695178842549386945405740649784705884433862411656151171043700043942719187667815196521931957661700068383724088316945250232197921727858958413928467500901122994930830969501810761641611069693084724794273959240236783383074785936282929526426836656215002022721816655077730470544187990126824069425214653446879116418858487706582091194644389360244385329202425995453931364360239073218180492249354940867513145439022999456924721577150827728962407961340763214922766307203264037349926090997154074546546570321393994786584309534018582740509267445291241003866250454274167898031107646631350491066932174770815863327910070810736121064930522257333538038424360441319415562910015073429881668710150267515561044108842766855895429151523524789331630810302625291295030240099613164169560326016541312224415993233197023372883080386036393472229169895253392140999319781687442621225009709717743942642702529687348817137085783698719888202538824386592230857001921074818480128783497930072433634957086142187699623581001508337856110755820597560497921091297322061401017801539397960273024161868590055350157481716764855794761074391842646098318140607184266496940190574539150459679012112995738166252739158728153514090585931886834306429265376693914796312025666837729871307596276126346554637802535964888905002001886371124774914414316771185482078726562440044013449807043067576162607670339924392043947223534333063778553355811765185002886411095893047155592627083006829914839723122343730653810381467542853339171708220755662891991321003787368337846154997186456095217603853486507499344669096856722694677833650598506587286946722752526563828061549905711455067852668101235192932020453460751843040501557979721965361965013493093539966334816387784433936858023444946354265513477973124354071302518500040002041806323493658731241848640160071916377539743134758411386309031980857945823506277864689997720207382439667086207262654739068140802046400657822570412784137295538279182113072826288224609230116021491190205629096965633868497491977206770808480443585962266060203356731199940016705353327803394679544986103632662977743031062024984436445588529272658185721652690094365936009282883082715050656875624535453217954198750721158986531358524835563336922140423175188722968858370521599202611844153321409084343324587543166578448671839055673752368441944202565409957387236578737036636497538996102804328569041786622538318384968826551999142407363475668720663910896182730990489790770459203635956775009620827610992918549090508969480764398709737667563937930147711611680363069069255292504425684420334075206905164083843058797176547986162412859729222675989019102855135353999877475286321770188487899113062768709838076226293593453990840011782761240530392338029804704696177299639005199959576736433045834443387892602587227382842823247609685387929064529203462086339016392584910948785170518006543287501780900832973167291453733254034752607157776347617188745849373591610979959901274289922512526682083251510015402588952492544348861484355227023754416364525487270976300591732906667847177414328862794220909484956893418971672868891596776898124776470107772301847668166939414534794451402874902856219282118663812572218913158039525336338409820694786238548073613217272059830967261503442907179631387888256385415460902250404984009466660515224795081329832457383217787917110211915319444568054955877148066578474806119034332437733866397355663983029799092090144210167305590893127608399700448720880419972321623730740828737676999141382541383124214480012776645522047389637330365739138848119642148088759249645712964266210167571994358306611158482224203624272143793879185465314386429932791861340127385158883579855063155835610490416326932918075761526334496413879131946862130942492228467997039839564242982010500172173474221600302656380302565641285404591877059980093356417534345338524131596813862259564297685032632531958132499780745999174363491911848993182248431920751212583669708585434165149321113000300309381920068775099663335461685067689380751573974860874012697252836899554955674542039677342757739463630790720033221114500113602222386185724853382910457368047838243771784190555100960837693931404190778437609233117442154183780551166534811306201044619529238555706590897362459211431101484786710071397829495271487212421303308815890183996827380511889068482743431733593339307648490988737652036281061404807447913604034861356511958761458361043415170909916037372478660027077783228948412644046272066198057180083051621755762792237872523563360215789582490365970973516857099775158144472539658242114706870560925023488818287630064529997202193077706992072127018533383680508349592171180914580071652710530609084281129006133076130935511354624743881834345109874775575089908006466533998275226746715199920805589746226792069588469886019967020650711658648741911081784598633686650506258112867588625746177998496123565193203102550053452742901600733264874549997741523258829267413496690972765029532954671056386446921987349792620340904563212806847223356334910604621897537934855558383030725178489054252280631809202713378393337779658391221853270436808841964402656112627830892257748691077904963084633665569207428476303010342661760642828326745758055717104411442296948846249069560601297949095969580559299228061726466504592968697957188246714960688959057092389860453154893967139605216823716909427338224242178472316513773618208225803434587519369925216595866137875301199271081507192150344396590030307955498241014989102777894128182775215909407860543761038560761882044578136965526615484077236609435479123576332343999757595371116501638177131265161564364457524761801711872482459322647705277343033521480919183287500812142684634063252417637650322726758766393986249046537346038713961952545306713232126669506134139991429403988371563817214056854363700233668867153973468100654360653317708573062852270805376281807986106137072763835573320142206384885648531202952171433048827460783956743070389617991855333753336038575747565316462430597068817615108178416260382282892445774072836385040416255848292485338367482646534950009410255336904220411225298705907636422465355777745202998870913696535130251885285013795514150986937261562817493190903563657599891876864046882284057333793615365835821930290719410817367146998325019249095839837509596803687308781180605610851287647111759512138840126345034891338669947262699617567341246234927036795205792547776593964957930114929385808183738882871404482617261023536009601254641694813135438776760738650244822660191241175839105628087957425011700144887539500841435423612841866590703335550862916440264773030139099598150439998849883776131600982760514495346363641413470779974136305758859444349221421416445432167501731667981628165240907214776419106000802432529326874901112659137276849084356290896754608741308893707954951948543206682567606732389533976666892373986634642858666207722069709193552986644013996138436287558412691436866013312696005180393335769169598890165394070869415242533907230583965426213029938791634070298004670859996519570078234207060614499159165631448883759675824658713109975466559438630316767987150590914614937027838911298914138910210287874467674438902722109219034719700191491619853830380818920085449666383045298833477584339092817247058112753949031802828535753438794640069964687944311808741781905900228591278566405627092351985043961817265594063051141954442619979575200631365833318457950681961768204159446535851632142825724044117930454672241951603257131034649804161694578213917951920457259311170745278387121147206669668426920114766750631606515986670651325855789195944585828497517005733632964292417010308947442199680530594958711906904762167737052035079872969020431056219264383190758583806286094663847407611128174157688132580332305716950585659725275918370779314632633852491820659719763468674712612543906809310123960769607088932970625142423079724369655587200092582136681484545174741470009562116494818190218972562916435229435518930305052812239321783959845143143329944468911346427014379147310995612565458799298557236724566207822639931346534294230487817637561608440725082935846434424966363672864561345305298899116828426193541672744168482224528180985633084901764177142894042880061620471676309890171087539216044365932174538230577210575965516000947679578467397584280623843661832795438528517805401705471217366521593507478255100858658089175755931364192994651494805935020630046827062555755599159409420477285742624781042760316616016180199912884420040345085964947540442421496237966474341750367804461146807542859090324783146020162251397711106389704542821376279378995981316320346498994098481983288162544360121859243382638969123210378237123053219177749691721761607414744684602740955121543036061967545542741825144828723105127677798073875415711582171234010832719841998020672559621703904241055232084664729447876422037696047475904701898304062965283435531588113960593605864530060161281744034599766508149163723433566624559593791835923494957453621082511343219647555401493821240924728452927240576662149431507843642465638041638430463185463170875874056690215974301849093730643582264966634249864468451368758299417688043248319962374739881304118942389388499752253571819430136693507980210719430789725972025678242418876436948836993008499657675778092557499226766090924729793727389425817075949950520708617685243265252371957596179922269198308310846527751228255406743358429489057671194132183080088359492148851059865692814165556337604710866698128400039271559967305292121407459718083792763109063265137125060197530635550197846090519426245671454990835037368514300000439817858255883628969629627282044397795846706906472275262079349878672540055360982100548609836850426544044856754987862861871315590698640796059811547187998662026866197263117094951457644523437935889370870117324072838710818891596957687304061125401150349716933014418326197072544662335269106969397028801804415002418350131407669270312696389257819095510902979891386696106236063035655671043830842734950310165006674642276462934208649582921082327941162173370199102745638122801143035711750792879067481695379698494390252017009227271518904744034556872865972630937748218839691763530636079047610277861526397962068773748654462440090315377585899791327096001224141981360202442307264697440620890729486077434463811919080105321499538520787497682187239714778205056211650474460289490853951910638154804711074270773447149038390354740786606030212079450292940388356402750609112765433923025635433666514659692492665632803089529127459979385252143005905578460152221548304511940874497419974632634487600296439895680147014067431082283184825093646148337882665742009975538082734087835632028215559809874419733124837252899181571158547711825708761148812066009952013704997751684728096330656421046720868389787657281073559495434559674099217196690551946657700835748756559877795277862510386413233123932620359085503185320786692852163975240329921266350514166699278563609645873086020082773092357620611545246122287577370921333870985549255831148859797005017398386268998903464458256705593743674010685735384395236891060369500554926274627483292015329136996023631842540264406725019899622263252363963449820044728893010486807668930143813184074485433196174439170063173607539485472548879085564179309862898297873722093809639674853442039874348618513414113406654347812247234171395186257208600739924976090066120202854439893191406732288718715494293830190718364891101339645014487732241781024440232070781866754536198871447552217839668772433018242815266515202202881991073184850569972163225536757104737934130867279079160532097717061964790513288745412891329345841185866840267645761391010763553265495460771469061653653654727915989058504520025913391692860194910754671291170308092924133986872231361205999933900920200049310514448879306799261771523056505958463774595415775378509051617900201059656413409866007012007611517146957605085353239257398169302832410641599190191261501927008072538892099053801572326098172229605247836114174833446384548646408047850504650051686725644694691031550059083096584448272009294952464232797601147279676446327052416482688512363591806892862082912688692258130284978306591245481696182184002687786135980738104697338490708949580871680036868787737144095050048702858253156496384973518375217574907640633864486442683553447360157951703449973334721302722662619487761291757155728258885230759588993343717451477805153491015015913602011858124460698706132556088453785450641169909814966894334133945116033563677978029294030137980268493732508924317335950239600249400236946324724617529455956481482166393817399854064684746408684271005564385704194780631051024416292509895805145600458519442581833580161701696957580568877506040661152046744776054936112265954464663150178851435241444881924175806040372932695966227037498146058592043005030261362549718456694475510041512600106409325991520587357459094751432240945146473214809921196936229674398010640638662002487504141333278965977075891994009274405644023272113841696898364394802647992886295993461329998155017917438291069636208722389208202160125836300353306301875394669870535806653810786580010731267725395407830340981026818666685191441923898874770310568099965967398804954902059448901126222744970778230564622351984243359386421570263918853598545467476473255907300845641354907076345290944221735983632176713066437033320634911855358931850452736662198860770440710588827110593556152821097961509443341531937262982144810654700112904599946865546472920661795757738815429248234763126055817713818097011902743491592044418699151813804801462339270764677600174545114468392572744506235117716790195172884578069110166722053211416124525266631128514269657264984792820504107746321591171402213040608236496853408150444474179489334525163492745944220352329873473225003619504773085659399966526840075761834298449819162673384602450992122219218922090702922766151601684530741393783913117013133169563130338633606513472445765736890394532787325875162039192884938514189993513381944007504030266661476269813430494997541375305002774095958115214428029355839803206805499748177360829622897141385250659598380757230558003012525370104675499095240459643963634881574156188892083453735185357546603794509563625225837498655565164547780182681879694198462088455449271231257595802098250359836913043319508915542301800212258199048282067472929268596408109892710490840583603465163032021228657708812879600393370706781899020908787929576135445662353613749788802053385584276280796367615559915200971851659841464327920273977112759655164295020717992271889761581183061863862026813778566758118640596330378173375865023709527720237922524790133786390653352216551044479378313118655096602325224466038027459156892469547095963390054110336979194684483658234372319325915665201738815195811312061439857928054362909161393133153790105014609604614408574203091511415704149773185161716092580528039211833629250537329914695875927023999801204285302960729770742612419666135680082222557409935208195700189122230738836089218335975984282978640447370513169384053121150193425691973154717315599672151781616236663218646897402849194424415057686340292497999644933415285785264759648557400061067076315581218600165781223261357100224345334127838336667487858877756591378086804649760659433738398886240805962004690859761112989247441381085062257518249671357055529134739328738722783552677443613984341003788747119702523548906350450054675544285147778167272236446874958902382103814167898428762647709351220942337900598726064792475833650796664218971150659362428163141452263947600281921871512538376517818933417201275481638460977778259826507170526839838773889208888398624549400396775331796424495899805796778775465232203944923861270459691552340676175902621605574424715901770801595906710137237915056494540794455258320636118758599744022357113578386284257035130211801422762093635544435593703240056579742791210261914865744215586520756722443915254723144909937391932961114219080321808352390710075856271952309426244780892071519506340043429325745001407590857406538448968548874886728650488482377144505042080466354620658873181989677571370154400446598650740170433121223813580784835587270051877948333836657481376819254914415500125405026196605223815833900062433591809566535482343442829333481013923656892080022033568114909415649456835958068851907899114890632451216848678467682151211169262326468115996482683835743978291863160186134980201934599126241665197301030492693290224661868814526454936444090936111112194357731680157617165107215856372791309121219913465964102666722003410083332130456025787643099393379169705412985833856853437188943726822697076255714881763549381448801894410913284788181445190849515255826127673218855169575277007557701546780961306021145972064247236595892370859216942992317095112988149967009132218065787964555170914262605786809487606696612884222258559926137315226577317414048691788470210824565291048334932433803521569605858651021401554810758042633179182439556664109254594386058261261660524269691733568502452276595330886934486060176471002036226348732174486843961486244374957197794157882361059091816397728821415579493086046816819367367321363353944516810127234224990721392903178444722307210038635132335675486824164331090043166549469127736457866771511738752761063435004283914081670876404758885686483309418058142203889972558184531409842683738424914226618771037793796422698330673145794257099606524419586913915186171715208902485939487226763369852673221898254011925707506011594940638089389780290733337363769312313530712444152483981004772561276449887934912413742584973882021973111209573656862451419592831466324246644237160205650060551036947308675832832767095533244878103534535557025360698226282731779705987515680414543588778273649878181846793177367898662183255933337310373673428319922228263229402806172368806305150925349153950507514983979083043620316190935246442120413501365338596597497965122520166047997751911011039937891801498596421524958683018386164337586033819173457543054234258973107057700055395612723820629549835604297935807198970893439118194266141022031481786604146408971383583242983272206951945108308493365170281916330666127793671937895020621340096235566829322145197349419713851479788834086980783136287144301740461630010139807211161508453448385121567967632995285888401954432951302836900816270819543995656677590052454620303836798956072197668097237711134859586194285281290469057869258135404974029716530474484489988199942425224065683862831887555746421641082821463186143471833981177603793885885703663570748680132590419207887827535671553457729976196190532244267275365463133328841480280915697751412745937543115203838667686213807427957736863342908731029054561238001681887537837051167042749080984483805455933236534428555408129905718410734268380490343789656324005773278702127512826397741791168391337078148130919061650863706674419710135827038671871346985712496285201377834055563844022775072556196829413469248837333424294762633967481333908921092186237263129124853658929393631514466622362847510636597925412674832094875817050417274842083265582111996694189308166442577026112851486246349204593350858312003346761410391770897087554864796122302661577698145383870409525292716283294748210757304569156061445002234955382792982445833081874466624933523548325490645478013687092162024884908701164402669324002428184345081297220654330848489102673122164972534157008414957891826980671384046924953034355136113931114776648668761507098666578942379125657729194230444751964246632357587841006509308533218371258300124413456842169925005050742288871889090477100454768634788806717985942192684669503295306090783778639184446981630174072518918082150842400626836789298266733266974982251391278019253465904083315566836891926493155633805079053173727387550235233444635212566846127801053567687423884243287320747860981036291863298593595353550041975607672897583590580331367763953025780947699309160906572150756280198668335369253586222289550363262950099542790448803395357459539422618385166313254730619059737565663057249922037199980634614489223173622248478217454591515368242523157254630285621558368427820639250223403744466538640041103723195639822743596205657359439127662245315207434480815977825889352862153555422766683614064550765226913064173551814413859125742600478533551517079946275007605669357170923969321437945167124445498498582015728176260596706305687575206450325150009739221980540915978993419632091153652186065882719406921006664060785455167583978035607193747940934029216037813659652600590470794753179016712245913016045095691446564299072028648014865794041368844392811199215590239268390185005859241598970257663639715331364505290148527448308387126346540909811694411274502546962613267193156141177873974516885637001355627888349613686720421562396251737376014175458573374572675248829809914100335657209136735425926086394025201272778585849427135326404267371578263013687277880221762322664246748773521331977794177963615857788476207430155008200139218754045119132843664618624327300545005919402342842372955585551371944251109334217477192370798099428869886724911185879041454461755817241830213998768496174051621361165505857806430149570379825399266623766248497634885143711066033479667619672808100131442279852258023332905231858931223994416093516656984286699785241789335171806809652293728739751715965462912086362084936731775412987083704452961487217659199820494122527071133812728318900033292641698479488581626954530533464154174628114361882576698768930355732925908438713091867477726469716805607076774938998260556325107537619115626646779344688412355574717434795615583573268286840479018933603265542619333632484307506267149375629334169312997410738336407970142695660331623350328453027698114017310242692661893945012816981328545756590539010301873008269681374981993404340687034880893604845334150585371205103013665865489031212174044699396167048343698312042815549573924483832455822103304365696102381336373993817998130292830140239131210180161928350151210397486727823568033306572086279686978834463776303235346154992239764133636354156746184690468182594566711947281144697660073961800940927695519175735164201719571729692664036993964093993429955978476274114367544401546253518282654401405784580919133057315606053737331841287831442360000150660472984514563804583253848218167875204028702465497451716556843724924155996616800229524674261769824629788165868115466206090553266725627437308993204709586823901526958248452316491618914581000805912799218105202657513242921185725852189671521677642032073695445878665626003955476759673679322075567553030944940496166815709843950653450935787427274385812471736653163643526582535214130858009851043687283768228314851759262724133868667719062526861791790778815967218875304154847659380393037572843226964452091787075219811938577736912993098779848473067894443654366226453602870678544417589298262345347240879756295441135878153870025831979256241688991029948395780583914541399371253974255107765557131547918183110943859526451555454913102058456293319837751084281574223307374459065865065419748070608067815658600403608767860638884274702540683081484265624666074368370771402070311702428586909781942978611603138431947094489423131422652375431218979004078947572998627534465916717893349960789882560581168025566681105586978148726058522783328077304899949410953744074934629251668309705249312808879670255535416414864567471030707566051148462011100697958432913659223368123659142265121886051909288543727968315138554281518325391888777440744053204473452686964432118089545598377546808481839559086349327715692791330005790388330484862089584175396229680365096088685430471978793121968894697759043849687386179451603316126596658508593224152440059886026431195326171683961266588217728853676280130996583289096958898438218384278974394177244498498283152486654091269893033542307957902695280071715486808715522214856193091488060270085718313440023092503645017347439667283321612815557872984863186919194975739734594487402792277335189688443755656777638006745684109822587600074779004943174097383550838245113254932430701079335516720221100112551266889280067496840966986111115269937988177103024628073356304368901354488580029325283987124973086767830962458740645098149048571741257925976008545573759452588570899951408390321335785882565875151275419763559687143119756375564648179825051436858720735201225456797836012943104968496155431064990728759979695248418198307600054164936467068053047657538714472166231792441782495364814252748139308589025805128339134780313141068201900766351441072223410041848617915142263650711995259865518882027641099270180045952342863591819561842408199999632536081233191505426094163840020767257348820443255576809013390428942105290437939796766497563138279053504853143269958186205127243437845687301646122032785853761249914531376459378404922206515440666308940265636631124321772149917371514013069684383200561668305426795805532865531345014399395956503944761210426176436797066524995815382416044533658009752583723966606822949250814317997097866467226775332833618875829174338006835144348579099499921334378749912749369189073873676577819265493267253477324341773554765215228537120007270868465857367328666213798884102698065294765733444013632997098841752243673188105595990093066873044546541359326267409122858804581373157723164644139433429207668756832351390566352311325270827560296538926501073453143726481599907392846189078075472305462096153787276793795095891224743186131951736951562315730522742672420300816046616474160412746842633260764987402738407173583291448004250053769294690914392978010837247570454943987032909001725668610894659359478122262636751637031769992597371443701844973691927406313342509414377423902167247277070212494772036133719494148285191799586616398330945784394294495613539995713863082936592760613055617744748156245289622201572674474430442277771240516038049824772536239820024258096930919716908085293065210039128637433803821067462617360097990443167788342937569541214206267100134569154174354213793598129494038694241543213926511638765721612560144135668069824567229228872977957408171940310721790806232442034206766202445629216989082863042177971227620867931764230820443793454533664782425702434333269423519866483092563789157473942731363284465494796169022326172355388335159753577162492343097323723341572137729864835906825085198115231731277882063031510316975455654807660500218135796884719579052366343287367777406261189737547718769685248968685558997515346454183060511617357206470887940043622853857111030064355165517674409947320662420020666941017527528582658227192316442485667413896832302169257078586353779403569417833860786348202465815136793738298679742344540962192376989095222170411549395291622785671188444218451581126306364608052006311420846932638263974384404133673690271937738831530860422678185003907940769839462995914066872475678738295482390843368432790480655186716631007979112769417971326629690036317581207289459436256211821934453647015827955195559894221890169591313315366978310390416842153197611439880884496956415896300035270040548095444304527768872565334323258311071114409456073107292089423115558339100678048452613039061250795935555141395537154362119423054237340743088175343641005932575719734901143109262508929982881312823720765803254587157872206534258866559648350827038042763897992387121734465948630870979440114594740406259956902979738274335398139915909409590049510485300224911425249658763331841244840683636580021720228094622582563115851914080267094050249647053205112878603422979940124572218527906378682455208720618479160634018435445047739284485288362559720040106049660556906574180290121930826759214698442565354631570685469240213944851823890318353586800154926937213024203989425642425263351159619273970156886322171730183654434210320340246958810830575541300868730927586493865175589697547427795854640470092012166425829768596592653443409896209054736128568693725386326513541068628722304954394197738212830994286913726079858748689773790856489671269095961337519445674245677171480096961176785188368036224853414524704455059239479103814261053600658582344620909392822857861352213413049418278525794303183362917155540759058775643850776395315945212744202833806553662669649718931698834235831943589206197926990001271341955289861914227439251163373571882083131098833502611523323354571538846091271765033878050153911110654502149194968613709196409410556623640317768396716704610326073787244234325793421902383487414135370739086443821632364724246275850030370666459766153759834790579990646353961444226230724439113348061615249239109858532807039424692369240713942838158343564258012810746944327331629382116251889454973073852387779023312533850517507850598375301561774974696175255540987078362395745283217689679803544629582851838219457651496442199047742751211540595054473373855601992383454145546239138889991668406610444460898079756992136277318552180555753437951176794189905766183925326704963342415069203014788602216140362748253311649749968161099191016078169807434447507006447643989948443168649901918561929212352041858292770616839423068492026395234827826997920006266164135331171308059304597629827980612697729067233953551787020509779680144201314406920998251098054606742488298040061287953702780768898431806699260566482021080227964432662338507231163232071896161102600063243969306261462152081600729260932585731545347480583363018652055772755175778943946797517051859176386119368671499813667913347176365319884319784792720993492352062280150482939857083601442559219082566490710948133263876210838166492293653584645774296148796021038752266382804960453955774186762076693629289862905354385403750293194992552976405543155994564209208707979500030894604217825198700181739219692477195173499053071586956652194648886702408806339679620213722122581958936557653079008604649466016704476467756616127037513740710224112960462866273816989866875228494152585167985460430620136540526049796098090182469620360301083344481236734724846036887499963754034429056891634720800985620052846203574305651067670703249177038667281564636300595190286264103438498963223168835390153599132040704913758197552116502193133700571815651623744936674972235461443755031384418745733986489196310216649294386618503971592841316216425817508039579706405200372795564139953781490369488029981680211470987833801510413812462279362623056627463994148840857641826590681953740205644472016384738902652683295793778019463981989762283857137674277478085182163025558348018237804671220102501093541338439931871643977286282066167570871932025468043374189643721256337806359190538768369907357630132149113190497991900540241889212200973795387558775186956885856660377209562118545783158900735417761624796589855181973574845857837892152015792670341364727944550404163663979963013947841638748402271757858753587751881629629303808688129695874248286636755655149434978866405430399861807825880099941328427587203523704228972518044515188470341160512853817524443224095458462586166667612803290178625249864295115010564204699095092396694418461906134562345731000707563653740699879807779129755214925792520814440493999869534354289530369126196576130479237804735042675828827001485526284266906943293089058068478726717581830204414037789517160611667092609134437815040625352475118928453169923123310039205152658490560396412865641452984272926525634933039501511498498780871182288293038589773648682207119915789571476954953789205956815226339973810193105941079206851657512219027866084225467438171107427818775395903729241080224992092816367652799870155192810617832054588174000309402094528381584834811730738913001212524993189654231209403574364559757587289176900748559758736633197640590414423495024855339910324091568245265494941180464396269625500533882390219684668050714901639825610153891081665967904628847676644245768345305481171207363424823342602505248866844089580752982021122420552220640100388676018536136497660898216235719187062266320136824710835165886184886048711351838973082094074589607084636106919781079306123852448350085204267477789414107764866541797736230485977633724455092087294549475366379446203260981184581927893243131044522166096309606179701693016608314658126523140378022201180255642630537325435705233558780255769956124821018202345814076092959272876589722066307712167684750879882734470710626972248709072888235183569696222801229718911742131783020376231980103520700043592857617113269323643583417847398762577552685805539739271339858599757060606047641437861467061352427091439966940509331241695550951532694351716232060026394189094687544317663984242727714694086377716705882165930110674866008671311649712552736308380899016085581412147104410036227338367822064607115702057152764728166025221274777141983488955968415878141275094998148029597329042658220122665578565170960058987476942731860457195601451553847533958512690074174338090777608408363431383120248799329264180159540583651393901041922231549344516868014829220049294256484699126787847120033063348525542604373115277485103538791045082161173968567794444718935246696834722410106701770063488670178179430424589014407376466877882624901820542249226455747997559342737868485152282665028731332604371695597836751647505732182272079441992472578341679877320461745103813605475152904845751639016360526065957388628345982300878494266160799132693658468395310778214840301169361585695606114022450649986780249967848794405419383741056144967095188966420072120658956991583853561681262586689590658177602947963479942347395331120357834165432215063938931266164482446978944524041503338770480256081477471384399489119627066336697244894595858920217299143224841466474123038198250246524400910880161098074320547299298788026499609413006521777209612619818481459632910165834550149735795867307423319080033347533563226750728396420856235607436290079618082541099955233680732260686680981164716226246223804065312964280696485258564419301452213294115150973741738478714917109607111671878471693338041129775001803267641659227807166485674392763168474458920111915805899715563573099560654833707640137830542878110393425064612204200212758065346061754353326340423096011563567840365025099236621454663798756883498765992340101341237913527305926712454228989889233122962786358430635913701321915661205818925042466035111393198051124305337338617993139905323608475818231723100128647603614678727173289595259894711437926222977086000020716237641304169442400003915517653714406607095009626415607216507560927527242604481293132409529312389913885232502643207997099825121612343484578814387332325679930319518525427439653431245133175056036837503319263535459331079156224344569284694986434339266816024301814149360300933398606474294681826720887432147770875715461872135009125908464418350576846509455417180311563145279554277327635800083544628642763057108684201967854416863059449388508546538624833796891662782816351385636072677763414397376416385056263949697999872480408800512319390943622940539552688669026534182056392582645803896915102583160253497529730842651410542808104905993119472288379271998924185285685564778083532656179593993283461979955878291907934134355178468171771067990851607660176248697940623194110570095982318247476329171359206296237741569487787388929995929027108506485376722221284895651264674078908686481440191274985228650850586867754053056535241784542292055473559795416521125905743881431416571323049176791418671213294605699791114783375524488559874152721919390097342805233528268685924192839075319820550129792130032045593448368608841492904898033025309706703302900388137765768294655087187401308922229853802656795931844851276942624575347804881079600630832861827087937294356320701930221043806940290841331207014031336659660417061106360564814799054057576117375181663031420646250650222858226370504036533195687741675985598101955693675490084144404965869636145281647469558095947517753470859172641683821999156771041880301834976217632332303817240071250340983085675949885421802865474825489124484465178913325126131920964197273229488905466684440237448036886785587409878020661723847851312861624842477202315971557054788630643887703044623237873499081405136196554904089841807168159096417889558463530891148836921338908658466427361076773976695880893748483816618527783829761818329990918699086875847646528858810674119029092078307244034831071160006289601362476459237913130907807067093365401332229678162897227577640032472302238088036233920686762573315935446843936643784518629543490200227196910232085867833223076199946887368089422387831315245075640420253328799060203931196727149746946719728593807035148435062963093569191538001520381453584927143588989411521674940471082800402654801118078428604089422742521902280870463962946743203216792868785508840161243368601217255844047187285303025254018740495139259465090601281274517598794809953886760452429022047489461684493165265511081734554045964592207483930795520755703350414207991853143568978920058305055378165307699959759698120951531063970796440828362208195202550210230875239320068198963724592653047982460547110245258621673038723740991376982871654479220476398638151201147307011820124397138455334954431898972317341573772051155789765202140175046988851842858085979270225681905299216956178355576679218833168671998946504912925883054182240785474838113509223651742947036679119125341303698255345665895755467425369349595679281105403001125266034652285176857230346697600919012356913627462163942680321044261318039054264967074076546777477080601900171920009264023017422368747067737264665775054641306387627566533886353436665698676856882821523186259476272482763390212633388431501888377252173899629504703919411286133335714816093419568098752379249666902797769359881419440007592912241294204875917157051019487060894675028798961598614576826921136406935649223583290496017397628733154054781429639887931202388154780324796021797834496425494043887621164631152699454641333470008118327885361401966214088720113927839883189948454916374693117045079028847056267196149740213372976714978341620346538595781279439163321486621447002096927774095810310577209521520227475452048599889039959494521350743719117559293033773609311853741667080050479833878000190479654646685018703416606611981995811786560686117145245683148147031066934415931286468720755519182168935330964313146628398424480806049010340956548416626901649116852728453186152712218779051074406003208847196933873780337280813926087353375658781348612322757559140300549520476694905258236760716162773655314378320577059454779640382816341327529893581021868421395581709750362555550331688706402112013974940745916942389084030009787694357009070944685272418699792279221219766566366121334475180304350654811399741198583139800768091863164511088969075829866234144377883642316063360119846638931790360252245443968422728957014721415926266113778014094626884535640324720910389421797855662717435217878533870921212027318855805230864403499512119695854363111893845218587902173764248276036982558663707101098140060685935233024345948689874734843196822787600725731052425622872474468513059707785395209784014729510328242813566278210487864597550686647905907644270174130661881098303818838990142052376480425569745212014756179435048972746774480938951495962431964846280224060406643781653764460446775175283685909263950179036801231797453332951909685493712101425357147649269083427087202027636926565146762467802791415195179229157042596391009217230846796138940344005964702452472628935825046228580696712755533032406260738188980917996773627980942429119173505639499728444924112830657706707141448289959204797972838405563635622227382421313676943536217551332953389574250664687927814927977135587839689743799434335735572250748890043313628381856414329536357294512895837519903511161290862218831680111508559389673427783664852139050978162648525861649946268657174716995794788398537265664651035497724578653730451971291039495977146255651849509221575820132928458576523706959910225770617156420186359186211854134085614701808999027018515431598053537270669798993271248366031312274105994375170563969142079360431135745987668825248542141152609952389483868620043475479552410438917445119746562565315319948386424092037018300057072443820466714100917645499462762953430227899393476837623736336932816907261753919052421828703503488037644141901245719153103197329104556989621567140860274169585190391826108539009668629650813483638178198658840665417137015076611985907609099652800452896291059517992363364772261487234845959324710234696050049682657668532419176241618995964550813481263266350161804759303374879957701315084268636810831383732548860664324913025393857900065141836054437760618191865994949300658348297567641928545006120041286571554149596919300183399914742299864699244526786436783997938215384025795864676187669082233769746291600503132535324019781927250954986721446390107486297279676303232444011376568906673786435003547688303210108763453511548742428593018519962873255819587357207438154314648375155706319249259708885954893225584227135892412616679823958796252030246084489225521421612985795207470981082338597403052881623444075758572856059556367838473735194100280617864089662801886809613536740265869146994870473922237546966799712767384805513370436623494465215913846088930968252157812712614942341144035475070454335471218331108510183526729576425745212854014880205205391577289309221145785855414077432604988642326562407633254455946688980106087693532235001314443828559592582844102504565492253460513942399684220927642225157733837990606318118775190985633348812826896689489530959270983186609593859641556625720934566370205243301661255038293992261297248085593047332932396515229408412819731451763145031281969346541130373951355348126904745290099752344715045888721054100577919917297549570254284361126891637479367396729625552877995070953182834538412760163088831542424430255697917774907256872061970991410148890106132889816963063371522417082899252506064125406831146770296981629407886072403389534786952735638055742207778894615151258979419205058896286847105672723440478486109859713785451397850216016863454377594351068196539900992681589552356904672210658875360305971522941715650372861714365416886012415913691016370217646703940604982387721740303193735570603318140462480160773340124878104683715258873250763589781423445035683139833688862812381697572550187652527021363350550753057093814459564508492332812727319622168312558491583033626939689060214626350135877001907135763512888750816760298725326734665836573818185112317585361876917928103955757543417767209136906613895391482776974958254177593239689862020249152222012540701040262831096799880503973695359761505654576909976185478624794431651977889693947325524346197563095186630915741917460832626376457930881366850437128324771748989741823301302118661003337240236028861414505099290019371058920995818359221739243617031236111915540239317420651869285634394822301592924669917140838420326865642804100698562504762569956546663401074932435961730855856747871050641775063498954235319164517376526092674979126458565859289956196307124181259045644813782192533905285547883009789528479520091402335672875615436069055333557112742388859742251833073880293662653375214674515676935152153099690789022868627941113387239019607066641560499218501292099781835181119406721971520860432134493741993930484406756167707340031335360216728436819010624338447536821308909216054046709962375877796945226172555976015035922465852969634870108916634796952981422067860004072428812044022404544169914897630713581119092853070911371608793772975096753124700709940872059997524171125006987155366129097631420681815709049495179626546985808603035626535853350573645768788698937130430418216916732419184935214103782735330292231415255301544287878985461805959418821990359892431634880824690338123436422585687722914599548525306814486562313658215065794884653480856151230301021617344424153288889733779228268435279520565457760920879806512197756748708584072299731416356787721137135431375044145918722866602175378615601824649285571909492348582623749738834438166395406085188910759655883981727815288139533695142142819115434902673805551823305523219178096915926763117342104245463578949252582946349939534886059138434231828517388387820832620824977288264142211704022587040988440595691495960310270244024777241680824948223382734077711268306465995200019564677313356544667647615162018927228093698663158821450284604910593971696327938658687093555978560911291663542844142796672590561375192715347448291750463496294197171256440461980186128986901591056283593677380906414753871867688369738068502159394118219520663687984167396827287721187658587086717345387596272483573753082134014386769146091455651635800812317268506190858856225555053302434789538445806682190154010226088838011252862205806370343069717070539154517047371378753771280263354017339015934250084702272456204295359899012750344840786851078590986594143603708597616738706241118657112961498322790903725113792097434461376991747947904571971217259659310302766288710147742096941337257564569407516073733288523479351574633655313486036519126707118030013664132830570274207636738368834521881003719185385522812024065432443805377276126788451241385373034224593057378094527422167560434573351348943803277742314950318903324780098624924718148892449667665805975693385083023100015167918736010327121966094318560338277916689857092901459075788330711768203793070319891750058894236461797780226458015235606004090429912642734206484940293307580687387319429274094010347952044029902074338796744603789858372778544752246965722436998946763448147061091319496818233832177051416178177323786992156163018972064748509725433084112694820028045583039753458215408374076550824279169654164061021877457469445512294150327788602237452389004238972047409144954800885292112215881784938419603208108100084916565351716281855652976579603340719650945817157690212783004537162928844683201434423303883097385569233839409382359528093057322362862148397989981374398650822987352082134975118857844518456631494475277393613960225061155585526986580715048165782194917202031672489048193106104187487503970076388988782857247084473546599889883082883702432362186844014734149904214617114572191263503373661056392298448821707521935198098782736110241306425921636942694454821028888340425207176655773501670212454905624034910603143242518654596181040882599431684642442193106536570670088388203973522221778923995633999707099812984822203105254121186375499800315340078391515065856631142551075375873059762031321131401783113289903923040081284036879341442369475057329804498433115543959365221864230095524331563936807174567274403109495607283838303760471464392361279725198466158541225724860699606913576631579788941723856109412769194445465386950694012156118346101260461872750714031826363806040622384089039650406608049881920011015040626318295603058122755814510787483891962409980793821739252873312581113109071363858096646018970255044793496805086352006494769714420807991341110697182557622078225816714603748003043918841630700421991000063696659153748013646816974175914690040402249685731299404369501778133333741802685416207422252220205067446770032553480422276255158382737854799799462683674230371613879112950863048423131122101662333248103127794177177215867841182833306793484110458475329840283456320906584788270373945459650308729319644287292301410199415003645008303174220802045144069883830545505704969254878705648766252181347290294908156444487272160675633824532591230549336484459804229301017101558057308611084692312844329141803283028394927083042900659550208671352911223392529702520703101963379200549038744341148025237071554707581506691044367938018523608844249563765812859132748608377117506415454791986953619247612155573502388965019342783488776057767888099662807618554676006045637320700771404896496899935521932896254622483469212786857447442650865812717034517521560961568821288061606860894218014348489367436430109176839834246058239753894818653913464702827691307784201102312886719801700935758916381014336139796284913949542841763724035120841250061942721090238813752474703516443297394310923444499254130998655945774235726744899767742386665042770143597701867573684490311586795255871328079385679767216529571636716316939173402485996323853583213210242408848350196888277462250509804684470453919314630396423205063448982341265239513780212020735743997508070095881215420934807137448698832205208271689440790814910134346271184912286623249142895034934769965582676875508807573516138872232396466799279126231548800750250211040368788534736903389929549042279407262043711562806277733567522478223727316342407510498484246950511186982209190983403476590978763973826670036373587488959695265831819287974072831714478118931454634781539854441272699490151844514495597793182120303906896873358509291474843002746266026109423082363335841740049200594715120219709000973758847511092511756205858314430811468051243600132964807927925272980046910383690250596505136130292619604797339727123807599451111277014587515847569529620599415435761596626856267019243239470038287124374054438730159040114453457837468816225837140672919711913405126723674857947258084810325631578711122934541641109411811291776753663967333591204836616065783307280158468768416175152895069971743624059916881236283243428507626462152009268917987382737461173895933815938885482698261385529350989118065164048236587110845127477218737107009422319503528573698380580217088052575473207781713729130234705921600383304573988113457369541088023588425232872539550457849523835284969147275060731660419935750613390804528723990585207105687089742854531266922695752699581061874664900133868133731379400202208697079517568388867018095429650608277980429622422647809539062997936140542800809982879280283229222423101471704980797143590366675765577920093230177915895084208644614337360819283957621026101284359415308353982584002514038982388363078258402557923748854537741554748152812293497772571333265241558375834709229725712029191010745544921478085551549477465839446421964335174302575899742635459861135533313498977595049280934213064220346025127366052244016744848045851939438811281148353262000213366605033149385267305024979078121813040005529215745873601031084868879712453883238920218365590741417957485552377356749564023249304233319333203392390581848397776398871903286931669104631636639832393992656407994585918191248138577287615194800807555352610504832621871595092351215317829772889959610310836817845047149081618439473935206394821061962761233213289133536133249421066695814768293483183108203745864415087458122934306518364621949793850727651967734976487033981377006023083810635136639530057941580963477638160675126088306259085315024321727930509038740609332541895629196032606258312309152283024910419815822514670074213137248813326010187005521492116947950444696915080715901763038993432706660300847433226325756199260770899149118124326626286438210095456699119184642668538837263003140929426367026031046789058038509554492552226281594580407068102385011794274034486392503654097055717481733866604068848550662294418808787838092948952685225039710992913368595977803917221412291546562292280179603249938005638279936403298735941423226519127185051304099087184393518160273044297129266440369228165573186196621444513953066627074488531147886427041103029411322590481304971740831428965504159116568100615780981160734834158890290372107907871507588894787340385943413068117422099126970959533792101119964899544453895176001809992131483467036952901249390928913212970419499674406646413203770791027883351890775475453499932002902329178618197164736047766999052724902181195626379607933783539816365782212449212684150570203835509498584914866599372429944131184968867778980602368281511347351487009468130301992962802520464959762289015298985115583974601600928885747639958721993852648626417363506278012481514015441124890541892054088886678704864743594221814239734754891545852270286654156540031838981769073901783437727848894232899559428623189837470054141644890455052685191571252797262475621373245525697728632680867168129216907758026502433709619944507790094695579523663305566661678650821501676510194033914536026733810101986983778163520552613941610616986109902896475764769526738031435193602473662007229617300587524936472566171075455030886952893645362181717090191560272332524549724378934743031578482683975517814328703905764066293411026505396534101101730931946871801484453091174888157576108275765719631702663311713426989459753353613078237706932821797963159821034369669912291895175300905469525946565433913561190240223479080647677949191397183749272810070219406848417282365453552356738924148597004102314898796796677669101264818686914411948308195556923197777469206544548671110056365853857322184272025583408352523745825710326832599497057119916193397320189533273754251784094042657639145722656299578991943119326896070381613045040587197916142202795274911765394926075136504903960841637944850138246591969440489177329043064588102416335432609223788079509248498617005986402872952509272472273661038966170020980990476735466309245488288379220317524861200017003031236122839960198050399629970381993222409611889566368624299705586809282058511353948783176861312399529941693593181312666693227097315462033198300663952576140476734693299318494482275408394067981480337156666790073816978118017921060240021783531230752095495367590711394349072612671810601130299082413423690673974823458310973140730374561559928695194712609664263752204527046744409115399198377984887892911072077937481500067372515427295065725242258124425626373620501434026631470448478582839023417687246316435150704241729885460397625950080715666639012865769732302394425238298550934746488519023451066426877391086648618360447706308412766909225358735780681660012044709207936536104000832058110465918987065753168725442760502987319783710770076724796588096414816752429051962068975075527386171741469879310467273179299540230437768094662913556102895675380840799170854511222416667270364099070518312077479330348581067462933748285005270212073349088614347681386897614394172479961913766175095617058843077327304558848709224440127130476265741402842491249555414342524858901116607339975774099459030841608022451267474082769228070404193297775142252886782379314552078400149467178673794463990110876313516453403745479764736272909848061307830801046704177930106690479132764112048867137348289818111487949817210748003111530611920245528222349192093724641344474814064738817271294569357817490210889452912481702258618850585342498639142635472382206152210603753177413182277027217404551981347152268997111446405660754563741846593142158102836865411484279129769826642417702088750349469075638321281423146377809726890544999488715940981635237292960404260708905903327052259601841813717687002102090500602622236533460808559430749641118394482616521950673316674144149523751492389109573480902946457993457079478991872156837524047722040760743268340864044550473770309895861190559139508388475343845499306265100763875676320097615737335058932349688259563368396696422726641012020944576762230420882576742803635322282556428015515781134928942255163481099860721865842358283428375975182501853436395267764858838146678696629459634497445403909241703494595684183531985274977646863990387394855804134932294169172591675344677130693420951613939283956407225195255855693819941733845849525519666335934625719921929576066006344337518246401162626102647770272048836774384953160984744043333387151318499494701475400553445469692789094754868986962498736166360767041788563683004138892329611999660812370920959849492419789378082908087039540306861617664134168887432508194270324548356518576961197014444053119715176841573373272410122605225260682677644419600137273460297590193911156069820361747390477612104524182422468257049905866678224829137628157377424984115297712668136845790231876089427321435608981243123095639758611805557972437735803430630991881417079273903606707740029071204924340394299746020925681749088870856389876105704505493411239397286707246412200072654985958172569910828832712007373734449334343481664122183404506253022134696637706006993728251278298359193935515966187483629121927774634548308830734176305213708590445451496607141555273794237400837731558105683366777465249890864124595993517119271501984253391300655053898443846753085819255935767129460069818790022512498608881439394413218652808031891182389080010333631564117725516799806424789372318652578379000381822304083307215176383124022834022205095213114637722487115238667949278852916474675836721860878649497331251039186235510424295355346618316763326506843834169043671523682429076275016490708771806592448236735162491097928682520789231101390993263052028909305020809576897339337701885831647388935736842080266095285327432003186982316832928136529978057973298268185875472565865943854664995097816739538543732854986725136629236370661942882094375772449426578889332622630844227514795581414877646111488588782926010036621445969887249210368595803516109487995073629645744916192989234385048142603027315116609054162447806731807687817840931217444992735023060422222021868331622275161378293840721432396004261323422068610857002296116014008309442811745279234903678955666937037540477948883198962114468861669752760747812365851178685661681522708592661493771188945582690304045421701850871887343785706561175886877936378992913471776610832379194909112831203973138848275939649834516896733499601813028007330189182636544837580061855132202852116979597729450056230218821912028436456006359171954648991008265859180164580890299531806320448750020218859636787320945681353096752168176263925171405406117581970668253307576687818895043569697169975281534411346127130555344431046170666359588764134974231486500403598237595659696080371925286408957728020844659645506464812143031366575433869077017950544803775210820762832496305309244280992953662532641900485551699110640991549594710375754300142563150686742309257449444718407901206208657516002182728476862312970984558087306248323147650511280759930561241800551496681104221144706623813125565172152170666206263837507963103850167096348583677223574115162152099773433929335075953378765636299844353712353297631608428169494412774275573734066611558152189968609383167514058537452196689372338596858348529422380858932927145573037565461572965001714180513376101362792597656704972044510286453274687151909894228597730253501247849409756938183407154944428612789478166686589707434583085406241273252028614047347642605219547732860993705532323806466737078368969572167007440907690744888948217137908354563421894194400355949542474065674296985332288945525816721682186295531662987199101527844499259899203437820145807605046974727810248038297979913440338683434325505431688772622477452334688235808207288850044806053039268001231292837594630292490449034635564128555130062986871431876081128263374290361849576044105539436195194442683141935225879836179572919429229213822097803701291436674903838044557177377270231951476002890361826628049623380071742683597693176149943872098649036140544136842017525933588599094516091932479657877204243348151528364066110125099061750284811999373467162726098002189571656129496591516188306482613282086024687591158287245266387854880468081699575463612011017691749135312177108126738629951392495840416574471999458533145258602890620605668599972706192068836768195411823990485382208271567976426917830634697725568796382696826006000026994085896933760639720995170440797708096750833674966162345824919614702572844529430690550697052990148599349117919853182576876989339574863247261733580796329460712264964793753387750517601053197668363277630951319783170611309611081254211033491899264609721029996023223126944858734463926600806090969095850745666846510990547540586719961087742907136492528151332241827857269147402166027079818999383114706760870204531617165061047281676894138732467416321405662669325787996440093994041779144715277463674789250348022779786491896051935404955767016501453550869815543511451822206891644545852922570454326763955245596152096823823113463940861897123964774604665908531476555296024387606836432237981748759588112654199874158439393700724311199879242969477883111089412791088776300703076747087661553954428234545563392946674185357407720362723899258180360761841017136700159864392114900253841042281699913645954145119551132011025811297298650423052428466826550495697207294688868956433676182107112073322174688694534235295902393769700118951306001011016404901078024396402884460331930503084092596528831148693032169868554591551571024003826884577292538588820987417437682020478065159709162073545075690717805629872904174710188218488757151377872852705191496834165357800551795541600093525616423767610660268461010787283085957731067765890134452499743722298488295986524343221714204896006249977207994228029437179142784029156955867300309994430606506624143381228052843677516055783414691598196695754107674523008395424577758807731023829132859903948902644383436054123099810019974875441957174033313142867033299882054336901301639988177455307973376231745158778624604510586828277529242670601466980501709256185365872282500038406308013231408894912530289842045731876743993609525553266832150397979362701064056276675313173433997335163302748914932718278413360931357598514890654884208076697867237290235928184220346080592094549855420750221481261539100069967979483863990453184384852041986312403914756142809322330954726801917658951067499036983533607063533360320984430941206749632896007883172891639188153411600428678419955540543304670653632933382189125369980438561053727331704874304614144636989131335006119905428798592211608685589009424246101702264186655149004223279065424779505413841392724936170289371345343102663007024478333097935922581914248094732385156141027971653388449573551269662575781639003593830962961505155036288895574692944615519899917756946168062449185511415147350877514473836027175692833481246660898284559742964137215765369790510401326625088524793780054309522868930542220834328696326559497532944970768135253842519897835183304097420776424471259115696737310621462976510555497168876276617887676398615266969823057223849543523379803904558148775817729632149315873877039787863791982323810567528203174579136032740717602793878776748075357000781350521859317407689367527519048837217233960161639986055603271679849004336893184288149845758834527170379331496526837500460601828606295822958710401926100226066686191207672105242862116900669779355297126209748983964616933687109972915912893167426250444019359336371584012412971730100071508343452136756605059930972152827221732819954954576173794849089835951320427214661739993140849398991637451819216858424554879034074625605055654881637131895586314088728263702507463886597566563129030029065871976029877751855990069997487511110982050362526098127930983516448458825990625891726588312887497974068928812256519416553801977732963462136723525576417563994921464340047645961020939087278075282369422829936932056370067921523107669124716487856721587482115888796716567104408289164973882469205435841407411639911522203507054060306623227567405691638749330952467447048934115586505596080255631867444013369829976699546345044325339663786202376314573101070333703918595040444921220219445889685277083889605623872351504769902713248791975055985273020824531080466695811036560807334601931550606760444193436245556733685659590211974167879509020619514418484000655128777522908068400778758421673757283816650822166138008471942891059234039939054939024064854427079209177960384215712214862509776213038856402107978744005785682250791007567740777772937487379983564910661860132928772363913554942626630340322043367306883190114276806416470183861068384089403068484051645761131514010967183286549358401482476527088444094210275059279767203613756255428056771693013645121466617764106514789992766710028772507373682287881543014070168641190973488486915448121066733522080852169816771169395540844686249098937427164183543229814804315394291725960337120723525838891477693530996687574592809884151680090484952153379228315308636833462180383644172618387654366950918959709728890360878289312065132761548987469255163343060074948570317874379823447088631862997922457046683007795400675204135446318114245178662489933693451406201672449152987716236316127736366329132585083965240783615177622789429722993067295011747090035856297168878746216627720617940557027072828372391881368859190547636880429779901594498137598971116801561446051410152489583524797487889369663129518196504421018979111257376643745596176789587848700912931221119391361589277357095329202953284125421298345739167761401746576868139470577416876853520435310881814559913763896639598380407436883952766702829819465164782884065412480041992959810933227026811195621095082609451676173180052829575656134989778813399241107964477352632476069524448406159413368022040533491270756918148727302936583548873823726981184697726483866134295979347576168820390484343744484549176049855322175719448721940644245254864018692386852368101973666365333698913157240187940904129459722025748351724654369701477926372582329483042606176785563100694738383686682651775788661333276248695527437439206661891608821583875152068269805387121430314496715825528817506931722673767155610703499796287849167976274218197723214615789791524932983878405085065313827626539055801289196577079049202745170970872067925227094535542783856492075964729621424892769923342818694792173821923770205528214492267185758862374066093435750201175962215024151650389835127476976005094432263837347560435167446315426295921405101618721376371233343954126418600764725726697921620079773243268645502377167964284071792644947710334157764476104708867779562340766493927897497900656265161125132261557678379808553026880743264634827037189407637837653940186205109304172846490980454520710096784153277504378662949155672793485334543842127732620181680301525543278845146209208054997991436298357465598443799916156905920252792530824707917186110009074570178449833385559377070538847550988230912395786487265094092932140627709347607484447194530421629507143829870319345814843969891633465538387708999348303649190182000088848790339807537334352649365216832514197518278936799183806885372424258245960784185331766037318834412564711617506289028924437101759306680171150288077261795181705787014212398075247893275330072170926156741630061196028300517479489688601854414119394089800958318947385256279478809717625077545208780866906160611991045102021464591656399188518930601244754931782507684635052449708545253091328731269653581089356545997119607945547302450213652000158871889624675622262848063624035562904324614982936696653863999133649529196698766010313615459658781604611194729431496054881279432787799970669815145678476292409472584244459441773081668910066340166644321255375108910397099920416508260629766864194879117336668915422731291890777509989760998225956780011550681302028390867700570959534626674470617865529304739403159258519267241352534466290891027202943672663539195546736515388470064409377285462899213859960941268393770476834047902893049373162936694636881303632699053163557924011264869217954498338877847689548920852821203479177397271279107830255250214390971184560577759630357380898654570473351210420338870348114728024499808308694193048383985815244854855188667828243751767495966311244693704639764387698806753349702724544720567514764478016160137099388255274561972145883087619766081009049085358316753611318073898940045116113828092979572069901670636639138167565260757747561352082501955002843480122002391026222715254790568511362324979364355300116690934678340565064034364148137638306529012636638228572065806108169268641605334859886197399166415246815177265327974805783964447288648181126395511103044061271981543099763007261558686748499966919196046159269940787269105673923469673601070761289174304025981195741772534499778006627405011665077385794842802022342854853481767328121453453557114593099049366258336248790028345991847960064347514141235881449652203949261401671986099524900116856945672921482308446122402811872618004273177459791296779486702674242856794946006714418798897526795467193796350616319777415311497348042766010373882315352442815872851473745035605071915332827073553639756823405449009930171373457936574611492188642024535200308656912052615412763125045919297353468155482290961543763433648266235540162255976385343323864869111350156001649184722469744661975400517755296624033359363829779950619642659210004413727427809887801709495694241467492512490044159185959144499571377157950570646758331988818707062387383925958509375917367849994368965998311986342328465638790347918360551280065803606515096579724133203292751320841769711422781987937471129383163156998235250360433833176870188892994828261670604858662323822582293764394811048203368884453436786467785486529688038863767408885180587479215722233712017821278931782764490197660813356773537298154388939301519024882575625162911023820123855200145172339584240450638499541802686027874917491086296412956276896215733640480370857442078389247889051186590075309506744023398833975749748060639337093187123868555010562241022932642339696383272015220262815596787167689837260709013378865262957342348817962589708405573041516176821003503859662866727657498556246965492217528796992106627084848662252528288272542422130999498139960668595537913555348222866514541774586411056393389067889861344137901188975210266669806887278559498905292041725934187914282646311997161324667693352319479639356632747158846001970181636704318636285729942617135165099945516597606601461205353669315071934402846543786083979305191353312065318517790222199846487222090163624612274297497342950824011270238351431417657551071416041099641681771767762048897563594380074501278925269579097285748529084098343627784458542950351262862514409261824554746809402537247838181433163243357972714801014087698974564462664465776503032331589468525593841558677198523355610885334619583136759869445802625623109629507280938766987043973277398696039924382216311997905492943037919395952420339886597659611989607813260219141783582868597779585188591561375314854571384722068710934748095340654318048108798840957870479362902999363080864065553679119435947292176183813011381320401621477871936296499318426478895398249072119910721382982679206072425988239015898740845553397963683809996727787039552930297814124448637356659760807521880905724165829013605056777438965100901426782976361276192788281232164268867736018315423060265607744940315120079278453240427066786158596415918081224846318638383778640672708452793663224371627926986192541843177387704467989040392889072523760301190782750102852551987350664457094773648305442772745221740345532735706006608569440387065866806913472302210685286315881515350405546405421503914350429396232559150087254129452516318925458521438444170999693268684410121667792991753060998087123101761947120890091717809868708822300252210383057369501665788703282926899272506753686125996866526743413060781905741257766405967087951736917564890602642687463699538006596720361111347693049501718676664751142850721440722131360630521565451880243331431276925363303346566859057054248613752772767361667119241511474521521431685906758909455112151319544596856040475434164970037983231075662449332384707723031017448207264431156792863516862451199987919325553958754522270659689805407528192312787969836963103940776535309458884879133384400472742375912124638536074509713417559932591398267775086588872172557854758774068078031650516085775202290942400305826175941307238804677499215371777251618893062941761319919947767954597433652834774500720015468946411838218081122955840751834622575773622120259587179048576240388878368234236659275351441588028322114506452338288849876009345289794631189318798112507559981405851246471252673777820444960170613764066327852561438503393537843250259610347921718063846650649542063445471696253549604651080597664091911258280519831806575204341341124998832672040190938120362882580587418018522913628140731380321303664342723004704271372853496174220469147202433142172134847107874871762507716319102175658915385458168883819426214960854780784380686673893239618323219593230304073328831683185769929528745359119694412761368712873091426352814537331746324099526652578187454075549143068467967161650297074844539880342172170336543822204022579550712363038097467732696731930076485539034958781386784796967839002509492545960501595312099566967887658123948822605243344502187910109952665890206884641821980396897839198245913131537516334817292067922725807519417748107138406914278540067131812594407624428710074943156220359288543686942586541445736349560249524738665101324999603191485170462329930296638514752717414773914342634641504703625281872199357580522246265365356876932877937834204268145411935640388936188831453618340192264434260873037018987013593561609533290790002751867614234807430694082841573518738097178261829579647020824462152732228954136375073507378465235069680998937819165734387618074237224128824715844207608387915419595442279103966602520139018124997456665832450828156639746519049907190084345187410767024667222511231721832660821864718217102147890937593882289939399936968734668258443721139199494648708854702660107356146398077490957322266561233732239306152923696806129940511743457206040644166038672572819699329624434911669049215307269045113186106866771097574357702046040844224993982847344731759120123226169078857491117164880581273248360949140764442311582786731362353535115987596473710844518176410543482354103648765037323581716413321267607696232770856401942997370127060225955920078709807051284677903195463291223213333684079743326753319186830916990715015686766437776331625928850018512332200411899305280315886430790520884872397596763157068865616591770934421948494371312651903503571602501738826283465267250420478083693031841991847775500214371049969925559555007693282584552271897125101913086022675764605278639939310343160911395597597999237306088554092729499886959909421906555246003965593283629322894864838965656612337582613886892115351115786389158284908695937786096397520323046735142012127261428620479168105367159349387188646009246785247406097642626558981450846396337031400793259661141939906851139391276289459281826125454690322981887044568809801447907140338427152285272187038010167996843559621104095430005990558372842852548741741678691380289346534534365112900310889696026819908590624212178099677678352967137615384043038624847457268593342042975252730234222300748126817850137247829656122533420578696780505224295984592467161818538621432043831775483985235509994172895672552033708105622414725383800674743700971089703910601212775858305256015301132153303719957460208002230076070982966482156256433830132550171662732403468477431834743750462466782036399532373162723075072763458599198621614617556058316981626812184162691154010591420380091300678336171572171513339919232069161777978412259311371578395021683023719943803779116975946254136669999900637305032107718292599521869246306922996614169229466622827048400455752285340299620602519883976972337361284447701381667849307072884393587554026799414730805117856927793680423808075331483877428001509768086751715922864450757914228355172540286164575426645503886237888831637257289887767079836663232798479691518613430898991786204763297885619955278124599499704410074952033597033312152272850718573397649005990706843454251959979174429334523200323030378177437781183714523268233567465147918824779809890746640600451711995406025904113894583074359089393795457696962692724784601121607279640869715058131073401560012705696729023283734638785172688630663052636161618122543955334279152973691009310409166474333873309628099225593874436599710569580207036315170751907534728215694638271015727713723700121996237364311086377776511170023102929606518408459801321075778374468228150771907643330769020057787124909139712386400088406513710058363606763570727807120736821844445603445533209472775428394541023540653506041548441542634459349941128452892152666277967158171291470614199649736889196815757916383408631474718439896983366605686761656236012515999984426650216402116514277921433514038130463512129873783157124863136672906592144548073247218490983571429606586966834816190378888200952423534113208232325884721687110230076864700793822124560090758851510049040430149331344728639355284412364533202244512839063757251723236295610537824363245367517536547247879203955054860663471438186770533091473870775628794881271598871004673960130384620721408113835984966526458784888339809437942789147411179736334808580375838853241063439518315878560330624084668593695650235838803065157486043222807246824453124615814235760067659561740885592786120259213517225367770459365886679379921022156208601109749830649331243251472662406834567662672262386852705336584295007406230171123001481946218559174439003570612528585508594045968791915250181637615232059879398558454277883164308463322102403097899997767067874918995243396650781411328253760053326166791359574817702740585425168346746219480535854672685684566211413096072749899547851838690046641707940048293280048649474940279671878480463991727242486041007533424422542296413876716667618642034500054374213958158019487122935005399980915164894279133243273395040708935479218300339177724706847663067550006064567971146568962867372311920953361493165897149900218772067256504386511334234715388198247559395973925336632849756140759990187686709602654060861846537744196166952967197174457301439046673294708161308876158025406483282060687092346178284045685998508022316123140843144383946859668184630976122220311801562245592640751596633095620755084803294749440227366159739415655553592011951073227403522683549849282633386262657252056280501354956440326361765468828319283552571074471183518728794878675264924827666066217691391949500393958334799744218772329663730078477469673718102831773836261461212937472094310381089812981931148207050235289607568774316414364137135548946562404142931588833989161295163805982033044972891089789180011064909522404447070744659103874301349274846011544737035324159874985431290755870937672651971480601407056637808219480892600457654904799782122728879053322496709616852824940441480179802708110668080023627773322785873924182828134452726865812724309518077763864950357305474575611395539240421373540223940078677075698446300172133511574497416163765807293061313090569023288080684870345883441249427619655921843562931470770851979870304018223934545619763985774696414364817496469554002590355003651441287563029679840973806325919809773880798788468150938018011356111376939354326014174557341863352673988569840493979180344987405606688433280936139632057659049119934959663204322623734945358836352209923499105205236116302878134538538070029181488273828889217401607563444570837811022948892648264422801278847186781397622249188291605781846047108346269427334125011409526220032782309424648739401649860256013367119395574359657975645409622714533820544223533212902577811127553624264390502922321519781766877379094800352356189957448764173064155356698667130291068796040686874046280536655646281727952767915540920885288825633481330662895499022872835349816314679514843431984239397154020824788608391510724432347675823441364059498697091266211066461430156203593754111699964528755897896720269400443466187279142679414342617315109108153315960792768480554755885979331759982549454713268850836224476245854466052013024315630807190191674188111010144355836733833556880164119989014821456355515538791015110673018600179044219907626045409553110020755999724124872175888579990011806036795885352683084701059502267641128143720248154853715983462369700344650896627782490570070014427057850025238223830843700762142892405493388139397801184163283085120717491986308793064086272923232699105582667061286187781241683809482613884373167372154784611888426423175142202065576445783225818535959720163173613323352704793256207823907263574735426450890100645611499708842807731950117548090393845532028069393477241893854699076783417289381990868980683570821494225251967550151467809464531279432123354649753350983120829136638952641178391988805962410028298433322967289276798515192785026248575014068241436057743818842596326567904462052195605319980651978810642746478845798209641311789404948054685444552356781113466641250430256445136830937384592463069994062757623055650616850208406296218524947990079807513088376511158312907083363669932669920589348615127867114029760291890155240549026398220432884981571827796807378476974784410851472493336463460499241658849173631231343550411140798207851121503628263792056314658327492522101336254143928803576560202850906148603511067607774760886881410188629037818287240434438234184824654718524855425753847505589397686321073297451829853661144525460828337114069462512347841998911481904105974482313987588723784834330881842806546792371759881664711610535179366422942209015817505044342499914463088830998024338331945226578905917211257659650163272189844063060019756939252091740451088928829298125981034734601768517964570084039145609868888760292716984010916959521647699787377165767713144184731580092249525916123402411434470984779824668897376109071197291078815904225080701165277247027676135405471134005486157366048839794265920898715053123951834439121900922529053023977220968075597110186829083954560172459907062061047066052882391500034703238772241983857247212341561600891923012746863948096527133992271473159590353665513434272576994291486011933109636535537479551671991064339003837425035967514218006160943979842211839810844894963510054073622760129602721910455683166697703456209519887556761591953105672416792467559932748413606476174630958690205986411720319645869877495904938535274652452751152320625149645740599928226117507541881916769753997224575925266743147479625617546104285137572617587856010980489977438841714098321431174088665734230371488666046585126048908013826077246097081975573439101215890676313994519585608106067054004990095732162385846682088789889903919712409290663442557423833992755533832432107730312618223726909596791610315847987947467280170353406716910857588733977910026449497230845361056195171997477597196996163751638457955467925579470597702791598030768748352661827606379067809627244154190968320216991299058343681930325044709023485429334074765021670633711581992045623273352906804447290009686671335941551919986985670019655656595610655987025266639915387994611384235368286680775873097886345908305455069722386684132073870469492550508156042385948833616920255261175623771155266724021327349978490230237028583241753670857964801041453627399371598911380774881640131321760907966447233517346321850151631017173007396371593949527056271978015551256223354729132242301928073669729050023655294319814546131882039519742293514351103111268189270662727766299092233065560841395258888367187149266037382780891224865077684470068426514666710062250275380465362917324577645695763683497133557400884196982006857599750697482593832561769100685986313343704112682506069076087808762672888369448673129933568279580613742295866335480100791456849364165020601896450439477736503588833505906462460341684630036304738740161230478999301036139881327681392750988927423350092606610908828898538600461342584549852771382719441674976727629826484302349847974675037039624825230029023747284723304879004525250939584367913069846595244436790007550593171153184607206361129324379846278140477100478243247288694630861446669641295756191034302914479462064260999247978576630147688804070450249739377168486238850095837723077257783257299367466636726139178104317410477890766864450137992559902011383393644156752621598437192247969043951896935152733285048025443610407152663673414346460383898508043177376357395519971711505646535604783565630693248015501473445976962269080544217246897038023107452269084768644586853991223346934881546557947366999641929650959633482371007305546865407140202484708375595280949901053463631984947040273523821211500010873601475781597296787625600039303699332038532693062187259576621480498023464831639279034831172374957211549021036022156864072640893781987476986894359949608567125416212556607317609081216667951202354385507903580209368833003938179312963373298532300635551044574060606309922437738395058770398010115303525240222685561006525801501922209483784495709127403128779714343930514707410876816024643998579750205162547723825345937610570138487764895397745725280511781568710139833691704458124936445628226436283208076260943977884226863446145191429283227929896931545495921965518319661853499520665818292654255383102911749941680762294389467311228842857422194038167684651343072047988164436726193061250683185559966721733538058311388545056186590354814402042676139556774803183261820801473514591538839117723038653390054169818849521010787357365569843668518185994879933696310126898996354433041190982275717765566288113482868177552527646674213696309553452518907976982654588984549999637086944256931507952388215279467219830707566422323452224953102100901780787223683619259055249166097434723608558719583616653763694279267100108848817253504759060504497177469023018577926730420337560229734307006694221050821372221453775353366072310413477532894337010824798872658008386359902360604255057749085666140905892605469951626129833477516245418461812511479961415704011830125566165443791600220377747009197548922561711585603907029696778511310995339682952498921455662964681126596704654851932494137311152342689428325092761819320108139269917676854410790354826803019161135164248966738095209637726200044593931278598293877248146621716333505700794116977507187243480432774382098120065728275991329170323383267134072922166747454485845841533060525746590536185632921083745034511868093201580250291192837600530218522138649971546432099817182892528802854771347322080251427100933169055223226463626027125331628470713257168783132158817527707288407209654071262896100098703617183756575733842783603327290944223931435816290333742947108857568417070401021646859874207401902651048106939501998313508341466951492182298717885154268255804370356624123589650688883535218627091440003594832973493314637892779673245726682804695083218845269041130093721300570796605566491106946332857856138595789079523275835368698923414123897509292161634812219253772183586890253471965292344866463388394728661457183431429060773430517043100460379534614378412780742942941703992711710228101682654745733588363328170515365270937998187430314484219893312928418152411389473168265423752647516243441864165218769149414609290094487719553069373517316472395012271275675891111798139393880383412263065046558779977521670400543016101228865569792423785991272691561235125029014293437412958009537026494073791773658748432165531796724464784181915967428319466265521758104900772194440862288358638806819622120425460310887184498285544587437306718671626315409563520525855073857212601486862044105193167721199046198617242732966743757769749968309036042971874025421374952915362234624087563553967574799884585904425913856542751325458851000201066136918449968526293052264306742374620383305124298076726408367008343909281130563141737982629594981066722300102316047527576317366512944000162102725725688759203614173088945919305373110854977881815502166917131299213145818347059453563562818143489774876630620793976491777562071756961713104178560224475072990214933037885413401620328973256333231555047115045532826531351192228860322022662030775478759543903349190584950897305719514994598089922291602755042575097099355917659386984535798621072794002062086576475875379132076601783853543685306693628429955114738899338762133855447682547883605260867019967037870039348414026688878827037371605919675745964979890935025958200512868954581463798620534502985245365456253419554865819291245199051267243282224720122473149689538463830811680940780701798662799320836217243024146407555418351033414077642849526105842795520929308348515476877652562806132323515088862578798122255666294948665806439934129936052134567021620787683482680396378865266247069953474062942639971626988480389013455938248801809370063573153407050337839588835873954959235472883564796069741856073789355309200720509604392269558117002632332745145052999495667431331162221579745469590283928803951224755721819680941293121737195142117539329835420236626830317415517200141309623418496879334993972715524820863063076191308286505711290261241768301393017027212277137365263185973510593403963602576152406631780246116964283019202651402689532889983077314900021746258604628898371338179544417259257701359014580588844315121242477958605890677547247800606246172477620063941289198107614469766422697238731431308941566744555780281578194939528093392613643164984001989485182534352169776113259708297989046087427084677766799736463038488329332481943516096338936576865022198811505492901271645986174640581581562345645706136623697124100946132108923887580357043236166322125501867963455298647640180328410589753729518562407344604313497175517307435312492306422686346785834816892924072589982032143380172525686281029581183712810147561782584018713639624774049911088862120168152659193422826276602981264286961404947291493613101581674632653543567722359862570244721821549612409676403497198935989591261766127405633508384222687412795858096849194903018333851603459628495378665619371282949552030023507733413073940385920868701895016236061351086279381548029236187601782409160859453410896991223196319506323506418849731068742660495218295014023182106228729050069329570499878858205291582316989589045500125910796799498974695993400172453626406139368238308013851035573940030448576627936120343940855262708741558095172526199265522579653192254956707964724351213542755296257304204899802267564407878140066831777456059581069302212208610400922126418772985492617779026789331432642816123153257767403995305944536638616620961219888326897334302520003448477860218619592701924213298124384335590800697722355442622666190564260542131480850339284471414079401093180607626134355692796000186210738725424242484836091773690697529084919318687203301076764481878730410794959096546442368140924509148028961180284773972322644166670923158924674142178203927773145348976224019472592580742780747505900036139892612352517002617145001064687946454271626653656322226542967048525911701622481950684295180450380265817883339545141651424623772990719885297730744259045449499562100868082406184690405701137314049742341650917000269453681109268050859167768650000013809620213154234818352584814449787267445378971969889638337567287937331714702499024601761171740593093263604383609129332393492346935481373117296919880333201129342852928169511578950982929575038952560846877079806728851900162342033125499357836193741892382429545280728317276290829786104747951331887207318919459195462456664029018462590572531369570784469249814698836138485229189448809637276831639741333707698159447184184648921967324593368829071911196176792131722033768675259942730075787865946502620291385932976340188317963607092831053655953878320269125859132392942406381864919282794443843232074844438121010856291292370113603604815803465868555261316924822348532858873458750228984336687664643581595105203947655937978852622222863128823895632352224719584855852943660137330879935250583370846039797670460263757177633336435578121653127764655497548077231494219158736914311966459245839116504848273774319059632337017720156717916639083924831379764092861458733609318853856799514034717707059249451939514659666782262385506785582834684706091005449005666910027819810364966249550423301473200081849875322746650670926698217444068388231927495988042236990934743990887145068803523969713726524587447457335456039565129645394710704187535399705737852616966739027225579717476865763797425454528094611080949396781458389966127742524341258823646968807057169586673112825254725868434565696288258452484242914991366468561377108753977577105374082300924147492785115227747564023430586050980692407027487950423769394457188231816113399731839379667761744753852023648125191873994815362425097350797224174527679348829789276589004706104813128697468874234855625369168947560218126719073116843423243968834798147789308360807621187737664817256919241150285618537223413707217888844125840177499613892457389193506627163478898876363321185232183603244420605468421257896628561842196799929701768411342086364572101987431795270336406537178615643557307155870049182806279366648260554842635618329547518052698195357552339109714427531051531889870223834019310988647597943829544121108891221750920812444353331628847786913102697513364904481644310404148198123938523189645502094799099094417315166982921500492106184722071265784555322090082504018820907350271915076563732517982993678447334645745722122709517819282958285340369856914283994248924332319795972527932253594242064930882220667775784286659458128542664591241148014382388789727573125143176066633631575751299537522655819368857563114575592708036606748462252938382666942176656391171675797961358754519551349874916293092118008538219835581251038688882479094439783174319787328859570961655686053144966092297284969370016633101735496896426221312277220469211775970057332261417734301991921639226202076843968227699777954757651726263370792875608587625604671149981717654060055784587653422102428802258753577907082785198801783044020589407174226783296509768688151946040535465434372568983451743302618256667204425690306980607218081192396310927138610335047798915027232566377756067752091602046745630674745446133483185501495416746737950540731205971992107954557910640172743858814848055014011333405360324899219288144533422217626939559583337529338719566039875228911582231318832314528522367225460428865046737948599366078965048258706291249363683582805173047194467971537849062107513313914777445563311816409614800581973215712823772102745516085515641028113914870919711075867271193898893951666224342378419060916409554222777449283131852091809266882199795475991616157864408596104821708504495911641836450560633022435627329567797087256306277885759008211929679829771687804007728978377073808629111322373398661487250960271684172610419028009515124217400319766973953846665978997880231743052229136191893253502941696654912650352763393041825752342245662263319362652742213916856694754561743046596143926884254625678858565149363668301141599355057981118197557391894362108190401175832568043127727493489718638903677339409724393329833672824030384112296053714956546005475551568535128277429606739181995463359314315241492181715551902222131499615545030501253422485151619551856031175036507870395624164347785601257605227389814947238579206712667456977122415134860935062907281822080509579406996452662297254222064281328233639833093088875589608206856563419208025008845175679358143474059982906609990677465761092336603468350652761747638399046861514479906289767201822577971473379277591029074794563327512089240873117600374869314661651740033227087824354750352658679909993491566649998545180764949111924666148804575443618789813341647740368318549781560440972534490961756955979898005188863765612436245967079063410531142731193308569543666039563471069915964910543053904263999241071635737416446911949502560144583133446172108104857574120652458889305049840793316737660657635873425427790197708684771802023370839015138879871586546461380300399418612144486639796767725484136209990645540281896140333089665163338024218606518229065530300962638738141357751054384741787557776833035486320689928644936475157143701229823133663583069033719246182218693223104844279424764222671578029400066674903206175737535698692484978403770660073423077398816415255780664847742053473604687405854154556192759227260351519752599914640935423319359188893058515224157356531911510736088809443609779546361844121938813309621183244538002201589031598750826691163231831347013386978498598136017447197712091400490724457803859039940467465584278456020443857555724332189049489626918606445746946425370823832058671947211704185436476846714478389351354679421067025659143433543212822247774952671381465798036655956435580824307554573975125351739728345356623760291629252142907028125366798045981003372064351313155404582167020920521330779439906371748680154660586546996209951907777013604623830501104738173382340388557282811205398276889311248633584987245075561443846333579454491462024666976987776096104501204222873714497504801712079173531946861881943640209652283551887680486475746781700462882916954589315214373274348606438734616036404663640478843756515035614589219718010053776062701339757746070628389951489219687703961153366486516231916527157593950982403318237821319647390310931707492186720764141802097702048011230385766979344409844486085973338225079664600492300482394348975361397170106180127132553701486899176395197564246381996213551366282081068114183377225296738734801523283561568681681989471246388484551488130321243017556506697108622916433235651909870636310792302201554099283679112963752714804515002185152929113302233611318747862176345165086947059163873870671805892782254198589718826116572844785120322488313371265461645388093129656661511388500168123521587938843697346245231635202120164408313220015375652213034347615671218535169351328749180114910650882330704846563248419477513567844032110646308204542898815999345088595743517468935418038033127332150869224580982356310305577724081124727527681120949292078952711622190025896637748117573788540465181410888562801298918805327352743554884131378908609855085109637960670681879108304863396589644657775003180320662711676533280861760604094873174625323523311187868360411152562700331818294443628561437194089620848070801433385520891583041316781000307505836174392408035218201274130291595460885273347523915491414289369327495752564887459993630779870465767001281497187830389905305513377677857375243856504227787961495544937289253993030578455371054311453549350378688392678855246139995900409597115940266052258145020726414152676741152702214476450325179759656068375927141000518263339651320587533977622691460749260779709778276842006532623621751501814065425797433094694879915466921001690642488202744248390753105739515081734543631864398514182310304423916029795651170339422396378507949764321848407448474694097227315960898849595196464290886824584711210456285302567074705156470143516550375400842749498713381094971787934165718049971678097499278015268571470164107189091517875800859122859380290846165545035814483302920955745579008803589410949750986828265262829054409824217865650692641801759770954530014740430951790079188739878344961793378572508109442599600826726337519754374736492693839437578064196998032101713995618731007786157869697106342703625558686238502216424791032460170849686805965520632944394697580714036231725829290859546290501838941658895220049756852803574415558919429305439641741798596532240698291519582033157451703072148262546418271273400894988908303687223145007603131358221156695352071887082855475671863018043818574393066876539496836769179658242986933722278532232157631025624162156580780260344071608905609344390327104155202453987623535046010793438622041446194363341818496776633390103584531301769114886987105252154203482134898572960620462870352230533453109461334156145840503179061461472263793984897282889751725840256167440509409885628540744816161708499159090240321248158039228936680813451097436507447402145140506717906665592281336828137846628211406973602913926698566205231367700156466692834761584550252680553476861529210284421217368788640589550473913469388904313427524031389596021900769026858542581329738953242845056417194732362759839504533840850702900053832546302831237639717506747490735145587308761333769147742543707390684751251172108431918471356126694508373923964827742573408012775121713837646268876781715646247588155009358400247605214817181303550321760956375978100506306908929251795611317580378740676370361327988077169747700648594160684212035629161183093644675692612668303652705194640269338097253001372002802934514835371033117401100906669405509235499511106290269489323078154046647152922068670918402107420112304273332003082505874094187754486438652965425961060852776921799516302802657778548985999349430268400006908434182595333153782382969563080718581910271111251274349169799580499834075591860832412007253601213998584669354288188342391795825967657391611238453382197390369705990177958188573598739521842198397431421308723078868327397047345636526031472646985047522873459319824071805713802435189654737386183551455159716603865510645097431226205852890085648718332722847892534906332320481372332782749650875241042254592914908295721148926852189887613405906251270958535285698493202123777422459677067109047394998572905209307649529179638814717850939064949493307421321038557478566857860701940532786312896445306437849303304762336060187025456252571422189094093427157838587754497853222349869590115530831986956179834690571266236667362679732529293531242971157318374262027830062096641796211768123888885208165277909537931721680462574438323792001253751394649238273197864020286379390689288095892968717324863503395007015784947074004939369765492685027664316131154334140355203909029530113857495371405457171289587035040828974547144999956143680676018497185358723980699541133938352719732170884574157786709191917555972073552951082858031583674429822668183231006126075693521074428219511448784123787629773291844256315559167821655221148404164117924240786278849398503242394241667959338791336410836246892628262917144439204041004113582850527292113457152032448101312607835302762538285412587250623877940108854050014428140129923248066843380103713860143917437809415408342365090888091945426535096008394593353477273582370056904749046788833151955543759620057902163089918159413142468939584526610598926707386196014662770317045484339250907647474996410352705251688925701369755772998030924309003937489734355201998768266108162277685569170142408984857701139469772833132668742071502491275701855437181752689982986571641213966569885934454329957881043367345221790959521316580627032639529585684376914318951140982496323217348060458261633005495563080999529987850426524058724742234129772817801092484544911686626829322196500215745628286623280905925123415652080868572741883307822821304416984981075820613678140574213844453160353073770281827955851061999377158296908614876088897494859190618637540276168164637005856489102847879372758239702912781759657893626839037926402106561679123780358947426889942324042966551781593259581335046884168308473478141611088988881801652594733393445525028754208450257285501964851779759964691048091968401145424835276795157382107998856962318639972347750977086801290961898087756202681691834205259472756680457893060012119645064709651328676024930145843687622403034358351763226954185173218200028560989619767480701092925586677379048435687264948191789968988541114312408245945853868626211782110462556760752625223202854423875092938717728897436795600472327543799754116747537256946167666676350049456799109865964989362355391269013609913850398141609677492512764068752784502557708869443735400426837436533731003233441403672692434930260499307740410394775473085247531640071823491113685674611900825536750061747063242192826676022348872736483244141211276996189597926254013586978151841317371834680123946139577769294680888609128268588267381808674435988895077099044180073355269378088513430349258768950379019774182741774989219759173285230904859125831170542218420586764180640851152490056992953720851182766054264522083733100010791743392342408119124080883457548112229358431822235292717679233375337510045544952595821706058014998272583234537916219920876616965751479551169856735918246784269165186222368216384194194918973001303581609698618017138651851992821220791662713818008291943088150835481283001493060800796323755743327484719717516155477015837716444173600858215915499051124938428788268311243719816932475882206220429813516909071835592416060206438851220380309466317108659840649935770560857555218143563019496319158868519241719641840358167108197545262917249383669530685060469024274390346379812004437041213064766571985159234406506128645167264366049473597414785278203589538223781987848610051122984261664128816588623553777143489338496752040442878065453513010119582378762101926515916699669856933325604938026317564003326254166890951610094345868981857311215202511486795662915441777555999878785699132601808037239420368485269570985550914700804024428434493720487514247061046111468682257681336515406543898822118625878290607619843855969210369712225798838089319107990657080668657723087351151071161991192618513264528953137672058377560942021843177236190621498655089024501376970689481116514357276766901661811218115154945371106138462151927393556759967921756581242384620960979764748250720440904251284215348349728313079157656185832082108626980817631886869032866662671533083114311071746739571224302566207223173908731315378708027663192686481950352796869032450483576678380995874412071485452548457114780184815495328663646970635174590425836317075975047598863407279306358164878361531886169438029666887551887095293760734476209494195884407841959007376204731595318196900944128360227264815222400051918183199444827681742622945073657455115886863009745419618233612108855331997457334346277112135449124267263753484870333001011206849469867288900811318486405484229837688563496043488458127974595001125287996812570483918680712200798100751746435332658573661312939601505526786558275979163773205885117509156867388254947835472011152100444100069468108261636447497584286891796299357636687028200311594338842285798099692810224380504229928048563520524517024094984858745743589386556484244951664246683283249174520838492527043411110376709302575476851479536877307312202542783025859327817362303635390713550991833966837447063426618760421463762498401710541947031553263718724064106892972083793103254416020903654810418653065080606501853082026502134075349687551387887101927922785122150814213236340205304627639683781257611552573091674077999496712630359602467775144212987117368669054581562322779317650951496968424649830268196153323791165849720758912509296576557484114685840916620482860363026845750312136504111693736644094082166941127565176759984450812899119768743443229830123677185381417695467157759472531244776467876823993387276814003289416058429847998460890562216252511154037820266161053052804858392432304940156792689165206698048243212745017732506506286175554580438525859500212817845345944680015722479287235664930352706883837751791247128693728887120885282625261743582591373776722545257198089732387950073950223192572306293331530289400004410738574451940361996032851321121343543150298809402784778805795599322683913671653586773799843011926093422820709998875625859777743923925382676649213979646153021985809992932190647685824269724401267655238489074568349125108514296914534970226126036641552110506596320049452158982960368226684979344332661299651567528832473566253038069120451386650110099042689665163412367860000012313477620869132270312232302170628829183156317158668948856236466895015935147409013116813407632709722136873686678064754269863881158966888720525767673721353707161907070230221538770287134666975849259751515916601622016404627813240892485951008588420263134581228233153223626853340996684696773592540024737870881453049102774851942638453713811056946316399608208324881497441328109674435570340509756097883180068313621073554054378475433245736600939957114640125364542134725748591915369877745237469436143631686813500647451372098356161602861370258592384954075922587519203532461157723199261215555305632304813268645473350954668269478350859778568119137830163119795926603254955244248838895728229492984935742103887547375279200849283848081038145147576871716309551027420092154340534326183583904858483393719006392017898103201028007990990447028248467703701249304095564675860330873752914235632519881790181363700662838190940691830167142338910186876099556645867893687885653040291637336025432361017313995922921101282492501685405638284673862779200105006442371344329363761079981312959440958705518857548603864503523316349814475652060222997631195031269365221729260582396996863885609677659059293957131273834958057039116074060949807366594250570429101784283936418999874005337992987756326943245479716187046273938538370049502297835901285365416828093746576488457233490904902839181616671826717961905400960283135437303574553481153078098839273234194418888096219721770025175246913946240463310024246895601781744086055024765230485103941967436135737043197773674362338231267625333482761334657542022032288266079069318895973409809223959816218253456403737125482912613887821781996411726988894848158204553396063687144320482097465893578877233570184876324820382087566903732754815551814124082339512540275973629027809101053011935288080089139857666450549449579452846950811396309778230810395499974651008268736881036917236631147074475803463687092912218714256517934782354724010944587324911810246509574975663236211034952315714956201920538037492803320503263747693674162464317929208665727299023543156017401395456541978674935084026997391644069274201163531914544432086464525424731319665241152203893816506344380026411595821385314176647528075543161662756665610215537069152963560077247068138307424242902592963016852074391505377545371563079551099312287069184235940479954983949814287316121307575669313346025019782560984082073855548454775338205763010892995344009433538284351897629819066076814640994072086591608439936546498674987677474729166620399690431419353651355979590547452599412724897085290850966478807010516584407273597105849851214022024606365844732454662903921473180174729580337082245754183961856496201357684225173402897513213249205068360548159032550797843267417329943816278900063635883022933041710253673362550504950271629380557437067603818461056728075676969704373161045670936757710683478601506567973113867492809048084034539725646122168807006093228129379138100834834137220415064479283443248691738931540838984191595403430098083180917861451775014094475933040064113001359873120083095563000393148956272533648354107199919318315334917270516246839897292075982683406034592396738958428165911448495446623804460743446103984335261136362809906585308583139308964336327496584798301355240407597429323463485908843165104912204205424218003219354405056535404442119795645218974561466575560980359079539509704933719830481190723598627734970838144424669724715306031436648269417717235778509073598854377691436004353747821479771627466476096168243352070775658877189172683510393637616997833885771448107304895803183684576379330289626906678005936368686879756303761976280439140381848755982603751290423768001980789663865391623199107835891693462164991998479718695137906767773997110745233165568199765661905325245804079053383984008865453320162435719708683348503950291821620623057404036836604267418615620288227894278686197266768175343444327685648307437965580704350673442577829055627424831563680416570483461486030912396736848240298686330324069163216886526268561769405661095557896006644831964131219689373874967339840978619282991532408638650811039712258234648564512833704207705197169812958652450324590541187296537507470119170359167530355888472333584734942485114151151019394274402211872794989407210130023969965038703972073865450505658419745905930556124813826633455834747281761536520201791216601906830879991764329177523360367528232988191554126587195639171685999971012907167610596506626562621910856238236192381494756916528207271915229997883203618421754089588779598610974522701022261076872932784529978288956011462714846448468346155820055285359109701441590504678291246788292258801761292259712889857092268925459394678838724309522734559376607486332734806364284663479326568090381842054836350307130034678678123863505271518744199096745704700968415983525815069274022636340968920207340246560709656749031711423742995955016716951806999927199079992983989152837365447836006837402570181835140109970828255916963945327779846157737946961238782352135986184750377196350249763816295291605661413375505627910676311801285973099744455907654827103447175385921785294184903835537865089635051156699492861472819935142914814096624190193602640491573725968964819127105004152460062072182623276131130408618900544696594942859832267130908277127772739148700266992181249908015601714100343247968488977951552247047174264379370262150727393969782871830084620365701283935078127276726776308646698738486691400253437005947186771838128752732807966522585594467763488444955783979711962022522506284593067634072359715505567600010335995247006939659399200504191863754350257477273059386050870010383541270658284169094452322876031542774589661555180207365845960273881693248222769299445940470212481760254804301894933208879725487866527175367537432530096238945700810507156493308015560380668005820927230775837582510690186254361628287375367134689107005718119553284000892945275979897122469875547213489587895904348177996679004636309027108213336050087675071396237452782791353881941969985284405117702800733988841357974322542655191423462904397608081502572048835926427756930655609316748548805304186300410357686716127430990702231216085883826692142757957897849731891921049221931106067753423253009986311810480791749389138764259995327392806797920181643868849127118163733111838827286163430081813743113900981781667364456376745043416740970793748388300732489918835005825847384808409468530911778965193723601099332452314758475992212869391961204196912990563872065950182870651347638312357430903173561931263658392571981526267648763565226771604498918033238426407922486837391938756312420752559208126546989407430596779434589636328636919706888104394146457890432974185995476013972544413442075864887575064009414033333492122682324400436784719348769301699147005557781553184591605800993406062790049963399650301564034730865204393261487887057865726682421331624797118841665206772102512560175897198632375327397975511993218980645583586201342008209568834364554743617125772080198179814345151107133315866731407634503910445152027436459141878891012528909918898860923638729196895031901562272583368551187238554381150348377912687742322829636460820700742131386045912220772178812560714549523944426796446094826240996290043148299967381971119870418895303538790217748735191913442920333754163944741476285898390194465618980105219621216248385671310556198302728731934844033748059935342735966711914614030584435726316092259568133148346553108275109867685338123349280000033620738934307480854632625589502778516214438253202200885730638298821727325494638763355182400735925963450182102296693327289596023691924054794811460337183201484931593673393069103959001801247395340382366782285315340636676982286981736945108120713645557571667107678601306966820230610423532322746486259835236884548781164280208653561845006483445700278419797390759019495521721014772056614856616720318986311391704802704954160736624859149307697139951541021767147518722791178805466765866713685511318322255488283162080300829097619606603398010874906190464386601237317288201421862845410950270210619973443724039187667461370882942332785231778096604422835712279124036610856421600633844129061110793726862082090842935960021050449876118585834573242916297582459786131323044770380379004136897562932438268848143318613743442748560045185685083673683350599208644472713614133079757644394550678556228566032430065359748374118600177852316017067230818384511137144896908701807548436733168439161860668069418998566008072629316127644189752874536350108925037554176950684873663634873407157271073054646380713224580480146999171933486514531459674734268754165427438844058018657327643005389003094412484152547337186895984544726189848879724663383924346168682522292757029153250158799680811851770538541049503382680238269323191395968086659065811740624854092941160430814488124910228178195630796960269495652180054896873552334748617238634854793890349674386314756673947435322020470014116177525960721298166467165228201605230776895149084007456885206535522758902409760480443556720566051887358901811740910047288558868258795876869799405436765019615956465483984482422563537176823982791991281820207179072658386053755827137918739306018178345899193231079639082005033139404433722501724702643708324912808718660861894692748274812818297521187177602930833945690190713084657247007419732433817797767422701337580979530854483770803351580962095135807173918406637200509018579513912674270378816168061100490852961249926855134445532578449358275019825603778336355278049777453149629430512678496007672518612407067858530755355713234429811204915431682026914031553373412149432906896491610340838676147637407856966821853363109859019661431117558040361501724946738599187556904046708447708953822550802090588732826263905563993580698727831275256995618959334984193540585931911320822290359590009006476244719453389616050037393828921207736088482776309473009327402383488441025181404016339682550264733430864574090724894047903211710829502043015790086577501507434242152536203780108260437681575734281625453030993847742522630278310635066173789493406862615615385666132573213704454288670581422954853090319423162436543848431960039646644377025385292486742426206248528022353701323672294826940789531483356203601927060017458368469772702315435782727327671557922584027121758727162880036663695558735420327818856593740691790430553187027139331436229778970627680226600394379764988504922191445618567942242521760480308476850017592185197928061080488318413193929993005973996845653375365137690272899137788965563814737599488435060895435744431044284557823605715467311199042910949142754338258827092539060486017868017927486042832190505989545539328993350595914397366666979972264376108645180195487233908379371673570801908936077600184425760142238407524637341223922126229465234916036054437970419655005057476121457445495245617307852013479180272260948563549513413514432543871617897890212710330277930714354302246040457728688134119894416442811011135693649328283415446287013625872385163078589209033381885633203311272164835343681007018461322956958275317128849659190290419273744547269603349366480707679540692022531795109574293444773429380328219830858419655641399580106767603738975371060950375337149545234883355699467699645670267818438753820084496333026261111103863318449647764529884112258369770007676018808798792738461409107773537623080049108596224588109884272414085685204694113626133855338248473226792777653166145842829367075958390524575941083314335815064110682328173574852535074858069787170425248196090076707092688863056620325597314764988558817153432750587054849210876910809937469741451776036118934235449873214450761173946718522785100382065705690536270717580736368964560311180520775920909780617503456129432619060442557789566951422477389925562714559811002728755730904678201979894121561803697094751611718375255204311933926134075057018353216077944522587785264694148064571635948347259274909729999727678221929786661152443566356784313132344235085532691797267857513234880569017947083485982767542191986208399913626058502626881151133512871653248056598134737387604489457771592514777849263314481400145612895363743344293836686098910574373843093459030809026663201008915792327422002520753855262994561748027705608879828755731471259725021109280909555820093829847934697039027808613198875395240009789559157270001901650939344236969911797320160600774312380479742669343091663725775467746165993505696463698355142599527216150281319342163328809864632392515564669912197323865080426389083467635510571222829928308897405703411951575975238684409479604733196233365285457739319988476148816467047579750129631729906747364876099405481728400289276594144048905408755310386745561210684240328563371932094836580219894254818727700830718095967138911627149946200713478847242924109492429932736300451885934714877059886782982234819346459907177130620906762645005296093264927725578665847097481196619809664222900034637278602057943028649869361955156157761349459902087807730975433079851630405535796993397243108456751629595609169111238708389728812868568735672826776593956666041579680741192154485532239872364400781008156425005252819876963953010647605848122608275133321444695337882231592844653955602050374650969889413984528725110718799455696069472197626800461540069516327035040106368177648698675190281518781550879241714641032969373257162928879183882625791685707516791218743394667972484338053991390524633101313572928900913233158677321390062764217409819551014346171434090083268748407154987454250705926748542687408802348372446537627300776878356240462306849826183013452216728033043995160351785654286663341084608786980955476381752020458989777003279668518701348539146676106570923237185381383922831338660693113976244591290527284099606721508225894797229838347226192212455150769830476284089456713834010312122971989569404410360317918691740191766975249632356512270046762782036390339470980523662971901110201197954295814739759976538183761798154197183188866841077265518654903225740494837994308143684232586885959444564077034449324020283028655864334027923379236096937760697095252464755029180850421039486727548632117253222435500695341701244808071557136293983351790401818633584851435435838638786764281065467593346203219835716742104087846404485493135801887706682373977389932233976056087147861464931549839514430636489554417939308681695440183736024649583849740435573108379574482968016870256048258918236708964412744386547277173169817568524938061667033848078132584160649664012768154686265808534438090485406963038682687290732757653029839117143218821780727841800655462334591664151847655302863351175826274249254977085687230901573244434817933591237301725401082113160284099837116578431138185509561097401280537614767228027207773525941809022867866674796946159373561212427472158888121177436595505870350536836736916278321338426423617135502824884107747291913710503601032423615500530437458236460257783095537217364124548017103552936653029310950877409986822059100086032791733649437671473110681132096380333674941768021251297487243258365991167118309984083197082179964838224350612932143220237820586419020543932634367571294502294467910026399740831755621537766626217741850489292441144496844570767514400937789749187595612186400055741254805351136759135953420152507950130438590247150542281781802813929448803731885707224261737425189146850049664729896940063526328818332893534805599874167118625939202221497929271929905705702461222486723834856088005829262264472641090904965925344996463725076404782508217176657266876741280965725011451648635569532802982413791119225643642180791156269018109093301612871610861697397068109919954901275898590374924774749741884401308056389484301738023422115822342315009660937741492325522914575891693254971263006607083810722061840464523035100613787359306401167015566745132520604497452479825403016337462549797597187539745696189697302352383974312005541073340855513648634882813956173227096269852171751319362561006173848003416454388786318654025605314561117923668907739143256387900995185120213293856223833085453537524092930840197296762804688200848328648513605498202978273777839380522463642715683004134141303662011611862964590431810432928524250224974784891843326428142051691223542463505525338591015462123636120621270183817710221966306684253541260220324609916056124840231602230786654704188243791542052628931825767586484859276034531116432484060266859600205560832358356785106605638229866010301107404421184473326536393667013898881915090878766185745025672827244897279423543956861690887386921697358306502382213125298017119653571028623963525385895488603163963291947850431094132561275726537302207802733435600501690098224521789487646448921341267606064142557598976721080468042316938612840414769926876106004781958800670862130849989572885462855927301768391862465981815111306977964580797725061632312953393275496804551331065947016515355140201258500739178829179957575850891496772171907264378489020222505077642491861532397822517063134893029935429904916902700647812538705605398490718469115182147340082148575545738948436671489745671623356956530801352286193113188660054676808728048579881937422746971508817930836966132136199650982293184949408275220399568781970005203417799743505506487880103500007776674828769437603036864843751937813546953395789921369007105662673421582424532446616384049859627388841987928115795859563124497895248578475458561677160482496401995560908364433642124812788214976178679239688069266567681409412526497644994627769057085847564578776930762132891598952154108666846141925625703963761032431554077051327921382680063279641256481460929800919341728611209033178688649323267334435690540603653693321916495824561294995210097950062729871615442919919155259607714730497786527771411905523492105670350850243162509495792615610543407302879657334596333455634981768941743271050415875898445946396688871818583365835156539120620998022377501725997512302356676942395381228086987293115507465061675689398103548764562422360561160089044289529795851193004398193864112737512567432575762908790877466520950170918002861393845617053746432639691884756645194464334453236956837674513330492197404847983644819221571642150392323532773074702287369707842676338993784747450403519100429150361370058524196279955670319172999135173724544841509003764249614437877035233963468662197222934555815383227499723513276349354267643140718752997279646374943375056235051525895856611312210384322370059754547859910986749321480890722873172124329265463249283718928447761647812659115410925551149590683698800255541701782359596100902063883268566304041364615884883207399987259442275373347556531961786983148952055991264909897598013975885164977461122887289939991018749444036161283793130589499139275105434794142694427416959516278000503762589077430591670538695512471534514378317175480422120821889925985348062727857759804233647032462355933969177440110892847363597595980398902944930411092563442499881447884238930756722091418947604719152508110500691729624422738713492534491913320956022318374907620597913175076532180101224816131436850167127452713318598293899418674719329823587412876984501708079697161015459113742663719889054361862472109722418874405823857979979659802141932224045700782594541322541561590441197439114633705330446221283633870096825716823637241515560798928481272225953361720868581453421673534412402373518000091245834149812667899460409587754088342822832821526186506056527628371414561297142951183778916706160873146384040420743129611318335045528394709659802092592520989789050126129295961244447886068751053559816614187408936519395288487787449062216946510768836836706107106650575781281445303861849040238372776928931026457798609407283068509249550391189051590469625166491085562571627166095241327078219717528165898580259866229855713406164464569603179957473041408205427368872663228449295025696393153538627073602120921423596441132795172990894696942793766112282560951698446917961374180018849313092169420681366793067092772245378444758926110018931490046292117386282037952440332573239853995888270442551628682676165002060683215174992644119764576232863341824343208807477985419652646458296857973351907014827708937526554869344439952147969859009117730710236619067423752820481145355121179886232475260966230896405183104025186104787943513395043929413211473344777456996608236266624140741413060736001637966766337703858948371204187692368722792315844061492639070119791212888584243414464685565750941650412257967400601591680165361255972567666333487860720836563039141229013777665083041522805284272728243974969475220672771389560185136877287556970354176231687900219300868952333448883327431852848970530140714039043748561958565319665915524329311538518736317545164440131096009264138843980100971309545618545783933353881729997107986374244037353952656383035967166507711821889673512061754650420067345946981456931014034812167626114781468182789824512620574177173412111201703560245458389267180665553510453674297294799608782766481310023763644935928710585091072265498284339278464728778470847869296790164991591607764164631215126507020571961820177317180045836992963548360244434970269939284486116078493472589202502700728205526959872613137623209710567671061728228225256048676521634422636936380329565128224056184224699219700305140447667257101446911711146142813691969172400461880355451688808652383603792185656144689406317095326716045588034546688591232940081122513324743079558129810569165131500084055446624990586849524729604809228050667421611128499446320641950762581566654882093499779674544771946755122636490820552138281105288718564405626644102141204562878832473136122148682248466535187733733981001354991737587610047362212465426214081649980976679948732394581389688812595691492982166444564752487775924392221154723179189511201665218137821696971176899913128358976654408728392109419031035286173954631026086058984305045561427010521152628897342610236171570621400731860082030541339796189010963993358137225928614608148482295335931831143673327391246901037872526844193448406674573612607755144451588002112166702105081966444945375183152401752565969859067615314734770009565926884990902425918176353117956467172816074780442577471925704823772429986100063048657784478041331219432236857866688455171046775078111893448213602349745067247582050413384217450131488949594793050387743024495726976773342467415340732627933704410143948454273910978252980767164479640585452876985271853196835767116433096940259473923085144229556260544744561904019499866655465333429680266665846494701948468924339675054889330476280876981660589881462126943988452333319215306110076061999287017277397555446564837774056250402389384486039153478865519612550195293792493025230800662300400674536163083142801526261166163839302967025383624598993060165169704892358898622320002513332698395189793176731560819631840230980078849865326025826904955862501651621435978927559338940387175780145224686675792651071070932675384071739932155230325111975286543064128627483893061239325258507171063491003188535510213549398997752821016908143204412449610840201202488088673122412462217544055775354949821780598895857576126967437804279679441657085802711867870825945509966962654008665672875241455560808434456928429034586913127601320454805328475136629419690800194768738311636359163394098150569180396649973218699778215424822865562336235620463695109734715168970261696375397498626445328608503496980822943516812879088245751890316630826311774836073816410281300657219390105913459384002974628189405694434161429152179300267082981037608277918028037386181549253216846712222417404933925189998513001957091938382437009116001738959670307309021980335848205156387625067083553600865844317230932495888853671881589388663004950361608006774220441839850486910655331068088095370411317803635920214001999764881102471566607088080095865517791027824371796780256637134327475388428059342839377335675799789005569039056805649822374570545248629619647637573783661768963743138261386609349543894676126661551534236184203916410095048342124611983130569482876723474811566411060544705725076923018827703411074837055148975243509568402525289664521218096162102727098360886861421022667321094815474267216476844755680267619181847763870691192132663027833574522617935197193687939805817267416535312230149708776785678188542453418953236808651007907587119323483689044348804144203747429497909311461137762338528411280386899759428852209588186072820164176113409730632163373355581319334921885293001995077143173006226084407891152469430975238953062026745806044631303260015821300145763592956830682755655464069705599317032943352118616280194903301649118436707630301565649063486521565981770985664549203218748537920835204020700585505977610997298632363146463176124310977966093919074874559348366020106049471070016990950539279951699606079274421676709503177326095689594651944033215098497496000280967935621989419667859878615157471555754775676753145002728947148825155444829788981250342218820117624496248510164909864082743510337485751853022769114962021671763993113525366939669773747209849555886541452619542269317085904303482051609274952396543154573529182477830533504916570034754711472309680150300654926577070475922493542204476026705522162487142879198170262573709354434512846245251468997966829405044473479465125235740820351047530026497899426924173640552920657467241652253338777414396313636715260792999060747563353556925175419380983008735511145370853061887308632125512721414749590865577101290054649559653859415982186182353262884546194329115196435267657278328118599581560976136543295142931059851059159268243298748449102212320554059006672441029193978352302395545084464229715891870582434478805127547041598703604855990076201538264025242368272110075351782795555300129510507548176974214962666320577106142429961571573219723850624197244957347817941509650097401056992436280063270060437086908566924706074625444428619542368024793097551576959340785131287448363408039570195569231256303938456796953875479836924134320928898408517718168829795866114488764707898581007564927923815951045192765900488577357342240145734044498815763786818908638105014453274065456193407161509041152587193589874066363846179508913937734256610352874689778327852164940181270957276631633757918795259718489304446304926420566739062609804443251170861321834048988358564089354479463434478625299903658811123389004551867922181646530386666008366767542877463840984588253185888301929315971397654057168939796170238630970772104538427470487006526744521300180723102596062786748393814427758908835836059981639942583329372440500454722541872212942212445943768411637032171668154574734544620420343964268984969545939268478260929291563694530330532967927881887086554534574942017966447295160373865959237527063922542484827705169468845843088097648526035555517044404796021526543715676290682541878749225501139116476035906685373490502211034437020279034574623753600807870284392756540355846098388620153960786936064469811053375083505178052062212107411103208061685531752379423419302703142460296179283500024678643146084766823148225269055262172913832700647326838150334626014338182311525554762724830739537483361061351121617068114260019562290259548591105196062580404298922916996754509615897478748815623659209676029344852348315405897498121120210311968520478362891997412237023636337118008208945281016975630548211030625991626454877040891133257906365014084751627731246700892174744595743876732192669760067876508735715065756982929728023857450570435974518913047668792444977450805300518200152465232229447154903702311065572595300160064353510375019366456779642083745446461533373398990466292057976489803371255700655209599946127974130397815494379872554699250974223526197813136123645952913343163825162503516160837849860513632361644177778929323018699649280701298170223847754159472652086459148096602360696674243316477060656479297894238576664857025474781560490929432567318682628163203461279259241655112995629195163944162213269138433747818685522210252921257052406291939813098647282327775624492873807183606748568342313864976794999503388898070523631955190380429905478080639346071019522572740877967467493352304343594945629906727973119088462892119020170788003129825721121412287738000817987706978778865574151942660831058963751900120998244592696423931981794672261791577132488564425195902067877020852546824091286035377686776331228315217677422126001340828552885505858236952636680372068243161682819733567137020121907120478823564259990152482614172439569283156479405881227190689747020239322173815914923405706798558287131759437216018383996224597818189001846891956101038731940201275538284955532877500374346764600980264504339778402240335743715816112025326558371444524072650807136429610567505254852754202453189368876956210068881398548199784509115613917836395168864597030291945907255185397184942579728645922692974521859621754912780082539905521151477462289201692223665894570105463832886711540705828611944654624955622037647237612731117154264213963697257716368623300935009947307309715075753558776572983618807269138883643696768821033294368770764632026091976129264214595602632795288933178521283630581740207915033977356328870524606401106430410333128047900218088307830680696014099679682876375411168455321033599342987096297111577245803359466926715863268955411489727500172796310241570671898613630771041719921313981938692078402990693584363977441690294204727241428415984920013756906435175635835181957003117540543732478152644961550184293816799259602464537827870802808523998966308281396773550629320186197558518275978655218241829614896977252834959178020980657758097209193195981832095597988433317577609377638689186644194442806555786063315497368448939401762198368911089348125035543630223797075745305342803904547142162465953071515329081036001850283337895464545743723946528831516618866387388243318734565932286416440484023476822607480591699465605656764294624414779014998274470842216796909479057185014302450833906322789229076626021405957939771272253726775871801493599565824296128877014151843133939131337885394277835144717327537695174490255513311062479824879862305929005642175422741163013516239484083241707792684864260460981365583747312059829562860226411302687352502764345613066570475350482649619568183208440191558637779686682496468140555398257901112950841519277175348870174753365520509194526003482813106425860497475574141179214397670578485708307862701798848232257457840135486078796399039491787031449349433732305334841939226836428279977832334254046465004758364064577388005683379086762288973766763854515908824215261884304805088026432925899770060519072839086796207614261564812296876062738566361408701413617045011555614999084022697821429188680076031311290818171521258096519955821558055729710589838837032257589386547238121780710448858526716862123454689248522188596244107089996471710704507390530797835991609207261538080069928952444295586696005125952991427208631468803603460406840135491290970794305278425963937160433375596723374015543843231152193205214802396432122168482637114137110462244729158784356283268853485817080236568974341681160013577858592251895479523932221648903050797240485212674477152509221465004642957623527951541706413195077384334240722147212594698782705831256679963375147268520729746901364744758311369303290564389805166140349264511258582924968088203255371193310026121962166812803990669785754244585241242966669511280003371978881700488466420126109097648151851649589647219919141556440352915059956129178774006468343239495899377961318947215508751608142369416242649748558516116749428492356756238912539173496913097756655517179543121191216124953772686763131729070505703370946034162879148350171211149777584724202363013719521880130439005984709363226997602834937892886967810809665178435050922612369215250942124891943889893877447862647749873401658478045785533000542071734304251554359304615185182383679720956527372496611276333850315249669199691012961742288662720977963940225348750344057068585184956543309820699903284371170075184870196808587670725453370068151886423133094526177548224590711843946528211552454146474322241742204130203746291998757167079394758454527925433371318941296171336787543231930735677395548034566473118384787007438068739201882492772089972325537037900573507893007288183896012201528289698104804065500332025860693376523113146715543091217354215113169474259312705922676849143770996514113006611003194055470719105812956086610847009602805994020652779395230595981347713073825577715041352151893626828740929682682663627127717209382487019918076103376323042750839260792850564571287551166668889211836454783653672747552798918086691617159872941613614885142503782673952562554554680862429047253702759951232735616137720434304547796965860674742018853337153786018687388997507812626631565716269248714834028639088435742853701131063132467983110824191688355295659290458115380656523162001467779114665408387257740414140648404711632396528521966324695914745119622155561610772316211808520318222049323839382133799056653803202846745088945177412702855944642694088325057203402724519673025037620027159432232545544402810622385983152661034922050353004115697986556738989001316769305588451964712108444743269936395811349733659339445443136415970831309502438939928106363239731533575183259837285941105312037768206586917787082992148766229793692798427924178912664794816587585409674616450418810016815714222357932654206092545191467631265422376362970133609225209824892347862098280782776676864565091885130097885270331210139218705538040881142040651839569903398153495851797514130531971508691118662887091515267383376127205491201156201552976484663394505199782781787250460966162233331831257489179431167241905554148596552891827805079633627041327567454673643007715144408748446667039932498016780341496136357125762600562312521793106942004864939177143103039151578003260198790339734324205759027692711262154636126721579669552647248996220849027014350520287646246986263677882791891949385345953012364829283228816550374884018034370935968132258770172845501627087588761468178333406770232771639525480223334564945437443923950455227005390194615182698217672134027159529350837936858138310020499253585267119886217418224596916510119473775979992007770006877159319177500299370240602098767070759214207151503034513648705939063698732147398802710065617394335673292780414803513224211765179916434047161035251972883312841066139080087325275408382968687829013859266071910338261616423415412459321547972430838226741234667539403431400016479306083577314321436394975065436937665319179297170542317459186364968073125587127149155979546910414953797067905580118290272210818295960138379288386230605503779892052574996955863058813606053438664281805891232700179426912022793604990729985230207676119765903240796704858580821106370493405210491728239445038437855088484324260752698910757639400713731094101339653672426946637675457812947049272717940240969766914382430249495255930227677214751128381608849938329760432516311592978443640632995196074337830457860823675051081271593839616580004427871510583754721290483464957378418371438553273617121421536505471764343306672558322954136491204772869839260104999459959897109865530741478098401024445972998281825539366744372730803207144538289381156061130816193156570029978952763909157746825375698947840419705693091341821155982852377551229583924848027778127265802402794863817460311476752708451084277434446256283660329054086375563656070606362498841359689673679932245623072889616613095340096168863947186626204400297335667982647491329978147977623580084278963307385462400903884366061400999822665293305110713583053404719555916401181114439205286619603993946999333521960030040484336434535493157727834392498436044784476489525836442114284593048019359564977803993389081438685803772749932753298528378201837463393759496670453785609613849385598841879801622864144124949578872490989710690226623233123345569691173352178759641673570023487590990272120326674141142723082273304021543981273374216980156513744386023230459059540215329548082689473990678177099719013852400205939526046323208222172971242906490439403588589206977533343014072413301899430654164110407602153979127785453964714751653534137389381475836600658449887247694253410402681532826059314952078065609374635796370907539205126590274604363562162414688923294055837452892152914269684764967501464313510450334452064360120298126482834518755576470146092283377014600572069509947728379403675969194507784754533211606746165339770549478773443719903953906049907326241590392672364099086684420671055735711493255432414760552844594619868732989349765650983993591294582665995475181847719968972736309181063433477041120184578044502466885221055993773225587108214541258790057194718885695351052732753397223727558759120473095873219913667361239804122545321676509498579680230827559226146814882499099548065764853045857713461020425707962832830113460988208096612837071012416043519730422272722436068384508186443985705692896451233829994619447009277495709077305958449532607496087979317625945679596997345216035007472274957645934729240168623536619842217176574235256520274092329734070970592166699333464199133793212978308838221828583027828335491276374353173776991314828350884433355764385828479052843138462949516783092486618047822879854950097282108412183878161159442475953624847414845617836671032359050817450570597675727078647260169986451782915585645282351682471522231172991472625444297088764590626599683933376465775707272126503167889854443491832317419749759827744541216710673514592369879578097924487474598547651444761335159107438802765690819955540176095986507370516856892551624402889032453724545190374370236735463785512673946280900500471723966445947190007986797287065915606290275775200666759787411720141197259392062872115016560687319593180892138492026003425830434528512315571604711017023440097833599865487300968634614334480353993617598754808825052948021893963666597830155683802355937431683863089998587619241323780481533008024546616355208098710200982104215739874165766320756698890333140402690253946480858640089215843894851778430738509967503720773605447799997994988955909012208852975120987193333349924755248820186599453682514932793665119172675582035372691509279595789604217935725072813492164172238760779582811941688795504182327088727672269462437721416030869224319402647191672343451575295376258194569782729476481352369173739564410781132567455994550308710422015515501769118190331098223359685966330675375482169612545131884962605022359094151572637078554019202155946685820453487554705237343989201521648265144663365949620877328403954782464289501509158633790735103546480145188619398885575430252927133867666016516166752952676733202332423695078299696738793942062096033464135311129863682924309671067153491067204077099927863380065836773486792542204341613216581825328031277088578034033790742934955059737629774425434503280632647881676818365985634033781675199885957649164858099291010770466158164498429613850763856445419510425430729474398399529040546574332834057251412212717341169044373194816572341701296590358689147646302448127685395350810995971913205205385446324199233862100948286454402347320228071746890094105817663291485403560005630753178261023939516626798439692290974907927992087072756215065330437301891726800184498776056096766698731566610277318952408071689343311728691255299863423994308037846228868096496120632878154875170409502177190953687913857199225605180703550559339368992531045492909404273001746803260168981093188104120839515303305492696998860346025608125664916288301021433887743869071897089285765367023018150478061698320734868844986115963967249470183568659367715599975814928551052606710473106169479321280939068506008223903038370428817493560261857620405052731225249780112067401806247337122337121781468129200128322101336605996443130493648372217893756008911822034684559762172847430321522928785163981689509745677658003462970078030492933368533942191673573322138223644584732815241988696451102200747495156004247316552035833717224954715381127456970215427988455103091359540789348848404715030060375100495089190461565024525600598240047435046767088278175266520054128896297214291411444653253165982141839690425628815583985677160761141471929369743913928731958931339781631982139763130177767582906790831016850772445561272281319512207100214159311604296858322481290367877682984182734992451685690479312396616797495733119488187545446466773854565523118250888555392417749913531728085229967900181249666928005404899733510100267593138020773000481783930988365681654178017900004225201814223919761048024997692523168573581853037076523750748363934314916400537072825219585969260277406250815767580190104860591152431683459472075943619055879372830685620861971847260472954739500811966223490611201166477447022175638561527853193504340007335882303960715275431287228990480476857760390282484433722252898163402800183256367991019889767046858893276414036197559588133193606384710365470431198387573289136978150093962788348507759199087613499596658558195059462248308164155424312939887341024654032013339278945869696291477738319702398154944202031972651968874985973856650422551938940158712207454515493522590229035867221497684420325827885490733256436760396480278491672619764281271961322422164273591992788772961271446524436024100155806266376713522064298412479839066921587929766788940214167768845487138593463166084632720243576704061346695065771490913953302382851195592312605196111938550010617558682800491489485031116222519409659367274385251640979569980326867679775822440000768608926576180318610147549949701437331489182351769096277270021793185149785152902980422740040873224823110814485719436720648460582705733439040711597288427367947177660427127793605040363224776675650072095671513720561129493166742027491036368005412554442594642262712724752488853351903373589435648678372717417206733695853818621381563035676480153852384035606083666456916411993254777683707594141173291513219598955135531814412767953140471481704072872079333846577307976256891401702765186487104170557546841301079573448104440933489865884658638519590218895318724446378899034590872667857193069753417466925598448891344242352163297625352447545294998332992314355490905498166731816844261668825468376991403511419799842503166394417349442126279955417168032290816259543375613269631497230882970261957032837831012041283078527158186113352445127227062283436737909425758596568741221221637834785395198966023746549898393212953179119187951482793823129494745254379000606757018922562421895643533694231909345338930050344081915119425673928206853254877619818099995650472186798564392956928226246938172573044847333101466221301155692253744436911197789647036818769008070236648568049099526101833841681433324129430914489154757683373414738403690499860787135237850482989321649667835181581217586595263500278968695666971468118436886785548804743514727308056053017209018260713156827949012038761123454847250077214402461070199583039561296076742297511184759568502272813878826488215838531932692580616208456109397974649238001267663797452162753689284109574008516982816201440233621016028045822087972001276494600354747842287639307084355894816513110466235906892426465890307745165781060553057923787537505314928933857806491317401825826554370517736578033037998006215065018333024402802572543227641364207759528775227290816388615704222096324037402260276343884210693316276750444109606144409822161002921235715416324360828974966045415071420475833251909766042573807699605223828263970114630490590620444583243659501955943934777259784758854816964888119782144307498999938666286286100353105297287972965577253771022480319718979922966924601488815219227727158890635297040598246967008350017257672702600197333612615911079058142153471546533011636776730890764141860627644361575687749615581128809263935611947676714261164860964923665797551299901467661843200946704552814843307036308490330358937101008417700608124110422038858832224021599166672683786796870377029241936725685989427919067617036537869399334648433478874214660244140926328252056071095556392389621203671336781160964826080766232196353393529035252412988649409649679063458782922751818464124088517265473383794324291117079865148971113452429598640200876456319531626451735665432288608411052365039731937732616186081061815225341948109798496615039464892936844292489786772499907419045765403183494545880424986670947388215323438651197714202629435166667555792538578484906681443064836984274672428741179763569276762990790365469351644313768832484640610133202420473426801656514751193508455801263579864696907931463690443360861164789641106308370882423668383209945655529180244870768695866468738182449723576888392037104376229366733211419661949862334247506238762215987256573797023731079903915031384812466038466724031349899295093196073010287769418796619085130775183351614994176638693779027493282223052540139882313096387738493515393869393824263650627587925162636374049326056254622564479499453246186283915503579747249412420883533248904789181747167782205382151048449509584745553605423666194454722993958027460000587040492056623609847741938861847726128503076976408954409875183909657701747035417123444946591383035963613998209772833740257957965302090001678955957397980898124421502739051531452017199098430798976830320144394063851991010409505226130409353420649510170336693379051342164654488280071158073091824869242669526914561011851353875862113940475253775081157340354646061322678910593231507584433950050616058503047316323797101129675752008611159328055274889102362765206849939429429367112554966751478386683215635050784351225780890935474462199571825883363702533930917176258195827372224058293224227933347727934131692436916230352183607459380152973267320813874361960269748275154939088352475744613637487197430267871990367441384684397993775155328844521917220369874185117301922139878159544982904368792951497905698472274487864287142552370874153007930295381062080957090778679161514319575858986822230961932142024981878550755603573460531121809590166227943739491835371351079244854488014048046710121542928645218139348770022277587385226237903114318477320829021091677103463377117798959933370461532569630388288174500951027601653523615609732208674544029508810316985599086230899852580356467307719157037319572427514084205259130508209374787337113748420089570227930571005668111226741936031243971391387053181740298628922315706150195977093160914858436035591138229674008830323602171934397107485136436986974396958064906445998337049139393157577106817701084336431103623965743478447861679073667174458258332024858597201734368506793065590873147708550024404515603764252719299539793885975092327351870113854769596422042600838040203802770959144378766185468005745339552442946137948428625193761133425027496348503222519180141211286620925309623763124288212937215201063480089131297277657254587271159560139991337253653330274770428935857573519438071028551135164217472139281124964232754611733291566491239806120732464412456163110762017143771618869339542725305515506955993397892120836593599695576141635843093315091008133312659084377344716987511460668936435091509480673436920464766690512239538708437556063109720740781332586294483435302199341179583987344528422672776854839776162345662982744604354355797387700195134807554133940661478356986669581648006060757650664334357942022531715025156234423498545366463393986268725645805846473189413036662036622969003846251230670634676853602667779722320433874687105625104043270248120221823894427371713354381972624782743439792682433116036588481519261730074674796377027669071444500831965819586436067270482566330619465686728075621156776034923331505146123979739140620016534632403991629878878792545160806518051979874839994087576580904783171629162174768176652121172534001501127416372065180898117529907257384904030288018744640049006353799727999949786012406303409002154431822333100111985076087279049967883122432180426086176392026469622586947161484449392857012459179166260503126236735697058292928844957293421743400908141958549914221009202149811409668540640511628001387495225236096941223345065011120601554371612981402437905130386923362983772077928420557794365563241065871284769074644260791671385415603027299779996557128866780387956849910047232643014174499279880346913778416926099849278467318845784584178175914035089982166082463217531548778716949552682547852927304453569433566613073652844687460186425414078292609475094823781012067335831666807021564688011403358100176670320570455880473211223512054973091939622130377611919293733402976705537728079255423486413592772664846979270886197650478054117617535683139429277990739815690109355356919939673139466829028607160112434279782439172355693902827716229699254215701509044396861129601806672354422300738477099822825572086206269980595905590731000795848691809827405868137227396743376171242981637469838336590367468050457502448800313263096235246325606140705267850438432249501927087080355836791146387352510232065198736796403464264026666707345007226185753535758820812874950140698987445258491936064738494259553178830537802168546908525623028857566219053235343453665017448596396230652109132099126867263636027079261841850694576688494927591540730915709400496860530934340982594056288759746356025573439696856410168234144712958022475203460524189901228698437747018914372965809294220847226712773681368255056965135425294436904448596095448220049281299546342703971031062678501875594503892282664684579909201838288309494046862519304739643458739266911900843135287251520352537412457667821120417869579679727396099982446939468970379837486739198355291675822946212158809885113511390690531998210061585226794555177906798276630680478883731870943822325556147839796481661984527052425879388370361328012186293608563275825599514538750533067247215527875099402313402829523819340506851705111443983451174382309795227479739106412603260371245630644286762020321473365363497977656561211880421572597122859041736346505880282421422638432681949053772956427704576351906697910942171970312462674664228584927923005652302479087879173307901682724770758082994159464874919773785792498184131795540053577609528566071055933065147183049365213155242324466445338649586464595184726620666496552388519497068242430462342797481961388004323752374882041755714888703709591211639025458954986308407341860074499105508164962879011995919498604161889945969635094580748845482631560147154000426546963599901104068726377253480804491996375726184127491155841623482353006520615591873612187581741546249238138490477290802531959216218266408639052399336754366543450642767926399487137220475286774917026979861597706226426987124286572695718956111209517845212692422325626811523191558225884486765952754797297356667094734322497706322922444326195413961697848799078870027813239892826001212661557374275309242758934553734843086954893160364877339052376982504821156493742746609612239178266678733131223066230766236801027673437364434649193029778014514683475672764103743196073099417821729143565836897030753190430602621917455495773119780731311571028216730931250598927157567787332607961890464803595448659508892140893563924727765032276464497413495704602076641787323783555617810978393152508911316845003899732294992937495803636332267138712166285798286456311762002111470593808516616828095395539108828311920296424514738140498755831560792522232146810535307918934227719049905385990249898329911263050355594135172422175494263794725153099594475882206343505587346722603536364440011882874895103767520921573784190138301617643466166071492196265059424523835230474225732999763729329946315279583056787835868282907294618887564828624735518139532904039556275483839598642247430177714510824068289974689880884245588538225481485451869599336501674892661744766566630682825377751202605309344302639139560130432288769488355497135249590319686368291720309740611121292867161579111862812610803889225202629663814627475569367819594972808084970912256664393340425918640543736161203426254025806991620470917291402947484110718013557805415889087240592211479775411235629947748795769472819636354716984114470180088411416781980162568257745630547672758520678774812308021786772133994035707794452475167317483505796929711254626895288406581720120867192698824457615914704826189210877735334542378504775967144242945015267416054945362464815485787175928167959127104046667028254384971943600652825560966334050225326708348844112364592890204448218945039499719753247074684196759549163165282663084894696026637403829784787033923421596659360119155485232775697318624470435530157716070028785615345187510874945801543560759153695628641457156902945438425125114911998529143725036496652027132645187776838423244818712575867708477812729670925505456433641692957498255187750755656083333725477426715950595783790746633629036807008394996217739750643873810461959994890780943855263939234735900841999091201778311761796150819336050518959088890297492757562971054590149800623231217820647885737161586772736600869872875433740845384455894229654847458208970371920984927001593864791773793140975291895862461982763988432737553777731801539020330486788549133598288695198188894515834626141498844661802086597579549658375175469266941328679421099388476681771833081185936032097693307690485309156051815450042428984511839558589714882070806038252969847109314055650417910209119768683144881100877986374493602981896218909129489174584875543609262895943467459599371513316306672688744971702774011092335815772758181946982286063310720962832838933574527824613605679608746575647063399720883853010730519985703772222994958100219042034934552869398992966886986223166776730358287223901208471812816603424356896448808373287492761997717593807936682681240598245897523585131716195412532477165742698729024821721542373636425173509685715097946655243310121892447249336519944290044796183325931319535472529408677632012398422322352094084875281411106046934103554762521613039552239153582190044878909405351204400343397838435661537067704384556507610110708925058038358831877601068177007385205231426070583697760113318174444744999317278152893711664411334082577974227928390015335088144985205620056093355829617271928526576298185660180011631631514377574603430687063444950806254041863855549425107451929528705675201340113419839120464251322714190195194693232404712755106155104363209563782232904506494107444487861780499152586657171864046398200641822056133444465337214074613400095331836632166564133750214951695549177648893007444759886163821912422591010803797138190261480542606829870195563818728555859434584538665174442459629765705957278853724998101079051162485602690584668265056559353050908708354807028343421960168092710322752294572367514240021389514079724442489338070835201579961519751866005950211497825845496261999113376553991603011876498814293484224020345595178345993313166675948012472290834728863212204461527322677598527283993332994209322478587355915936007882455401783092486785817976482870198706604665151339897543883993098196075001245141090815292862012440126172554472982329526853233972713809971910715795588078868861313605448992621369482338504222278612886855493113770767693065511878292883168164035808066177438153861486347312190119052935384471054794378191006488061183275952790890124181289350017930349931488245263711927819320628059109044467337477133186263084461054092396873133649254571036242747518894191251759835635438413244196729598837177821026678576141077201808902565445958438275928221320931956791831664421090850478613841622056484864618977178175632611987962533206500390598439217532360171961728157230142189429302810359847097389099875252108400165749446698307030498071551977106144967569045011692160238588938635235061667724879289738630206275254121329477528548849214798251630013426629995529463701774789604665062884037481814992923518883653497313903690471374456007376953546227403152836804739075320869408592545837437421864539534893351788867708229030279294941138298073228712792202612168301884807771220922751008191625107089901948339584212754399571506022752687057201160139077773893464903669990991717170302083210458274280637398081598105465099439983030650001903306496707113526117865553815098090746700748949529369760205410793100966846752189895919507988828586882364546568780308317807829700324024314556690414268089899992045883258996590490471932156185944086217006718646656655623096380476480736175518255911168671110359708856250650007584119127790137450235196295123758174510406321826909760404463195497797764337825049553757603935889249477207678146596080419998171198192723183441297008289494276917747560836442160729020816221635140319496297032828046793960606498470046351127725636511446637439522114371177533130589368771077760594048569190776002009038720591306929046680812439058334157282554727422734743707493403516962064591925090589806858486244556180607972503087301450768690310837748852894681443099534058969916624093353314761884787783253864688948084448859261293291638017770192553177873704693039718896702669844733445864977632468242727346640811382603373139215612124813155376271661070549336353906218740946509605865626999021512302563075755487657917202575718523877406608968298844622046781910226756159466925444036639403560312097035886284273060263162009152322031530103943624036176544528959017927018579288687991298602752849279546922254617276924485695176129391833213481468477441823937759910939216938955339054390997180302450446805268455716982409380900891576139922287472500499991740505079772625485142006190145489589186782192311293458213360890338649591010368454770204423585016389526530129881377096947255910672266871732610670075303079156247952921037400040324185848923710229909303225786568781235898564686965404855433120172696291332396686437892614735998884873899855885296751362968304265219861106502552892348413199403137395408603101795034329654396507316501036891689974917606293851365133717586978385118400992289006283440359778725679606400033656181231881029953205767718942662086165780496757382575915816617873686115257796100877141938624170542859388157711061933667664601396507980916184902766660207134945569005714061051080101966992169774039495169760603007039691726545943475563536684371609443249752811871265491865860699520179113744617802662622074216447954550313659634022974747718276072805605302121862575723676513933436717261489886028606976667239111052871260680884993564336927360722075966487068797457491053678475960036609872401912369723904783783678118689416758938578409767330970074757954592678545271760570191786622969471829913510164400219458561468980471327916842828848941310107273920075773682412025490612447004552337070288569514617926800845117236788702396294432670954200662515238103752048064035573370937718868232986918079886194843004467786300174214419961750699927268655034493702483996222014234514521586230312246542837864946563186269501368210465191426368180114319070928208347576073393807611703958404152527156529062978417726760281246729020953153115184527289037285412581564856273073042238677543638151402956165116536533674117519697088936473276710060164452617297616392524654913604189059360670871858823856699466859494543630794604136467083940846494761197782943565080542076757800776561153499038763020839477499720976452462669150030597006586264762097409526661257120321741176372872323475794245678151927920466304778944715553438031618945287422836222987540766537079975368263006204519484764746702868711095855973510341046999909615462792183106412772193177282248508324091213440912197043968414584101696162289383647079886996176358019742601897738036096123331296063698386155744385398790637128604830177894745039321753043631945212172478604696010333193328626126574156038431846158791697868076981885911082684330068128887889498737594243201468896565744356462091889600768416107989270268706580271946280670189829238837303587047277519880297153656370236063309641113422307161239591246584029700882981089409594451786266552241672911403637583608895285247790999640917607760128218324349850834444655511155240008096228207509575929227604482858370491152714560420978952370184872583607665374506331466725995993150242731570392611251722407897741674977297499084679734272065412689219488111920499549397123872353791076252884358462753105209803479160961137327033900289062369614602952547594800341792049955066227971656243888117115591368886465446060931770365432167894865678061914172872650562889936544379037816577505397371222425469356789346564751759759576109623180329658215292361299289787322697726431344728509729072211717045932618464901819800244359683550851034570637061734791213962402109817249151428617527757833756484630159536745623764123015379459413477749992715372909210724002135644135684689148795026426134551993099285185032868294046133302481429099139011322770713864032584938306062550351797285748224755811523694153574730103509013846237396515328087620078294592879389582810260633979956949012318024513192447369080551332776602383881473382209677960531417446290093058794709438220093237485892700007490608402554165414044095372792871108989335783786920370427934307555893344447007957176739716700515121922839519215129903525105191148642220546751335481538098328665826120065154356536461279480562964549103174379752189375170166315518939900324314638772629977316956898068439786507740445239014682520107136572645042344911304330546604546319329775055695402895171412361733834401116678416689507982730227353582254942348881650256791156132321323050438209931924714107784648276473478069101317919732316993809862571013768453947792602634913382333138201745676033598116691721882652954805927281759951757908589303565571082896227617904455519045634177025411426709285598072433136698300529947765020560887958793616215315622919817410684883399328139448587629110889004817314465869766504430168805175386252430380417468539392276271055210218732552858394600175133134809559195782195664968442017578647162198495072192300764625897973099016033647515812545276990573179275920277329144782648300496207181402156738385067144628570039764020303831686558198921735917865805048294274002185251382099107505124794795160236948694420479725585776544733554986383004869311470946534053425817984255305492263571092788072411355330589999661175048108823557673360865554312548443783972898076825617227304187698068547916063685988656782032942535977893836727572345452057340132410520858427678633912008830760348498201757964001354570186545580212261124342720101029330954533500105978682174275209928176289769255965904400442172043855758868291924760052494561844101223364463443056937549047073349612071491849872585430386618151183481597641186459511959334823646787742223532570708104424031942305287625045277822675344372304828143652014334589873147140376816323074027511303309758193465328562435654922466499561053829497362617665893387234336827117453471162534334553278539841714864858622210163475246121544153759913739095027271084223134134253676099180212340383583417747925245594408472838575426317468656254596505494241652357861882947406008375491103386615998105018380122996674893800795921380608759637617352160798616155325407048750306736066988980161340785988868681341546049369157292666218083204968793520524175865706778092092143771250916048318247751633883010755193439579942000982125733283596064504748653229128898141420091140956620466084562578921759127048095935109861350017801213324420786630339645150628920106814166927746050514097051721226816978947296644393547268594596268635132967575836560727112913113661864086660307831013848938927412855347254528026270301818551830260649950093460357055404003655194596802490575308230818150770386975323140633630256884797615472735896996576300366267306733481548144072448732274865949192034744118373219546808558897770638797936999359567922676130852069241147662716626946912923524999362493720817839739019177858082795671331632161995287505584187111219798948119648788974082221649319689281180318111067094638017080854097140634384736135317140467030103627885591326603323394669776050688430757764942091139398616425553894858761767681825636522590083951511518010892413456541954999055169093753502750502378319590352643204461365732601141487742651808760464496410684619929657934020132932052894637316864479626499767887398578120368441462552093546383394644971952274717292142865206538973588648954516488167509458821329407194182930740344853450160969974897878010969643124999465810937818952593204894057325630394230875824351184556609552746218596895832431043334527760471314950839329228861149343430344790516795398435401057200691600440062271437845843861977956472308523857039429462259885879533176897230641338363902459416446826646307280054014083340776578458459843489970086262938971681137680950482697372059777427567434534417905379624617351828624694838603148158734775845063060504455881388337194530164625904847630887787788627962051578521387456930693837288304347563628816191558563922122772670207397362796706766839414272229268403369986824206283966271760403962257435351010492109169590424160370431515003706583455547167214457014438754083489843546002551324472192383209489943266012392633430350107427241878558476457518840273432898711804587580058506947630022882041775935046501061791554012094002351655805762564423161370125394819419876426692616417692725264005634964962750006230625408500612035334504736460517009604299028284587667320760475229252172086366015853996357413669413883545403763739376117284952865317031469456809314053318553124052972367090704604474082910149477002168323551066641748342819301141978914095152013276003590984218324968511185626967672402356532938104761331215161003571137454607128992342567462229228534344149766149079848380899436963770045384797505346368919960136481182028961018212896968818988814105072521331949229218000871475400495850978962527826195172106766526094629563363184084512390209045038375148233610396160602636958491905104255361153757931742485374652038097995707700603125402063704935580660374512611557718798787459440028373702320118228062614043994554159987272233465177010940171749261957718361036746587375065747323720601721241193038578539537670401161749258326699916628108449467334495546190054903324064518282755626157742900752898740902540313985529013081936227477648560374038355365475448539419370155511449575347888039345467576009089594828312623023179041375901101141394117410905933169572998699533837662690772089458496387535547642308187338894051038039351721455949191127959212427962054000955243983917053842566503481233990298970433008456752794254912382176491337200243520078079180479974816852514746622564560416919526133591285683153725964350531239929452298274355361495952501901198870303444439923342522094834354741847062012410493235906608400978387223438949418573934533143365304315557356734896526184865829175268070127252225858979125807999683828116752048619800274231847539389929657922292676363769782263608658228519152562431273291011943112592367838472475691289255938504246228440916024057635980887135414638290914743941346123726759552332229930875807900090857880450020988696571985451384675283483949383936120290890041457265505131982707869768522383669340497548579461455110211962527702172524109641464279729463048283599923267050339754074860813080252143874233124568031081857918898609212618053858825007876974685813750613743134909441846076920692812497891321148690211367822721798074146672525336943884921067389468352675737693686996240778830821026307931230644731582290099898659042857673600126290861289538466126066444430672797157443672316852562838886884724673500280734901145514370215417622721252813642076256140854799193600786677272895712127583936618628940331109158122496456389554138213248126663302878358750930185717892575545215833106849220590810961853406532096527939621460608466082279296194214766828599222266978733705089110222342375885202940129379315450249047473010193715382136975855411944806303467536706893097193019129046687767751473746430488019976906863434872355029988664996194102530003906923700406865573749709955162760612380176771967546313868046982683862765018970275787623721699346069462670130168672728615062351585696865184771335832517877859042921048115046491827033484328573128299556339522608099467137466874559600485298781327430349279552949433142942587340668516243885257108516534257717053968310939388773685309763269272183931094768376060457627133567586820104206038640584545438632865978506306436900981877985173814567226958553774870266709717683557230172768697539246566978734080587343209039883887514154057484850367686215478055345916340408783872318222846422662690250111174822103639140252817489841255908113551387692761202575379352930846267872275193562055684193818954677521216024591601766650482396467538459211900814152262040611752980519875436606670905701361114716930946545983504393195741214077452988189102888776891696716986902243358636682066662719965696121726551244302827736008989001249900728339321115554357100217340034584178367113329644109098482783912846403214059716024091253678304409541622876799380595354331334218610010899389172590885067220035478438412855608914963777153428964614693213602988326728541337242093999560166594742503180056664184429380049381927472812550007576215454431785810991044714847797051283024285779430605271604661624251539662629520251809652709703622251458637761848345913887945988983445153017093131287477537454330516987932414568307096351701079246038255051090300993610997324025419647640557639845476448888407691079703657226777178495643872628715649894951297823100062941793778762595268567436033324216326678006133748544949078057717579253587579300072255422558435535328622883837068424996606227840006898698507942849951476903761229287472731638397659754198295724137561857630849700169074782034673334738465503739692045418667051654578914999443574049560221463014852729138231087393056441075414090845021750525756525483106736254937857369952112553492392895090277574695002274211738516533515018086936202293584455114526344212324073663565679473505460404959734304061260362617910129137605277784618084396248008035978730468153046124023436052686874516586851073513323312821992142300249694851044488310042335391439669485128568499148687191349287946770210678113326649547928620949632371307313060525019508283020241135263740342596957614013555462959952730398496337236199144591162217908955819325228082625924906628447022487018064999702127141045664584038046988931138327178241029341986482201706561093667477198627769862236883849471258048241851062730620538999774094524656877036720844190574750414028441001037005126952798999402891877409654638271357358716167842199455379673827494933545648711339154359798252854117628202464657627040301534840325749936305627474378583467684560837638152180994383975691207392626037117397008306281965728459848608738648981482884534904411809551521205103721018261336389917126205901779386039741264548101325256096796480416180454971903047137301178120688851161458175987574533284037058225465744249342354530377236703743019499788558758453145958092671437033437129453059827088687073987485110968688923439035085898893419493211058062559585490033854017150939758224506367733861321578147851769564997026392464004087747417786734615020699935475363759757281414678064485754432992921574466843055070179250694383883313081723013671516124148761331802241320393669002453072447829372717763815164017205674028529529020481980260889227487618087786849645078676543718355082665467327369969696245085976121892355341796444396613463316359903080054096999853555112096338837479519085221210548585204005453543467884336845416406949984513210559152506522353230334894406343297726941435812521523428512134556016978921189290226496062622348299896864270546780376862737189409382569572298654084691265976538199547962152260652394470973522416277127391515813220624446821583502030457572733034267887488206978723507602035040864540064959901260922746777882795915836842540027618735920577226695465706145586737986491790576440407148309714963473607841815554929765840773899901620825996824727612838465550515498385270752540688759722847530883881492637204625705720515151095090754109476533870874252601398232612326480051872421914683530696738851211389081155861364414482875513348964013050201541188545967302567795245440632617694450758822038734442715541265207699724337143754532726692804986892383113779534032491923539007848411778450375340919980770860828270100597376130458577838391307710664176125710723767987015187618956027447653753547510879097595493410653291467623394625569667328923600173169983620900655650706155216631062792508491578470759849421643951444046928871766804002340988018809480403937603758854077107233783650476058094235243394975901371841445590778049161909569867585996091649878623974648203163222724834043973148690057469225561535285127878339063855316505441287098136231051546676002917040332082186618570392590705373359162090676759811074146916518924627119992663459836573577389779596885992383877800783162038192304279519751785350816957894123380267325885990310996279062480267165443134154928696214382833847576329603008888304139788574860631324511913404529705096380606391331924124879632728325050827519401570674447801022708128222881527183234514253783685016847219228207242188630708647156921244801064505177120187514667491877362467631742780441849594317414167343167120168667090432596140763917767297783606685495623557378135772005242600866598145854645995404954400817148940658426905900799243864256689048243944536293335371251564717226631009568908331645560445253334570178383822220440870463866771889504200799291753142116195382018160852558262068509059653066368832860090812021783683231374413037541635015532144075162911561271993409006622320367713696806156768458475024475065234219592765965042506891447975683601781186552802707140383056081843295591373335763149878352610591363581448049877031247118544018047936392712957976196535760896711705428560213197032772250410191459768650652404860214977138201325760649792780324069150693738578902701303429122255798360406330391628033102083665547688158148267766665059297885892852605569213117578559802351706081337803382398759970035812268606478995406603303632103436478063146674991743803109124043110805001661922834499861676741938902396467978931840025347740721698439226102570523736420481774272625359963954250836045880046424385186591069520013139232528539963706645762007530233745650178998410668134500718340319377720164418593348249899962227764589589288053679355964502885984338224498318405805476073274601281193018160306818796172198690916491032006625101640510184539790779969875670296688648333492470752200836441612717450662033464062072083396423808646489694210846669218807594410447341658885543964156888451896055190981567700530141692362082345282562955038994769938180799553983859181719680318665541014765117883034293920274517261578689727578421600557344725511086655656772123067271587225629165592026170344794566391184628721041619270778878794446165764864102835702876230046546558084478186506997680243216153637918401105944248010809811335110999484979326541827131516844020331313522082453437562912196569232173106149542382049652456701400105118808145916697492046902949920130325949879407198301867796977494828027328988465573546743253220382661338877067068496201339574573283963160404922459247037141938346413715513905267268555814793762501167632559214785246230238502102855149506344615419839848386488165666983573823647714750512970211522089545322785160040486222047449219424419801992162193501368703780050880709152952604282879035747842670059804339856906677618578622051361017240290879399703972865582424610495030317035819017914455178958755350996025463021448805747474353423134076431887529475191935210168342146164815278155768152086722669910958935367893706117489869795553391687089562767139638457462589804570111961625503173536007634954345403974618927394437459446537139127227954545180335523526012939464637270167328061297422903581748703058617086299720464883951250390939683352237573829341454752200926983717880779382227819335060485416705420198028730784804129120906404413041462360960649043776113819278381656084115592761404339699910038045503895075882608230650833019409717534817791541651070840457050516073038442318501919928610014005534997350654405592468791640153965654267349698336565545622007912636889217739563716560528914281317939432579281919541209118987075851610959185425060046603040734396310301474910339972675712620864896795665732022505263712441924959300729500089929494296691830781956944590096016197757644430518614128368843662742544465548951763216497476257816540787822084292292449865752497366611147304449687658028509821040575666761693117252567174084499200334943640024534884867175418064904005608627812523292756144426659638641593646211324660073322802324786467525867585981560473314818270887481107581240842216261492759044219929853809086496481136589198760057517098401705078651680103301310987596621458245623224385684881160214623895039476850490413121157696668733240485704800814852894828545042475367221053931832957975156229587467868198877922169450746068954546163142117186458997076646353257936534690653087587308585868742291352609539877632537293071734306037075687009015968390677026800268139519437145177141218585162598573404551613789191825076080734287163409897227557192107393625162930566338840257515920364233954445039857890217358900773680587457945976968615814761152307216906414935261933486017309402551037627691807450197307140159022153513478761157393542742349013783809524996188883705081544665612786871720957344635742598678929042319195861488231648046039117304286963843292215250941660975720689770808107784748825832475942390833372118477169848242203085387879875717749754159340436192092799025845234944945567246516532201304210522371568109662898180305731624477181065606675715069207322309745993462169434393621553971207485458708680614377268056797130402019616899791292748600086154752910846766786811294760130289715556888606322412863396667657322521136243449135376812178813984998540459244111395139729022798139237350550245883153005619871444118624939764934145179250703031299462353562410214952950820397204296099114567372473199924947167260620485782167690133002837406972761352104469013867671732532053330059417489565877297129555384023831326866146199849037881089771033643764888989440163022187168968557613850379728792670387092862265248519077245189868567258231481767231892341140122767820144058316090310544928913298067929378080967709202255493058114028895611883643113714239789130123321500758265442547735095513634473909853505029876859072684553167928758988470944306111363317556934517868022616548158562246158933965102945460516151352927493216694165676751423682702363883724976294812112947063589373732524331314394933783282101733387621358006159704207085298298518303990372079676446818691384550937861742574079035407455091984201314885504948050110363190546952155891584589178157171316470540204762081232241176972106711741508696298931845416067653520801103495562143029730625813890357023341707861907127183297295449053847962487246712210987086689160098226410449121821547996699582303760201190440818539708201101146930833116600972808694661632566103467013900237793518679856789766273333394858134431273327177347131823682179895413919955369306354942655664620125644393222458878233480855605400991312348163369827229503177348788748130678507757252764832061860651217054015117734021784266486189680846178827470268990316001465437220238152455717038469884552823316827746679798917455937302020070563765690044373196743311126432203128361558182533023987717199908102990797590174164581724092461859343419366373811148236693388731241778702454948624938984497854504221012363997485025277058495762360259856311145391631715939957094730061444218188109384167402043705820321546724665105192234338343655825781387350066258317410786564557904216040371308104402264262681908197417084852920841295057906664415297403466530915469780341553030401182285727602443908834326815661349570540323141396111716441425800796865009838666795529656467369996194963660680820534318358309716548885906139528968642489162407072074472177260638002887874673332807996376278476337530788101506681203307064896218865482200455474712614378449760762227451436569658414912294310201580407328045816999892448549286777290945091871274045791500969422451764682143489266739166388614455801974827753528207944723547591243814699722539941509206270768589682079921835918529687622777829295936936980301471045413285163789767384036432230844719972195579400641752941153786275517663846238147511103655136644748395459726244967813033896335547036248283971042318966882192857155173284561009111182522880700223961993919005785621825948018433819614298243312735438884756542906938442742984757476973944656874706072599486976691337196867874798294706941615225862107123736566302383874929684131565129069193366510661374494426288765665146015190278586562874584424517384808639799760425332747605094795957578688626951180352603744333686473926065342728874883026180533086479130935852263968497618542757222349205623122472436165962833378490775214822212433059018674695464722411143672043136801114418377251348286531233571373350590645336632698225143101571659377144378088604162483085327729930959827828220893445763449710532949885611191087751043946389058948843593656536442757761329327519082850978392393152708936545684317600168468096594816964426985820287832629965576552157108958506683771548736319580316043045473016192052797149576122956774104444309177985920940463221750195458328096762058317757943561667117704711564472713296174277590452416992073049661854444323838654405468129542295435990494180674339744575950897246262366866418015585848880493496327080781144992204569339992755188082410420380146537988973526568533448404768724186444681224963201019808324120897800273824256793748715754276698344271846126021726845337848347336018136552456580862480998571504202327707970339548666444758377959706530255939113090702303111129530718099609475497704504146318838654441333673736683485463046603432056915818812453710374907866872201090994822779277542178548186375343918421707333054040948672340490226399168462932510477829181453927940040976967834790298530564152578466121148567038883309185570116016071124192619219821373495838289832698132806466371278013421420682437365242671725593263775580956413466885048031281921608237417167404614474752252676890908137022981623319965066362650997572618632497518391615557181449761830039765093744720701241706824571467683161476236130353675494867181754356511624643902009320993323667552592702507356294825024078485032894580125553244959103052212800427390054122102186873615603112371630929755366015158380840006760820926200094083793367192653611267647772770525787457794688259309257142979232378454620277578216829833085869878015859094139100151877312646310789644951580537382183303604789049631531875713655477737407982359762442189729153487939144630931252543790318525258804602193681937479603200037422336856911081990988854763228272540834584995180473562975899350317008195038988248658719348992500897797344504009308787570858100968081693081624621101660239469726066279768267310845417201697928638768105266229630684396256599779269287647569044123505737970763614101785210780534687373009516409735307495197074615504648579250441197969125161153929802138415542299740577179664520198217346485508396323883380123346802506436632850383494026841347310425723468201861958779504094355084713363171665821674402727955261103492999215358728029391958177826717533901751862268623982768307529682909111673018659336910444335920641254798755476972794287091287134042255606395762576380254288200881861030917398105912258250113421467075292221380408831234386853828879401267432516054461349847461482969241866825896712533737048152818897881983752027093991690161681208552596635563132115257738037569394305073080636997542556038441804589196499497210349242839695877129884987503338838746991149532069631141590709176239512247743418205262978012856197360186957773247563980176282202091832081365068428305503028877117800043307787746661386879434228646356648096557552851815706437779337581627767912456364930046239123270536331610393436115925715257347972867830107202317638189587635993558465623261188613193173092631912650138857940289680710673225952237276568171298740213289200754207336100582139791353960505953829969487108338006844814970611599710987147031110288408150137167949079032261116091566329453889272002574625442351635886830025850029124291754872595077109026413828325640310038069237510020283691338997599043529795516329013025772359407101139337829029000223230144154699044452210699414115936249067080648189970595241194136187308974139668541126212947013776926610124156916673022806869300928524892510881760729319909049852891680312110612610456902113551528484592058968162026648476425511552459290534914692384547117270507810431249057394785407402123205468813476637055184150182547208026297198499406860432491514264177089833124212759979177785021374201179014353085682890754755301061142391565702634067180849463386248952960748018709997276554981684613736594517203892812758269305252470757444771449433123072702187013527032659847761972325126570748097496578518185565909697267338856985565984447092432773661888005029412878665895262238970397136829529514875489713402532910217255910963951634757132984784896506146427038996564866783178435722097435246031162201125773359207504955549205732195061373552794073344403748672748807815211599734952185447771553270095147473515692019871364320234401545327746265393519291035148078972667653084062368618408397813281423157287414808531789983003145353255162986330844967841929700948860476511346767225216671637271495589619929377868223834951994400103882018065940031524964347679053825838864463449140078327985645974794621334224350614958441516230303166037839329113096185286069146268127535346788373388984038337789420916481243692695516578865684604964122336720448927578081221668887495144736931606756866159901305999626089397609367168695594453405028621094466316662663680062239160012501353297831714351073169648756703664723774235758266294395657154694655352707378694808851831942811187620334664684086124654585372517358176651407835222889333679527881526153583666603840171496795522945327626994155833791885559857511564898138787148621589033898783381397297257675753243174755900307163764823616022541773382013113868200432481232591481261317612680938085889051096600674864515241217597499143623018243355597961151159248401518116612748128271294225479896567307947949741123399623040211357721235412036192007509419201025160781174546745010109873341651824746505136973048897502109725681484746811302060121257064924236826833585045769310219900021084777663023704481027858231720564395376926936609704500995532435428054705755466756181567389958341117095975586875756116838958151952292643061504238913301179130502265445159678706191107410163673382775224764413817714952252258367259700723059495236495522191877652653482196773706860684051570264093706116984776860589156855336429262417547637493294230533575598819936414070399210850804682776162012093958789243815608610259297181394772332398523510093904143700638280324947669309155994818707609686511910616687914004838261331670373623679618569591664480481585631319094984505960676910151924317676077724808608219224171016152109627922964061899547099259162315015199536369606616461151746373696335324575700878516339597769199311358302451361031932615850162574056557676747626077077730303668831056572854432073611810423144032848953474416379743033149634805122532021991869317445093102260164340572046863808646556843268607942841831654689658026993685566146423764026462171793446352378278781271405294959774863471219762640623401199563706570443601169948531771391724951602206302853374921023426760674096069344186828733222304589786716188108683181718582351696971353322065487518685648587410193185266753947133761855972119524484549783175430166474035981777440385017885692351579627132096976451878592669192541620249179602254563553408989836574861921646043375608828485043441313010122249174238139292385037817208465955013652530169513146279485652432792929264354129583834838841858028412835221177918384054710662947530770341204419975298232729765039091928713464606358347513362364004745755067459599719817117468026967692343883324058572197320383054268143774729304424786013103879578586256638630624707992117717059571368445870832725632788150892030651522301915382187723298536999975821184150512391626498706828938248095317188951924070497612891564694577561691682074321534690350090868567713957424626977412794488809079247213069418818412276363846867716766784161784245690757999239865861449194907717019459230513790390712855738369388499540123348546737371706406042551789621907936244796403545801356299760702257985618539565709862242196224428909043469339311218061785746205125529246967983378786923374243992380427389385992194495440644150144857973853244551153039824704944357997119483439435235320473229154896413611078274706067091917619950562527372437139797328406076881443093936817783843268643327325665827376813372121941620259856300199242332835887598551486431784109327175872568175289060517271444703062880457411519990045127818125601843059676636523258402558570926129713556870091073532182762642230699035710990734804150524491046500552695666937351553362837115371262854446189921963543783732029529700233529280437316658083534764046644989828893730329469864332371434530797155536564270375533722952641318904334956588149461785519790137313430825566829875946678885049257238310253566078974407547429151914273512918022421467219792505629086289688911273627404161261215898310055308570939017687671720644140293561804237076480215830389306745262151495999977527603869421618212967448765226296180996322828351889292536886741799239300292556500893972915728760281784696594255807660364127793662707960654145898516237480469173701881162642692531844638285010227220598358018141239873259827448243617388158605263597881875725632533305816468023057624147961522612170133176005062871344281649824080089090476903324071405657817284791869926339248414347309459579383782859146636284650367330671052680205259870935116048558152746579119008441186437207608012644880127494865863128825868637856938671137680324183516748348593726189940137696514314591712243878680585850924306627702702180042566482395675414603110292226107757788534703036621529678757884171297661931862494103809270985595603523208633968496318486208359718353495071279305792764075507954040737340683981590107105934286221701299572027255414276934863003241784866046942464367059348685648820370642379987945451418062276507751337198680722486482998818117894109283333417745579739467418079452917944170859376963671238122582288827088543336837754006409515406254278439487543468789024810415972709148106552724123229223521673195639295615276331431850034976637935836064120565131974875204899281375820431763239314264979526274177235287600109602428279348307477540949343821749988992604629636207538213093465493916278003737490669042791822239620000217235186742287042941348785083153625511096198817883974038658861571771269389004062575159345873026384640713504657725376234464762274780471811100426643769521666635242262244149866527450918532552120277887628594707717140954264250147447199082604910992463777662105088650143871557169151390107630103356088345432634463918368997765737332353110499602009072642686788043257016652015075416520979221359472219279383308502034336838981335875563252448361615661348181552834513537185990158835326680628177718800999694617158614615325532292239465872085966399355919087865625506470625381661424672440965048975513173089021465892236796981780888342819978687092523820046481712673623680830631033713159217363801503038041281560455058441677906186016698410098667443565705847073897676180448621869463763357719086350983973489283647441541891622186859022379902386025898451482011886079566881408165000367529156717845548126829847042109043606324643264101067877062575136383234758624838273363918635361006875431852792691737129667968445907619769511298057210714460415012620360827735358690869754813265155801113093816307772525152098851858825265646102680152417304512759100503967916102552031379139893495692795706067842630895447529516223454918026899282907421292642968631328096263249563163680311256714616041200413149467184663291058402057212250468470975880141042476471094547237170577222052625162051323886603676674682961728017350978105219124460836686914884700352216665384290007671179766838779892050837584074582177447500782019249162207888160330303117914048157207401509915076691628778544097505954651033096725434939466508527848875368196840317277488900170018649739972980425653637332108355618258346923178073709798177888644368606928203166548347038727933005821584321826661744842669106631905827667082819157677080638330246198238631077475151513128123232493145373370450512101445757455433600200945799792750151848746727900269915392064511791775506120946728651846789406256366131129931402751852989720599125126821264408948730449742962625979363763951854367396669378094836347546795337881718006637125293171837423190761862883324114112387877452501977585497344570610074654831663166421818207119227179106568505651121238042294483758207885683885903357923516859069129752017020249805817038216242165944194141266653751421161888572919061496235913419499274522216407011126405170041764259543209006045818387035996816920087470664950379723988800268696915308771536102905813492486916502287447740839340057658793346267102977513981441478817909414395868722750025185414382427210839782151175525393779773266045857996729122732948881983738638674025525377669661182195806831293341089503146740065901956149125443041828422473095932357172088500832776963160443905965314959339029497500465870557402262427382347458173165586387416507691037329508992049581730742652329975924784989094323009346545144409295962912725080544105449077853812292105998329065496469625184197142362094328362949002549889844133773897313796851091990404588488998177848972948834642274716015873681432543075947356277630500594412162971377802672747873028070222686842318360048624770399448022829666331603604558751089819756743578914734997946024795985912218894177527253952386663491633603074147496648775653625022001009175481194345476364668498242239225020113228900282586761322986942426613931339252346040436646526962868750220059423609803794710786191779648143221955227499482778268293831395757082249597353049503624472765559150005279561507778734135500465442071320474514847578363337946428269692443149847237664212875810316606443731151981713062888835647039572314325015773169188679670660005863358237134557590007328556640205669908050872379967270179516124078796962293735994941766719910846047941665201631977230229714632406148014899938856713694569657213649838998996390525501294325324552464093837394797676737204134232372984436785832774868430872004824614476788150370640803838139366538342425516257833462292799239976404040652280352038594176411526521407559475014570874570271867520133980524469051466727598033010696082621420754614167187783644059553937205030942075922462631689992070198718005205499692021419293199144485358299591852868245653364193425382417705704185447957780420588966692682593195016498118414984605043359840119482903482058217756333355795358862001874346494757797511681912493140190413295984185780880068037755751791205711532684410246857350959440861193583512113209494473493246211268591071247812575270312943229512008504383485845631297569186879666864422304852737303631812397134606481817915126474366793038009572103459377911432865814796170463676039098560533241507188111928780103298897937252747897910876291136290438899979109147111197787987743395686146624761782312848431317751072897182390442947594744741587606077948907853312341625012295627919048992140788491142533080372282144522697598320706909114528863895199977518242921445047263251380896468556265701390670084236089370785851668345426333229746875337351382890139258926582167231477507761040541903158718875443403941782127012645273826620879105482363097183545410800251345057690129436827977061579614872909447979817793343967375549592399489518489302608571431413457731786194437320424660197378430008825326844958130342020537257913259316634501647789352217591937383328806386103215025117163633099377325055990609744575970151219040392063452521575279126157480198078949697735967829318820326291253554742396051294709436437083809134743937134935094397410606151920548451816337645071807395139574719491763559688078244865649416622799015788561993583784024621856941987407183324802028367113454763657111356195036354058747834313429270941187961405623977695767641621735189065645800975378534851718058658271942658314409809341194331148779860906263165345210827390976591769877351774694638244705138520619136796102578285827744568555876148221899782173368461187249944590899467833904376311317954154779486861214499014468063805786085773746102197239994774890984309618853002919805965076204959912090898652914578959104792230236510234976650728193645704228985794682604519924497909326960690364819388707504459873540140826939353026202680981167593488859004119556105709416000442616898170444703779002706918244812079815671852288671613154926265868625346722601339770237932399375440052863927764170221438740026296113367540588463260902577581713303662515347940303145527212286910708128492443258102414805589217918035935163603344420419892032342743677467020764919571652045632029248764270723758598989944104807979548050031563287591894889655773597422757235482261936195132034270678631593704989573626212428394229079098208599683114176822977503813753195204099067239134222882587713677630927220646436394596657104574516985536811985193005563588902296646305168271336547720144235146653405671819412975911475294587299007872730356953242945564508256363821952366803293025216639854283391193473900103894181002550627051474585457657527205336891715540324463851953662205672254236815927045318632290462099049227394274450950409872519459758625348637350324538127470741698730136735117303157503580165752828165777378814552212319534966118164213468024398796081292469126594229424242331781958025165361649271904425918326754623107507144847798074489988232522401097086753533713153064911815807188224102203699228935073100284489418596463783327546817776489377194394827896525581679172819891688749085024592047642132825890536919060860397835835602140761047524418172312889536686009177204717523489503449905012357817362019584627054535617686754100842285940353649578594895218050097568807853892619998051799962642444038409781560982063372164964313692727297970031843705595907619156170174728817399791268940685143287873674872516955520154460034615198601372152467966285421607949348089182395989292750024596512127221398210457486833548931764204796029590704644763641929490400489204719145042539786046369934657999064467769380058315601759972112135075141826781164309601544846027235301697384176746004208745381565808397300983411750343583108646930397381208316281494661434276333018288872330950362733610785338773349688075336287264335661596552783407727742288626140081741843199651895275231361878008998347889469920731961380990572924151597666531241824266647499190155678429410550040243039467506120691254096406832834107065922005827248580916179836315748242488459465680169125826324427177956791413097738089845479938029700983384931080871656190617624310254331425328644868079886250106889557655586476613621661113832752650164076154566122328513126428346414259908537688492729979820323560893299312698208404788594899683526966106885807344540893739113233184925004764861443521767028905593026863857481309281223668520527717655380581488625797584900039964566673616822617359975198124234481227552092525597440830491708693942188916595250912535374118254539556308893358945081355016860192231513722045096312297136817580574655231567918874247089685846422609309503505251409064096192326108263784584588977680239319339755102334396186615865742142150161749209981423681101606334286977527791697015405696149254420611940544595428283321699676128600236868831527340643338663586359026305610355999026206200477910006848925902840513781937391212462288418954432808900006684976111864257436663452326857268047766468886042802172678228778920455277903514150186961531776095941031307788951993698235349329657377332528889923373040246058602414992938018883525744336408544849021919487247035310043680051783441624888981969457793860625488449750691789529928465794379383843067965402882405577564826739184405670698241819599138316684687105234332504236738629634244352413132363435100785432143126565999062331990021920402847814758187852688597338333744665624521875562097952156603539924512606845386959350905545841899630367883725338255827219533361176681103411892164597417764649752200373780064229181887745576594757327006573022903990654669573249548467898987578267212063433016524623091456600485713739879383172723718556123618828261836815638297516559633546387697515112986251755179759886352814210482083673167762878998585126870765570731237275050290191391399087563856659021819971632838485381914678586981682229360501401131009487670249984802474552680619679203500669912497061921526925117602358194987178068839379459813031746898906149648627424455034568525746512305670931599283147759415832733838838276556723647824010295761618625084510707012683235537873488115524566867001675729988101331217613961803596898145761904294937583164192452198034521289689709273684353757555524271499180251025637137408414547321732461595028959993724894874965990321869793827810869239440975275293623175053544364800749539761621784460808318402956069293642422463259557542844550715708454823863219135747728616318382961387910159711938646275545587244832612851473152590946681045524229773369812445706042554745989325715734069406988025897716036958142521799164228065585017789607742527064543459956847302879909721129864467423726453740603250099819856589826947806258122973757313702147758427331796942686061180154604094722114674088392574700823058342898458153621497329104592515607748254486092261022272597589519032434050248803311733193468125053830368560391394773169847499575770193934570122026855153116899988745470322206022630562334972938646937858430658751105358089255134778570277442066013667218371548294513975832475760374223054989023397522738219189293807739004713230469364120639414551371987716071428356448329205841593615338904535215150115100617748151397927788734057072501960824430713474406818117491007845558868182739589198178867296224187646258888510191090122570967304977740501462085301859462993763685189716980643844236619165630218923987816029852299473647555739632415316044265267802038918355097200737558496506206044333239267404994762105995824145870407776113398222152488586329950182939986224741768923666469756943495186727125964632709513319394827883011052091407715514631163992995645941313233733646242889644298989765159249565429115828382991136929083917158921344035336526010099686705804614261688515413146350100154760999222669632616210740214068880984222069602215423807332846413788581895039931454804583527610567423016518730153606770218523144728035170226083438943533726720195361000367768876369161070173354539462485391213260824798305527452834554347134266138841225010011627015522972769928173406352629333492969376697924878925333490541137550430624928370684714503327209299583996652819839952729709195914137098864251207519674185023736248224516599317674693996142066075016073989244438499892757489839602255168465001232676187565160300656210889061971584315678196779782011648911488926943641255617123807456180450265286729541390465905683416039403080406338847717981217202214725051191309705911931251230517526400147508782871626010259023151433854923202746448168727256369650316918693664030659595675636405452406040900122052079049494050724133100028647102615924191455603346475062223633006076677072950871787623320732693079906782387433953213698124797740993296177333559335656172081984619798728003427025401021086617902440107121906618726136612883716485588677796345306020619403705770511781665926583492020865835165845106507806660598298606297138724190861120840738745486868353648438085090091310660146089282241599553401276505507269409448338443990617949939160939697976850205066609776878981314961668493829432332686275534238176002074168744184602207497763878044138966457277095696063702647033681299765720561687475835689948827359937604220398223786953906512938118434753626977216747046658251513484393759795209593351084796146768332385634819891014215281698337820217680959872983196193457970863906288118318693568835142836481068568270714989216303101673297562999728590413317564431257682458925202577116933981548734988654227069460376417077190591678028142280223295204379749687502599451274827312927891557172474760216321873391523763812422880326199547798715145228292995090872962323604751035234997651732853658398966729694882886582869911136896997739040806090257191134204258868840543315520606908537939570397258154206732490273867748006484970604018427065590796292350809524841417738907978975776651032944709536503646958018572787443552781075554324186771901175758254547525459806825934327837432327124943438259906228069386399699635595714183169485360623524501156054404378199182942818034349282369308024710611416935538046758505923544116845136776384396448907527917442708698114296395922528793095521179638078330029416050651616567940729956569141120813728238932962958428913411587150633031357110100890246880343592319256367859380509796210658548847599461144144808897442908252547063057448782798551082007026666305581599282944619550694522354638947857473912852688500345207709959734591247095521834157296341739640174019831064557598434507604071418709195725921824716034097242360092152964661916785333980207982561555662327891972575517608345553021241141382699953584305436887629589644146979713782317605132432979488482724280420948691847157441021780280147508579141218075114238560798650073157018713279775424264845083078409199641246441273120407081725363647374179993501332382162795916194732196570982881269273049888889256931038418736924411009964302275409458034659747371369554631690808234244981283789434388395476363085480105280320054834500971426246188902229273195497180362876632197000081865174424807876359665150905626945634539301307100822509301510642364984516849793225481235504959244052469033990149050837811283093313813618483927013445645473981642292086030472585993646516449706709849411808439663359388223879377089139788262592189741539317000805550274215679234848518770444087609312720859313686129363776469688188994662087545006039707418077328245820720588375431137537836280654862884798721053088251375299747393538601338573304915495201635514997032318622771257512624261758923481890152887607718732508064019294767043544821319790808529790227574261952133296702738980267480082087632243140606419592804170177059523674058269006774143165273757299570147736718970052711471955885769587830852886992336817180250840023270847199983465661307316152835198044226461884485574551694238181186241269037579854486088077471671664508652945994623204544250034464036557953424532700602276878060044579729407574519131587220408152929049572288838436116652660229813998343400510536559790440957406195902004407160170255065653211197593461758404915011866497157925825518982028600798894373924566673827073401990213142205662434756969076690464827258134564724760209562258315123069265012966145793599095997179100954105064643809233993806080582615471844752540357299269893775548208041295817605048708353547283211910062719367512176675217392569826934575301381681489668723735471750062442176732528191697723766557543446200157755075753600864737066258504074101303917286046890988242945730760165896339682024150122743904398439841812616675998153991034837110323131471145512216438611623447418046129958649026025326859261257355458401958446067208380902175490758284171103525743129885903178986385410715627481741368552827747690187428125120268305928433874953961315131706157833628385397575764150491732961235566934077139813969834072466137407312574488299629322646408840413059560890931108818722481350301999022345657271863087754611239643697415335886389032355795378607984756670828720364558274384377878632946960077074136630132059214372019889898583353819434434216654974699980058507322177304815239663949624185709214591085933923215273434427953073641515169539067214706756966269014114593509848885536050938179106296838786786286031273240579084018304888160141920941959952716531135487516621717973942407705665832125011686648513798467472177506139582908915927407453756616127689232939897740547570769385346434808599536173894819816021759025274690016226696121735553747874443937839499813207939037494267010679283602180234619728449600358912691284487660220186022642294476459185142606667606806502109427321808648095563385891750146320660527822754577358739183226868181084537224239113200922674155105221231791655890373667416652518646590807285964056758738012304671743478962038263102074703973056809056278542313150128742212572556954601810861899428842192435752028913076805486407634109266200723980614504960784898876192575056483146181588744918298147058398006785627536214316630734527608900593292766367403462143376251181786393133091675401383479095054419480049751758815172786906026828306428474854162445108589372410622123128720809918088562904109166196339917613018227203512344521527881037801619129804967173094658501935428218769635415490533431416331839468214338535094610445138029762177412122664597014500340913523759597632549381704228770687795349589796032824751619899993614329074732544271976242747677733884139127646355062421381663600655968786386832888901691634192298111162330514094177694969479033101898253378347443620187599272530540040891927557148642006538784783187932248082320344241567044276133977394057547372763152544217267501986699430844006421435858032104611434592358882134004422482113407370806285015532418903226684524974565059268518308328469993947266838004070517959975257377267016307816451438102637116645775883071298676535419616535909025643961933721378791186713522760525027061724781734103739426670217933803548066223738558066225019425459441111372699978410256158803548629593626860897529816282726232111254739249378627127713613932081865610364704506427978758732365512251517793161966378464747353593328214483339122707312110442346036724223441799978327305319238843054318379577245962296951124000214097341329595309647659408131574001145285566355278024801140051418190855110856627259179813325271576274361239665102190192185749022562784103185009530227731265740189588589727223584680509099245408166894595425901827746255172273268699248884436068086484041840468635374443001286747291043892701760565686376856594791004445943002604558368123232579292305874764717112705606027229181712922086438896129576401579469538633541404957046523325201607325418183148784956244995128604886939616481887690775474704703293511327109630656648242824846228259233636157183748880546048631297361682918918845846336480022696491058825670487541775157979345556997699845323414166443061132044167950673905569523541824118356781126685649628932463455110099977681227497218767168134975756903917870233129501270045015242920202485298076496214890282770479691244861982940103830856716938297602531698609774379590650663572587843678966337010216607632749417647318608207459463232995530364391484366130584465294027474389526964690084891439935585517966399870629988998579129635242684175451734480425636599089254904055994099175073810887152716481767275412000441220135768897891991272545830233828724817278527126314793739054582867589219543555624998757443028049461582697890897014424032456874460259655997462919974124875544608123969728438640714825967637101941998735504241321892618806966032987699902564626192733746424228177754407391968602668577670400246055692002607028330201416851723741728151900218517161425752528869876873797364267567727793830612127519190333665119450877773728661907753702172664470194849015472782828811110751934689806932554841324423350789968259110423238420949926228531958499340498171603338301553991972074355300758336825720394876873732489267144750346380937228597415682599791862026316197941247200212007026542306404095032417274606938209306400427965676176241675379563635309638910117395240491708254255884124822974811985627668554544064625787345704146878832563947593202913745112790640714439884270390276845032658798585332149938643585349865834559163775578957899223562966324615431400692641470565480149109536494138158684437838493512895252577659091597332549790582604965980046878475693994555583358606837973927751735741998116083267186311041906376890259233888091404590003593361313859992598098958573513195776589999883579393940415097370189875854014673136269863990282456298685984901361243544927289224122896018699850275652506486758708680279856716960362821271832593533382679532812789598328866480783010005964090902186941892599379184118804801408014814086189476145584748326674204167698492254000913860485575149611760509055806858769867658507273892466119009049186469516575834113637978545046614330705312227383053318020890304156501500717488294759027102856634668577779116851943888948857631863045804774308123207835652437719491597085279937729641819461774233494787240978924971622044359564703476007748114444567957530550777429249593797574233480269226176824173707845213013424596294493673091951923912032715556240332085860236481948499488786010224353487056677003093179734975469227094091894452915662792225090394349862991509754641879735444638520365769473439975650720684587705213861826695593512768627652842232747910266509006769441797397971545908416792991979895825503757418898813404220237617182889856165995938232203899722586355153997335665478125590083047328150343186056327578041728117996353090991014068829558706014789615827109530319006944408287458987624627322409017201628582221282105002425335525237048731245003385164984398921366385855752211722326490369303859035764738986926995780323159675534177617418601794792888683175235906986978097750988215421698602228448227170047805871344266218999879707338571930553486568353876302082347515032140945476385224541837800882254819295908344612666855996397252016314365913027641444548081884677755899761599847439282778309064311415844232793360237294617888991432620313504387659956411944115959172006360557078488440722210802572314037101929996346640881660801653779350774221980749302486608200197908202364427196099918820338875351578138009510379337566717544030465968915576359207157305309789216107706460879367826787378716599664750791778627635696567925683807350129670075855873344159047466739971914697624204616477906104348876152332351538225979128635436001465011970049621586542075324602058155654650929029029740618466600716639608166137830771354624035730212270382992603647431493193267107160993044826321044124511620815001845009461017608203100322170130442866158840047176327193142121186501899070293459386830970890233529443343213226582329835949755877645569617844540906500672433260477162898812575395624855205423051863963432207326700819362305571113126829402480328079495722459395902953450043317991877438265816106609932514918479337161828977679047575398498408552084768787948899080649921856695334597953760050730574507522755347322296441189277470747494375293709377707189328346556276435975292235537944314661784971375260152458705012190998293036706173517842043160753567858269435808791770099987932872677042450187529069509642707567862056933618679739354720692836712913731141089536688967217024860991418014463668120065687228049649211424843327486378672690018279598821834864976694789992384234252851144673546428860035306109453463670493742874000012982695158966998085817493305747744222892125128273560198146228667381243239249547682208193570589010881149579310698817046739366680897420491645992782063148590187732347125578632289640055799465201512152375907070724779653567589638683143224689954378517049050493511656663289495032582198969896823723190509431400331780105613987505454781758578927791732855863458461268256904820048464451820328461064516329606747461875357899361473882744365336654544613951781470960001797716321932335955460905207525147575775059391686201138956376689522074147520747803203747170491406073724510356105805603161184058542641492113628058440779635980886817467058671601543689973851906687483089751490635047192675483297010773760136575675828841646556904382354737586085814025818062207610287440531188388447869931270149994018023549730089325372890045643038549039812832055244465978699410248921805795391410960473020021956529405600202535112997876511781910722205220501847134923390130410907434059547428836263652433354705667503233911146539515459788179834728531303079281136202798776580056299332356170839391559430564430199762129097439531811148734834394108508606946419887819607034996555652605096319673529641692229029957315607929542820854506241832111206761958464541677267554636547498008221059685948985824227776830516219077069529884464445475384029748802287351470320482267254069172549060638899987711842932366817508379154235428527178270520429858856881661283144665242220589465790647352946486128682829603412224225375331559658864165438387437734536342323791125900060664278101437099509499177859638895446031019603904641793567178491518610592634461130846958035028755881005258219311612426296538130523551137417792788360031486109404223187662811413942457035835930838576271302518438883833859472064718907052481972469757997685095736853888502021093934672930248938328378473232839293420243192565027681072467186322065444093789513096153080343636548600531958067738577718535402816428410354034346041762924566916872050219075289557811823098920229527916896287951681174787666743675858388767521038197009526450970387745763401958080081358059516169264062922139088032022266890149542723170242393965748808198151925997819793010989018067995398722733372299764238404217514921969693648739442547330267570655975170721299047044471162082409233159347095566270374088129276509433989384587568497927904522820400998665295507879239936175181529733915877665099204820613753280721376693567320994989662200614791329750081701068312323439125585922569842334455680319271398280196476511482093677844562910395553373537575620772057416249108131153801561939350497640149135462024853194614707478741497745575831588282766002447505994971245808770596483631103307776088581616057731526734983164116279030756465035283634781754134895964649556763862054999813529666321064828278673177588067979539687076127381479818436753615446354334168871448161256279542092091278704045592529754839802012135917008921628041787559465265252707831431570012653856692789891830516758494728349813997597288218941729977036979966251909060070606016499674633984483967960288168209782257061349548905185157149179622786593369034550566403429855360146942515169280617070959671364126978202161722202395243230103766796703007275922861757085725570685977284340048905216422836601418190461573226302122141262055634005389510160022103840421771299280027717272753577030598014795356194602626592976300815158678834535471323239132601471403785196429939893594958181477289237158993195949510644255664108862658109696006912025970621094643863407771824172669293259157596169158672108415267345896049601055661704858801743083755705314802787681002467732826344446527375458611686414330533903960358669193242134608290057467940375102699982361536776686280064817891636987842991168636106110488458961327696990312448697925445119298556416027936111955680667261776360522633401612797719393154503782576978174676195828945750974258779598776139192618639418948954946745315985848771633986834639791432667545955663056455451953614788392811045034122424784345902311627195619818283294930081022194999125034442576361143094805197192655558223179487317234593760667448055684744970925001758514690446005556159348445968388671951096944405693033198748441419167844820664629973752914001306993607490619849906416125908228824839332139859673964506284522176190373960127917697193732814787850078653522453506075126616590237072483155705470660853729229921805403037534326640960444891460322571338415363443933142957392893942511806170837349697240066634084452900771131528603251447663905748847029859812045359883537749122721459429748963801338468588308126376006050623366641020362010826395350570152473685409385283656284253255004958156599527067914363450729803781832252067194466467293602195915488893119234952095229881994580982318932956701290949699991137191980821478692194886876549995322860650353371165746626483045714460187076981908781837909725800790454128917291828378926308641191306494795105397961116590244116923365192725248347502482737090325734862814659586506649003038508356937022240752343185476818003051719900433606955898321400362498655173305382325479643045064350907341747272888338248934693224084544664252692233619645255403861854965455068428466235874517343496575085645242957076049929348067315172711986717833397141873697161046739775543012845066116699033962131736853441366061112921294130703171705935804890700614129493934957538708183109650970685344037353407188587624033842757975280166940763452463790363437900534257626804864719508116467859612401403301878369155575962828876905874758133844607889224087480529265461811936297534749113163169997648003637401042482536936778180524174401015245446200506279896025357246976255454137062893958559969805809974232189315454764899478241910197788296818733417690775346684543626496611165137761598511285760490887703177296387949713858331337454351867782009952800530214666266654228671032687670026756771747747409289228815413648799801010988530906261416425245668744591353733830414635752579293138773506659669002290536122397066643186176985090825928538574690933382792527476854903239481200653247561578879611639073910483356912486337265928614117322367719857126089530998880724389486358875924701652978684244089600002996679450787421163386967162213381176117231687554955074301492541857416803991698606550581884905441309546365041929707962382377707852841765034488581214862453340744508783039700529988627396535412152887330407807707851405899424444509440969576183295187982115719561955724454534202952374079878378225686263275109876082508538160423680970407720811557314521890294976108872274859456189857368065817502372586499173139291692507293964032760579900393261909721565274966909157218038803575680723330078176950929708493890715781765988616693340787127480485565836182842360543640356071849835800297686674768185893368890327345024126916451908142652651208116706019301509203067340300928821398579905146236105772981419403814388754921773410061670480215489928577014767480323482190593263353695403484971660567313798553933674644595560432665706925782293496680263225481596984424585184250996908276912693316778738830323076573458321425620437909127133174433237754127894851642802415508001630222963758219544954201610761905190151762902704951446222851138342673544327043322474719374669338798700550249511218077626876290452927371079003995980525240454168243277462694222715636618971308606648786610648063809615848675256274962400694166673170133752940197528518152102262782918112042639150299327006131807647620011251040582831312411065692480235676464953121947875248138715291518332266902601590890574614932785872861579888814866050598289120504929358965939307320291908506794010712930861969920078422209162861328417655441775050619111924894595703012215514307813104908648920950456199906988224335976303558286069561977082114184961235923374812338703764659333908425427258776513810202223431045040353198080145789099502807043644857623102616963259009243693730651519712953245937767788232952462922778547239803187088234938700715160075066902516476787555959101366492697117976522085997640859305351669347726307287896682249527505702191451818567870542353106849323814172905503006985204135584194340298505041063610747740043385673441801621202240644949085274602523680405928960911950451933735326461545942802843468203368739228043193176026801289479618665497547631627614081404900260615579820083559045848421541261451879946132802905739533896751739027885335233608460430589126903818886069652419385502024886235363535789788464337090523866155413222691995462641434792749561284964137171895979861760317446191151962519799621578997261831319341928637145119830033008537221005714799437080700917843045163522453188093193959450818504898897239579974224895029478594980066367193470552996657041009225453126074681290271997126504735824978410213384763708002451468774441106756567182216768352115290147842585133203706483369878929561185774659660071446335283268254984117310852667876596354440689515078867961086979312865858017505253100553115568401826763547649551370387698495409956694519515008300896102233038455047662263321228933626262929381903211407801871102455837256260645723089445791770764126860522384111727225184381097459270576788272676362369553545484347627558747438228754757920199795567125891993951346816218484177993496906917133737240073971040684434141654884062833054554561241620825511060612021316307219602799329783334311527928770801688740183760570442278484019250930905557079543113775436980428306043897799184036331445990949743817989990866725929500213528168700249970878686059477040078352215729725501042997220612591939851387364047038181459433709036301180077310471821946619400681886199900027235064283078380459986342330250459422158005040908672055023378638699324360563643704561837030497748012234977074019442761528346682509025633905526632926838809533322598293897450525646866354332747601412302553420489151259191671588179701472060081204773032921874405906049051997296171002677877743422820965111287512080252628205971876948912248193274672686002126259925116736283018793948420194766907616342413132655667242173215724157605025073871627273218391289921697360466573429762943670908697105076200895974196958692643004567025238694372149739923625287116620162025401229187119914500730456056363713798374916358075082723919930765082500111348980098440766314253706470960865812523986570540958525968496555374041252919279528214605074133376166869560659536274921827469433872347070961950964125313299013833064699417391148252845977854489965055274493597651341081177947177883455650239910190789463514717479969089616083951357383072205988769986614993357119883271611135625933422337445004200495050522768462848958839425988765526213420707555848782143074982113368405642217461383128577803892549373395676824790958446624246505679977297770031158943904145688211419611320203431880349661267955237764359283999865792521970519633132541366611655469630592270939899132138839023636356498346598757991322120603072985081614432047254779425677410166488391274645647653915442606745075542217420630038028497325067606367979813019771395816439405890964619091886922917687167186919126539975820816508445849711615508268712657614467430506319635691087897220131304491063100356339641811556141144459896603944315246039131677436381023294469275319796418928360153866822312657869927366108399327559367040602749780403915736318690719689628478392834874837622644721573040159688833943259753325224445646702436064108605823206940735752167238410723265397054406069232189979065536594258716137910756362198247057369642856242091546298476449582312232484928991082763433594623946115190917328870469086221705741329977532559054048775549500582499087957565073833518771983363985103418153035956606466865128390805077270853256312454974725494490307168352340354658164866863515686289248872584055535735345963384641617428330935555583009106415714062249645755889296921938931887539357575215586861138090116693712919052226232693334573282599903208810044218550688225582550328850564576815515561114305012255482128786151057745884899928825027706248424447269546795362213656253764073808088598982416561180025981197816191964313475163717838043454947238994782392607368716679138138624772336794816056738573482718073444639512602556810045545532072405106807770857559153632434845609297645175467981328466147839500771323925470496652097333165186288114950881434352875347710793656363129468397773778171653848569503113846996394510258896624979670489687879897399201766953260091698647389198854872364683491575197069707137960345255629431356948272323917596965758470186141783303249101121745335326896209867325353506542504818794397623365657099525785533344950279397735433900285675203424658441844595085847677363209923318965250863358950115085221349912229993345957104788915797548031321054581442613287030104785926367530578366979266151595570397741212791604527688437274718822532670834975902062757171357011259924971073285736592824816837605295734830543843802064923421701748970752028477241240291211118134891274736454325849500414544860110298168524015460615130513802681458670475068414434910375055058643336615416095367311648293474658432972666750631281109668090795835971656326774198427749459893711143224916678577747286774207796908639254224421293168041815600985918280743373148117890855853757030434790572394063655018007690082260113540695802673569927937138037952084595053615509695680758769832707972511102025149341041567882572137551769566351963601202174482860280188327573571509538173600157220837232902377180634051977653409883953584425421982610369395559040766820627259641938955143984119025815449274629780246686509614207502355385702555849829088162496322156011876211340971016277786326217996428376303148674611567639815285152460455625343703620252310665358694194234960470247858770864313054818047981118800375757204913756995859304949222558882975327114393337855326261433803325489298891776655601561973949401888165380195850521053570301357234556940195149011222106377381518183773492593552273121400982080733664578190411639369085103648729252617492872195793238499963309090957027542988600195284852997404997517166731529393794051557701695866187895455128100874603050486179415560976230591815030060211609213481763288066259041252033164226162985705508790398800391383917102048693335224538093224999395037266544621658324474996020491716139632336208062621703685512632524130583444762947464587428603033761501226064893577895488450231869044815472252080546096572879033497872277011523581696142962308635874818495262355934136092607070192413262364748325196846768497848325088140138811394125117250972015515153773738718243514356520867366418049495926091893845437310982439718480704430374029016281433053267902887930966297186263609566740518056982206112079848629525493011365729185090086691087136368942738796785619372429004023158893791011336341569697526548648376549506890458562694981512306285267824342225497787283088865874889161745014556204243105878979941875478905248601401562164184688814043964358733287809224473718695477987125840710133484262499837736637528170469956128524346920412180861811202178503697905337415637952989790831645765967819258957290747800680316105156402718897937470377035717731251851556630283631272788125838987563658219179792981647846302087668290995693162895951970342587689100462019254860490582584134385249987014809710088385214218367404803457048251179354118894451022768829667235799818504587021419846808026270665548454571908841464124207999159634113597541293248784823136481244291535913399941173798029264221705362935143421681227199934300528178888723618496530360132595717335147223724101712250085847391520513673311025148931384037036413099805790550178929327677843102931894885231920597058452697512551967641972035646367794162383622264651649537896285070040395232843781723440622298697319900746105796972034507164242113224193726738833691722944968775814320235639355557950544083653809904049205382432141456479540943793249054098081696590322848006710259261917203460181125602138752525950615653353884406261939839735343298823878896772563314487425718143167624116478274966710258008984829822749277597159631627906922636428164628697080690250595138154214094877224340593664047703002793299937473409638069880759370659203788892639055389044591281727662330785650798138212179075855534363906529110190846490765044961531953847525012134728327461914221587545171041037896459859486280474308819753937154723765320641309704346388528874908573204038883449714875308264987604665044408621159156982657013225793345544019857464466790589869467414468053133698057019299127437995262229084319052253549116269551118082805548451859844916181619905780517950958283170821356985761992343230156134088399252452630046105983886363645638623368680659967958251781403029537179614581196944215612242679402915996789756944612184588267889487843045115619627309906343305923222852010896640509382902142745436237763407453221272442572727443883793176264996679893784135182600364793983509054863333353160362527321840461551101235506707407858492964907583409914372338227680641699751232055989878634759398972835317783447392660777870364553587505245587884614353969950288494807323162423608926484863313290931432197398293382627021005605062757179225883611291482029135534260603891373630874542320344534187113073878958113363111999526716145368133975635278575168991811716687631673665511385110360124313442547589108498958318883230305106003665644652644522740390583352114618455940938731777478032805625077254737135850715802116017048336876606211784306723106688645454597092597809233832115091138841734926272366970917229412268786280293929114860419217087392902105085525804902950033272877327423664953305675136118739702712723150556369678175349527786519145248740052474072131653705597947554782850319526049346375607344684230998347477728400781026846343878157129221410973596399975255625775038751039319806296055603495724718444529044326594565103040597806457586058612432711225241979442506129903830169116069388173409936963143788524752709746681910928180007370850643852729794628131630536634189798853008439310603996404422952117616664088338322086696785339444634781502300340661307649195479824509693454616293088641027215578069061872737186773011245245285943390795490170232479371397318784854793497043657831592336246042104593252087619320612331470235716222856881663064214362986169354027946102896408921326378058809168505921514890144014585972795764442120777259900235673066312429253956761022231688677719091974968766380334036776488241475004152579160852706411544303255243929966437924007660079050851564197390694598932412340857440955530708553992638924051576779502881381958026270881699751749396031792300432341516752575556583456342772840155539023877517101412261603424006638822669786475756115400201767336766330817933152248826190670221474659481604771332625113750932410392931816589305561884082442737031886446196277695836177681874682435614630235419080052091517414569311876042017029067842885462915658925979192577491779883406062478641960882038732470970800721553985918517935664928032606706170853687807521403221277162023362260727168058330504421355982065128076661068851686644471133332543187399887414078927893957532928035814358658133850981099703583441241437402728757657528745808059142505707349266713385235953662326394932857121081055732449417511262792391219044596034430566303572274736097558868371642249173955638627931056089048893481864963348292273827266419204616456733952899637118429058742432625566544479917205201965293653050339359806720150469783789603686835435790406789532314005797113821703242449597063575045782402171013990350223987928008489913086306688664968224329921100334104931778225501700608792115132066970152834566753439754097220449295011489973598540173561926504149197212892311276314465370932235048700377697560065521000114561856893679998815055651855222501160100015341143938106773831685410721741184998644554329466511308082967211311409312271796690555147497922774662585790113364980099586009510040975989929942317411661687239863431851433490503520961775522479622077735744759438412536257756140577703830149368717968830736812072626670867110577667340189650700357279670033118326187331377572615317543118778473931812497788803915347987534428200617361924923465244281448649851849499691276244357866438783400696495312592625015000058830563450155742345466229370300206516485417686748407202996525134968985999082670273282153937917194129902298360165718346105158697882197984583192884294417602814259389850983905339552789926013352773639386975924505155711595811349482944102122470260567926535776491356594213566159665714719884782167015631878219636220625639386525110687875854632540232446405859691732777999635177890180168084113375782158454400484766144945035777922082771296421138746865165128730163586443695995255704430447502523544649037943638073797744311242251277379426116239581360698416046349735226367369342519382552767816076338108021991238690222266058957340922821205371344876388803444582252504042782000851613731887170019579405841198142141207949719186765347478421664003816053357181507605325246229860984978858293200848952776412759532752665554344407436027065265067549294026355278412941531522548832672226312287675019935467317396330434301263327676153949289673340590306038390467122681555097393623416949793977441577764071828059080718488043775754421050264950948972551023125410984837776462421684465120892864913070312534532052457052192108002146211786905669051634206953840855003976334557437213972728096872745271234745711012025721307572561033751843887550034538189439990305986166618405226901983454750029201941833850379930554397159157733237238122579261676537676048567088351311124315004036544258220791109465427793914395321368605787791432498644502957694828454378726180076228288943620219646773137951546294904459931032920050546029436005625593888053329739260157240191277991186049763041599476256795420688809486306508780188790973914235386020082506987046631775957266530437570281659864621586579445032239595509085832758045251749451719012321513183347804741301398634496122732154833266034249980491895138542953115130682200226881158550319769961346404178744685185001588186454872630211335956222138355489410836757488997526713558162505897360781247754185521418902185813803285047111004968108699652462093729366152167099622188635998332993655415970034356362764765139531028145409794297190484685514009640640896492138106948140049073612740050016414552390622793815713517143349968832589269090894944850948180359495280248189718640785480821956218760620803084888937717361264983328548584569342674119378582386026320039269753523549825648026146872147850660288138355506250483756711683428645059326266598335417345615161388681132007880567798488689559615373895901744758465547667731863452625168809179435223303754179706371723786926859131819083219374719306465827792978471206570667910231413260936627950322532311268385629541848224630259760060790041742831522623662965462647317933166715404270916389900158921437279097534602027226533103347076406147558013591383728536138134179464805681369003741869694191345665143946484398496671667981275693823956777250640676727818440903064697524789374305376683447731952730650804445525238119613446635170643625709654339761048230062498277512908439960376235167164011208779423109946047477288242452659098128643539915179991319833003366959322657279388549816694509356699171744045917164964362744154667052288137146122559500515638555225066285015353826818911053030875084365474984699372942553126768641227627284310835234506674700483883119259871797706131196246168516050416200052922023871323695989246170624113347004448780242119258223361460279605208664082493254350561629020041827244937249635341144208635052871854232292703361351548340225306973007630347327587828707592156486514173893627451299428554125255176919976439104170095808207010015864910937142425704760464509305766945645211678222062167223300365243938937903206119027060375605338895012771992240984590581951758752953311378304139238359666750045868154936386301071415329734668555234572233537799368543389465792612857294464095598003679670678763981154851677092098499366047144110188525849072374900216742781192875967070167674733319870627314618860280155566521580730738469014394452761971704944318211338651473205240305853404818600757516821610383235275908569577587094391686332252878466138571815849142108073412391939705589927278124202221712549242111946037682260070384226963660957985597700477572275989164421968649132163046834910080226135783843635368552888992350231031907952922906643048684110858101071560569311441997298150087474943392258498697997657944302620104374129660546733317974237858956034593818817210001351701139676330094068711996972811755473528211921234116618708607154947416195479059584528808356358477451207354361424435797211148722714481389029093555089449740374360226686630705680856621710446725097014971909832935942510311294345032519512453219046720409696883641951148130703511996288178699089675812032606707147575486370422885004617412685049911642746626361443758453457625637130107028249044743875122042740998250148518765557327039255139953464089823431190919804493896652731793722012211163771137446233174962276597030670393694403031810182787849802411907042478905115091614999160145721074234633662297902241109941144517079170191464942811350614112572188840134376567953120110464777136621023988549342047109308520174963699919833512071910650324274281162400736753360032889155151282792750919170469458374560625129127389297611747621521377891008756371259524654860493572588044820176875867212777527154909491301110964461046164687572547118230847917628439684499324217429773124747938798177793230733484826606295818755564238163199923690165891093128465933103982639003176655717281354785374733157980425008047655876847338818684915437441966648985796264393109198001675978859825561433573947223171794367623527577207017556661651497270803946657320019607466001288023876958518910836275037457228540619157080666684780080622640739974977771691824807208413815077181179774335962278786918320655912284235278695656135221965510549101251965385429624496896775910854596345008694169788388384641459035230644957540413062124969053678457820602211966437894480994087463429778614808861810946781567551492527268335806258296657123427322052106569294325918280879672672072787447179028793626650978886176111497041358118760798174802163174825794956460069735879703933783764271642806681395542627071692395442604364181093574949181385147409619822585650242428367276046256025510146372458826415840273185208408120862756504300446330499162707689782878840403911952718757924642341825338450392076185858295574261956908569043074231353910796449445660122594691130231701028804224024325660486991731589712743536431949863269012452523013427915356626672741617002860208370939542357690925586895029707695838246299051047734216978011028854786842068763289176756327518047330593194875833533585894227974476424001587036165501914675353885317522097785040499188658964598998719426743617416779602418728528245480354288296232799654535096799166131201596795066478023653110317401564578082944704757471628359521636694552941596387448651157840054092656091086517023220553986114014118550466923119962798361855087511404952675221714981736508803980186828020257392273121101336495963544104981900891714104590096066885468724607998389307167070042795564042728080969553476391934227121418646899457781479607352721160365923214435080131276008164727753107233893859771750709319162822272056620796133524656372215016209498944737731733576411770652493323048451890500277532911830459382248687057163429850000344747584985702838277183462352216256113051106381333448090708457806005687881540380232221797997842278184845922723811870163672285008390515900486034257416806937914866441548509703302203920626175555768416683348842073671349607335604187064644612241174387178006976238695656629022338278746934603930324855984179427766847321242270804500516227220184496975741573459115679042917349803718803157188795091810324113982564180513070268184747803911184195016205045466225259351324887590492430210370572530161108196270607046213707394133367548220152830522361844633305241627011329581113464456158619117924728517181114246553790819403375241504489917077886623670314488226321928726063869151660246246850103705779280173535043057126611753829947670183529076392989498367391703539133122657357158439903057406085294420830850728079415892245536999931610834141803495932260297039057618718121709090128879848441032920519451135069691399675005774373720757349362961339463886468112202439982884375670907113083004358536570168781357824868041090326805070129488824922317486236725650395100084472484790561103469911586250026090231992837189862444963302775664830001048473470221984086528438234927452930187328996022313340080263156079945416843496377803821257604605703094645847684032108830915942738497336678676273318405210005347047567305994829131785101745547326146954310161733730387719663472418046368455214233923206598986330356203266915211989445136317275564741276696875076257909396021559563721826618884606947145722144966676740796228437125942916108935270521622894593884909564593279526686379784016822763460468520268677095978847069964639940886861040221241181034576334319918307390017061644782602785214752445671021485139119682534599212657653439061399959367560612348033609771031310658658574906858308974951109305677427624355821478481509077316026803895315200513158803746544288240893776288739908854293914165178500251399202174295753938328039497182205003552706891919026435728820679456140898984125659660447198742951499793802053901692613420514490541216574987008607451211652147801775055103612542241573798450508763553954569190052595948930900009925421052616260587081906266734380667699088583434275675173340499138048877537582684301181765929825504952341400456971032050473758656558056053113450495699170261469358418045880382398193203902880126516261262465234375867556686004321544170502891266883994509247870221932774679589851188535861574085811968931718800531683668842411333258535093026339607827093829295528321810381105865880628213694336399980412102167405290740433059005760797789553959429161686811893237568344633360518957082789135187525607872461067787776207223328095957221176005997377077238199701607939406176075299829109806809556623563349736434086081730646753519601224152135309997196845333336390476902787330916214848725694716525373266864160442696446457605154145626521548612294483151088687428795602183717114058199688098239957742022816965368052987628721450261023923020758393291459019820905127307640420740909768786203089307136032983232066211081653870367686816399167045482533734680896780676485777083756110036586253374980919778064003063091389514603718841015210017004771991790199419979833713098775038779432769106471127135564731552646700423069681390942180972122853764797163397881886631327868211978651564056257152892528684481214014273966444739242977216447228453730478581804994167285249970078686067396503971562777899471890312552462542516389496433193931825012871709768837912844534663789443308000046603081379183938431657398538620421521102914826638249779958026661582881778504237630958094845110338499862624045562428751721818649901526622882438084931145087751792608296047865494189408253173032301690525520415479517843759604848249549073957093609446139156491415037368942064380721960753403341721833271140920203481462045047054592776291411836716733363591665680624943778444106885167234360331945637455193396552511277597400695879899293303465834859116444690534836529069592787228107957168933886654235429976587017664810102127060873807280388004220586960624999321845365252383528391033013102641416004147136515492409465632167004345022227701553451004154477424455779368360098272893191777482576996923196354233044448657887497468475893546212177528238777080263000005163405295349197457049821803858709299524132234827094681018039094295253618117343540410996250861011415706441786358843172183572122473660253392824670250029508758775172043898734564002981813772504361703712684530284028498468642499827078180407018302626483128915641173062860588893308725505490924189819421562232219140924199482642618564328878443356600404215689398265054010882415762625476624962901613790071762277011653120560860739473946226165617327883174598150709907973472098880308786310981362402504184395849889180044119904599571495925909559936394114503507552423449819580110861118520899839429904496116270486626099322076036331919279714549621999980404763748069312271962240763805697053863543498116618923085941932712238608758029709757494889814722844433847905205265636747493494354178918402054026548869105304642439059295143894185531410239875309862058673557369841814022076963467298008293907186463678338370337578484248945629514578676993922930801834111776650970290126031290723564751214372112375697643542349152997520779196789901228030054053958644953816552885021275069512083575588542106566725097341832086248791809991822219128984960884146288872598781498481002338574215857512471510086131214341839763482613510487700875913441804294834789608025105980128288655977496920887744166633386738872641642232852367438994881580036867682560595463692937214896779543625207328756958552661008682676519633792819955157477059001428632620360812038637515205836571752092735654322639418396411257963057663378051856830436970992941641856688925745381104344932704803415862163277091619965469365286467701781932497259892301199962772027489342886457926717771700294270569628008282894153715578748772462660019380334084603346064331738821086668521419086887314580057456486409039329989982901318988626309223579948437014082573849145965887501099395911306217149396118852531861148935576327414268581528098606242422878590327634873081369968319393281729509846991029711630645772259712414349033346009611246460248763920263208718321444297269927000123930186351394201746493101538962295970455587638996516641427781746405613686178287913716854425879665748176672748868026465936010637119180040497546633900797843749255992947522919993731385012620619424677790235428681193924219233377454231968152600138446018691457646899620392778444090539745049040824626530825533877988661574246529556078904995651522751495328065918436327922904747046763033610017262465850125095643562248393971771263773821005353919845112755402148712804431501754374684054892434032942048665688683702721203558862299508832998193638032565785599044624429421252982743483574701766847861879827445174530659478972700713436366140065496903547716873615936376984439029779715983750476378396882563227727795387469601322832854202226522127643325332268597624956055142947093485324979001880071974174684551270744535967652135122505964625844882500396073267483704471223473929335333284197797347810914422267507388261094390144736925824598973799284291481267918060547405950300394338012452440950614545696592637085417913918956334445828144978051278991238431443640536251166305725449083944253444836285829637231469130596837615560262529167302356427830574643577436165047930068015085704014402703491044096578778784772607670230411879477164465791434559028267027717508142996953120707944039992213666484460955646720613548450548624099947185192503885772321724276125794869899228640084476189758470625983061485028692454554671422223932297931561925471279933990461465112977485720796004514616181687910842364207365646333141498523266770065463584513623215221307616547560530125801249940015563134686572531169960285621461700409064207491421598872693278741311013019500165588418693123843947523010067822930827276792667951585734464642182048502972065313451572519564810299394917664396814155508824640446136141376609794035536646221851415667517833043310317390480135896800266115832286313043585279131054691254951849717873720480916419454105152833340617617977738334535774734754326503733811169561442218900214848808337053870157125868431880146635167322880504932881099665914651310239275072240137038482735526817231660047613821156532132812235036363165716383502118168296858440232166012289106483462160469013906966540858961529535772665027257349748182729524019212216092840290000512853537333735226821734270808574368478429778917935318972848147894249320641169647939116565877585436452836504874192822984168199155404904871242792114418185813858994432153474939412671096760373010800439156644234762221687538609419078446327057702931354671304971950393628115674363278738279300394480451099817571896440783590100259657277064696004663218495112501584149860483688957588934563127592424152300507881763647580313149600951448166768462592498331981063028872315886688449746782697758855623563911170240811090327921775177797629346620719838857408832251159216843295754104625135854202836264480717748228780441962905088887002890647970128157070133191206141302253959485316965405711666190665123338330690261787630957196167150050044133105625828441809624935393843112700205844524068807090186568082416364463879012425476599962992933756524860634535402627959073568504660601539108282081429991998511895061015349869630730555426345266890355896675268113532402748884235328700232493044362552349142812501497877163728229040675775529546738442577147734182555283971006931293010586644131492784458658521618127302957733311665701028541187714634872109010008479126782640711902071736448927834608012635714399319890742745598240090913727948508351558418740351055816517542432971861536911083675749842424572387974877376925559219821630044919668466098983452304261053310221329715476431094014254884462038082640709701379143145595252863248974499194027095588874388271697510967985105451876942755844775386689206518711775574235361608736372734923906524212066786046358201000734453982375456289889096702875097244466066126285516520375453339045688007287889341670329438345992554893802329083342656622129486580726724350659679195614418264923386059123697408772406974156916774435377427452793494354674848171816862636907839132938986036067694902263642045523681704594232382190671226797696538291036771966717663914392329499710800421328739805106854445887436734671979270319313824848649480216588280787151467493466240172808305220975252827652618295937547506923955621220350046175538038283840173786426154042939670911671787257021883215906744985371931278600159950498559295889714023341072079801286003470895108814302833708604866742882871903295888563265680120029204171679476349819432617518253234948059054156870201415089315431957223201903753612181220156873078570482988091201500253741920336315155443885780043877392939028912037150875581009993209035834846628476344623888775139201838341210937703730830889132486272981065164044599741560522821505081574393794377007813186514838779400488043870714189985688307614037749648393924129904376265333649647449003455211019141603362285935378688961963345085424660211774124183235415679807981524170849832691585666274026440342437279775070594915289707014718708432738577471879464752406813446742808748212733101422131862035979120285843973220041670240779087346778235603504513919421031773612646983493617850424984884151728989549326940254655431136166335646548762545255945876603643594891409722927338638350645123294602214929672410343120133893268778596405337498314284446617042116458403341621957403803398695155693941543856654982821943459316034956983981974561430690818110403180107575597206703898632423306245487212437755747317261216306571780454239074761449258498548774086296184242870102289545559732437197889224043665773532112118003057495710568557151007520750387913176618561911066734641639815232340760123461041044584701060337381482633493034839526150992956822971216980194101929944400542490486674398028586755480869403257661473890000479637995451997926022310034367417935898086801058371393891703598114593373720162479704173688203233866785446890847641725618766343571595237453132405131255294558294608427745297344450219943219812655938858174305244918764255107379550474165749004274350419460912048905389171795889513197758522216741680192543940576795204742102760857813605870173289842713380623435950704054232343730316183407612953973670339237919749732655026759075609077152902916390256665644399279631003535346640869903771983007614157417031960236704710439986243531075881589826389847193340143913028518292999441215284452378396777214753782233042036515882684344752993634996990470383429701781745123939796580508085850272734872697968097380098555694411032905547170953441998577221997534986652377812551034262091818290695595629209999367860796397775289663739769239717485780906877549133779122814409809613592439916513615088191219382646760208649604620576269062615513353489778360567958904207346705845230869146618207576695920584360811486900211446156580085119941021249303599571581211073595095829500138086425037117387355423553607628686373819527139593665069323325706322794644272064546408168639206510036356492899556901652834387506377430554233869023509959419220355846594797865366626664032122343190805125541256498964120875578915485175793502263258296423748018349073812920361066315183943221214735784199734587835591937455857013898098563774367161010746788894564711031969547876745731149627105700240443724117850181809728438432199547213800239989644514904347081468150103505175933069786457233250561919718036294405689498494452433145009462331629791536251890003374128106150244619855829789320756370268560021762202115519359274987301779257010233852134421620763921302854723636547342768060775600524532702789150602532854863680092999108180934592698828314491441149774131645203522354513275989442110437050500322346426103347849684908164456493407480096077337160333414407339276938881227521478462875399873856699195080903422467019998188696085178815853237505318930655251695345376666794230966804457275419739336074360100581788023635749892614566206107432159754450961756062826053855016501966718861424080899691185919900485934005981048363746507237980807731561648446140167031327614663962619852180663823272645884863100509859678373025333732580593502370418061868475806272511691888790181117737339166892780490535435183152536497956510279070603939307037581031896399767126497594407890843329782746975208329921456646721139406603060921318548177211080101579490785265917362106048104328100912403397940713346414208088916404007737583859365574225131786429741643255844913238051266387123225213983439912124531491822870435057168687425913535568666024202431325060796389473561248603872102073103453466246621168116781340818467028843689453443511280507827887622429809294505515863541955047797438992587086299390430612841096410759907446921587366380183870802193832629565937956833871790410520166061333370746974235868603942956842439451717938684559218913031261616709442867926716837305964789786531484113222605666985894170057073000010333084171014988118857006240820694250045454483046897699926931696713278440803611508842474617166770792791781082059072153909562970714918913242396948440148055036844455799686098367399287068834192612285839279609608135101558934898335938092860829652094458017569370383810923198984728461102938450429713266511651986939860957351126129001125737516758222328054243123737843352920500575066497772452574137393334037936016210713645153065774187956769610308433107043572260413046092733590896289632960805097666333072440726130628503556144329206617040025785458622813330490152789746252977092708421509893622721760987082718899166414127877529703147270196138075194123157974246263704182936149992423814273751500435658867691687767489120359752339480993171267372875597906084946738860948838018852101765171198826556986654657807507952370761370182210412235168875071698340164259165384957146856670914426747443526190373811500240027515900442865319023019637726402103988228026301497182182286947492163888968042905721847644039380368170514937178883518963813595753379667075092448990666246958214096032577105202872798235903573178771611915643761305120864296902050946130105686511370345959294693232270575006021595877889598951277284158967845631687956347151740965530359071052655954182225341792296679726115891250969810471862899855218854822697344167172436414974416559309239451934581773102124075257135367885022896787275067287965383247703671491588482028528635234181931534027787471305289901548515541925713957361668385369973147573163207155497491642050739643807507431278113827392846079970615179036898853689342534379420897743208733837977668122779252696713482628867866096955035673372962566226770403836337603838403010756211533331266981452402806824964582645199167941946208702325464969318139720953744777990528533593043679972426013318731619750211123455763819886774728757891296628614565463357773901009576271858357140797994944427588542479629263236190861384917613356561627958092478502632501099781673801074447852088384675495841480908227876533249025372274775077612549740295091832305176890761137218257444568864443458889843908044509252985278627340870734577499581768721079290680420774704300143174909276784451971869353302233579215561854294449586900046887680365788148633718222676976426560353785510221721984167430236151422536413146870703516927619220794885592960328053269631804379397467470205855033504140165904150875342968464662162899142461634281878613410033147840047071548766067301801946540469655864545587333757318221303571328236326563517227119539243326086233487158758653824536756398091999839314590539664664798586881573353130954125709595600584622761325539582568246278010368610063147818505786709643514183666499491697358914847579777928543788674594657248466800810033520252290306930891769705283687696529070844403288200215909961829030743483091351885814068303984429142083055807315659720725068780878124761437196437062971241323739780694372696325817720283572833737977327552363403132713669940781229184074303066334783724005466796545600794162537283980983605505046919846691137677002738362339346106114900751834934052954904133578261649875762370176388837476970877996638624607537573936438994611229103368378237235100377457000759526379248803999841983504759803905981862252240456874002348704071401917899811839526810327895049756419477099752913183777173383747619299945068427028989961748354434454611243167473153422452259331170848638718164385319778892149678024763166472507872887212711067331812451768829477161122513046928205300883402819034389488783815997377916933770116966240192281820151054126207637603601784811509188533127856509688798860434998243912479223725876126492206477792022958626258305812904445313208836237194006372978453429043386273851976361608628979114708370161280861384172171247284953904409528451883536007239877463224722828271372388458752321899388477059298829456853035168998590280345267871592099845961198951216009228686665956817697440751013956949753662465453424966134506654488234482294626709365028621977350169376503433120512126245037888108652476158966681781933072979133074965069462233746230562533026340692497784840000820299650577943783304784523878866605900815508088065057879197998008301480352480842369775666663897960563318282322186411491606115703348901435520474786316770606080915319087182066017504516034541841014718397198932510274979961987314770733149706220555062915508170009108831497057611041990905182981707355555408271011044738683335351136014297394444157564271347373044670608866195527659271273788348795119034823539702587810270498302745860804062328685098754877237775936317324571501642675832485717708015365657139110656708826932504454153385158505699816473023826035462897588383905851217489586634956056977109657752371935245057802227159945783072281969305712440122952433754411673877118580979143927707870708464142656594554179623826349021889842892270319747622783901944143227247863890510171967665466473683771652534693046417738117613823249596727774028450010889647531384350851267440238720011878524201959752416390466564679740022034365398548196152267434846447581863735284395443813133344131527333290127667491319051676160890960561936529541258876232515298077673730121475235078772514752658056956401625269980695260783912523033638366837431340759151549798373914093452759219208609311399397976598936672574540530407141860869058696536245922064657074996473042287170254665897873060403840500875405219843143362526880709274323207471565207751501453234037304745143964179447969795608340101727098317776064831082872289307694208482819915535654664004472913517637712920038675692861310163152490915536880889576471936897419414660830177776300579146754521780477445623582664416715381330359641325249776795630502658996878680701710753688053560739635607787741463215276951216418806935774718864691105554311604660284903222925798198438841793108382777997914568428636765229639515224923696289910428536039654573698033567900668202319272737162863864345855239534939274216406154854027338431364156683347036453089952842872693119026392376692996737466359309731126506228679271953871321680897506580475231874499655325270903990535266125907209579329465707345791097651783510385136297011559876787801436424865779729274084770315324640605148560078001977013616771922084262391539296486559238743892031809837059142428218673907344820251969226684718165913287400583498366242365152240685450369657351420189451998895582401610724984419838110941952244479362601760544677577945602531428283597898542216888619303318263797756021382890261320683140806334968800702533976144648063779857243523204874595523334632204481154770463945891195326041545117449705156710309881462581105401992736471738027079861131735972981801405286442004603786767338717076405238073392579762437770813311427941464467612346979003565563751185187473380618487424172198149817187704453004688490438464235427954777004053027327668435454630511436077362554551261443394251536833285010665342916889402730394183322006285064703703860013971579618274580719251878985105550127013494689409324487207548717547046899852148653213285446443836183147234514809051686510469691729817174519655596989456952945063098072594081140737617376588361225367138822887155305483768867611255966149114444897108151865876144130058658493621394442752139512834024322811264669215789399198670665378290581288809700639610070850824192309593356001943551294825729679199568342109905224414177570181596123686768811306063135313975951537620015445936016609571777984610838899850675320917672672868046567632475009190000412742947704383115632403115525255996337166119331506889990776583139852874945151741937546910426055962401392751774255953374911465892774652801190880735501629750538653818887649819659394407110233825436269634113734696247775536835077650334426841676415956423170852725946447756131384530887171702413868780789392919906939152796983951769686757612798775921555904022954171358156302416207153239313015828391804387249092977349895995552550832996823121116353149485264806310403186729872217427022028465973459816138484056545603543704273959972128674256844329083278344016299548110297152505993716201599136913602834641909726937984549397241455749769087237970770146113567528381443286025064105124659501599949661416559231698980324026869188232320380870012203612343760757183796983491393871374152611622679873195258463904580045444645873990320019394813074764722434393661403248180816754264251223860121160489895953109644010494760020557239484872024049883098633574899472140396746645563523023278687741644018544698594097344098677050863243558770434112965624375045599859952000386850565463331820412914029260126713467384101575509597260958824853757506824871232303469548667324756345957376832125482239323572544121537144471566441984614119715644704425449940227289734135378536933255763278657038010777529609302646632307306216519998166416975924538046573627559047392809077070433684487757841238768349109819995855166928700648557646366316831516322233102844166983536325829080204359277770829817319153643111427101954619085554395508287142769896498617299709158135056113004850753966680591068356318249933179785275793065062131739715581186819324153226160791542761178452225923913049628431909372886712346594291032292102772053180495602161993715130975992977879758996160256028681248554318618930378979019239547920288311379893797708031071008637877176683731755956899241853654050419342502498509631789065049381334494399595765275515354357297094536096425100065674109525114183008423062548328967711172896716532271743470652689895426618196023544183308261509939764759412965618983502714211228433801122415239421616758743692222361666880727680585248845249879172249876103344986106847571742454550281347509099946286933088990283451488883004922693272657431698398511351620572976697532444899376238996489681367003106628148103753299375433443105826505719637984086094417746934178763811818584263069392628995476657489978219252252908009982190877781300509177208950721942098472082073987922321872374338823645435962189036809642230039855985140983591172404775988279706022267967504257807357827076352785905526870960436346440725128955335394261930940314316910866490112040959880806123157368254953050128331523524768826004092476911132956927733921317045254732053442500643302786001480167479517361222041484340405801253692664555029834724304086198156451836503459980311759113990859107211712365364534187379360849560420031519324705507785891303901886578502592754450446192696082731342928518499690507235700017772383894907177608750456733683638490903037470088097552028063462758334206953357811465961818735234820362572764896602007185003562034533502404621222029605252884188834545417725362893439946470031083494874377413321240268314586226320354025095131581406021867213239937850402074912789002920070524485629313690517971337793750492169816743582543452438460800536493754080947112912083191437849176336309128864349473089846914402388914176336632342110780844387074168380568244127087549164391536717537710861292147783873191057759789542573799747576652901656424927168507953827740534746680829020485310575679362411446126293210460847898072094334135235220581618066208380372187267397483746133713573225959094585036805885222046597363797786760855686930525614761709827616656741131394548824750836594545147185804470982078410013378257191431071259644073597601038352903055223468588256441312944214415598665303678301313521760216391612065765600280470861115727455939102567964905717521306315122093253210391089629975071315056681779880887663688368488769865974714703924292630591184618398034667330314212138227859551425102664602212452878852114002321628479886516814667341849288019528809705949838396486476473131214122301161132935576471798380198039947859218668484931270494103368150606548744514748926361694981220294612626526793041956801670843691033952828051894860207861482630292825263195173944897060997324856438416018784264766395453134157405669975307000182334355520127637614612066400096966327596274431205185591263366460012598797630496397599714412041154716286439584648992756153576412186481812525855758248216446379122278988809110580839391654290471021141438059780176702867949245182321890801292038236306644997284518085707230351665387599403450876926136927011925575671856458067675783497644520849263007868205720992058049784972319469918707197642210042026645548237076388309381839444886020707290061219984848069182872653518382401366101098382935132432000094475506416897129488694998729938033241489769586691219949012865058588133262367360799870582081819217340975194933127622992130725422889117781500575658850734296172285078863343966516968541268272526657882823395740149491605526399743078245214120051225923170910279155725239246941880196584859582572500388678447980800374035925737565729881818075029775474048284746847261150845475768545914602197753125278968559559522717267274122758404447165168515115749993099289310247268176954281377515093684459972040759971977266775865213057015931736302599981427450833237883017649490404836298074875090881937210951359801867208383084867714126384672525163516528079519354312766561945273355573980653149905809799022221278453036114122253166991455178779159509141384361540237812857092065392597547174614565971637710101154331779134773969516140569548567569618769412698317485405282865518878646472754594493606857766151639795033014815952509353161516745044134527934935423995886209644617772750943292903835249379087563347593183801393053321148883621818125522241525760369600040481226271448675581355086611192919388470589409920610340033480305260382119590041310493882838390033640499778927482348092175130147119294894121939037782677775141656708784430576953759503736657090291397452273172308434458019468562320152236338497669940719924814541434751836681807799755752884000351010022977797110912551814590031842905414137927228879284834106251914145453728771857270390838166572755478602488197457300481207023261687397157501425292253890767812524006181955051056192834784603761402380009004990124885020113618798181029428409055059357709477701760518923045621294816587868609318132115423773658812026468730678708894035413305323268050604629548963717566025424966823940384630195642947913801517853615761613409537722264506038089114680257658944487312733936651727555364319965278563212937193228402566386377724346780120074276030062328909800562032718885660760933627609241570445985491526573527234794344965593692366000063648256349387859240404877960434181274567040772311977610684894768665902811098278552894258496061433460472532236836633252053542508851152712063483881870985741886272497673467938647893791118331063134958915830885799792407034174516320101049580138406244979925652148728637946418430614828500751042216955201761348516890245282654940147028981412814251697389701640100461322441111307316832214026517798143488132457159190022535335813700128585757968790549594312799401432920519740523121950738173790015789725830890610865995946913166956404273437779404448817431838144110686704266773740603505123704899669326483345363616068357110808243940260884441591503662392513749747151511549597643736144516928029934488653829853346753184049169631625481740744107047156033548062262959379653645641307158942077664289555562517412237416212211321165078323409461002285270594700887834187646354495769633327362888249443727531876905981663515832606398686602816510450112662732223932663943571986242526256692200354361778429090392404275141745713792839668679870540073561892771771648665223359982299328183277657175983210124814083473277936123436431658082915801828308182727617208581459356357811930799062429404651557975143542165419754403398580163743846704516774718743735562553539130962686098879830899337513882555729084776931541723481904619323709673909967029729930870802974970242117236924724662150772982410796520845258331520662626211684673374234567073123952125575211960845820735686908592886235666270598869741074687518515994525748093784758169832909274092080099977481511321968251060899055831426586752070595049196607344702758003280619079849050802740731777594655650161165258049131001683361933403840022620794273907217503540172695171548195011870498247559184070205123638960171246148958285281553783149325641182916230779851384036626023063125586998432319663331937591482731819955191908025914770574563856249352966410621903714611049020976894424442782965090337053622293917528344233406059051507911603463124435610701717812198490535335725194837081005430474846034122562298286384797019358800454116283205538368814512091352255488596692122802931724278039313915169364078553365984426554688115032086750336469411808318499227242185140681664593037515136347650113504571300243466373266170805835922633865840071039571721645053465996432299129821250024757119470324956082645273560786775846949879399598040618671036779464104981129774946491239142910850623251753623593544967868263072450592812365171216489033521994131527502809481972059460335087371813017435154796251589291678286266370143207823907596545377945950242639135001429799194097559819866723602600369213837474103522591910891745364916777079505342698900906403681888779362782761379205244845915319878823341308028553236806891814362003961168975016393444637414514845473898992628284215410067132299174340544252938959590747706069993943969180827024170995184855536553368195970556639799931068177078636054683365508703618594525518860920925032069844273068056102497751426259981130685647345632726874019064099122876459333295467533621743679995184696396417982043316154414918449340038315788594549203775457916867345831361163241752902697351723636141595742099899226063186766683120086590471971322227785705433704820337888621328525114736931911852796927847783508655691936618355237076933169468430991045460169796768589401509829424628575973767661879479359971293804913158507254483794143180722809802584982705833560107172463248478505125557835301516754311564872175606170271938902451287216479785707470083862626024058818392999032611642919391073148428880152554428268863020910279866492960242280147817704533203929167160820539133688795220991116073666400033009027456360700754591242147663942709137913466181018687281539863533897930781896374914281277024596662294303399325478698115837168742739100411243078152739385911783150451137688271811164176561207734387454083220314385199235771799237498529406590989510712664153675469006664820288757654456407052555895936789886958564622131600457683054710301940424630417491414088245631421170336066426479830421280851654056340416041718687028596299526684272400290975833532090472284633569735196965197102105225128223261354113045849205418624699566600938112654126410961082113124396842992057574183498371437708936528208958036886973182431264740007441549474509908157991853022984853752885201728296500573946943931155055042007970609809858528406922949986837734638898971147332436388290480397399839774518356195714424063140806688705971388353352427569339622198414542569724164681508417598657666937459894540738546374004730512470714240478435720158932526862058199109129357768469707894057251330631569085635425030594308605189817284365779761162027183550830040583234994991334701936066129963975068793802080052698120621576565502769349818094862845931509882478786909252308066077015713793346468386042544104489836388169598353860940014562510564063586729762741832813318767583505095038544609272026925710252604412801761249418175992424310103642404242361602740277541898622107693404993180400055393509656054257235072067656783798353376572423321023929928579966083132697185034660463293606466020234399974086205699463807395141231823407488346481778788596706901705013101563119534138710935829890391558865524312885845847348370357428668437073785083793305519315433949221717380869956375423238857472721482992261322720103971797039047187070979708692496940552891497042111964734151009691565073109157863331012130676630453798066136373845488629727278347279841185978622710951969526268577592781576204914593184674351592204354715371078925252430100605687780131049603425235439173626822275676893947025413390531343030873902618187628574895669245467466294307295840875561274073026538086783616144767702695110706457798422607189586627179455630372409353499766026183670525314275929718784899768124190276468249819583412103008396550783334351484911310749197060771265351901913259544341535484346330582733543835316338722593190072352391988431555365212622171233954829280447138032674523937588185256352929696854612291527928781546889843836725832195619814815312788407733806552806528895865466536542459505718145768004484179279190060543350691457658707036227759268456181043301298031526288012577973418444217729992945525925181206236838553966799842716371964544983135845372279943953705333555927173294239123964504339721607791027512448803781104832683109042460599012601261691927767250238249415380870043619727601325691574193024221479047619637171184519149574469609320445026288854581519678175088483443440197620140539160863894221926766103424539015965377846496351800816450538573561833941632679362004490274948887232274244546430946216468602909355908803097389470211845040431857594197331598267575265995589455271947268713327100244471330529456390405813557998920891987698683368093142340174376484466170252151472611352662184479449156989192284699464923500519002265524564973888347996870557599692625207658182584878954335140476807616126866237784322924004288192315724868108241906171205794692956853078920552771631237029045494688340316391473440579731762420887572647898787969990565056355455637943763934790083182155928046094591505714995822923297606351745222187457939815535356443793129386242913436122377984332122074645144599900384982462285197208757635979900524778272720664588079418532039340027983266686627817441231953259942248852595911108747588902830760810689875349548300730390725773203147329913888372220733068810575154586598092174801625192480071255349065692040213702284745665837660002693954270708827436347013067842383630210186132694589832982602242013404534374869271767984012112774231576932823170168778479276654521923945887599130140380489189685891958056682185584445359715229598680516342031162081423692862304180408284516794104877351008335232510219943043444274427006540672706596758999497180629589923899208700394391187488381750294105557719220170947570903566064231096069257872235300378388942791202949421519757194482819807906034424990855258375199393888230435473215167809334494328496545035706902252704567519088221359320345718606403204452196722693725576536902478015029771501163346547184246269230870175378843439497424389741628598503977054234279085389926684911269081349586341435528458055486564768799518870591549866194087116005151651744414933996938552375808570269491268653113265614463732974317353507140950996189113461488073462816910460109590235135527418590495417663582317435714608653232621877015759822372922832180590929680267986820186595847766453389441409683569810787006047111232404388163372144541843599139224645170371146996032342770638917317839861822669426503380736648377762839128357402786775692763313465434998983976806656476618353943920385187834612722071703547995554253760145630809791732893188274426471406086416807998057066765090924267294931251005919706828022030363289694150508944223977146429683550905653805387113536542688095072970713857156391063658751697603011502208098433196692586497255994557099058835276017041023453775530582390839916778229679063476673501227438456234384173378641891285926363007233217466530165577041458317178076855233620800480116689085019337979173671346299262641951631647969277010346504155050481520604374666551698815708041023214534087405380014470440566917209011550293187408376596448596558845402336537218665975985119933448720817584590592937612897836508986241105881691067301507834194767234503189212219319979195575086213208096040990642525570273466023750303668734441020182395332470352716428337937719849073370722275944311602057053844343553761905168942352010852835752399150349313501193242318977067322406380681840246213061531416255289667610158975272656410710939317793263850530374441663000981879746288564911312696999578607112442553495156746054863935176544156301982781580119286000371915302628063800234700151487216690621851301185579770618068639146430863605080290459011088692197792073467066585620579829227709698071405167868154689221880262854043835541713004014168225990694080788689760442333763482970084459090696910024563637323460210361980133351803281363594976447084624182743687717590777353225734511256426199099012189397719784868778825254091455706705788167866459968409153918359508211253594833042889668845257312452824346796775098896273767703956536992076202973471078636826406469265447277366366894702235125803897899762453136064976381414929303967603008054172792312322319712838369260318134875732390783756050125854240110419059841707189917147956616438397742137381789954732495139428901172062061461724208090912578549032372060473712290075308430825116933429882245909391427237468720674439639385102897425121709523009446334137446789619234774458539795347522216686787427174465389927183258545934827768442343559300718481728731155068441864794464885779579314442143418216607660802451324839520184454627445079317042555630875684208710528350660462011717991319677757948065468807725525433370471562648439088964990964651412281714316222028192668704718828698548838149051625700050430758199783898268786094348005625839094238627234138964011934813201789420088005958916170074129966464603252121917024710418207524219321168919644196476921834876495670219800820054866941862785773274223838295766425158212181442287801438656323949184788543760207947850302451069220555820345589337970067691642862458763073026357187425744780394726834624144323125715347183766989892937650640462531515419181110823785783560240562454784443220355194072959627095008341274488471219429430147427660062739004233495866165495773388844966981377679714004656290846269758771530545766455822239162540592101308062429545459789085563171784291397894731059205698143057975146596316076801224598639105801135725804937881536724240685361311773107354459532756359796090342648315951700320514606147796493974236468421794475221474397479536233596085716099638621669848217196454295661212226366861450193101182556534326507809255912617077841551491073430248442343597098146337919478086315501063929497046134205862274123733613219159799182073809043060492615357544773859015252797871845518515058759491326923012195035721998418440348994786951434192557077555831425073253107690135067824814639513319457281580698633078989252746660499680619227094131375513853280874161838384490711214333268176484588445831130286346728233679133920966966858719118462221037839258718908362920609521431833842165579888706988542385753090735211869974302301163743061606903102679562819435220730114632538610073955238439915206360629189907824283480400550507643086383998952466113005182272532749364758730092976130590023148513766873142170460960161965982345822422057112142290081998178899453639531234181127768585682574404170244960195993692940013482932357369725793781458027804858906178722644720140615445991222224253715627043689489406438823059076966492982817335979723570556164530076464532024446481294116555284475482980262402839433539585366847746434330737772299286923502502076199571378788470495914643643288471327100124831836422063162498189283636708765160614073457539931361232240954323806958049842931378566688139649861642380989917584141003617360738052054345870457912812002409924890983802254926304466074573935208850318942360442317506607429968512074778581286621540848670557007854190040988424252010614885631896853912875063787296534298966112963736122332176000526125397054872698003300370262458915113274628768752912166651664540785712703850366748711636329755854599934547772702198357256678182104478154766084030675762367704393058925730556566061207281960530714603223550529234383972291959694306145733522680351804105519201749919733281785366132062431355815925501466929378019202197000801215375817603419293870798615672264958583467300452237978402943597519019143432632517203171708314395977147983487702666201255298172318246308543886964847807666421088976464747432735017436049505007862742428715676516567348556024623991506659902489969168969912183351260246080843575590352182452651415483607414711405469511033553970186638000901862064021930114159423188910378442988817210313225564087370720225511382006799254313066307962128553647619435499382234349592746206618347008425338814357803278158638729670710106669950337056731417268401165095229200148110988280360475881515115993168870034689840306616711233762114307129166600100865706985298814940568655771706932383599912168493175646404600488763359609869327785765990786108975022410823165454196060547985311224563200500164850010932728283845917220429001684738490975828480815003617550880365006341224959857837927467039223548320663377716079932926676880953561435313454715201691003716208067676211689174955975814604420553508520458282266973708222913978976873388888853042369327392268519514316889278439487928545420206896426426089979741608625650650659238084622184513155315413175832904265014387550159864336775646108727420978948482870380241300955831472978568314374989162197307020484027325677253713514618263347774900199394845911066889164097367923535576812442313918304618442589790653549449440948523043613321738653634551677416186592911477708700000980750339193441717624043167722964483465227015379478635486500943850492127220907449182776618887200155461513930816234855409040867633427478301645850619792405661794950933398764262643461316226528236278638170372827830827140826927813149645187713119237778255790735598369049530994966947533022788373404858431188878439152895712832636614321123107451971961922585257692072861268787217253904668704360857047833426417314653329724296807505294408666245836141728027680947209769573735784588738200753067353661889927330222716185380718128405824559239370742764752574535905007212998916385921372992013171474163032110797621156584632207540000874866785079025414638292335764465111031737515846148129650064645524103039744071826167271859316064481494482658273876896702473518157690770890837199601211142611182385326624129305339899126264787733613184881057595431916781904885976878423136579358974708591457285392035959726320732968269718726275911609702912198452897011141359532477872785656332459552380111196134652580248786533810752663936107689918702993108531127208396308077627083908496715761904919411005701624339018661927302380354356745873806362487226654400992505808068311298760150846548276645942875398292645038321968107591035301805141538927910552488704579998631255028819236537406717185536228309105132688561010398820763394809612350487354780618142288049843811157263145392243921421890179315692071580451832585373891678420825690121677325905940351005364378538816348478507600366222804243284370093821327854516057091427948233615715604033013848716243542687125528407207109570868297736727578658445597561929052350655781527633874298571202418921829852763127518492440961580685642996285421324864231169242737750183830706983546187379335510879219841022791078643419417291032351545089920660627059442545762779664071572152307913841558659141899138162147312332626654295286383785879683399169314027982435586728247911847875728013545038480965426986527009350343692806612170108238456212489506989704245333899983556172628385256599727112038044020214396422747672488372863442501635655118968100173405510976674256849452450884636069157608152891244841451362263561163793965946252828225197930029116082208559824872407417263390458810056651863593411940443522237870778352856793623766625714000051113891726950327820662757437188313023085385681625412346919199485179086148515970028450635779321331024055273458758921093718325469120632308709209732594233941740139853563534797697727365495546771995628841374407464120913578103399173536109743743360051091191488466768033900114715371802224764864991822709869365380582162926644214128887934933562935004469940203319467333694726389418721752981487069890228869533224500904953610051305861390077938984982941086098660226186432400557341340826106862064698588454635140870426964421663023584439953183822440934061077348139315064745125931791565560953334176002488043886197546619914451625364293357450864462093413115750070208842170966807381263236941301880728719711103276080106017022266227231795955645245582009943975197678053437216668751664833777630990970936762163824797672958368744899586718295854647741329725784412714411214627559279744689950232289726725909739066438734246637431749423882914259166810613111742502317760955257288045607373294653712503682614201395116743468479339651905472210901851421196763597304947167877897583045588112241480752072697356911937055278866270418960857704505791769315520033241863505646320851972559857109034839269895534380722606314453416966914671040996715807984325173759049782897016225442199413057103551269746814197482812865347298765187356506533391554679273198984895708056694761219130455230242484596933477685303136334632183591119669216806868338905374725115489294995446074312046268705820352920633329445812277886250822060709610288257923162931618882395546896897831184358811090647555520924463492741577638842365217646889131833215994995115035891598298297935752022412668817106788036957247612495983514958399715874256930157886390779411938715545025760998763305677670593713562089690788388166190910722899154133248477297313771471323346806311461678019891621284514272454808271343111974629781311550632163268462104400310204546422793191494523567906915720795696076616699299963496418943034051299564070102118245491276111432217103231400082250539429515511946226436217591941971692097734806703202719300355973741663116581772184812602814981381546413030912897482538414991090358591634935819639714661283528091129532215432488798164723511757768029510708225071951387158680632730906838629601108881853008600235830987574265925880152565219106873703088226732159345305297742364968208900761485989210690032891218031467810575946784334455094319445693988012575622470607792834608908211130341589105908058253004682827362228516723475281441901811864196831732228278697773088723057647292099182545958960564623431597482774298285361756201464752479869194264415221730881531710065083222065338012782978792995593895405640706281128727982481758127210130415333912926825156431595945649381871818142081202076844912335842317453792491193665722179896214906061170534396983458216947961850407317986092981513921181475504549907831913090266628820557396600244597746748251887820593232144205555884790834236966401971740061315332781891353262579622670182247333357336423361081225429111484630919483168147846245488111977931785135290063503275122253118253623752876652858044109037332135458551199175017919457645176173252715370597501482404207511246145593193994312624300580640615922249138108003858194133176938390116742265435869921976232075291850253185750268666639543568310082328443698317097365474883990767533506430114082503992139203388008821398026012760301646668592469098575751376047090862909784305719796536627081206994992188936739478662335340494762426116309940713020126805196299870182274254880331319255529387217029450510260596148570765666441682433766354080141342810406952075438816884044627641516202876715166232311512581080111750545479968978813117038416887102502176779581919491474808971035330997889165012254427649455824994347148814313699410172782363126631768230136828667368319829516076347539846448748212363799244136260394677527806961090239775304773578579022297688035041419311637190749051202818624559821499513884804092055128388347338345982982739462060244900846351812288075051649734524534344289982045369388728266385798237698218044783366860951704788950054333757224585765437795695541418332069386175242842491273362636304599169661727942782138232559246073162257577843549023981321370110783594819782937243358743614219712960176174188038343729875029749259638646068163464826734135171391558281887287728243797672324567330242746977074024781793506875472632662596534402049323291711373360080779363809987513665501925897298053638753226368115337305020357491372949123472754788879239030532487397800596177435531578275869580268906261281989097318430323443497384279311101317396442250459988815836184827995528168282662084352558264178175654021650560775119593426674481841272671023531082143773501409750670200142076488935514468197195734588476698699985385035793379505333469335148150644547335442138625571344928104002463685346043028679148609044042205033617287650313806174186316279303836402472306702094136556574264028114655076012915267041135234740510846895433151568518476044000939971431807323152555680012239097789511139074992528302809490932785944441457762082256414365540322444179056664141000869438426424625663056637192769535199169718679483629721327079190102875980812062704718572582748116281153382830938307506852282651340226904150006770619973855345360452241741360525609701944255207956211569157199793612590757713954069192157370777820934065719400673030975436586938014946043033363065521585122380376785920812989540727836229467516148162805362470884757677019543041659252888592725407388130055192979749151820612007190965788302286142038817347126510917846241316631109926419503601848439432955702470537085535473287982261996400853050008542908736228866753158484341228260545787828188023077850765658650951178184559259939555693702583462455796772212051152612095442578163166106024389455724231079626641551122252683129012497782736959102405075556720520465176303456144254827355793558158079014554808231471768029556205389457148180437570977314098510212092400059365185337069940657313342272680746505986364943807820752567575641400457413962062218860893648647318390822480650000492625361012000110276924335950639563486731042617563229495265819638886656736381948207508487545861162185987247770446779491219187016104098602582284736032033832609187412673869050919894693671712229508921518965906123272815121260440139761331242364006937683639782624820137895960791752715632987035338873553320333659694235762742836799618579631426684568089246223707406510329034203250130937828686278346799671011526600907770564248174008331216262291301224599083891585311593243640654765364026171460806954592528155702278177217302257450818336088382739220243123965779213051995738058220769070062156896004240271803340719545750751129637528786455527908932292688149614863482122184658568316012878886722834902876536464755951485858610532452336240314194212048391009937235915222851914142842646359673198747780599811850864369120710567332787545443881787771717223679328708495446270868745260661311767832963590214725931305858170780667091369523275549440729813140157831447422523139581327432132968862563875319892935673987630811133539261811285630766289197582237729476302688236298385791556857552020942567169783910990570963331912016116626026834437539619770527540173330790599613963145087879299585515853545723688118019281666896765143918847867878882337756978936530614082853141639814160184556393362256283240447296808324501173205709380576616224405044447389084616994924190273486092556509500388302415761456747337359399170396322386500914007835655464094293748388003408899582795477318071572706744815251646876679975550961530676613906991406124111789496563292297916422212144638504712765962813151884643476377804077033436969741584780195575656197847646417235660224279510133416259813772796103427544228105023854833742068744743613843316743418923321786401293469601139944250584287423170702478798241216507635971738936475880424916379938571845051696991919107751788679617880758420153411771451703933897512290872734128297954179781238404609428436258018001887790203427911994277199330438157678760591184556505882836721817209711265793846520695225127434135299078646769624603394453912810311520365051775452766343202204874712780095865522071109886209315191870720448197810438838784633510911035463491492357106577731847145700951519854299679876107738323178966920987419323983077615265625910984228140397341721546744553744530782527391102010386398692485412102716677250691043329121952149247819318069550328005789082239641162801122550094004313381623543864579959144021222720622279021413738187944868152627308679522497534327253081600180216250185146085401745009660400205364212006604866572584655842191362809991460420304146567587242239032043668800732634074376676658880226772812362538717334156367753808401680216606955751924267372303865465511469054556728094552533177273570612018807698492241455546081093285146118451198823069194027882087676856000050288333215507952906416938416906383463823338413333864109507531637140932283964135851115763641736800123361292282160995637102387614130382182975214888971394369464095590603786612691188222300552708088764108977158307478478203638565482818250331436751058168631780289853309405185599046506038941877743647870220154862560946718768378798144457987624492659219023062671328845624088657353680949646247618734333518103594911924458254568247673848343004630831159230565582305923771195510956492239946029365843356969395714564327161919871330805648449167477584915470195288787738487763329015403048483188318892452124328156219772513546854609603874667256600118017780957588812062013351333201915761687912772955125345160489125406157116145885448825157680784158859341861755482477167798124111548979152175611289284747998078307481859895156739656044312341801155624248451172262887804230125355346699552822797000801894171316979240883613333824149377246736989010035891983279406195092212990003660618815056380711069130136971650047148722376711706533929252127918988734893243874339985145065329599661444284743635907652342128617610451600182833018999840750542808619069730983727365459393651649137696127882869529428881614969527069063817429967537649238843786175482229629254902191529827894587246414739045476828215917417882199279136284558949184506644448369341313486078811259881810900316944226077918060144424582300627312576514190103374179581106828304317639864910036345084486700076859562946310128789952450501973088331381521746358122341985238666870495206237993755511147307888511577542450237455270854545825099341888521107856844600756835342628862173622845328030288035653119612327708137044488218096769644774946683962823949201096784309835188625382278325849426039970279405877462756275039127352767853744746129181437837692323542729261622977361316135933058655460660811628645200317868023544197309222178417499342636499402111566188654926603393381741187180911691849668868551848955982159433231875675860511107727389586402181247992673469220821459865587209744872226950320755405739140042757828148443156273882924422238586617065762211744724651925515437576904646068911014974881146982358565905605403532928300099312400333851714065630033832908192043017021929317083011101016226750897157002289436536327254073241584750721387328305797622475159970119639756583701576584102515632972871507372690504957339794687334663284356328440049241083196500860101524074513355569080241650398295613623369072561245456186325860601443354569978731718586974261086166484209318203774204657981901586005851574340479267529579854722602179933598176854268171291652108376918380566036946490674338581224677566464883943520095439275445213012979499563342551706058068905561010223734907200283550379769977164751830869972744371686914257564354102595550141351996772864513521030651496913102924521376900191534492118814709025212265525548376904108482653407496749815990330942847640875368020101511073456229600758395132337073500174772785196380180923199196009845041804698513484058684653356467954557394515606614625799949169250452488224781953802642200294210574615192639515634736579334725703177800922519327788089985850385569085477650921713901836119468366076426447789465948217876392353725453679940070383826158868803887341737421284393549298790733674802785595079592447260291143612534193801309553193155210245155354590048796437197981911828923627897070113671288018499378239661998799732156557785044648753279991225324843521377980656459057365677150054241226439022009260970690629128365259280487099396540685789039461235425466147528776246174300311666477275379728134659470276687734935029023824022373491807605055958814778807150342527583688323658865009219190109540714707506422519210735544518714601170359323011791839520628550514664358666110787550822676854105061934959429958792237835568196071127727876893900963051138348314654978984653943203876202997998962270395100076634928410465239120210666678949613693980395612948620783244415516555140968265615267194471474067028470857027563592780908419138900042182778927759582206673404327759725987978250503901997625217063507230057534905218185053117551036184902444886956008969561538996729651985859888620376548233953392074917131107079256688199666384439666858597918605555547393811885021065353425252893008382824309634620268198966952206469061812821468889518704598783281179969144365082704719853205910102117675744264133324057530214222397854114596037107409277309382889655962487783563610875975893487295741443122865632675355883178521332255827065063201807581037286916256150866085707312336326707797194329740918687913717230948935009281880288319030460791173816034528331180512506553806736029192327518713176129636362093081350848359285944519759470520936505574530329511593509167998776341357829719570978112523929780942118665205105642437457326022398388560184218747647741198236356008787546138299684095198317082153974464649974544046637262109957955535601417222809848384243668993559748686841895297336482750407284200282818400582644139219943729743586175467954907233338533877107101380494950995517962528509987568599783878700954577985424118208065678427354003814881210785154540762117855475012169519833888238839830758972924792685471164428416032370525456096167543736113604192180336766297522898567560203041142129102020125346855098955691493810985168927854783428492367484443260401362565488326649436860808944405771792399195882118407681471524309636656986054583366452020914678382063219635347020222823094040940768130866968386640691677881530821545506623192317757075041945857530158687401006917116333144950771030851252483402009357839659849831791053848201759665167246662288308743713270257776712605313283226912337225977912616893910155044008378623543827297841259649323867075454155568895345694005684246137068301871026737101068099818663325806742690110950267418384349252225699055742280659513352353949951815663818933258187281044248968234533472356991266612571149735809322749795376945896776516147163606443506363984037133978037477923702176590825063444038330107931761604945871447269120229695611285871581843977528048936801597178957485654498521947105502036103250121315888784595880171764967746527820176707634590346301446737514564880472083711419810307219096645847672190181268669343085303364881475533809751198477146530612194909041808812067381325346005481705201985569811432455914158341321598320415305156902505980613660947224271377953984634104398964813491035508825584524080736339148822854056587852083464049229290278868359348901764616654992598438612542275194066385081518550435263088470898736458654851929372303068809104221070342337111635079409702011582646246916599440517241692241967398135343939519627503718410682616528923292449566483810461686531187059615126086635881318114681666112523620902640808058904641533401880421768572006632312797261149267809588733332848981845418143818224653211835940644850062106702667944469156008134768861799980802098582747671364011545897608739374079037085322017680200212646576308188811798471148738492169818531000694856316117745135954667674348983241199541169685740407977046406303900571510887457259556911098205102824525125645090604971377720817415997755160421216495738128787528802321882773513904129889392489573577666592463178142367381427562048434674297728061254969380368073235296097897342702322002379502308797223119460311515625739486738078015281668793506461633562580259280405682745376470003972197706353586250057337185906426169872372780371230029114282845002519686402765419668223361336988214155922402782401178417645306403053022661901246910379700529643017668457626163642871533959500421940194962799943638556462258979692486867511512440712417199457351770871360938665365959765136087539535128042363095505356987672384100979340555088900279403602701374167871364060945965892216755506925478920197623936603943238309462561417694259328754168899025969994500159221846673190565396329932618858006293692622005600256161252260109110300626764979189663353709774651793870271949172999458105579658085160669787805340337338026293970685672313368360830141257740773009249906892335739564956551694725146156222250903779341139395761705973904492099714184904107159316268040679859189497104594554783436981606359599684655422068183987975272513274314884336050575791049670257709521846625939475734888952282551009812505660403491554703771045794252952834718843267902098264011642158562745467468945705775236956779767804420501557105134369127193720657715633407383947811372143376541674640390641468229626664634281269531482175347143193809907943882230754525421535337330235841681443154289795480069739045409332067329978770416979030128861410004398161294807463258022526830878364075870227220996250102801684533762320679739739889418550949548102296300334945871908000127663016330216852704843771918827520115087943070123101128003495610254334843761206341114279176252815010595763081983195018914996903802529224614904973334545251547660212806704676831666536990520517093514437207955078973200104438083835485327182879000564223056933471758393574004110783279882560438905295419907956966822238856462083971514886802508537001603593313530924577519591052149639730861277180443995362725207884246745262411458793063922542429036696103107227073520998975388908076095038280894579666910756905842874387076426905615737863882448518521404954233762092533350242623673357992319465641317888882244978789322028310286620226371579608870549733476943137984951359484569071000250678877626482525613231786775537176188185362847872331710196756494266232148144591833109489624474723505566568786503508261970906321607632946119970386886434931839002670004483043205213727707551206124678506932440506872146807094708145208566750294943222980163325764383776277528086388357510625674008267655507205692558787537456249971068117598441991339175556409161060815946296082371681109768546530760664603281537304840045702451181424186934451648436324392800675450698206435707400348176057734124986400114821979803861917718484980924448143427896987974152634414640265329045913611314515014299079128372240142187695060793581463864773480780964816143923805781144593891344626485068970767437789539506430845502446245341336510248120293983632371102855461584099340262894544124120290824286728990556722978495462251354947391085399577983914958062028353035830937519236302218434483336524636632004131400470943395372681065431109363798297581605524900012730215188174439821145675893420110345239061897339938315051613491824471433097381896303004749437345709695152094228863414352933785739845385872760268464914161008622783142908283174722134792988868072350402482072270948814772645510835157445647026910594758061520794691386517014428254402372386873730027792754765585182864296407486818007869460777158668615039461823667045890862464858658664366135493840049614563649302152605444782796255359232823607269348580061805665524754389392297997404795950603696623084998811223284716588148221371950068812464376870231965291885497571345761583090535381716655037013270140449899950663915523673090564741193480575322759481270213966565262986130173535852226251304462581827775228408166158004550963524048302919491016619749039081725657625892111543301860611662584711876688030733356303191039089524774291251757147159891418857824296284953614341319939916727842369852655398869867180125728823100961438855090247451929956774688508771615749295189211093807813604538051049112377372473351627423913248534766295689999731817616825315322261985001880973999218285325949547427956742363395757218127599757150538547291070556523839321899376922961868273645285850977351360226011379451103378032457979870191700596426448177641519401517029541009435292850541264781159659428475771902934335510983714855514207766427251245580529607049278074629886187472989356990036521833780649601425796161381967808685550225182464812059623397537373687648799914386066157404743647177490871468120190863083207543710940810412723044810732117281823673049480528328577609349486719057054227008253645227742411292898427850273997698900038023030259437851505467430887855196588779224007105391429954650360988945032535202490731676162445474156232846465573448210397883415606670283304353181347313223407307568083482212203663628075397261615170229692791011185325271528432922960756567489034307150960364941900818408833808942248446506191558718644200432915942520936174120641208272977974614157380359707621161195959479247013579595769007692445748987877842412698797652587806336651227323330484809198693303645317198600900411352915976816615114877968372781563412606776548212562065765175036003988210271196362528348568201112497674315331807328187728660906110955029974391185562623016764149645535401191591704438992000007148206424244956900528804210266687942955565766810433458967543142033866218196903848540334222583740468872916376409719082151626454797133805216360900181733453800246719453772932877826876933086950800716203052386722506353640461131583911578897022384386609775544594021847050958794029941490597984130678742080504576965506648826274220496201550859481092187698983045268147664193362312382817192102240112210422731879489902802282672667088478027543208821064314797759283024709813196324008595906880751009024647033018717355987587529768431920440944791554270332050497307959841299047489427585790617351563834488014170224114751089109352777621675757898762633426447805192462035380870309986023076293492534526244677274234866352013483388626796097087129641905819851399964215277578714670291419842596774888366126708993745736742795231976174385289937928778171819962842481808675615889255732370408535137709709091310066027307525045140198662098815742229726769458345896666971826684550955760262940321073610134569517369300938712027059348499589023246438009673372972122775400661251902904799502973627030100749889341895033755296518580264306348654519305297335784180499706752531082847606777229618326724537258613472551336065746412324169523589331670049533766512268847759733657217937101913288272870046433193638180032157394500285865437218050552356216257584133760577477160651255334324302247369981272518001354651953061685926521435622148770620148902738252953700652364844978057519657011447315596570922210198240627285709279891105395359551601797735951724666270660332839907387196174340311764552119680573207255251688295300999061698391412787952245256830470095130669310438829221985291649100158623946074030760722996930112767346085707672642968752747897508455234793967591730557534893305290269219231362824742284030690451715752399719569578125515511746741249348843310961842606969978766647858093431425345734624829586014113810379086760520561375682007342845341358283567321025777706212338831308748922048924556922639171821522514849521702848512023421670600365433575221502294758535275069302670043226236758131975760523685326468812838323762754965002705485809147480501055625641522073897666550617314651365005362549409878087766199379289859665625359973635673022859833976456950631028470015995339559212203053472011324641443811716170643218945431684773482519463277192664065343315696621968418005406489122662743843555922511484159949557101708662717277176703699860597794733234518305264016506907352920987166060389271545687391846143637078835465609223284492424070736699070107152011152424205981644634025798853312672841528283126852430312411710120483737181095507848081491858619018913057168510565737203034632354563326103644232587649545478387581313837391736956892059192088649912122468524843996660472134665694140689388965320306743817924248044951127392339100776833529556936267895962461867502929260648793854074269235735762066462300578556851038483238796447844719708340428848668287264368858906392623851883684617037343769337417485660202572896867936473544672233444978139726107553727221608899671606374718798846953330356284149379035616381668529865365917283243324325691371025824096453331171622607309745727969807433265569031590399759545095423583801259078743074668042523785781286366494498262894324361944836257722961882728878808514138268080649444165579032513258666783093594588699263941668621061836663247477913529502639341332924816765319201507391384460363024836352846143844093102049904424009363615738990449925406881175929640031063592688415854047696888013633465000428898070992058881367837670818215774963078493676147525056438048077075125239755485226942019625209802114038397156985655791465923940489653210031193227906048962341805273783419729479038233110827171048862966072798005154726008918635922462130662517184564048012209381331365123410104500456683767281920181899521575486888927236390171190794811322208304718966954813128304326232967888021348312890480649001249996694700470800610350093775989412987673652820741148225647872813074464363499508161482989088705031078518369890911281652281373033877513611235119404019878841637367056401617760763042066274478339558458473176578784541450680878080393769830475172522949744801424802763866714742791846900315779114666837875711741970618691311211604717881427099972507656625949502915526848301544599462391257186892769923893709085770254804765490286057520110517922503909934408335066885060706170586123353618459828362214863676468073006069043445803193284117685126467857747255234044196259821079735154716109038349869357950852818886628368497389200849756506225692624221345650433778541727235294594558339280615666380998638499721684349535353227254817084699606836519399934169832878675814570381386436444888337715684634776819191422989107109212880138821949616445004218733527987652389549535494418847739404148224667751043867421793272831851067060479518478413733840724882521987657290637107378899631264636105366751913471642556676639418426116222788706779960433282951458836122644485917535204114687378812659458754602212508149137700687307304334291078145846290989943224689128592798201168587536377488952571565170227806749867524800028113100531005240595722414014692641763519700978910489287439782775842858079121553159876181799754875246636976198434544942160639282506053088022474615292553991989264048364914578345415818239994159959713879471288221072000162024481719775661958804683160017359126043551414579214209832258684121244534895833279915417815832792759911422647148933918821227078058960479250369603182992407126989027560188386344497844599225105475065428703897661067585531659661203213683693026619223552087900931391676127654005242453639502336862403062914650014709511013516061821647729638817157879832577886458373684464758360523762633231560556590469041060354488936074854382876746726446610576441637933464367084770402725507809644627618624789746434274168735165771783018395588594346925674749359068525099052631347862223458075712717435887505578027505657287599450478278643421014634431409564615304114954105355794112462286432754989315351003509025081519679740957667435643026283080797867913488138277889867620500108962791637138057760989727891525124391253208317507212272181692908715626635124861277974823930482754905672887214819688803460751560288255264035008155855146288225898241309803082099629446438987392888986610987196180711668084919034923596710932347803938753934759693250958837932110175043727793768028713644349075115271319546843229826327001167271438732124590695194660522985335763631184943183273301512300747099712331085233295963772121064280265431299669167386344173115321782962943615592987460356814343369458566268817096192617887992343689259216716976231597214560882977174089999733788757250067844318851821974379881704117639717636751590744752575947932086516632250233165157052395497026123825896056351445873178110098640422361487890388394805917176573012916547045815944323224514853542123677028922286736186404939244523079909034294316143339158440799098551456860601114072780085456288680380963021802887468433155225454787809481930103871537235419590776076633567265656933396802473828747416150015762809116839392894816466682848576305854114789168251665972367955878376352658831924621078225761625870869600455175780887182404182224646610380312307174771465766222642827986409856767022747192394334290396334860041927076386307620814366534442594160199314754561403395850998918750242047837038779962988609544910092411689701709914174074288515148573929633255033354071078886711202499461839621821269466944786038502768442666335679517121102878081359495460793800735520767750880998499430304398945281496314354377398727816610996756172856599415961608511769844361346538076138466529766142049555347671897664934897939285786133834017805049779318117704414731408488833037619282996000851545336669591582647726168198034043597184613307284881717578087787852840041525058944306988950718831671448765725589052842670632975342997048284747598605922398752196109250682822924391141528071040429941554445168601122378868844214797467962630362991361544493435376139354151861454614749662854234188772316376711039582973756419199255839360321636296153269523104615241884052123223604188308558765716955197561119204988042707988147025857062040090374157737436111179783575620689256562734289911041391632298756416296694601405706760148986068381375789941467444559225252462798859047892860854605934702293681111766380512305433014915753375207222714272771779450975228339567499340934998250228579234829041299362973435654766057062592835879337536204671809883598988910646456610576284810757640722620556018484113848272886432696138058478769429920882216540754151147063385979428720772809916905076468380675402528027642490594023389746665881322983328806221656136968090804382902014021736433239051104905577850937011399012394615846585695824764732038457848121576015626178571178330565700476635422570553575083342861364454382739282713894758978675243698285122842924306223366930325163305688775067697685562362961421559380916083677369857032252878211113278742214425767037650806125909170703053881669093258560908996201423377694423056980429008634709118620950483609633939500110838822965529938732648982559683351589778195192433512109228789210709625880848536518110023430734871429790237275818519218566121449520602934423470685267469327581407795386565464523026801568381922670612195940163157307718927417831600626427144174408556740507136898863360956351843692104093963288826278904989613581446894505287345913569976003410586906459480862408325645320409187133319984967149936002213928108536862623772907086838578170961585494977346105129282170280297352993726126482499929382688421506701835965461918476759758897084145109054895942777759751632805874123824357352348670118524436907891381890443180726754077822892312686166301336104050292343721083539614729964623108835925472146737895388711438969260515431254557285073863098559703084919033360537290350103120111525896171780312902623171123902508893360511411549043005652348964654308101075034336549088749688712587881311506553143623935912918973373446135903592611178413859574526392840832013039039728970302456208377539815950735018754513350093349491993838897956936804818051046628274530116061125894700932541591613486523679429609046910528670780079954394010996147640032663431166054970372632597527596396036565284570316390893605388335656018729775529110173517965173205464799131269537711412783082748030933100973576761363852435509595711414693564194025580605681773746540848262490090567905756546845788112038575087696302445283667997252965612859803308827199044564878443397064595152373647299964324571267330010200741500594820535080274067134830680815968689507781777086568678132434427102545921962610904284439093559598222399200707713554118512395339463452248801502656778900183726030157437923805278591789785610211448118646669524965202602112758168975006426117918030394352320961922683866691306602768195277087402667612574248783180779698255995956150105965108677619139934687193753805488472673174942836041915109464519037565186596095756836288440951228862441654417861370925906278745275639326538689993996135231769156241294389495645025242054245549168763678442054661190327216663858203598813671918698779140227345005715069131490563902410386302092041108237573062874084786172731002870274687975704088774217950823444656519870379468689852492854342610357805995519965456804048232324140063845448293577706214153615207421900380168657019980813823547548974499007901248189819229578267255221717377434066801138956676406793876211059479537935914340225618673026532120357475263950500129279782296882202849196872854708246048139916670586923260736495739100588599461533115739869502316784112401971832902973194878126490744219289811197305784114665196211063674548059582117790363532122579264048756214072430773293083734916361667696711397103929682308697239062556906706779351205214881499555915831682003594261608870506471737329569272193621371827952434637700612429250082473713739864917592844193957509714030678632336819002486292023926302645929177632495192770637472177899724802011563024706358561154878737391130992083093981952559572504886427451779553401160630819717437443220748068485610459242262828370046528925686281474284464522345059324629538853984324685111937790212330342446612694083678506274501598381738014716270627959463442663191490712863568336187686110368194837222414930597336649036630040572447080954636929242935221160004693292385246274917739539731935808931280772715631173518060877420952748126958886942760578039715700269616739367519561727950623412284584485498353689357381718127990293927402252332603081435254387366072263252258165874633443662645060117885763086304515247026039981810196517980439361478661892009492556720227655539169709680975983935294719341415121488879114492570550094320721858630903908855747488332188744599636862930611497801810908162965459024072417467661541252867696124014376367574916763908231043505961656599262033312476066394316158966637798508889723059780296105970182853257169816023259974117087603383861398695238012799167788842955637252110309663746251353775214356094043465148782736825182683330507120876563790472227905196586232684692770148978430532122380724305589464792443505007192919263457684502938129758481551038520371555056970938098252362524521477452418134278650183585386067875594229323232430980419259097476183192689211551686652961226129395774093999496369773882687562075394925352068192776559294411155298085301577709750393416250370932377583635096826114165765659475197869270822779863904051071828409581563865873536211907365259388600858377297817090881148112160665804007879805129832740364601084963153941690647221745029666147741339734989369004537762918037101445773782212812976638298776416232212244098374247066142192739215807226096062312113199935257214209687820419233156799366601133767129974410609035563699821203490963783396604994930621754711722937549847538315631278039233641464137479237486686778921733650695041898161850601830451657112288068829693364808661522766210300654527822818324432197588839431073312589836500120280593419842707598576699736185344630038643442234426539111781356496126456394690321296831217338400136177219178617398593953050729629970888639259636040434178265383544961583415600429164782089106842222407227890751063988792404346070306399663830854415480622414618052751398878227098326613686506121423310396703799433333408773158381154370505531727030715599553265897875184514965874846637332986795760221961100693281773759407288255002162706830729066515619829890047130786184304914541646992208710461095780919755781113822197615722462005081281605897576494213024629294482841453942153400104765377516053876149544696939253966727265934564480801425533229722919275399443651021325394268011980850300642426192622435120827259651104235977750463537125811805702668090225898852510427521345273439304960738886128897618521249421632252473227286436523550564303657468888142444902652123312696890130452470314476151135908741343415479650698238055189398008232883877252751138734873135721499744833893182786266295862868857379883257726754390825344346703594235050355916458569848228962596183234982470202134410581352230734634323174289894420059802545830948210558571330368872979724253808742169428945128309824425385611555589540540421492992089290050675886287344515098748153121954166250863434264334158487097584565119723194178014157793482240436839811423579118600925367476873626755917836531194961390020140435136471203766726612868286116265837336542328018232185081023758492479295916897607209423431593382360798307997664827195770260831477217955412501997042310186645312778675360304882829555216257571359645190443227699509692414333822807861364009170912365899857954690455433614046239122009624356160900914419615002600677588817292578341468785209802414950025995273533471767007854531778586002208699922974989214770314259602088861424339912705219922563533577771521940690115217367356627218986304986618937855270662326672150814120544814206617428920652957522375122732900013967420836521590258406312943255297679613642442083197665555206831570002985289059453524614782056540016616455243302590445322816315992414828712711054720746981663439515015109821087467302754574384690729408084240302892487841161629208436892592236087277730357270057267887361809613674019813817436428657578149687929178853439213372960597829480617958845268043537520303615640375229090539534400224811076447562824844452502862495004464710514577196758410041592240375041519781915303866002428035625281467209048178846434640858532226918600025291767451358034398379320542894153967776146662762083864514448811924831734911493259791782586056693027539604586665371281627925692736905320687438568175245692679454710577296031433555661273364104889377180019226466507699145073589463685925748907916259349213461505581390109934993543057321351804559450887679457979007234925367405801020088662644624224097978976554921067339304768851724795564969484628666606912993437419507049194178943105872974905505808928853284293160156939775910618251653122842500677715220747046642274015267880478744728905354604449288297031546570457665799233392837121576466601724784296287446285124279118349914737734264363399798313270194638141673070372109413038471901646214162578675750627485952092189619219737645805009864986521222487064551635583666586553816138464096628075975734197926835831362840607264304892838022208751446746120126057585946245928227558744284874227253704085700843081372256122117458993065250189723846597145264583762169483383141799679953229044077103413190457586999602027420874355740646709166065827706296230850350529481692459206970231397587621103887802415239171871916733000259890361646365006210162776216927279672876337739087675113792449902543641270326369058862946699791572655602868248480106126157679964084341358411501032568490213770787752195852495733632773398926279275965065539683495018811302257720711671005602542779309040456888800149929468816269844422265101935853627300642712868867925635336715636651412266516856973625784759940237699978859425053628931840369928013648373274818795902964310059677688701350162797624034959383974145693863826143808226081162171020006538839021669499848042239651662098418096229949619408114818767812115938024683781663931219812823708308120894910934401736706666751604698830347656129540409347058869316687927929182417581348400978335295712784990243757188994167894478090772297455957243478206939834513358460039799352017721721030163223197939935946514876211554354785926466423909831742265657289676892073611492572348698841562736537850905529755231046684407233672893820648111826903041139001109914288245646654106099998775585760217602822828542416909658690025311933334778899607182088680591437366570049152369369469322573196353489223428316332074912054682106240457895712012827505504910280217577548055908424208561085284951573724318864438710977082790855022991045162588402631979946275395732293518559838647173511075167499161197738641865375037011712443352430708305674035780407138165421719206065929182683481538530548766348691812363236127160884762376938990506918343743050607103052353290559516201355437383104805695611006283179422101666869895386032447116918926446023158159665034805501488808279436601822497800371303601114515544318830682817171336937439877318686565831409037179955786441303234475143102046911963596754869501957469820995714715111484892791923418777347590104702150383708212914010002660360864378830992939592968445644421408661942403562966960676523782033278751214131543320343085505833036935590750957982246748054015330365295739730410419134050899158388562553394615589853648521038037166549013876898508166955630411337399572252320488136183674326298333663656470459085876196094879753952949810236333655234549260935345093680836567100678273763643436959571474144988364199331051158597339546395124845050275198259367543593007742081078740356557310998468265229791102438838261627355625409176009640872617829808873763399193666340124908168511427717065976201342900115432608111088601652761567731838508776360504514523901510093787673376219872461022858421633346279798862690085169294285404598108669954635965880920727544913219620594582706679880592074124061308813009381660593154562905384475635026324260149867762388195981795395083887204619646465094539977290265950737275040981676566766100674153333636725486533091692278842235488933833956610359199763506094362989763601429077223191432036475738729117161020008075174401276491633323626752700874017203722177964246036919936709599128163579479825154245889535240234582419579301688037189238771905610494669232085999393129047741150490301587885803840837397240324136273322542833310121216960316661704268945699804554317374636900889203991446988733861259257631148198311600059774915699396748121137677606468391905154491155886672528556477933470049396581479450929204210730939511321413643757469874031889733865164657549454585076198319239610280501475724609041165990784362950222000275604290312806521398929611785891212194967341444443936522959979179070110288857763669753581334260969617093232123205236770143816157752257625468522161836400797544796363328705274225956222143136858560586834337617995176364367781920114755169034143945058502450225419108012899702747140465183959043715953870358818529800805161598872496978568276586483160436382317172301724097385634924857174391136631988154317888885386836899398831340859451367025328448711697343447386099485493974222161628117544482066713843634190631469294619030666529857473846269757591249824987615724138398838833251679608998656008238458024241841778059892564716569736366226366292736851988156093883465184429367251912385476329964986532053584477190376631675509755698740197941823533400925940628322256651707022499127956624733888689744405002855201611550057949543406450626090709324100237449586641956086991517406601923614530899393987615747066112251581678933731722998648910153087992128804519042795938609828435756515412128048104998515868032464338475304510004650547945297055136839982525966905593935439345645667691992987317537253300421325162915745801614776948912933129315076102141130462875875354940490127974041170751394644978359189205411342932300485049065629204258981042770521225122486678274644814834065973325466622821245669846428819539416784834712416251943764111523439535078715232057011094458749544773538744291204374895317991269311749006760584015016440355368591822333068052296923612050767456655827306197627301346872081499731241058317202502794970692316992305229352709714738410670458649738868135304314643036632527607334202840333976044629025638600043867571675617848417793114808861028839935764609105798419011240973686272402437496466971104857529485484714567340017457476325879465578698572692403853495263402404386212903909856301952733061194756949262970426661783488021288489801533907281915694066992322714246106248129181264904415575580032069044961436655181304259834416124176253798910580215725461966457320476891814926940459997310789896620616034855907374004221836963475576802135173220535384211401686651480794980645092493631609031684930902564058495727350782378230499896761499888369252431823857149937690805760909585743912074540657686905290258027578144102631768803997962157886491207532298215442621840385012846145858629650224590479956838833705410065279384248812780004956961583551935627030128248969770010947900395367750840987222682043316646789740438609642918415851426974463183322840513688978549208928190341429667537376178760797528947646404642166629143826711970793752028547115101837925662555679291840820086592810279426585033087141261304035935109310309579041132741366832208587212906949364683870445943375628822845578718610819816752685262250814628311759556363774581800408442081081289811860752218684410907108870247677084051038250886287746041493267165168757638232985224870951309911610273187640909308239448445396443981220745677517452788812477301789729147419614563446946741498741877795706609804708424419259816908952399223999192647381400288675336159239350756012935518785016279477596371146288696416701890429838162129635324044823868593698203982947182059300250860216270379328838463844093737253515126409180273923621233522192657117222127507077218651160474672666792152459720780731332381701551534664027476294026045473476317373464253321306150642279293032393012740210106165331214022829311624651289939499564781862646476433286744284438534517354350849728546607795091947409565269553879621021001907998889654598350406364427063196289245557441500653584126747719941177278649614847623360382789443232711467646761527541819156016904912524988008478346221698718326022748902819011165281880926774235873746547052717049677727809844690336182163479344089768845071884469678049935153797291256210131315003444009331849901305231098476694478878864853787935549468840007391710749495710559762875691940991858566372454324089208054683604734051884573394326873006721518888883565776831865629286777611093582647242623687651124162012524556117000436930306607379106825140222661160320756612946785725871846367176915125103096581698195328522954806002883179387098445813306096890410270274615059619290864241454015280060229653590250841189448048471875996956446915089828357542243348861145687020914498756846546298587052325697306976670991755189981072265439081332090306978269008374997701543813095597183092144059887132314615998402560163518900399809585777708248867094093998792571810147256776790666263098048814704436128605750262960200877440428307199833784426584262586899600027184941846857497466997224293274657996543102510114215694453492335105713153236210752771474860757725033774385941512657568405022509103011334111547901661840022635076700213259732324822748649249174404573962141420824470846727465605885756565636052910915940758596360448846254061999497445416831067087058421025726084291294122897161524945337116974088150924585878092332658619201043664988454259668701089751030518781577307947407710514123953941505353622110770208085386717397444315571828361668101435676349961217386604485298420737074760831486792925209868255198212475461292932476598080298653497248846473567949549685762671376763477547784048865170929203074915724148672978750962172896422776059719235831468162153284773640444304572110905581637622233488092103957965515723980192090088041272085198378625194669285071067826879391462976433923193610928040768248814572047284316390191388865385478030931021122068223463810642408365406506983684659775875168894690084964074507554249658976511026163229577090528420825583867927831056886697716799087640231867849761804939850191324172347476277548952731216923451622163202337257372400858410306227093952066361891633719195693129852464538305820479235404142712363803032093687018614960677158666127950139798638097348848609473602306334635862381937861708496107223566206954935592495017668942525136482567660611410453271243860359583473266629308856582889184322317698811005202683271500772370271726134605296637634645268012878239815425048596756346209385221253973124200372807824617140743317044613202125591975725774472873395338561494587843314075065219891657300310390603462425493069410729527440448697561253509223102478130997436599253922799748694844453651099286751543719145812593247131183039124067703713664905461209709117009031504433388692810146154277028545607404096079394440572959828877741812843687659824295817934503030876003115422245478722484478257380088785724985396143123306846300897564903701198135721505036192017927006514625824334870135982781971542872611138206956811164959865977576294507542936579631632698892799662362436798559481905284678303500378344281266163114773001304488297071320183318718139869158771381449592343569685872542648561115892948221882086797135676688180767453614501747771827857639785007779738465604239676108826729973141649052758913741341985923920343451997398067956653029746897033760970547607002399973708763251322706722784325836986038584670144949062336933236766508373119435108627371805444270165764907262798531728218827287183352727092829423709342152695134424850055406624795627713600007155625747995164016941335571954939136871077628255212662045580985190948270450984702597314538720986139813343139036112876291412166015945476013416318009583735810395433436032994525393894114576611089526749084529612511651306670489153877187904560049197294521341569734220833492467665012625327871717473205394952840952638739014135306376422289184241194265151581576062313816919358395904096202582447991517475483112057961905032905132183041259747910417333002977550987506116570078413439889078444350844214367740414239304889621125715965103927206079131785833583573779779966368474078716161253618319711447391596384327394752375266617014938815031855402442491983803549625317900455175365373458668854423295084535480682754705548709606988288702282944404593218176441672277827207609493076707964189993972283112569713358914181118985272193789818567817546561359466691103309816737717648957607156292896468362622173934682298163709536912249763258916463137893235540008663015767298822806942248508380764973292815031053474559924037208777685292329034998021470601661910211661710598064574551484310442702874423203701182672436069670282248884595569523159135629363397027858340119493156100702118714232503813122444413935143441016863403003244867634085241664586226865966503498109360833351648809552319879457162208325952948102304066635869604668872209766674908810669435165112882509074104067946432297702883011572319113356665148302610244743345289348333845332942543538217166870809040526578861351192957538167220191096222261032722773287626815538268962330119108979756868204227720243141422055243100007100186017266642103639044548862927189328121020578197815991265144395191774499675946384251923461235292994425100086216261188009786464706047895224872206233589754378507246186192911383431277248998643619607153883635678648847959841427974301292500999584028666715187184832908302548355728784383251482160986526232670823426153611161833105511092235380774312322832827237311283696756642253092171133885681398977547728359779972655636234635799090783804982544534900013741872743508655656051351603196741995588530783536902461696070703959244804930225470667123627639749968795111110548342461894521519114761737905875488549485339251789485583487647338812963579330646076761298509946767936953914626977401587820154850857816646935213170863415735475731083491567166253412835758573647956374808929817540029395176760705674545322907678846147947061986360672501978513440252802304761155097444096590766645737443771120524995131403333164966580531112251043391242906049424100690949109259191762247203044129683980025349021271828815676236955357851466848810804456981885260517227617400488914866263084624063805314724212967804387837556457344190419955644044975406763856193353399599758342189541346840211866028297604097382226939535883558350774125508244829962591754294439191092216331486071773043806619089802505546103958121048875754394684773917914360996137241689278706719434612288695293627769192963941771508594891183543620695502804012876461658516013929371696909080849860476839803048727694157029146556119123358530696916024682104487020052440619089555558025073818576289678406748573858848236451104132670990267007569097773986470987424489612192655630568021005676098107481021539255177181105208516940227821915132590501983662802672374789531742724621097567542478912685793992317968797028404470378932565005416616101072714793799635513564041396175790630206233926011256305819473819023865007598811550007716745282932701951012238013959428995118549786549085348295016328368795557825322756980183693871472438589624297011019557107440121241107836301325121625531491545776978052492571322336438192320198814785493043489923082117001117790212834365585259633178893077205072422210400003400825167885341959761974939135948931912400577794462202700205322332938241465591161888045479808944276012380799451252476391294155131252928643391930975697785138934146224633078876109457009664540926867952678013414360263878027136012303792007880138734674189014314720253960758938458753477113331962159137256726830918534721607416616926573471097594510608936542771395169114525504084708430310887885163616607787739701687410375071615547094097670588927357761167590506787237647949590080242335298139757847099250114770418442647283800562238917532969350112619854339453405641065667582337798860991833471967486933886979675531254865045739836364274919858691000493230242585203778655695935788848593907401802907956763209155212888525265872818763449699356797490823267177883359654758939843262691144716909117427005776131217540486504499728659203327950800274754156978192540292336945865245821455463708602495370225465256073135730136677150749017254241374634625041568581416177797057421584845087447545310651304431145701355091812962528497204021057055626000940354912371383471684555972759522857953839995989017281029633165247742507712237669267679135653083731503990529744973769592040190371779877605671254354945437983420163385393810312106267271037836707502303220972874251108493184715982454379930452800017990050254234604243750957212814180772449225168462253976932023027929141315481340788640051180469638885673502648325685203072794604814708067750329704069537840314414708797711851622144190696728770710654253070774207782789848727375039865941185687510975343033940233556555154753169946271699378070459465968891053467375969644451007553778681059479509633995635840803888667157265221530064870957649559110153935998225537907854581300632004810048105502834616945685531920460545030945221497293466204585246589864144836044901430246417857249944376814297543594658880691070650753781244797466522647946254921085176913825573527963072961502065712778924093098672409828176883496124920837600952561627369695011891378222752097740754114385690183945113250968542282497606193839992628609069168837136930065409571560450055464296166389887964903444041612238148259893517041605178689153893519753124865901698918154914611953892240699209860726420476873242882756116072036310599529707235789199570654711167123868456017128374918812492363695299652771052009289255112488931710795681134154077271011503595850722034077789036428738585016463832699436095876688020669031637917993952347172103349964349473942208206026258685291058023519092585077458539592518496121460249568905730024209258978523993074938856509579252496695401270227793337640053234114700252699572427051178610698689685645868511487846249039880953275830883620549400525350930946535280968909361522120620470052943245105999690251532022953609193803260479227064764434893460874798329872653149994082877235638511237465437069932643006801367000203753895889161215466820671827415875500760521896367035922982381576253422614692199123636248866966470245313165242455045230789996760440216700753532054399067911994127108443983706657228794407899549581473449488856721518855172322190546496923856013505105266640491100075977600763265765191909780913682276304070230919795555454837647618797839912813451610525908484205959669302188150162402587407186187877335067103679933867780802459255173893404406238516528711412701281372879245337956677830009413474605133215390073180279514063953197126018152419581585748642682968894881205222205546634466289602565357747316044485104609749655466636589756251007917214126286541780136666150184826512448131027085499603390213540571869497722791239123471677048555167606776684632858481453151543756341475667604465452246962980961864748506389183413527230887494215362613977459072871638203485151070771955918752800164700910165426954499251910824298820149163754543511877144725349182923631848245733226623171193525574326187360526284796250391422936621980174402596020132950400281564952686681523281796853604410359028063512146988440834048530198045942829836916644754088957511250385163177659617153913711418532781539285800221778887335954253228898702046693206249945127065840841747425430486397279393841989437194933060830822109562114426151811895833627172805290367066843813311009725604882731187246889845770637438781194916593787875452364819467279779797845445428948935232259166680515609274332453154808877398964605697207225052648552108645573120693705582614419860926126589765267946812488443334006004222667499985149312135661078533506955677987915927030196289707130042564807025450552553374267653082081082893191893200905773120431660143540726153170832546553554118077710569958396776982682420587302929419373531536850773494446503621171241386363651978645370364906559534103794146288591863890518009628656967897539174700323166597693665587617962944297982001761394341387193152237151041003660807672365519706829352158052954228798796197722096562442600389780140291680953826144134990066445531180387679381188197072873692497768012271740041528398811478749227203562465057212172008100592841276929744790161854817690614055173084622660130711122407471390542646135938350725981012568599068494225514810439340361312708645026255575771558790069358967775995438665598550796823851893946860795309068362350468200945233612037515844312986818637348189490584730769039357079536724988162204918242477324291900547057799216432965572205235658112877347748947963693234666132459166585494370558897825939167770951327397830446052869994390661780418388070869872802302532681602822311872762410855898004472845490850182331756321894422497821296219923908108300162222306391290447365165772083358736316289417026158718030989157577668306799162060878040371927696190948731093707101576253496604380906830854728161402827082461230215322284640082868015550269631482904297769601883688647959580505734691775949632979366116709154350385940618331457441605037885847791313659580109449056310923666341212035282437103624384248796031222629363108691177935231666286537867604926380427675804925651962341617224008941413093281294418234897463942135628363166170900540216539170650856215900900200718856277353706371356334915215055865684229607589964900180824175289603390100996457364845705608613967177178759960154398320423057295848588988707508189498560505973586471540108663099420707687357117421539874412777113218968848331940459768277973174721802943355466182400185976024439404377441566921701387224229790898881718170274880415356961166636732560614886980100096826905621235368631027392766291139835563657764481415892159402078300089662259887637156778146205950133484764639400633831369998256363147322668206386030552170881896845822200632510531060362681614007016513180676058198097323548864281197179202623579415245048917486749392377998667226339343447740220631684792385549627543523693522106614989289088310504730348818855326278504356436174003864844343226694300784241302544261048838221391812354330141512214894190048288351900097760280181701924121325682147650085905105335076236112792695380406255252844394987245933746838142216651393142369330716874637551493887867066968522773009784443086949586734527259691461088594766550248464673851136422232617278457054419712334681453474087407505788816239226869527583522120639539079756924767634835179989410316699298185138775657312024489914025223637781278223675970069915745224355661955169061498409882051184765077872602441741391543079348691067189482297788740447986235729070871861514072263258250998129833715449784749729061833195296614789635105225909656240856230391177883605257029977293029954091898591143132792378828201600958328488203806480650292774777936417112143641690940624027307146206329180877836699970245137729553820941650970128439765447151075936376709553429677033545113169044166715330937598363424929823243225967500725470454390589632574139587394752968299730150569383030782210856333625358859538580170234184796271843265607526343086462624459587063828101719312174166106432724270397109045141772458666468661473879337845873124238132012277076950509784586919709843822082663370628001171929347420260069990166644819288868864121015435899494234596734895019863419576907695971520445373871925672500508243278316729762694186709604816648220921817845057123898740525385271722542300668755855256480251224101739149392870562874625193804510448456219589935073612593020749432238137142895991534462260680370323619978880507706940130067578583718296275462692048412831053158794787610143940510989780569588097410663162843492846076389550672403275585573029873701215621605148148193397564182693831156336397993440059073022801646526630106647551741050511137268597525007187718748915522127087617827892226684045905853640202650127584771675608315663013983522237682570200686504897826997062921421744022358532044169896772405361706535745780089448731688996731627079963810875475418312045210443445662116970056905676488742185420895095996245117789617042868959699113540450991190213071398977246128279611817599934297083934191878105512689025996676149248064546102247601942824570822297881374719260782478658569384872339969445750850988018726756111894721504526124796119376657936102725773804631930467211481092490447250038723103865382596885280138526927793489956662574683323924841181286294474174071004257466289994359920726173116124879610966383601729820178182758749886558405371818710324018048209947150975367722157311165317476455698390919890844502209244051120115171696270495819515769202987121747732002397527941695384412144554564084978224215342791204243262417518226646015222089954549565728298552015819054759638899741214818800798069792742055911088780000096162789297135002608617049065104653488651491876476677968341650857778981097795587485274656749310615716758757155282032852395850316395306596952686534318983259567034318260232773555575543072240503462022238149996223091991485593744280388547472784512611622065304370589830418522392418272573326296045502615938023860126558795785853807358977078894996504806768949384383325454997829485979321276193066487227810189330306906740096561749555216709743495835294343876983956804199184121135585510385005236219512209232634059836149640838371279372482041503632509489216767345056445264329236119031646565967866825373247118046151382937804513239285921837255898293521082330476185992555501125335034234233672297706649885650643621245271144544027929961931446231082930144937736187536794483864271727227226772035162568097109291104071905738596242724552093775954518408139895796664584037018114976111790315080135408424388143067540193270974697637712999311860341503363152773995616043200011635769871264875627133470761324062542415905477238893699095352905266944291701572198723038682857234020860023637885097902103904420245754736174885719426088648701805948313633546620812768884534526070967294233346916046728284874109545992754577488176287508755653061252937848462740550290207071911234287294137329356109935884025563918054511100963221237689889566651923838445084275962417644923572818567720693450598681194490873453882923389431212208902000596914213767684430655137642939283123600997048781805771459724994176309701886642186889406686267881529979593802754883155180128362679782898565958632418245406199440628621296162093607785713642854076567315217322478461600124273699998914619263761971387986447256093616171602809619162009635675694712188039203263623498656316256237400670446992675688609935359561726553480114016356632255716277434163397174363799295426381511099327387397826128216516546821204980305024709231411710557078271765752724583182259437081044177182100987139929977848812720581085993223564793894997888510796054958647502711575985691733601131383975235523817998979636367374565204678640418512220382724628484305510293255492268062219566385342669164289935137341039137970900804839342450843779910936770562181560608085016432699126466524656683677446442207588588019012766079355377891607822915902111741152427157264606311537767173895195319790771223030086767911013682752516851313307214622194368168318882485471017621030921081322967123218882998387411503854027175987745744752568386878166306070107669685329341301423724584047572327835487143504511968788183925395284377231196548306419472230014577635683389487097204702117454752947639708455770171999976938501527177871061467373779752090528116675048934756923186111212052348595633497151609878819084522748847597352937343705572154790855311299314698598295495273999311674801559409270394975232145253386006920255021976509549660901967986499006554002180807241087478210200295646741263511080778702568482558261297670411115066912908121957064603709518165425442626457802752535237086090992695564952189496341110427777417794128418669365863097814907117905913013887710556257761966719764527349602636161209744438662017437065488111776226562812918822565487314639507605905082622340630804316543337629016854198682502875818304313610553449783193682837559606292805252673975823959476716343009262312294822567301244277516867303547889808637045396207313312936891715160878157933236657171607126603024816168093071481240979447137000443442412892787925015983566009359356011888080094609871516758531393771575820205853011524021761102978959175885902190293915501261314940932876816385095419983716975772012863673115205084621171061970490429581895689267457721933247237772166537486985624340241870522270767468119468454539879154622097120896315613281418330334661865523604938627297117158247783947725177415407875916215394585861970868747849114625820396598905638808344665897889891614751386246643901509432969852217835403690785145072751639974919378589233018217882232217971856719695522490525429489620532473821356536613021197890338235032056965403163455064324852079212515420681914757571934468073177616466287685370236207510021437804478862443669118879281203521739014773896178075461981999389271879795519730315368012670256270104447116496119502284559067523396982938542618506645344716458585407235172736444391384588472448172619217099679302396510288006576378229849631412070998116752061552512695025376882603228733800139115026631682598381991234270968027707670870264175257947659237563179179025689874433222930138991221151884256020356095814065529612425129631880280460925574534974103118726276504722781401717231033797435605155871597669224074050715307934641224051512061999241438554072250002006656251158810301547148218647526179384269663520715249992216708186340622630056121335696173052830739769740735851197747166179325927797124803246361502928293472651112109959602100552918268706385927566799945752040497867783505961682098704302932237178620562447483382733972619808547706245370705225712022448093692742332657606533406148564117432996831735669942411226765736714080844053446728531811582822394270561874934529669552626244004839110841949886673646991041163737723862232612156648941184182438074268649137276062435257847410587780632316939261744870713097995866087389566091795443200749620217558148670025813276777715212314044948223148211188225598608161689881934828949555421438420801252351440938813686610681876692958041324257923184474551337240679198160786398689170167922787485453812122301299774094843860078826288559077358808916661257566946420642194516495774181349357255159626701497458262356921583118813054145852978069215653253106249672792058319348151606384053100829245000673821909108849350491387830320093532972004272864178970663472142324094516607301149771410826462322171016893629494869096914093163824376415285214173813941525042385885747139277297799160756611789975045704478064729146569660763351645513329919813525753935628880766653460068411885688318281372985274445759611457150146250319437606636573667875125913674341221109951113529154383762607997330550829950335623792606837610880478258908135733667144395649745108377495812153623110246011491534767196531915503234208569214212455183445991749361022748742545786826287729689879167853106049882915199524977959786985607630191163138786067666565678551613264911043892678656087966209308922040427065348791447492039719463751166477105819939537564073363099448287805434636503293669264866418782919541044224272326582319546506804943591890330465511125312166500115351979977448815759755153267843562246141115229464532820065925755718106561114702214789080435077938739792578892396414427951193650023306300304496384774508408368865077601684341325910503497653811573814598425865891410307503939738831243167121278785244702403824977256706324642588094372905246555448757755025865226835483669229861632459359547094781629860601963739197701871868997747617257618809666783904623267959330982904135418132129239845257645552410072510481780614999158924335344458424625686371252600881495310628093514494835621518471673747449872303498271550726280263240273231005004623396551071673794890344658446942802435522557733320242863930197634738863512378244205869545212801591021592665366775531702127035090161360036761786282527564813463279800665153373313956524786910223098620414681425036482262135790725621020612736386253962702450074847780509301042893208636396089041045034587003312662463717353771344434287923892504579869082355022022378865162518884135736402639373413996334361319564928421198730591104329993032671139952630699360463682556750056217027328480548859832283378998544067050783131417936617842808530621036559969965617065261399822345571047282133776875239046764465540094519728834724481217186559441575415264160733385586259623283914362477499795572876911494095774745302754257536438159970323916304354229986507963897591481265523894774993408533665407499255525309140459139233557853611934164784658498539174870951956320575130490607035575665898772989122349283129944210606081933261912397190135615141651563751620417667430394575837563335041570300958779307663231812067346009439837352182616926991421500506258745227806606659070909664574173364925236574269256856570321970565967914760342619476420327518163244427690246345941737753278815911672899495291775390382951589331946753768253836336949188168423853175855094674130002792958665965835410568284765171420250057549574523907483533017602576829971939032864113166922769513460192446170140158899536531041309974483040672147394285933670507909618960331983697082103027717574620921997021350965824185950895969938778822919929643952074677758490578180669481320325525287965184108259020479319178042460437403071460084839770720259936535255904816813500111835051005137610646432761399219697778064666112743871401759569309806131264352186635571675769258962932151555302586990922386541269459315998428657963301737053781934256566190170121253978613638778440885402439504265631364412504441093209412428296761971500086501223334830198865620806094160458496693408826387480149375411970133523188862669093073323125147313209253575565114207575174267015535408887583274899821389855073744115016308065810960490518013178169547202039464308203796456145142927522110217261163382386659586796063537509507884533271479721849674654607207419747841433729646535005163954841994545284362382007848111953893178862640429625345632733763104817344791350124511050860179739275624609918443966577898516761909483649707705841553688699897176591216012387996208047176533372323798089149605272903795178235748231005026002105820597425686257053057502958213280783086626688070051248264632580169808027318372571836963535908642529436953724921157291931599827688806431512445367099814227380122016140083643482138463011601966751610627825818143855982913925821730976949151590430303603241066773081912383221783815344759766227913434063409181812045958468232891899904141089572359595657839405393914286866526981187282163776140550883634016029701248496349899469654988264604978150264896015824551742429545472057831837756797953088128211796971858476098860083388801541928426435037032448167959560596066856047855213045931198761588373506594287250747289486800678619176923856834195198836421416497868929212965498608839148202740285448557497541612428789080105390110901547618826958975641879014615181335394015493138965831112092123672475719994898539015517185963606394879907330675569556900514243385127943375485953606593716204005490683628610149976407304315046375381533368136843989592546498633519851766135725410906142281858003434424907573183349953587060897947774141364851179576788912115456167909378668480079316087533983164916210961130306936779806336742586574230316039924654613172943453865476438190319479086153701685777450444382862736046754132673282644819920771202637137020401753231741397755847153162005990161430999014143330083966504992493190037935253523175515268077082697124052420314845056547313347175991917419819998793255245775922700995187734881302422767698611752515413856286843593749572900076288863495607957443107071319124184525990616252995362857886308998798778322564593732622654361675744638979499103804282509910608119674785467620185228587473902739412782194584341132018616853753245412946674663318135555527405542579932200830902058509834185579953552720807356039791249224276454540519726541977111560767783701386580547609550388870236620677026435249307100440598580895519073798019303868293295730975766016127374012926029522424874334102465552080308629441247726598227453323624399924352364297056446361781159853057454045828302014375840767028100872585602119473798611446412158014065745323307002829017821315823823263895573587103319199052749476101660031452262297566295609704908486474099252263364480020994365977273433768375429357943982349960459960396997225206506598585825471525770394084979177754268542271967858143536886824838262395879770249112407906891271798406931706628883056566678603810943708077735414737528419139189775438710275329696756138850446106463648820655859681671415281862176813865202008045133694614839769483644256307001523527354032558390247815905760954947568476468480074275453206020922554621653753441976615084004446230630609332465883403421800303882883343998369954305184305991343362918785583760830002680060839705109965236846487222723245509802397895816194881327246934777244700059595547093244060893973427914664484915420487974570033142022898791525955136955661538125429978939469024137318910375407297606581506873621565126988080096338245738397982759713219313873616829827864489885683845778956934836267992708479190816698983386305371706202392823304735432997394060946544586893360917878801963436191021452391047365160263298016554409307736843771596949821713408884165142318979303580166685865422016911412471374882049205574413284776899684307550066390859509865873865640856927376192577215346955961937648597747344782218564882151183944882882520175814515401627298518399731417077717681597991090674914377624579136525269994070176221911665349751758953488270608573043951552563924928857749937542701510413250340704373692447055384358636825570615928801839343421567280235375979718585629070031628607565711699965393334746696173631341986383515127181833283240937816968236806695726582568527120555630686444087888111905626638592027822882044026981039234857336672618124749338485696823442798315439398892287687199647020402760831460920820119553628116387568257471811864832942112171445962851337484141707251094777132109747297145157303566145070178442637320267042407045445075362707671823485740974343243599077762057414619147697488365766502981985192309640982767468095280820089310513944424974545169790014356914861324085576361241680779797041804633395925959927133977504430201434378873496283908584632672169100122803385140010755376023984724507315442637658322403270624843958962214942805536641697986407055603176305926155872239809192845470276206635988304336884600204498748237515713276851803070548476384372323358906459178637848260852574642299618316417051662539336617190124721503245699697813930320535267805947583211409345226558183510082365061874278612968804753432450975168561820717335014318485135841070386874162569714615024431892181759219467972866615777971571834089050681959158749863104164660474209828802807701610081140006485574434453699062134730164301186049516559151912453449341253312703259021915548707781802103219438022841731683595193407785520887573551178319072603158740077485299293729941861613899920439306021652426316064102510960687794649041491280385591757973629829377995068129509012028448542903435998458747018631492020442175035992114893636368822383402536411998085759405274591433878422100519854436435003424556484189236637889666484044882294812182807450818526132078793713369825203083492884171761971901891173983037465387141011881339805115574145430533072015014974205539640427279698429843000330288798015149432120764313359687371164614719101348343474626518321369333815534527937729821427736630770721349863454647422750716601130753159967057651561051289559790461719850097221638713110204458343611208245271697656378373994789341585389002810428976318986191674619657303950166405986395699516677314117836414200438770701766265439552211184950972013590067123470703305689591438257340841245031545629161643045470494637627244296049183999206845792951759558216761121872186835824470757022964615472200642314532384662080676780599609710648801496178576905180798139289447158837104637430207286198560703260889120998336102119905712145167185729620272290538433136878014398033824271225004811397444796056064039749505373308005102067768424755019605306359627211667412663992924968997350662963969207157735764180177128777613247707471740678302699666078720039902702885227222347929325412172686559269334755116216647146890703976448181124746746609813587564866007955034859210776586057517827274507611035539650622990286419598178579265265052842228015549793203738899258863141214684520015466762691456641934748963357808419024171656652972298266490733084826293361895765335798152923254378509986606221322298158972236532288100164499388712082440163540732260487986764074264840612294913214966714581234671017173950503694180924868236286518168667460286441049358425470520164573480090660196108182317945964385069783717647081330340891485233170732088664823984004408354958138715072669743863666194624307140600844243894960332351357189470081281401163557170557916270023185438062259736276389590818826533182215061314200099272243863506960247291752517522530575696347206049700747615817243023235107083081191807317824933737759022413648568946211550651331329504485050027844546193610240760502754286902013387843103778095596264929455381580877649584837526167421431804360466833619265385610337980083107486872544120680476735305693908508159052712334153615039115853307716717734611678699476420874211916603279736966344276179235788630854468091025547671291186445935832408362224099732685534183476440258044813376023581281772200182820762706392678363875251980202350169227036492010286427259713252170603488689389709564769197829211984583072660116315639179110444771686326418662877510494420141458656984875315262365329412103169960120314376149712939988144251335171023830047576935355441380289338990353166027628566848672637985964228937328731753862589960946791412486667174566165584786584829195812316849196912320369069121999949539420639160027750582936616916066788838003174052761396303543799612714305351967036331494076120575476715322906509050506283309717790421812119353257444729675092615922819028899121122991446485847792424429271277003974014517112332464380378866091104759373694705272861190569783417792461529199817594229953945596765790879627770181587324273183358980624640598025143106042103057836186071014250794102389331266491249890334538214553942601763815827472136307181519774803253528422725143919246049399523434258133856334427622468426793311531251406602682707596471877138035979559460540554492261717032991364677446282443709411871974962142989229630367176416105233181081158631208706116265468780035696553672011396194528522254312875930383783922341224690692093262978194301127135609093264861450956519128228190316240977056101181726988593364268489178692160218820681012093460892282921050249825846099414010722200149381751319251172114141545054064158550636159781152346023658252232530523359935121070444058324452976794708236576450392561564770411575731888227908802892715554114215371806096740768397364281991465173837123928420051549475390913461157753725165725625756593920011092748339314151297997614322587570242338076779187550614535583414422975006413691804984365122085039287578216730477191817191647422284350175178056994747466840714983794097775246687815788368092411224345194799015163115612479899951614555935479216289008108090778324396276752103509323481495960694082193392148124384642159952952727957230909639239507402910796266214705116665703637462916208764185824674420316009397032094816122259826676999182095140981777043554934901024997407240795361822368872035424730142828776803851990389355132783315041524934092717153742464371777001403061295924911978203692890820235153103835075616338645568384280112542657885960223660156779662411967640752477244181825549874595774155791138817587200297367651216509410658719508917359952022690442935216467979407973447751650710259319826853318119138192557009493298052166587303089588388304974459479438178615499221146728015847667617684444762201380268720231304759685581802962556323174554256287306526640500665533153709316842970640339985627855294515317988853218681066384232750803240703224147580604126579378432935546949288284238805108098182508026780255374748277922188369584351850310742095443388732435749815471054564619996831348091973592015475338960310757184682317743119333238917498287231331553532889486642498461622563528558994592906597092631399461079163981320733999259488892432112197013039466171733404764436986126105288829292724108171167365465057089925374818887119913670520708063697780137820708298632521035462811292908304436825158954404441425178620729650776472208082004822261212608372431490982049273535784258638162203351034035196962714582952324674253380718654301680723408359533769315408660621725207985907881861686036698626884344941693966559924378399614021131597041726302512677769353046753997151155346439978598792596784738243074638146834480348643138296501236625374442032032842119855382315681673635893368256900771717005462531145612580506883540577908617999649889313724072730934264591008847426807121979651592063960933309304001769663591075994307182570125654061383022600475959005276425991345786120387608314979140259088111414919077004238702164326505173559755140802430355924681268784895435255481205380455110578814819336974124561659701816524521740597880602978603421996750711315150425391400530272048493709639925363157261964739474532702617666122220695518237805183649944295410493715936810789745974087203750196753834130035379500329830372206199380342886540104101245085933093465961238002598651127547967470682475954386347786846312891733265927645819074111814329132087588944724682172008268784901643234586950162583822128435428756660473055727962220114566772648228363709768983317016743604135578650771504706634766338847165868683206350812572180970487330157704160288155714607898659255315138964650172132426843971500717138946276658450904933442730283469191850182103885622223655388452110020506360171765563019684081457442226424585615207345620426177832133467393273344373932211650253701956213888361360101630518192694037787236748893845906582660107316543089855254636259394707386436476967291916599193340125878217799149720950911960076188415021220247457937343189146172095052664732213582240250454323695749830214533787274989647099395792133082433378033164739144950210449489783835776533571128672451029426398642484879073165175237096261783467658535657902746757334780888839168547087627927309124453033624249308677343196558764521133194079599047931521547236592343061089652463693133766834266959512538881453697624787037607809474847504119676756450858540200360161872739913379475731557169502805084325206217148511584997363901738856245235922596971899637490938481568302384145656783509715653989303956041469681596071871099339537744504058353411028649450912535274494312333106556639010707037687806293647160994178964945123161378347142171314829686616067232197110163335388103901714806626022514423840681736131246415159033697593254869126859345246701166806915823603465504943420793307922949618922049553796197065392752359876528593303560608184347009076322636792869039118038985838217104280579226423543280977318031931807555377588680193439938045667218530905966483633860635772012630874993268864078771592591535979788164320214508334628999370350144112175087511705049988626579232087157410248816444858538060264459158907547977461155809561227421716037047906069316720637121483884325390573761813650270551486942918831838549833561150200724900076595980357428378694165220368989535279678620717440887286684095714527627557510867867080116173176852160508241183039899300024195552391001325304241026598330560497247580929145245956397180882893544054713282212543824201203840829781786257761187278184477510056688342074425263811701584483620583201671474248684537857614650392213721719060883930676777700113180036931541019765469548775416342558914148481740099068659275725811968807514149405469951157346973673314079405789918723947700789954382550931035326906486229908692667214189795360850112518346310331501420410694073007703810523789000400828342352033202456896754438253605964573152946210177449251893042049747077182381561777734667512498763929498662792360543649249647403200011208403835342728993249061589379008624192431533406298781815625971772759583441524697238219853491865777402337428692008343265074144864537422667437223799451546691351441910661919279718711918571597913061345195200039861575536888694448125108209903897841154632121262563980444656335385236108082490038829639436364477893643386793831876606134598449223135564901260842997529305141163661241154149060099992826903843152952348442701434151005048896139411872032018533495378317659278729219171445525643621164847875577794210551079127227317017372806531233365061624849534826190480711776632911186667013939168368335840209463246628567563801293810791654652618070406576859741359872772668234922989669456579365337038296943088256554900401045767479841873148186997293807265443379794480776988223899236661459550520077481951763334356734183852694619880749170573377213983034391263722628144656289912539036264488088969506606234389960992749177929726515984760656956056252795470436275611850637820635169670618396160550224201396654070621180558820563807313465217636411375369701925479762726681022626090969023419620613331623881287697391925921288237352216845753544185492107356976348497471774786373150424057984341717430264807919023536379874212585397762834569644464861458752192832259819241048664902315856782441915499181869181879360445007271069346119473101834014599377971432692728318702200972983397879456688961899788055990732892736132157282669651491320838070879098271427223474736055278354750895704095397889096880265673064807255283931411722113212940198913989702981346819879429723124826774092797485889838626018281176943461318995976347367823818893338932924872823947238128532503788391781319632091607756814655591175287550148290828005833923896568585713356491604263633399900446273272630073047586052848771612874230970100141197705685438595579704793925497940660290017409555218192692912688575231070592832530204666587606173823711374267469428625052032112680854933707063847489646720432208281059089311128319750942662297680779621481198796329618820184137617231619789388970031793361090240178063920942507740665695406709873517376429198524999724221116726679255100429058147842669602771175239075677676843242101148353322222066867635680363173740174131028751886718085382728832107569625850465948195122172453421144661650674131478191909538442050159952035821672312081076281558434470240156972036155544431880708057151652494486956566440983178561865569815940028042025490618563753736309739420525591929935235496725193708780038245023131664744681095255604867243165595468172501170368833105591457697458752703731541308716709031746727393658610290963542680199104024928159644958034748121478699089603045744812345854935927292479460043398420784120479616377587357585328442076222222276497945926215308145879401369633217212668635138253114869984012158790048052299690639131581293336326580927534707705366558422435290420693606054881800946497052832791482950169483716098857151425130993561361751312167177358467563895297021849442865876482299091060825976977627680976763818632599724204941369750836422251712796452510201522843516191823503134735675962538655038108163993620202380944938178792449974306613868561547754302606567089257654054601274752916417671520406276104082642773413221652262556043904466644649518553139166408214240195506116188043045670128623314712459675057459421358825880966952089511189217795465714603218408474199923203009175118202888476792553600739810035576865179348711089830332640330162304584499667196821633911614340451991308440146582683956713845520395354584069718792628203177396243681072354413201331172334480377259246210433095823914104288426430880163586134517725204874978477250517633627835594737012017405816848701502466538800077038691242115115095093271373807098932521812735774608845252512198587218957180372829688916214527485226561727930393382402733054595210904045408439191362737452665506744813213530007034579396160066580639581492365391885192424035682864977933039859874133030639978134222157616175290808484058339919688036270827870075773141596098160356772247056568795758466325119331191065858316680975504505918795951478763971934380735150918658507392505475885513460523078384439699509127410094102117746618681471482003675767237562791554110119399994880803112069442413304066507503773606052771662099774974952837938740432346025109999772597749675832191266922854296035424845018362589093031839100703419016416176346236409878697518672284025386702669007673312042611691774277502811924907318816635085927640654859082738599337183171145194354143029359411159425152217063027986396100036379132959505620827600446073077140744223669366642050300060249303491075749456113335728968323382226999048001749452367802779797711187461740782386626856594199197919688858100308885039578360480308392456630482733410114605566368030122560714096242148698659099685546733101142228678412672606840311012993673350788119366791658839349355627244919267649932490962927164008653504424705989883591242290188551779340681846809953353319130331106641082099955131267064822318681500241670693876255471946461889160409213969100332798813586928990457993533347351911833381055022494958797218817701419838029560788612984050823827842752350199198396164895688744587745260566871955830868245831592009348200112817535692078318552800813203409862453777517745259301476154771228697777085104685796416136872757178204169729508581881608396345263918902747182158503575038890824433362872753503804634803443475165535358575875727528965785947802859515923122442891297029486665493500933721924276762522081911684887898607774112701791990353511556097091798774984172630360781443973950809933803340030876970908539246940501854932772321845689626808922794415968118918149775043581581739720235418048469513326266039805141983969266086180208206019979881252827348214715751436939725403105010726565977398581479251737396427835529127919966877312657575245272150647536291777033993375001400754268900160720330669491185108742819723345279888228393154582054881047384192948801896929691808661796930637167424575805701095484139611500705344196266969297535723678254644877536915620020954393425263087981193977733665064019636595702004169936470471582707914495623246532977376380959948172587998873297462041301215954706294561722030308631029224623906633065363917978432666002947423112466713680234698803306087902058496357907984799833835865112427050456033797117174238144699654569155358501016792759919621392583193887101594899016276724729709091828084509695042305806833845165867762830584668744339685379560959410691085894716912828440343413028203451008051775050574858215100259940424193210174870353177228586999532248682969745429632652522627550131035312026697481420194020824672733593548488659041150454561733502925775931668519050525608211420451523359421934121664559192180085880434695456703963838755048045444364835225004634661040250906061000331336465890979151258789074480014717030133698607384589315573264474046615178616978180089391925206615870963629813527515564651564877824725183474635609672042026092686084767691436706575218521739459098311166538105038597574623344444691247279999767855808651235353481058718729239285631265124577979533544569180752953179997022717555222373921123616708989967954504559296193221269701350005131869285633435903336538078430173276368395743938821311481396690563569466536997803115084267779647319711427930400168729739969857401622089885584607599740261665269763341133062026208654283344228544933708522273492958534704466812874519777019918643774412580795666003119236654396923658766663012147738670294613930688259979967243016817260109930246336227381632572945531261376375697587616382401558567710174636566920065897116793848608732441252445992087538198581117605292631655369037687957958043672240417699174101327292988872590025041657734088796376907564541981608330876813959398792887810760668118493951719344595871340598135362590146238818366849623404355962798384055546445759944263781790945815972636203292392773000898613759926886931245139404157195847969317400595840267044258325308765426797496721559211355383292876439986357694039340854331792148409097858771257250478589020492716672398975734669316723069190031335692591289919365039323574888552412382938317257271769407564918854025103044760526272676526880274214141190383792342930811421509639082193383946635123997250257100513653009790841949509590074870847101031304237377486021054654460601965028708203411971543693525176368872958882390834070943725855665098172089060193142045035797009146642047042459887326179279686682994021530801958779489474447918876982297138459501285165513594871514084837092768419060331117601614472869021905338984782651734750571494885430899008879598138177744408281717240710116364004107506090816607123799826785593847026253772910052324003200948474775278121760953356340420036836953869369428186714366342781236075461307547343778451027160633531553072478112041952236321975769908796295218899456139667178314701399984529005332248702560648199083011026571845418933277456030027288151444812734275256467985399203867087696037134404428481705344517437584213000573440463355595256781935143258822597496204714313556760214230203394073664760445910352083948578001539329438680175491100779732223283520756784247603680275390707864940457069809924389716534478442661636459897040150255489326759219288407728847265555441620559274761397831476103511759779799019253182556525817929048821149929557798098307460213602876124200321611033147162379534005555312419055886363882146930131132395736782046586940767143203669631167420020562335519363066671463968297469581321177082706628586873514784042299375358522325545239150161250712446707522176806841147790430045539264861058329102567459275727273597754410601027566373223015615122065309436794603736011868118978274229358213166410805867210517041058965629226713190559664319985268590581269817098011930200199637770315724487469105850941805845460024797586726263055540974538045414022235499709479420974032648589718438352252686554200406498484659206148091031379966551481578487393646734851661822029432030065137299095247505771804429171166744379815740058388695374282934512178275338674560007102088629374900160114579333991946387497835761744742811670682904076966071378527418361492412225730799830713835000445672498134286747962595081692639846204385983899437550238521390226247429427073324613403570520265487153295349026006491121408095259470989306292129582649762264921327464675780433695290291632812652886260763636513995369636788279243565312784743432066351282324361911674664434111509988753936997029541546479635745711623460520824238664652444812236712432705175233025324495831661497534882224497619091178482694739240454837113952592655093749272561126755899967615586057715764650011644967546686498370203964477935568220911322701670866419356484002866332576288032776090889255757433871290152363238098412040566166710389506663364186319545903866852779978158059859457806728348426189495266260801981481246751720632011897121361943469795908912255693464406337089984952671871178383641091611436219130458193463212052390733812536693208516038757774383740428697468912104210738214125038398662031142312430722119142759268499820402265105011831677184652312178733704607904692864198048173110746840075590235008289547216627816191550533001430461488682807114045864649689226579536706552294068728453898153462403311211552021770126548360112163097063579226717703305811888228014807894053911828207214273771743883216577017530629716099957133737852609226194601973318926563117909805559458453644300909465409052922699959786892309722935665650927297877636485978837010063285169501552349931203458636690285073022272606218966488317384818882688164116888695448287700238291161630465324393726342009706068471955767717621003647342394869286791593889253736628779746021983339358224856917071470674090496057354381611071420900256658817272540425803836435433822622056033834070832954469945010074443921189691214326916301558898950741260124665332207568723599243569702592610028106101665731448542670310481233558831003986510009199768666914055071188072880984548837945292965899980173244969878403498427983430526990221736065992208487677456335089676878865195532505833137347601692351733660209138392496201288857145515327342823739687339091171958848464036079164817453080891346066739121085544715794656748102431748249467874417835425788351058869536698328594102270332183643508039674301891707141627186397852551559221376886902728612824546140491981129989885031433567278956867759316681663269648877174849676212684021721273297950828552298230208527067115442359646450807158483098640123767036960700037379491444732176653470975905159246198829798640626047011542911548312932984167891795451983975143985100479634008427720576961263452754621157028553541124392247597397745912331046053005638914495896247810173555682292836303199452823080491524075452611526652408519200439580947544905240730884606716320289996021529662684557641361220901749491921597013227509335729189412297715334204999402779910818137158980742888071518760926413635794243414449029110405147371272104559474941963337640807805159061907141115049961047390238893704286247375345891041651472929015638864798236860037909247832486451605086607187523695757872033492064701857031212316167316134742797219436443842052874187459043105680552142765340595838474294999745625814100391600347397462179573313819634109900034557028325970072677118309391997593538177108570944016718163337893950715980350282608312708243792800406697845151854795643208735117920294496932114183278100653984011245319203649419344027953277093514537011079403650607168281303368193378058257816744975159284123958038850484638460875510237141818459324713170057944952386515203226285764073192991925847512253536997457907351231385044066278051088166299815636234441452662371979589099600465869091917089634310583708139083815317541088413061676224401001178756638671148443008521853423265790918240138952770541539246181342635668851119883304235440679974433348760094542711725205877005193727489879483296298769749261604227271523331140157308135498347521601951713480349249555951934032723052590827822893207649330436572271007901607777905543948512888134729569221716577393180901967652212624890174713191181407866239115381512975900071023117168256002779440751949628157841317608600598701745400858866387224855959004141693403211476802784456841958689998718808254872831344137719295558346458120622943625493566200338743576907212975400458064171369654702482122661948563614885941123468951679371035659906288711861830841646398440725011874995817910434793233137050910844569998150726401372547716530567849958529754709582789308273260254832190926436819171502828318718925656458138422693631298311966224851997334588988079191978250610270350381861811210703501384632373490501665612546243965897558092718714309079811236939335856669598918894423646284840486082305921388175118058520414470498920670774572756487911344915866541402814873758402547764390565189390209384502875744591857123294627280283617472305412802727906477979829120890595225085397678758497713834377820549092306706018954014787981142342684375393713398597714075061162768395182928055320704191898627516425257635023959362550744702606580810328509919193660566359627790872029324202329169446211374246284453284962127856121128005192993540026343428736199396335978904644892251825563118887242385581706112167559074477749178584250391136579684539921404756792823417412924485851145885626290018090594426846054367669801118367455434402108105016104255202041142554163415712675079799655809507296016870844544283360306726456229427660473754492280954869181018700574868407333892016811616104848563737557618801883761733311403296497267275188532284407704046307519290999648518857265653150145008572025341082311891067257752182566981166964245461062808954330715551590553210029110111591113664063622019384370060576201874212357457383545915966673065053985013055982746525612532754527854233961764688851979577364794007843285696975838249681383124200022067049788695840411942598859823160542759490728783551897539917463582036117232472683955638487410037904970518458063813698105025670733358119329340671673977878794222166116773961355149038047596300064591197679350189164447477637354914704945430903531298412050089832790542508167522115130163707784174733182225145597345505285212314198176382971951089092761992770289455824372941998089265568697528549383703131408228399495438727338815951460666553587971167981009631082734228510933145720467689080373874330965727636397008950285869319661756033326766931933386746379429466806194556351296008176030761205790205154413663124261490470599141034586848799547918680365201804103603952538815764206320458718655303613769772388623997445348037228878229609232728258124199139347963424538524818909775092088371248003053291444145792199889464855598521351204788445802068506551893558152189808888463285797455641835893790056901475431350934199584651660203613898490983593585330343181053661807632366743283113695280786489109646559403833644087386918851863457411251579359798898388848172553860768129369312408505522003984963034787949399780168265768194545864484021648592069264743475324828671929407796552572129879434158299903021234692478815097142346647187769433170940853508535944205217582391216964220204209479874347754027821503874741282466527140297741962605847787196107660938879722481326406393877554171657404586459629578305235146782766298488024507412310159886740902832671218729797766630998521006714545442189496796284893717719152297863989712522826399968023765204086042446705704706629875582813036898274920698499179830327863191173589740289103768862634740700969516295395305844916807677284944056607746264754040321703028472546186378499083721177781274989463909604737194235760962607288822022007772903294034603237012300874275552914442642954460480767025997596139794088823460785146509185936723389395799913619819455662929737404559402158331299699461093981823094545287231039567002180445559546384041242912233923040770219730969279516594015424099710885290999453490176450949357213953968556958488151646961017786670672252309985662464362852288050998476845719268807473040686029364137499643767525134631188374681733959860595017726866465518996008437798700382562133629664391565552082088413138556962962148512671420287543140927995753112984695479027028722460355637757344418985022355309025553527534814066848941006841831492325777899144462849873839090346849638320721690001874681658826502556062451797245924571339694836397701000019507206759450475001496186836509878528815498781739931363636449322139699329382444479804084782071515280867843701953838725175001143733537646135772047160632406646042497557876031000632290379370459269325539819631323390205028566701094592213740476947755521674382119448584036062780743131154238736687158822436276683198462270594761234711675184321230630976975819222507089833651838975397436648953546574055268325672368231962234508892907382602750621285346697395601357447646447636176777838019152953692210641597630933431778193724022413227561781862328284914850704388537948510964784702682352696682601652461178777589915924897291132972877661917833530142755503112826715020361229324790736607741173418041809512468133985799377706853389533398067643397747601340994472201011554919289985734795869867344194607962028570293516634944374786504471814703363904387821941150666697402107931525760817750516577563259414044035557465031139153361708100899260145098787847407349220296342049328450581397837385376428145584290175684298061399457490599081084356247632616300045292852637899028489230981635872543038906463858496545457955437920879054994088396504088673345938965788471433724952623431060261377440873359319300081349303950132472549994738037661143559586071356242885512820820625429624479230225450520733891439711918430198024146719722502723266005646563482985485778609434790327761513570416132500110046600700052385936016967140113270463395847309718246172311585602791362585781375997888307430228979120048707139082417448754612149580486226342613323177990887491210285957238070024513987858824482324365639739561764606574443522343895273834945159101828636249881951374205782933913066192603401327027171867397575419792215183675868506875450019351500804228979202738176504654678423879487278797818552662035550088231770555930547869902363755369246027854263173230568430940557006211272111610493725802159170982375713023221240622736382251850764207972809689104657572415799370022726343220375018820732460911439461751132791073632227875369433291874993641504512034820853226948857082215486634029007096002735820629795145430456930414072400759500000822362218191020715157470096282674500077221241175200065840178478476580306095952708020090792279942872511099407332729502568240574283441279143722508498054040528544698975996369751814245515655421089478094757083727607962651791676256394184736007940190458117565071211470137677643861274456434677251778271222520104680878374483825140628855083436815814629106939881291631902510189859956832530298224475418931292181904030748963087487582501243852742036360451340741168328550554355756524943674919720804899875422514952228162614104598072833872528176498081586413135874101892497774222781273050113949012708440942638827375822658164400527873066860581539212011414724154011301848423895843100505047976898724846143569459725678649170707027066846614513048775590363502373365630276940565698496858963679014337410128782931073791786974657714632902007049467625689104508244968600067424189680440155499710533434155981049233326422675822969505791139320936805900376023167848129339284127915146761757663035774487248709395672180449373297053684902203099544667932949063361484986036589685934039026017765868722353943144341215840038072644631780584722105180687309937654222669023242984743322491029767268288263897848473444732397605765899891794766172275681060013663321024177162375500558228031741513602276462429381321401699029043304384584864923127279079471430372582761816131721569445409296006028816151420655744096585510379591409437704487003209702184687711559198507227677687449776434426077863858470799071498609002869653433489254023444683099622465832819101471645410294485407729439267272573599928697358352491844847710226474005484432699146968389672483342317741044975077278964132487092105760057688108233729236589045218340870628357212696551821365597320961547103664714975918260626734810191860768845753846948847117015717942487207353755803247883056054021981451613425861521009093684666391394142415220196508246090740183062023110071534166653574319796119694256571381444903575965383886984081515160852654528690011192675160770524378754766969609043689477528061448602236257942896312832278147104575867521586688475088701933913519852984622030432636764637423202634726512676895030433971875487508843382248567146564151280090616469420187035518607461813323360208798950544523572839272041026094901251068030672707773063075968825511587979178765162628829784587620586390420902412905478895854454633025929435673471014622891679158348248460554172253564227957924960874464680065251389289963814103827012210950985184896172992651576943218048948802935930341205865144155373756680415471257487544074893037625975292508721098774978699445203903346132644828094095686324769620629625623170891775767363903560553603841627299893878627267444163822138088558698663526292718407707304481055046657251108475130290934837272957489452720467430830783978078073716667723026119637237807555215948946633134918133853838537233565237644940078903354464775086198318189554734423336275514826474331618277362264559810271904308565039443421422098504907611370462877365995475010963458121761340410918407717248690066976326378494960922920440393987869715634346075902569438036969560336032559371343314426580311640364341992367160818756362109137583373335285396929637293633565219518943287555825583019133100256067348308331839860234434145472915138858569295572691994286845206496732524586760956932616670420035667191944824420512146931085167295110420484660758858508279963384088394147133778800118874613577161562851018182086381318577131925742359295323070592960680943022796478638211008780844404289146239284225238046989636732422618043382440055688618829499423266315128564297048430331607869375791794881940938570775399968746826678141719200085067965119919397426638105702206401713809950831622539603178531688711473310191690273576160881932317891422424749026301659399273892366448414350094332793661949286016215085573991499645703888180680587467704796451546045981645469350027189206817485421980645337850429807625954066289058767684781811441665522491692496775521694493298554154980433763701550722386743629897835482210260052511034311694932733644751097704144250774948617051120622948827537012650890908555630989025971689276369356299000781734784272384537330541494509121535443407114561239526759972039920035265218700362328308945589499181489725023856251172621004155581606374545291893536257533683970319682347278306567777914117056741976611502821045261180246179469141118142542355414064545648849900143780894377512043394129499126425606117005617813705394520412439984664225318999582394820953007938410860174910587622599570294877151796748396313081261986812185155237852557638882569753666847575455577860175760802164902601114236073826140495222930296242352131350734814120412435893184770667926645892766674686669432574756906180629013912042814453908070816867023989565602379539111773273406369290022033809197534877621442745343183274173446126699534684552572276644999535808854215458646047894077603906494773511653523375773992936619636970925813549323080301555306630906873765891670949994994721415451974385837137875393906287951678153984109953444389488437418507036080551915430940341750721725185137768464608778893301001998132880221747419957742541117471821404722633149735106724901812807169895858158359430216180568170732428170763477117320747586075363336846719600112845199617281554851810532328728665981732911867764153525304749014163394599769840235939573757200006734655246502463643403514675445687308370932661809089471783725804740734287249985218344369791157349985729977767800820224190580869144425606701656256651617553310997608388835100962687839894141587351974512160698366115926748667100178569794412227514957179189743321483706738039997601891184283437247803789452604121190174799862649280627842311994011158624688839257465386581040793664174151789155850143719631729898729491032700971298300569849171377219238815334387325715247707191281986944027816552118873773601415217956506481971954856005392440279332481584191055367784137749662672503023057073991666710043607737552510480577029178156970516306487640724292287550289040850370799978008076899865539989103203063017382485978423660202993492040697652714819282223058570147139941030028070994943255576378727462790317650698262326008561494180067974681760792226881282832978846409176134584771200542899259248308780823609692033816689395023287154185269017125878978340645108530287637450709907746842200269110046920299102921959482688848565857478878342017131212819667742218471920578846990221563594858318099227027655368142531392876628217675653408580173099481387373971432331247646905429223332316671026001598778283956210813776588022053645791108886839263435966427838218208836243888765132732946568451641847150764715895876751711492308622229931976327963990309660346618197367807335667777032212318963566909510923380152137926016572882559276018805118645171557202891042297909852284990149476712784128682604141668460589001597334547197005504045028429152758790729858719968001461699633135049726665357678288790327997124141447539652444543154489185212322141431149089559782619536313695836061424436756091906253824010877396724940760721094079032194305868961697453629848380246327386820459653641454021691663715134095128015212193111010094826806227421797820193269715074796579427550255477629673738660348729415281173222125340559522043630727478787204710949762118981151997134085553569010691213979373337494272836850922798408031553903225259512719832645167873885329160002862804942523259038873417821046299327840912683393832671568907396320760860832715021959042082617817421396141873109604363019066835983676749955118141683192613645049432386735657370411754444131723400675154703767697308470470081477699048944833637796667268505653550989469073546418827031839800739806276786640655863945031583316219017906817079987705902648817747897663529791465598479801510572399541286895793998803515829547821603057504171089623099531767447928559146145514841199975378686411539675728884925404216693493607690940130338198803231794342499470795031786285043403886166911545366815827376124457967583192052559974525454864625780300623401921163945120137778415220246438556550972982215347416004305503973182869827525719126610255635473394152666846670315384530466035492330491725675244751666233651479310816476866368437072967602522637973925320225003963486023000670681562629347878068884868513146141024279331759169292768527085398600996523190670921715395576330051027012440572849606111364719743447483661484272343834572095015025668115953196181973316021317086616464475471938492551614671015913651234365731879880201951130764731532803036783062108011984764807691521007954970401075674057508722246922098305509578271792910076821064469477651677284150549542752001951174782157509437432183220389639834908891757863889529117162857785912883014585342826635447907162400025616884633919340916615575081637036939215779066251249192339148494792046593347575581756255717305103874006863693010912223511307061319693059619625847419723288462011400789458906899718756063481987079165570104492611895579210060191688494916676633579076918995860930669545666224360521344342354184969948972127704118032617490765941836504563662270754156218935530853732874225774018844811399963805610935683216435319108274933893966247029893166151033680255416639073195553768482090230271210058737956267780724985838358011971100559445668172503623771820349928347818650901044517124577076589445822752261122124878597900927144483291070757971647923196928642754405662881468792765801460052724556199357282862736329157468695848610172544697989452518953864765024984757438728097404191831322947211360831943792932176141644756935892948009659436498286206371903325227557869124714580049388040458968822726278103139980172170616881291795848452580914392476884051182766373878098814545855821642019103909022037383787737809443489523184541182163262665059296486971756167684869413393655439619264508617627046582980818539653808907704273295062065905469293062082415406793851715806156630235431791925216438866187804931046431107034638621267069708979254659659494003960543521186696698425040006461594271962594531353461856298518224478857720869804596579566187293486588183573480449938234261936485301978037734874243178781006187425741254819592684910541710999156302875701549295859981710269695694758645068672455148853901494611505619053058650441295520089417367678181461878792047988977752221780233379417644459816195602444578193901561318808392090758946455655865682665376196044704021903325059804270440913549589100661728771561859129941127973959589353256327026674056423779854379217317553756282622813453845553758431989473115109248745610768058437027410464715024062849801539718985951209061851932007429911928319579937957111521560066219203818002796489511926110183601673298895039567566055077917910253667638505941170436531577064243044690173195959126024795742378924358004869947388644779283355770280547657014374511797628613461859857739192599403773612326816544421995718049242423823509860831120810529680820648414344749280804539602591468207644637750064064140770498194434211405459415357717578725977280750379085232876270642800377063216657084814308402953063855423452822294611619803053872845514808714701011827010386033111507619037680707459030366687405551643698784749461641340734525075333769128099330538884856206590607382092046521261275832651899402008471633630126709811104018252898019508921454529053793375922793727053660954063205745738414935071097663833811844361958988512826406723317487662183878377020735729277366548569091366635992008591952369936345686997364365115263983863082668270748178186338236972925034401267431031233433313346295768851915594091354591728089943286107877422104199624545696133336110929862496569356951306594977139134790759790441618814954109631211304728393863836035624393072444733394977535512276708050412285289065166703835868098209670493808032897554822386843296633537084426933620835354803814755856797139920322208818123409395735213458791139830903646614369299163279377632450382695574060760202277448389348223546400907767113063286957307880489132084544485853401650149375882261338038682432166049955351514584063790664597106881356585138600476808665124946561463132912946746333024238673604181286403968194988100817261897890693878525907750257877776846918463165022459222954785047720657571941744115022554992615398389698801061735587579689124466155739147997916529405784596493907263746448028333206993226924973027746909883423691634273750815107213390948220954363095717029258413735560627151427187278017558030045446680793809118221486285203052267274877422105781105416017983167265216722083395398097078964721393739847731938249630547639822873607011025553301551844803818193408506011406287519662137089721329807440338543377644015225927557796597807647682509860176871821673477016574578925080824314827207928182985421817054671776259689914818377652209679481347523191230136352280752614175986583344606182879390331053883669747858084036218703415380946893699297432951476471769991793480594386369315443282986921483372045483823642409463463707360256777531600689165738830846005097878768883746798376772433984136113361503666417068363806054318538079421048422835083945987823854046208148227112574303988953500556159947631474087743900743082085161768942811164506226574146625355808635592691958763386439333413186352837819434779469463125325349067849966066862141058152954314367993318902903856793060055690867395856760051345232218268179042694386440669859834637537779983386982122010491312667540936639464889208153905517056902351078347025377853904147246247339670256657835254671657120379266983791614552637901788288598782856451084733752771558993592080060447121208309405746251037807577520760065573992485628077000055612718264939548994617371664665245834111463204654084611167467374766736058678218788878755383817705927946272005529979258440827408830788617747945525701043943729039502310225521281225013605342848926963738939420757821308707085555478386596449254698150162856072815123975633443293070232722277083441902995716714045151307354986960977092519460323646434206884040462400344584350095932723584442722703324588985978280489456935233864973050683779508917353480729994800575268176055849270719279647246642374964965668195174688336085983294657539270964992565645108133709594835817964844872691821207471775412014542938887705857731253399342505194959591928802825125810551602082657089428680872078441315226254396769875273554888470917100032588629574279020832292760514723512497119508172450522647486033071419918108995370711540584651203589557563906568942572344665952196658899487110522186252135713340084927017523835015953102717897665750329212425244431016838676645250576703545754894210022667612025304348582613994872293027049623259003817462629757406997591956590014784806741807570763141857704716828869252249510465104673396972127323459669596152452492810285225003275161713428373416841857924873811698890229448458440913817075030239725294396808757822277819987174994174537685232178210287772361117621635106111890894305759649850585386703077155929974135521493406228095508656133988346060762907191358843187521898834459022209654429615136721243000674270407006492737348684696668669548963662155272736143955642942510647875791153656440292517276877923764747510211100821148710398114749496538658415759993702418565180100053399260799753565574736679794435321985918717265604613643212507171296166241690435146733246895320002027210426960129394098617530789503984787276887694142872061017949404348384966587047066562985976772399388779582521782358871924811493079013827280190673389593215499888504892652277461497563859132914223097275670804092710153088140334315492270189270764349934119686490337233763788345400774105270226772653295062597841467003685351115599044437524515683289122863156293274289649869776060577196685585475228105189290581138734244601912830284396334127965953105274769539814415498900767255195401706171993793499648375216117007433544105104127965034843798493854519401299032238997664610436858478340740291845968314320995769151951402690573603130418402543396945712092387132358402098286391767466597446844431622666147044585403173808595948055186132108929572575302401736983565322214190826371660714785474769599200995834030247206176227256007172552696494938648450280933891385038358536432948434116155605152412095745592731395024929108605956317539180625749388674208737792742902449214363688575097896935416050979748235825960838683124245915896028423283926306513479022752939193406470650874862821123944361026631099255605916985674735601791848088404900289959290737901002652396052539740083237498674213834543339002395616441790866329105801495830636795617550489889146725869384456887213284132967319266355601175056761654015455864735787042936325112393337068215732764662224483046719084727505814256241356095572629965527204123718999295685851051110629103703279206381913431302197729228300044728618734388140922621444961480824837823756361255715405837847086212833345590236924945726873179943820671837980948267242462905703414449357003401404925736254918086747601899256001119742713574948871743547478366434499775732331044345855628673715930090844723774421502394245354421018599950125672190386322649534478913281471355818934517458471906626694431206954155050850889455783863904804300774709096785168656080626526370757007760077023363953054732090853491869552698216758680003059611132030773559833233803252994243961909217005523439842408594863884431075830408350403188157383789068762940276766249242429004490561315619188175644708028734086951688790204525107423275593611749708472535531678337257079586105461166276126703437721741366998511911644690505875222653250428854227118877184997458310126422029786720233401347964724074341548104714704131702665029676681526726187206159997962562322822679148909804018562842818036077362615328223393202854732594589639863453126068610927240392267347965751494649158633928579991818161785088910129950851082676684777520662739294735228407600426745337345534498114173389960825236026349722246044134519718175565379915107017379182344848889729690654680261276499193576459784881897591085720879450503937208307545788099447449122273586808120321509383358097687267389488478427681016779950335382853216310239095491289610422280205121846646472093197822956853049208960290325154832679311034428890360803212261149045758736490202034082008253764849084876317079665326303874005872013395484633502696374152023896915362394468830627301254305335700181295527865886875411651282275989115772816766465264030378123525318911660201031014023808517352399730575631911141336423981668777384564309677347918487449686485556504081002739629331330196527323589320958213902290363822409535241485876772465521377591512833485183790213822771903339237837880762476806059763865326155845906321223685991979663261829522153000533025130285503037854890452939116047823756366159724819187108597549634658516758699454195426387734005554009068159994229039173509455873991269553406836922503936712970410287533004140631447347962908983670172463458438417833128919488076097929508912155908936965764013792604514891284290632893362440708717371894001662472061257636241097755797481279878719026859715888419448111880273063117668695701275067420423632760369785200851108127580157363691777309857231286226831279719193643100629878965334811973427817296739741441825301247200697635466935041592024778285440881170967503694759722601949351423862415519163786248098827335634962681796730741346361364728252388179777350907752613611972696702627370232866809461947160705160251288244357459442741196138707651985249670643468228840884739341931784425936689384980913726806504819203507705398663449477120764386516371917997611299455798502313774463024233790027451731893075911704477410442536918678688788003240346783779962136569987314513878526003083269687166383452790840615824710193588129589852119447934656834525647338041474942462900037390640102811233455871638689150286470056982234152780771002834974395760386093264191539475395722864651748650855179454380560411123832500494734756276651813064920698412132386289500945633569507615814053239762107326162968193327734446522236140728546848051906397933308428208832095031439386680016261202345025788392600065812899855944189084919733464923997071869545069005808502660139567534611851213365899704418323258626666092850352015441026280217377018544650528362360051900463065350188579992163014398897033704152080467258782057614526177294878330884357937983696969675518599225165852732537530214439477273156260501776645613661416114210690548040755049838809968526850005796610980960824505677834349085029227897202724088580327649055041499911602242738966975550548774459757470001353134768545418304064713537360005673094380180242659463585878269867951008161321553913904728932017857920269595736625268313666161214655812374478011099530164901924120587624340951264474328876167535429483008148897126945563228460907797831687809165603462425502125250769534873985377669638027206053172670677213466122648787437798918361069544567643604657280365170002319911629509752885150625767106202686776987148828550094653631216865844042974660999357178931832670730335766064713578161724779327497608276300402198469540096534369412558186951664874573027150832319918074499796352592462445854333868850720703733645359302299866869759385103656622604344346607972597546070138193356183692113910196421617784389552932067824741121276851011343855894433564741852187868861544039692790947246846069176062271757694263323856400850084065904392459581790264190499449526336153062641442463627103814765132596799807602759475480656132048480619226621951498514905258035426398714739042221217804117706772950383363556189525386151398743237870040615845269278838490664558701966497330084186296273986565964279265295384851352264436945120038566886597728459838423459360765670346368250969319671266363931160227333388043596414260262009058729247032365044687780157187196789835257540695721305100786645589394035582433781800086516441157102510246649479097974272721717869732874090719928417273644527728215655441260636370139350569254077025577955294342759708252932683709342682545134505932355005283139734519018964395773294265295919110815964845113171516447198735649124450603772965758877159368527170813933553868296448909765297850663095125882037506217548890837146119355849840561409326566636939198190361342038032532108561876114668689913035597058903464578126646162536911031234418395749882597659179239220465122670628173325854480487808825598084129409268859759714536437096178426191162076004821005731161901461502239066602634485249685294812170997477444821894144568245301816257788099830886208863861893358841381670267474924202903137599922827109174402307872416685212326294579379107451068733939206754461683882001014312261215174616553515020926127087591348365100172033565318676475159614021782449910103310993849990899686073315560412146746449841773935638751357461129870063328190847423484349387939045917711688305281170216752093564386255436224868441578856346057685246348414420786168558514742926448779078823889063804662207361680647651351591436108626248312868782512448058855117270046696753849656658361251860396575594468337332318203250515610244567149664806290154046875638247611274925056056950631570871788493814447765760743814934506817944964565318483445916981842000965663697432687089288754566725511810173660071831689269204013286954381337705824935835428316529886415973520227467377575330384765339000901478111882295901930668240636205211046827404810794883911296446800797860802167741235085776248837418910235166546342988774727218009480212145672018140677619298603208426592672913832270589103928425590912267763222018918267487932580112710568927299134141815903176897826510581897559553316731801256434287146881267338185455016243317663773930085998285834275996206869900803100769357337006818023780926126101415658946793657529045682921554832620890298693269434281840117792456648165361086512107924926137651737413137596530964538617323386738536651460837360599421711451829768225765596294102670103060262234784838740104117919305950020073615856748584681096321685412194785368030259531377123476262127169385854655904851499574608735055490192008708660123800152857943755495110645945219947052578797616393451432308236613152525800578200620527149985922499672125641084124121805936644877239954186669797356881168245941370913892581461023452595292901067634793784487018352325735039278664701535258997389304017058073504796539295380122878644656499654416806568305029515568851064639506764464240623577518872415008631831538948257880253369602088309704237020816714356818658752679963688380903797993553002609997024164816223664344977053534761560789966505822452412436918146138054461086419786476086956891451738312359253060976820516751772081474058629748769953915069931614076734183209891224077037980120325704894066800209939090959182481192433556217877617889569847236209306662118321518840278858012336524471448283036370107601412964485638549882824210138734497350392343021075221912610864012095921813818719804225367248463987631133501431011178735992456325960999574606376845742858601740039406789212754000476226050104002530145346276822906696561473700372188375423031425745531771079871977258446868178010669463393333635206385976000433000272889896561043797508792977121341739979200844528295803405309988206033436159625650603268212351922405888420461295790210524143788038124463334917930590120675149309776753651151701924742234705171572320724495772338827856693045895109179331274672942814023740880574992797344532129337283938854542532700853861939597340955082662754723717319724921962126988765560486574210996118403641357551056929574219680743004160370286322071761727612827286179496592179069219329796873601005751294244859948922844695067722159885273128629945809535359329318440672649013565227904747859572710626340248019646065484815624418126019224539950814880018006109299166011624407188119494498554735885255936539322231943120392110287960788402837475751649163307749799384904471917402362896363892358356823747412458367123732125912202002921819111460952944485832464048351264799986609136560461068678737348535664467025836020840518897459854663560591234393805324174371789438937591672491495758496424855378697000545717943684559319985568540040696573756858390422642420619662987463650773684328053469376124192714489226861592487411353951117085208181491824847824665325018434044582763382722007513518537213221722146346395698830874627168828142038805327434106336032932354307364280514560539432576297518231541771448548888113240157195143991556759920478276086848777152778114785530147417099903840116563262676712392458985983342993489734259950547208782317251176914566247713821036728639192075396036850927134368758297610391543182839993139214152768559597946445568103450060656107842155323830918235014560866087614882511130170727338465321788699801135021817927424812008655926159091286529838165959911046216789184203850649350272361218179208615737294750836667382299927241883764371683029376662015613255345631281640615928660864113989274524107660271848684481125948478320846133926674967135015725521761313945936374515804704210761297826806924565015148319483199730743977896225309399943971164055918982535499268434501262012115634879950890943473810021285666902680749171879196578062205523829194516008774811763684230060582768478819714950831090354314465620360827414706797701957632433898933509002425513100489989047267607692577764193231614574005021673671091064243099194296994974913806028313473948152677901615734130639017603428415969705553557971613522051778054908704424415114834120424934633982300930577015965826093289038627350334095748391692286750024071321041120949419594550859529360259439341180427842560344059731463331196023907538066832786044515511321253853738378168202936441344871580173732386788949782038838475525708783500381684413162700505758285888633002538944494881446343560324855429717411762727444599036699670854643471268851187113263589158609639182737948573042624263112993441305722752667762256214000426763270301967492771689131924066879070869243034637665479845858694768433754441658805841230355778111218373182482302693831423275237247656348627583669425715716542376171456794401567874099599947579500592180307127397929074089040583979438689732757975366972141979063373957039592147879059131244982561395144690498280629157672598392450183279677990909608563336232631736552387606497589184567820430451844193535549867704475336084089263635323022901485583641195308812654968584514013000379318251410137949988733096657250566493342741181343990951729049737807103915112284436774001567006533130930945572835337447476673573003226992371512376479900778725814182735917202167428779714794330220123504505880674903687993224272164028107979023097186393160218772360438821126013747595333383112770308302538542075885481823467730948504448555936702771539966679196866654536602882211115702982845564516116268928770195236111286581598066223579591679972818825183306194390322965921867068269052781642573173025418458759346112712650976194218049931516656636176021236581455918466353011230231092022771671902362281610470428128428137838265873306724359840254956465303537312237699149602617128104712913977166644703880920445927684350350325286736866624357838500198022074903862164373232212848434629998555465365673462466851074268885990605844624031687456560528992393208004884495866016957467914241278383881326643766783198977218815317301840340339188089426972894413127769260414395806926657618275102275296125741746402624859862567228970687274320368697161052247020275473764116489048173448703843977125440102540487713368849904579659083205677738540357162409936013079691947259383775398195359028420845532261070949221986889044784134327205197765404659527572983301119219979162886871798767830424189370578976075453181807896358130322672064971070179424052444738162846010801238588121005599983863462402330187832355676240005372681811132620264706241577251677357580926553734807359614594185763011515203645613878733703226169614564851114141551402624575687711915362612983483688304491763578425770804106878461628628395718604343895761970184259174471287124221925998499142066191550200470741242753178635103880485079485173991942433643977256978089739331821539790021155024054713656566620162485019713136611758084686626815578249508441630099053660301752382101655806391650859979686598060887863859109135419668463273116212116862490043129854966554587104873371550310856561508991562081909760082588615947082878261264238366504818638680802281222114639052619314855025981037524694588798630792557393287426613715726523881921656908890774710104137260651158491694523286476700694134287674377728909397710968363970745126211982295933631691775270133669740757394495703932286334347152829624785886114956081649145746261398304318904888455404809791963797334282136491523394211007377711361184212961596890596064060688163415546462146071172899940362939101755320299781965799915633726588905410931848648167216969732296204675069550761931540831680530787686840770329459692633375001710381589413929159489784118928750904103104794935722494681997887397920706878921748907891941756799583117318641395175151622461601230842459002688848211179712506968178448730105150917983030208372778900000599367116250023784856483007985464575320058877989024131908571339659487451254088167933763160275165709636260215826436275100741227440541294769714799510488353126420433693738440401069883511479361316285217955744461038769220607758278363593290273568834313438562705775818296951117004812603734256247949565534355394469430769491621453963993856255027595807716658222216856047158827671872260632600361906083635918615512327706364234613390139462129954399610990510160516545926498342281989986915654903786949021282394839954039709001763289928568483067023834499245191302125930296523548344708367852438179188484897409381720523077113512725887213305628706021633342085462340073904056419087658485002580705778137297285658839634316984255295381323500543071252550785438986389658130549524374266294297162863258965513940042460700303339347214943020751297160119204893725121427251303505973356095360334115400872323558973357328413230497011336229683495538801635661811639123824471968238654681624619992246018114715237818657695084750164731243176712843774839693763495911853143724861040257490306793695315050389646208105837623521840496907627469233985808843294047308301098700677522630175296267891388271981690715962165483159895055813617722518684171133182768074764421223989326334659843837939924684516881971063793108532278827621600450636629777730531073065548185845518902818685029950636631762991656472962485346057087593281327212243959759112064810603930087896690236761927814151845388816793128284663951238812871938999848369136589156750108374248038306885934362398269863308841035372413833027737938816991372923426243328518260121690218845592990662699738248554400649372026538053122292734224755256403649955920162251527232778161386321498921284829923384750357321745253586331634059855220475182042531331800631785696866396867146457488501179291976531912491556482131914424900314616272382083427078196169219003820242365999601199211028962302433111582054136480722149055077602753791143379027300296018561016488305247127484513071043635000917196673565124346377738152171340460699458754693864860425070504814072212901803477718597944946449615132838212163393377862215695178783009774376934599408403768015738842942860097929044777134580398942931542192660013139264343200298151986559756492573273036011136923956752921608231556793173342950741089693915763745441606089738080427147322502632733868157378163913944507973047018417515726400551291846430079946880869604585454779414545717388207157089287707793326337620535050612384275977171772700920456678883395525207454685476400880700452429003938907711935403614946548022465080328179328096037207276212340092135773004653578472048376232196586988794391626055625378037599744841568382909224295078893610896671442061523730218714302426966906766542655372649669597537042863680430796305752237061252046866896076839544044109328561991626898964412076991903657537330351192284142504790168899031632618716412852988243222820321341024708326652830544209013898487456912653681835023424866110645829502994186085735363995450873649971943945742059333920859045223537438587315387548067218220322906191990317800517130318412908772538027722764476796818221297174818339324259520892139351166929329963952021742165228988974700609425165728609848446844972716044418374003432784111124359622899899468477872130132528987478613645900548082420693122734486000858983032245978054055669881688636508336687554962136109256035566181868521458465311894428269491001667205124970364588685262271979317166268244651963993851511123912757948270975844152683066124366026876335785827436902878433607309451852400406901585365273414137956760983745600620687520936159554259220101316048499710632415595370929406246315799639827195530745076151945722355522728027360638123966548096197993189759691072674883868369728424550600759992465455463531245179226743407758225793378393979364487168530962281267033418755530528552054260702675570720101338080868008293642987799644259151487911700331209770252756187840133817313185560698649150686890465642278512826871015294906596931112224614126415287099058340014899483538501241316944707896384768055574103895081032284076126411997977732230877365129508028683581471961157272724291823778384191955001500095206489821823049773423447626734837551246423262742002526610809817423063970179281635186729985578753410028852248702960302023745560682455738125301279984905713608194762619400792524410692455725845596036250737817588477797994768579975622596491909625979622293945889013522322269249179475663740460579325733085682518829222197489294290208000046240088569049561633793545006182561311350655370077148146848375465510561825842563996460039476609083579763028788970864103477605586122012023426565088152259251078699265111816287676535238452296340770123906543050034894283250677144009534866950790011667294743926556883303809845053129319825806409370931733745315224498934021535634917968847358059564854376158846385856756378749900082202804472984971343250208827832794559086158360793870934997992728421850501164961118997888557297403499675178724910971593306760039560902086864927291765282434263106014105651555768124805436624158845085812376612217701293712150446947608512729538728950394421608665409738437647674270582990420524666348458692261265410381391690616162105050760929594886645839711861167201709938175163824662585912707637496739832491054712981171805102424675064339100358346091028813709758423289407918890691773509876991518140086783716308820394451716860111343146240488800355714591561145134307183123919414777907852283789341822398307742174601563528028819657254494139508751372312761411215389279529086322131510406855456463668231382938892376581585528944006344044991641273650458000901956461181951095063192808275865284399685635796201459909861807417766233747145526687870409055589218485069798381430411523524698150794688718585144082334339592029435782359090648362823482972336147081637990458692264269663116150089615713457940473771697660586826839137218886972512837576024215122833440415515750083999647932648325896010672594131760151119590791119461589949279829064004932748553366809888667052993303515177201632524648134278974286752765355147527242976571662409641888748088325728196382769137646749823899106607624732376869990762887717834044452993565460049567727614077159921906685369161492012574317065600100268484067401756257861143674510008796914587917713036344566285572759083730116965482588832007181081989960518827825834946819527101977984366830130670118842926303314341984716766174074752215861044188255251577440089887126785595611961393429163094946952230287114361168863827040109478380545332359139349567234471377935351638310723222621626932117339672172953159858316820782509700262496522649626981008803040675699246197851384118598623745779182018044122945930714983122567201540937768943097071324805568176046864363346859830138440342865344240759001217558410228152363401721988524365343905824792489460064384999315016150565709298603434845291807171207682589330191334909680803756984361545593751276953508878677934888530921375247635440285113340705079671636427280937353641951131400134193765606232413885870451058126436995988152339379157914086427101321112591917804529884154620688080672710586194890202645983592476392149171739281811761351256113224723379304676453268347504313238160205843481756930888492781353430316984943863528045216230320305230690962528771028787878154020408723103528164082076175632918517739765596483620869051235442446814362058703201301103613312532260875557389340666736329361350779212342834811519247163126522151256773518428445084991992397835196455220375334613533541359480097890674768836385721618235917380603003272072082047833427784981814881341872899521993412458720491022232825143420425122476027982569489621507294527739377480088851161029928472220139965315089397483390994608175522387196898594117851530581631884487593624597134799073914607226540158474399233279086086685200134732406727093175950087834812483570357058852923018606794293156950422384734558549359365742229983368490764542274752260142806442272758783020877185809709180882343416175832688438195616174415707188739036797994144607123417494303724061664215095010882613381353767812268902903467380298067800188129378798681529623311194000252413915832794652895949109831071759842461232206755902670078934638331400937770458243217807309337790404730850718255266325196856481684871887767059545100261977030358809642023771158633087008290728840595764931546646532735476557860566231170708677792402419761114589442310961950513658052534847063468262627019271049551953036900055269073674976902042645735720836769524994668746706359984731648459304822834922377429268860898399267276779466544719966573862937967215457566533764789577334948519574986431690023150918771432834068353621346263499367838662369185696946190617822041750420783959427348433093101823625993328967551201709637466497754732729452464821215816170405782608196689827626257646310650093965414056799227004551457901497266100321488367149119175332754378938196032094357746416424419868146755018138657121650362014907088084970851334538946900288138938179842958074066246801958994195362908293911388859228557738634913003067307100193431307275374019650561208442492541307307103189340980126275832295774841316347732773911946933909745218920339412846775711113068231323360513963428147902695498491109532070573277077849554557317138784047876560448094057621023047034869171813836383245466257219981551281266986270243712554210192833370080621470412560683763565343885667049404798991167676505992332709379396077296683428130591396117262492711007261652975727319063746517881714554944313996232438782032992480542647769306837652985908025922527700189677741732550775186723108764283386366273572677034148047033132526519987223761471762722577547358237505857746437099257803291869839364191975977054994031286593536875909668355768513745757256392687097785332585925612442717041221687336926420857197025876002736575713594466767597168069844815528918862098931379463718392909802800335255022260899383798489470273594184728146311228603547503166597480967299001917381756937192836874198077102892064243497586118232213250402183617024341963673242881213214606229066515944191735499210699575758436851722442374011693745373185968622714998914545708813144255481985466394938347260389399656614899316337590610488475259445742253128404430685592964522325823066903762889390168264607459257201929354547265705496025260256805006493736701425001839937261748665910251165579891719384140414216219043562039079511185720576276648264284040910320819183884651170845135579262484835313219639964080766197661891255689634624566294257475647300867194569154990790681725904996680313175844976655163585756069743273223643685998347611776501395630036288456654998226879048930045311357122925890290872179576994081597859786157160829654303109719994543001534048344187783883315050920040267968542295947239363030866128317531704927734806257934252736469855692863856413377101485782414471616792121846932851076863781185860665890207348298497643612530502721865913187681457149276443177524296424217487494008284663389287199060395883762502319969911380360825762387003847359147141098194112397266395062291194651755880296321730256405044470750336789734144154321776609237509129670786759496553165840112398639273363421507049908011888575754689227951089959241188029958856407788263283471870962117532570278159457500237086820393767411472394830709814192050650330997865072742081374972405134144512043709746351551687356115360778227327839521579888950737805780730900251791972842265494248892633895487879583590980719576333318629385845515437616839537224508485822906943928650222098483385734493121070515867629330214847609422199459884150532372497905899390012151676205353287555622416366543764694243565100783208828524940708957053725991298059054579098639817736870344469926170502168165005285745544715398291237681175720393151519142096397590642810410624375092197159545293881001941652117462368009502124391948751396995261673540459029997305339687187042023708431179720464601058825362033139927106258815910505433235705382361833375683247365915375521392800598580148783071267160073655423769298045008360991348581143576665588869274851866516460670393741440760471931647115385652812312233996396536318752308129817491006926813756859613965434543238167022237483709660878535564645118533874136817102632210932528259329160632204660750235057671526490837730034253332414763955418689137756309217165585848468182180286935087349223845280798496274951556349053644113357215310489345979332841539624934373298022304138670826602655632474735294748387865295208066638448838168703229699468000697658449904376653178784365403751745941419727138144417704565795796154599899668547511009050970107534655975098474289212307343554225428384970096591437649991142510811059252760786173203565257023223689691063673586029045141244995301061632426293092375789982818125468162251269130130508692977033912862462579341192388149822498190094284566503736866212029348480911670000973183740838573248598234454756382031696142733325914970755443652315472544813436373049217344587190020903013431222410364495154785959460249824501105614712524787244674058589229754685103443940592174378097713511660012028220953866800477118272756349206210232680639020459395927589490444920849764531373455811342706335524933453050378900473743808152149003255147722390110468859736141848806443679780008427163268840798568742873155774199431214402371139063126434617932140800073863882730093819042596147639910137310598013946700253438504886943452019485562688345994544465617276186228722059960356654259081026894528688287019023677315422320405036799361896157678471240193116391251476727293508460108320943346068951407544596773724223847166941969748833762141556679204977968690162790602005007454485042492339249518233026573594109422886077394257209877507865835365228364228721444764504995970653917106591269584672414492808991525584072200953005665500293268211097958015762810001856234352855859570363640628913218072168412311492210602262337898005910358973655257286611268313878508354600553344224974428070752694909871344159923345653001312022751983169592224053848530900478417678644170290104032365700985481793311549597182976101690711507778744057226194331322564932891882814822954256489617967125165893313223628848593877623038080056028141148749578635241776790232495993953601677906209180866276625429935579945358816192488162185851399251456373690549060620490442367464088852299871750558895976640543879107436766111619108295433993783207408365732364281045984615404612335775189855097895583148110172727992230713565454832694269117269942756072293188525025023070259750750469432763481502276782760127670319485004523986322407643684230419557730375544301365762548026313956110572116488703719316114252635083111845149118169549086008919195996814678091483519595474433632291917202943185645205658180808243248671778079052536307252337804202128592778112371009940399870557399586950571309222484407812211990660433517128330153944371844455683896252489063224501797871497854797001874134339519414855252593049046348533582870526534787649754873679820549842098428470506221057125274574798595072819855202691470399240439940658150603849184078108020760765301686834761233539130077848529715943129306132134429959027443442816508729308208829591638732682521893409723501456199164390521198145070751616520058687171382642586127536903721429417710391132676271291180757177795862844943980051951423196410839566402726373772932775815398989055302196460631629829594467377360094086120381484657276089783790142337461758289507669811890344068919176937858911877360687857170810566484891623361479170497809307203215618663367807679029571491229064526711963114646369632226553981215579305655895969273905541550382429484956999857151735190554193309497502484432670136382702488225425068030352980291907883547990517197129480085344198667280031306347557272376955168454221662447483286303901963797312320864858544485315450626671746935454971019190313477216481848900558998212911237059776608232835499366188798650359185490044907639329120741801731693382866337041582906027580900858889363539647596467208433821089405005149569533718181114033166035360724533314449582798340967579297665095223349642133204052414232529175136436738741039939214096055493737382480761204189712486933416582878742684121152144751951388362024222693319477189863979421929692174190320868112492985331478190073101300936888667931694773376339118190642502781486628243914751595833116998327529355343084675074714282797839057030682152567629758247705788187691380835209968738644229504240072609367831254641242702127197710095317436969836993673668393482358916251424852625421118141181356009366230182901386019686363562842201054965075512773910422923923766151962678123184135111878612942007022202103750564760201935036763879095430460198417918785620931031903534246602495234150257694061229189081623612536207359359129069642815396710416263303835708955220475666638053962278520609044405118665085236615354416703276716232248517760457433243873341103177886745003765789903941012437709548015228589485114775003728841177430988463838220919876826354870402149776233444158476323381284370315157911157680327439644128781694197064415202332847415509184949187628677213951432613973683820109084249556269204147139676127110952543478500760870132182277939879712521429206154173858964785612430314982680851229374513423375165518170678655620373813495838132732245514241559111616821097398234553675816529905238969018507780443535518012312798331893059406130987733764926742301484701932610743407464384502721133792909484398253368615923937747585303155946846650397618372665089100776345997158196472220306156830933257270686898398229785775469911070062992256225154208512065122338504836275044693522170804075948538220928932188906217178472526886747559014764207627176393602214256987427413454689530938040090692898911666805064208786387609610307759652197960946758104856998984679395640068706698111916868730505700140082935144880449887918424828654248084097709886048132709786317200523826589053844117829516124609804831117703592377332945163203318331505273579899626027630873315255664060764506419505246627165266004480114098099024140562368212085757193803621329712356173061553552421853740584935198339844737995508227012211676133796258139316061672260862347662871065403040187413732797858207789288845908207485529993122963209562453806193636492443330506332690857539362349986930534273312633566554038494554200659134388996251533426599994366516101104674473290296837999939339868517767111752653172929001233440230070323268671218932628075995957391045088111102071631494048124804289550282085718519423180903735599527738475126935930501284100404121938067909896892367816360790000700331110719287739729774270846563282147017094139254557527624006095974745517682150238172560759235605728412222658976148761720163173915262255273778474191700060787701410724677198950202825455193373185393465615105830794353111809556111040716865879111219172088884725015102875116848361289669786839325848566737839591665760686567376891790608076228228495771673766246958507920529313515304833994174885169779596869378433229990318041064959548592784066613177009612351259466404382453580895232053485367636628195804415782840801378116926533307999769974474272188223155605524092173938885870947280732999530034153242205580898626854840607218744908948316438826563591713907812275936094044054106290713379136561222953710477423984316468129457995810346834504884344236713514734153352213563322246927595219486384800474984154343293318225617756330993476148381907229701519965442164873899927480760379853106084632524608278149469126999926649382388448243829793551925872805391227609687940909213768664899243472363557249690818107154544300600119837357090429832061941052830986313160326971782718870028591464844657349918431736603924914777557555187503647039823173921289913039452755489654584282718749101400932496495239638905489174427169361255613043358090758763628851687996063737674221465185562468464157853389292404792295291178727464492922192738493710911338460132231331868876500218983336367680266141444531635756912388459502854774185901219219679640136621717481475922658954049187040701612377076011329446954301446879833782604731652476780145622053070377908797947026757942610793189873780482795981321434196538312982486831205855560235958259165949488119162932972186203014550898141204572608864769700846889641334926328479550953373489498007357369419226796825873750417928992524640506126178169335449516775544794368400758995659702471861615863238487139575467714176956771626530130802282218755334637973166084773168369170184451427410515918497445958204088862076157453262404031859336608767678955859701908947971124268235324982087173272971310915030869774535038005700979016937005705988995408351683778271328949602044726333017268361522319182104476605419304894212391188717227361234527802945090431615840183596555770495120151850722431822119398617931821890886721364952969207130738637341918287591372691153304680809528100687293497457590804512463888811357054258310970512870132335697791515651440154925941172596020574963999719412165035338111779082687693272285131920103745255726535972633129148735273735857924031181240755147415400072651941564451996716553382176794528820074106306628232540098863684456829633594059061421083939333456842688219517391446159677672322624449803420424350633006806110058582053995157864152571332594991042984599722747540389351053932198555941023443716280927914255423730211417010797427717098634147860582532657276744548013029434719864107435878772906160649042717671994615502544376078224484137890270592826797000076314418437000318843346904183070454294848433644216675257344809280636112068672398039510829127612226501177015657941180670722016609809883701701014417690295994210655304787366664094069011066027587085155674512447978682297232541769702305373058562804509004865200116964087865546580228543966696244072323303269418746835301957119597661819385198784070246710027766562442148537358712899416297886140150218577318298362116233876560591331953900450616599544435881179218086391581569498011934349950065452493463757363700281416825764463771071701737498506340487259816257878918411101320014899924084709015722534226200388925467685503947050098290004083806340934608108400193001772452059270216086676650750988876994699464846559359322893176106814534497507103607646510816989582764298768907083426822223542001370439508238037824782444180828299237596257961751272968510396592051403696232056681870286333615091907004524367022608928108033832917309491006586338705685169141450312057106793209639175690453790427184204297643415993960955017635171100210646223887447437730945806052831973339230758021498744961471759370679166486521189992977668365857888458179355436207893456596457345308240499533871657171949388874783452471068512284947880459931685705838271916225859721997035540444749548882525919904520469527865205306660516732358789708208814748821400566338864289435792285236346656914431733671552675488733382472818575036535969601368512692840676307086103485854416253338316295137544927168439651676948466531055736186490480788697051547436475549486532170801719392394612939895400137608978716692374529487810508786859640014413381794801572197093831595877260407296085013085447177076089180197605668150967160247908066163452038008336859546444400605807068429903823772292086203753683435983142194848889617238206329579142244656590383212561328194495221220283085528316870335118050601041930347448873984556628734694966360900020640643892290504754255764188973557394179930082616263035468067079090712377454584893559365944288325520811808518960132628850277674790704102052827308008830327579481029695049773713311599474993697710990013907503245864776394979363801207992267441413984214740624683651639144963588435501503820459505828946139880260988611009416101337728082885503354287222528301862727542845645668444934386083749755602038647196191529645781055386418987755000807312717025720021643979275817498116877850059437788369001135752387840251105687434783334323359637224372995775857546737458797546330332370163014973247256695426604447038829100364486281380744253446968493710337887803050420146782095271000919706128750266391722540373707647127613133747531591965665194793442319638263604433204644652655116494465381761728194520960633361424646609321029055057413299476718075754498257296372544604352116178419074103595043323715813243157902765780275271296323263101982209797244097272280143257492288197117358229827345040323180967827197810820206334180624262963877079316912269817982585524700877485659445382230512082372189774820539964622943487088295919175748199140679424496449657159152351635388144048908494826513377167789779336326883196570652265727340687895598522350466092872810502862466446518298200295668470203421548732037806390411278988401088573151673840323370849726748101665865244932236899678739089637702545321710352849660132731099634606949466017909829895922955211274274437341793925912316027746569345101971685638401211397201085903468325208710476146632484963189373870966047748194695286866631688358696042894073037306699733242111407760465551567767064888313144153922836039895512123282590544949288212390113224027720396697803759692324785907629533647795296282348972729189191536893026765873367561161601262273586456387113063160854890402947090266360465069858992444053771327184856148033533918923055709766131204289771817654668950817812857964840019143928025290505341413930830371138464184659679366940810014431491396481542154042582574557763320051510401782242377531424466624144453645433459368022684611416671197008937938628367285052455081163935693790209364133585136756776166594071002812192031673005883710875159874410676774072915387844856884016266371443027658900015167741238470080817430386029436979656550819164884775413472703535104474470547307055554455554894023270298379227224484314379459299369479012634658809322527410527576795280235637052322458673946244985746458058453177614283185146431344450931000716423159319998412339762165903539065185588039671168334136147348825168644004811992255013288494205129597355260864193754115235511179566259707543753357457686544964253388107148479677095728978748316760795511620338488821809551989147535291021724226156997854948382715598389417086760364926399853130970032890687906311934312149072591191829551678197081445445035314782725932070081333635861634254999712815268006227329370788976098814511410067260710946731601208643837911601992417227647355057402021761392085957051565125970493383436878618689286383559758430925922252759444869564262060395731425615106524097456325550846343932191170775306501697763027797772481936030532708999325981541344482543335055203898081084567688765291591879132846348497730877795589076620513595509541072291313805340870529098499033534260076503046361260138052359948492365639402023334377186843203057420492858379854447777128767916131870788744116449938734559909160013755536321681253467844256441036501602822570514518259763316228000333648480952781244239665219956510055414419258048599124893506022801614407268519630862733580781821633757969797458164125852603735582472352730472114434682528552900087749185540930622816052371619836317497345547960161176830929005689270805524218529157459943095771955858844886076900924673314767971179938679949316635592982360777127315378445916255114089367217442071596656702262075741702612209817490203736136560224913682564392205180217607992666730356815968197832640805486955254468471511147704536958361679588418925887716077697353436582440636794703091072851997937371262501693380227993984110547354875876705805165874286644809698310886643422499887905779163994426766918598954934510710948891776021126776911564499979297611254060110637735735892078641333729462254009148800788678305575199989998781543669848057488650937544304479571765554525202636512922599530095920034338399604626270746512268712874560901056751218965324633306060255889419046882224850563642360424212629415024496555683319304650202357069484005383729602634601859826514625638445473115942831520952852430914064887947032993243857643901709931784750529101939455780476570700587933900425541882200497759793563475554576352074176652348140584089279435072539373421494656393718886103934080068563685506644323347554235244841112682131699223971692652369095788208643231529845086570580217687551093710803526700934801744857080409779823263890280117034389691452181401398632305990184837925490535304124863732491520215366733219239263453485311544042145108655376840930353285689005495070866620895171980508464864581379187899813094745695440876242552569042360878380723926391575221552777888990465692203813817720310943856996406291823519464799373876817515535184916111233631219106777229382826124217380444196181897978768680522911024227449773360636327658373509211891039563624494607837214386991777042184269293040489176108223999226576599697384824862985086007323032809608991266651580844713967958770931574246189203835280193749069023939095805766398933117648034578175668913187040241627212085095833898219631367374361665819664670142024078519492078192706841092270272368988543234473142177422040899726664196281395654859227211595729530723512965206515981834629048241062103977170462752004483612542336676107879276952538348902338378769649564102579577802452598051171034539138046381539352898230377966528064034457868592869078819893411828391831282795225446826216317863368351315797316915525802517731171142907714558861539748188981470090844665741555925655425233668955304696673799196996049407398526771650645853419011194746262607070485669432445180747227882164686023916811367454176762946135370992996788787468144658514422850736467326473193193086491869403447351454461184722584240664874211287289773657318084631493805944825591864133770103948895192841443572070173900573967300305911410482555851723826579286936894880877044684340586706489338447739575512688103930031234519644780200988166863634573595804764315274693657066527468535178893986518517315462529508865479730109695085412095314140577356714446748187446621610835548369021902832001115584493164332649954088409334268692953558661795893391153528834740706523325504941747416968855522542990187332401229101568843483752670008025182659954407889604208543306471680865809335514723032270941750793073541402438109101990240114503565415970788322549744546421936102726529222824080113295349626418498696752764102669263170782608998793534412871576714986042623849454946616228452730815570409524182646797375679651909413695653775141616318179110179385565330303633709755739509161544913422952379572594667396823363545325045777544830330734137738509015716838974923287289072040025406368523708887893082552806623033191463326410316668475846561882136699559650954558606240328277189946549352628132068903199832084318131314307452545077428773361019135285559793706993316655073128716475307831231042007278612950726674488013451274366883320094495811322826859814387272952602712248941521516567030179241378171102167343437504488186243883214025361425698671353545143610030416374238475355620498136956899224252219513455444908362995524570953648740073392443713389148170678263420092876716990750095788303688594003154421644100935023693916982862031550301740751258277802842231802128670010252477018673609664683519039733218147112505474776709946853245828256024826806605885013564546045560192549507008254848670150696875437269665651949049677992067534788809071194571844751567013490177958951060550398116175270393091251376467770046992502067549283290615576774523875348408145700008486538218189676277054120827269083363834989643240444983908490854816274689510283549449954123743798831019994317999640500071637569674261801069049672999791325311987156727340192105002571800625154370859348644400046694820116447837960096499757938969878255112681615571239741424633964376477018754448178103641739444117830323261636587408265033461080832148234361833655453687319642988555854008299143961567615811164716548587049553917307601661764802325100775074331542770468604746417009591931513595289653451241167360212631272136171872534541627113248659109349765431778177042079411918606099420117573440546092850879573564553362311825813061409921030937199086517500176098290112379304874519266533190700848553318500564305234292653676322893051915528316036682746327576756860891427471267754453531707221804360450081796627881096237341223866041734250629305313734221676532241799991624963734447842436566319493897621502598189474868415070286876788069585930093281090841592811462845983365100358157926457995189127756739840185040754337789289571510493075261995633843654614327577180748014396573069533678069903035443303581225839901042385132728017524724144292293951718205872324016301439108143615389990805710268218048527624237331930409553871082703205797837120914198836957006959165882058811932402375258731234708894461801884532905687537336533066794816985934194835992804412856937336963279587051981494690229978945608374384899166749944406143062937980846685651525886487045707874776248835333702034965566683946299769223476536059580645879768188582062564536989701429784207001223428213202245350604726004119932001214894426185394814140711196788451144384833304918543758718700610234424615740067099830784575810907947510021724345666851135430334316970310198425547819028417171509914107347452027933305819652296039053491957809160102632487549646729776117703631997330857459914743978981388189171772862287601332866413676876126109358406307404434020107847875474155693482910853890498600501786858631070203416648520903300925807791751566292853222182477992987595184656180963218249014593950126654491442130744402118773223501505159065758454834654670828759056623861436706202760692936775331274974758264163062754318236482140119071739167950114449996831309361320110108721304518488511577484955895506553043247249989503788180876541600106055490992997027624847009732557654194217929224614429432462760784652533551430798549958933690454791090188399854354138205336441954043915675843574450568768287573650225435321027824145162584173909604901448530322446599022233546372244246862038648415889459384758835308049747178010429448300381014283449726605937133573967646690422051875545862911984150533864291497412486689561623608223077558232037021768146955788712289539742023586473208924915284376413573016925153641556121777171576520738995936530665746432227557475526912447848840527619230505493674799707293985972578217328425353364233207567960699487900371207704099559149546330762880845349069649968945115248471028846723840572687770198178799664973619967636227482602702551041681528760918159053699164167779747294928105196405911543768554586615255786435877868729402055785206617260341871333913206646223780364435861275539269011743976497394836706938194898383354161439431420492609802905177521024102891017111646951781266776141253072565901675006327959332311607346600150668888733829490563129011136434083772983289682856552595675804501955409652790465626377588260568209320707060795081994594714796950149750889758086550385656700949431595509607068048994391858690025869846728450492113399585461409065438095369047313459042100162512422466139146062651497983083485094012735578321346207665579714900810187352328871671921123636930874070658461652200014342840671185028848801112714789662840557634757932238238279385924315707072753902040326590411861263963115234305221280137855994386276302711080277769019490770683761734118091477155772415197319227124633616777901614156611061847448646314858930251006678754748453356499315246101018825538632293214117204348892309588540222900940142769757334309170052741491459847810124384865393632884426640921161219710292839075954695762377907957254150482860855274128276083972416393457245103824581682816584145633869854143166295280242969322998948328795444301740288554889129292530182368950608378491365056249863836642963040268282682199165447160188145769192054752501545096099924179615859694968633114500968696017632150723679889769153940344412822023993446435291823384144345084594268806414324991004453372563889286535317839874243683456098477973466733181135418058750025934107269796864783699388327980034384032879822995350280709163987250175329098363776109365923745164325017510665641466121152647935071255279824227997217782550213923132259171992707498016901102423659079277815710175154006703639762266791242962666184712159697770038803446113417347769521756626935247873987170757787179154168252865720579047989400604440430252378758479426289380608076503286710358269387873547091676009510531392754174830588051084182386925858374192815980966748357868862075399996893208270233300873796753560296927330001163835831009685097166866792065268615995239303474346508893766362665657091965558611206458391912564411118492014302517693527369660826992520772581455010944545172991837253027306777321116952171476866483418867075816102069674837900823923968667801151101380127978633407226983208330049410399884418787709733710546460018777661183868226759919309251503135596438807880231275912349819798167532858843694931565712046980341066794159329280434562348893726059394503511957287068001355556646570470617839878873551730249697618042896612728417293583826017428455985265571465932521613771777664075492545936235335528096130033221340457171121858192817637397675671360764869076915554546857386187394965710828879034736581668406355116595090278163257909114649208358485796884391574397889734720237636047343379214901109751179009905346890094547641149449534550257369416631087850692805382089372805268450116673402541564909011655167226672495405967174776027310099953423939900216555657647215584356751750801915191307192544464729241051638460503685720317279324344631295567792652085890516647971921304013254798856761963080495265107128502330238674034240943906389163759610698452359916927850734817686957826249183385823702641286616959734279195293959710989385460210952518191517077449412689235524717261647708509213506222497473498257863194479711683197592376987136709227324366237205644055241656717152734978611242403562066867064974119917003309825283164318999861978160787795645187583338065611458922984119726918838657928171132749650184391678088161681578961202300613038031195160382456808576385125389042602346866828895702204487164243807710289169181821930579403201659604197715302187963845671675275914277085989926372825363240262550288015620433163044807591740658909816207000158800645678125721420423709244336669857759425894216134028264733747036063660618154193507015062583012755548081882666540752598762820347778106707647882789782738816293510758622196725133868793797802737686782010698788718213558280252747198289205775446937246820116631367129273515089448513329597739249336551177841860630271495481101133231301241929654206620221294926801950010639459471319923878485867460282098277261080398221910908236182869607510286459314564379327466331758534187468821838109711821850234271635011101046999254068509235061210323861468909837337667313427426408065616890525391527808054203930044298519733560599887855258217400430081948394872963691906786590977322207846503291968280030992307725315310706605437268090981596436008821803903051001384041391750789588693192793637026080180832030167504998600377005773525115288941146314637127868644713124853787235090205886303772334112679789872866138971571658023357143020206397438217302041430076509946282754035660290969712113079977407357781585595673576724625463057564253702400945859847653988532066461614362302995447929401433395207441438620012925943725691556483947419496982394400800155130557067093562740030988011187486933859460422293585721950156482704423845152290590291433791088198381720043849250550028174082291977544524291893734723684356912541381689933700631435009154347690598366338355629258525536206338339695775918628243936652731032199988053887662558706681605210803742523923992561663766392548114843808424627954022394873700775162549178616873993158952477546558643004966839536618158614801626186786959736592108836760784004093352944818569480914256931116242524458764072894703527736529117213721087123701346580819173089321433380164310986240020471032699321683358653080075859495760515975906308073888641609389268263119813247520129020037798986670864553044718678701479406479206956848416746143791093303049098981235830495815340611351394368870800758858012845389962151579938720677693503431229372482009885899405195858014793376619971845773522471425870655355560904033906914291543807731298517653524673907644231048269477864210077387254163099693067341148395989231587915522560574216934230705409554522644625963186757131119393354076496265886330795796973373556184400803742134026595006125376675495288728212457061933905623151612130431775355229877217859338934817775107203483619950751762978708611383112174859257562022555845319635203411970986959217380235382429130940383990071085791834970014086487945434390399638565699928280833313094333432996533536099431477492734812120721295474624089194303338699414532492741479522583525537134295858970299382778076863242318964529888724972354719287951116904777000037927985230903948727580596622947796078493185076109366690175197552242059232525723774682724451391526744433981855284275680546241894084238870725986944259707942721597363369431684426965546328377208025728568080712889305049719910421508966441965403614601623844276981015137966065130843263785994078435744802537062272815546385319782787743374280337113232541382167037612962435068198903048330261271477911935206525228761637256149700592682388657247002983411598197841532632194300649784324158065427126893912569592437071870343000473670953698270768438288706167966219799775852106618441800063740021576924480870041273274418349759939641077582200449626955984869170083813770542314063834673214183254614478659395053961158221167589800297791077898520470085933801701994933148621171680149898946760836591394275535822261226494989373809779650823399234122114294008920682852281274333811360258547777265700889180520531761471877924667946220400306961597847842431149048111042585195260096293319475732849130375342081356493165633234186064572473111262555607218962383473873016518044500451161858350634967353686993992480880433642708498468317338978602250027155424616425257901973198572158596804501809962497182562463081191651797468003368665874155754650531988071348470737942459083974521897064868523474356672999176296081398243647148857769294906634442397075755186208051644624123923301476140569478909477408361518370112275618702365915484356162076170404036754357972818252211333391750113986988975698315601822622133689822967466509476375243371684195793877339493942821924427963841958519043267128855668290196111727729658722703646266426231434151145577570143266633331028579524172744768454296363648218637872882886700852847358187506417666247945488588356069511394192428032344756771888051454831510400377366244683181801891438456917224210583437191833515218404923448718288756114712492032766003465683699234168593588142932281601527211784595872462143793484592606736965885211766190216144900784196258798264016509346540377438995836966919902659416033559799176868574946679435813057921566076670141289867087974437438243347472610290911286579103224454526593408011285036265748355659589383411181499302835728053117663515080547676080258330032879698474605613975090891539675418735977499197771234981359631097432769181128687861517793022176686536737023179304344271199670866303248035167528520359907027156417135314302855103729727787160673996246344542435894772207197091966507946775338899903440731141775985070519642039019371590477285739035048663221963632305792830478978724263619629718412349148793663703079883330530671537527973481826725253264298245055262161368452527191456731129242831066139880646117230618192691599045445715769504983726345185878275735670290791825009557952648191796474646740466285539427260292924971106690695626987938232064863894667895501255118116876587592144099312218116321731301045213600066139971966611952263294390859818907071795097845016967420555131673528585249375296419702185463888293810353094445046982767609238157456767924929863189929476392944454737468880302879795216237743250419375274825458024009851229379467158980791022337161097438290840071165214305997288741518873508678307206676002892984382903612910668481207400040547034461635892305588543025697449156483586306179920838028609996414765403428798404653077191557727958846997968692553593414218364147015464099795831490371203830615726808950925223283633029092540070176139862057079782247609936487657588941390616448945499247815067920119096753624015954181115312290777949805498706460727436138093842659020580601185387241219727377965442081525820039951066746235904984959792313620101802186589314934484364146087775331204598397039575999959949649030696802613226224576657419378833001099661997351373703642280303713510446732825680113014743298155104459628423401603181078653208251386393306921218756679667839285764384442176581983870273771942506422848000080996077004004757782769497873979893813722604760471995250246764292193915105553587487337181620901323960357891558990451745176304594521735821813030406768979013564684429476884808418824720049914284771479836064158077529895550961136373305329937109398314371802032983921312582738975092507528844677161301588750731393213743857521027076929393907593370130287079412086298486399607404722925017222692049540047898414902464214450116073542280234789205581553311763983670118330477270637349948282133259172595044860764897434094097484602980974097902924727418060244781038152556831079479102945934089295991499704427482934655916350963795359868856043323579406585897899351203084516529481217285609368464625112025626940890272838174986960622325600878551213471194237579659613114928633146887653045244851531365734638850104078093057623078158935216831339342830432449145787402343125566640568812609164100552662845158897290480006834788406699827550768293397323174822513023261203143516736803250568555421736351416938967379549181422108989739011922127496698449542670763855925242399527878552870100758662877440848050873394192219208841257247940972819478422448974196475735541027333711838603443175569351754714954513734354624708993192592511668143299811741709350839110767301139026978731369628659873937982380056273853743398030503587344947014532966627476889693513968798584344464867723601752234143584544643993394840421143865978906854256452839111347049258966070583225786549398946744843746713623653458619011581494118637530603898149410235592613463967048357974154395647319949043030635416867436389243260448969224231490799499867774380963383636937551952566817295662562156756360578160732790347667637409443491755999812096226298776907512484476404776479409700340474634349180175949339522224103100379806265439800723633733102995509200931313370645501148270731699991122992749919617551775288313178379510687470181078097819900451521809882038336145501071524234674045988325371990101853966726945728849754617244166276130687608598021275915657241110246293247343488498219248828660650355105822457254378851304970961899169133072198183562002801263392152159466614914604189864511686034444012372121518368038675061300907358058201321466579230425573403913106621619787471279969338107522439135090682803050917282517611484470283036219177451566500277045514843282040189067071492875853933192939931671859111158912477569758948710884464981403138757906554149907886572880428490367758090807044031028982349064334598290643616668113347135380173606229769197393172600887801336488045924848962512273390982053618499094620573951542820865665637038845446580639768693321732988831333465460327575882189966224582768244366685927505764375759614923184117291197801462783583287059523735204360437532710942025182158260519006976009282878224694284307676505569586228440128186683100711028207986076886757912794430370984060247669104254061742123798717612526163544667562804663245819910645590395605328736595009981437809879925859441192225393655446085910466391066338216823390155307674680319375916556937968867632714637188676617338884903491401768547323512286273173742480970897021470458195081525700172265533439719668437925779268950907942000591188844591994942452510906856263146467234230214315293098564063588117787170234839330637632488983307714577647473098995948418076061650005944107972320877814923628225196375419282478166136713493350634582695568657062873869945117381089958448460381577152047642427477113755856161632206409197515217112200336561620138176633357106315373679457226369173850316352647144202571694412036575712272572802528873997368566486774194715577443135590998513327132168616843164832404896486142978365948193548067244185110353086846523548046473224745285147704342680110351122207739350035423794083429463842163056217942363410065842896479570261922656218020159045088961460321206345580850391678073865930692469704106823572100738391225627140438431169005589781011137443683993390152433314676515307235901537178649347563899198324246169912373622334671046993549014104077933050883552200155589523104029193387592236979623765167340765339915462044739403894717842509419055884938492444061602527424917147555057696488968180887206663373196052827079570149301890637602396014548279691725691235835712158292250707932990242083027118512905285484485043632224810859829056843859997915237014870726184374297487261322456307053480221503630055216663224041140624957243289830866533524743815858754864169594439260694627939415016575724753571302520809551279875007124372113472561164464876388967948431988752449016253958126598399049228235487429510830098156229654339473378208539491729680733716464125652271333045971030779774019405814119305567780173256365150108994543823536694111634822675123902161668039804166716846143157467210077359865349906965057397452132018508958201194018759026574252303981196778054179093423304272048148703343787199977098232079625021335264925241386273729858012325588667519718674740126298456942662187460362054921585971473768099416575848775544407215713193186397026791572105635591508091174068125937998786342302598914273090863483734172170835908516289321049132563268021694544726990428000020700082819684149988797043921716274777035494838383504745338446527133375808503306065134732928532609543995499008621004929752313602371345915809152049504074241455246487869205590347506719005298669473067613517134961576755965577113298823141226111639680684832242692641675619381566427958940780822682881260565585807001585537820537579750172773465936265529555281027659317502694160665934726878331653452075405744752079793750957327540947394585956452175451848244665263754742221782567213084658595976329344432203234345248465848992689139930809805299245347733215914995694641822986822855451843801305282259122512516929001941574970352526491181630945188421992232624098848751382062775515285863688122574358761908822925134961876783127614041757212135953554606468316892762011516673082310949581665187021267668475834505023305825423807542441909947547625858030683058491340492271711865101327830143147884188600649286806349902692613189635029192879246006773998906350044198625412576680628181822379393299584464807088659613364689597368421466465421952657811317531486591246585925279547328482635278587825157904101503337803888981190232072246334808293366973532893635981956067019078689627822349426138158456842677083925359340359150143795597268440242107306636823708110846768981629310978846361853984917120857112916982928346410441573128259607939851951367327351369197563108460447935123081898386268443378209319042973469298491297972615630869704712462845056089879544207902604140230463785860437443563368830283570439223019846704128786420853135814403941832639480739149930350242865091545614958727416583594350810832533723474976117592844361848833266179219961157496070389628479443570811701846491798491081055677701248846051365649160308739554839689027563538896157075107360347345244226979721438052952097116121360369218206734396807082400236382371939596749617363870704921419431539482526109617174859505410437150146682974017423218197945312630554480735652075101979318464073507409926715610014772276108989986814225117801792188933842408483479432563163062866520627363174385780679942815911476314797030351468211228286375420316013109984857770970800572924489375580212645812325061539784318723811822761145408582352800957339905576304509900949934585310055719312050432969263240226677941907680630459620495036035671021721521912505852493885964911205067334104857639004719387230727351910549142143859318333949553598828525402438898139929997324821221782642873959815541436489366779115865453185403915852739551001376215558735243172933657166879173275516985852356169868934916550533352123340067394955215522199813742365143601600112691082292980283537664668223882613205819725289662716114316911665514229181214030058203530227756343315510875209968123258244154083568293743395628328406562375265034165284396275135831790879928667713842539787674897069008974640314130319538547910958129231179763500205601986632458149516725063576663095105869557792738455056051306789029368596836773458430438836991832190810977925935352724502904753150762980667674530555747581637619283357644421017697642402629413904191653016161097778829856537916905534302391814359969534710033461849691559411779987952222899204159309128857830820151277152246298748501999659691247041446350096796491152345606057823112713930903906140152922246988138787301188284436474740654853035629636734852236357918666191131795085410653726362116774007079790566058904794137574778005237321489737588057070142025260953780863544955769415425852373213703238788530329503172414029319664092279752308526703244794851830224802730854856879862496528007413176516657437458793956226409875682067031172237932612186826952969509228595063777232792848128942596446357057568002707881744660271757636193206236869416719034682452111972613883577661096623316152352528823228439688747111495187007608184795181203180738117335209427195706271866422978867285043999820142432050561698147977425411093739304514076737541075072685070082646192030481567901620425548163894347080430398576706721264052654138384441621194253354813532025734360172583286957205150615547033807758435998442832404333661481690363380294183479438533272073661217069549931230067315399303102424034812402793964604008983104498967481788071494738741698057806804767518015682308946844472330409004329332424540851792381428047291339079670864226225665608852270085954887202065833676270005681237435783104259374352698765532443598084461836505828758072523510570464216209315222285116365442688422587623779542346209336694811394270841904897704681981838157870980441512919366287147208044568088144124742785475243323138065498203343221083988895771344431905871851909040458379882036202976639861354263162422760247477125775453225396965996762337553343839647795114895597176509022519999139560818337750225184907000716714233275575587871407004641374823876699372747788287960136495424176233654503166739601939086940067522387525651082076711520235812596233408868829619692965446559913299664005171955339503433478978882908256578290893814485629351625891391327372171953476320877026525486187764149991922641690368955701476032439103647806721204209860718399453140257623063689680431663198136322360383971892794930894163745586310550950206113291048297504434814257112013969843766044578259395840880437239602694367663132548760748791011745879818017184274263921053801948371547450012869975514639075238267041052009849118627858081648280266162693472392289468680274261061705412089094552968265778114734467408956112464429367599576100125605336161779764363074220786088969309981459483959406172187605800849691953985522298993909244381172984662257332757418715823800171224187817609120186134019364538395566815095940824794087701307271940194016151897540503190963126956056982465028809535276304103550738383884741991757632600069827954626096878555938724910523448817575463020034183364764869992715025228664610763311704571742330522166912379351555626303167840924182971833324888490748095432343380175073180276333511096280970241514695701072923959857371451096377551661420884439982557282140335302238413975878063498059922236405892303149783599740045117859058796238159316019136356429417041189523657208292209190493730117252216206075434673849413520202082175714340346552465252122017203315355512482491760977093879156282050840807456288421913772361948393815008669026085977137561268292197590490712841465091867868725319664229643505741091348146772907158350432508427534155022821146656497620907898714064707303637890320704686652480645414935789673264489890147994126044451349368622808892486294328666570094097471563920129613020268440540381205672988170731932950190309107781529649165394203770627483229033964636772753218605089055345212215234740575366553912370520422595956084713918860045514487673708554684386624585070958389535050981144346715305161009348348966089520843608987212046891449240707300114524839579613444091882059593559434498412217059277799450694791559059980894013447568010553768308135153729479786144549033307311457548566630754218221164203941694468219794274875757111744374589660576411765170538035975502760441940151660175125134016713804298594681929427505331046689296818843633609322255697124688061767235927484860423530309268890180194807472780712867845241490941137561878288864916075421201784266123887207474494194526992050977277353240083733279224115031780393213967605022908616049401744267145902913259492820075918757260917919545066227928956606395890307503642135454950854951687964968442685405288621919410796794794087005649449485200044176502126698897014036106711973585829521718313756227929456824730549203584707405125065637578956168570259055363269447598231085111969331536873625360208605004891934614058542747897400026552407224920802003244136598834028692362973226460449235761319312695670951006835624984757416007997385159123959999899366964114253594678375033586494019028060950586242494037910137594871467931315122482557876949840745147097718839767352897788165699755772537064839000549912991193431918720106927075678148295402099906757783412467910892015516118551903454229012997284750500071285345622088869930936817205480787671955121880385101248494038180901084963843734142073824504644708827626923356770895889543105183435238432223292318620972284197267066033777412356464309322645841655030071979247667002341228869247242562926794662080509579162333382833919924545135914598202071633122910442433928540633204612814028078014934241664148304515651493570744368731579659619477989799888670241303803621689547254956397298537548966746246389421431827988981040406446910717440727156441014214447103532796292337948565396778858339135531384419726615173184991850185469593922226655420710359488429700979446081261815815484396284131640406511332567113015547613259102146895225617223873175235792713569410680667361725969546791203939050905994721241698661431608805020491807986670566788316290149820205088169734444792514572940517839511451340126926608320532808842451266595525650848104510432604801924226615667672822378653921613307915730491935576165623101692763638818019727689317896978100154425812993927333263438230627884100927009103985426015102246811917578146932856617140862836441092249711598936083974895527414644929964256646121611932963686610858623739946789958124067734567023035948499188218355916277884238386400050858094584063646363472514847817272202987893997855906671289630807243151913792836595589493616651777352175985259427234257797754534340976881473413278801869579100353071754568087009649414139153439691013705023979118354560450360085568079053032496208850886321516770573063548491635580739072148572170491864318527101285231588474248649907682159389003405967628471926121325551713710425817090157256304211553127516257145179353912924986722718171066383577263648600292402242666933279102431433531768190683717951726531309116144769250892474632290174056306883364629255646439261170183673823366524986885749767593240301438879791145883886500786155442257956391116320299113471924124985227262366040089347690001429332394420398406112847305849908471996797225710054626392856573568592620986109016207077730008585108910564023790780122283103918315416590854037808838278710248212401107671523059034017858031034696487314178182885861680784451458437396743108994458961475195992391091418033089416089750236682808415998577729522255483384126105631864458844672549529836435610677617237225827216005999586493724994173804277243770795577608122982996445967324217194932361742817678396444696077885588002857917631412664679302392054078461155524816676001877444984396215892036642794654403159036008942382745123522881293816783242633960489957867988214261356387289535834908022658199705940071154458053111868549212280007919954689584512772066556723232770318628027495624190261044194935644810798674937232640612290250851844324335946435300071406448451970615619494068898190323197923773916286393586041553858341676093105286918835088750838006262710844881301467624210049304964913816094681932267196765500534775626895897220547284842559943553418020046683887046485116913017883065560007047887356125928265340141181312897696280023781908465130246104946288812858869781822805113947690293538343893346614413823647817522057222239640871849910457433453755413750810381306925023986509476714546918102741746883802129564362822701905548862470593366529357767670103322235837130567513899104313053646398329021451471448654559260884226692439221958613488152589175638358228522509651996495426498748751445785463828354027033983954986544996100934704288532507782454991726381234288438276674645025132206319648580945639875681098358016339427738963735680667844769402351191918673336574063643501339766863317893605495183529705018543829751704686827603731369671257649427341389948901572185055672666062919797300261088328453023120123895660945261643821164148121435452900725372294562344306189559381006365277659444638473016275319114937339108379044386871787854433498802552312699364041897338185409948715855277719948465435430632933469646776042832962210941468959250619794357627495752296781672485513615544693879460448716067681503192496900235147957527403285312659879027801086957345465839277462378483890163333363030167269830166644487652296144235567805624673735286070748510078255028006785419101298024156427324539090072138145020794578664144051752522085813189823034724202553909508663883212558584026821249302224223027482466389277548778558782568804836131770058377981611580170383249861468232901127616265703431735554906249095033973836114430920597901205050737133673754486991474665294731115671998351743341878503419756100860448796586634090771427459095613180066313482682153280606771223677850020104078643871545376589852367716156335457322820934531354268409692858166215897011191101658331712286923377487195147987265284231395249313932485553564915919142813615786735235967221307979026979731148790520161037783693468842716926036293369971231218397714806990810449991079325056090187662133239782584623252008554155193843853509031253061802055901734843811711185835847489890997760409427974179643977958339393550754636543342659768933880650096475170244615285079829091054388093829750506117354686073250081711922187536688573462703540105729822475348694203664398061828019292827799389943259786800498480159169392061049674637119231610642858013514216357017310615542427300029817803820378134604040580674931512409070850309454060132911575061160027353483750799199045453098149540016911271799514934298749621602516734476224579193569108365223751240211510450420878584031851210261432813270537894121100594405784343824875803911220058226188661048800095152126228685044702039864990216766465523801642491640709835896062115738617438150409599124661810388033467665897335509189615618465164841287801737219553356591170889448361708356306556988560569786483994459773608584064285027640005300159824715369481223933326640305028621321123857109422914129998895996923081712173055390403096468397542888588748577265032989267273342867353058480129473080951536617042686635678674596323955021097066076230782703340524765437831957177222905453801389772064670619973881315278931844738194308484438433031874771505460872537543259023232865195779597147527546863962640645818710543687877181011151512881440269006797437051166664791181130856901857283462373319352704026848985683571519117481228603275483220223285918463197598073793671449716613725491690626909533094333195503268969994118548204007695313065903126957244296105469971357345770583468328646889103521582065888616698491627714377292137299897499763631419584572947784807504913581692349740936344769842797491265320267076673841992503694181200162550574852969323864034320363936317510909138511225413489813083489749800912092932841655641710626754046418462589292041574838133401403619126399447650834351975204255294052018187241661565284882191355650506882343070497368429729240323334328385360002101269845564671773981069061223345972933934409303059449655139663605093870464221796070924717942390868405145338624903778079716263116577914060941939451235304429094342912073546401336965449942417770558027439288817766927949135408282520450427539018108912784069378519033059228254612992057480530892295407029771519324110561893706027533733425593199508120278024138199850583829384674417893918104955899688707965592917654596724332420486166189779124514228616372599143478537453485659892306609317696301353502497326565441946342344111741760875706430884272401645900936320449904684201477225565510238903455412118891075853978406659428224688828168043545601337457163061526754269669104702586409572382210720661291382312829704356950480736813046386529751775316571663351516902514928656239095480398012753863902964448275316604342229706137812269375015436566308361778902836098222166555160432422171333010068408142929817089294325567026427142587840885297407139905555201557804045284293436425964712875407675650816038476095613178167627759956268306092683896441158394040236341251706833562963284983375269624336865216842926804732937464582345975789486859708864904733901691854222084736060563855576849027306708423378940167657462950015666847459572797027995613863783224230203248554361189717117823716843066077389028643854731894513096523500587331089283981206864584870708052148609164986929053340620731355369898173075373485607677626928089948740140777512284324799121563056453231742481789541108208352023369943090119498167772391359949353888288335077110119269138747331239828176231169445748995057630964727310185166992816283286626239892643649044958141972722567251834376685695884587602751385175357643878279214017513764496229605509995972523602430972096019939532460943105388775115189604444539858467021817100214762326721393260392461202641675763111994303600601566728514944738039888099310914039132002767387114679162900647994181980391336907158305247272565380730779320126851219824310593119175964591480665387195503246921444335482858239117242408156212724774438538023787737788212576662582130117559335283954995986605854048351198798325086861884393561015916973473458505033467916961448475595664256474329614661429725612325427908928427262356100924155096291873163306546661330443121876351971106790496102213274509991139122434728815433171452929723338758080936505114724516959169793884668384450758679804683266809132735233033495582560821032855214644102017167831834257406242984783355608945590427513637323824257683588828394795866216876471057834348245136613911747897690770904133162911347817468032885227186588649499254151542760931032327657644477419982697482271025809223034341268425990812289987292715503929575901049729715020156382958884729964187378771688721585919287694157387906619135482637879866633104130161363378176379262834722701105502611886540358085184605640827921219906330579395265583916178376147659159918148141397442044770042303089244261418037902463630020476948228169646964801322052421055679406417503739265812875614165345786726821818040225067800283914981772200251551134444358356445670967805876154516725789593834878241340019512153112719986341284720145726524448090733957315898312847064047828337166985448117466603258321264380243235737495841272847583278164392022747154586864862933707738169989300636861463228882516611081961567668548730216315211006421272515472135678365502429204243421884679464825521113344332262032306172900275597924891405925429465668806735264333292032849762548667509195320549037820466402727503831438688189766161601235419976532291100336973207133984462015216018810605927086207589327485677397283257844534024671124510941352273469042960836033671217827574651441587921852933536658805470882424812718089541803509704977007959000420903864902862192619718519203151628899921792607379607729309329374531559514564264209782001762894521678070269427016310822739768673771984319268425804965265136782947533610704985427760113909164103539165891704421249764152728495549094152973626368316000955211641231816448094707991902330562525117148688438146736481679007665857725374324533364761118681009388444245194809750236965327669960244735759868509534127988654122091185464106874947965774443754766108121176625462162491954652449867319917885422971087306285767463509935589904824930442124705738199102352065655951623302433970252868879883444837808964929535275904682798930736909412239067268362309341127960445765549316065877756841030496831595783514892545957857443057349755878289560340177020626996550692034544898592447381662041845851712894631487452786173897979188209986286999811997112993035969462524483232896879275523965923836895569484241056276071548444933959105901844460648431615219086343165010201591291966958131257940769469224012666256701099011881037051741634700739260862690740163237998247274159178901476554383451756330045588011581384969087223202838906152234976725287925927922939467908360495690400815912861209221564832215167426527930530773652260236888997840058965267707168461518084582018247519017867480270136510447361873954102627086439126780221357356905041704235199781870130285596300969786225505583139096472880728006295956521138749724499683556045643805325182778984119896517650377114113184345327052074326100387452488153478288501796853836777883259247437195194854384906482726296009120904432336904478660920046163371595657831039442773878747364850166849743742383793611643536844710348344044054881033104300080513425421317262743729541601167504272140205087800888529835692467954693972849599111779511548365676663854961251497686767242171860925698812960161504143407667233296009649781163554469046934008745295209466870507029138848496077306871624220330134720922908825797101689483965166591898065077190931007185448924834671099736617278693111156435172379414683127185197024805616326374401913265578732689776086226015774374088563116417558380912905780850890514492460569272263973919800083608837074773336175948722941800683265176057471886511885523819810869688039595110213761447257297773153151367454505092442898367597093332198777274527395751723226820231887429641418553710300492195046465279300498333808409070210719862980725574331501717537741483268570177930591324288627763893881745252695635657738112189789117668233316564727494900750275331258808569521382021211107266318562007744933140264172558781474991905317516945768767883753213641328355485570989541516907514154426557947746910172962770487109587668143376887898321250072903934769438101610723998743453347168625569110923385932067644588480078436253652763561813081693998140852910498171859627817148437679223866839886094735425837668938112112034469124943827294664832005007970583727760307922802373025864463484573651726477921420540501358460755507853548862136376175890922788619907671626883721373610322650362091195526460542380003277775918255866590729764766258220500926740462296384325602341776374036266259927561626471280965103973833784431525125434970949608912547890228804820506635730593285750196081428087225737581924922946932409865203005705741783069543896849781038304804228302152649339314294327943450606643982259520601112590638020650874374744113848794580841706850455888444641017091261463409119763146657224186630583878649957315334949832423565175930664096845119389763159874115842702950609856887004303455074132076628186137086835110836467314696381261370664782411463388565030031208171347152446356007385214712534806492262423790134752242491559796888232180711130404454852636207262683791469305447943811505410589577191221166690680194537273496212552981099638787030659818082202160633344986092859327954014883009905574879919468916683194573935614788406995892840354891036468067825196816046647937098898839003071864280450553769961844999763795632796829345791513635433833472342160080715184295384492011804236601104759485488633547701574071797231781241223829895717315646360343677270452950823106447280768907530969202104246219288879446201389225425538177968616137251582808880185237179952167622276471981150818091628338644800145529891513464692220478685130587047293903826017577964334567425377569042785843313670137698483686563385020174167871703051694886727258751574345407467350478506718004413205128217085056333033122325963815119605072085646752440637534348080021775446578777086945292892247129276526622119247335655071790979512133230305259108177395383715718535667984857148411365958052048617552851104207593822001910497820238797845668952406660376918331569943386071493040932597920148385077819474620016714857228665964384636554480312818013757997353753659227009185702208304410620726444726296870675882531950141925634222325223386085885613202652260535917818288733872632510500808643613009116049296552282422198289594433963322630236599610947052675863754368907035496896487494730861162551239716969739001618491202833345615105370906815164681911651501140870556358927588543672021803205513855492454559811741800631314786625915981551083014524575829629333798016214812167207917594480841674162566840549159088189371601048224437001317116256673630834670068566072602704242255914263685722589533000047187712628179809103872327037118722528400816786903299736206135694207160372176887950606550186024930838733695048568840379523885549924808323577950515619527058787485759734679248378457029264410238460083497163994581515713238168166475946030150097867046723020778383097930520781608140219994840794700554096713268381686289809961276167641055005429324453447058231841563843893352489310882590801732802360607279648619042973289163978354772162052916165717696966110601580425486757001000008023711477642648868094872449023594053399891706793967716106040828838311110616592444357711176526057312520798191081461856966861465886296643919567937603881109447385785557239524435587753412078560493793489868278697724759404875016065655382836522443696948418531106419898974827464128162511523725107286467044457969966850275480379728332465172237210649858125591146299369497901849803989602196333473180497685671733534450027737337482734906980266539480602426396284279112425451914023057561409836816779779554439341016912245928341462625515345550709564893230241954774826874727510219426858387954762916429763418729589030886843379848928633454091081555883774002680406401223613824570499564294195074160404603663820526907955330873915196025714203159472933457315636667239488322587151416653070930294822966495627537398782572341443024466490480584115820374446681912943447872545173798945702645531047745166225437084447420120808125045099530503651919807636969382266617130253615890541452134601906261291696225355916397246580732175958642448680350209299507875651403031851206098402827646973041824145490106691558175542314214546092908154674946119398966266093901364530663543485348897080503706782935881313108685787490122464830550074837660286209778010372849055200199064641005302472597925052540144328383613907584643501811900136078562944879215053812119972068070741122181839419806483514932271252323695567754942966334589523329819862436933825952679726415009523397845788501881877239255108104190601748775147853799656553255438642268391819493871780388182571276266592712950582264002922090448179415355723302773346489981198999797872113378703872655714951304439714673400937914126034136501501362515257393541277843191130281818301704832871221102715241765532415543579582164875587043864122614774211815683518948740259532816196712765779669031498172704577873654004376216429383593458523140633800343357751993749507376524681439302603116800798789852633471354679621121363504892518140627292907720634526281685551912131241081159919631592189869050607443076306911744196596455999774853588908383147714181749150547139140474120302442218864439153956237745016383480517905305745514216651635873307721356721275847915786798277623232619038752744841129252482308434903540918442502957691421741530754187255622334461644261508752715962199892900363195076738913587722894846873453957349540716249416758868970380285696411988939106230648707338692526157901470807952268715478973919360838340639698836688572971066415716143932656962395330023778933672953810963799399203635130762565139937915429389260226103503210176246166848795442952008773619287469379838044576407830631745504857945589959059878553695032117111863774194086380423148757770029710465052891041829020522136176672503236117091719338415243147109310366013520040818768288544266800731058335565485899167916701494515838722985111070566985258554786937082135725888932969787598884509912139809995732909373873973708596329955004708301036769108453755588701265886717807555534387864096836558913144816934371571521819001933613503767363341658160010752327589866688907554223531929607414436130691077889467344047529140006515134258599999701997194784761473428185921948810833244067932867069962894040125549041627914733989178767784482624327224670479380343117330162013992257815265601179767543659984327187316921309502372799546593164015432125725278055911659468157325484295228884505642631182348669281258427726233994472853800089450324375244872647426917700205157507548108606692311545841696552954050916088103406243441837810052492601923082080846652891211200735794642977649361807830282476383481592602141193615388954066570509886530224625575008118813101441182418314508552947575248893135026468537874757387046853976676173131129074056645477053748664206767181815376232391281374661990022463625158329206139396272411300080353561097029115759553445499574315922529389633288105056533911130842892809428027235168912231543597149766686865795401442567710430130770879236754810772254785933267081605938448743507582329164516498601056237296096461600403706258137094778902878223053817831659782950912155627604669000917154623509212745800609492280075683016200593266262720551207286197717146188490530211153910610184903367694984425018784873091627177939898527712851574571416134837637616382431941924934659611964801199300206655902854129354159471463951435551649686783681296053052577489942982218304059843231539490111447283392902877495436242996044779011131078093728576408257813702759360472346413004400910379125190111501597190266758024845436148855605964586736596352216540150418931828028040519932522898325401636176069533942953618336199308068173923918782120798416182363028178415349128866288828643186928839396326873241620326227497468995157146865129265174367617108394326600701868321072995811638805599239997612325607161802884848192350612122800873430857513305793187241455121160125526650111337451853221813174840007158698382553798372806817210726626060784053551889119958771969251186504316299665555389082912114633085201315356068560691020985442412970546170133151587439574891752928371835292452720755230862596356063030522670367437824865518315580309716381994956455019228975208286786720745954871988269614271372876282010573812733993012148650535935567891946655248120834917266391414926080224426632849008173496746545831764392949708219209320726033078999945257539570326978107079713905217890060651493664713645937553050533018564702894678084657378681860843910883510903717518587567384585624467504544573380757820298918364006252517200219094250566578182423238485596425211195108390409204109946180795052298215217588131536102313163163405878922580022033812120114809841686935766060130394920768691766074430506450641281899676652895075604632689738381781845854027338572342485138873916966751428337008885116817412838687379375847638327474657002640069464560981502978036951293455234726910298874574146306015422552031361706172657503212361398029623118507151600435784771760405360085250201586496929750554234967772719328420391060592147461882969212510129097688172428917845192381414908546715384862411802621241472560365577014591916392435371470593549550065354859377847955866989705998642004298774621094196628378478029516523171984211122182444847152669556390454824348728672127068155354581938061123865407296331912276212647704858738277815282272430133483179483350051884880397542574251723702051872672977443173925659191469659501782332465065830746750662074083151768941303912895750794917145422870844080864917066643361595632548936088117982999767858681570161627494786044569934056540693219083059467163725896708711818634303871261785614583984391186118181457340179463329336157842506964962233625215672696797283355270873255932283753221610120154856892743918338874436396684695495342563634900112806424776993906645940322716809131079199998866057143243178191227871504122689481824233201049899329304362618738863933537133933915252640583477232735785944593575704418204513971551230004920154001121407338178609597274801603408653228315972847399306227354023919392396108103996855963078523930320044773970127648745453564104935672240302767536893010555539302003963468257604647207000095608912594097576680706865636949249025984782532917941455050216010205156218957087948130764928113649043938988109738393157686230424974777314565439850318624682064076874167573412681774428471758419248419676243031902757054845537762710746336022965386263754183619190184224920909240543478828118571072717035622840955191788196967576951692057858294061410226448188450600116176768354101117054672047085922859679769841166419169673773836534137202128518036589964153312810990808131644104254666020184789477208742978577258183821338616980466543085013067206701394179101663137478012684563265240851483873898455502892895411283418087027608228486741268894370333030615496416546604678048752358945315136658223970004460262932916652127590749070595782120773597959841698450301855408086575353624095401846102735093366478356178546780743604450431829752862641843308678282282870302479346590985559027259384374648580948101603640494801909398182013832168438368610000283793136087828817723488068045912771694526725679365256649012333631416860512549910673890264156214487683192712432292875535909493219568156955888688141144217016521900344479978949760708365064777491184739813192325007405339965821391665501326843897570997734826657724641716589236952702634859623839844714748316149761095311574504808267973411599499799286321118618858750953540937803995235423865315915225987557356176607858081173667558745560229535813831343782817492834082053264407982298388588351023698508320058064463972760373294688218678563346267655310351271766367823159169168669098696472372243191354879660765908214264109459951118310274763660728629773605826092084869322873606931730152099933552819228264478043320317806692130600133135338849354273570770967464190173144166324159456267815982929244053504799566116246835565761280946812535331337816703519640838323496267462214161904629409964009988360909763497365076895746921069634362415331295462561698835304427115723833335027477529569290409518421052798014801281584836701716905449083442184114567460464538190060956018841986467675090864095362412137427324170218997068332419564240261778190169973751208244539558517598143121939183827149653507819350893174680664131725234791785212549874704054413149900178990556670861503142216384388001984873189142625030397133393094014799089372210642682533615394048269359619813088326477777595944652603099098311571395653331915795959132460964981828915696296481277330854007012263877150773098427168991531788777173711384775086621049497216312127593942118378187898207607481659374899671415278496362611043045145969458044371340236174408301005894830056775742188005265186321108634157450404975147983597222541584775019114752814631972600743587143072778260740840653510268020494273818068558658508888064241687925234385665905135374337725809092405012565574176801788937726618291161505760651488445097431583490067429195364966563894026401921875023359129401583312767110790746773614626837982719059881257725631254691141307780347641434466147528275273636732610079357131945415497438179697266223684987145933134137311405235833283482594849723703648744760973568515261836934085277945871345416808725016317358211121647655195650058934368865735939676230278284369326395951929564082106488892931697088899972831892934407202421089781617460421151156857312899735065086733478883310901337624423569516492287756559822519238080283026217010554492585212367221860960973634892436857497430339687126821386576684530948289723252881198650712490001154243081839135194322974139696951335282730139444602515473808996352150900305350289925785633190443409442434655708857021220359525488646983101675030101131657355877845323177814842117555134051434788823738839937835367715746684807496418800491839303892138480254733549710469603669291226976940327908100316198379248962478933148142989719129280000291731491456270521591132122291986337546585829787039164091930764805279074270668921652668264563454982555089470585940568486406463845543331169778507881717787732505709633127547426603454285642606164999966437046437763376231937228997759803338342841278464166982013329270983700030120493942067060214374608471518110660895391942760902656230952379523716539507565155035699239904532344064313070549647049186242671288706952889385898583964324043468865939296319240704917584951155034228417640852624743352070869558331105290123150974934134814299594222172375272380963042635626509297355674592343396149871249689552469995551552281255043929189368134212697085686541948757876920307202958610455333725058849138043153760464981759727723772757570104030092686107134768821207666209296943473573572312275763045012284926923035986149509687126109450766484891592660512916052547669990088128481416814234116509543871606042256765933653930125401099003728654708345824829590743865333425055504945641892063536203070653470535975856537653302825138667606458179325065394067354103033470754376733054595823424482142203482724361557928970883305148782770289945780533077620292523681287560361316392698856124870933179430196341126305519465881611342418346866754460559264774710972961872168683133196216241246700690363099840022494911131325489338529616981973056461258431918278007459376203016267367532332581216390455018176908479816846568574145729457728755643131562629758121866098779220904711228491981182342510167886132846199999442666317360502003892182466545111444183185498921518528821759189654705037421041302311495807305132557298454836845222305776252951638106238295134578388256799136872543162648847899181260437502543150547363057753917594368640667416755103357787106706676659809434358898024237811960758540221895671348623743687032866498971326038090346687292291132177310054468970144417377940845978410745145961220557226808005099949778479719776055596985129125837297423249029634513441805046288766210458194375957947338617501787634250785418209911815892843480293340302616361310735424805981880933007274538514157770027090188596239938508869495714109579890685559719463016522537673999863310002626443151962561907503696273743491638941238924004878550264646750666503717505687639202413790775672493619150663169228127482607111540980900250616046847755699131493930010687488636496347412999509139447938599215932723482269517250956217081587233519810343584338088285930247826392612542945837991196382874525389539974894685269835566891042732754371992928629896097778855976489406345084929813129878095286900562468390779365323933673351550022815439048856584695188861349620101127951891124885982811553611187665468990796043164226524418341034791905481853355524510236818147037887564201266936735879952036390223103287787314138007766537926573330276497465976064088622433471844419285646189786428147281652317747578227961067830962977439810403910659750711380122693010325369511878063409375217684235415225891292156376882928089163376777797018163340644342796068974470503140802600658065068252006217279011944884661965967122837126783778076205147564644167768776986019083302193220931708966384037449977347964141272778938673945467495670447275295109502424694724072740533866344916496498869441729683798719254728743803158786298496178565718069051791284615286652080487877303867429606057765255083590705004068912191861801480747058565549819298713434720976039464261264631244537514045364968665191946194755188062218642635965235190374087383665184435386406675842921898821896585039193309772318232895533686921932035494313018798348067458499180270937276536736350372628885178124665639093964876794720338744631545614904738983582426312102120324076670043456809089169220263639394916520451706724157033832608155891315392661533280872313029011017594746432419228903845271408925193706727157003942538593355648361886646030732233788361791017040085361266637885642991756487376268249446861670196377023612639593287633811990826389400147518908929367862197726960960282818921859536773159118893526009389806840523483916890560332129790572831856201209109784929045410931347852609597608810322311045069725866145105621716993202707129943108178054777060170824248454354400719420060619391820276480961842241234050324758801894755690063123422270365623834219029982557983322608804786388982332978304434270182549220828625357789873147151790686779103089866787580878375158880854309579489458679897786641636687228847518402296698509743658554623252862350485299239851655406039936070935131018324164246802951126021155585670905744437693512929842402844712455356849183587903885698194364648102109638210212700819532845496382169806430251848382688113568686658285571707666722719286186022428275773109080720290438377986506705232746977794596284282917559977746320965122289358103499635642182813259687945781566576807181124344359089259597923420107668429193829840914600592465661744519025087166200351977254043525576187439837129927876655196320260330210785325598365904617383106272731944495208219048000368198029390726838195708798365464433887622481795353618146867911178209859904020138825593475402257834736478028880153559215285599121081966775213981071112767047028127912725889344436493839950342097986364305527704205546638547574832529402914044519931533926521106236170215534433057025898129811347356341746138532424734054073653528482495074212848765392896222832030406612840392677311087459046758755292070209540617660967803918731987318909434970512037576735385896681312631273648084263085280378714995033746921460610963462866521107289004786689145060346710036412595830061729418696005975422582494987642165317403634453182109804982249340661614809977790557621004497878559276820788962096543903972752405612417355559292028684771635482936607980611856159658171571229141861468639536659631220812522664726343865175556904379500897804172888346469335688960304677526232317759911448388148618683528540894564867803197373706512999155554519869241521897004084866769224079048593709192954155578300888767369269817407259191968166099366506022198309453775529340450378256262338520661812697060823140088864296328355216564595876314357051420969289518663168803868674208567891158301554678533862041244906974363352679519242687980145506888949906119370635782867850871312009210387191115829148765066684180034746945040232229131578816761938934439836585174852734691297590419832129094642913602675797517871518603850780241028906199584733192503614292575974712258314725600453050873592502227156317716589046058110341129219400861143390322138466678734395366054094588331601867268881586308736457774129073817541189724995423562972401069816699142030246228037329293782508272048125623820342995808975740455114471674382260567065397355635662586952302690483437006703937388783079960971884487153889097204124126289585854332470938752388781397282670722408898101396356269868225465318960670097561095780602165571187923106086827134362589488874526594849333932897202178895217343954742361157763659859301365389632564887786071325587098051990635516145305184715105731346126640408541171400333062839847511025840658766594235733854672628851420231683839052073870365096742227453690063593454433166748043689163305764402867961549426805627268028356637804789619910980159211578676263738493669071413266548128359041797733942726983469876611251608739766325958323777787938703999080136952374702502864773813258325347283989845257388259626520298167318173474485882330432966727385660196446969573257685318856085718382161657617868946425371994317201356224312311390538738056153419689942838700505180646582406200231494115360267489455626479231951116627048698071808886856846084781620423288242771370293265115383994353053627531288441066002128821241685396004558797243737777939926878884431829994257740921485589752517847821263210641028136563591089771427288254185381499047027526004230777563439475490558587549756451357445566689615647468457378321316499445281967783769577389136134866696774029198435013170250288544142639404443406756864788471985628027006016188699004899555911546605239578639954981137926802560344673827217651351438100927428527878893217161833866501487180635793678462580469523117118400779750120401961740244167059025245073859602384283350950506974800866815287326673352051350648802221518395186264397005134822545309724263748907670489619896495168693430697090836142683856270396227575660764933620474530869853751725756821388072005540762080116181870791169817298511151708066621007906997121911360673298396291286417872597158519416781998403966131739863149198737856051015639286713611622703880499049038603314472178390050938540559173748432862546774749288705742248047141912754335504419667132435736097284678945672748717918997960475172519551929296310652684951587469076624482948722824091146565908152087348511005384300862246844493995205833933782087508048288673271773629685851441951308569711469437475326075263308045655861557399536273392054621035593619006977989335901826147753283300880969840047045804384241250069508529625353652537247925296467052207775951772115200572901537460882461962549446816707121087982912652800940234941256102825575118882951566614997554381946601600684323473320167693550702703976448985793401307419211220713621423390618694574053971722104166646596408550072596170436493280083874763447051800541816761942774737211415815368455073762853231674512069815224095201521915316154319420257119937606958764401948789694765017307933411430064654636955550576081581879580086637712150598772967006581858903196665347642622996528091529910348547579587913714855246314594722718549839753793887582926397779156379477844676383387659102258083059671226420563129709829046080259786702102555943990316030350276962075119089261106923935848451614148773202889092878372025533161496208116511990409007511375172914435088768697040499104993982872468390872138300354594564177598178895505519537414347759111707828221414709394333841565482110889929994285595088772739019204659593181090799366781796039056137749924866937589901835331038584446431103349595498869252769829108843419435155174038022975101121079657532855015704895658880683279104475315534130495974969687203764126948700282515470608283320605518254259989258238071898289288821231732804828544756207688642583878275324247240037313694644144628070970565637277225755607263443286038379474063392876837720537855932580618198729139629536359002765271224098404986401037304233228878033334835468658378631788812922217722741585814922543199372367547992004481924890053682569346957916019809687802122758009617827964968668506705758731264557987400981441971670439366736629097689114469019224214883380557286991963412716005603481024811790191632699174726920229284426376046553489970619160243609561066898855962269424490123500311985272082317114398905588534153228516206801054425111067355492204578658323629553838711383161717823693119224225496694442412075932478889743680083026311940789918340007469140704696489858168454015613185162093385308545916844517792217455414370440129486784673069661224052301992373245887170747242594687839960668120357446853305648094747125403702949150246644544655521356005848559869856123122678076011681947787191422231696447849208157721673860003159221311178374264237854207410639272414449730814575127152585366713889405965465508431779252984709621388284766244046288357783468444122794677991019330194341533924186017512454638686115029724297223029710778813635465824225310873959312634891012827511500451341797183509864585673633375243702963562152210245244143205109066782739800694412183076657252149802297066246446576524439252448372152349341410578533744603641118849141112135490888512285442576984479517555912752022298941597387764909387075066639703509289596341911409921634142847752251316826436880710024828104400596645623449808538802546753110123848225680666870289954465226724806558807971938707065864542895225919847257954285126068181800148204620887232318921301050371395769756396455647466185569922354149406517915067080289580216270742116726173394277620807204605606856946931268817192370567461448541667662645846230575502224979852909746480983416362759556392349748417194862894188031281491173420131243787565437680679373761638426275778708309851537540035994411245162190640265939740377968892971495290385035774980758632707912186560765771401928237085992490034445263772644044104278259172384395689282959379131651947436568312239949423671395016062300378796635631757766626584891798924670453391394399682501670531863466851622821453027360887317421413527108478174830099545796710063516992736030370422484809294412099336788127168997433008096447811899143674629552354761735869020697682853818547969809936881141391912097871280727519239060550163719041818991136426776052231160072651521971952114018395059220285554153024142936347377656625476901955085636318039517150774706678598275571596804909141440446202150049976391535722873464234980390088062448519596985340832107264678839831722629767774198577271323373786975622003771523937604328428955082327285500365351884595530330388519778910248243389451733222196229702439755430941936364802507589165064134220617112229046092307159756141485746586821293894208648428975266872253139453696405208979389276700277420780934682637521655031291775144357020705513078721595231377930974658332055248611307096455285200151732710673927122654484441764308456114618636006036412066894616957910591281086960122199097656231384765442152502920636710420017615668534158621100321030238060466969747325034032383124338355506907287113586191313531004731935344997853323198280625499724238599104353101771537015394736604463232883489719387401801740166889177384377852599383314594229153344920340813958652592759179711246460615520514698754034168655536100988370441597495505746983626020631519409871047474045089305783303019584220644334512198469339443915963837074990593590956077687074192519296956089728597468600636698056087071478809066725751278512218352948296571304177261632481217983599898696568663747580355584057805761565341981901670631219012298075850750394021095144875731719171257732251508331330745571639248677575661904268819370462766787209415106723703542274191158305469154629079945793811282109716574711315911836741137456653957592082476733697683153802527525946700187800901497680402522385132565572374230761459240134635175728208183917430416663725252768605452638206175088044284804373760522766932864195623623725456857370800100699430586530753113748665539107272271204959220555692070571301173115218995335690335956670608168036864985264497326151033848344726890218266249409402484593209285656571160600071337162735664105675072875528148038337098429872100035806852223082274092267546705280597733252160968314737589973236105716746594208611448732794007697896276904629493139459735870358541858123101850097545668109879468848706410005895320317020665021591423794266883020067869526659555748979117717873495732861825932405678783228158437657965328843762908838718840557343001516158082647405461869769372261462025256944977628715864331309699402449513933825795343079439141758341674927734403680634295142362348093280010696947800232059227003850469608936576164919406025096526511634079483615139666017055597751406637103181830333235188653378513340167148913733634717564482795529268898090969912195990997120646103191597337162169476187280707690505164415471383683083628516119994392320532112641663296707356333088822392989862981494368588397048452943210790157617819117678807488939236594454006522908706671279099813853584437996514205122624695202579979714351144013088287510070921092413249700810386045859223798064126249496416354368311567123329570988040541002601516791573894860108431921848464535940631951889662268890402409008220087450830489752844295754299916332976322319144647490937647546169695923614930914215690441720902478902438117568347257454837261898921816731317460789220509096934474797653197534526596825711789080097630286448354262150755030141164810744079220759205423792229981316472612750857248934721011645455386184461331137518443223247764631508350512598317830075129878522499407854014658784813932052445464947415679310309508447183686940981956733091683066731533212655178386012604930116753393626427228479004287542937491259719868794575423841718165156762098787437198001874630827294501708073686405131739405621809785202447869119898572519904717606635086802765964179592826800656598859615261034409815581890798304956694295459534426995116093903869713255909307915389775081932404465600760141497287216051615794713512871211816095918342117557854726978518922155093851796719774992185423281294131157711874759818740486492428733212887596884014285586223229708244809285333546807232306458153458942563807358577591123763514106229388593112900222764247771058715236455649910958539997222958382659599716642060560972279017546666354830659476000668781928279179824350198809889285219858030871913632009487855452150850310886960113556639652830983996628134520067218527326497527942639039275800030168198692578519058012649109288009358467346920829852247092415703634639272406885393718949177613450378718968060119431611082039348522618622203311927767941849093834751387209106067761479435196108791440674480228651084140221527371381428589535009518937937880252784885687351866957886201993090798107309689268461756570347997268052232716399029418979370359314850002054798159266726787032890773317997816154423490408968720698063662193490753254880495941849277840761805609076582793166328607736748679244676769156464685413901980769502107726051558337984733692625482372169442996285380550461714039421906061681737912125350335571883452169539028872844842889971717833190510920210483336917885514339031201728011469349328748608402005275763131438714753472697091975273785774626020824052060606448704931790477302244908674724227782181036923118320806434159004291527078600450236451656142378448036990116901067481773635209061232999622623564665880116101159807211040104493184328665270905690452816189234425600524154041473610459594907885898435582608986165344657663500256149779385759360263145511362967430261872211555933060321386145295853756688808844668214208744864758686653655528087671151151864504927685349816583342823440669158990672608354565209148481818802006911953095444229436806298534160274831531584493211589117168982722192497809401426807938763128222981003668260975105717524695040296084455408065707812845782971934576477505580394694241456714976721282023551679146711290152111677447743005918095004800859380041017877857337840659231565364253288792828200016345658258117087015556620011465926079859170283094267989239602419544864479633230412787352598422068123092985826428141649420658574498025247071059358041753134684864191004303947452139986176974341669484915158095622717629834149568204662930132355940243508952315062324250001855624358695464541537970829557614515646800750568469305274712658063730444111468538852545073887180855996381797868782717138544433364230246875943409321450694834710527777979268100682848719649166747948086225686139552597150377115267473989318871684407080163058439419832886271208766321646176193668731295667248799488698749623275661728107829444415726837084598300909032892724362003187246361985600557474205808751326733779439151866272095062739389878721104057344319873291868201796712391561191375996936637761120806534947741555446773583591501041763015422548863131091560804433120529421762110275787048165883012989255053794482156878531235751152231773674550945064080782520946064609788313113052031120591804986251197578124330830727655194544340967709706620783668357061947451135993051483689067260943884027736370930247936011871732743769168866716192025767489261719158743266047988049946446155141594342797784554099741425911598656166344571288816060163319908939965205422399178060554870171923766986135108412972003111232427883585429577182374251228068279341354489746090156966059307558932552244412786546336745466070419275347485296074912898019426318652112513743973220800801313457272886567009329206133389821795875239993704803645812959970298001040939659734057960986099942667337799556091070593813745073883150607356912100657917322750728687499172971147682692142811480778600145680165463155109952137917114818204775878828346162425222368888953652536516179302405538542565942349112948299414189378652050447438591664883212831171519705549989944936959901108863039835543998649420933952071783606558851121409319366840696336578922232792007116340941238517117984396017115930196836988790310975635716860720780770369261376557003619060488439217488881101887050817145703219542695216551884735019712093124913229244806888188696795023031512862370528570213424654475365556123926001483799793539123308142105158049568829381388673364292797220854101811044174438600981926063909251895302352147002317569301843788353516150016474803751622965219134805825520027471214544459745509517470374921805316669939591349726977306140261416832113661094703268517676450098932566306657482548448471051070031955253618934122277228143698090866936459912801412736027204910375175653111774897554561649051690962935072181891038802135116977289905346923200925144945063289070942143811403500067069155792394803436567809169634231087862142632562567909476913489664157759789917741387129973063118716736039884245688183249842003286352815594952422672314197322279169729920604929934241521548044401465836436530681257394707875784648312634346174035817347427569693876867579969744630568382108363583903353824785801287849011513621414611715746723412467800538001509813051745890780147277732941751608440530574489328625371839888868494802479204416225709161466112430947304981129427991491437564821168002044412684828933841239714986758756533645945675201924075983235184659342952069526328097525625457355001927974072928755891103824338319730607518718052428730077364219435350476484468197696002230394769179786938509132647203303247842914327294918510212744775674147333372368705664243830182810347627651601721687356847994097338829220515462619079668178020465841628153232164166641890389804789912884241645222318224385057547962911574989713531393745451610849470532910997991614341273163366609147126706389779208922664805212399309541683291477216492915484485406953182577720036999543874426058377553418782448842744214459740242115656938771804881571228746310317681689362943455335382014829053566476700135942567276568597254832232904523208564855703445711251134509558954045343105038951336898670980706691579258984580447705148988245103577127079606859657832234679897460918213556125383355100924995064906744150608811495997065223537977597217832369777400871759003175816277819409859084955719647247698711916332073871151598184183939051688881784164454932177013824528564235576695628279937140555971210277666172963861395885140627850562341543018708231669814098695974872661748305240535814443841516140186175533137818017118464422584333727207839057146886926393047456106896336062580118955388772130034726258340170613076374067539446750124211984575947934651590678832705483845813819587824353204008282427345905586293857010321625791925498769718095193034319620075355284127730892442519011230617028969704699309379061409885029350162843226598166460641325502032670861990663039453604022335448154044663600854294084101637931873697632927844535351695733577222736088679584475905194017442778130875296836146618148424480232931507884217763291567950827551053443852156376401859762642059275689653041054722944143599032594989141041454763298916560892649192847484877850348108830287861650083820677564384529604181708827045305314919180485674777527267191594031490331401703437832892995339186108080712469195464394671687227415916225537116756315579905019838500842525633165554042548427110667624474371771442021245806323896084407080907454462874763427001504290971299607574011821341240221521306310736287420052008840075368761644852142977552472433790857252296710083008444101978764721947570844660518675124634413811527506064967691312057839985097593212179384034643210812198762792783012045406846652801030206576475560364224077318586202236685490876046177760172253259312476819758128773182680567431584851015451475635257727393400871738822732347031692620606143803608302378908453538765139669012980625465052569722944194345101303213939496818465737073277398811332912114311774177610313397168218658089643034042304006148232076339643081657817811165455070822156244519219195606831360025545864633001546254231610733749189623418420724501001608392595139840357749310632287423762945310444289484733917167676589331238347863744826964240579102165792465136997112000155242124810019545373388805319964377202336476829682804567347086565360052732927776202506730115664824324474636938709804876981598597685265159217501409958973019369649387255198361683654160415302779532515111434780425923448327190650025022931462306925452575912986237164451456253036570239031431804313622076893819969511201552879376114556275611839283313580328823959851057277851966166591633749252927424655584193903944459107121141822450787619033680566322446077709913737666240486327531156706023966037097617635222456561908338471438493310420298989631660391149093252112974088933398006993379248306511269439422233759569550601999962147161727849810318643274748159867727293207941025103993130025331575930077618756393491104203015801465262316883469161733163517605227221775275763389621042370229405269505749905155333627084260987347431210382120515069864774036777210987005275266457327032966419896468090572160683400816459144986943014162952985771418868983994784844573017772954978202472547040921942134465935554727397030528041360396315504612905630482965563275046327650044437277371794522780330612395817352328825480688665825799819475414499970450008555632978115599028557188571954961949439075049812331475710977567987784412792805576291842554158525076122106711246768329182406681635548646034090685511057183449377730012396151384339734644342178875898020275978927360799611981577617648724519134421221733112427606962171924989113553978955818974045294153846538111733234769445288562343207731609200473186715981979801901814297516022344390627167987406231799708503192714250220148232977342280834572985685292221910574936818505851616087217675669125746172811845647465104274838182996229300925776372569707287424767017410653876629398512854545732345522002130173613634868097328147575968499062543921036465497534529558637070078428956077127872755971214040859698049096754037635836150130548809672366962282967217595168783858150198371598651410688427968251193885027648495148925242665761199484639958587680172160473631558677247266372885696627923063977920797042176819493923993531063327091060609937429475472996135543038503483420476292627241947710214266644220599156802085323229284314935717839910143612120030823863853427299880100715497390634074551668056557352949596769706318280393866646255951108261884319446491702887217592506674340419542119673256236308775928701365536479720616051422614044521350124815903603657429393202869662773519457864602693967629317527907192079051918092168114259207983190195030523841253603763527587927123623319603344646497110246406489021495885805699666949049543797448662504793267502666195128508058194976695616780660073860799908524401927799880976688490098219128822011108683488563176915851493748389573623184382020212834516149077320287935837058485300309383887181512022982130319034812997054688637988289598837957616107623147647773652058221535702556266157848766219722530416722437404412717413520513390519573306698464771158050200575149286049746687823639714890786498675871670064645109717929548333332770511080261640273458737360708451885180705244847905807981685391360973122378207595569416952907938810313169575121869775174073601152242398144131177834067736179897843480595114844503512705346746337814526704102785133743115421645369688114883370792463019338228622529268619409145910121771263144696226085548826110321106259289509466360634304085481319583306487968173421925199631988201960212744854952216513222995761797608044812541985607520166774716326961465228437804344060227339290514940615018053978049919776199653575473482788183785530225758304372058411295999562608573164385866189769328272066056627302497430817660825975201359390737540530621244173009575945424956285624660095401747899870857306514983387390602476252604181897604398868471383181752322969884404647315092781874539431024480747673534879217487294227555298189195375386188909555103440496597435540353876819311980633392064981701982793005737856669123453948833264024576080994881581550412870017631906227183209198014897223876494401016418265829130616787086842227177229639830086681544624606151206351713502062199026847426927356380072961711822379551519367080830504906955680916127877864225147962547363018863964190492180665204557600623742137633375206466496760047927511854216657116501671849351889389311641814429531093429697345744546751253887584148762990916344314645124178797024520218020755949261452951339462183424001194674080773544428525299724593731972029598395607002612920716296751519933085406282574127289187011010897508936190799410719417957583997128391157385177688089514594164816608921035119789142875715594810333923994191349232038815757273286046951440865173408343227867461296233973572762862164081186908476019053480088955112283068803359972162762510787062260020115021936054389297482297490738856643422851690954209764895256843817274992455492880304544928240149356240967496622249242775670315673284943019276918720302051996892735359605492807337480394358964396654131522376740070494728277661857006915585094211545959588745767246683714062729955976838521339412979246629423227855522644763835071308862348338704884676849159170968950146896275018396562686880257974560949881729894705325890703553937593664417393569716475382368510439804669265769696240866304248150924506547534059952560650252665422651967895712655428278431964440477707572633300867963087319952688984633155517656254545483101881795535141768157681991484818170373552923098966102912379049526081453046344293841958973091045356284008078162433765690163190141817578703030154883484040604112025019177655940614878433878800409067938705038093778899409730649580503783394957192343988678358703388760760366026206566144995704476630568382511595054628125251113562614013295290455659375202464117502280281572402033536081732752491483439245830717055709578381657824329189189783959298760468993993335350308345892301717740221847195227168954034749561591731309080191596071483211796097541623476344567487120793080426765445389315974771158430848233208513198483215778185533008939547219960213832630928177253844532640573954359638081268849045123637675072825208889691137836669107835662164005842550654834081457596554658647513467315342072287157118125778245862498606502800885409933813319648226849629400274073146215040631952598806090357682535233492949126733098205953540247565564870595667142985325765789068470454203428043938368648442443306212024694762897546219603332802152592372372422885813019730162833789042528291158275026482912537133320520711422457091687865283534823388793398657636792830818273725924259841229843982528056234276355929824926579245429812321406480512595584343792444209036572699795047860855467698493237092506701818987918516731110005704976494297816652329466314522895756639583363310649887457825367964754345032374562554710805087126838792290624424490701185358998100337480345636074077781188917076056829867837603321157714662634006919876898797054648748544081758993012110694834260924539030702086529039461652855504977522304869386091920717843185334092955056888403483186150503398158888240888640909438135958314372562479588672688696931391447219018197454243739019333182995941791459959304171305018898823169346613283091017028110301411613552079556629766740928930738428874453080028415283333887866082552261478925196813507430289828335051905691704422968481427421278896503670296933676249095714358258310607818302562896497194981784161083535202832852946709415834487059238487141243655352575146972856970640131049871422965684017872519266995510571892452235919207132672385373689547080461961116552358749773352882316676256887774422002150557543276713928009307957285035931739831005181848812497749198524539912232822648281455851061778734436527704384053383710986329447093295944909834392463414549906773874288467229642389086622793604086931425649646324826414357742016256669683290796410164297017441508278851811752073002987379029877569185683841268526806697043000861917979252860552563744841123120254695640297234593877202221406548091683835305468023649167684766705644303016787364172534599933997776566769723894905525050895350140707836013993437596265321575806950318486610215587773676315872312204691076611629934378495905854643894474128932858127173918396422361035897751558135514366976924824163191214063833949414873702892060408705586853288851093866710632086416376011738008013276653549351363490929900712302679110245861726090479034023720642043397322485253863269344305434653510013918844090970212585537334650257942047367237123854256257168707719484587852638051159107222653093013013415413105970587144939365765390960461579390395569155097361207757401942388056733063421844087869290938537357374550194443943860289743548886348225221793629280230549972722285994257763565580406095257655608464595850860829204319888108848805534824184189837697111111688911369182393025760164610843553020254270226998580394991091394143744311738463167452855848462645932540748794500075679457891983623492666859810326728133708873541938355281376099586150599973317895865389638311721825208644101072537715779136184214773143648205937388682997772611267696503935511280097043909255017949868394770524560605617496565208369069757879162477087054222037030301839050562967397890003490743142034292278045072113005556033943401434459592355624087230270543735127833721882907366441980819430515227106771271539895345926455652185174909453384816676525275703231166153744893864463721219025450508314270471725165350489373014107029015271573540181992789392712192602257278917334310427452893391007509269776110207317774022637176480846029897810963163686420501882069240378745783029325994305559809435394182395935886199381482239384495906109534577892931563249587945374018152862140649059849687636340270773178071056505070132865821163150028769117681521185147895760241728150379674187466193677179570618791751388622727388085376992473837348988372449856449835697953828294275465532236506711880727379488088794654989069380800444124203722702113183348025806747375543020324044066073742715044927510236202663725488169405119008487274989342900015961192094582555695024079485521154229947337635437980137411941091890507954785011780764058079682652210628527899723348811857050848040447378533734162389921315287671818323779650265941239230110731807890030259742488355747477858230816188989850164991230540282819849071224905552934597928280717838148132691758906443790860284437723705349429997484189995112706137446092821403844111901756957415458863815445535208009848321467483943763091806989118342844473720657697662716850126813541477386927883798155016722428098553488012415269430604892283264961699566030533933260492282442382776155994725766275855454477993153132223507265599210291307532274594763866855176827565531777574717565800971347668607139496237351631437971684532582081578417372648220732077494258611671162612490148306376717973885651967411512166307803919284880118806111473712951237420792532355296889499978824094870832372365448979100315658699073079749707007020568809181197484098988076099810912394620759198149237088842443355581622084776454785576862507883963034917928534447793711721316849521020244693134820519818231295375225028981143729957214721751602381665091564115017011764420878435805670209161034145276356333101531870180483934687840753212875473814223328605593628477277611664635982732709819247994298132964714497190876287474164254095732563060052307317429540323538153819275259148824533531792612117730973222133103233647653646333304048233431621692093238989904767098845287509429530078080847383441787516681011071202076308857130367803588593536289297843194902154528104460972330042709419433354191762123507000322707330527339077742987264057808167634840031817113394649832745587564488972093440211874992248726197755876608234098393352958264092078889503658859606858539560150161839424407441068474225253635199956114307484688971537772246039624923866547613109510842426118565863025032818829257879715755455629788473667864528052512083531721370878357759228522661026061797626028522771089444602770711398539259388763875090177468603080389660484979734223209692724974684539576474669351316155221251142908217419448220549966514667008753796553083339837951101131945542886030037749977457624698672119416783168950356902239982611486444425399240141638928958733553392019617560414441982679640281711328845951043285584197478415102400654926900752468215272452114501958634047868370923356080212575985754900193563850094908147839752378099164801641505140448397951957914030837067656854017105247070192789358997009096056169490218159504718405411324401629642007353287526874131148558794705401927385087789503374251053153225786567572226967809774538109653922854019420102835185363063461406138299910213588721581847940884522721903100715351380476557157198283891042370702309019332655560331798450683583509719961884287682293696928962443039507121847294671525657071618404633458462201819767175123593481198150038602308013808947114416270353729924079130264302003038939668222829670902195408157987318386654875889898329861592186093141487792104306234322045198080810216247705549456701024365748438496519784092215441029454196138300192193929026294514298932688234084379760192370419528191131196828097916127851718034398632413504951963220860834715368956485587287184375848935631812343368511703695549201766817571093643852695569719078823107757977121937039835933744840104554627386921411987142464330140616122556242909583143347072223980907936561553962555375423004116772189973428064202312221986560483205626123297921420325904490370951704898608501204689501094630594693714986053719940732526128682166257672030310622713457608343869118467259158131237052334638097471111155177316721561194914452383340541779331795934175913477120068521975123304759552035890157825584423419567304940047245184247437665187416946884934735735924459202829616108865997520215480380235702884481769448702631600582266537389059481823868795782984934669257450054412534249735240689144084355935482257204628428535282779003560128932167714975878757328654052544130471982376346208678438093070925924058792039805337710627602268531312988927564923241506675031752838951769912324836620891535712488415843338624997214114124368874656641465994791692559633628300800073151646192267950385168177557009043618115621141532331388692240306927085063590910528415923452538702913244144298749427928339579784531636960831839728850910611550229949513336497279148239578075771609673014409248775472096774344309160650625519068231044774609358396535876394998669751460919558846992170899686676028583537022349841054619913217188260945310463851363028129259766776941469717146782964264105539054384800448899130019553378028396499036922513175683981832726098887042327198273472738913052503711033262819997565404148374206616394037071139172260427686918980222609486448834357692675048090786844791468839411015912667607254376895003032101340267615440979342141720968031841844799018291747240962462427595470847954787996001890484303435798560488352990641107598776450185355192388303171302235366257983475350190349213622127166550147705599485191681375294161430241443332504807384295994932547439699750749882796753858638989320523291585229328528797949337443252202999726740653882581147809459877722602649355995884680131293610434269786984864272318277130983898395490281130258686246306691263730563820587951453845069789353307807052086331999891140191876276275775593091069473084391396884426596894515356676803002447300905023827643657058937881732120856083569865221718056619888719269702577400361113871751952075460537561153125277219325204538962772556796110523027303991186852629684786342112742050941493863929141343776523033415883602652829248349037486066170263353794882392482456898141063742781779607949965200879857735954952582820239459518240126195914120014768634651560034285341491691220597713090187081617314459615238471647319013711956923012015714555805994873137140086923908627891075825448956436305833678059350599397515798926071532275056994075715334839187218801253285498499843252286135969220300432532590775181155664353591560175826728107089170806061530306546286721671865871128870938026617150274968504226453074511069488766772392968515261641862520547002361431722389071198969310793787535011107870973018416822745520327560238657046446067224908417769076904657853537819680101948058924524954879908867064824987284081912679561603764844921220220041942510861223621179356126306774868808073512429716418318852932329328327468072553241569308118206085064473948332205008609305042433441133495369467681654642200635516239809609836970092718899145375314723477046536113979247877930583086734000943380828080302850664703292031400170195331325692997254337934867049780743396809601358966325995004595026946068003051268582500286145125366546577554770467647005698018659728007166728434416195216537550192031433547626709009485729812487251446049855748167963341625626782886357367377950196750240125717503168863582656850061778021693731418634586324173062730070892816483067652158709460481379094268955535213375178631305874732309206287623703623418991332558905462647226486404427356714493856262767287930701069680100323150560259928788188404005722188163873148693368746742087931924576447574033905872190861156681772098179225893157963775046814838886983268711142358942067064101980283212426322026475454210630619067168341683829096836038032560223430654314173380792877368350387558762806713210177515332231297852549497766653700492016163353431305779824367229976260710497962822785411163960393712257175714675451822392276141013184305682437473254360923243363423751067298350394088492365228762208645706609880870730959722348357881673276578704295505816516113525014242598904763993749260125162038462395629078248871511104085913507666599279313027871090675152413235600469070476887178963333254614342412193768617548085575961801588075991436546518362120831034362625509528775909983442121169050579178504503348239557974951120147237438409359678715994883696531786342673399176905627234741544887246252599880503922763226863821805636709899491861329370507747886578075637230373175570674290041374981593331239859680832569231097806370519849528668013815641035212379491861369631443023185836942805330907344434720341790196732442052656049972384111693704767350166671086061183359508084104200954725779288863228627175272334707134096308808848775024848457003282436612812340972651708571086652478307540585118176022114944650957181125122794209687269195685855481756020612867331375664188112689731859188377724060061854253529648213380007906221983086036893566682832164789204624592991791969242047967605359246408821103447344807109044235840371243028378370482545889981760758662003778466032427209283890579106004981162684206989642354366954376328811149668364890165291760465372345838398752599837654751562102493604602220345782210111113306081704163886206968824041306210530673569678355160475672351778787325636393378482476708893093995250086556954291886344459459070755208222786197323168150687271045623461969551316405605961368501102076655457117637706920717608493646572757193900249022401379959758360563297765246332150575971411076800331698591749912672191971737510705378648391793217849633122188836822289803147156174740742964585562438187918607805289345109872044628296682445021063001651222417237946465934238073123465001598416787105132900714454961893896650426495602923697693657450362495642777488830678038031613114899796141580315645641312257102740307150920264882248673289568388362179357611563257262549233021030742232977949000780472005047054645744346220492333774953297418773772086022411529520068077126660170295035095809206318678852284921335944561205747383154481839118887619652632260053588381213320982351970632371599194869525798874540990814391850632652557611516926636812833024925048819014826059224033133111858821292215916041238432905090439188702218415672386903209317298959311258623286873769259274622832061889110293314126602452135592062789004266820524458304792687204786385846013494525912410835141433044939347679361580034445218226642977525873258377936281810531285234107234543467024204781595194688526200477829664059841461674960169704452832382777143725761629492477047078052675943362856967073759621579366167438622244174680175500551009023390317368151259497705984600983471110412926009705937422476554949819586531323180144461592992716592081288870251595415701601163213601303373664098976162226813042481746601553026551903066477633993890066280399316944108790946703065848778303034313017184470948290404612571540329011764718918368376718191182419337810161472758069077812270909654449765214078166130880480461890000251529959603784205324843916821578396290129018900867157960218183803716384933721186040803058891307788273826333002361715577608930898571877752661835064834168054021512303336049704810635386645462080848777909181563486711838556315673502597729483121595630879044563817306679075000311459574374750776420586791313853388308293404890906064984675234767725224777798206330990245599921455445426636314241883771014999816870080583699543326333539243257499644072858380412509182170365360632188483864251293608503012225772330097247035210552067257044331534345271993222337912445214072862095748994193966529869985657151372708497988388226010667070946084417613633668463250904769369591731577486280599425165903030297569024347570983862017717136996567144370702955107874533079553000269251264597058944046568389635777167325448145012173560563550265555735322576201115193862440742030561710796864093377797299156502728597924170088416409328048358471909511682036335339484683536814928947140966425392082632226010798937673880366298303770895104319483091412482717533715043553733847082027722778206860540858687932671938423265873333935303128396973960294314652953428047131040604646251189108134227493735174584202913781423143345899419162612254552750241560926954944454976120632003772875780522499505793907357200878838790946082183925203817335132616648019050871441168612424927647326139374997636198792452269800645674749429094896115223126410114236969452871212876454003648413977083997444787212252376827416091649330761938715306417585285853485898111519656308842746491391624017535701978623437988984773294140888407375321767170877409468071347581043917350715592048582774403245239162197152029650267059562700516302196401666320492302631756844771725213200417525449076455933519185515642707575600376260606701540252189679835488353047247221292411387290420988231580187082350142104153144180966507634299708921043078163284908255028491237406350897502673793833026197734431783011356017877730145275396656521298653788324710303522174203177159243973246401162110310115465813378986034726119380368211655174528756891669281721114847853207592960156426907701207988236879373949563502887904655468037419283048846837661243073069717406558604692660646977721300788947804170443002208189996922690999126197954492942782314310583652715139655512591447692734969572597957883687777610313868403198787645564129444674117239885770459181307399850233739700172477693606807734203929604858687154245656634814235147446621958161358093131115551873092371923036609590416996807959402159966884901700085048321152657375643096013027809073148802214406464032619760351540969055108991362595540378046758914964564437511243263427900899245196926266962331112812144411525220692646022685842833954074031862187107626768613238268562718991262529260064984025532163938976684449113904688936231850143295274231208529006948877712112748810790667239772010883221377813940239825863623248703663438428780745701225743097741290156734675670849551027201004399103111882921941447292891843953902886821109276150290878194507199673954554998941987868954083595592471370389027590319689112801617951285221733671829497486038617743886818603851078444296664822392160396845505105616029228329518342188575142902269043276655193932372241133682890304444399150374508283661119337180275371713669858709866566393701014315975051548449785572474681473233520201932285701153174843011381691224249912410542508866330460829563560605094813640889231992125285482378514499813531131119375583952035244024711462103574446268564202338659907778267898460718095657250023966666569933876776916008269658591421683502669027625405185564727781560681325680230080961996325770692349186025512652894770994007268285441999533321631396844248211236091055578671246390470355091537774108431536346454085362090789001713672771804164065407284036914831071163493521188010214531513412643314386916034499498715790032033247520618712624536679930671331502751110716443699978874569593805005797123009038980736232755776372752261660905350868376868116457489666673025410696184583372802510734814443395747138595630978798377645784815442300057763574596915240477272121564691908240174637141639704038390481519923336728206246255509913700831578518697496636975297516405334839749309958146611594533281085103176286774161441434422246779445188952553437145729347555027205284365857916358961315245917916699733021331107174623628217275078428024834173610913356304363444088232154810398245577457563144241653326654115768509537937370098938433032868915469133593936290090636313904693369829888602213480549997492910325712825484190258705504342800095135369376424505245564417356320607013766225064821394424793631820823665107676983510872295021684792706367035760791113790228852560024870453623786368344936057601967508922015823308818986151312346963875205015350436273373994994516292810572288277652323833982979335851876456945975994241200104957216677117321922325526397140093739767071140883152753434738017697518092783875150025952905058074170868982383773337517174209707187666904171073522849180692076395332827863620115711774882495108636203919409926884086041162908041634162052971467364166272099369830383715491670144131268497770545031799786304981551446617115467558096448164112418958911100772275503143680608649512815957425558200960030218245361030382522916767673681421156454001161048337864906672175618817364013889819282463381035508927208958255141117314684289965884830471254736903337927080575900602199701517625542433682093821492876672771936729620422461146614820398928929375313136733254221348737320391659725000473212310012036837385836419837820250005714289581358159568958987436765772016852779176397749647177310338948711449826178326949817172725494368196214733880102679749835641204044248152491640197600102931475189275025543222344581241298918529438499855830598855183084150974890654835330768457886132535648906809779443438289922418387916143508465736738337702966217092442445608303742699509190435092209650373640990704382863826019256666105711471498525654073770820844886148243169862289538388980770471885155763073347244303672426062018542897561028024904924370971367849731942851152967349583984347445436682251764178722679551843082770873531444788790394424781782123637629296974955780960761538076126654006582042941625918466793296406112939888668610169369344404542896965227691725533666804972240153236290241509378368856088524916848736611401637301442892012781667464219444670097794097926215196017268497814596795910976731430828591959337666336092071543403813119685641055888032235254634888097961755861858307854930624373127358422141366703721123640745632188158446082495176899373316039389008812876590582464893276902001358975635188096629427146376545018519759848352694372640615754359788914410231288130260118540644175824991191914903522043548749707545527067418498732587931161870737728141341111252709987368393069105836125155256986939202151598306583489206212089323832740034967236710385123043221451038225820863215887405971946097694335246607230106058816071928205357271514698062232917754673963922913761540501338052051114578670813262463787742667504721705367089485370163264022041753201540130279330825700397604871393320590953758481442427116290845290640038515292128205515031595093244027512540730166638051753314537563746471949406399004431671465805736478275610764219969936540061907192652811836073371434467996071451383475622460093716969143281752114656920822956871639703312914529841808578649593354600427747226205405313389507643723303634275452392706658838842821684317094458564561974215611933267417145543520975830070826693289492580361906557106933301630803752210715025410297977112842658557278902108184897403941043975195338096860026792027598188196445105837080201592223176403664468778257278102683044740487152656166328230623620282710118126635060912897703734038512749871003704844231234840199455139224711784214827627363013354868006977906332148754896785720989348973369470489993355059010871007535878483998655844529949608789559888423622162231595032736290023177595331908146479747031248370828310604836237728226519521989718401397118633758619024281566437175593429106257621808177835974166273610061030995180966346724210024011589986164448253388195137551854815865875316900452706648745690959137830463480002649752418556552557491227736458997697591954577172330044089495764760861008181433188395361264597652858697556495743181110141451331477819536789150170201132014775729529136574583667235024385636819212116339577770891149608985028162433719083757228001855131219027376090772910162145354474417612363487296120848679926494430018840307892950753147454780084518291666522017631984166232481379984869673000470729867147465022739231558747073043462123407463331399779043350442675129998838859992673871210481073815779030189469598166947592587373441280436904533792618781603732262308257226001721466860234805442172808043286191952805512519497324942950218569157631584670849227978915610577295564923852683282634889806413664724503073534115025132716287703121677484455379302412433399551901711237755592256864799049640461816830953169564193669168880230070249983083820730259224396107215906885123970021908366512885557544744443762858545250106631230423549394573886045345051132172952829939210804352501327280659432258497079587170811848995119451852481554810739885716809089061569616719734023377953665804371085405043090442983174266610467286161783160816700858249879544603488302085393626192748004346631646980102042131468848650930913774748472180870293418809394052761977595679653203590117611429249069785595867480337057345913878537605117980510346908603569616245670206733278566425791389879905409206387144842494427253775259744193300023654994295552023933019542757968377473453936030168033588787755769580216397466829512803233823488226486504275566034122988273756142711377462128188513778623660054940908456663448299622501982026797428931370004890161368524021338741452030869703422113362200924273810337771226868598913160524136268563091937125291010606063627028096882701641845150431591736518417065079995719328705756847364545562975262683052023051320764891077069699862362580015844204658358850142184762532528461878680880172375896573161772553774600035025192939125422433867474754033022313890994689702315625539628882966826860644752337495657887883882957754324027630891665358132632240867977063150271855752658762390793413181448828902678845121335158755276263360088532072705184361043169216917732115427465407098151892722614791201161101163313158951931739108871091125191532526452977211316180365287069211620979675612869276635790282063744455246040135813768864250217574557594908208749633373936068573785048461166666223588297371388998305107121152747294974883629476711218103560668921235180353824483739064004830993021321675978149597237233326580186916929666809656850421266247729436592742471479284470865189466289777339947974492874882343062168296555435548154247322934888144966160795499336149600843525582700175413065236739339513978921598591757724240810597334064918524412087704331183548842913252573844603779680932258628058414311749581048708486207127078153163927078852772778315419684158419638088804697227266420184505606641379377473112930689532800628668696487324868971691216085686799320944316603450179693814877474952707363551070716582942025764196637890772877207556988627337049189857927975860403756736787158872889941256461327736649472246712374753925981392596442941692124994055555753271002465755825393378939620599115294870583426518894784296645309023261351521094651878677895049094012128647000319037339534485899613148605310829698546785627967411723190327492977157368839988048661947276587456883966411581431544441995792318462984164921939866349683539757552345744767625415956368044965826859514980701355403646140180267577015228494937025506282036172286690240363027456011581803319483313985078490569010528598618192847388902853205990810094424373095279214678080085331184846633976454958354729098473619067341922485195067419920295343876567104113786119735132026755669112520476762340674687564896944217117411027231267530666199572630355937746808692448758086222671101796580192551897923632315062882181041550202696568580121727692445830931626312204753158927038458612729013331509125553018490778090410914980522217040463575611354009905473355240945754084460785082437572779208536226065531697998280045201619609923762741199549165353027170566670580960359177455866257029992153952076251073638194210251365752000589295598634503838900230626201065033965929668078885757053810046289674548612500411203916262766548018458252165004274180179812325966271834136237451381157181489051760854628657516111878610188436204338405303985671479613697823783347460235086296151134672596354444752954899411333182131813551704259143010065387317297739472924992387211692761368545636794704232412526315921389036898891942922335992358141352808968036126026663178449486562641056465768972422612551406564465619874835111921692515025195435723794886627984516686661615608045479670915395766891765105030419754429339446852938720870678461386813958886812828126744245817724949195528494135254873450722937749512415308191652828718258490866747465618571433770184993277440513441873339144866620506981056263375349249918803864871573812653217783777337610964165670941009309687684176209335516939683736445730467466060263050055540350884382568787206100356340045581309699851208319641503080800931180191503724217471041306006882674279975579082085605449717928347443745232317042716140610292866535776866090622050078273048306399041012641270307678866924288502051141323358502044562358804340951907970187467654011111213319865921603135662806423882085705184973719889843791855501307493206063130692760609507242865055297250157794009844758539524495240231223672468040524235164018828067588153695650475326130981696488872976901654311197991688503595680565628733531358999528747161617233152174105068857399185894281782572166128087536428714872680558030702921482189129639774861665566016098760520602340490481222941971693254388787164039386312970827697245281076136124246677447944606902455538187723136995108495414640978898667361676040510191320918707485397927410805721309958843986330501277600153254403367225163218058724887550120037707160263645484813958241272466649698423392234057736138597725785785160799620312844415469740300810691519751600771599920148376152953932579628450595246638330291959618802435557429794987039224180890322924822258852060726564223825548337734827683946363673025718939135946110889442503107743331835739523811816095854175634473606171895440370463474259449907108560089657143540639457770913323476300990307576065437169278030249426930835544911346117206551612151896073525371924049426641891223865264232001793304188231376205921308795912624190553529780949565131510582931922067065618171863137577800408339932993839007716876797005193600370963900924107360091651884845673874638261812223952613606443731138855047516207164494395272599249880756687939124725178977734247467246635258914751836929287324359085422720954789697334654966203208792464537677249201296293654309478763688611365486197402143788789411057775352413459690322132869811215856318877020944004590070070340325547725463488202226999106619879967550819526218492113275838305903295833872958632053941893619967034298825389774480982467247061232150793425379269050443448096954933522622361896872012128906359712314090962327891741757084437649761651702358969859761845912009027813660316944794127536948799533284796441780402643571101163791393219120958560725760633993801559909403495203611919414714405073483232874396581787765236675198340790993304316239426502177448277512467610008901345440478131979955980670335771978675027178327639242934388042326939642222831384429542223153163507866641334174789649956806772195220278964230140238809716077765535940084825528827713463972636980211382060833395603588533261055972702336080683578875390168630426952170908447147343519461624380921921047664389513215074446669200867235850742182015418608321335610087152901115364109043494370601493597597342784847599413864222264305493324777966535700149771710335868265811409164138566927633727183974731350678957418634977491351313445579826083976712478150353092678986484656381619925602247544866601143907895947963752954786144060002323298388885741619170883623439183881831442115489716413771847096831607622312815175068743421196261369736209004529440583740410172552495661663307368146443689681456626898921623872813475783172438935712965844347979899835468910567316314898282536501036424717591519807691043552123222608257385889839009403474801897697644426858816693199696461551264339829084305003058804630728298520605273418874881161341889840696435507887225222894229742815549626169115854827578066862511852214782652874142198450167351202251961167295127682609187065134674540982494188281008789932033428407732648617752301117766371871084809215117234111954419222349402749971852379177492955787212364582115282457940202940048245277180301252441099565603963652955483268012897360646834985490047120847571646297529185544663053383239039086989299201873427632747495892401005251732613021157567208415864580238367340486225555386519328365618023862777321827341047605218899900970802195605693136724244237997386049623872210899244001833495538107636853745383669811274662628706429698873864390510439101437394840595163797592853537264897970728209794855208539252458361387058659197345336142824918270957617131880569547358436559006976524124969892827400941964167952665028968876025856762511419470351531806859647978021712863555750075114250950377324809724602369213911579394197300747005714447266669206453701784285786460658807236832626214039187401378022042442750414847926513868888640259747795928664396636477043611627643172954218307744100584320474455445154945804208534901473987646484392011821220585476405468443359896676550840174508886713058623773393421154140368245152567110544374483423190332062579068740290690784998011866703198002862809286288347405207990320120475418521456696747762777270076196142690568415390468142923321305152182879698086458453610232140550106662541047857014298663476200938291699098935905070136875362300505031955200855426105058637612344163252780522934282042937056322076380619871282353231681293081354218254826420877257608820889404897289449881818441843037091029436749433598360590509809043458172254154406924765286484793727224470661579997762676385936162403272485104090591615882478077300203426044297577147707581791446431899003887963284312145630530108858511611620588334938778055113497381201798084879624676936145950336420007244435188958593699335771326627495808151294015647313534312039015794149364190777803147627239633615184396756871587536948642586653897410832754991154897490816182473475264089566594356640666518063956142508529698364238390784909491983022863524286179983907117383656349033856266819435328521856282813559905949933341103165172294324281457140274733804411959125815660042037105739897502793410986091445446509348879625947008994883432308278404978470510608687033468497613498251007455900259755973814499713890141481315129053455571600730617184532809261306994516606026970451572574280169816369046795541755819277985001589888605407730651849716933494346392318698352148737856415272687925985474920217074927930969629420371486396046117175027223651658959173184216828892266838281539614496263312345918419739072084930123105101927685637443844718574555691449528856795991539226373499712513250726246526763004185869355315887099024786631178068420270330849482592327441599511859236909612756187503012893995391638063909398709554539596446264126661403698019627146916831127108198971772045435124267023902749241316699705619242145405674404721867005959933587613281905862655671270458491161267825764018752413716288340400595940472844134025390090555988130568078106815780173551347997800452211815950637956304689803872172237410063559338193724783316791926860782187340326561580758457615903539069176075239430436652059743888717309618237275188438135559185350599589903533071993859318374344420624321145975026298516338022278441445605180529235689337781560774848490553078025567304086543871339151015945615771342731850514044925092465044705389391097900334105061121370912109874723033961126019291531030920360768163086852842010187248359858839543554282862046894379390813883535920871126565887652311257134238737596277262305267371875474533569919647663849352563955738381709252211732198934459683445338093250835660649384263550073519986831955533861809939978516584758330799792792921276272634033071351648120313500337742913361902504968110598062452416632998854225846492204352445702372251998762487411643272956527895749080388478001788881345297166103969848055371622834973035494910073994003062391988050963303333298969944272754069902089447672617376365561112916465758039398719369370851583239526922749709941995213219316258755318523948681098368300939120351908869488721439354278304994252874913722512983649850485530351998984962840458109751770695741909214098129616845159028419575554987167723588291624939482415675149414785954060033863999017540443778588409736822500777821943053662740070331653000896085128442512846355540173967697488057920056194951016955646651160779797350889131754837619421283743621946595616491359038386178019571795832422520399214601680854191734082656964878899271267256984367370463588506649179328153641959080813384865496626251796332289127950785436669525937878528040699701996746430996759496883555108301260713373219501823516626092473549388537450034044724415524020836603018811430374548006946085694973726482547572835612102123054328500476842847426624582146243838919833610676615751712833685655893098794670268536474439755301872433682280869390649103444009239954074883637690799052223820992046984329236988639471040347609354355048138595515100763131027198566298391693446776043336836668746545252619715671025501656817726919880826095080574265115802509662857688632784757341559395880507684768476988910021109119968946987809415417021566181880360886488581486038333305535728843261789734577080170257792611625773907118653434200148027176996579341865541058981581273468916446963755275442228854211290010381131256020426252373312371066081409798529224317626061677293835545096668040010444234442695880106238213371777734430250336144950444269741436784004453325076947859133658015001218818047079036430939439390769121940522233176960800212975260969071930040578745444666798360093369463505545782399251942707365109995323087498045899332170179308597540458119397635648112391720257389763363673809802060060830802453271370593015906336989406701284436231434830490551604099986225043860515446506330385436041288740353108175855164094603013284542154795549482982121343303622189626443733285950101190580322656836082269341018226234756361266700636156919227851921716856965847277596710528185566829604345124267791849495716656890421720578705527072214605629968617806667736327483399424222360217604619022356350057490748392916422417230410338764331810811503992202832466873442366688684785474258541430490360289541546698591322430283236673732353883125370961301602656198025187919863829912465369584561856831810120461007529164463833345143040660175504273993578359299853242346550193229574958769343158823994398729469600142504475101811038585391198958500027963583287146743238695333396355191039872171907800059259845013045666042908105001573236746906611225694043189721778765599727403592162274126710706429967389612422359127521904694597916261963459197911366999534176970368040875169275701726559183273991285239439886776271680043308663410055707337872847322522790031997652843397883794638492293786256792290195061050981639265886405448695466502454240037310915395214511097370916657295027912945563174719238091186534230789882962301845710629777674800094970288269330512788627372089889357107525137972691135911891939627846520626568477267730859936602282413665369186320462608009667634620049211088195240632977775354230367202748218243947790015769769886615462741261559501475337646625975208269952752811121572662778889600971078375285899990744266956090803276682376984964924924369504833855816527940647453306041869775439060407513519070814783844155960586774222188244608588318084555593420253035457955180546773896380204438342560092901946528141145362711928217655975960851405322136681284915076926617677513945265474649811276404292021474682511849520349619134911054519836006311195566147934767999517604333584924243059356573495946636104698585935353235839929381425666656693835846785131728353786767292647344748452285231338260096330980808646323355670083556928530445635678239399038697276697357933635413216649532394974136427312600231424628579558293042293020770801418696455010068980723249378680637958683573916529920134844046681659918059464342937968698494176369195806733874524909108671997562616319556887804355469383489566543777700562420946871714625860148605367099138533118250159566838130875898774065331757369196465615440630880050436185426984461469432327023987486743638049361374484903493727659852044255035877275460271651395133604763551513314774550669249449457798708040772248972883722901821372569482081411444515497288237436648656711804452751640961676704197714618697040521946687304065285990414296615764033622629092511841254527922893973453293073738927960995734022279856121547116391112952905752423973591909947548728048474512147432682728762618066443498339261334590403679268525698558338020031019985261712991180636996511777088456066187154408387490370720941417670018438117523231002937817613075639906785820394167132309805411331652355532776738517094920100936315605978637823775545455278251578356025344571634360089907779326007177287857978962077328459925715529798205960744696860469954214013456428601186905296165829247830359006998514462933604178818502170975034482107662540982260626535239906196664556541198023581972187349971145888858428556010655682924905288684612811819092533753294950074460477913207825781329142089457600168531994936584689367334475775941191763395544113464069049505642377295211762127601726812398352586782498957470741745175795162097670778036552441338785133776581779134590986754201874677315450545253553344794616987349960679550266014907954363308029055775271215435145104473191628559589659878807197210200137077677973376914125742630785466524709202674128207130390132473152425691831668804708081717793923025430229066774206024088942061762420709528315246170939486099722300602548881295117561660322747795792801938952342613016602845791644219545629654214119149705175695846583033766607577082833304065792946236957407652784213970086137857149682388130525811161144854657055861748887074623431791899582957319671637694837507608120867996706641483301024354846887268781849281420040366815572249491846329696088377711933617913616526592621894263864264522151740003623240925217268359221033397514642807206391418301726205041876680951598255533045313033515604064074063150525835886210761307653537463667195339733085613464379097485892661631056821973333089646085929390476597384509030243614037257998030469010726731099916207817395324728166459730436483345209598157807951132778090258323924701758377190643279233741540094092327073975361376096513646737009892842654303272994537964288079846564092855330209779411866783517841347045827203073645731269176242052464538697597171408956263416577697346018834716711675028429688284024559752095022183236090867850121794929858581795416344898424676047881300893577935802292070093456096584691032971590669859045703041695721220552383515193023271451226144796590988604611790784787231746476938801096879952762244537360777379465698313557855002399519741311856086949519733569661561406078839821825192778458824972156917502552412322549757445955758936010811947517703800137543193382575087740001172551386427728834561584281745028584364626529265203860930597776210816558778551489320259876917008913919942363474354304973156316870853403932836943610896628298339712780450099024963377965466772286719674812888152303361492813599590735403155557632677939037947377053368266509647951477227815603096671430637016636490254733177763280293764573673793560529767179911181939167184587604009178298586030542412640000329440379068331392872769978978333454440741347517803314007759362397178983620999867883917096764247892226537736674970132186722388899909324637589930331148973704318534371416673820073892262533772386355323642460087891077449529324052610511192729121441633153555208385122688245637486380976922328093795123629357224622075857914965744621453009063194867195770604981352957880732057619059485579863580364506276617288190133936950393405652066367619949328343675476012116216707867746141353544703437378122156515041559978246459958046197155030104275429454972685887754870035754450444673271382353925736860519636206763372745526104882359531841356324414812060379586331499640013793372337518945566435730943216577808906052002934874953876084575446819016554606462618112421926348902852060757330128970921649502038689610398153351263637799182177300545957942248025949197959663488714575772363603777164719450099332200390260707572174233440480372534060751306152854609952217845145865824369447948473059712320869180165034713092040431300866582965184721424791366639721058969045288554937298862651367505526663815527741956960145307921743157289323179201145356460014512223772869394906813012618668165846627569348120150406812789835724540951141139032309670272426251827256077396025916716379736255929868089597517380612277254171180861479423534936984287384415581443740515339235475183687055092458178662878554483513825422187806555719940882441501401302118465395263643734102570246327627731572109741447140992896047008367738592422163272718906023959306696945123815893274375633748352616614845412303984767646761389362114020893511280982424767622684463760778841914311240426536968132608195233935071153430978365059095521786864161139896921840045553368102158191951236939225648028538256689076500957273644397269145106179325333889488436003643816098614877955095857310747462679167797048643745125055315396503092721402649389997516539447690214258545142290014402243155992216957966241582125214781289224589796554752896566440904990813680754662627660283726077468979857006350416269599878291544773591541739432844464046117627736363394377414329860366931546432020230551097615962202592948138299096547825015624117554842408331190497581441911064134125992466996304478024186474942212259311089007990679257728695151355535500951090781439574733498262389645105139234761885464791300382630996421655362883749913482049398439765078125007180197229027909408028505473837907434267474117268642726750574275588979659629503322738287339378460836910494942016297236517463841895630752350197228276834524437263700973795219807751751499563672680579296000142320843858652014380531449164243626415265329498028207240858700419664605168215191884195513532570997991709226305332589781316329736428815581984407925871836721602740000389166886851752593851194696595014670640253081400113796968286353166890816862211440598971304490761282717701648148832741210942377025947964047490448653241740645744082284461278293132108574495684575369846573421624019489149404527289991270534609251173093673338657316334900055752419020437411897049691948812485770699850511729638624426298824279032170016452444226119715723204175436533995023041281386116774519264934872063524146325933653021791353246991242027919684800886022950406876493111099366265754947563830933626918434341887082045959194009924604233121191093097877149973903862525315194453800386385743044991018991193381541887610541048531954940378650011322452242962117020699089929797213250848600440673634598242514543299526359462515163145902770656183660754300905985986023356929304580032621547391935307130776156284009054737355544180008013245989230608007838814229021597391462251263972639160952111502940610367767342372326347833807562676872540240437525909535508076523745651225821322330753060930852110629311850412560054259016231262513928493356222280237367928113577581572075562005531696453254940817639693357737529585799488839441952181104982097119059098738736015523980448882782367073281104028679796393187117199933866294241629594243968175833632933201808721166761651698922846385416548846601490359215619496415639721663040718797273766201603854764455369324638114248542253691941939910397960492642329253886638631654471430545375434641562313265238882981364277589073234312555057632462731913086275569953017267995898941018165291068674565151641766147828740744343735047007832122304276793886877825973045370492643247988871109498833639029974324731773791251834627912036242432963885268102639915988745462333870530695229346262392832018632707341135209028427656663600998161506059504014095811515783836768831727524487852267848249778296683816715645194105547151429794366231119015144165694355705909430504002187868230597805753861530312922614561733584328931971733607393218622801300130750678044701868628012628823267357721957889431707702227500586825675624999590891230562735010056916322274872309525474914422448972053407710051823774761246237413833611015896648250101073101560985437622504618428544105826767812782595538876861248017579143154452309420200948453608158463946367545242788814302789616523398121576771336105725945586392156897951348108719425449547254681987097802357108212738266912419173776525460764991705405012016715983868933432159540545597640040817422479600045952839062239867435211534948451466343348468746519456280084321239785403426886519813134471001677304968228107252835430367747454454508440546644242476946341180516588308417632488796623649422938444697495087359018346015534984106474120979652967186046818228021069913286542667685988344787058891432098393104208651724577315928511406387046540477085074942175642764277491943895960728803456841399943580466274179076320109624089382507066993995542206911534664001454413941560593957616793132094567062714238479126375665671846873328253273954611476429625817029080498631356441872880487263462173663277685326818625182529116021972785336976777862689015816983350528274477991034661699858939484520319986947282612821138316129473224232876930772757267663005632465922868660813607679228136146477287557292422466981950375662516676301506725064421257334034785286186740867819936179688706122346956827341984066329450833695717374832413581599616713329464078349568646018566585807328677325568378757134505835780471604188360214067932139416216915763310674697519278173321190413122069789680501792135180236010666397442222366435412480081479785256229226309337723068448652932438898407952581864406568789345380621311630062545674975899457360430010660834967015754911080760753011596340199208909421372752181663735723167693522447770943647167733451419871651173092712624200542476751731005540137410578711688202041817822933938492919833900176881983062008227465843526051705252102290310589293727933737089038773629766931568834453435344387668085207275268726657636075612700930955897194126441218917273944168451969900110923460428279403336485654085467521549466810773401695683416097226617795215126644467651358626623440827688910359886502349476718573504249545111179258319517099165501384513834820907442386565741884541865379011631406122576078040641942065585930661763310819848361644538225637990715334920236275299980042191280202943485482960395225785835389190769549676623997619119356579436651326355415572876898644987252393113797027629270948819441292288989872803204076826140689462415183131849982055931265502794259758673613557548505499665377888769571677970829295634884661253242753102893970677820080015063144410439333836902999288041001660282082323483308243260323810373317600152794686380544127280292508015190698347804285443161888377171312413927292506355553199108766192561926966867597639938552173301620452623592749701272979485847315785596336807317213823925207694241260040544530395488552550108575688682435139708280801293406015722366819793001600704914329383389832782936676174732258110832667431568375299313128421240089486222207887096242512051248629620874270647161403944595631318464132841212063317498127928919306236791966851963222583491646035103952980778613793925853032112388032930366070162626401143024274840668501321596986727843227721687951666964368748725337108481780853253424656868509355189750534371220850100910555507429256965560755408619671153131106851410272345197334038767508959449744193868634483567375819939251622014460281715357526000393122440551246326809118794987800363021617119593181853603200670210360509905482921243460791063146633159521458850644194229406735365997399792853332661982841931920508935177344994717738674097617487613662501576048734224756248775688421888870990629169832194299163476844359553649490815943775882623906557001862112460452799964611179870730992056510830163959784955460761453682195802615154419402265402456009677914649263593074215538795259804771070979715767694525834831327313241665264575486261261538813497833866128359524233732632868900762854856088387622277355529795098876757550343831657044000748103578486363348797144866131006848376805537961636195363183488284257729821455964938541141118458432531712021045983154461269991682759270037059812079369368694907307218468117493794885080261015948492626842546551252172820407685882236012060976804178760060262421534221655934783519556533064850457729468334443104033488929620189267922574544642293374356120752901200866112914925084445535183267626226440060437708547302214932166931980176524353568244917251305416874155759242314757748513669986297344536042074817927721289231486187626101703791381092733962906990693978162558678072804663196753182957248662856239332030585032468200297937211533052937883830371298991000536331603565329480324097775598349530336546743553378435014165272291702285521642813262943367935262846461882506199389734021488096203317423307551653509433135081926311339866386304060877005639136466668875152954045567449348216601486975462731220879608770440398377915361716437625314224276610179759671710778761661290378628533156999767794290326772768134271800126810240431418130918486450971149111670601030776337214568737564642029353493814081527460962476536499222235719238358946944855900783992262677295564404126211739227256799836935242233221384941626653500414396664677957635894645203108548358471386657545284298764736139342923114190462205872989035369229604984875106506671457167410797515310951764273157428596959336188840387747895465426210745371669025908084156644934160867380378779099928841266486134259202477555788710005117909017464383538847254393333698537778245611132795548781512708855222067628015184053837479662933702575529448236998413699339197370339015902929483293980985751564155481439702734549820147049577873240814140505066740290913380684958470014200178419845286225169021363392329771010050487561111043836446031549427442311842369126545382021858432579178762137713844008575295783242078931720653694596189998981120279095499159033091843693141662739237307276019466113689607431889732246091833861238021222616830958525378994109360462485727746616039517045984174060218377557319682239429968752740313666599544478291124942210657255812509870284381507690407251962762219977871879856682708299909240640993705919253131246858972708394338364385223538692513832571711083411971700053186540825810781925506468231273474742814941439583174226026718000186222168141301893926325664537647150394779717211820337345453896813131148927795225676671002272576407276094773645367190399967577386619861239662856633161836622731832731954326971710697942965006651194684930254674485148038950662330251624215733579543173120477489304459929433749238017035713310052293180247068132282406972169163588752257916307629606461545992895843483070115993950096538886009355120228576011872486573686738996406957030809441898322364235321125318682523124651351581798152336726953531715790570710119190445398412500223139296159922801951686051354122715210034299942588299888990993733774430934716791355286779477360334441538534754639476126077892194991502961315808488784946484472490226725834405943890918526795220882071238647361252125838083708919212608338171123051422589733038215924890484970802567639651465257590559563703078338978866062613313536124213597909823629355202972489776940474989332012250841451534661981250590964031296205301575079695732259250055965555267414344307407264322638898629374431330637942218543425214024720786430136243477082595087341141319433670850529382656713678647190574190217993053733153515485593021350875934447429362874793639513227904815493767473078413207272807995112993448329581132748888703108441580288431572365992534333123404368160392929753613195949452164371272107594405498318730531786653326122268191632064958266664965545913321113276679070855828903704032429157015698870462671234900861470932087189155396203405772211953833220698615462552568262328136042230228082299430826935083175301321220625148496238027968425353133896941285508976902293151429233079328479269516714117559620374607688206915411363664923556208809258878299386817124784727315251010211483995366046882679455934899171015306792831910455175035184840377378447201221922674029442214816432092388615598762503095790865823099081141594246384639267115432991693863366692413862101851440833451894785301046129575796766136195223278544327437794989645108207753698187491520284707670360435846798771034423291011699285346575027914140692625280924948376205010114707170727319275496903286098476682847781172236645938070504901905812217374218317953541092711391808574946230466051764629875332107100955435551431227653321361208755864680646123663752835022442920943978894222676818104584342970123730286279475710763189672436337349958698357536498338399689332076321320244913237191559923778090635365390081867240266027022974648303696259288649662545831066158933128261440443822906885350493139444317859902668370178624700788244196563216498077539153192417659464972941371050161324247477978957126231381782960341600505627737416131369515177265983536041949239331363116632171451131395986035910129180269568818783386214933886842664449057812897478588407427392189277481308639789510357996190332830337308918457867082246966064992465858334684350420758241334282051864534819593624282216419381468750400015255967350805738298710814070998125153390984280704129474872110920632839140838581967815111580967972606563335630081238973382165597989695105138525366360016185138954516248150396193180807911920033540448295172418034878056216428479682168272450226485255848293916044535628671127423724040237141890211052204783228719692962471435459061386086581924353114349233923609939884482285551833225719083788407213672328550505020441922210545307016148472540922302395236272711228429223850014936365774219427824137000064484359775479751399682782270604103162510148570366725457452909564047358687422735329742763484322325147087659889010653990735359298742548820272581794428653500892011304750242403472901223895667743796084657502918649347435583147434389920362695148539788517068482498426864249057789949457768250997273789163356552844165235643655002854899305606623617670529667601176122895516759438772456300736484247160409635041865255635222373821829496327413639933122806172882674695410732881700898522534218841475746969759174278231173082786360718715484181505932260905413583088810155545789295806444616596472318747323206928629588607271105478583072980506202821687949651981095050494189603880627969589403141257303240145029611130214297919844631902307027170743848452329637570025950939659035339814491693236949786555994344971989850880448086786888057041794080928223631212845213609187121859327934879039175370054042658124260798303377732142177653021337553344661701069545979335642114396423365308060594280419015126794861645908117191941752594276298884194427426988631187846593804104710711643310528091204574826848408412412699463214453997015622438667105776750163528064154755338936324423630777520416032508142352144171847658122477808650626385894007378201989861389866974482339065951203734239647227349006096065312579226703805942685050828741640766122930874035775661662932149494757958649663271536326282827455432859451213623124912683425927582457154877732408500119456242554730240788939030005182119143463975855155567379132343288907513220990798742403446434675950625600126386445975084373266882948805108904869473609602754792673046111935515394565497365188900220939604669992115857442930128326200556396940776612038401105006491459658726399872252294188118856580986635253404215907045367740554444685553823888488918518294366200200176812517238448344521718822255104315307995323795519090546274833170233963872586045166816462938862271316370013841535876109905878976390997679490028616474766508949040144216655823179739908807116406773827426832032661073519785964863181648709425094392993960607351428035932916411963835631824501317525279855383434302085824458427544068409303631769087017106274037934224160345525052041046950468445663769391328787548123218349727467372271458664554283580637556169441295686027163324646049875595208077894098932901966645445760346794890560631795864490980247130664457804690028758152543490561842851283532233581686655011410253383865714195695935137368347159808414821564055397443484122981351698372262709998240485097258206138071494632020589055845744963232136192303686854549701248355128334822551136646519055829808580729166000270733200994915955109681111834248805632628264978198827369138812036851307761991830393238642914754757584559811412912258211630647863018907469649073098886505063728211614557399438642312200855143035722867957963148139416703040771302499490634307453859101339178094033526188315289721790408620199736469536897143132940531773755052724891923190272074784889927420828525423360608964217246984537230027387398071083866106603503979014392872544870230104468500185474460862020993511599159768624259986660035345211926305044059844575031719043727972839261826335856513752881575880898337182391800966879890402714898775735602119714643637482301875351181022520722551646002453866348357066397545447069089014496065942967520222833974117117221389941790003624436328161263527967777319006882289950550358262303189184133473949334313324652542496016329445020600655686580700861769751800959147467175438751413518431849735232359618908370908881144104944464162809707590927753569689959587551643544390065407271416127913547460739139990040585891858171322992933967970367991097814601108728185509408515534049949991315663073246934015337129768463409847561755229103806206520554768486452647283116666252921089868376478414378888224852341010778008154227268531409818384799285005100717982591304617002410839642398128192031737690679772025062733638490432253978916013220561916806714429121224199325561242731602631380079124023919856455418760983192966817961689575695822250044444003980741421584614474614226340425581958334640039828086515793494789716548387278583104479526566940868696610883949320506151515574361880075884234574410707389245250808224738355804506047192418841730510672068667595975803901325973909440700012675307482087557845359309375278389359887049652910050481887314142251746978319809000716014679327136426737415538793910416973168897459329539376166862573590299982449736469845127682713952274006533147876372042478376745431514295432241400506838095643300501616502966682142165757637462729772093943605799752876390517152288924462713633662161855588660774990979485643797219305496050311991837540923860318413004358478174878973870943433726415663226578831938658474869286336069002549021713839128408647851241561576690894144765464057635073785524963241105484295298196532625728042606818156119197319320215691163448692808879973575722335326409453867635854299440423959500510716675729610977790031339763010624461609269046896755826836605141908865492282952453028175324005870046477529362957912539076170787299466821784140278502455696161570619499554992803645046661354458979010763200460379468284123120588241041873557642432792162620029999192647640213159496498640063500164290352308236239371727562485098018929481041872925503363541937887016816044526708795657115969708541439838725277202332109974062424879354962058812688547899788452203014969875409046670778089931212372706582740578550810902567828790267565681667134346258736727153072388584035286831296498155890417319188569509732152954645935765291694243977768332683230786601178715737742809804502493343431278354210565235015267091094660107557687942877800524909726139199830483569785325308932714006617679842046289707833804070576086211626256867436321198672686443938746521172172259341889587094513705225897781688388869811232756143106165671810645829480916536430958204287715816847671625661855970333312006752222178681473429691034466186480455328450004424214454782106828403679076224101640404871347682104537458116530643148723984242335300107169261450811619669679639139433606701653458760817850613962330791055728465645416562828447980268528536273598680650597907216777316620127691705626772225529700571243012316657207949623214049804068477674947442889706060827517176411725407008219378663398781689179382109114717316735264677680442764770370640178288581286993495673950233759518378080846114158780674688816324450235890316971961842718584694523392252509827984123766592578203376840759732974851260615360024740544677240856960513607334942302021035592173389557706500352555032411028471936493070551974564223105690126980241947084960849539767364553076980984527356676473755602840004367255018629760856183357230998501440587514678265836454330237889847864653949517580279114503114895794129723763983533723229115002412412201242750780063362659907427810121694534713282555769415697258586121126183661824235123330310502369453107604067488722011722707647168349100661996968636948572841374219725986866116908869045616175030477630278980194997193923408986906895570436314395536574465013525909640351896712798277885938178743079779481482531929839546290043897887724466482291937376627493661381259797850550702072757996041549676930828904328380877727643648608744030292518112720251782567491925256110591592009712776430852753898317268614280627176194891451186079676232301597627731441704336249148610304232410213110333436213973793107554083469367877634187345976905806824126813043271142501574602616924189758980637764518405818333584949619372445648783071887466746662480229933302175353965574775405687346801685389093459606204508597611840797911947434736322016673043430284251559897692801089532375462056048916904467365988230053346012504613200163326325465692247349716851834742908057176211036269943299844596259812697936450893874101088675214278800977549201766577910299331069092722137605993609164297297685524168247862580040963205311732160603564586918237806564074914322926784053347616059913814298688905934822959690588850760521988584598078461649183554222545452882533908459640841932031206125206936054580810435043255665584646190465868678563760427774543200600597140492994460390905335502493647989610482635855731512714616187316370927943840139181009956296891795918930810534854926640296289443497519523805972062973261161539146861878701009824575753340870538542754728058712664957693554190466527753524411852417117029180191303223433505064296156700370778440258611302933761356082507060659753398327720241535374507958190370953338228509879373120529916923363765592941799132122145090141077849658406819207943309873314511737093280332775928801666939721579501239517069448073292486472216123920507727629651750826688409827752428202467436648584351096934032802349585645708314432408281286280807869032526680177517588436517298172832233755943181480278240113980108036156318426055532308055026270169521564420646769307924684830431805337852557064112670062107708120023986631775801467788767622725934665602810728933298275892122207130659673416303655003980744378629792854485962243336192245643737345527521924912221120869761293766852518966132613659167553111195601971832988800308748600473172749318253047648154460097689349996330245180618574784265135950117793104352139460415574037060585965884973862257956037911093445174418876135623714011728062842652825267230389455095525776146446989791931649283767437708138375414451174928916740975521167530068408448341000087886924392510599250341999353869989637178272130775322269019926616204082739110503420300113669705792563530633923757296520767976669093511107507302085639021935341565170894636239354454518296138852638841563889099026344242815293469090280975285002133102628138125218180151662672417688747445323255089987264063928122728463543492670352131849441431143741896139677153806270484235386492207078670792438971780125754813956636050340152378522544002875763512452252738118229963319376512870954735305895905257575337425233697869566747088796060539743483530197428070788842883112559555356529167800270862102075916841468101011195469277009409433024312777496614969416930312038821800971566243023321232836001606432156654397535535743896428858129279432855898911755024246177660589841614881047049425006191308333260613380450268920047374377606619691477682544588833611129483654156111543507543730105033047785470080999305105261180804142272512148386077183533264646289636069424044868858585505792595853214381697939355972449297649201202933796253906965662641545563663951951966556680425458568548143488000908956430620113646005522661859679621252460389243727392234080886876573427162960217220625072488696300556198272462628271795865580795034799700196686279166163417302538884775578196955342303907892170671971436262577385938755708772826079873762547904123624367775226495889262757820575669592196919972374618420947506273055842411716778767962077663754994499226768868811096125689436712168524181285913216363999030628411155259798116186669124811329918533733058911540968654438071940959927133445663409123999804146503548836571242141259004053903668952020515334751535823961149550791745733618979157035440831061350977836575824225546249762923351584513795659628518484791609800820501545317591332017930706654755637152464979954560677610838607436211111790415413978109804281168324845879713386011131184813555964813410834116788913016448946751944368641008809610520283096370948515522134506074857417944224723165285812748122347337207535098113092814459869855972204141575580204019547256078069909400520887998453262705773198735905085300593573188057028973702919480672141980732073354934633957847364441163364617351641739482047697271154419523588444346278044597170160960292133468162494129344248486439190472189296777015162905888547462598207764703647547042629617591035880524943184257094467086245561477760656592392467342019190281795829944540724520828452597073153559142112831506217201824411371093495631637938112950262462154182628248208639913711414894794300446678663462424470123083862521048147318797451280987566985117979128866319991628836056097515058293131542579949015356640890106214249946121746573807656844827823966963511854037406866086678391519402744976370546539891652760207581282162786108542696855544956667189616232926123643587263538458152480343933659544901472588688204017940696884873172208302321764634731330542322807215608444919917719774112404537411138326719104024907565906723397225493054901509510101554452851091781298281064425963328517552446429075435669618903662400604652646947427307552180967728370551309459579304149092002093216869397500850430230405386231047221048822461771085207157129546296228256225965094952904941453502762040562558367698429879563431097935775789333634576082260776079478348276666321403288846827855009816028106301167709711072686978439666747581540008185499202750639055419219678673197706088107489064948180513755317367512103566367544330590335801809127880383241941694706918445140898616143220141502233545271183862132295736069761202128618143067625729043349187346769371729675189965174546857885195978233491590200597454594114537822756722712453828561928074004909800179353162625047778500315776728130555290949668819223803762511322707916223965441689105321660171639095353396072184730059278032211853669149733136367758862997826210845426590978039639861443851667550522522769136879192212565412198706929615079275780911494408479425951318805543604731545572391059559747540521223224375441479574375265968742853747135594071624090761507878119229561612667439532103286762414319028082595414327676246972675224565884997674885396427607570585469905234021110562889140226881038315675481526363260933473650710640099416177599235732301619749048815862728797064983315147706876045560574235809355532914117223824240568549459111606898662598696465261016970785203129637205200924100371070425305112285496467736568450088450440465379465022933697875887393652827050568394986000112247399879618359030744043685742538232099791520171903467741346236337763507154825831933985166023891563740814541262931143039166549546414807114127534471534272835179229686153512702993582868504644267704723210301980010979571243993145046259461508938733392085444394028843683245948816194850146953981961875580207267733427418756548520517100569976161037406684871332713329535073380893301942201786855303836128947426296274590193221470669484579164621308198165897538236374760687312451151863145355195597712076671922141187904060799383517922424117301434961317334908558864208962897735429329844416026292384249354287110733692167465629905311812558798582582629647858959211640927604875287788185335027901620303258529913962450379481181189422589348309554897329849235871883017107519534470035127710867744849109828266278136350361939210140970219311175485106122656119192233644486956962248072931256851410975990148877138559481837429555575885695899643176382282345145854598595056927929888551916904973790879414688815772043419342410834041032878709255519158587507330744010241457994442980621264367687734830757689774562665422375881392788654949660178456977307664204305811110825488880279791204918011249886414264613302360914745222806931244411652015574870513135873074171929024725757604334403532089331559784408978196601920179569229215650553533665335981518685807783836776489497083028948316565333075368379174403936598709774039134053317315728767749349027125831823650306978222949553722153489602743383423326323819914268362011569136435759814085851590364970405298069079999956249105378415672007459953407552096000528858761539554911205169547892975694665051668103298359635445787302739842106214634908331087171477612191610479189410026493507159945914281188767155652401324117615319614603483405224261012821656071136494548427794067459063775984201821260840136794528692554303798682070617010980500329615871551801981177026014252518697303122733053907593059375037414360907918520854243779877929707903168537438839469967175117538555539124682324888999914525216021567664492664654362236038127723375240021902683865211238816287530240793711513930839256569982615322558324820737293655729247074093598071858029644698426002069679426986511104838446911882638875255354584704976677456054406231929969775319315948989294416700568080271616474462828881184160555053190174227515722056250433416081119145318215819939522643012071752593452424459014381509626528089766389919183533897467395091969770818626878792309417846735117175480751202383532027411411625411212616445713958654190151370948813967308702692851770238859568990679311880044822588795406655472141364809794177397130394742743728664186338267240006033158886702487757953122052146054161988326310464177524420911274269411160681352655439263152425951593226943894775332530236294638623493995463459588425874157591691414912199003377922771353423951880309978291503405456031102933230369734563150808186810262233514410583427561642763123957376324099896284369302707884681657885925388746170428027739043029779289340358547423724569519623403409207584396383780867159138594840366603946695384394992658280074769442016784573975932484283895270381708070370517964798192355086249801058758613205928295755742623037582406713109574995311282294076492463970109355655554287510544572987181926813230769662160660562237131588086426631278926983229937434663409739625853791690273880446729767134607053997267832923694599442821343049054598480695755576320751470092729903037079653643297732015110355879643888046145580196700954723010316023586271203306686735997001686051801058256019625501491767026335860330190729197779611112196636881953911090212905792257091829251116541860330809359864606024183620711237017097922032894157731887608461235182367932519768362440949417144869449324406951688357122057646648031441817173191441490601486797534506531567288929398495580088656438005800862175755641676307546219726803666470171256743248984776445180259911361149718708584532521965554315521620911020167202844558018831796607681191702877118341026973370766778912351967770420664324877181049581176082386035272925656274412439971180635987743340475840331510095278605955267048392685458936946961600807488603827350266225564663929336288602482048247611751257401439918806343118839083065788369033211719637881088248726451059535843728227320110329688576700199389628650502328724048586568617758871019886675447744879448952792229750518380759873347020885739691163732610105787685390113772161803004048288811363253207050422096347050637387478070440684680707902187193749325509372464691606322223469077059596436754764017759489842550588166552530485007888597317562001197586242784685203331286235782158364178914606867591836545006981747483466480468153317077908097457025202716842044562747341900680347342512848729676519611270285825908860955063563733446433772098969790354387124321637048945469342378482444572118553711104194715017374661009768992800354845625797557335538458606959257368923504670948809088564093304056761162167069408272926810913002728482783340136124929044934902255923691114211859461505292696025312341209582033235117965175305130026140410651473042574009095782717988242672386347429156346598947286363173165605502593971222670887746573823992578622055367856045502648837505182762364253098111497003153429205116971692894741233541736116166989512525215300392492295015114218242177432179071023074328380044026222318337275339705418106346028052859099430420631028201705982706144619173034999170334576310146677579142881537971834801563119791364775316607790183348008232285471233758628069393127520651920435806896461063634278687905367118832837938601359314379198798990756618361017444250276795846080902161357638129723782898810958112795055978620630306223057479893458431676866626514519095635464965175966544806448211715786688796100985801532987417341387575718744085355389523678472654507952890060740108165019996018220661548664845533773509239829281035810281833752770813729246194510303632841536924120497326083354549714851836884068125472455224887026585256613552148475290961246671632708915012125267228020688209598539359224211007543269228857380383243804400643120359314767459355052145907847996492068415963377480660765326146261307214600867259765709412942395474992517162558216550601855951688368274796011634989519499744127930702696156673697032569114318805949207886132587129314029322388437247678856413107167601893531307851718611775015635911283902321304123681150013892999273786689592857571665881805800644266547011977006493085370795199086047238792170519015183824711326718293910659135361308222305686897928807982667977514222138966111289271729951512056761327744994207964073757534753536840415765324446731163283410489053682368696408693732243137632418683977059806815337241550701709070968430163277627959378509492507028046253178577196766231587051567665620953816379187498993077921946803252422757998906179719267454432917476183800758064359997693482974464025956230950431707398597332965424423770658767908069419664785504200598996129912532417344773246866001863439159108150967364633533558352874139871827750055153729120193347238153455482024934108059813536169036201006872965919429799184984565631187222614353603484775225411271860305296823918556594872878381373894888125466655465953303032335734335202879941213342774681402790213586026839048891658823390239081337931029298797528158142900697563795314825284159232822586734981977148698765539482498324841003504351802733318941551269237476078396325645912860540387015359887708850711831965636594246340732100651435144581470977051725080902998964226036907729920737062746873320660731589684692199503942324632431829997110598027312421255799301963209116237809841763974563234740298539220958176886252676181770947950473679867006047010957239345827842327348701348576101616417182994433047082879974614535774113696831352792288053415522590319894243836209111916732586911587735615277319693103253176173342630203527547965227893788122680578053950880742561517858787389106042786983546032915034124677190002115051947275145483868456920374661449498161879068444385452152547711590486134365578713286228057345980526959788651229699574280678434712713797898467283464995336411886023361654439769391754868929486584887608693083704104149482405659372052380380758147394850413286175920233937079426062683505160574941850550906890173742111290130196812334952272683397819672836774146635008775177199375989512932734939464265379892313106942278086770835342548070923548176708424038242204154196247165942853509558413185686308845949470852601981144821430528112287295315597037474068889595051755661380504896318357604249891139235212627902746610551233722680917104779382785951182829428182172671513171236376857153220880601805067050600162851851582601047308699727616137578833039871998430154812313160989857661346395217305049436653477585289051976830591024835974808336868718284579695498797203380225473189387866351194735124672549152007398975345871490844309995787869930399786846186408082037703484261748603567145127729538592128709552297177297436242241823505517774858131323268355312649899750332926865192205996073889238514631265582669297215205022522453779748686011375825375714273739592760646331219048235717170455707259751650923802043155984914605934933080080551978491122385824999292222272879040577054856615144152759427068978630341772615623758207287049786092341790759208972611383417307911704495671983171250203130120359013480940553113654225498115693418636540107855766090224758188054053465225156221263716213250113048833182777196217913370683318235851212849814442891522208315736207765609467676342403138558229397763499489783902125923083397952094633128457374039585319267555332380205486531650371326709772684449430878650588258675855291694144420180893519890814303530822609346295296834243577798327811809070744752380780794043047287284322725345750080657467176373145362169539645799994395111447830880478569061311665502278779408773780625487223159214887135938300924099287672937631394168790460299824490028873547520587732930255450668842051694745525958426406795987179189929356291553958999516203885153042331532347075727098479662406499320470393399297172071767516033632896524961408684556350116806150066724626511188299863569249972480383081191415769779795356516754650712206115961945597779717958365328070335571254395571930130243013489472534368218188450303800879210369133579493090713448429222833914279601618393111403089955131319234742461579309936251710088613714901120039752816830282348747340576728010631961679505247000362099567239828162192129348832708935535996056064343936619645344764104762361953780771908995843884761481023376188506571066995062724229469736440958678125152834472883524229463628291159215380499030460990708740414776133424144834675506548485073691100718643196709614947776482909513809199368555002284039567929998990724771641412285175327235717974542295590919734991285179106406411589239491458242073064826712774023827692030800524370768959159830067650980515982006469745615621655582927982309518917754447028166667992831287856912259332805165940838868270975444317835712886891218409075482333657166281545386236500005624779128455512883675062522467362840882158577885684762902475992517099166492205088621886632649309966346923238674372996431585868755352719798810837729726888762790031567058406286456644873835940192389101093252544669853109286067466846335409166978130769072314021955916234659271748342876473679107378549961461777032209926041466057655115588100893626662957299295680350458177840035321898451208261087200062949591273616698168886648914183016376731551779339214901023221881234836143428388099868101573853414343989847088689369299241099871924341116037876846433165234893686411098445329439328542649942727285222387197029185938821535714323919921078031839740180609743832713289199398483192532588485829620472462461258947664991130250779659128704370078608450105366969612969801272653408668120935429680045795255148966696342625077985642133431809832394280022821110141312834019010750850381072339945530581765664823929404960782389124252815839822024679187752514115116252921914082459453730540591917585754232778245479867109039626843997191520906400144452483882606761602022996686233398790860752284612546116024011881975454993346613067950450163324459310162242448285820073884255825460003374079053494333979257580392972430131894550454047699581295875267719430742748362732403337466172589947589440096037286922898190360492097482591372701376406730687543607441519287350806689567182592358680510806380700079568391592949751042201131408960947121392356229790526808052539860791572729974856073023314462891993192663811095532275608538198808744630534179775799212977651622491594984291900414873577829805708048357101138751749168315456078568944809273821777631786806969941359660038323447377756490376435175925623596532049477213986443691845257829347757037086972630141630285460940327677373636288120180483836641703846150394418045479058450208506691530436884634406336180608018887585290006749274981564493175216837777019517309013128859091780529199430243207686129806536234043287997685561633982967571542044912097613157010189241553778294529524565095039088423213309628294335236442228385063582771593926286665905776281549749765649419251078500257505218024763178359955821058001780183674545928076694472060093834832846449682810268347341424059759910923177110474940534396895995874787062927983479510445855556816696608794973438760999711298088175928218095440797433325744165433653945611127808453515341954216235747049263500474891247100712529730974565860239644210077463022302823971589663736751739776870921595959205160534858630231045526873873436693356065282434537024351830251794970997031942911802481631702948025621877193916719594376008787239313354449077715243293145934909198879501302843800906641756103950502592399847710720034003533180160680775571417039136345730853543197977941625981587123018704232511021791508701734321446140251650689210807606686558511549164354427862676187362799381051179835812432237565454744590556897023221076389585254651999740518451455289610133180110951318725352877691646053178323589557736031856591609789944860678539072496596565596608888165407228124087289272472082887424324543794536125471550442910385601056702327629050612104706850964273811717769473513531291621096747506431120696170381978845962390804546756143780241213659901179202248111996548770039521722525276332428903024438811656265125630829252989773454968567316390769067514091775478383053367726776489113963974122533409598223406270666835445130831705515550443670845027050739021204014608567455208919363306746492590619369336542442774489515984080482451740024205868817858260051516884507314158163630582608317038450053111372808619168479864173418322973354893686761212494459135268990508319343013768500815403132081838522015448995459466216162684992293617072728743275723834311632924555988232786686786169248157999863445898022484183837225608889889975693622123163767403275484762693579165612881241906280404044394708171423315819717251138225246352444393394182578872063998986764630560175367181541536137429888938924916707120377772209327889674692648671460146318025419757789613784281929198198726359098626927958768465360338463029627912044169767676607337581944765680844241196917877003551382816788878080194878360189115144306421666617897349313066316519576156085280167176637244481677972932973054045271023706837891058937546317047562791943635980749295380852350999750724104234421593280004236442299954312374738357286126236303132212960101810459570279126872244572459267817747319007317085431080420059662249516997059232647280785851977070108943609232339916329050270338992748693394239302297097072031722411525603610229062236265074747649995224938880906326530822430327320883711618990944211527620929388427458242609488311179880986992571991605611941046395344896268737999782884010448095759092781893254090350558220004850125962743658147417583310438922680025543836239833945171621136345191034799496532543692745170137272058485424471402999618479241767636396702266693563504214568191680162186292665035555881433405818883036992064446662011810448139123692185855751387238816200125852182128377116380281826673622837339867252251079935616253533849712000437246722469704478742312871515790916813294267303753957189474199089566742302894716329146192071117578074408356210496683389927337945315786265661767212489180968709142630968058508922203999078160249412388743862654661101655227364096281460170159511470831550762913818692952592171061000365887783165256397283797351812211612442935132247290430855839906832030054710389384483611675728357077480990337647166398833588848342084189017560339547132353152810443678315724051257590035282998557933515427283708648817778285041060891343642342783492740136706224930143582573377178435575519541501615317368726814606761338207438520929550171988531565174623209659941632707620313318259381353168381589774051028315392411322416451553468456638518144564452812147867966922681068461848531251329963645707349921172956188292271398341959312971346019264796359848387112367403698342481475795001695293888452566042447708604557633647177156190414529569815058202314838247658786044928187671788754878440870375142374336013951162105336524627870956049922720602499139701589721654068000299099323951489995421706455618467861126385394903980370658025461214092895004549171653457176218437518670994865965455903267347420126731294491506627623026762707323736215893379576019770420067215072775528422126778018249016317444533507258953504739405541354732213368459123343415118333068755853979154951678906398492736484635486551268965566536363564783231818135331814154863418218025553628077978045682993405218989194580490122048176697922539724507978076647439622048435043989464902634261001337363008926545523418679037613245074318795866812467847040897181993092778081265110521489669584933777475055534062393061643094194762160263643341017807237948791345200055311574446876472150528399724665665820402286062115604301354623706959053646410382104723350733109434181973885506261219637554178885763012767247005917316961591814767548209321116521178960001152761367949346198031935551334174948672869271809950341100906151099258557397269452701002307938868431196004074556547844842274947668735546910864095208381783625961472809323879180628348731787176131838761958634958950476303215856947277050411178932069805200002283507890779832755941838235495732497172121996759812565601033705028822970216506395175692595987513900857837540597250309981049611129934812985756112261292674425345764832478767196888549360487742005779336289143453050572394558943124380519257689288691530875182963227196534374107646857087666610004366978653916044520071663371151474528094605488805868338425165655112731342687147256794483303527029338231776450338422870810192532666027170009525360233182366408512066669278030305604708357737008623708472013497989100766513076625716390588161721469785459422405490170144518095468960428861571735454137660611751524635360009324403883108975520295013294377016993056757984835878384968286464139256797889793492147779355297574954963518495188358682888782104863046400569775652000133662697672745600753093526461778223045443603678413910619834519066499707848896488109924169443625176607351266040596700633216460807224618507396248510017180821526504533355386283434610487079240121395843484153589908301664910778431973889098332439842982893124703844472716147631585978418098375857257494751617819145150533750132700728717087157080800402178205781668426780742184960156191446014296848297865332848264689403409149657002038646155847776397112019232709875145983115717225833250087982006769118157900250178629437150413199310613241804621299635277652006013476170170006810770154329996668258130276817767065546025035678082248389441711483619509704825167126103949183435047202789870527593153111923285244848881906300081884935140710531545785165904963951963975591422391030000860400849296546049801690194104576997493391856256272133078233619621224849691100555793417764779825219102319979769950716684808842895503902823021443241772944263884925352582280499898809269825663102446072938431024079162966764934569640819178527313341114109837597045141159135867777491751998907022803109442472533555142858637532979376834832405371619957819838878477781070208880661413148379356788914181827548264290286391992272652376430699349640147098902841476116100415433842651508432322495495032643456123236683893020333708952079228398485590355007019133259355642498289687405579291136799604414742043484068610062486645353126460990156149626641485077772651801469804057930290994273112647408579372636608119693840725012118926260446467449885745418232008608936254402145501189758571003498570794109451898262311266209668606015472964155337312593249894837891159325179019864789541900448797689310501382048020897834188219607990836000377174750757624656940898291471352295150848097870595443682015116104002840362150258936878170207286686803755854539511681807758686598549895770254552610939256224210505490414639788650755415268758653937227723387990512085614585590177619451853604014721173651768386271298135644688590475152109944002300605119029837241952004058939417171082300894451530500613625361368021062754586301669751167874257295266920307735402500659613223226530475729749736242653804948235340858928721985251922093945461778293806704293257854754074188520594474565416990581116064989212154610149473381015055269562420212843650126994684671018241801168275642211263903279589666090095781020733441358993245618629484060701932022564654692059013325730614805849176886331910569265343352917169994134666873900389202373175803631301022147440499966984485906884616440858554937027133138915891656524584327755399774057811373267776791157869764339014386062123696763758609330289653815251247564914068982158151517062263830686795338108426204342294200232089034343740501906141380270476206096288326135529701573357979930808819666645890575808124970144294652171705821961627874455645650805497286603848472481690502603462474300951912146947600874942775779259776399167650137865134478817873782589798509440388553370244813040717091815762691402468606424117091272767449080295892412689952345157451570086371885765887765137390286454188188037517057354787039371179615989000927504761095587839278440174333590322385206156685342494464377243469924106756472076822509194127672520712087746507682173329579714831382819877625432423893796278036960423196094302141284420468226846193136368180251865188847022397485329566685314563440313713466314051065844169659204754389443260835672609970154758827693829298757289764544267312287613441453400981139988453673954873487339080802067104785918784119356425542760829288932166402886810069729598925960756910488486335023843743511247960195462871849196556658544071661330369064161414409078763660957727962349941566990594446245345678384351238346320188335280693276035895061928097168171755708134548239867025257668673597348488018584904732568297951709680643503610151614652159773586666552823580748673417085653523494709122131137629815540309502869238573887566713063352734652803027678162715924314239985786326705664818799410374747218632485000723167518563972842473191120424607806885986517769458872809383001078098574662212111973115991139554370664468979598580128873799915946617588623437284731974559322679152767674269442731348359495307140552164703167551421579580599709112829681754929906811309023143828156317671254260001169734966696930188502449342959294439882959924837899536063184305578215538094642086895397732660850549947896737329687732166067711772218578932645456727794208509921536858343772565792504619598224008240442639015901339512123425599373668210764065972947366927097764035163279789144568760642819437128377552448367398759827844679985705132881183405671396261944110643922098361560001156884300067492861001333294053983608217898826517175876903031802758666555529022780537710895477598647999073314752481428539382060911884163088237978334099362149276001499774616116523212068872597454706028090180025397118047493847379595168479398447794069083765250316357914662461818041136165213921951734144279550027239487114002468131212155377023805600265944896692302442714310122126351858172076230075700315560025939032185146500022352109125620456128648665627057710641608639091491786300959357827774616352525161916631939123975545583633366899637411322268479715937488455057598148730429215981540748117508619288472822097346324048412745253011230340158757456767439581082235967701171093116596594119622847973299925342315641288755008168783371708495066786248760804737068464324712255493110935415665492710999161512468218206611141089153109790643513763014946532299092524622574036326680655150032677447533610678364217566487063582576557456551678469755925543010514451756658221992437362009274988707396556816455037959071932798895825913979455777008160158154663422984326184231176237354641200498298493122834484672325201967924904433867007588656784566301203449737933543393828451652334219718790274180327117500149343015036986827775403628627983942311264926511944575923886500857745251577544323570812000616734981743501726765845975935951495461975064750903981241681367388190239449808780732451312674247869368063144879317547067318307462782533644975700310538529822780078813361139260468986725071001173791215262644281008406188310418779680318109920024861389283828277802170279578691082171574334025181917395881193295237450681182253082234960728076035748504109403623523114343621662335429009095591351417273550389439224241060849678400149294579152126175475306496729867584079691047455110670921325183139175681381790117336543132297724199291619402244024471094922288613836517810706911461432671395383700213097598118578780187623485167694070653398968235822338752290692197379085247080163957662237186842517843532124853698999989578643193596509528158534809693691389612006823801527907139344600791205347525548474557582709741561679326512624842471432454441406299682762428952397138585176284570924437036780695947528913340493159457084861183106785664532252734119175216019713735016190481218220417568348263746323122274837098758449395545012929092181816243941013498505229082447995761069908961063815133502889031043668107892347634163046058067198206891685422141796208220901676893068808723788913125632651931424168918856931667914495366319188686730324470369016823658217853525963584017232157684611166469049970769582091557999663483299884899360052254961966732223459161611992651895407645381793303628210706507139053058281527430237934333422555214853655564195559764050947486009792325153753387208151071527190444692832554280976546047930185549664635486580572580281069421624620953095280022282971753985585093275166828151644032379545421718095951393329096252319885193316220396765417787923201274077879383761119370834904595387844372872182655190739028402841455309553229448455601101810859617740529548133571086383652998642490348892331014729028130578005535648129324268587170539674452284084198235585125932169547321991917170859853782489801725675869799876151744874623194100371639784501329854430396663427342359496127678964227533803997134176639348974659140188967419718772213803453753293400353221328574952702958189361266875025237656917984178628512050046819541700104488912448215614055558552095287157401208654534621836630454740274236014501391358154665080411052621837967530338469376248089881373190925137251816069874790927202828287245010557730951100952171987864062216341341541265524686390942886249992803069965210675229780726694948257482943662223951881786315231882578779329453045939910817910849116687485927763646180790082025886090516694430064044847929556827250274468965829966055253538231607634319365637742890523154310998232221242126285862373416203247893875461335260347102395749269597321894771191593545694127419769121986839400247542180617039170509745134671178065948126836241496546857905259797570682406058355452075114584744268262915862063638633380391582886833121123602813047592051573940443151607617010986643895492831806878432442868338359734098742541358015787769533199209664976325071439273195321329492139610814901744292654637345230797717697304122769943365472216343570167147369202558710484897738888873861889808571140212400179466456649337001070774674534570123078229916383710087622438876211395197744776515052793220957778197487038883976497151160034348636189858540270342609854180965467306816565673642625298923423860793531104724751701487446477508183390162817740337757663494451742239922885412966114460015786369032319043123447437465768124501210127951603780415179391029154596859160537239424929863191189875214196163435432935471036920472132299533546994704224321945482116243484733876596643222612452734929986811589496409069407544963196344979114676186068844552848229649460393789553038687542270368477473389090319280655203478616101443217876711908076594134703250823033538060769211553085359392584199660743793834277542667954060448580414831015096399041983535249144192633437115273910249440506524210531186253939182581698795362063300494860873096221731319388808829256782710217595589915215122402934248523046104932731564088637807461984196802842684898165406053615291718522935967331070342031499465728670975591036753169392451224454385169920102389810113924337755459306075248629875439195024990778560838966827156078302008334767613628779730848061867939959280675889507632695496594822302483718378786401300223331881674565339015546430105996648527416142925509557806963933412239618916194363221661198891037639686447128243780648280016782199920344868070934188893969164972258583152907619864487921352219900389962276109418102822779119481825917259191891653077876151153679647213800186846429907381890255468815646658657875069973773844501460221260292954149573074274180950715650154776064927228644679456770583949553062336762139383349838237103437045815912836686683881847238468518310747130072890870166118774605039300089406838270196627971299343385146823933997277742752515473277944458282929184849583444304275876502257803348279979392254011511685450284568250313633782281962468358333673881314716002231695567078169248585509614511147415455257545599315253249431533553130291505519496233921308340558886877828978262627104030783229864739354217839228710238859755743920900432713284891380964206243866582282087546247747643833330967805183982777503174847825356372325843598000810519967470252726477114012185650066157568774484131009852708513341248043274944222652389596632378814419521489344840392693851108558967517285939267420423600750822191296753000676622410049248624845245220239509155259566094109896040063990791852554396303359085257589268555453268043597760135373231317196598418281212580673427283147630827946554319928333707497180599170020189694484130423778212055700318795946888714723310948816897568925178707094584513294377086069284913884119410817959215239906670295249967828258324245993831439286335749090789302897141912275291928832017440474422673316713851253246103867591289254036312798732063578549408542562198582972848219058237553478664619067425603254395538818975276990025974173969705415194892149871853872222981271653444292154051472230562124603688882514514799838804749237624274442868224968041743239179581579151046423111242748692730663104587397156013130969457765156844224252550843997420554605110145139103957539522949666157870993649022280935457857051353708612266837788000935691364849269014274078927962113841222432335007102064450058099021506198693154734670155753713014611399347547831632743786792189533095043602118952212783679590232376063671929006523559354144813516085677700606087789649642941090399588828274225064241090613471773345871552064068890043345895043064399314983211616362700932040677445016445698539496629356129723783256558566200733901422875749922700936184442829379131056448373047039110521011546907386083731252477312995594601784136070398450495125025099578984501177755676131269403924923657860648100318293714182280116956628834604366071361355684820552373617099651919930126140027737985404263817549321052320581960815630002245546130157032716162541810347879223225486677407376316783332854146097312292281095313766443830928928831059288209622928979387170323618080561839481683482077645323220392498306483178267847125135495545503170020274087558089139006901951947685912345773263927123112238260340547007649384474578426162032994414579665444042532765534412717927495356207267523993021760577435078028989774391293465588664460243676775886593095566321413137877922368847897620106077813769482385688967576829699175802415519170711339346310739723907355314529618895084559444877725474730849023043690304742941286939322791129884845024910466017286822380934866442608772749392144272068311653669147948465847143993565633060501329483128775431633089351770357508641294260935700516983992276305625316699315082361519686719185190145917443366373551178258469303549246722816706010874092682884513523207669841055627747044726365051332580492525303141664053653379663793622758795020778208032877623804876938224587720864639031264334861582166433286019785034140164861195040807079057075991804024548547043719085692790119981194655114340603764078539979435343919864586436076692171497627065077508705620770287953511428602758721469422429008567111242394357958000931233504600716883248015726410130073755820813237363284580903671947536044371481853030075092337841921600823927111014372152044445934614934820909980108848820368037944149542548399267271858039274383459211940785140889940839019476630258365032318195940395196886821533003410655103436925294499360294452487768234338580660489968923407588813194079184683858105303404760805601571649371213888731058561142265892993978141840172884902709548252870391042759420495457287679574134945884680753319188844875466680656998767306941864845261228984545238168587420252222098812424908825805932012072095703673938224978226963531898850865471781624477854985058885628291838662542540019657265883037206763575337108040874091641421837639459021182456630135589294555224112966001400818319255437160732188657730141872449230268871382286075319899025180031000353632516103315255833604327314798484700448823781421184574223695546445230853881763300510874048973669745571503661301906041209691959990458735188935902625619019183237265144230738831985423776713209773877981135350802745868687892880669077257296619028270196143269087561290546605313663989933352775224750550575731195141191458207315428438332506797562211758115859752699335631370356449120043798395398013607688646475779410842992760572668521230536270895048191699984502433285449810180878610208533268647332725896335582181520153694318452830303912090419840092954399771906120176666348012685491994462114518767081818824700845133590503318020284995106462578257533383437832656765261963367696799491958767407346915399863412817275030769972381635718265932306144507046256128042929264750712184492620254179156357199965913341597554855346082290161423419671663504115657869275980242709367461383944029601074473859372822941634029090380455783937333120125757686466441012234424552653387304369838422375069861663966550681104181028459019731111383706823422171227738327939362261250518374289929181213317609693879190546372146074388140859389258497701770773010250891065860337366866834579633410922054997491342838688788765556091014281147996042151277533766452593700947815742652047157937301568834889111992016702691396761449688137425168769895470863404059223025534440908218649831531460244512048861324811577876698178436149257218811543025272591670734495068109560559857165868415537450603501432609901324812424933304704847964522497857809954040857871559916153235045425083971821644268522158563598159676848257376610920768775336380075137338280498523755847649625646171890473475778957929610293866085656042598140849169418935115213351752398234111435625366071985203351419217722090310978971076640631893601894655385811695680898067628506691144457388418254301259073592724126340803475534711483162060738192920180589619116660237766153881341549200118765865372207492578530239855667783256858072115824535685782315202301713075073263718574174798474289881513715241129170952316670195451871174002477460377859973853400770420312185544463692928246215328699509344944930211393074733356329187170770069311722075154187237325844193853804482490210187555282130791767491009405278691468825879180496847542868671998503881473256559088959109870926909218138081018744074938483070635409003045150421035903060294848864295396460698497209244518997582794307354748585669431598478319100423879481921597259792793927969652923514997294519478741554683244251512374908610274281975105484149952372723644391252709931720768333335669648691815661108822420338789457142133303854820141294239956242607465584134328378622828736278735553969860144576002087622572906132643536669457161072385882851240000420694010462977784816776316577324974197368514823126838975560276228805444820467587429960112863000308316184276704097458458102259957005977963961084086091190529360449567258233423350939845206548105892070226670545269483384717815267945200110847039794501546880664494692253419435990859028705984291933936734076960351047803657493136454848715809905540960864754647921375311766656794519967099645416222958301246092459222435011907167797242314935962265892072296398753022093089522772418718025748755709158013935753483836091415052305067751587300864627614955443802875279271248374743300691023818277373805677299006327536251334236795526144014051696431562389804932974746057960218996770730546994681428301931791936022041898653340960982862800792445862604370896681157656112243981097412969303792975244351939450703495441236672091442740790615263370124843663734779173046189607733414609497080490339764476743906400568159406420770900937782120661052277314800319894863760773855800347272061561123376001930947496763150852811231556875716151707759423160358971501993205023518966061248804704706153717448511611367370700280820713601060984491175408486920706968200500132239947823110023568691279845614315918262935568782691619248833646339075370886463240071129644596178196787022930125450129157761173917815792964810991010811524781770918028086305143313573216120579674765106240440198627799936578795276059001458224488329210062178289469126304645672761787329770298699402652443954778553097170318407293314758664047553266269810062917000570905192969409561795954108004766535807779881211876593085487979243475792816979185012929001749378521168928267242132939320214318122352913752932736609528471704789811668247461053832004238640093016997318128677641884794489606288903661437521489648551165352432966453843798933589787428945993769878522738868843840878900942036544509737992135450193124294089653943493410108150114409518909118780451632874154267115123799928264987005106825583398281079657093560638046090249011564082409536299406200320388772898533698074031035689063675255666102324294200901575341815254827361627086230859212044102226978732948548153404483766857054251635582153269970378881362732063701781812080361643673134345802992438895052344611562451482998982484517433918880531431274147045887138378329222368418125441890148611873231121481574114320392662103128047589058566791592192162610853480034736209775623796329796030566982243261426843090870215868287291559222642124907369378512121648479349569048818839065541380709855695332175008852897852132219726722554870224504117326291674693154664479141889349536351717668125951483869690450913421143396141667123104779637338710273935353701799558191395460061541276365773356388638377860266113881212699373318503799013094257775721955724192949472765702516362239241649790924925843947345271312659419868262969718018208255161717589227063414907253478658685661514514980993705141736432837431210308118014282470220793537760846198411723916341161042016738231894505665265783641880069988727184171072658827548297382120389448539735507789691013648261365862895100085192473013270413914009027202836358916371219303691408845184358710248924309840984014777798858975107311687760466108698307154534813227778611921486200281692401476956022031945808011334637809647978703801725991435581480352351289418000379303199435221057297691829849295040710676740470507116457703685998006731517398069894718865233820972155903093389425858750871186521989522171608264540042356775422190760282448160650393871569178122059369230641691505188614709453175743198408033981199554923627425127738549842147529148390276217635051196092395424488279013694645206307506146512469972493301341805810964548099720040721746071166561844979798935944323343355254703587002578893147659853478162238921459307180265688920677299824419069328118577931858187265756323386822406855232414423122333197304485894944971086884914097403904685647514609423608682156196929360676715823923058763044778401551016242447011588461220802264976673017498314067833688037047118717297291859839640096014927606262353474063579610904912305607569886211328810507254628008056528363114302804860591714609043974100297828474214022660922571027268615393307566177076230948306780886265554197673415660599911694782253663901215601421712106536944363651007951525460221970230198874244144419513824053596485455926987648324015474552801403713283345722630110838133163376449254873344235895345765971674143824361998787641494389429282113392776269783383432004485095549210011157314023169237805321797439964371594667924135471273393169106048658252297527749847015022408550681062285152255460727700825027811674798726761686412834957661147259799853011784443699458386779525484331097925233092529625534808777867152179074011099879054388864420496293569595871354661985838507502855602317141551567112314553128915074967423308766985838318197714290128723912149921743560555524362468785645862804441352232102778209191149035359348107156325768309756327045564154707204372674462567262080472915070256485030138136082871989606731677265504863479527075286881210273926374358118380038085870869617146463160686135828865021822383311262160249314676659295486370220487754618497171135242386336549604620065333100896326849362856815831003790734075578149398681890974838753962875727543256387272444972535398302058464370773643979472970326965484623563376669210566277441560221394067023182044629757640700906100077876761935074027230325788484835475744442337010468191672084552204815980517110938386197682702455063773568298051631961446853911654235997410705984567754192877059078167661047988027071119195460832486033379136235119130149242789520929133138338876992718897829074647455806579767543890900542918303461102351622878109619408625470172861145229591116107325429432038438844023184296719192545619145007694291373718026171523390367456068075167398517538821932242625385591946227762097575645793307243827342915309806356319009001888791614226240189245374083711657849534657441694359875978734418051140614344976009055116303700132202932236278099859208648430090699341691122912559655098468640502330684230192773616705718937025149101051780382342399313373889810606553415229106024203100979846564437916582848151129885741533866850608267923805802016011306139883132869659154101901571673201618637569841347345121047607425758655403566100410837033647468454024504020044532750515782393340752535961888237435282462512096719802835484276599342092284986829704281785515553519276846555970728897686459085597698499241714539455929500703144520376371447743319821351539905643100805290402255202485898253720255802400420750149251299570561596923778782977441857601939074318779053072787726483530296437297288102129059447544508739717111675297501977892381816884213547992207837793121102162277744139433751908461830938013265420966991004028762897042683390457000677695129046147974238881332153713728777759977463618527779974097966605859698389790163725059702364614996205663420378819636211019107223931337799878858972126602674117409942318727167631390600879101187917501627190811195449138244903902491117536868805829374372337932726965331257441972061565830659409447216884175665949417977420221269675360122004801878434481503875603717925604340934136713301949146527101612852725534381980445001479919863656035925049554159068672268444439045538036580793244650610172946607432093677806340976517301682021485843310006252129856693175544177363878789727318478622567694969583457651305875867047474494125600275405539113386448363559898548108782595048652890833338071878786101862918100043115234352841773389091534150245239422889622597595473879416189254461211261553321241076584691571609981145899364711126205010885103153510610172909534464868522438136096931455954450347325701076554097180104924686791100934382665338389478287204577967521448003804861134743828994249915118811029282792576707409873375248912458962994590869646250033861228461874744856853067625559395132099303328178451057820386685601167753452296082849376080221644055232222075356139831005693177338830868605743067027158280035453144902456960077223512953823525845257494178012735722540859752791449508076612434176883647261961487314089802041994533049318745040578878519948150523070124212108280501385802038675636828527140861304578688723605964696218838135868932320015551403244012252099899519700293506114027712897558734259234951634503141681326244603745489918189760078829309729401451537658207727680110629694955645925541748541473291344253654827528140672120865717348461860506446316234201125367382898149115744711787470361468456939270308425114926173027996928206999991284641049161334737856131490592476254741150100856346696665298350705992493163915150324285518356644335395757506998704377052074362217627606827437755394123039873166493459188677913946324101617115985479386130973360763748422431752753939177283924049431961420436834857717942226322410336840911920646783886232525066867273941035282953439273116081147257208810757480061789320068982526013323462911260721246660804181825455217663425589919745928851510465987030355364735827108709766727149651878047052994664565225123742269261572516889198075801163557967897850389855132541126492137428319918732649191412416187663941485084165547414377833524730568380726846207331949993592493115730969962716453841029653995655926133667116163554268799621957768569213098013835993518174223019560462913383400724679819285490501494336392554080520264259030820282548958841837139708660664574190871753525819329949400436734817304678016541484630578886851058455187483290977582529428334287882271685516867605515478357872468408223051449375801571843346825496329922872736668568746244852114459347329090191629221937069494681482043767466411087436256007008982315806809732309129778225844090252274175413541106879837432470972528373439314658217315704038064384593400335817224586830951316866706193472751233185149993670707474548096346848927591692179633751906789803257066682544266518603102835228112492867148197164350258287379845373672978689208629908241195432512654383126445992935232792610307737794655300975214267815557229624845187278192744784015716233760991917684828015885516082254452409626299092017389222797782069058600788018242713971931412206405734511966930878034493101261111556924362732325872884796238614247253884870108198302607291026735686174676232943450121006137859070338080187486229433610276998763540472552620563303187539459170599004554777993184475314049558526052047968785288228747925762856833095092564647140736315708044267181212511313537778526946267228736215871507620366869799897532522897912530451327482575524146617581671312855009651031474858371053248866195596978851175789749527877446816455785978878543184612693872226253843676828474637649576218335991254410115857395624057929002435350372863819518299164783959725831755348763085442427351847285933763917588531007822041213280730813652555036083974012929749916992132984476608541484988238757694963280553224148134283077902446755080272993216288961172435493799786914197795366296551296143546082532890171851483564636534830911798938749539090264753662874017272652487388233560713034315105632025399496806240412785117832476349537710033457072759183539942913756453772679683676942631355000112761630750572538611039282523967698215524690182935672153224733559891794657011502091346711675224269735836181113074536098814958355140053227229847103799580897155280636342054213758837807532413541431399875877589432148335729370579431215996162590109045872032753902803667890234278241577058655682828671642554535982240683484441429033798319833770315179822226397553225843869446512357399427419652246693137819468819692418337560917055856759139392058883988683706244874184705608436754680522627939780080101567223255185715015444579157423858795816234744245088379863178196512376293507842320124313430896794605020366861681898960935290872284570817122198755150742001456326577187473696617816805131545081770712220982600003844692318576249565300749085337168729803386891996553650101736014308841113890019344328911527902386873417885215116867188096131099414327021915068565166149362280660142387539414510669651095371423584722389647206762030037040990684346234379705641405701678504604387138768634156387340677698191611948239382712852144047271785455630732068590482759978642461223438305883751932382087799180217393490342562673965438577833876519783894590009562316080570802595842260835519020579450079909409530198762796766377117540548288681543683608722730491228725178805567860611911623826115922532774817558884128515991335632659233856321644064112871515929767876286618667007422442559491883309071537900610776015016718444171324468509033368824082423912229263225527807024913874222705754264171292706393991528554420819060791953717227683328324048886171070211315560558456304881978594178194806273652751088408576486022238522113970714041156446614313528890212656678454501561522827532333347293123276085900924578090603638957001430562143698279436075082061479090623232395528204389408087149295881088426933663350613293924503920950218009465450904232612634236086085823386866786138675165282511947779669298870947103173864262448434151761116486397290911211007260545808107196428138418627381566708339723876599707866273263182621329273880641692073642345110856718053804012144678224924503251450888449945489013404360492056756430582051885280056339724296262351940071057891099181962230530137091756886336862487815145285955133839517583429522876996899973338996459038072614059100152180711973705680197551653955711992507923168147656147994427901075659285723977089492177298771240152202320964461719179883580980762254557787651168243297846191500165837031877124510936614902151525078376357703647215672514006450064101750740945967621207745296167739241676952157223156692821630564413411175365705499633007524374254968839770786947965284046652805668212801233621474707940589722113977136888890766036458121804170288263210857470345147121503164442960748441436917231016386516807637586954393923500174711024307519295615825568822868889400417907510396505141386918238437258144599268706087654906202684087043427099300120367620910489709050771171515956013513011918404458440743646648165622089329601337480548156417806271710773619509843720609775510700045657958876028835765007618700220916542526924997032176006416665647317649380965166222503238446719693961289677329311743460695512367624794906031551652753894694695019805636771659236601623525855626770294486634327319890326608983662736814231189480304996767105349660002471808841072052681262862370187528686663302310173804389591965016405426594253821221950214515260942960734092955023458161801211313040957406698092619785985241663473463890109416871148952801160359761158196272196193580926391866459089173730576964455737654610638946806807546087116516090297393756485718222283882339971056203675324679586027911258676978528953183295137834294328241749053318966470519228368334364875376534674113441326142342198642263932780951287325897736684829261338416432614048361334684898604565101796349907514098691371828493429217785077422156377071488252916377481185161703694789784545862000441139397908974752400110540573420193662417529917811051532721551449339139077980560187782795134313817873537212070605876665765347672355070643429548983514902648000115050940179790965808032327077103758468851153759420942308582799792212520147931692192879290645616941201766859976420881972314517745526173185889964323361383051786137112089329222693484047888300197821294533240187866486705136731625248041379852088576751447492294839035916751032715287969087287623521666002123520009659279831589233824861339208560259124054218319116399496371785235388978196825394003768554625261289632428189816437923641348508004749629290405644705176735847290560795258153209752713239782220460442689375805470840202565039198343751888926451320209443907320266315761019467028358520058245508458170733619444429595921777215956520777074189799725757094188051343885221621989718818412491084564358587074381573069875310810966089380608331561517229092726915622204838914872158759782026876554218128013541501675194691286756984466095581711048176501393518589878179431508843304759776055647900455503449387748728718792215645056250684154765239526350445172628064338122536785309386054216264916962826418074071368678002548707393521150973084230594654141655588513767438574560592921991889483556049337590936108113521538457706198066131874559184747101161884906270136043009802341757584809647009792759055048718228384998232805248486538783617795617064476220775848412044941144182805544539530028933161822233382808163237647862965885717967657573731109543749882283151106229283358886149001876616727383982202734699037074825303433129314890171795183847164992886194395250407716148732102581363267450892928790916696480459408658576025770254272842308920823496136006744261530442842916635535744697018655028319703489440238191826521116619568381735374156192530946679460359476769889637997850153387263535213409253824043019852425424906984753768358746146636947659332986418133437976886264045438118797578685858518311907864257529460620278852976870865169678046745605612571885247794687324263722366806110134646448024245421751526119947773727306151955897072228155165228999676299140853204376499256147546062583952671268456515349447185691763681968196637558750919007042350207819254765001454929419174837004044200569623817000280448334172878900032625263727876797753693848367047362957427273264883234935814700945730042996703712374003048808818672228410723331848731904949146421764513581602843488991327351471708731827731790324997584319182211163824915901227318201504283497532086222708992558854253257868253152250216682734214705647303312823665232879036028779933896777421715937818258968348072407424951103775212640224363997949406787852642003936609754799759171235598368665726384863237986259354176347647841377541993221467418006810305663667230527633482795329375707777034269375074889170591979936626043524862819718868062719688257087761428006741282197406406536208206812927668981022912872696053161085106803803010984395770864796577698082693464078396086601158121758055542176058649310919339570721465751346977906826086502772729711387264086880726268020620702319904505367580617355763379189325870731625617040254903568529393285565274215930963927251100211897754189883344831399472698403819395449371128299339176183261508331355113029222479359676680303061181798753256369789709969877303778548182950485052329883623775706603154782621942761250340990137063879933307782681412930211634855716616552848894709660421061893151834814310066054316894715381635565320999896660520792865363978469564585810017772637718780691444050977916090808894111823227346384314682257335227402543507609968951459461592277334982113585829354513493688073875725625130864165526918203265459565077336544449669384532054209626664705813572955957423490443920694333605058771575995354692551625439355848335898706094409876737060498944303638233261023396677651412927148374604310849380027681939926797947964762682884171817846866175779757887270559225640338756137785698512292902024508997797134371062866805931204567242091429338474710396807567257335253864723286827765948051658347526626691399094656716923336512923203891103777648969742248478064991022641281532060495423821686631823476040478954116506012051154440905994370226458187568038273763773773714304092166484181473574963032255207683096060863987807316760301733484135953099353510802845803656082197602999602480207495823853627475574368319915024490901913901301167892439163183516994105636444809059594350329361785657563160649967485369228816413780402255230713756333547318977830349234449276356470113815181872942541288616003196948005010825195913945359674387805648530731071122359080420949543011292635194724836392739356336855810689969728805622033483728504793519769918804211770126069426120265571820667556288670558963051041857412760096595741246814695090171343366666554595402869033891824684780426187722461964882695738526422300289646851356596346880420695253014568904339180690731672295745131730539099626085597339811253450515009986997294806962815435636760747689254787466442569619094265427497544000078793819712858586921198598537151264824764000800654220296985206915880976063754574953890982037968436910282221285316974838252069772507649074841788367249283939729332190934642801524716270361457758970549205204435085275874155522856608699839311902223336254508482341230877186706843274213485140259304554667854111136432896850373918462014105177946897966481346340761449445308215961014132459030603326080730214812725242796234843683579267572257627100960736039516682090202438080770032254065414157463195887970693278871905489490939214325975224771454618830783409972319728330458646773587553730162298240008420162725364125698060275089544033850106991043303490814369539593608834210764408514150680691575678040726010014777030623815739828589918325505618168017057099616796123991587266530267370175774494170813619545716131792142521571986780248517834503260850628661979223709695875985227274705696229106501413080252136625474734663740894463353234837847912550320065560780405070352502084518415788410404047475871966317228843175546518420680528916912184575957763794627498089583354161020785815853674210092865598041594137110273425013270604685421830759241881318989409151292150521422298672223381020785414900687354027893762330975038600667079605893096262420232455429398210009241254056299068772761883707578585001418879398770040902564566168021621056240463970350481544455648139649916772400294235920915499358969788488243063592988212778976088669542440418593958566833128106683034115861750545445503671927563256678451945959562270763613782389257906344508780800271105948813634391347236495277126411688870109385490086038708414096814297145485118461927401205994614360339744994304207133158510206328182522893418660280352658760139206751159365166993739884340044301335238958967096832449629142138871952993490895543063617079557664252801133865312394580823909966106410685162972029657446503421647085338111555467081843747776098138899243442174687086450116911975964591590490308609827796580985737817987731289283112512149706395085949399171982597906714081654703394095982357207785676855839098544848325920439640657572987549988981717747020982236999429188150312536737563626113623702550498060322152030822545856680229062398492771284619224703122840771286777531702168049226886328119811454476243399280868909135829102904430214060521890235367444892169309929622337236361508898024448910590311313305515577720315671467471910821877299896615499588182137644803545375229374288370586938025316465832157524064748123151993893626121523288509583306404870811670523328243547547916093000996001673957010865023946389843440836615826998093436158335737492706458309561922078040141300110587541507326047659353060170897803836573841105073863435442714356910940209816604363230437709718621863410204107166982265950662560981096840794165822960269817969409125857829612859864191075216814515265021770754227198997002854761520876356388423162509025196846031705522629334948241817198268561745602822105874740477714747902665375384543175500235272361119575235194099698545062809789027216228711535289407149172726207593180865345844423005780680461776928745919973600515133653240091976820979804906815428071609264290537165681764994549546231642409110635564553721536602393482646200813040147181617077765731691642371024294964531167195386965031513529260790030891137477146657630783964694236967944561784548782562047735960598769062376483007878943418780161413149121125633830615584609219906229231961031578248214105687609481745127189744509620031583297219128435308818890037843860879278357769295333153621576764157772230962672149685143286904607814382728012396789430876693783983197653092700455219965194919897927202492991659855774522771567868144084946311739250344994059912188163270705330153098280108290977859270797242858638820443031107216202109732921661527275908940816918580829211302603712545816179489414851689715809334264675918150889025493075847894389788671551623229895395976282555986127675207589853630138163966993756197687214641616144545167278983321820331076159129345833413854107101306762737778311344936264986786033777576799592177277148380292263176207772713310781791097433665031875461479249724379561011839964525702649327520106732988308439184922811745247306557312819341891072285672693051348312421071466841930753706784437117255197696477357934538939641237246191639766192757580122817616770270930315328124833311073824917483196576545788321150007485896774197427792968888570866057549355615252867698111356379098772761656472238035010768026977387309945665294756836343449151690629384546776671388968330682355081531404256980713340776437526778832905514446764373548355274632516199387849706569317149790470025161815236121437536294669956607693939159608032728724428640169722222829351494829763435027007283009088353454273106025230119583030930345309810573463668885249817214575615726349674751200301359037060576590543955987586405004765598812005832651917749586004828571123981394479073154501184229269947533003840830583866863925079937400106408787308421536542391365170757950798099256350462624761243683673611465212567388838349227273304882302761914356493859341180947395793551833081978093430455011640010824498087702142554370492014639437573920372479505295719371010672721160303111547696599931614590455954676694267109439793543852550543822597352254583487853084364958581650867946169442405680504500938895321368181291468857531855157753289781339654827445080814796069859605107548185153100288305522469696993194267125592247469124822076852638890419205677693067722017237838784440087808430821738726531058795582649690818116351156142169204235456236159104986022851178121952961920607333130169175009422608918032778528712509847303775313356862560357045323976967031509345670889576768522183564391128429458207174748065327204227785127911428854798184382196729746349115984837326346834656848224854269236355238814465123308311448419607169932838972013581678583975580756318013102093817500976811539433421082734519225963991788909021359138570271303013813437265783530340524960843782825662302750282979783483327786833075792599840211701505959779401344479745702320727748031516765921357552058885844353386168866263270467989230979989573369992007444909595179387776723700884362409986231986809335380360443290024734714133556222993552335477557631951688413994423767933819068015631682572997086205405753621703294681287749793092587497017155207355029165730715203896943291180064393249637272836040952319002592148452462855712940786368408712819551546215276860140783973907131234703992410027863664364361012243801569616282327068300804287135742853394317014530283777605955090118215151684945669412702037669238096606432235589424752166569452767059731028121172871596105642151039014000516638416427098586623958408530212869070189384348991769761390482272375053422395867078990583060873865947169698497621199478551114253600432873786727150858806598096798085234530921773164006219881779083022977074054847594136818192372394362983973257239114143326025881878707799736260435523161551098215099248651675061136486180638517308103206051444489922310380263486266149185255147831168569176002894953418998526529748780755976438152211467841605315806104156617452863692801442663987118972607136545043409374345861635880513837389680319633159076191122000941505565480426991732970207404771543884279332381579611703325289516640020350384103772406231094943229918728615358971167349104929582739030416305643960352571375516963436614281316031264765382630562258801496631852849479357056279106016668581681334505604368289851684938573567313760140861778001363257704993766899874147846037569868787728063364289870368499040563067224709369991966918610144361136852321969011554324825524583278236021600942561003004641043185525900078082588498555374355641101161623459006407721573411216530570540130794918199604058112377979685458141989705399327050403621193889999127516829476841627342788867377444037291345288185993128618532581336846070607433135342301907228462574448656252909718322462740260187478414940360784813628796734616367800028765687762018203509541023839318387539319365037864525581765108050944060218248918565546549303216477701201992360472625499107578825309908956318383286714275705713596106153025168693137398885841001051982135955362854245498844637675581101300501370917245761486189490139002429327779711588622527626721780412201962764556309170821355448954789164796455248277356575856637863895572306855512481134543812646555260453920314847232854106766918165100588732969982237343880033928406177743763951254451386064825624805920303743626651062463619380693134770902111451095742479969674901809843903154669349140436926754510422583553085800953041261029118362735226635833344675282369189436356314151931152851336593014700209013876286171448076255342362678933238450463529703653076797298720437679416966480796816564820450533029205827848836966695636434366180156004947827826924803949268171670605980692532073879930289133485633622191219835172660223901031651936615715521972969749405857379390625194543717661818257260069237792519643722569521461046849025554267468357283675429856435653646977587405132433965493653897224854074257172613947194738455473437891468218744851558124306571337174096285389966446444299490147032501132168585176667866031678069435613389065193035453602249207619595315183388717823265688749251466820489052326373467207081314941845129671440494979571856139557841174401865892607156066390929534315186487797861303837949431602642853327435736937036748779947478699156543918985588925750985751913239300953276340896245455675150454948223954642079455065397974781942258160414163413536276583476295893731565338845772255525077868771300369682722263589569288881439861466905510581990957550080222117368763200783570284078246661380542417772385358985431326819078272228672753092602797011538632328747797549407776269617524950122734021607290402495851461303015107737556107428811943943137444514190612721140768383796944277709532759167170639505595572311373257780693198172055934069050900648460679279873195446481080569321391565168056447123546330580857268072171592942588248519948019792894783679479275240493975037218593458666824144676630634070707928511422893500653333329319839445341330297439598020495731735022615930239171156896242062190882970244286288083764508270350217590472823317039113517293792220117868791377459745773152734290165144170950499770723570232559245108963399203432826190593519337225360667374660124212902975421426758498888698853217067354935367071103245487205292221313621880470930025661364556582262685613830944898727684416571536606165693143525777844959207086959645824222203664225271280868044443392759603603871541780260979504316765927926053759542756791376445781445181601108997927683289679304779877034616279340359977438129121692840588091181821927072000351438885605059694640651905855867543676197806232621809724539815960418110091607361319427538914517383007482549797873831693636116131976004207292312966789607914264041346097852615101560214890191508335647923085012695572615390841099579397518961137179913841633953950546564283115274916373327384529969473420732459003524899555351979972018641150924544495470002366255166189843265906651861233746538064549201912646886432436600716080547902591341504154022060621587456408737571347625885343688401478007059333037313481360966394376330306782018556514642682379633103331245019444221626898957020151900437957006740628923562391522838931389083690236590922239965038156197769196756768895499241509263805089442861495238793241062490603000766011180524458508072116789644469194432710479098785246399808550070858951544286398420851810524569745224341700716899698782582227034052901900479316417381772808976652857459996092859918060377170284653578877374663878655787730493355324626198038186061513532660136857785866674210177408424633448083714024909302139789269033254027724331854438943804807440786465176879226718742096961527502231617076055164137572789630348843142253958651637214611265859363340863543280818318156017347257542946432233817777471517824237130098471042562705256402712012154002340640132084152904872886494978519642719288827072415757058317955092575839567514433781984224125155967420303393918142395217839589991767765308990396338363853885959727623190881142199633781694181347250275689162654564390731088588542049772375250797896891170041814335125366045181268360437239047492084838105649146756809057602544853559196684061568201615447971434060694984164111185788623254431497455077685222609384424024264355338118418798012497038078401157974264219692196613477755933234735659600559688419756244028050476943699997341098330153136669491752825652044509950607476289196198458311847838885898022663679286871022679346617402660517307681162890365799904311353987745530337374947585569297044762860313209280152432395829724319716071654412065992236921838289337033975537339489398535240303027409434257036459021890483619413515159002105517916046467753545237321704020439431782334931737066626314904370422980631673445551639217669656113482222275825897129538493528353617232426552152794366683979272726764907153440834186708637526692448826891446590906718336874865767531098207150988151978792493777347244086816710988796869970652731934300525934039624043091519715063588677386240068911811927741471442380246570633391155962578289751587303231594228565920331197097080839076697828021905855902428401049631231705746817130110849129770009373974688903613957608461848142937953508859231568276038874794305317752077991406712308180439017219479877405985010701476778034277739613150787685435329090401114492684294373178231926417136495749780218132277354334813626525140603263113885814163176405270987243428416270454669043514990096708547536841328265758122632114128182801482845918624623328708228407917425042031410571266403959939554170350261497386679236105008472105558598312751936013456653634548821696046659993322823285937605330198497868570209377590880801989329594916810919340426618668100470564715443620689445175294319997638658092117532116557190999900480726018778511927980612219424874724239112042108969769093584010605164971591014073708067326815986262034215315892464491903504529903664430288655056017511486978556228784449217449365264997182995043003798357468374905838256286624794281327297932751591038314433361814407929752518561580326139049263710645829345975535132829270733509691205556049090584208526099312600711395348328348917657422632155782981302940983797820443464606284247335474696477739712473361034695056496231616066965310545412851179607396911620829408345592777575460653275180766869708047298170568893277704000912524562924545902993941276230149498360433289299840679475788683862472577607283105938187488810375493508402516463300200296668675595514172122565372558328688468516680978001583610104675714239469298487070973536831160182238534349730720482085836234296472264353024444636410426696104471498917097086622642578285450078216487772202028945017388900741926690245655012174220101254431231387564926559541087676541878689575342798267419557303632005070874360581193290719473856680204104284752572859057654607170086672751480628788568037926565475915729284613690218607705165763424970346052440435107898223504847572412432218109868444168740633113105655336078266101382035434622943645353076045779674191352759418534583232573427805302771388222713926879260982673201708230786028365877683292255521154475212289416290984103890120663419752963153002476424315278844285149216020212616072819740679505162494964033331255480303992774034802292229858891369894080394065294545426807848768295925344269620805595215054445928143299619676149288575269837411354930810369419371986365233256801001231472120766838563352568730653100468951397556325885708769908271625988803012436921928870061121008008142154836169182062892602940848307013447669705139399075082534233498069553401828189305226952666681942023391278639980795314805882620273100479173952249799656866732079807183700094344075671138215794233761358435547552115393771346561950042531217945385101699994415140585962733188330886657531099616208386035465791123529552232640802382563415579042035452624564613995450009141960500663199409547326549593761665185483756895723006641544556530752173650876560896643643782164960352069584571416964977948235384858572635888808725575946882321408479730950770878652914075040540496061693012461531693979592284384842340810219984021871729847406025697330431759035787933655036433480421596193032961259033263363133355547000575588289884330597834802852783021063163027496442029133876646442415155311709461344996709054905283814579500734870147683410556926329897690395211995945552979420244141134621414188513285097379906572892548474978366620322978614077882584958641596003197424768564113987315949341387171399378328703290235013436215384579825667371479456996051202202897869415386481800088417115787685239336154659693541193326398589787573724154678816768102960110931167975331361031727564657287920186652834341007454391952174121225349923490275315075338667622414362579280315177271708896264566248510712209430016155299714635244009300434703279718249225871244786658582058281102127712210355492731165631493504473951932286784894934416806006667307727223482511916004448405624237405711606675437871139444670227560186163685419597845507512792316982806133416053002910947547427759343406063978386945669564058575137630620094536685883955739304704830893537589400419778373077344555548565283241470982003457696164573269370243215414018140087146413059225394192604382190718459042184362515206957529905768136305960684977261056308914294545811202125522360270535324333267971339349884457826875486541328384727019795821416192118566921908682708755369412732722761135174710974468943220413100883384036001242426393318023442427053904780793429545455406151669588504209970042097768170163605017849830022635448245232147545260147691829623751308486290117693709029065801600010608683109451016900509034306358246837048289132603328776612920326122483093773462102616300962166812487263258064705022830294153245913482387680905317310846137000738648351013638140830016747157559126334097046005068887448146989166240055926004253472020980145252817065616531581554661525841630723261073123819844697408302666599027963798843281952036559439854295587725838146818074355313027080953203571162774253557352489332906441634627243110062689102352664168787634034336309273840476864200492545236945379347960833696042611925770546578586672126434953230396425129456654936801814711227036554960796182138256559896790291486512601902385589523193906551651933769022890831567662517025891475083556792156408460997200037827371868836225322752141030470207951822332465259975677043524007344613225685861722700787118833130832693570274756441507377000743718491414698136981498470497348760144687727440637773652884543498933321158203978277395032111025103516177091406731188441539453972416517312645694090977633587630409600645784646626845037968093656718355041466509298038689280773654130801266592107707620628596703519747814409893778079765329400949764800966063099385117901862914440154168309589981324896384437353121276630131905890443603007717420063709728127917619446443837118404550158749314381849890397864127407402442419289969614132450543316418981559205427064942635486440387946634832236436076109303228610063393080367768862116466759463492624204035538163776774301525772759626114726945199183056576632552137742474054375351288843588082433428332030983465295168222724027044557335537335674861429581478248181710620996231022757808463074605168403136040238532721306323942976534002005920016895541293174872541578538008005049204929084975169812729539746564008372901977367315428660257992866346320365710559094951404886472596623729393282524099141711855992503790673398839822565613648234591573376305168536332094181252425169631913694342736309579557468889189685023881623508088345911639595376712719783038802714548351824721623133731626274711481679074550029287485529301673335018357219240857811061921686503262016355059706365769674097983987863371381393444748561198120145013632494370816477532556023511749039836481689741359002906702313793990643029726488165548083408976914093697815751520829276551304380808631095250762631502684145209425814191696837144639908587746595038792483212137554527820075307251411641642252937969264283193366356980146229080071831821546070716299866992937005258155475154429994284865205549896435057900199026151994308891918362751145465595714949903197291639962489740598207910809836960618678047755488659228857976424844414934061121580172867530688964093575701339128459626833974739897443189571122817519177079916082875479832960433818336392224045509262558273862623349587502509113160648776768917649361528106175159862649365585016530967585168405583798064994948590834997403596989052133196254008296306591131703467287200337810786629420653249059303990524727743611615948652650135440550574700536407150656612671182695160635208489633470995870521870250602136339134524321510394808695506131524983353168384948782027164024396309368154242085868733029972147580332929884301099468685479927109103108680309181799148661686758929315968336066433132900339692086334485317180757075327658088112458998464438177024808013938948836794679624385356960457909956099772093444162182683675607299155814553060275996586818494966112290434142007943198170697488530200566796832073104497791525039567564934167158732723298439672612763136523507210125516047878941285515918938432877077392483337843973830715068557077095163779532022943535055762215450730714932670048231320473156848446774267378376668978503909708024075641061469319288712654805764477659777445260906239186342185479180696556714597228679751968202802809208275937675942218800500434549230211183790345452097411975191488327316119805053773846490656636638315365011289175891882482141723602318381106675670160083599583455070299735019617944448169417444790626648551153126789532381117668839599726685737986435644949317026228985697115865538703420208137990584912467705849174807304178143022941399480521423177959339964632095604071117545266436354747588795677707197060814173446643307222808119273383550510729133569920429728744965053401603601086614481547158585149163270546651081109366880097281835092552976360633450248828327069908322611877948499744153704098882327611441124164833440378696634760415055814585041668566562042983720485188230636148639905507634271400375981457368477708998339488328189752050121952911851762448039028507212401215933229338583373094685383667859522888054356213882599230338558991547692980852847446223167486985145962503052224656838901900875683113282024341087487721357316974156164986645192271434517945394334370665025393593883900038169469938614761565194943458977865148658734840016586751382719171043631524405624891362102970060699413540640943990470749185541071375722095359031340767308430173363893701990653242132001783242819878942363891463261460262396771874116481521503365642178947768471039608942589901004156803936101992580115922014686087167058993440922997944594198047131858052724792255261219120248192154366248688425670555254013395971062821912683752358469619459581543106979508993440985720517492376565054635979306881560401199023773364861402570839097935812886912738488974286294783836128485290321306085387717544253218461725676220513559678474682561384364052068176832633949979935827202965000668209601917365971208847518075274573527200658107242806093746329952193462190521911296978120006500774851282401599934697230530651327098505587983784488338367105675840716499758067551087048476109912172671784313128881080119534354164921413613881057303104856564107168032985980305973400354689204942599828865425699954405998196494726353994517195110721262464875622147440844071149548708901579435322724133313697888146043359793015997256498770380573656723968098046021252891415371352513846363363468078045963130333400316850212442080631614277484395221677105093566161816111753681690832051083931369132650694423747711903691459230598142838715956305510419985385599750284749747067975564253015660547130142760337265116076467075705798730690128840988366939534640596968469917121995209476041664815819334378453388011701313310233913767834200664067871969432656469900571682077153285873731269616204208420524346461027732291179744951267525042667662775863573880431091950779477798981645490040225523141685202428980838309293989499971211507801733894246391185891329749673605542615167733722551727691953664749669245767362554875137935576983655530863988102673770092782786658730495083923957216724013512511877928973764284103902062735802579179883519514041676199805501912545087689744976615005986169013591953940011190181808476871736058891265601210788730278345815361773195682480302326101404233373167813295358340657320355281566894703270201923906729141419329678700297058429115735196698812697823793966654547936053848173436426252264454760001190638419540326443077803674601065051632644386697573118413179028764583300882188578092350146531044835742362973038465653489141498712798120839232733676656685489328263960368023879837595225097347165661136186995773874030968088649016936806128273097302504029776613424493123795891529560382825878068317509657893007189339735405058962225326539051601666934599379991752695510686876488739819949946758926787861820517306738058825940409588271591146262440302685853497675268548536741238659206842482849574207802687753654977099820475165144937935423294623179226234303270817328945518798057250012738090669993656789060910849262463006825833934720638212704110627247662616603059489846516283593242147414764757912073354528972710944476824593358542036635950885493680369214526109635817009115430319065358547650851446010274452564722477614831509753565779490368555531998454869404565121660672438231360437753348011540053113886899197290881940726934075752248158250484234146309117891606595591171310964590456798833507087085325283484807433467716507857801054272202857651851171446824536575940761381126611954205525918162833603202722997806392277987618663780603218174383808688981390242484401175919035970251069666792738891343308994380028049266438246126755521079644901490652237376306682395103352804216171812237729936598121875289674093955530017434965568857823128149004821821878418919900611158288423620943345629391596476575597861094985986791222911428030345633246510609378982674411460785610501154050691037132327544141299827995162493265710658647733247743345306648092119882564864037345821769064559660209024798350106993794909670263952463025144030484372718507774815042580500208971936739003509742447033469167288110816365573630303961549710088601793664940224536539665574230579224599898260649429839518958353384384581075399899537479580463204812372111352110835604180991992828343838480617535296080144803756353877907550171267979744855845671307458903680820256606461143268847256839435082388711083034311413932643546905070762724811045860575343255764232305146047719891020346429010385062883719748256308378666738626672388371051608066465335398563379180522186510663044973521368390421548046096916229445523892758690902660955824482190503547477428226935757493833659657664680298634059518213320965074698665945585107724547490047948808344910328961685038111037529847818308537020312080467907320893859449580915201876390120269788511059276562202224502277921958877303792304770200787327966676199791795220909771102482895518786229522152731446441853322581024287082615227419460383112662909506625456243576031555793535519781380295556028030998229533717558453516747558803692062782267666078880499495343531090253435058315592006269080077739913042448892186565219429306812703871030835520500835026885243887597388836404131000377392969233024445304737526203259185719180737926170196340983526606660997081176641837422181187224931155281537023741109799223454900060166817944374940127754366946213334594560497783442195758960869215199683618568029352279925934532063729179687311416071070853151803006102077275213921967993333042636431060371640383132187057542063548241301091171445832329664207698240259491985431500806775922563514987405215828475498462295729227031537407429191274393195278785844194225660559376037457391526820053146589120377575782293624903128288596854277170914562127425604619870654996082639177851750849719042506165765010821783607385494916721032075325933332044898705156587123753629494319739315487344513971086426235846497387132589871488575995121981621871181152728359514798577414499388740306602027477138063178849460149027062844991177844032231709749366454539887091362158849828756521114986314283271713252157577319050838367067622849732508012133293461043233510872024833467810746811079624457663959132432486513575981247722656449393495274128740234730390979256288137799821155026805173699572724836728567959165566642394421880347725992297304382489424387165655583723348345833267027710426680416947407167545200770323744026351180307604741635172665611002450148239633664880847173571424042623319144459014076488994792639733832246106513438391942416135141553746133168906813240585434147859028692431024657900178796493329551407547496426807235933153985289939494163316757405280220426092814109751899831563601231345785069859153904582324463853532936190562423265855213438911514646923448818254011822247698047641917343454894453800619727020844811584812892894016036564566990521569320518629191501695168448990901255449414263370211523904129158328085190092707946200709478647174939121928868752167823768672321520528994996764761217523242758482112166917444540141916397821252594449814438141407089260026267199813292480281665355365966335670377013839397340753682333382989401078509388075324184894296211517511048440651631363933922191838234372634199469455093304288800543777415283697929111876950696894342063643216391108366740754287403727574349400636323087056257757072151152826696441567260235056132293672057104890698551378003341444019399599417891448875671743432316142027155645810898442242187119880551575190894732689532350974459264115855257252951943930113108553863162971857733980580006465741497146494067915850806104430937267122172013649550529588656389168959099998615158345536643366596042201524129511361894314385093828729020068800947766177601597112408251387519007899468712682406623114739816705421038481187136835392774104197720492207076065635409269793400967104944319924903749222088455179527180260380259701352783408016590727275341523214147841408025649972604411664815968840093262296648103306391932840006175258124723053813052666655554130017333519937322298744726997958431588445348439075506719360897172557262886904023475726014040064415562069097739085084915528187902026377267563475475979631794265021010396960228625483688988878268933195139315451094829655414533900296749617150666116352238600325687536924830510918336382753173879375661074716617010045672713179264311078202327427977873472201852963974841297828007786004387586722403062775362490527585984185899636521344521798287479410893490428311576390575631087749057616693389260853804717454269798538422295406724347766355071237476056507038374267886642719455147521730481682389351785038132283595739023226031980680823975132613676848902807687798019901732424308227751604606738808427871796760669616485154512857528151284744288747721067769960643579788760126208673013746284670003858773737163440011209236064787758251615458938761930830705477812408633835406030549781999353976455672481723083674292139043255295602319456334641950363258559946227261459511421653761826090265095636318673106277101958785876895169441976362316726032008679657624491716015388396782028974626358652854156152545612331358639493017341229230499813847158485472704449767386627645184185158086647172021861506806801820856172382845267217656498652465500829855285888392473654000343311953977168810266694914404097651148111527972377645102207005142287584939393669783907699641241302592832419661995632671160709593676506857552990462032260135684274336642671880661146561533287407635060715098996160898415148382323919857115483945612596072858671396952759518717934385830115735623606235286261922494133403331718416848210456962247674802987207414789689504683041909789537823535796566878857386871517668468097507793387923703638529260401339959551784462026446763568662656805347324215677885517042262683739065392982990282391943529683236460233500909488326952022692204170559399833131894265409724592825403949950982463016717850294506137145822896322552375543838951064605422735423269901020165835177393937970303081753871255092288954202388587023140463762751536342596012885481868982912674990953194959933972138568553745241973473850595752765962591209132691991452759229778436250840079005613832223281374256212078642905953002754903805548655004567763288625954402394077932605023422478048964457044471670216267532971065847594865560402536691161161605442176132189759161440465298471621653321532011704155410243311495356502197317225452705394120256135305794843264447113153112036999035655049690036672961902343084372563837708594483034307140338984620619945274010836189980222937289431634031848756230782852806312637835670475417166010791159109473518767967451268785247496011743597639549583640435810180279855136830081318407365680945020640377664998390535390520528055878472154295710211091002411758322304590405042671815829197518992798778465118258102243158521355593105817256995187557785240842580023505665398348785270358866771333028792603804621112323737005000751610149647516025113646187084307107986565912073505556207541038601395500231836444305892789161067904853649130365357976753725544339796500963570433889451627449632851514326879406227188476531891678239481392780891981380501948340102209996780666765248561000294094155360606611080460015415306455199196758586282167424416455565849094635250338081323065727042585138152271602917115983923530270350291237769987977272971508962794328742900717756280822022583106996971768505518514051682539845937125177259467404981910982503275839544943421881116511164033518806756858232589654058711577703529073704462294632886351515142331302219856816984280998419364687987775164577240899112935118388610939452594567366126102782649491292775896794853304257388470107825659361804933418067785571929132938921728547673280076946376889379409132417634680415712772456170882853047540216391571314862514761231002689999763154397099681394296547296680172635435960749844766401237344534833266769236303565300887010139179504763457815241153096296052094596377647719338894625126032977581454797809483729655327769190288478666667523405808203521654593965520432115727918181123690921843733348294290429620708315679327080212384023118588857412058690732217801417646467727430860630308841879623407930076799160940945317970402452018516284077112577705880333904676123244591835519852351018619561931015760560661151106662753858622578813587595288497917951627189577705729258464142347722447333210333649109637129169931639953615534811727965128851701997595173559551452747146216117520793201509557881696163604756657118160125278991035270032825404358053668177141629401186267141747065605985533348311595783004494418160829058115282767428825378571124118558379877797313742936380575664327716368262758274421107529474818384873596091322071509367910651409049679698583874169295771211512053623798148472188805437579612171501835843329670827419605620773814953557809200193211912654592652679641953162228494704025182228950328685617507338583297173308693254155804186382643987358384354474014960495435032785205274785020051145328160649400180810764652648595015703420503738125619916752055996496562978898523598219610103154591394067404164342008758110320750916812387673975669487889350952733563513703998483380360033125043824670238636969954481702339298214350055706504883537538421494168654845138810381641109380917501271221420611878443180956457531841114781211450436646980696614774294037079884929356724903846090823965695737329058068494810795168056013252128326888826703488450481554853015793755593381283913567187278174594362333049994417180280280304861900526660173860624558892576524537534458080127030947575854003657068976687590039275553322510669417871968220656770767695510370937526922984897023606229274251925902517036919277752110154466255138786335727461054182146472208556578914232240086897169879694228531046195379606106200805344192581859593058512939002748583232162183050073160233683507698202552387335355887974966879938953613435306991911367966040444976968883606691671178412630635249512489406147297564270302159206114021602940282301922549970254061463382072877824811875699802297647249525781862240708130335205791932969354797153912857090845929767460115510038969669766748916498484270789629242974178002088630141738890220517167128196166333377504034558363141341596241669870940605972931207008623744492335188757888267857419302761645791300240341006100721062620960329443623054441565633107381259519494737294646618333578017204470677599581322368597651528162645714133273204250645941450261903432857892948102000722675969669892933883909314990426382833771254659172195584580853429546206389526857805363567806260916245174749420059728194335512782464242047355106856610381284034561443318538946741243191873676898367029009888453303468540361742158924273935924471770157429599436924756888312127219396496670595489306578650877656629967022433374381863718325392868612548108708231217259732339170437287483734314457174570641954071589730232138979030675091264633640284617988961982728759077250711205418166673480869798379299259877570451336641885046483849286162136087487857141873709191851232209624058936537438010425290820824697224835326256930291415627284587790139013189323681253862617918415556598512784113351660127972975503852165771453040274192321862993735640819317313580381842690323873763249781690192848973906406053480355730020157439488637411531269722301666291102431479255945510502468586474759694603875943837154049732742124491735842118745930025827360951012156117837623794185469201302620206061663339263611798397780931942414833358865059350753136946869181576293274798912287622260952522364786627162243234981717618907041338534744619411576383304105236300080224705491253739102501200269769255440604987869662969885185509064601192300622361766566949190434274396810759370488661884914466709146367601418516215611948922612845713615027139520551674485515160420057468348119175365469571882178462566155766613126119642025252129717647569771154857723193444244600516644655617773023781863856136241008423450725417463163154566671998824440435237086777240016835175343347734714982286872835519060506676177010675689103023534718683919360904058327464913003770633279513121826595491784419091074872669660097962442697769554715307889506971842329121234778246806119429887791602527508459413021980984855847939569185694113988267019489024265417421677395131709136313700690877412728098648132981038422561891868054037452146936350725504430575843296489698473069812018173975695127045056364162213337098321030736540375603440290229761749940635384519244370929554328998165951344361533817832982427644863039051675353750317030949595206215609239510522134574171509400382804940101979111362567118481897134284792628290733400846088893134008526872656558486686695199190712145999400567930942890129278075932687335318615084363541513501246773570654401374936724269097594144526638212112815191408013676317447244928494918320932453429277090188104023296219304253142999151702364700805664044418625396130405883485676540726763069531926731140795722355756241777793739460137470199508666701200912331584488792336610867350342552505069018539861515413541224061347109473407918292302553816932408020341212597607926674811913831784543817017004308152028564224856407187562236031167292882120657567889000327769026974332691899563673717369969706101440215566926769889540721904869818148012274999558613364208975858011912851649263229466395888601917519485279013101119899467027533885304725811122050132559919473429020600653452578173428111738384685547141480196407184593486344382165363640860721787825542838658549482971919319006993660351819135226070339473583386710224115458208627445394840661798789194708204527877780967632205407392381997297890333229687213685901318289739098114868360473004834167882429525932071119985890839010752125431563154525064814174656073305421935537714777206902218454428646946155702546789378073862867544446657645809168832016107877895912217489989953040920468671134718658415316700643868359556451422665956373196166872017231718654220283827504340295764183979792631123964608582004634232101195575746993283941312267978323765819263019714758851112617433327064224237164369374409290748089373867358897750506188413877413011597327774981360571957911920738451643928718907838105028405627207424675238567813123157549591199821392283956227540915499462978319441129832780554455680624426443185285019675784482292732856269058801531602300875203270786539374523047808705496960014011940693076297835911254569664548553989659749701585267121447969373694300672470256723311243156477398450736800625435983240770446094943017741945694367615101725443449542450004460133532119006682793180293691530426494484703361788240419092623569391011207496733968637175907058062622665999802228982105173107604883663804871351400281069337135824013898280216894052825730850796305353148892711928900611859920264386656866459199472516269862427601581977145195944071438928832595405671755471832642892190887897339532088577744868811744235039778821843952669172805683276621269538731535896559761553768838687451284738799556380721988968246749635198467580638752728165489738826335233480548181948066479350018659421014413420139820877880406771208049764171608887737441358902011317959313352532831258155442171342613994142775936219193993970742941581425893031541573401591284292118486553140153291791067135100088327397057645753705424452167516293050256164799393844824097157619677101848677414024090068913619556789355248010345981872416629144653762987861266186515428710578873275720164793409907423121957406701453040474220912231369270743764934056093456011366700558744190703958767913084847126439811682378854523046008009688799047352066800719790199573416867172650596688849685877202668511902211277924568682645851077451851822244015585010353312392522981714101351347467813966335322335450215463342847872517317377825702835075461377975312662246814499643202388824048367255717172572866494845434614442568918946285448636340669419691426163542356367866316081609723840370131403921891601365866694242755934342636336820290805084561718760362801872817992602701110248744875660560058792662378010863058325223608376060733202937027661467437663848601769055394912839014045109248089856525982302643399627064568537279779837423982989445404705462330070284882288750168722496289133336763167381484506566203878973872374695275678176781277304811734356744295471204865327196616108787870479552307004141984200003898060960604778486190494159125491139584188609403103718752365692255269606863296704729420406710417129941477371277447155051120169340626387707854989188218043134215983815388637815478164313500848935912937371104866243521393359969344342414352269420656604646364735937721213679007007568223390353159695893812622605777745783559889187407197324811759822465060743343167002145494559391794266827830750580030006650243211222269613430223159731798580496136349389251761559352599298081100448339845573484363226746234012329970614858518745954121829795469448537738999059474622387801340156797139219982112852007322709436572584431147642231100273126004962227685723909468501865836613974291532929752477940038915021017084981160220244563881251735030946929368967684808710741547856308711939672218639688033504195244711432889595360869954000657730740955816561499896185012792639902091880857903121086096894547758466879389092436680329055295726241851171190899960812975621652617518592263662324798864864927793738918608203567182636068037160222187070916410877653738374523010521530043466966421496502776418185416280283097122429445367933706411913166444965731501819010496154695758272802320556332473580977905119161281068745068357252348949773209819756218332839597673865906360831300788752826551908459031542393606658667329764533749561706861527991079495596192507998378175926112664720767816332959197970370648246545828398994873022842853002303787139732947608392065025011754900587299636711052612985141248762397939177065987043717341113112637002514210048001454382124107891526363078440268469687157835476985913788079966629559122770764596145939251953750008064183639529570930113037220177715857455792716346186322375320190519108218191482888698592340282135879266994887988411511372040592310961246011992571911846573222627299222441165612881375297447737905697702601540035270196546994891151260183589006310396552863515119745350081445779598501040143655443201925397232953329718436476327148921627680493875463853238304197324576081888261662367003037193730933619363378452657750884053665246126979091144990244391260816633973393323981478696822726847734519994258062379055981397009650371622564185410295905852507146103592779275743983004222613232233693202491613633509461641219134617424084872547834007842834900328218448962635528486279052310923925207358042303541337459812665658202243675166066177971425397387625069541138216511019159913137796140792835523149507468942613571784927186996998317780333009145808528474965870542283154884852776129616163502527176014344665731763686568482036102527054200027394357865227307976477377084801484265302747554108381025416695049670849537076128923917454066618808496403549465435471908976249427371161687462600132401784287006864930230183298137867729672972941235136163858644821695647756415548659702141585413780107864208779688688675513726598832193480415798977861129747161306241349036616566309617724666083664635784982799699506746763751738520706494378381273208502294787505280838174048743592019368237991256389712265979418379791531786244166615852991429890017320137150671378684628965910901727693629555636681647230779185531570940056413915192623156304344775065412184827140846966111753875794589994851547942711399429491125025546961533293524649906906021078633199146209412301322232086458185450273346593100962111543401415131301110406436951903623082561280043335453893501065718950541502050206190658143843517443143002338795237128486493598499331859168719869189459192047089807725395229156645686396985205403676866513036998265446442121676864090891739131105627663422279950075451356697023462253634913370668990729591910870986057659356660140073208974544000833173040808723180871454416984693702934079890374636954562398343853236114915662225973568820142914060591659221386158535703257077921758089912487476186540289492140855402322600219199175746500538224849632630620513950454846884724925488348769482754071881750558966783559254665723324580003046790863465055991774044250817798328391691273138385798287853601184357242533452597790287854369321985975811104660063549279796927344956437568848546432943610246261318562560392252715624555562612897660445005737763215599765121818808096895877140800453059530165406956395194520096188030032362856493899565216604163864090387566408251353023322781257171949358371423375935199890909189259035058443476584826686536575854888735410922281211781914952219224823700411102946521872153211494689635288839193328145089467530125308864876205065060578171342199382343513975509317933771895772313279475622469584160283263098436249048782621806303079643254283798878548176979776639496659598555647162190330602184996315576578222883380809761311489891827023149750723267905569384738096747974222476274526567969243658949247689172144594528151493569236676835660964524281140828776730788681681663454413358862021684573770435593013280883768108327828719189335704364349607318737149225105953152089980347527086163825655141364622721468521075981302551542234282852101147828095804514496827134780626354893349936394261590127537072592672233581439955654077186014931323733478034140739911618564349705083621228225001664999374033793039499293608828101495887226513287823027461643805544369171236396251890841310743448733707321152838887669552076552568164503680656438488551369255689031407103604375872423318501714776551891426740146009242780729242965420895843189962397778756522687299318510132056453117218330661192805754412204253973395241075546153499343925887036564440703425320294438044138803414836066298267467980542445180781637434829174960942959993202333538541096754660800939133033421196494182428912956230704726822573102186035814163505197986219098161994729173383539973064675003535566838092336810057576159688946407264373905987663042938201371789037600025051621861875881690852030677812588679750192810607564040970471544972464037821389606036465134396924252836878278777526926773743771983406346158326848282712138260023121267231329743230277580294310278817420029951694059487220383743211539118540482525663136745119188635343267207985143305916308467967318318822350556540639875836716721719871104224556585965686421935911883395195496902228912799325720810885028402567221812609308216539283311296425810333463109571513887941762363874069703119778107546248269338825394290048298334791304177887471520034627582694946394212891021464017845192706493156586655035423907143347977290925091726670571545984831909980163784648935522600758009266089273654144575765834549094444022975177886480125560083200112120495959335412905813231504832641871982382685198804817002646775606325005070378408738624928473920291162433875875027092417288929048833640459950902986315348719280142483182398782988689054950037323262969607655402449603554485826368640852609763754529279781832046769669799951176189091336787641532284152503486860397909135677498927974608061687722829624912656347391210861640309121375759358463500964217866711140434308974559355539009737000073555803158400959029123094229618369770522726194261021599395176631136080468748663750569076902137296835507897905891702381598355361552698851403305357568611896503665668189815289782632399362269702836013323055881169267735914586897379232872847764525886879350291014139512913056148334222092949707100517426581226119216093027733079347882398882911254916067205949459644447260299698425497142493612781372246830511020514672977696601669406785817157492776419464704618493257183611311815166831898840830299012157287177512676847651665236577986801943338144870928610189909939056791055955241241140620297159911848627304010499823144843809735070360773837696473634866853789295905564054803189163987025147158914241866040950438993849464927529025148110769738175580584231025091471793727886850388057734249335278924688607141025250263522157657259208500155037575343968367389171951296941298340930224636401132410276779547483088127011168046684967718739433090732357728304404476324606011000824231309168976900621390149983918823699249008767093928254815419875852861864662549494900523013483575948572427165954757006348211974210463846903974209833907601034061009168784071276910485329612889540307193042696020696118906570688930316322839774194666049740347086563220611595881198361050232414960729944291062062217570815449826692426304564996949146888324834135990462976983424621587622295786825340342329464064911581145543526788286387835298084434905208642027380550620626577048086989625942738099906732509599369252200887502004437810449330692916202465075823744943410689693638724506462455289455535088555598930784654928018276148022196699450144145163223826193079897595173384295265127661055696259305891580441880223738720053492357469358643398040570865515368415298445851747115430301635539153982123384018308197118055957826064866733706331000351565106547087209283330332991988922832036577236061714265553563552675649871882880453250909093511479713460165692916753778270362952231890727146944022841137563449645669515991904185016093719355125458213416509316757540719914344427940778404736530718031108025469559490319118771248952088911888083689098562073528476311009825660308980310873982689931603813526360380949218396396216666781258237216254656467889814740018213733804308894197804125286845783730872214772181352705685141207405937114042497431773685802377120272978376564665735567065144336675687045890974759541257104194637728613854746781538303531977708741171156871416799026242649959728372706424657857111947682930371369201171627356749111002328473678623141650637410473015868953013925906880403793152503763323602847618044961284653278757888155944449771867859813651267370417351682543323816952240048505439535003099561732913144196274885196735563116871277900866582829567961410081222974089169782806571840032383694187327344101761570226632542365047109354249817065405091184770849314551911475611545657426762199543545212105023855131980802483077343566364320028753195703462237920632911225897697336380044974141702189767457114081576990505849190878299317544823056357608712806845970791784353426154275235643367405124655027259819680668885297711592937196475643628992064457649881459464757906242490614608319400383369714505080304547527886507503685874574552418794831094486113868851113248647022664273323801342932629366521716021099972683986773618219402530803639213559119605349867299778050970805552528175982729132027085487323275738254562250901958913414649977708099835791849585344564955734800960096270815688085958703852356087832856558631800204967774728390700256393437186750020231313815232105925207048725602892743971306511087703916186314460181002424948937989660858050013508863670433762158622781333550546420734009204435372513219713831223574884964468076719115051530239631874938167081784025844398899498518231289512875630621409247028219657855929736292283514376940174758230338764372135316046922739911774417043793644437443671871278262116298712708064102870129217109986075975139614391422426894770089638284068552720832393162648049044031850048496878279045879220462822844621247037570825933673573680000487693677061949336908979482855415121344755979729384305688014512073107542449866369721152666560668174503804953356688886874489756104355297763643235290057433956528184376085066600081076215401090568999811930641378246371899030668893736341288204903183886135297880083143799757839288635602389501711886270878541015048084858738082786607963139135183043335971550880324084720203748941344031390554300253394578930976417006797711560715305264183913190008804440867593822027345180440204796808578260832962477430174003063770472548243832659098193644443512598563114340625428171746510372777314605817158248096712832591461301653631099797292195547564533226506154593140498016478350552440939032671329716689619729025561957921063856993204982166122887074446780135511662669855102671585315466220382109375202666229364309935861867446587814058433557167885529423340159466662365680704721003649718564484471302640521471822555878359465506934274025877635514168281805115479535758004634713465126913730711698949050630063420423789999693670462379913488904338435503799944657074691915696387710053274901364757922616581357830849106419453145098606654953878257338576318728043413847236341109496655788559915877670512447281851240934022789055842280989273768838204373803966213661134825983003921326094751135402787322544853699508434793721255161783984274177137893458823810841496211617554955370574578939651110003292821575835245548076410828777875191061938202383967554340170390973785380619691834487703723277911900152420251161108157772555015657267831724393399007325859262354495186470742582775534173981779171102903878850920984890002110690054890726097302876322551046703548647478129791444857571514124505671532736793701262214891840471972388652655560622035901192768444714910655514580483109093597182451476520323106179994035077811034335271681154322897744206675419376699460459901074503639032584786369259012948203146796339871848752969387545047248907162368099430661753278108666645191562566786826790869169550859170791305208230748704625504992078329092556440966214981032226289361091657408451744001745340111820482794686210668215487968878059975646777949712967361848088550789467482426414044847331382102568418475587979309801122365016327137906298582510810541835717031304561325427915042437181784101195195191707254280224191828355272579669653958211251078851651613125535657643735326371450949811374554976871436266174411674372072090467375187876562056456782838158507425423692287411273311624303854036714094634147482376685035758199988131115112379202596984423674444749547505312264062447987673780009552037958999733540806137688472619279841347711272044901875913358264181779778194155963271895628251040955333052211419609521736438614695937431557624442930683324121047013595736346177818258115177481465044932457907557251673530644607912292968005070175811679686740700477106911673057493261859664313458322187804392091360927359178076159963647775940363712031033509488187409909465166638966424118473752482140366192651089890740618027929783153501373468409259253629631875785205781349965551685567962668978512707262769305801528044672392461045367137223536113120267151203424568998749109430149267402318215779468317814634610293202969204131163400777684459908585890490257297129912372278449389024293343514680815102831696024791540524903470163000798038754839046103142225670555848029603169968293472277991588605651010945396107795139785955885857103736792070461163495822282252921106814385910467012976132198390678291399128114618800222490124129395358599347940418429139576189206003522826214035803301044660134322674633115028751808606595654809256040876977989978103369874260424485649312163306481099609051012448696508042215843170504865389432842176630474933198078245666710144853479425007040968074604366621452304765047426873303682763190617180912713518274869842202980698898454973918208246933306986857911253340174294129317880911138833240033389418169107961023204810508493784097970600642866957035280665924491614544454188972109900560269670456385171567028084567950949346414349249477463254365983945835263250267019595309115863642863997033589912278005700084531523023854957010377384885039534854303909527276863859451228319163698004736279625587839582969706583803470034671140611063546067960966971645015759139808072340817514594900065185202470408861736502890057766154268490719133088952693489197792303867586175599103519656503236400523306337677295316512279955064426700017727511533378865656694755158356780961900893174422864123944607689244207628398703887386226024864903477067529160463911686372947447775473494390296910396013944773479242348256047996601273761900735910054183301498541251511667488620980199641728406130644291458910367468687620267222839939362693469301078018362955719563290715788936987891701137144899226787655388633068598569563473941276178289166646311558306494163472318953604853720669714446938468501930190131388436544931600885104612878762306124134767161476673578426577264451983042914518694242004552778865942574579039496049798390790768068068767118507823635705989578822695464374186926489911249050233759444075404679648370722818286017611622647566859467293138096554244332111695616657099303897926393872870209298629696356811755803804319117881438736877908879437809648457526527454952126054676916407704270645392560028287102667559484716724654370485413980860565623891822396652117892160906146208949787531227773032225539325061492219437530284772481570120966743773989462547196367161868506752094944458995224551118610287433960117431218596067421992450050510057821476029913278610156483261779973564678842827668741629536629064273514680266773569033901891282398028752522446203951763422424051316921780445206978318093799520989571407373738764187644894137682242601851905115911889543326058801552428495435543605055730701262186342472024609086171578677291156677611665332990418441764999207297088184408679813001960285325721779738471188217678309397691518614008519232694982352974415949201028901635271688423390441241653611931003246792612017070817599666364098846005422022432454652931551384468713521625438246168899060982185171550626359166706275634094129676994461695865981691378060998664330906132714038768330271990468038217392854255791487755656071974047089985135176557390783676687198055783161276949191926105354775615144232845920801241717572380970243010281786683149509393414523657153960118851563271929295340143828253725146402841211164784953188514685550250816672472730207767919504161541144186815691754452574473483506905706917583313322479590285615818967585266005108422992978610295977029615484938976493309242673988791784188741686268138538641435292742907024162823625224029802957873016365708497712276914975957664089390352026689640347670052914667004507126693846650183987824997288171752408931777279927144424323126272785807079625151122692498832530595060007545097099752562684740631316734273936102913832307325050730773012952763461072727673277228533380326382997386019311755567119526263474171081388499161762438383732757913620057791201667417630607094142836960795419807511089960722196037085467364145989205935688594064494360679019803480967536777341070675853692490736887349159749357618594971647431512709332320411781852501938339845108193203793401822356773843307575687435048177301418437472494352922823054558592236095823731770633254757878575434873462849523668028449634626359732952238525594778740736229749676469802830226066798042327776918491111767270384235464988684408765640625281591970879984267550842865545645020480487165768897258777181756602247000022021347323789774512917894234598760083151602614855672924974566617468418824961968557446805179885714045415223217638238497016593650976091440178509903471582421379785567193022478338321116399919859764766784709829523565351214322640211816966910603852071800758951097256824858634733227757459794060711355032147784110968119362454270750249344174425572220550917705020924078419909833034884772626172822382993615042090766176347225493738809937181877900316617162289712938383486068737107350046888216379265238171755020181741518974823402051426367251039824985053318356209076021484895224407566074119497485423627514371385221889365907130671835789330197671804078759413593622421722473802565912951758357087055866065123153148989861130736804485353054530676899846842691154357821341582371799381844498587413820493917760057803467342072346313364743946680362901531260254674185924701603866741357812650184943115275177142056997182157541365807788315724594138017376646685631011924527154945521236024620335754666062999791016758688840767114392380213093130222093626537148392252253275217621378083525339072822229548048146029659952842376402152606983240898363474328937052261766016293156355142447149714562451371848564644089907440101835218402226843230291875506681107406682104213714533276629732292325709111717271515710203318125158001830764294116120750039604070032029567014253625702750033800912835123402704627908889972058446204215790107041639441744588579306878818029274727064767794037872874793246265540725489815325348496213589528265934666816623274843431360698863409478199371160468664846141365330709665210962870059407438199151435253168995067478257588276325823529269673543231987418132339918956562624152391096570609562252893639887354670431745803042563815846401721374544425756174974210057996769900248724692487173240591457484608564783588167940338104538445733872771570180466725149329276146781237108322257040327102644594920173832466514136869207191496290028526949933385710220615595499278647103233882784827339114162704243194680267400820870951579490531276806086418524376238759453834109198576056745360384146210081562782128367895784194460069143127177699448697262940300462206528940680335324749917793045555020207913109133152910427783710097753358052916438048095015725753503897631286325404829891945862937284898602900574073976115380528986115591774987543305334461081993152672849508768328998257312667282046654858810901048334069943989953257371032947155284000448622892634563092858595862404812671683534600101234382460819214062992856979306969093151598885046074234097865653338010971528793941359058396835709854687414793750723185715152809823501831415802382327765348474699698816567377970441995243456284520343553021985267440445502348683038762235421923402555006193382471696074532578413790326858532901621366609865170891774119444350249886784863355582023410634480235912417019358862181795361162543403343148955169665325622703922527259345594620382434207891906581962460031258729595537607537320956620799618997425600160294597262187217093292441251009586301815404581395293844638792858213554823900420424150080679609402638221472661288230516451103102567332976790432414924096633325155588298297760855269622419258661228402097788125743523440477074842992870513708730710256283944520941348922350244241963206720703335280274417552330379283043028622445369432962193263358359572164271932269140099712502989941582574311256067713967935618343705033632616897616968185314869940242400785800831326546199822624103872293711594096521893508494613599900590174589688388826132788832697253181623288409436283524063865476099380035966386913890019378481513561315880402294297476630737170831160287533091874100223934547696799120817539862443145112166599821852220399028524837465263509090454942538633973027115680678848263830998245458988923083210589206157562106125788552340993734075471840952852016144153058756514357556257250988746172842817964422494470622004461704408533488012949229288064270378017751235747845624875270642148241967100062712435026986593294422988898492245777141650614655783499062639213417829614363275756839091012045717428064470456587195276397026174391161391817156230618663040974318638590130086631365080810962175093088808454896860460555360455315959346587664505105727575460343906549384549579373319491373912800872379000785759799217265356155119917183112324550805847753648525057468208925926874045278961831593772861468739566285002498014625130466283209089182041370416299976698351012311547415478052192272263104597944008087233960670847736103404077379964937637625273801102887310747423135547919331655540751474504336949515293064732889730954712190417889112206062828803668227567385680440166726439944045694706133737941475982495161548718166923109533564788410407779457104247767609609242624908764077568221531181031006155208109093192275775643022833390102817266431818263219723110882228588162905706245895978193009729998045881121698914899668285264506871541446090439891154318393469897210084624961076453379751984253872395067808100730696524554806458491599156469955770596943744203485030134089646092958968802388777828001661315325225552826264222049208822293979857177130388830906310636786382530809216357130201607690181825081641471860885532363874447511526428107840667201304306117593817891055446043513695401175849981555892245161830996733795714783531311883923862712199567612063393390573531563533257646965757330194120639490587066001194130669471656696517649049255027287823036998227360274512971859072705093837058019300585652604886404937168038629617185303125204706157240373061736828968773391494274130971830072137370806154806281679653678871473388145628413167252917930010105786452690696932123072377339340731113606129385845961458590176454213525509273172357042193194566276384935284026092905486413808657765598870872916489720434400218522360848578920286331730056296287130223252389310847068940972742293644546098199258089130746218973566817136524953626325915410267397369091497168265216598615570614060287738555625611109137638838887747373150491692178910872629354293893427444639191889808547094855709447470897622898700949835205445401154594525286971359889980039169727089535518418716502835891449504801676873352578964749705512961305918512732175163504553274071284862699788298210636373978315082275873863852118500760459495964056836198741123550926637806574322188978810676443081789302436457761197547252037044238068268045145243378623888077012192169752205262076480708710008420212892170202045514719672977523322014622597539626381870728730561509149396147980111068263469225278880802526412549750896257846962459079633138457290227093866937192345480352675410130788069777166506449726526814542457267650516052705618534674414555394244632804322239422019276949988180782904382298364763930957459906918396794479348534241104863147225649702032807279081320544306511956272635208764894897499905799100896755782066557621750036124701859466700516663763122344221978883430804974941930026267325119853252239126012317840531301518744208514766892139714459569072032271274883765131415625977599641325113542842362537319614364150252902434920182552081688394688020523928549709634998843418484883138299638709522035898613666526283805586221206414039463189031090547198118352965085233486189954138865940506108148506226303099911687192605458924768421579114601387355523502333986843014609235098877586368257426857059806863449292465685035261958244738571692351133903300833748842219113025881616868017281805054654644732002249314655938723340917782969618338507648569973403775357953452657589455582923767567687267985525328759827787616003401999615070055204974413392324202076116239580154990623068643111951464135116323837972113713462101709554966108105897925171851209663825264519738028462397397069943270453200405086738522265968690603688224621895811930737049935783422343200157987611813720277157082595814811230468945559619887277031449383683967018618787364135405728042323588955020507877048927147730309400845417417826196798022863351145978584249096715852615957732228337116661534573995959486170316176635869374709556066271920821652652328701827105207608639117227474930029535139225397896884037312018360643191788809361552176456969867722774126260849955878224757023998542271006052987884354706095253544564415373032348034425810983583388938280009886660840595957773475073570709046759368666819270591788975217081356244509168346312411181259819889469213536880409141763007689690844754760619795049003328660171325346015170847375166274333773775690093038852387198093952473500916310399896038411865954224217987803212408840044334736581858241601690072264528014060854080211314883591994742747555752729887440257252955487236938901989379559065947044229910896329839254835797085379257056490907920030555664903047348707608387420434547252450094209182540278912597704032961840018712168774353694774580888160726658285474475518447706670390868758719476336377539685775290293040119597195773626159144979552571342548487367069769422497775341579032702154593522499027770806090781586111334806147742828937526665307002431080779478833023661377395484352324970947505388870442786189346340063846282468684972579393240256700500644224305553205525373795181023429779958774598095140791475191128986936549380013323715505850479584484282809970620315002152437784962605115597684147982781606205180168369545427142942604268775231742298023797252736893553823486254565979456922585798838516250119492378939019916417865176081333454091846516264983898597744594000950797432073088111314049555326751874740834097619582658641084445706119072551125777623514131093843881159451511759103715513976665822162137580068071866104152609272526558788473547728799517785868230953966752446008047849488753570448148694601350432466957123607856920670768570850059953063958302270560334006645275816243187164370906047382546137754876714183549173081670007573323234615725429875615408566144696142525557805750948539005401802908519884717868266849379113173998297861980489818860412689290327541341968346525161415184995050587880641145674155816169391529466973489603245035474600977789170202700226264184698958025010658248089046079592436913567706417772253408230541725806925638144487106235285038754509171344657055221442096569363191601422955705033743274782152057325997442571523971301784490654690401217985916542371039073475469065135753299177779962060908256853174306087979570949759805224267658020985416876561394038255527690510466330593748064837720416010243439661940797141516501434136079808427817262111203589389068508903612319570869686259247295092663133235488813394251748215874805904199227811540055156466046220585803792948218137040053242771256196328793064600480301538784551763515327265862795601436453595572023964826729344371360381340154876798708171221232183851487103193749390175655987772027924509656677442742812108506458952646617612439954922632324673501414723773991236842637122110006544332069995670992281772979063568980588361977618301608417041079437444957247382523210587718515607756451246288132930731890804610833549627493904285132961121385805444896163016224287550147596349801422426932567607653977665246591378988493624859896045346383090400654575831865788180953281776439954724396519347848404256919245834762020626335316290194815367495398469973951551388264433577095326428074444757441993205408760962690629257923445660728468878126228992029335317805027095723872743288774121690691463368677719058162324324112230317388370810758780348014969533846303323767874558192835687907772304181000752728343986476679436346455910424808337400760102156760078037801929818887963306370834876775023760143113442944659151030652749954503377159174340550610044912215779478203894225588853865897705306462924537439934583765812583732906916887630035495999371053225308735320528576109185176045571201046771775831361717476666177778388362767442312039647847039237976890389705231414311709438708386972967360089399990270540856130392946109451143791407038882369755866711367437868590242729256728411844689034358053231254947905790029236814470687568141000543059771086922166014697887574998775007077200071627015565416865266504117950736791027822459455347764544838579986457810009368518686701077678011158074481006886560088354772134330945355751496259219788479141337804344330772494785120145016644124723263615616499429671130359799814327573706337833468001493923852554585052410079073050213763563827116785360443082071220089606634855198986882217144470032087665999855119695826358038702858158270735396895925221964644134286971156460539962014647450409869706798675352442891804594243718119159818909508430187347010830142293709601723530437840648692103733157424076190176712026710289247042449544942952081432859110475162080255539548576687938354673427656073462158060646177957215081282143643702891416775766736961507355804898940366864788716002098485494149945870663669731124727970667719064000382455704524616245535830486563335407695204877429960047101237463350236307631876248729102248201302912701379526710368627902433798223901578876404819670642337145215821046872925329145963335499188799669620245219179293211404359004214294267706317260786036912723517977934519160446953437589674856833086165862018057850117953613557719611045006862469752909385385206949639014412661373915429479181172061822128329460403299925748817492616374265220659800328258985166766819093413125040378013788059533883823351107167959778171562549024983596874957185270437491144969193377581759378631162907976047506917974650041321617491280333529326294941137281107465613098454627638528791220189856546582236549866102666145304550681949902550561066357770608390799257114165557971497140680376557277798203140716334550670962070832622238916550359129412564519071369770158915753472692273471686031923378069064959585135686873176491612450293569864452570261033966166164176204510721104823923759658410056800052804467569411810817399261781408118091913384403001815648079697807498256244960800759242561387349484175608350121389150314249994686330956455415180978821845497767477415015321193161102644473103000457301952351440376309796852007991433160096877152478310375058746861109792403249800057933985576099266762787969966755770154261156159823752012054798503128313156803304308851422613576669529457183773981619720356042385909222757896021376263200821296323234540315012413790202383010507789571293276634958286027123185552198535986598470801844624024284888812281910640473074284113333267214015671929595730514641009257170693721482839755310874033862384390859755007539516181909767294855819256133270391548780596688285641121172174152132856818838592659070424682766857803515587441788543302795194818937703489096017790059015239051308806037272891089374692483556395701750235423461809376893632049923272737213750902481526300657842293517034034663400530719730607209806673343290048981294584004156937683433608866978220756664811861948419716559741814602305670390363683629086210672558903887273184277044529206236157735331349988977746050532303553568619855660656157096025352329545240070314005550766097710917246960833996208619246202368928317043952124183137363462570671681206492051939763419021505432203583083519273861472937372933708301893444240890516317856035314533166555138524809230847391946632876895618582606149493331538845932477143752143744769676216551826316161969649717264360427645789398758221556042130562380632671448737311415466137231929967111558714792828964640132151659651071363810294553486114509818535805112983904232371418577903577668631297051350620408730722891496460284409377081104257986145182977983497147861478481135632858638702967481361385147472321562888154216170503771126594679643072860390411708786419970824173945850698880751907402797400980138486816659927833023201862256983783679479432716808714238481059090739586887826881693827043951350388356806489289773127046719419645196974973530236174770744303548903434108969653984707672366904462019132953765042491338897084069944478380302433500482895782753162196498858568283322173955249874921643388321374384367133399450765644730912370482968007322805886561298718843360231281223373196561457203057673878643181022085348496500739804445739874740372351163262597329913830513479206599309719203429385174199918133278601479268200001631500433366783228404667978844736303455928000067608745820158563648746187239446372009203589330905930955734164080532485549640100648704450513194667220784799875418647236808946040386444036036882886701209541628502171758779577124039103702966741355922301847085887333220944491254799434054297578370827254569338021428493561557971200139432490476603224698236259320979153752939775529343470377654510647049729910578653331223222921837034192168828970942133721257968804811569681909325334278088220734836264592909445591898137657483434060828871334391728018610670071190298216690179572014284705299670131428758818536154950900208398382066880769909348372882000002038621129831792680594789324178617816154290102366864583224748994662233962017330461320484619976987793995578355977844342263144329441725315215055120405370348458996258506660522232921625699044503385485117915174518386423158937387407784246233245096527521760848163795948135443098474387161801100994898639496747556961266387487728348638664925914467743618384227459416057591109615669267702817188223735197795272260972889325545014940415707554539640394124478507755994302508333094889854662213609212505723489617153362451187551175838887708473089946058484309917824941353519930805878773374952086943907593822880538865650751433335610192004852064107213704097653302740476288152939935433987513671450123978533289578566250554268790350096447720875193851453681897277673822445862234388716782215588889751147504548596278554064266872828563175566052110087348358115486022952127964122014111117160322096594338189037819228532399963987937443853087849763540689882064022799733374125047864649709543092588133790062451658140055865073754795837656982423381251170392858325651840061361303151714390787509636088723900320880225942698160170104190967308069607755853584194510194188350345990311279264075712180210143856452429595365751122989941134088602854310430153988979858589830829375572478869296298111895363983927740879041120525355610893875449944659320619756777197928846015969624836192634342509431726078960325486354427775668852147977884918230900118505312389250095177999827714957958775379109732175616520657049596455238346308915569241344519166103289521853131277351023796880978534115212439022368336475334062425026125746348202474858376343969261243424650885725583942910299063553850582341122103332341562771611587707832413619046732310546925942838071550989712419705614466018511503838802863053321647494409341460836286925657982663911058422359705078040073679288121722071387049224899365822575741843498184295051402926086565656875266007580891193230463474934408182100745492530091743668469879999766679895783675485119238894556161979477010121438610998228771378255894393265233766658078333075869792113746695708205987249348405742714136622599822367702051425806065266130799764733988754908876065747886439728621604177515839550313390894315228294271227025573971539397336138023108852309557581780848048473141837838285257461757133203113337237728431582184542600428469685050052141841930631681515356895632476864227799075154952996353054131449121176329399453597853881188527858303699580918992496029459013294596708971661652411941808149365283648849742262295257080522371793218930317098426742204033303974239519103556531364642836025191927663683316598156113747631446656230965247915965863009559305291174066619768868084444560627917346879005658670978702250633507327451493111480351864837488722431601107910388885766864724604043978585028223108995761344043780279711505058435718180095933721517655170174806453507883256985806358370370938483204734949144567574696132402469163322034834024552001160785632903413409047209762879167704285379300590317543621773180910874471880223099236651622648623405719286512229479604147770882131734920061274224487026661366817041949944146204042843141667673224140508826021057068063496100729829481013059607320154489913459193689804470869617379228283056311698476965292060938099935014895256302433221854024793779603444757535727424084219925248614609838318031397267949291583455990494617547506263383377650785049824750224115029495096217073598752685338101740234570412406923960243809831199048555267354770696200841318321155886494845835413968866672419319232390171462600721620439037978045885822575981635369269483308822413092290520504735237827883684079533741441477216444289965294240248808779183644818442460358655098922425348856128668949753789230185398961544414399387474474074893013668072717886039911443994424721853809220449457888979427032308441396744037003189844202715591193464630414040884757690827982379099108127506484288284618060216165570962175983608198307895314500038674642720842081383309297528430608909205847234706062120223343150213336952942443157974049235476646419120422431432861887820987019703003358643519510136815967106439005747976427012619869292345156659250752670068071129174974138807829063103468265848351009772126734746316766031304147483634904768699313210983686734727835730359199653667073150627193963403599572758933467652832885462002461705888966690607008985887884808197948792904976195645133305344737695468235905358350154324573453862389759765200352917139121001413702354562168313333880424000483515242706638528037454692065383824425347460079802493806177946757670451667782733541961963974785399905819209330691715337412250832469641588037579130113108774518502320587190976155610642894091392230902716909214200228892586840233332784578098514788942929384254166304724270388341463010072935598650632275613692565975303641022647124011725037759757699945636604021348328052946381334542400266402661986933099374581695483719965377694792249350333575309459526877011118722051660011200403771826957888609037883640142767848994327405510923393380589126265026851503406000772633680201439358917061261552023801578596357940673856610590663402934574375073379421368211431221402394130132581219634427235768044650673318198367290619870981021342522797513959733096629230043310793976480566530029071502364406906522316980000987049358433517825805278166404885326038429775317917623939528580748515335662723543950171679548234435822138017305612227926058701780859871390617285254150974392235131428064848064635875803422160740981372656582604717449762917727373546780627073434046870797882664420966577065787034585485335857807195706988462227766708437255394201906572690638725313973161452625947407171774832078607653273526817256820738922785002575661624843359343734271047682145472571783122077484746460217500941039844003588009819426123959134747529267269161584117493424234207180897523680317296830741350557939247736531732498782897615163956634094958368703955928429044888505889393744974034742653155819220053327335170588396241062502105502014713397883539896146506451065751315199816935302209971953600774082684884233817016952270504371244225391642032379161640786729981290756274296755907899383766314435460596271183950865290838887344217716851638094941564189787936713981093126317670574540958416663806404975861770155608636240076918583932335991967298643894595865577668154170469736626253969698959649516679424909246047963452525372993428578527748680452994891774492927872133546279391137028023461463212251022712639027498443591952186479668895978248304437207108973818342263373980211602157286631389254892582322548497283775309963964388992305223252744916223330740654660282407120193174165230683230462179216519808138403282279437242700135499606742881502460365872850085386801671195932021016473439108789590136103304605523815826143393815305936321878464372838338042813307938669577771649256737808218580380919354290133617553906247139147527244352702903181197508031242365128516946713767722950728064784091619007373603219009751083580247118404971318694464807838393412665583286131103628300687368451004457557782820723972678121059933551300937543883167831409479348748906374808936407256574269486341101885740416709623897228358182862782834426897782368029928976194058949979939701749866957583634665913512354042879101471773326749702165717937665915956811286258226530833791927322901946949336429705858016463131957189592273598334629125678515938190302987660883586332674088109051979010390790469667885063440155039632483989612401628116784358913157339078959650924878320693453032884503935337249092913582120053879071704176192227281465552766769043282686690446383517951319591851174907599951885822961760913376544690323607651939856228319419892765259061667224691773229277178440340192661413823385548736857062359805905091947575513394390057416914166228979801989230448847178161230329936935478731783057541821633243140791228694170201085668783221987611506432229380012115235354790743404154240540593469614115457793335459212311958980869375863338041832055605590112993488091440731683518410240031569302245442901688985373176393667945241808320124464595093569713997759288683844267616571032299046006861048919308910316278091811568614382306382988381500629148356653977524321791419946650395169779809062261297612049923529654121410996910607728755867792491304300676195818419441466830690251904294451542769868620025802279903789354714426276789735358226562737648640742264868336717293630363759732040378792070630413422895940683237087641755042382959853860381988128384577062176909985454411044720811910241633051913618558322244864431333681292679712268799255486960957542860443857814208670013621387261842891935080288696299471951960334053372458148950233404051651970975056532616917078714669625279730091900362433584894396017615636266502335122793875210614522389307655186814604168520680530447056347558245123851388353009971608850224409245095557397753208069885876455188200274209925826754436353360903327443876607092388073429074558334153102702417503534706994771585014734959781237470264669775907869691064554471135429698366540713127275775027736259592860828994008316980112650381335231064301040096006680307638334062187108356142081334731314170793303212534588480784571131262727454665077166058798738654367148346778048336691728120613596120091102365540810956674587957433626224990929625333714983959186384654399205479349970864904775029191035910592648541890296720415851739077707788898264199657718566563039145836328570048964812666241594432402392728149893497699015730527744200379000926709909404662943976623999025006455154864384014283990818904608571599743157118655804963658587459735720290677274905642619029343256835822694386216773593911359942404476694505782815305945973117834957006896251683343281079578981677606180113802855708393848044315466838934602003781022898612162707774043534854313521241281889022236397704082126789130558067626693535684093851353053634281860845614107094641169560320258528523691378007747984062715029407267742370691754787280733311561067162466032630754811291412751006029777214527491372401018516523313182480225839958196216029429558452499451975310580350189734244494359233488232828256056478300886725740353294706029195151722736811473342763793758656474295702500298836193827870049097315187084885244058383297186955563884712348071623639854403259554926050025655913273233457029347361793125805462426284491521076389277100390674703167203850869946378340254141814469000264541341576611180329702409886492698455932726033753479789752874475449733310694081057338384017419724076188969350997940645122722707834091166993018472141711673828850874660047203013785110479936474249835238525457935096912272125637410542079513700361367394063607228978373729855927923819115811334004181876244711891571583237837576554633867448699689605586882076857077062847220437422066723835560398425147027612482283136556010406230040723224238401046953052549158916307766583913897924392976101137007495775749025395936271437626487965014984035983265751469667334818098448093796465970325426050740835785769445463307183906611675712062253038413009922039288612885028881118825186177937059588908500261432044937724805379848348417197022836568337469442883529213266584773366920156178727340275596773658366659771402440340620539263781552254932121535641192841159345274113443918080356884287379970836826010718644854694622371742312171172678990501956355874240513482660713390543244176020796656807071868986791388457450132329563187456817199423807335469660988521725626158190696019746988539809288485790494552492748683689694788748479017071145774100857468709600709937500410162472465152812201986779755495483990705556701130568569066185493802610756394240506354023434609017150725600416184190890939288148441671268061590496537799881509179774639581379090878621077116281546194483468779246727761341352815304076934217431252928290186398376692829648100917593249934962926875898764612073621948021748930007946688779956912292220243856073466412792783560657573493340836309137221869551244216665313763827985327738900339064577430481144810637572193743342729698788509297048151429122500510222039717635532933968021203792230010882550156858792254497445685204718704816402698173950232262695721874165975458098198902558184360631649133583090572847357595493832869803641650812602876344179836726773032533501979132736921100195272338003611702948983657480080054145365667385957907102308313245381384576838412984485204510827153916312603079086838235687022610118060594452589234993491891015367038476218016675323674810686038960794324582531931351001095268537133650944284865274395052660611320141646539182566384471586230759166753964931896477111468039766332641189505706384892521812001350559602758781497815472448301078624090591256006517146763518498461445515940216611855896002687966689738035505713348353929036064803247198448992055062621677766084585334536800632543946822189364618552275950575127666943384605942785911352555427419463122026844412093853800629710583199984516770441562807082697504140397660571695644683941112750230156281774750042401746078982063588305661562481782247980312164696051557635429045572514473434757353887980031086439390183415256056671884643898627046170547175907957488437597697679750386489333123691647324167854153557392916696720547322110974546024108909126020813441017140460632589056648788821760139500806965907895623951919392607176565308542945301667507178369405202169819667893594529529992025375152339093593601651601349331990140179008580858129289786104881730437010722365623675318752719839031442010568459476637437589089926783284134368616596877755394052409725613092980417887944042476639840835551194414934601466344799719197283902686330672143101359607135722816428653967690119625174159191852457726677956383382095593907356086569439059619571589875246803142982288930999547332399964953335287829799897179723068345053399114301555924077938439336432323286691241874745198794322069341301183427998793701505181746939747416084889396032645530824113745185501892062658942396942713656021201364336354178477818011523441658904450736011598589204498551815468816753416757124146604087163248353005690107574785565482786262514832219858561639621630622379481537387051206909484618146079919334885438290834171081890230344730242126303779172286355157119499078027041957170067363392930123638258280465020353818475390717563197670062822773047149112774336964243244013590580445883269539982838880880331625383127213742260119977081917866688935412655369523552246543692607982629577093882044012310479081445023563548080475876860318159018173633705342055214605786897675876135127763564468055459052508796857457618209849099113610321202188525991010819893898295450096048757660708104931861911148369367917291825768809167855532663832695030818481327275780702888516028851439574757006813086701981577088567735964756011333419109880467743050046210589288041205229337893496677323389697892424756293340927163067595173125256702610051000948227343024261306035965841649905786664848235595476779319737815926984823446285057573355887961090510758651159884510717757058769121627210232999006123034234319526276812576315782675182349243045089239494986310196375814731025379636332456840514782305754018931886255568343402179555130750980755012444183222992787353002890855168896990778973494423712922083043533702906132133178433323030733319689604134197123028629647247353339467004994740496703925503250533868127880423686361770593493408184589723176622470673058693978834132478862517816157225348812137197207453252477602290869088916968476426566991324511340641470935714459191225517579944695576433773977235783047849324738895789135977814316609450720799242937302750603524962547775548159679606832325143243094787383310917682716961852181096778866105467933955016366050581391089904369252780275535365606087956495337106050216342882685766907427776880967497053892515858514968547999512856471047063750820880306334666878344030758234670509281937922671279757127606063938418493934262638291477878182126590732367722559986632150011558248778579088962806833282570628840513119482861637275773614789140835270847441172882728772691452080321441595802836642966288694726622033208539130238806139562343000236770025719013426237599510890706603507896639323900763284499394017947951843477678699988905486992873954569804164368639567399220896906011798757511280934024179314598892322999610977697562913788515825334135251773019775744456029809282375688559438373399422250059088255714205730329096651215689387175645602939032250165379264920560003277554108874196394525995938841393050709901241756744034919460729556845108568732119621573737149122161186135640340833583473130587329489003205022101794265172430797513280280797629364259304064460404966177911490879907298838214340070047279561489166475700271480419447867605543906482217041613233525726417406317626713741141489395788489950193283161403434120595240166203039125025533885014668801178133328221633384218289493883281694748650295243165660027439218941294484039156424128082864005510748670261314385808644278371898996207466376953870523813397309613206649208498032135180089084425681061881150714299687442897172750554237865390027157952555431246823914769607765435140760786708031376895793445111947146241974542765354104673711886418620024422802484384935917465894980365072520765489216056357895468937770482135307117914417763435909046489957152907355289955238998821817714830093757424286291373460449810872483194430167234148453138547356941091917237489370542330283178214849105120923348770803999525942990853020037947527637469144416577257576520594878490434255649382770253429305054874281892363103991139520731095354366089297858216269814508986783061619877348418947608408288796733825620951732553218564649765037789482253324298325942941460146961780763750626972579341748869363304572096211828443506554464791734556520990204440472986549584592290851255368141995421536870085247867704039112609825819215066737310684679357566766464055262356005569749479213780914072758084831852744660598174682846532857334930451028966103939273658378448140874861155886466537216248138244266294220471265767280754366571504679541222961087262129323157411162907263428776383560094595507889942554512208983460019382989720291112856025333449645464529376605492749946613066666258077482073769696586076587177768398162381438456751202716341919300314321510784969100522916518709709234718862571396095393434581258520847973551542413239279205155244335459965962932756692366212998535446855889651819320888145136256342728521516120368109852168844516633154847788078831904389026819398029964523041784001219344991465755996753375924946051563818067738943094484691929402870665600924649314576601319352206186932562281545020982087487517759027842538412370558829940687798873310338515316074414858485816764680153301904165628394691502146534562450629769068153537919567584075366885218448431310415558740841787896554247043146241448548570952682789933830899865729948005292154634460164139247303617766710568345706062805510818976460173545605056052614745899408232624951115709248541867086578240962876664687762211049783439643990868393480711615611107384315704914332294723650294038820959070548552842558159255130461961568051677998870429840972144004484240626318611383325216705363962615089365021174172940641516854911506664338058734407651789319760361215850495109309982733094846317298847093127368281963835010575618396961130350393274035547298437420589112660118161759928308852675614428402555925343723879435508277356331635338729871155880868051350996746502482799323077659820965077975678797778714703929879791098948014522071569446214930191662335451665380525449479145758149387669320745509762038926847372811610085189079025964237140140471112727148123722909992736117096745595539923882756743461198391704699465743088894536695547471655893747206259106159828615522847534547345196558240550591905367124953215448627286211033023718297164133986725633484763482236583087900720372863757840579137710539312075708774708103152453303324377709443964016467453408206041565146103620894710208270706384826351264275491976004013016582114869567394264294193588841899896892770265137306489333078789408518641082856452871925700722141858578597099702442757517136767471932901640704011634441883235344643268932306622383605552774344086837199149217007613320183938078720848499588019806243338598370157597101228116777190261919326944148057281791443412159040926403188743295184765527542720158666280959422493485747757840180942666667910682528823783576681533227212076850492381325679156167553215312438568558799051950574023263302825117057622177250482771266207609170750860525377427950278100203499789879322913592745709946124202013898520804221588247477999242386591295471300732003355600420798511959113676487381748992228344151157092765041382847649983330065681273881560841431028462862834173957228182263920678208407341556650253709193280028733159594227091303214911657789311668271652511732107938824695770265938681834951682418579468779605714953837012467741161331685143565578067654216916785501561688418771072907608259930934576278956160474666180057505260267340643881268174034803037202209926115059283368921826275327833821016156550893227976857772963005775339845414976948312390215537993412770921718623010240618189774048221971376579393724178182851824466100786654388248947015963499355717685229118824813668829909861410769868313451000397421025902968937112366428986784359656966742233635840744281504439260724642206841805822200216347565037835680608197140377692323757086649877058340806129677655275257354235910481800644630039844530135611892210881400509774374741799107730223054391549263322536960579443921624726103398125229845926234749247384310929364547308623037848233998915769064793011825955542764014317567632592920083056089169728755466121317211260352055406309856128740560715725631306017163607385083923408127494336220002263704067727696017409777831267836697893595264385966061391026767602527812354610592254635746519715711858926213018709869364554678875062276786755255741544718096820476561374931852566940888403378476831377078271253562221567468660015349525376227695121310095783751624740261883890078451939428647241458350803667306978802991056091788726974648990312849005177791438192695836904584446421715058163372355096078038976148931184982374130452001918236379803417209700302831695696779810132902836141368865240159467564317185025527035827602961824959439050943422071947475852363523420245404663656315731918738310074003399195808416698424657849278011375266862775095319258117707797273599143015912581925337675314902918223788855803100189143607266448452919321564821472749544645279614179401309496950891838207515386478650045875055530693001147888850066627393778803483901117691337519683797681848894277375047896164434585640235961653669481193830389999465734590649150153309030060393403040566030117625857046724387943719917799297674839316176075681888327387637358341399610063165604358813472612977879217460419445049712511638132306246215718102091217432068675749996345534024578092058001155155216801395624654330390592761885567764387823996757106189579121702871391240114474022434101919619840125428500967054654173734474467660389850024478735865758829106374745773581468085013579416726250415014730190132202484638425791226075023324456472953903677033673350685221828232945690025092009222413208343261903263575085393553754101616472092970106793416942033825205167946990752301423362828551568064040479441960151606094982704479174962049122665877859882041114611865618925337408294495877256779867224937085365660015550746823525511700274669700826122062846703751710745412379620932238779573852593341832266909482489059722979299619041661115093618346263180963347391451121651365634559209329575466906012838931436443570057678066426631204265113535065713779234468774866380764327023819082418291583862039133669920767728869728824500527207172360125270233660453187873481337045709033334146478602599728680076654213388341048240049703144467304509152428839971047595977041479397066346902926308607463674825092568779128279920413748822538290161731009778792937786525963148642124679352727788463411311355892125021876226698519558608159380844941147900888847300636257735026755716433688122971986657796626104626301282708821961697593314581522536821848800166888760625972600352738381869666916497559707533926795571918158477148861587636579221299848191809186100985026057140255879704959550864930076024205242349048705809863346693505030603957300878121659805415719087357499198809108299047984121951369066654313798894937559485420685812416233262382071585559797109532450563557286416153530057202968849043154146032238054213767761288256011282214979035089229898108442879913132982069381074332306731671633983533967313423573154874251042381842893230096180386419035382421484864255905715088921511263511656923284262296930977070641978886440827159596977827807577975155538795868038312347944621063392390077790993130804462994468184461263071325478896020700063893897215726065033098035595120642341986236615848030230409392552019273367473095649212298123552915061431222163201978261629416307762412112841022775372323127993134529565260525485994755277909263650138128045482986876106259805355058477907720208250208868716918535972317586757125786185610172934749276192441349756747688382364678526605459041201379295963663389332745443992924093164460214117123692259469111026304079256465944851310006108725894834192734844754537939538802500603398799645138451623789375432842210143461424083994998195595649459781581872557431640138397636748020750569933548462496519486846296469706088353708431401439585577243847200199177037751626691750341665403579504294231138922778701422416202791912077839817697860729499168039033547800853758888558014494044205796824181692197660117590472166324476715084142222073037202863537832916614647969036229502402935392504137671870806806225193167450802198757378212108775501395469268961753357174094386767534621643601661695634568498475257611113492054610560088174279055296368307496031935181255979911643078552663079018947346073932434070928719539382023742990654567910431562294211247721957863892445664177092161241998877647890381080336782224727715783089560790589773369215458460791762744304930035538032094759032943701672445957915319962071464059484963896881510956905233919235904818353694092742300375503521635539338249208442861669631742840613723181607157476053379538783033944703165794760660387373374995171467291190989018969096189700440534405902130701398614440562673586608395082411818814643571223624259369058956723520559016216478306592204603005748765785794382407961553601569541072378847867549190992072304109968550629248881298601797934553123541146910663964404842597464434022601510630821165154941446302910696229846059711271333428595005767806533131128595781038587917700248038898258652863856049808821837464821094897385882905354276036297559043754439408939685028370525857861486728137506521189658971557849814224075250305816906366564285560761726473486118372972182247373942013398930957786216985226843971447050730843046611903008764529842989098423908088345404429301138874582252019784572182370014991601835417070982781982865711107991846416585382765415872586753687333246520212129887040063336302333594308650629869013522152676596628673107855036672883856869661506380664002554924937852996959717209533174124246906573518847347039947883601089686673122389813227229551378669228415219436786508557027068743635349100655701664190558860855635738108329234813437203833530978794170616161057799323305587160763925794043500096098689542423230400597813521964979222455665282047767548623793913410535455969005638672704230673060270159082011004410564587871984808684936772430706289471553202675989363830465202113174163300804297146224321490495853268504233119266612022214591513204807773103105865992197638188146025074499620871882907452235416882513095467337868834916266743649391693698040466944459342250607722548396225713565911502199224812639376274264050835625658646381064744230387045678669788150199095715587131895837863634434958178242387634046641315962500660146624426880352597221111473866718022121055427203484870823857800726390783982549645294625781416017178677044364113745401321905537973971219523559882281957960760325915852914632461184526843390808517926298152081404983398139944550191808633845171295221742150230375367490731712660442697661512105989612916493094879279693495686112480567841343995511366174104114636391514820253050315100779603305730847107526968840718741139750325834853312434328727006151491239321289902136778307288468216752808864482417633925039819636375398945615704880876129539674845066474676338515796381768354997528004791633452287281219303801158567974155545806468845419388939950563316670368072070945700771008262477190276018863010280390381915650044528609549865131524277155164058523275371852233021260723155032916249417791770858185478237902726575274772534633064883946653296151127934857901015609664540072741685127122033386011769724991995899211656108118324036056284953398545568743596703182362198620136469044159514101679693430052471116000423317842390498724196492082278466228324553248368767890783369124819466732476494611962882948248429182080771090873072197150178261571071082980219329718901895848929423387136949544716991468292292179964846803893099010706638959344248045341394705155815032728871487314584474436083105238048703081260286328476468648568798227318885621460781536558977078205924186161400493848396234498488486660304652579299633915383404023128540889068361353234367414972921074405626892158568121490886965801507358921732721388958513673324319152089648048235242213644944553559714447261172352140008228001725961387283123451495150100979764526886649546675202545555425951836606625835318386142465126909808035349018327923184126565317078364059806969863564469206993312292784177138953674187226681363969735923627651611558271836626391117555820414473835183649192508651220775510783189140534282146601903282324255471286521877455268490596349376651022049468014645940996839894159590585421790879874282070507354358225735326113495431628461671834681749580346294327115531952110343539504349711284313950026789748939571371237770644031266265055742436437476079375762831976321187589423832994155962564259239009367207061493306850930655249295133163967720589487963076227932178299874332736215224084618379597338982575000578519130177407973896116386145957420799901133400167170425371879325361371525125394971050068091394988629126759517460129197373096738096787121439743067382873155253648440678653120532591191820339633363877846947697493201723750449001291681704652522024044892187384049156002541312267771253454162477616805562511194498978725136590708334910116448588199428969346342727326622699087989381253166443006975515547367714639161493809522182180159849836044508090919781821195657043538661031265730594062233218926328264744066459888128982249071525008799272343131472148720382592982971933946761254083299328531395299561277715333553621265679487558787810536333407802745177646556993270014221378881439320257417763055214494141488392033514203920174723191310048481579666226535572648976323771403020059328830736783752054113857562726620456411262126979027105331658248320525302473184509882262616989150614396433738657102099266410053090220356014851818005880550687648742402775867931878601920076942352013941963276112575956883428392744957246765421803359222255104086973316393912572410654010925373235906722002174209900966283208772282154088046864130414155067795856644655197438006168795144222453635496996242404500206371182004914889461076656465616227950813677981428627786481168006010681146556621252050044010897498077915117199823012656535646580168585738666930122820419014768163191904118546222369910415129390888328937004218593973060246074939770510905188441512042270199005090973191363085287955700258206894133464162264646727244688213668598012908612783679206210098958321033946555424554779466759061912846663872236807764896561005633650129871112017204666173078505577309214592019626358403247307518217871468825031053039184719338022808643711831222776378575208115280299899490712434315862986543948023571845631527310397627957457416432691156917689998673572116400992277165500051893872272172774620042767651134940095343468513334368455818852235993067145075269275157900534526737097278406646000118869080894068415313411709021600436291501134360960445802436498850067950611768124877249376315544648670278949551974976862594963692555830480286053332005928869759755774697703419771731334780066277117526598631670747799487574075625134568700153395014806059420365409343894072966580675639201061752897299795204533515398907220433515762036131736392167801119954707602695437961446892894787561914701708538825265910073809617507974290417359437090202805892836385661834975422777572522154545586670256149618037867951077997590061335927926604988410835428393169599042286952152892713114388701507236289130768497162811816188178874023134374010424247767441052042084821329490811804205183828128969697197730199376251223547281317188343680676468526460946828047204163556743264773720156134847885131826853483757441787916558906964606471749264800302494004641277663668319494830298207406445314255142928365077347355049654979415915268827004260493372158343304203198721883042591813350805567730697898315872753368331812103653317397623670104935167731726468836321452069904888948577982060674717630085964269563535474771658339083723249854121932080361802010476282064965640761551744419845613479098889010718789271646416889998782207436375528247184648573811068375606319586480194839809353999542459825598616622347518428721771077364872187258637374614086417463091055338298578703863032636026829625277198852417215003075741366390849245461723239117798016417027918747146735178461185690766589185133716835113894829964578971370362527287177867662237669042235734330135870946926353974608327786071308456316191357637165142116440714768650716388572346840313893035527571839645226544703756438713328779166813893696703233747197575719013216950734593034393358528362029757666524932397145785020530579051985303330772874469534820221299409868500757503636362824501999408934204098138258610924641701103826886191865275435047330510329023475362116385739668568095977946148239126605131906719878276604706403144358086213655859295198436798087336070211131667613589428267407147124889422571517797163547635313919057329021791776814681202054942430963632084217580313998897446241996292900407034029858816740557396059706308304076598116825448173792563783221048698116941340696643634948744569494660773301092914938989735896786201333979351117861185156483858270537404151145387468352548080273812538980892106179041539608800492777960306071167595090393431654791325772878197142872423816372959565405983518750987351706226075340864758499616733911262469031615458082942343490105901188382667809353361221493175226201125128553083556988566478073316645360020301806643805865755947168637983615410746970293479862623895441098926677914534426439149410977383443448061272873955392720433130513502179966758739826953363035718642552122954924381850655496860220496254119372118097220216104821819462931781870574017072908950204973351909841612556814367352356805222761783651501632943147567606649466490895609678927172350169273954682372211193445243151930999526021516213933053822938105462535965673242073590265935191298304852712462574297148386285121235069384197444857978069545494816252850708002920934594736866238863349837451737475994989435723981273722020113571042275957103820668882143562030906406367860417286209713342477771366940553097654831068704431272615053469179903195972972760436680978928279946258515785633780279190256249186270633900154785475680963122239844805382139504189883548575412711528241202207301641236405617987659946983770282185394551482645720078180261382087220287709297207148467352290077312618037488167191072298881022202866166837761089726915294813858346345850141074675052642587812835373088485146665791772400302571874099435590960666411530062712170313107525567095308756460244319393506886304556690541969388534727851790211891345702803306679568750519206194478758646301924633305437929455390085092158964781491115135666205384449406903089454615421896812450292164519676489208047759649987974974729535162894660018010231042792792136720121258456235348712762361893677383381714406534764073735332150972244590752900747195419789558654742078276781381306785277933677449904611721374854068460671238780709050576513694397064590372228767865886849194028940251774292149733155580267344115120819774010632477661702495495581699424638446615272545429179073326722526507955223463102651680872401576458485148348791746761557876288375378602113157999418102436537763219519089274895292304569275084023661271931929007014774818331606902261493986806535605260705224728893330320021166077519597032594954154929612602376112927015646139439614247287418151971756272397539371515863745546795252232612371855918331831062876247308872245043213988382908487141041229650440448509868129634424543285823302998830237014969860389952716045356810953840550371194129639639352402336247320092591954365585211108984573678246967022772577844879117820083978271310220673977715097216231144030758791578991893961075782968243159283958558539698372847980792622504637206515462812689148531684097675821678667040394204634883587312317459536263392802745926859540976320333408735718142059913373436679611031840687824630986554786545363476358447468420924637056077317805655120452193536166776178780423848035113192524332897950551819965353753413641178779987897534167806058929335122781421523738173113699813538559139073364283133451706867404035395154374052881165123298067543364838984684312195669756606242583702319424554872542233183273971703145633544619004349960655320409594618077314692867330177168286058757141161309323602575832237671056648050920051499683219193153940693201163042868651639806693679199358831927143346876745617732294015412393444173409889626381032094891073146208059693424918436447456749436565853699326388075458956161023104491820687834901787973306758783284802019732381647099478019353867960750394877160071153728347641370733321229969250953741902323834757223892404740835037738533306786501012227062220970370164344891218305061103657430305477413279635308462396701858376777733598688005971272912400475744363738124252684228500715636547624582353505915337566778340603093420193488270736509306020682840269383605098995941946086193047903910805155324027639835257666919947368720419927541642413812284554365220394003852047987373366611059671142468240452123585352361791915964781854526819354905803638131336412617373180791687912655768569903187786072808053988239051059101082362135163308529831592863397529366689485199041852471661411685703707403743630935979394125697765699093886321104636544635001958391280592698461849439407063345059154052917288694643649863929758036520340215116096875573388222865983557717361866644840747449956016653419532366435875670536285794528508148750401719979295008144557994675410926584431019579608044265509835071558381517879766321601750082417721898197562889478957939215647829124969334392817342730120502970978203027473437274328258297322733878950122097923317046132700761700713911170105401066252730592691471080003121938355829314889679361659322615844004846975540064470522899928560871229139154586779012844360588421882230519298379737466592396826689455616859758647217856225029507259487985451123573073235972488306383141891863905763076034543578578683345623527504044063121916747691591262630536030661612350102438774113250457910831179823185591436472064296595560971071307962829116339048115172007148463832332452616957866225593540147712313225176913288173879287221769526740511327970642660224700731720329392479275549793348862696110600757633468760563639101481252887318133486706833099207280549831960249057827896705223315172480767749824098534020393054028523590402671968887439178408990847607728679304811233788285656002825538335718888962808458846456300919885162250372795243683547539623391708221674516348059465783498503900842317622011018576766943114569998634256760362179130565544828852350483269804191326186116097105044062746518051619421943626646770850421986609591011080982799558415277176825610160536835065241376711277319657770486125358600238375869377218535922442332417062720342390243945177577588038883809896690271447286591271088192859523862596491793255878686027339066121841722362451064127019148519927019595084340959061859968942626785176953195104915814228145458419329931859765256435678900469355319541831986458876872866785543258284334495442822432030884005684181816348432607684304046851800163348762384966103645716795649390777249077265134140695603106203817239524173565423218375180006609522390980907457344210413896567218720544550365531765736788815873410950335743507334579242817275390752118973601776668652141328732749747556443227983668125473695251923232811360915943369378772200065625725235109213473939094712052134379621903158375119666128663289080200818869523802481963797111824404434610891039767802311815456369597104327336472689047865721914893610018689023020653476277354690098824261116948551148782740372246128539090997515550329840008545954569542285502853223357535059772005426589400952882362924013249099661838223223175655522725863079553135503535085131279934746663729422071423469971954851746246952461511925208426670486299242699339720992746388856996485682106684165471793596612273964140852812088677284703959146112114192081867537831778170228402252801412826307086848158277995754289225970964981167646155330787571374258960139041347962772647451368018309592004547644696069867113017999543250039020375351791092008166638159181111521156300233650493218997031662362615694020105395720985604115278992681396024006455058854661118969672656254327119143370387780858569557110418023383349183103281959541251778493680588469009024933269607576848205694521482206923651566837066832987592824384346285577185385720807154432726788628482810671763284310255095121812953118325130276602686044057220853612768712370730933112220325894352078479491615234463684441522137159967957494746826406391264418806596245831317182922487333119312894683222413221779139177066733596580741453718914729193041192318766831589699854215150933733758811487230035474518780563995524087770103506265828758470884540453056830776330294701588282249624504392054321033512230956720233908026260754591381177922951982790968309650572612410664800187410655614442349846155669792819355380249207180972627513298834768414530284182389095220427538922446519882178866808138845308462895628846336498414658001413054285111416003467452412909404668416694385992069234485383370216820327909670883618370076024989023436863367790600909513550502024445600993544043921419065599058416766703805679311307598772204707510010078043959339015454159349097833130749919946747050524110655112495538675547287090171810167175330412361150653611349052400394784297279143879365589764163282714150495147848767407774048202494814441444767273425352829948026216040760548459647247637622614456079162702895615264853632588856384520613280482437465760854344420729254476687020324223132551789880890632913825907198923766503964959161770514513232216510335741742125534610814498897480492321363440043707187352800736502064891231658911391840557095979757203196566272021194984031442256035835709659526568069436435024332143261162109891859320125485643265085778410907332727510818601542842575195204644742578073968307695693972159616774664524427682083586761715547023593189713041495431203330941105178816578962416332705540071033383834502216377028093757161199900357830594432151608755679442030491835980644894230017880272674190084133873988576220802839978930465345969338105143660888135054818450977439760284351165425269775979815667574388217172858509916526024886989618513300522475744909271449670309265785705812811375561175883373969320154744318328265069638250500900660248047422311817444749077440382547074654090037052031996784316319831069381155701866006428702789504862815774500576254431320177097659755927669877643648715024681424022764931571657208688328956357632065417599838354958875591835154661517331377483915818166002997409232326629786483061436759112873986900496454057660468099896387463304645698898937070608868228607771089533640602358184590882895748055935440144164169028260329653586668656567935880963933144263676762544261703843930889599764277225246458479191186163214566324374689487389135229940332451780318161457345170403695547410155249289549017087540277356869262506750517485800336862063819502221211209808889381654591339375986678899180871454178384740074182483767755325560502929507716187184962001515504431812133841361931193265420791452757074496571349091408796972410473189241276235002243473536596392546484594611641799828883151558733257094052521634564597861035430832487525438256741689491130455680052855957271367991279216335588458921775389795930156355310748204770252416369628028750907659332431590805824602015036618438501182510318247826378744776402150259737076867853199349346949399756525836985868413005631496300017010939144870800439514087859099105436543137247919536134977618125702038299117774526003105417376965259948421744512144487360815279703373769002135074523492907302515568157141041898542066007198994242680258376957548244846749984858683220230014625823316205712601713032299666912818870969420172103298582059444869065065410667156959285213355111284020708675356105424653744207993709038195223217249557316927847189053181302435719157446103185606574927218658696292118020985459218445900979844213613040902927683487242962719701294165229747317673621012443716835010171969816939610349246935111025753220499168746548203411038873645107520809394288246620888202729186746516486987056917531697652281194759294134947478869371142744100267850156902583535536799403138691626424052016006508007753362951069480200433149686163853403597837053565745399323433374253427210782674840182179461415498799249161983469806577716028728175556558824894400492125530868015069788012116612427473361614137570197464244372066414971503725055784555294455096423517374354037414175668427540926045818034562275415507683131387535950407379822982359400337236941935707342181186804781408856252016295038977611825527006082681342796566323826866561043544204080208335603792699782074156471419516657065556656246489754665476847469044621185708492075076571614180989774291936570170680947850078057285425966901943943146811242450238446910650853791882513519284447806999426622442622393554268578045963830625351745736990832997349035882246255331587968855774610263160737395012817225161083589734323100900766702389998660270738449235014418742474684923598798179557575023068807950148702564568030481959353389228073560054090369396204174753846195289651955249574558727352686246468890426417800407187474188824857102990730636720288981779545220154843254151995034831737138111455046458975050115088513015111399045604934710167615909361741089122376359467034099608647735197374858812756031871536121337573128453673249437727856843275627207272889956427141849217598244801871711204254357679165006324972531557179205007737741071523707066450887257680227132451688106125864186885622138490222574297635545270259643517161665673231171870975672608404338999072512394906351833235806150807900516203612623230399812325286775691427050866809772273935690784031783017306840316669218130734400742516672435718620891855098642470319337171117674787052227160414834838583697784996824624384800181431190656453699939518690747073638173365768042272546901696376780996562643638201304450315459893909036549673848715034687724430828587954951832915085221044561056514444647158033434658290977802314371975777000057587708869085881220927952164203339651332637535490400958948076574819311016247508376009913035083305223752859177602160283894774489560023928149090968272623414833864571597142975803640946699794892968974912633942144009640283008529141967333885314239115237169766645263330050353729661120314717686361457489610914115621394205124542223006764437256396884999214415614426780362894170201554470216882410304361447127249223008628423285016121206943769643250237644460921831517830592241729408083601930215566473505956238577129715707872926545932128731110290151822690626486950794661889633780631375808154549952035338779957056984778083627096454411786137388892517121588857183354280257115157919935137270552675332495623388089395387557262722143666732922154793847726722468194849050406696593829636757651706439928431530243240836214202561565880804811241987057082561943694745009046258750748951487510488774281647055799592002237370509143348847935603784704258939347497056082592766850375846215931646606255907653053358712875459634547085262525766563266414728957962035880277227926418576174383960105234404547787233887836241316209537536340026950703339256952061573642304212718744463684555665704079651472125922953289856859046731105516612084529227071093976510306025639398183171579573804217820664574541243759475684785513725924365809159705848088069454161953155275305875370126551296732348244563691910265464630830006580355992043096720674113003897578260177038118678739929315531684455119925278086130001387526746225706098460669476407125468056513688867942978976813945365420282120701918871544388484097610817075424539739979197170218109603692534130933224939179938398054487227950869536042661937787091137313683991269576281105420441240244139672537775602781252423582873278842785450653456511530171645147927701055236816645445841483185831172145326703350737072368637855735135746472234175552171615969996322053677986613879395297279388013142625284861895159474209901209090848309452149237402804306404832080486872915430971239867814855233902058925579158561661541055941889758785649373560682670347787072970863845447610500723955455993370940648713726429478725387598958927045565177903836998296587547681580975095298866916822144628218807515211311359180978954650940698503377902827118472130181631588226212231825423217373518572044939593424895633270920424509690068955700345329383884218571502780010053196187105419779899258949429347500510823698858819801819302128371685084460789301244614652547518118382844478730692135608416963692294231578504515115330388658825914995970630461810925353763392324649418198756501675297592852369477445081421779147238565029895311158076582684066382889070481172805148035656531555581619490672506593418833027757912506758575265196971024745160478806720950934416541982194527517024104382923506889935655264509833394432439727670064530152904750262373343746423253748358847049710066336747948438416647331838324336636600588441429624468938143274608495884744039805693028559516005352570697929625326124154037898121389947422595650119294045316417514050708068742654219357754498383413780136229925871631159320849052519700494414521307127411547081797637377933105235524060549275295168738740036231194257843681117561340142161871355233287145232245551864279368704014610061401309452750985693649216400314612615773639312206327585784428634085192647393089176074318281058593950302821246164782707436417352340169521489705811125686691763043420381001921943833907243696854528115414636950581417284222145748448901736966975769836140436321401495657739048406747439085446074424324096690285560939991881996656577823373118386729358052571706898318564677299890881727531537407677641552422369115233230692704932944712456070946967557546052602604437385122540010063949979962259602163819712451670716641458850670463227588994518996016042784106007733681576205543921578073728672307467555235764758323486873782089649526293059125657470935223577483957743104400689857327524694144355101689096743334456723304699949610800010729237792798717428804485514719104694028580922643511703476421616540605991012360021767668899565399147948206579758264652619761110860547090690726696043174974451479050599858210111308210553954959708982732821054503397416919464002956697005549652815139178661231962184910483852599772985135854797040680358005119439277814002499296513503421567970062479212956009591711904059357722009071007674823980025030698914947148168867353128966839203755003344413144257588387498106377254183036868081645244095060644749717249139265302823664525463356649327172179934993087874165982052569929537492171025745736864812280016741257945470107272308038218756972668812663899848276777681115183224781984803198122092047094615083079332552004051315100542967329311450522546323469639206193474563139842250755091109255412337165173222639346753207392171820156192278732397756556906249362111530139782290340179459322006448671390266184478831908046344781926343298121324298504775011321822612664047147681020904381444899261532975233352151266571545623407706710232945320384462513170892630150080402688003564097574999800432927984877566687569796157718809526999094282853807658371146066206735297701737134739807014566255709196794878072281074028668365353050371999819984778216300702042802086377937934662229081805444969998553486746867366378693579921722714584422110399584471660165826388238308127161604338061316746412978957400593273159478253056959793701660584902042652700230090262319847998001780165123224393801305895427211657538477768833280805203541721991130690105091433971161400506513294687941290534052752705537841567213303392018714936814182628971942465622782789827163962862128748097758340973471027905140175236569519353980287921868565872088857339142800004197253595080582988946552358905578295117319867583254008960135385468126676310435598665365658618619295116950738916946740921338731322501223993590714691306394279581399481266019682750965047846898672618259055470821947060935781090232167107816715541919778070838262804734124194196458906337660506307119114781813427676701403481605079375286466233332276783814645178749350931629724429812108314633744591215879443270562669392936710375719373850633835220635854970290877573693937641819368950064895491509869123049926394277226796479549066378256326489788381437560766348294754468363381231794131120337983119925159124552694189663516960874350971636658565727141426391412477766726886478150515998294568446012958891871952472920415662651255210807738730834603864300399195155122928429713905883197209304761594785753966827697951298688960864330192125419943784419573609253305976685718106037943318337254673713511185433559959995894952935415284906603272606234420804966328779467998197354155049692885472607677669945049424708571760699687892955191923471070523357304520731192038372797812535303091940768136387848236254501361759731243921977245994214052220674598768926961636778852604905012013810241711932805530691272457112153300851991430986294813899917678582155613318699215969691288053434612189226279356524334304896284389576565755677491753462927591481587302052690776956055931339628953629022859943181077901229005151664491534816129320945569715514284472764273965521713215504600299025688004342473004263979577769128773978217933086176460578389386491225140747299840140220274829139220975651038923125196062485141739542122186552805005770661192236544791692627763842958758529127219627554531204029347078110924088096203931896835267711253105873540443169501923329262535706645201722892112248363917784048855591605441649185175388956577543105706985821053456003472777376996216938795667481165531252223220934345819858608336265390512682634041050119935663746808734457853130393082578208328527951932044482202976400090010396678865497398202896681914439304348533207964365839963555379685188005686349118947037550645245753979667842840882485386767200560998112399685973230174318317262490072971223653798369867794495641463743224641449908724088494383156928491550451238176183261336829732214556713469207921850860694124376943066049708844030845384790607628124251044580533649070733029555384451108942598304894484129865288855891233550497150728061877142745445350619187177508344787508807043499899837503381805893835642623443404913746297772586432416957522162159534372498455381057791311011964302851971689979346021704849062476105658528553331219496881464195762968951977292517840293872695246792106111206252342513189367301892882114716927378199112989335196382821014297705313812097973913812876015291543571809324105838499045082327324917915433733757918072808043124205172801414554237193822518221492864037431126296361689352252380994181996506270126927690435062343616476279733459226439904998808199984567535216380226793916287640859718537873440211950861843399337469377744657778021844108560554976573068080215425784583315320200706858065931504072512886155119717461641320218927895335272326310392724747878590337621182367741385150697779609622483923881098321656356976731421417753926397618534715669795880110256695397050884224977288904695280259297396802207010175453442380110743709009423190378323173930128418220251440809053741980650689182266736184744109122661203362561092558860858423701376819937063047628482387117293088430292048117558658444333254881065407952308240699538491585384799931408285270507139944967339513521882907990287074964702323073904628491630141447485670347089898171595682162680923119394802162164226455569284869706545939551839861774573860891375159459057427597050503379216791747084666711534572531545084142634385702924937701848909854343857893159726964108256000591384219969482384992981556469091715034003725015180377030388833396688810495691301615281572980904906153558569765557075140172548110318204503902252782868207225088391182898703592411433462360343879006848403834558572239154041660026621661747352803426384709625260665114040361993041364072366390857665299657169091416316178257098380829329024332688151324842984167492589160038882553170967213181213791681430756684993857637014670996621452515362785218719662411449695507989014336655661869751334922769162673976844229284214523253653498105799819565922668174045310175923089602295662580010937978445327129262686236067502167077250104693550619421803628108360392797375232299606904171088472226246597507247808943975572804958453831531080128927185153122123309304074523513341473597217939777485801846127371036564619572724689693573631681700392590680014018729061205465180235319022750552953501604003214822481282249270309224579751038983528981064233679920212164718233760085128324919485892169311478008404573338464455567683497754363535838539676093641073994942604760518400755937216467524680752656510595017722157669795140595883695969255136949767877910937438952833242865853418348588181163048460872369370689976490286370051899972594153092785410411451685690774092555391191818015715193509237625072914047698221503214129832073543050343735757845139627531932405577733799596502947223763481752667479920961556705520850336757622935862660024257387786293336797817953049383964503740797956396566020820052770692713497777264204552120354432552453413607753338247041845475905811878221874142142698472059596043852836523141388280344432048196572384337042843043791298727845900825133998403151054576400149941592116551144165984785237387708480409962553916114825756632245368331121793050622034861732895566541095327953637379584885789587501465675252634871454916294934020811859755934200179437236594071270698037327240167580980370604416537962470579630342453910912445483929539283446308364100482606132694023664755380105006895461031162692470674092099649999656628762763719756081006832780079440453760995153048587761518772381771756651352588294624663773053384547961215115138021735298787022030618480257319724007383748161848606925781285055077682621700375395772972673408337076939940169440364063880884598474047799690746642409392348179853504023980547995807643429852511697281218326096573470313725424288054541903311645138748219755995924731255223416594277168367887284484186562488884583107522072964394222087187050667988306232092650793299399782054992799327923600973877401722234552197690840247677530538992603068271043381465730499721285197577737127601479850403223478507598347124800570688126759070120610390457108342048413198131052559185748919303350483678075221713704952794094001671463145373623995557696567405328443378814792354580781028477912836543594731828511738796553131068094795094912505726012956099558750281715888013559290305401092009478042417505172164367233458652712082435520990484061611918597926304322619155847922011241913499021048552867243824455074886220158607032424324453477568676599941294732799622993170275317748597419800612057808365221634409842641909047443278705318559992810087271634008217555482923474337975763191013002092420325784903665652414378712007730188779601424853208692907032756853487023023805688135952350431806087622638109446394079695588966263742534441363436812181385066369175158325028955546057540311074588291320613419229108465508713788833443590305817875578395064746186679189411151783626802655052354773876614363047505868658220970928404674308669791207089133748427713625639854817844658834232114092924717573412554954970706039548008938447806582901037784270471787435744107225405124599612791723796907467898335707521983834694547752965860438225456471740978736725692017103601801354314588193521796498149883134570410687126789011577704041713788811819656055739839499526024765213590283095382334879342134700986717992260729429933369631953326357350238794343178138878332470305243748438762389257113037990170133128656148178918399000462938908182005081315013471697291324280085810082430384494752782835255907949981126661373169828274621144713650711326380281389802248474901771890370580785038316604007847465419579471404341604626405490421999238639932036639079045603146321235982195390677002069513850189474032685678155707502809017843197666057036274683150497655664008091048677593556860726342819755657837603141661785146011587748486852221665446381342454543591831469278658208963750290043160172344409835675097854061903946360317538058377953695025895576317163668813276833159657671944371996507900411282663532177320172814251774224807484278437126335817137477670277706592537870122841589954465971689321108661942746884581260266112573845633575433211515162411690121961994590256652870091667935833649864332755457860425267001086839609070888753265220910813940157117005750623758270986034602751472430249649161240244863160384469426915543177082454884563260197502889181816904007718395189341222691913702937545572461356131606912300214837836320719596365655779396440488125612527967288344905301136204901516111905471203507744936432624763528390556489081137768509288505015597669699532284589171303882350834428047213092636787281162844822442386545141979504021820521385769625238212792385962142901183609876574598128746780517742760414703840523243351842903314521494233011796838443609259688068042185060143659307770867785335198609034666672598212490624402628862672198390658108717267671747877470210033988561264312592576661363655202842295458306228394522835675179615605594257485420659662769225881356462260753977564409566387907002854354204713718517039991372594058281618174456805141927426014830669397571903377794049019878931050816810141705685849557440391751845987244529202687515910516360402368769805719988629963056692732127049433424498793153126422416429810576560806650233458634554650670803713980631926444459589426049629737807981790089347434050105824782751253151340293017561700586810922494756607772254921697284829900187439553895383663712111447923592129811261646276021418236312228709758181300568812051198950454017681266151274405566719826129153486630453151833906202759751470505478177282021687045430075428673889229374754584404860138422496074777799152301436726353414578032229287624077757209727562528515704876149686899535157431903825554843940159087741922668130654567430419922533415310357361538513807749170943930061909933409786629797413128438172649446821449321868982644882729452792196176450908145961173924633024166564902541973786848252532760833817860595948669252885020235480073185125748386871753610344247599553004990265452381392482445990505458858096404626029072177742542262393503573976851844069042685007004316337579475122269227128860775750782630416941178046912041432144377485052308447179284416484636906313667500513752019988177390616425622728700897025057743180176593238902602799043018191337923853569403774954444924117921324093853135451092791201078947201619116806621930227856497730231791934528137085252448407105439695544783901555429502379316067932247634174210144099165421789428717936320987331730083640972381211504618646905117095392066472826828543810341359674377603895083787347473991696770729560420581576877080517586967065953988254517512739099645063224967570547047601492585491622827828479621874872789776575455124636081488511784106944618792587313706417947394994251263018562761238719265836660399127034337913309832186644127375162848932741061356255810654975398461470686176455677653992925638340520988476838856003604203632537590958761533541041947809356966107228405733048197444375066865621401496255893981463021117529118098282648040924352507902116236293424325057784524149118604645853811113590661077554033992621942264292619672396722215647666504833748576809873951182345020682312568400073979151278950320115931840634847918179421613167219034927406463025304837983905316282384192370608179011263850463150071349834641083373334702325110850866343498445270089291984356602649774920722287280969432779333470395525989144214083499664962285900084603253401882299220177958437987646014286312197136776531089192056486319057672909895232846990182671420781546348718223051679448581116334314359513827251403135277913832427501609665735690979008040340060016937310158445353445347441806702209577851297874398966801991507521223930405283979008849113143280737571851264201769793883022087732894029165725236579852329570703402877081667237345737549656323662502695851144770004374528843528185213829904723289165949247097233275513283498597361460970284447533446724009275919776282178587220713824392297991168496988748953599123735704578057252795423259191631314220820700571914644099893026245895271376684341136643551630963471664066834859187608406748280855440699484481718872395589905756916598547016078610226590154680103281806669495459489507134415135051946357634578297161816525831068206532707914779427003460894506473966975755304414999884214986488163042283696372751646109165442884746132572768129844852904677635739421446468759258199910331916921359587967853767978224868607712291536621726565865282701958381039253933736898898934074607100515692162005170107156056568339920059551339485642253703656274255651332745737318547389510592445107149224989917983996976974421517174356862026278823004624038050158200693926517355939087375860991574523610388077562739630865908947024161591046832790256786479216083565264947955064394854010709973794548659278545801237686412948737019585526784081789580027995833336946630246100109954401838089110041952792016827262583674956895375306830581219354586591901871337828560760435907388671984627384585555122405022245369849820587347905665605853486994131461771075131239286986492823936956109011628057148442660006012823002161185484310608036086331113394643736979591842734994045371170654109894289749652325598551143868658971812136342242793800127518928867633279722990717167103289144741761592811714512289080599821851540705023050624472073842211080217616995689747965972400864910382315432063133937794227995908632045215997667386452433772945447094281489928700811229031273360613740572765591576218143433158794375230566512381983539154426997329758342253522571722331084796113478649539142618321033086421905211966971645251401958653030594772065593786753402771388957905215701693337940501103349478057128618798379396238694224814363864320005830307163490235684779760586853798856773285825763480543654616043126310198974286893402459533316626863922429403647739342139313809457413888899828477867419028356561553877431287929724354206022125322680192680648668906093997887890358890274129404322614750232885610859238840201625776584183575973413205446686042494098079099081163945283493219680147687624176210145689536001603720822142212026041626209013968402489163740533091666386444040957661314837669621549954091508538600072360266401945060875399499284445478298287792469375124963731718957413422297290500057597238053418964526148339919080491145724402688514033078074430106700160233333693862260387652136357102973911813917749747490922307030390562022558355558433335750144543496019121500313873725996056909666955488106045288469594733122354985425034594259711844543127200274906353537855234073951724979193501375127682292505991579204469500539535495288989694569947254716408184212547384852366170852487973128142679489255595879432840418715875088253557472883230949691890770336572675514374489449007898474155279982143748853241600665685669223026334435962325831623691096462517754967759651145152163174507773767385267131081184875439624613335462755661661769034521519100847255185957970072070442119022509993492777037075265257366356932281403198563884226325573404858313865365283776793332206486937011445921379918602179417288063778117770396390558648228458013061260366713385394450693128516147924203261122349215907402618904820150140178429225309524420576817053348504743367113269812335170515754426455062208476483825459109554091228479409041939287907273207671473832981816080172609872191739560614275875292254838756400084674540043485951277161188835725976039207204726701110402741694044290545365245101768834378104047994729695884107578111778384216812007471207745886345132369159895465475898351825802540105497490689141717215036615983063573558865191620904970130081256200132392559843928800441045431552598162694727605216245988615750275889638429783948075236064487407639722352449061391140356514523342416870397305668700894822720038310981500586697568381632445083683016108071318417454721516690407568533377474791341375728791505750626794214840879321338240503077545599403532689660489968987106746890119435933489734520074957172450260572875426255622578394899291914287566795768070772546185576591723747074814372258438735156982266898378828005583765610975315878761129844684075788296361676228975035627904616504299516375841299065922369476506722645018415798707617146448487134648146732722240852408344893906268726831013439784133036810913734277761071501941913622564357146786733441142620186978867700143130181606262046008181728911687501610198220512443759071688521410351651231501974439701723920372703591218562764696509196233854859942802499005065998347666008825279989848037739905283681116840648343682946582561779571511310998293485714728893719023553180042217451306297695541137109176524485602939220870582748898076712903906263620755267324804600681047080549210162252682083477464054282902708935813852007145997116257283207010157531050545305830904568256044458963032143737433150108902321231124568797566466581527852545119106823225230360509357568626926631939242685177753510545708191227146428732978098554186608641507544670151224115385836627965763549957237364644734769130730611044274698015474935622240442833716844009891224313111821244430843236242059753452052023649194209620965270154994018186202216046276219926582337759624436724957817831556497898479674754600376805414465835300621021629319453207748297359992115753440291272010606671650187220999404909198371853056617235014056888110755475035075104236416875928424565909489585610262967082805584926150327057951027620720728450162875424147971882271851207373893869573688248021851615001721215976836187027517759127318848844139097296713448267668848584374029485691909666201623454495616656931923861327027341100827720701885264816629943089634490774079726122640147962040136108066674151338868073810374300316361891518518148412138101633108923353802352672209815814346077100837835328114953036892025749756407341410312365623239437720017832619061969274215057566080012277584449709094013944246499816649777581137563543714991891938468309995072060959240718627525006755170633038668617318232767388735856590649543927076456685523658869836126799388547433439846505014880395328599572725290546434069972597427006151425878245871394563093079312748421996561442052812243829453982290576303234551175914867878564640266622405471493908925632501308226980006388480317335063711236717912454336291578632411820014888759199254800073789857146038825999598179405492481053084464302260291383209797250147550794894106053809398666198487775481414275885921364085986111561485707663227435553414626278820621793589017916598587686477678839963796125976373582426985723058477421523380342345542481531359896258842515359128441770275964123211277221630899802270496490340834118958182238262888796693265261408238176572617233085976044574902516156539632684177594522888422612032269622599507635013134998552752058547054888050536828193760993433633572876960057743627401816010885034299033062218769091629933401685075300898599416601419342398898869844167541607739587204343566821904933599794177296448688059449946267174003610873169303826891339515767232378531726823973513315931743011529479272083983092527867504875438030449895535706153791755830553218099922968384427084509377576527437776290040467784121149975957729389540578040022937049636465303622872871912923687311802041489596829121189837341879293350196828990162142977442112011116425047065042870298612081065700403633817632036744836698951084830531235062721746498707465313726328702552088844530920204944711993297743041758273018744595385186364956986558379991623650562714348925605141452201726772239443711401628829174825236890293842888532012190002551820484729437400618574484211133734818427665961780675491941234833416457200894063636322004253308341006867537759107118718943523230049190641482189385370446709013600953360285309658335896288078333416117672661079290307875363071721903871304730846701873784046610224723313428146745209632930578787272652817267592470816738807637189205432966522600144483378812813501519867775452351187966085213612114628080646216781259922684805304318773346008821339009209560590132804065441778206152189220651053241600398911203817855822762939852156652437263360369589580215623461352315792722579348261700061770987209672797881581764328743121905754328313884137239768753391808581799265770979133633375945018163861348287325324321860641403219269730086508039634473891743177802318830688127894271797326366263390087005567501641258072567554692048549612424266681212000274849135924675524588477672713284986890108967932522991717581226176600103456840226375994081808001609741990685285536282631441280622315124298173396518168634425709934551646285454622188621697507911931573417686145591111655996354474368836939292622585513226134179180498316787036256323390911728746206604699034570648076799835481569357789730976288597606789104812287657928012634099857410596248121108004015750998532834336968041019065875990410120512185556000439555756716489324082366059274969384077404558270577619181910178762975931994154937646976275631023066445243890436262626763751524084736727800116936859720179852776837583717222524116643271137114722662691504373227111741106470805518720240804610632267746738092914163265419013601908350085281976612413071721809195029314936661305670992480570289944619653945117074931141874723520243533711771326768809112874028698778651700862771573799401109319982698608066395347720181083964651253156808668851360328700957031432180076442353353007494416872133020546693324183343528073264058266399652913079370627429676330401617026739633289712132699213478978494428590422487895652962036481540193810482903376787951297394097199184785787191344142366745220502754401672373313093723090677126285884061534937411883507754034519232467555826844773995723381821048475485521152696241931402094580241586996057631569310200933735298121076876889249171603080988413287565247130451231584173858211144878618260045721320055716066602726779454920010853873628882833103486108804709952195136691281940004692618596465388390702031950375665135313041282533489164120090554441432224297725188514408085242549433008426966195605756735506252370148419211582456723796891383780226617389597377540915451317885366382778794922304190076505829971053685794897898235152013882776937873306490199597597607690991097766566440462982538510414828486695098871553014371160304448922319457681868533272584427641869625292223787994089297346447408220526360474809192087837719958906870043414136610613662180857617275232643765686587861906577574690937573178912176895120418584745952948379562681410321521299040967042161094387847108172990680867603666603160574126938302948285408212459660047950890009124489896155574277409834227194095145521369487044306402425817460564297500002644777798804610641415003035791478832129069114277320585745375746431314013255715566407763124255414603637389578263000511038202833811670136589516722477342218069602630025878451309461220147382277873738339607038343527670064763014610287282919686993683244282865036071906936699505120260538253182077701309507812558595990816560343356800777110543471915125081760076402117390903904915301062578184717045872037318434879416155064786337598540172056379873483360094786265508702363329240768852367541289436506476434753952435817748635990540934399291814352008699861909559757746458021421890633522866491736658486105834929039451112486576961348155817718511064874310067542045045037137442662285208771965763702612968059817561641085564074681100043945294894433686347035469885745808839428396208943834249502452817089226381650051543734987384791598547391130406822215090029318064025098008209354455176249466762812177746378938012861487228312696344562384630306759003128274259235557500065279167991798751856275161112473649405510871838461795551955512004675723888873067940867322879712694672341883987822870765627673541371563675247496290185144603332367023209116048156996796780517250627228312920953442463121217814231557641426703129952836635979080808883175554052627771742014757398842703799850218816983658735300404984381922026777101797206733201346926823097177672672375255830588192486243272639933691767301183710783980684305178849156899294652823578927820161314696374895811485748499251535822077896337276358708557152335509684225806968053847971384642071456293373052790067351213669937835748005271227790943062268267276673551443523794500288766059875358102454017406016499654215016716362476996634926102509052064680433199124669089312125946189422328356517551268481382621345271214534723420067302786217082534067925820586845825277951524629018608906356595591207682829202626882318540312705636483082622164690421612607670518067772158156983543830136455310831185050104833028690627731190423533380336862474349064017580239093601511551969699238056022698989795893954327300325831995315134467396709784677289952905699262601961763030488760246602642284727395358204428561268633505564776302798711323667649828929511439105008155070617439162093725407551510079437764617985734067434103817653134172242721713938097772848007583916637960796538572183418857099298383917094483799441086914965255300365542319858613422800354290851326737128510559807306997707971250994492543555281631384877538093820660051364183645577456016743554316280599535603504250341420054691310192856493164189821557552302792362525835406359273117833037811306166657606431659861198842629390525855294888042744632265703270339312054669787408374841293672099013622266780184146099383314773876460376438050705172372367942367580429488475587005715009054650440916034136671257904182962500848835281853829675255510991908147004469336665185114223772476854640609704030459238061010889537959364301213877834037831559526338716224603715168963876399414016828756638745366504725730248351566389730651963644036693348375167730889419354554541880378810486800365631035246255859077416600774633186159681857346479718485652075275383970524936928277604950606120173001637208432972080399958530085675021277882837728058476967449714733067045254330132228348124009273583249485700226812337627396197423472397744964121516382632585450049808756928462534591681140644447548511625311158225549753359436343275266314433622639104587744076989574448624730115396094497127898890858973400980502689746550933136521127440892098937785520361281753660735847526671874171222051100700790628789111376726584193682874676611667030124329350605052072533874105220513928930073070231971761815137559847075273889894813566640662284340902938261250754797816472327145526610841625016954644255867135077445087934639028844655765124483364416692126065095555649161110799926772292273685471171819375488650768662011358872701365339489679926424835828873140355064333194696339880140604484408925497410267883923727636874457798579982290549364746969053990895867098969718725763900574241652417726279370930187245016505656560214612472625619431318320610865375081108829282983868465265028446462659995520121610709241776902925744223733597583609754845192328736311693143975745649912934338959588271569102645315890080964290305861441015970840315199535776856866003491856427575922643270103999099515508132648815819344438870234913672353103022376281321134579978559629157332307422714133303147692906886134518538048332494954194187944537519596283535086553231038149802266877954793239838208484050219710496507951873847287001356406198032986965287345321698746661800772751505239568954461326137651399157531198765950712676716279985282852945461256026642628925090791041923272758295102068549336380166708465440476061074317731933661978968115902153851910595846750817552443462502910645742975596676324901471672079746309271548392248529774688923958283984037237993942819393466611572764651121617630836779333490922860826556316300929510107459374806920151048349701370393956837121941194833441577258842462819423406288211250469930970783203814076533503798801925823519535034709726211442908033588298084140010195258116404799943933504609788135987662624313860393638234282565718537340216018144753480770591537914023549042776331343787518237577176802569698000527685355597078583083949578312798781544311750835737159987067525162470753564477757615507707092797258784055203822699153779500295807912395646411213194028133926125799846562136532061482048677447827986394149796750831452552196151342931704071962585435728651629888442362841061026279734852611851566431776781535636225073078319417219169825703263521236620473093307458770766717579443427029831480372608686839979955566172903701398177460123952554145705742764464063211691836102067111828370146765022052190769838076223581795845998497293741624823432876388799671440129423891864837484528709130687766239376384797376974318768296153538390227511065565546651536417791811911405990268671986018899637204107564303465054590005799564934211767933336702549985179280623660933207830139946407275550975882796471617483893109530943369207502618709730361974421974335838481769138615284818347762797705291367229449910485505598690515974041146036683941098025337623696630062578591926706045772437227024005837571724057136568090307222278599840751175856361515250920475150671752469650585916956621705520330505687449441244779254835726125599598513289891841792316498479736863258223643371673576678753089475755336123065140659939103205656655773344501026803628284329957300501948721464407868286538721446053882062899003257948469708310835665962308831047899175041849511952153418996393350007215025900174032195456464139563299976631306940500455356840368293882866432123773524115217716119890064571798261583288832376275106920796986981827103275673834852096653452788624676868978664883322776751961475104855917993593135331882124855977285340306438280161682419445397974743964157673403097825806787601258885606098797636468233584063425282267715264072270707129756012083283826656938605720462137900706270924726036456093422580501541543163067260726227141200886089663766284229243575131624422322909428630445178827626626974937157642718328585247943708508023934473728917363194161374308038436343698482546506436163201160801029221859828685045981948539793872929295454679625333933959978158017063496855464904701101713224272102054506919323361755939203636895821018694410198697268528252437139122612552367141898391979735620405081611355443476640126548923627499020524279352047390457841881121995414623275849295856461577060414586973509877590697140256062284725268300198639881894341608479674018870886163045468991931902330235351127307194636587064785327432611935189162899672794217034944519389463232698128235325083538350955869336911928952412649954831787819748859131742007909772629990556266422048196327942272471076539024407591142736804819443328853723964420149579327998688080648555551723060235985650019232941686612181010674758911085207873928766807258876259251475270911981631300594870451723405176531367806523703522608341312968929155937512425002319338745933394745039448886867506020771067908894281567406978311854554332448801221539079390459288876859876268513302749458886103196281857433464202877667591483476900619475123037215875418471506870584574984096073913425561644924068136771335769189136611614848827346549680960916499076757965418843517758453965508445339908052411074914921310956138631820612201444921000151456946850941437944153608462346191304231634089950217537350585055945984182438495709801255330359542390864296088034690020590349270439665893333384653949374414111281301944935611838679247896958439704775014238647953138621861178350270027271108588409109510791821500124688277375189113153854810278739579073638282435587791983511599937820521812969644827519860351623808361509789479401257733301568589024277572013263771564354527629243406606832271913884957221142415933788181694875264225892216652886770034559488531227284329471670808718811480306906000474343382769543564587326894542342075205581731763414112272650792335594040994298352533899744078863557754571511834724430461015278193694566712699301978576625832558735322698951115152028378571667443874781203233905466363080090528617181383380615631841625162891091295443050056329525097714338609483001691104925633777356128725171393872212025682501254017484779358024992338864399853579980093930838840354277715399865689665314118271477227159170905293689671875597781530967218705878036797700959697618623756937782275052464343651427717149830236875417294556671878532074429877354609778191449304171427290620241947026006151846870636286993287386545013663688710244284163272639415430812417367827132908689929733881526419296769528806298301238692709287318641655187468948507740433129650802639092317868248292155009840947061789012448856674601050695475487384015870669530798767895945540309118096179859710285381615719576617490311552015945944385774145068045133039513043487183731981266577602637352460512799521873299537805550500883177670722604682798769035193600609410377957659928596258329656572917594003018924970420142707944750388925507090873885939418202630297768700414723658152102837454031843264033411053532401040321337216217821377542248491795018005275271704366843332042742845980401894235391808610565319938257804645366418549156080867920439390129698003001857015131860639334124195648289284386641232444701444065831762361663290866012818767490401567966366842626373056933202659741683374439504831873515013887509818314708380104591164067076199026040724432452562307064296687944910345362391238701416014610364460753514763091446530056369679215227538571509325555107571339873222572705320895745127589453406681798865901574056688107999599729071980425761389310103905727095711362359175328839625072348773018993785265730795475926356321267555664313063072588968233218385898156185025535296170989018690901868011326970979307345348491713168554078702783758668377152452395650045537995702477444452835059126037600361385581958203230734401937328308471194543404802929721779105077904679070228000550102066275670450507046100618547824808173167891985556910495985582268772911717915861916968225060164652975472881640581210193152621957445997042550782435489239780341342490325790640651605819999296662284674184169456659470762343092883965614556220749935232345398460491244252328647695458597351179697954381241115044975014913254971109887565097646198334838366352904816584626276953508220071937199580584818253269932594450159943519620456998096696029586196735635162894179523824529213627481409088177202336381316208309950331108315401435932687482655395541576796170647087524703886681526435074680878259417433051706004813742955092060531270584999758156438284197086383737763268036131637259623077124103539247635238540038945388439343234497642278555375171115093822914664778268015460647770653209078792836508559343971737014542900428540653561967881735199778261881348373472921902156839117609111014974421459799088676167984345360079884280002695954079712108051452840121588543722091150987177712182504582043466763490138523932750013993360934281000993816806508212431746164856687987523368024026461926977016327053803327469264316388714403773134680737491656084609561665235698225833598590111022187254767857157205968813378360280934472501630264361755635894203773885159594257516714181101874196374136739040605074432459830140198345290450976489639099513958210148562971129207987417154840415356059138204256350711232075639586179388459116184109751191122953931114834446469190197703109099251148690518952598597574169263045856191556144311663240176198211293377011566211129676605765600606438620776905549568250223738222964222875305937824656621778412721875533373425788769105611899510698770308956543034071914352349679743216215211634073383958338006492536433893485211978028685748901619154891200294748637136553153967366103098982475924199546974586752647420851981028391192757893884935010877017804340767764583869236064129336752591190439004867697106718307492217252259297433499310315544522521046135629652106958006648821646157468330989435297866480310396891960804333356223976261950141631930436057198202355883070301046560429166285303207754631019112928399889688721415545373499875164102424819619103485444232958052678963579015310846834730797902702632621072274670446954607790739771179697524687112329196553821578789171950535970234555787749057339419116664517735399105362006825065712996023012129698772229881755308199350955940749707419237234561429478468284221359783149000757553257220603663850765537804133598746768129003202069595292512733005552748386777854219978689659429053036075467854174628154452693330042191416413819166778731005394486180775002772807565041667469928263590552851900826002929524966138249077095871390803901607448884035991148905497917923548351235686748287192288816591534109029492765743747374507235192389474577511455501622339592861306712949797470145075357733251616012938332420173417294645163633425760280775265296984991352053363760757063887510727980428136368139098241370609864436378594546833859715769137833005982879309414465324617204355192895167015516797428401731529461451721205213284122418127407615842157860169645315830814937687046450149794390423793075529140226137697686729589702161890274733785378472119194874039571320272408320990222760448822436753309827962663410355650992217661002299640007095610685031520517821919717234148518188268426877314455039419695952632389300480568937090041630211649140204048437305649795524589086332162796361283553613011034859929570709145719608242993558767665804756034100279524930650167456822047937093450157508443546184209859321200441174574283460625322980867542896127030011390425245493748992350885629583265163711506964407134393849436669267047559253710659420390123646622996143538913798756524567029862206191892665981842275913470336065707764094053420116292352528225060570677411556218104695819747538667876087056773935451979984186465182150062254117720156387451853196750026099541152847887592438911650192196417453010998693919892091713167087877506517735366193410853465209607773424695688705956873920049261026909146443779217590023708020280349420382842599637986077760351868165961615868479179769734479560019256509276805623565441696704250742516037856670183214208330361962941135315802024440914219827323464608568540615867737303942088958391444602595099242801311637699117842310409319510358630468980953476291995469057694954892180696494015569038917047584209078550677861455090891673629190354399224131719141788609930418075801784767576127883630766883021156278018018653823773167666932100223216301063554392419045240689490147255129813116402888983345392807081988155002562271201622665645533651894763527673295183422411957737307058615464614255946932306363401336426380686483122339514050187255050609367644840721771349119679619871225377957330708260024163524367956577757139557952195152437413565192613785558399270180645714569493468855578596488923411024475561049572338792510183163928854993230998506004113288969378171799272816009038002633341728038702540119863430755939769578341633732538683524971065724166786892783137577739790414582300060232968019582362058245489881366236926096693507355475040926175320561370178366200515089946746642020287963506618133445482739419726730111228488801978743635044324280696991348613197636525037184381437693800487891308860456951123984797890711749249356165791897657787793985599029783317584166266646694891772597754846796110593747490702461259527302812209855269988666387618130165897485112908507249700275976977194074963140028868082707533255084360308865952997977079274247491591104962106326197643839288830116755132825597851015526342450232745326980398518697815161239292990612443599157009297623733480172547049392087846765346516153625262085094312787882640427979891541639547407934069020473314145704479018764848511453674716274553257848747015708365829269553201740960669961447416709910642686807768170703604742546723215656427856644996042827902039699971282987854812342091294691747758554486152837051592881072932821541598268372631036180255763703117063190720500098791483233496580313401493551801153536347499046993782169360196253001584587261358662605922787425875476862104864148558750951318437338790249701064846315516586534070446789441988290306730377923596623731439460252913825509657934335819871615992017545764385029659426724041870465681508997551402762550637159393771678405889351854143081500681992395226958793939402826722043717357336294468234167109461006927997678244021023281000132411077785728425466318821982609955393956974529213265538372158802363064210190347206231795481209154030122421201344442862658049166561344426899849382809385270289886073418799790073233940754694933987561055763552855200366436148794554878611395778335555063352411524869913190839207585173433553266084399151736283066127360518919968272420317188539606368829304223301782490515715544163058687651959032212928319866650808959488855512382456256800264314327593960029075767166179041211096359109161849814966469099598011290228500341916259589396900856432743506656734022139326492689875389597071338700185588932907812381421270166982482581105555569952442127360054373096496819931575880282045893305268704567090033339710655763991266371584164409090831240340539828166013038180992387758193853690715875646876432009260760397817009162899183460054193901882902215565975566795389693289596590222051460624107700601734385949850018086686027037074543409172634932420410808529907163459545077416569511237255879735435121981886661689164147690291417313183892534954333396915912916460400507223545261073600851421882312883157231112753571772936260588587900811923514357052076821352880683806932853944584899153484194122809461690780131567340433553749209958041553432231201113512436624446563596481934023142628522743401919278738729443676512692940492924831381325964816498405074294806383247956091396374628580697140510321179982647836928433458190744007853294715405363081861634529670804727855079571301690799384154868627675145165567066173416872091923249609353253237034401952318383615559932219275431647588773540724484569624974218848642737947321530651770758160924749229830759939054396516687282831568694880980490299012465333238395516611190365933917885969842555927232929385253495981032443593134668701526973316139459997128235583405461453138784871628465671487832223418043552487723851000293603304927902343600067849232504760173224956903015089776285770410828794155573355579588434163875977692865379282240046531994917703536527385927085968920183986541675504360549008542128560728490335733730557845691632142886215878971180614245667524128949685567637951378921361122653142790823690233735979629955170861525399643934725252157444904403571244320112494087976530225638757393041270955074512687138922796775305544983137736083309598348440885348210555252038697226155355477207909119575000287663754072960792876508284134170693905000091031983010031184868251925968371120546023928303775761572717982019671861762745585217299070393848613254578366607483963944059157666054098164500787484717803827258808784272417277161707337653966312864644843091731532067283089798667495882825484178082128058596572149946915081373436193720211299023916885937576255231218883517432190010326161735969332709635368507431200759783612977207479225031604591985434217307791911554299216831348623394834762448345042029591491152602444656990886699875782255477526609914163709621174439125049718390656557757282825014426666485256336833567925033226407901087641286476688473750381734813726831363202952502623174859573838392480939797645200127610037904225001916779786167546899609907519309362818344923430871536826250477278530308395596317804617742166151929898964126249372222311354519827723661012361096995285385847144441070450486543211974861900320635571517891409268220445879021379184430858814607244997105814890727766417471547063382477900132563293323472863905032396857568806411874594827861195145009367535806407996737032695039575823762118037423069584435346949826537374490276915604922526524468931422694209166694197134366816123266064607352507419471139197460546027053141573441288458574052293598316764363934789389790454261117522245519235154576664615602328739586940273941827576252297235546519130090574976160167684010368344023005903540036130039055883216651678759949303496735008476760974046264074978544344584986581768192108075026124524152972261389317495554914753396551381645728744999316432466541307090034383613812479005032715912684249200708178530848985193247550784840072463369352261955252502870048954192286979825040148564250265532151857384953706307337147832933390485130637211037711250932105383975188956735023086780177105489437305397249001040596520546052073249030774260732132855400465914042534056074925814403939301258264758895360134169866966780689667833659023887999735407305614149097883477456426092478458912158155328415422399221953950920646658806644821395142154235230269618444593847428795605791806489346424809881375966516938388438923151308791231238718933786355941505808647367369530359668263726711982104590259576827789785293457877136558890943777243903894575847666004355787940216752611238782056005495942988091567015454386945962577643349450939596382144292168268018514974778157999995068952346716703463825019032164942037822179706184573489520590311655497618088519565715014875381245468166841154284743904071909721588653303562225400675843366662075872596961679238557019232025719455690702828991467784252468909249682992373793544995806868636656123862522038357921338003276243468775231074734875766878017268084318489494013619700234470875595888255286162863131090833654714033558973069000578081715051151821908488235458620602334713753262523625547544461298338881687198935294800024386056283596562888360163076963540842381396808620040176432285304521254613881131565101871615528771924002905116922747608332916375524058612124932543953749878008670427880957584498042784292446000970195709493065945058018527777156236881601322871535182289135823287548888803054180886735095917344839491015660346032433842987918827270550514703824786272375446609464590181211504172550956546314960204998068084765750108555710039059437699460953448843132027018773658308877329075734071258334575839329090591238690089332802186374108681313498725434703967830777090232801430857687658056235995274622060326873388561971196166586120314645395769347970623172337523369627035877783306808140752869690365678174546348310424442865289909633370609778305782831418732503768692976693952371483948877203693453184676626639981583954530399483568855309098826003749528348289839031815485780811821048506512113781708494792958705458321020645902577948078551090793489166001369817164297623482326299539205359728375135641102622108613622955321846883420311838849011128502377861025044793076705856310054639205324124185781686545545752979096431231065584496059792325029918697836613674615227934851436605492409511113154051174753834315828349419903735991777282049397045953756558530931500235845127779903950013328327790313008880435155538078566436168929547274437086164095652321937759361008645844620328979122566789092020620263809087343598089648854766095788543875063375638474680374399140096112065823223367064437219725246081467667880936068812597273622813027919438131596623597315001216649449377130271362072380270466801491480938260213044993754687228014734515894759214125986059669399238097047213596287124834412285026391276578481072576134009036167862026205331089824438396116437244157668459296845217188794790587213607369539077925844303174762690580557950727421331352006306152787276275353603046966315279170211838364439479726332456170095974220543428105216357272101012405575080318799005761636102547516229694352564894909608023260913111603835337879198690730622865069252324976052169827073149498985621895719589842299402188280794584149792585115034219353302235434611074033689624408543910491562778045619465344929489286490989965808505605537256295830767384232044834793598527623946310811838591888189558400579091328201517488916318090901662261361343282398809011416709271776801208432300432504194513056430194226549173768465742548543765743264043610813291025643366225994450529001884846589001296377431621048603376364022779376503665761871495220764421692876618169192558103127630432776318135325424901670273788729802795248084267105675858519917809008973254114632031730377435778791642458686561331067057333616670656914573958309152317063233748489526897954339541511673394574996711253379941365266533114312634827059877291946667745926957453315453309726178641423751975706054029762925603325621181679642944019316330761726659535581118278210906586331580744253600239826493998585929570145137637651426792597441722746557726284864148090796310577002112979282381980741779236618959349092721268104876436156331760902107384665146032117759016789275632337788393060385198414689005097902826111657532983754323102682706250558910925913315464558735870067873063535889146583770823038268090589473806949450103550574462257110942711376792106771069462642177804846854887262110292694029467141118338224027862275279798396805750609041138470747063145771726433870464101319047485806724510705860169042240511232786221859695277797386288235101010985400544096124693116742491781868405889720257780720600335150889780130521413963226774953920472051657680574418076870686908254280590683923846891965309716738914922473946995360543267260467729990118462500349699286091329903015883283835348866577349398136072769976145420434820514030604283539284273475229314061657323183305435731515021739514939039410236150252402511248167849252970872753853356017214278598090601395217912327752617472673220345549696421661071926274791121423975686699722816952371846130324909287263237741039066044180767444920261215728602096012765633531453257710680769181326709278606970074192563666635248508226147115315414685154197555678201046176106318324806300091015617260648719610041640473029198451058704923127839651328168597833863066679298023798155615877851031484651468224896726044508497560403085907234026717154871581954998814261775915663768081518846300453036185590464284896791332346433563917975623457005609445852198515901250070490362000469280360145781524773995123264776791288237595246671893345447162638247131405586513803459063318393779677104876332159616151690033707014026165129708491329823116957675494356696687047813163098140584041978901013129736293543653446497720802335875504917990517771697488998063251427119172090349242883505399770925883588070657071626394408936886493698346171758108314717820149623395946831753710733492151469168475189030219984632461734112827181125896103168784487304616889162793099624167539798436042863303861985129644839900809468484515039286115875397690364045079691633308754423126553732508301349036913768480310447617885481581232684099967920418237360903671546156233903055974141770990781466854262431670809022487790724181757407957315020273415560009849479848845923081657870101367911885333234840455596586653682996915993017599292810829964567731408897357626434970006084218177886746678682053313989465367118786186058603637608107555680345392788066507496190312793847251354933826965774192348104171976401991830618562472317845790367906479396416135097004881481943599662311498450811972165875192065430412871209580355497241397139188021396220109060708223641406846652656543569598182636120975748296805964859949112363816856565966947616191921503797298311227335263210112683629883332258346187087815768471794734476425412136299185583833322533063660456085437455592621810964599124668082366156871556796376030422505416802085981364371147840358024829130175379493812414740265504543780860522899953988899842835958965341117366265283490308862406784880944259381482345335837426460872801659007291234769762151591980260947623610996607153724517948474570941446608102281149466081248099296072506253049141153969837999114595688366340603785080612308061976654751244420283584790941491273155436253463454799535808426754080440070661092329193532194112284415487282944105882003969615383397604091719119300030603565515773114467797408756029317173158213651264160497747802501833820791535147062816820116275922851238979395238599109918563440278938082983607306500166299261611677969938081614146345086840003623502696953969758414077777439069913862566033586130789792115523338790064974026892118640313523806382271871855229338538549535815967177862485871799159958429746621436556748527256064279797361203698471060364800463660275197220371124382881976490899879562807770209313518982527876693222252402080650513989129708634445788104368530479365600296581968064442585054266524150115791484217031138753759817704366746730162911172469679255736092978445503848281755865567086104739297941430103121249201885789658102736951096799797750138350029424487542291604079980667076681282307546362272655164369802193372823431437898706762371043439715344773925431435249087999244575085643303350305864200892365999869593076884187094753303966596409014921701569813776422302667682351600420349575221349190223674718211467101056512456179310771546560838070495627198189927893962895803398821142767708132519437262440360233414177894523626610920369177219003716125316723288087917948995717911081080115602000428240823624732518558422433838589812009398692340396314975785622464100044235465932244164154076119725635197080541053078360558878268539069876799662886362078659696958463642598990092331671237621206459996919437702470708422189315863673274712133447782789858667172081516875491693393816928390627644499854904724379944901742775616943381457078678856511123716427960985470141430749177728917257764823042257346097162695235566580423991085917497280492109243239940883937721985303459518547670735765129839643408115213870526213571743376682147635627464704748782277601176744210266064526747966259288090166268779654765634969517663050213946875069909506711546013987478665667852921798968335726038841102112883710679242490449795918770425932460005538602229066852091741163145159682926998831219652405358574864807156232164364771056894111380414539965903947207478499830645839040797358063067293059695398996395044199791709045193585000669946601074069360686469497083843430325090222846017563274217951620464051476741560994684785647775417921419249817682868320321607369461277178522035128048297535321120948747833434861990991277535329235351370469917248894516111499083415726308826506461970451080943914649475734919544302977500069965703265584526641979645611420482204541173921780104146675769081631647462878800150763936190524337110772873586356648382929619577593179896901923659682255040261667889704220246887088124047955101700553306948363022394196796042926224009196747865079234300927550211492551703257457880991775004759795854776129939482552517937602512173298698464048524003876776824441015708138071657594398707809244140881875709523284936076860895493648572074411397796651439666777301804325754620426058785220209662152415471014914685253176947958142264164410847270789941138628723650193337971961232956459898333444371179986295894354646502953821442113592785842954058825793569323024708093294619730504504681212081248431830111877123740686494216382717008497263278003821484843916027147559810722817037092406278211298618629712281503870521860867160364460053260822066695309226458976536155010784740482963737409607911816977917428095346194445229954196535276863374737065351734823400746690821902898703698993356128031672023179272868077352020631499072793704418674822566541788414739838483877416282499121599519826836874305020145603955142872806783177415917185670475768448344260564608346855816053288691095167258214644563512745717342596229254422205623367869396550605786110361494857255455249135753705028525002176796025883485365396741117249159227421168024570953023039279669747896468107117572837881534608670710800591761096059295611279828206736195745903749166064163263369949617109585741537307483841650073787617910889778568300511742205643952309958429916046808546466819031965002523755699673528814017670570879045030561777486922258894602785759424307298085609130470703509811692135667095162489311060993768028592822316176874751533318683141265079093088612374896219255236809901766130734937711963914319926754808661711688282853159662507579153806697863323970940745618414456547955033562106106487074923325268836731138538692755479986364826693640531016138554812303326382833500657014206977243043465914098244419614351027321521372507626361451176274369319269761092060089567816129074774714374033482834939933503974233694377831251620260949930120381386982788719586107763975530754088941792885556092106842314142909822469112025959243057339852508936331210208343724392490244030316999488806610144204601236636320159700582679408795630779264861491430835528889162028479300003459914884172781806704383591984925439058073360324322768502144097562168637385515746873600375278455792482247017976363800140874689639019558340751323847004079682444643308710933228255572628465484172625960420077603962012887211660365692601343784124336902577710844178431398761407097952213787935484211114233956971192736329352355960656802713447714181819950963508757618180672024021745177132053913759421639503308143248110983806464920408581661210839940568591525860952658226421024166092431168621735240029522039520747551361620458084235487985412988077520684542054996779149733729002145020118820921379831298052201716871324733295920605756835299363871273411777687766286094571087209226236999938415835276621115734526815581410513696267498918365510354096831559801901848022408933535083540493049894948199680692840006766830801315946751376821127547466721549196820426435572324389430082785195192778581245701753732791230844929095227791180028065214238714218331499008645059873098053759331151405198703620258850195296601607369856004099442250991087000866339716559058974285890893955282808060801076401017346707985504899730912657347037835257903689795949741847564532359840173134886205997899838157751379220870868979576105648371605198071920318457984301484130933058531382236513865482645699367021789360651283066797808895820218680946041509362649841540880642557903351911061379055961424114435210651925495675407287812951410406795728691846449644261996709747092249474996545507697914003262311813073431131041793570916370723082102155898428519497265606387047389456338949651586577535403617084673763603367218300585754374211915841794388480207140262237530321543938211099590717201240600475095630089340586358479807375384872429934520148406425836265215164247702666912366886862577530084562676466042409919365170125328795042357439253265179701937249534081988232531279901732364073360605671987189216826308591280227753928358837637562873834016679965426213890447039941210969394850120990855164694306756187028197398389840856248291505572122939431188563527075370207799073262394479069044161316795315144011034537239845193450959704521652637655712791562571353266618649460711234168185804034340383957366451038219743369500890504537281631433301630558815196578848038973236710351559274092387505524138891070410456590871216414525508731201391610394728249719314432787722431074688078549376673273415191103959421003797879358139704152484226396239635165591377117111569452633287041460354985470860155306841692502919317952849421612172383427792587781999390389118718187668760039990770139357539389804851068236020087618934981639975442847888781423258151370920732398235609393177481731449770738603998159142102863276672327989272490345259677948779487466158671146647362647246898034758598917771587968594204740291321969391529403529418144233167276517910663758087184114691212285115937074479779840729389512838226813203269995359326646667547242059309661774538878237733246930127846543439763076900427333746743793500692752120291443738660243814608403448786176772859413872375585965391189084605959060880524860727895639775412955233298779958342556343059716640715390232403173730716654720252230181888849055803954443859495447436016726512206772603178161012709903036241901199866246618593067815642126848902895144879422237665673063407202635973249973055734963694005207651714914912165080808194681334194643927948179742566765289048826705369932948334351102294843596880429563971936233668622786131410225187795029059115282822970099538101219568270464069386626657006105162001287702777723679138670284594120330744214780755193266907404392022267824584875756118450518192476553724207714307880723490083976364586084555299724921571290404054437290763660794652231651557033920440953928397484713759575740525138470668770159175971725072051350531352719961384528738589494416835815111524913220799819690778614525909678443196144727833679613514636080428382267132852782377820174806502535149703897360947743149466911896696485924650879312991104669363170890644111166030870649819868453166703228747194067366101588501274895346119177002577563785899733467731233826754447916094156286902182913173810698986717682390177236625433035383546630498623202241784608317604791508938234647139762452362666223144920810641345129932689336052939390321275803850834571354290257629423504585888087739490984258851552871024544981706372237227024447304502373715820144130638843297062479596623642313982601572251127623640019941310360924950169923369660139393292914128236801142648873240276605518640019400591380291239873302737285790677441663168492625405113100415413448870608144313102698538348991269097793755110577598235831208523368011977695030705082209330580837267196773514216550557680494890642470831788321418749762089997137747375810064267588036776390161754440533006446168579074451169352049460496672865054401903546987196207277515037630447881954045403100786812755406464577000265243302323194825364308429584818097237657073889114730725434899216480793775753682623367537237664599808830564845362500297111190149627420993382926797155578820318205118818310260509308066852313416744975962431893127106939496048189874201043798186737231470103681405831476035087386713018176209179740835853390222560633111939330743059350700365036402528139196192717433101936077865372185853200913581596255421267626531820344337952964298401429575234390555415871488707868764507419802166438941633437546050778241602916073015520984454981388294559472377146141189588517885339133963738439986294629871292445343564391817859155399181222375657839878797554503435281501772797910463723598802116959283636958776804753166067269347235890947227056386355608892141716557143337121218369186263492057824479023545852291481826497836298723114247904835619288174526035594590532052170431959505183635999206615389484710342804291309941504639805934848441581329594306535070043586225202393464956701499031542839471425399619642981980971665882088349096806385601986342155997356416115753812657981688911274142569503521794015268853488340425303626593420544225835005160331684885244655923579576328493995249376974236868890575502526925653202915296089098514245796595683151912115858140268779852685098982589570657967867248513412769895759860949893289020440314081277906561678486253727486519863683298086706747540980254411911789357092129311713918251189139631605466048053576543829919292777170192292488949662496024696838376787726881676214672852904627128934453586181965626649309107639294146946747881004893363863202587863893062440311324443852001184940849346562614707119834944321335116058339389981845999495874181244039740628623120512813880067943067560954527207646120566675301987039491352102709563009064247494937546935910220946943814617742541797715846047779612769315533013447117974462490338895532632172221767250618354017151113263798996139995531514451809614119255838736639991875026882221821223443917639055951065294134244777922690485217490076310564523815706810778934951943690425466582247901850516118998422889899642616083305073218672006005790968475368567666871519510946790788350116757257432491968074448835943959969788219916496928657603138670163840844684770713265165645899930184236353062344065763068420747789811572888461112200762782220485098698899081701240243545093298380281911421252006937784347644339115611749524181996440404282307977379494362291701208190088651703742842576195579464292591415004441817605418434557172503181001694657851424373297159980506350051684017031516325389979309232901273481423461043595777394143593588753682108284663633082663552720215278378727263403153967446743815088102284214169651281251238556639134629426846198110482864069854508864924698131843393697146841026518006746712385148162158955018831160277513342266063210128426709271406273280848718921558700059137647737890766968255448652833691028861267081204181728712515053065216137842860821642096201414606319080125188103303879587713144249625093980194260714333297050993356409003656756578105947094678252761630183684980594164294578567392314848085384098405541156195064653041300660084177924184326964370850794085803244497987641123505240025338163817665518666215056686306654319818277781007886446943864332503179667489131014876936829240221087857814600404506470645841282346687125955118465299685499932061884225703154535228647387863177077788943214210646356897376861629977696832623668400384606424933413992664088872719724033735497199205394751464257637475921581523683310305374270676112963276558009063050647115291481720637902581326754340905013161002303689366003844541376045237325775558777841300902723427990752055452614721777693375967432293484576324891712642350550297678317374610280535772182869318554658086543546190093209634377151131714440294584542190888586300410551777362185983890953670620091115107989306657235358879731283810092527589961040771022633856622524089947588799000745327937828341980189407665300270301425306328282073700840508072078868781703710384603598057429669865381497714927476811296299739206756482711932525783076361808916484666037798323231652990638555851812414421873310798650633331781639060099575529521295850597368833274638963796564677986408108278081231177132773887978207385006660618459976361993337249967813410944020960895404915232412564922015919410571168985754787562812225493335200093912792845635231288114080370753296850802913717211236519836648095459150374085692998624751310964007739187142378372673928733810273668584453300894096666369638993100483921631258141992311014376090245017128289170064836240833289754077563389899967597390625130634329899437690985824120710647786687683120587449588890832534362768676556229118478503674384134298694046665427430063408947841977152340027888308258706569819908477799221575865250588625336751712018838990731230129950067729880080658531911811883845299386988135309714343019837219271454285381911780900131196887181584281122000174098692863700011271700079608765190356979158568932776817438464731466212722398337317347781622552782546294988434464682909648502120166121069655950104531397273426393223673793997456540818146889379947929136215913370168769500331313321356634570026579224784233771239975200521894411661348270540373669915135174819769261556348605163055572825755754030048985571719976714577634174359260485153587709741974602245752616130851796570295601691034106990828463870077098867217707638550296650027387405219493153220786659734716114160564079166175755908331423366481558956365420615759176627112120025602502828491102949494719052264561864138562949944528306415044300197338986989097574267160930895654094098827030860768859777539223864600201644744649634160780382022440316501908855943818858807798022247807081645037739850945685542976048056429508337516763384874113987913448815641732518226129538186994636060469970213290433767657327614706334992010869490086160462387445916084389535776237014023468742508598992901790875251814498545950096877200717118477445705639076207696923830092281210740827262102520732091209982619596546918476268085419621907381991634404581752945228867183635988745454587977880520261524290428040446319420978012114638173968072767767182042131554350254150450200557984548863037759261140956670687051148833378023258306382993405981361148767505798555747643844623697289287045841216789529131985578518913760189152294377224843509984331236621384003756553665251777411202332495910263943253252543666197839881899039865995495325429300094494609480718162027345230454799979166166728546226863940522424321121113660253375589711468934811016656759138642164238548154209421442649582887237887298455243681085759556598828340246711893859194636972528199009279169129544838554272307191284666037283393490858541012458309118752594521149932162844209451170306174468647219395153172425595166044059238835387250644105367554914563955943047094289076552082837704726733604670657266727361694380898889898208831227126638346515586097673431091618084747873944004394996494436720490345516442014430282917912631708788377767074810392736299906228318380617523373650142778453800898659743285512135427570665625906060832590415500884484138640064270067308697976082280558185512351711807316293811258886182601779265959866981162066726244681463585413069049830962170039350050533602360472236721466469596218334775655339867057777862717305767072984778671746543298113140796050565711460559842193783771518924744163131424236159504758725563438125470514463116167418215680446877013999480173659536827137580555559713352677825427511487923449053856579246438480800394078616833506153509846794002715045273183065436438512923426261013113154493016265221545881719112968746944985934008409554060850742467408892329369689667457228357465960785537810469387730650922747554710536742721494125812170869025580435163340384843783952401150077155575800787085386770480087972416744767515244271460014333178215661604396204184047873306353228061431899011615707311058923834127882263420589955152268685110816642170330635202853396794576036500018849750060425715325643606888070768816996360155754664614786538365547050995880796270179170235181902562703115442887035622738213253823482930990609474322995940210060058613788749333018046414416559341314077829186508307442709965560935209486480226343104501260633664396156039389908210173544529651902693306113560714919989770680064449988720115546281413821114734177487100250974043540342708883012126688832954225239830417149793637901506026371697455211863157945522564784544169694649007530475326120945618466867036750111878463940937590242901223501605705511182335745274067896046228167584761832446748527995945112082467775761518285374915374160493978813394681108364887030802117331309026754175047033681457561856224043668030901742501640960256675092573934088802821712016907700544376919359790501605220721696848787393864436863145686472989456713844890734965994974480897426633712679267996602121154435824690811130698475504038697904344041779835465354005406452837138669880419046841708528049574734857773838400506652536594578892467718464748392142975046336296514282587104939075104186471238477291849113508306243955912751051178451136059067914626368770892395649461654815841389538587933674874587948253500601822663113522695074367107522924497020197318075256755099555078511456412121144754944648125340496484348453803379697314296830687737105830948417753015412984807441408586683653709791787990758365459636318199591511896227077529890246775811099182803751793745603404550434541378044064484883350123026808736080146509560302782828574289426105044682649768439395282897641249897394629170538983210307334389653688916201238316959496090052603996667214572421579467559631208703185088344063945708569100909561929959006647897016099868438615418111381429264433218420251344959565851933465351805407918887667536144281423589323232339563458921107294476369600603453032046553620601422371107093723787058079211127094056693381617546939335169355174274872004279769656190495379918312038728562946035192113258503744047340476674613238627015914734116274538780619229432926307725995539850074116437244838733968382425819715724540991605260915470562988503260792074476095530149169750300522117860468841297074260472633334351641323715545921313895807655461579135228473388882508990066889228913394499901111691348621180840037676468149204091740587792455002940762724903120660420200186598287844198900357927399693999146061086889388305276204667371883849980243554118238573901904759310674895251879163189675341532606322899489248006880957042454248633983197218094925747109388003208114599149139291475999304886278382297786654363703029673589561743510824773039637763096974108278748545813079035241317300684767763758491718300628014944893059525873876661469888034477308311017059577099990886939038171219679860848336087588620713847813941980025883164371214385117498067569243787201243870331498674050091494991734991684678625267168061943447088615589261270755904042740100415169135981951892782862542920573163242132426502323007217295685101235973346899240525094678650368840959375243723949374653075602703347071750190408639142008808608483676082915584705785419627643815020463888288666327348625573908899562284202684361188806214799192923922299463856407358915729672811994438474390217243164536423790012146346520568295323945093774238100599724970670512859918530289454354873827781939489270344272743532606180420044150063548261240910221172148523982750262310021838070706199999297623511981133081727652948625196165894207599076093661814497990597703723658440805162280532742870865737922485554168944101488733030025294740937978551580777179009291780305827563569931283139261598372935630218198915984478379774790041195717936268974026096207315863360474341685836149115720836136300670293611327270885052281908742610595186935103255515720281439276646477704931562805764596939443264314655059729778535686602987283121551175638832124035115366126419747422859034004267025122225014073797222563845894700679805587309104201085473016907272943847857698171125694701677361517286757252494771360588436729284680966151917696412844187256968857647068458277205893144990717371383450192256339141492018784236087851660732421518261325354581623591012964202013117672124510045641135840622836666380752655185773860285227186791635490694197557135047741011745334109763619730306617887012521298085843869293200773972719016122984877856567113853722819648422487841516688261009563686236624351316624031642283037604752446949483378219305554131991117765338440884300631997240553597402413944959179460946988195789205839352871037559681398519508032045861971353354649327615783823560392751945901816442222033759446806943082456765238914607069449689525963401000704704014089115244505979927600217137590767703988834961744453899998228492854039017739441711679620771583955296419475347153354023104940334411310691221987201984455170769591750929158369268605409984338335434698198955163717520249695439309504105619785078021135857698327252848706056007645196972688015471178260903530250049195944023555423562262217978306847157841162038752447433829486238675081482803054638617750079556285482826169336905476234732865027680605539051405488859504465601532531230790818095588242641165038378569810339251477452907670328159169307004834682883891510366895859825855361418672103239325779766516266842339501167540248271395360786309397298457694742843787223690079203567903798584491895619255571127383643349793346597874421496591270226113806210477175636533598471074736970670328507753992573842076260826740695928948581089474476318447712975874464318680063571636182904477170982596398639126206317626699683338631914419549730781738522447466430038091627611739647573837308620816957445424449577489548377392309727976540113999507356791111242027247724767586049959118613486989564087932452426368964462793471332275879260592556802885555462656891904795168567825979782354557242074016159239779352479628439393005042303471248109881331405341988967784666833932123410571629024125855768554296691544636802988415880016353600820086570691837772133709597482571144921862177823116955670619334938728051124928066509576572928604827165557169334750546797938552994557396771845110949828120592168364096363596453945250236909191949337911596197788805592870004769493440776700105136339695382805910483453214041936765393922503176358646006671768169241094512020384669949952272481335179967755225483095995259451550175181000178642377966607950219033026286611048116795790018825236683107686110588600318855068561443193331637853541798754644069368535945684171162699511944951621966201674629960723373612893577416028977467106575655322369712303015561980108206558895821116667081886893597335499665285255017735921104203694688862029220362860089082450420900357810759187775837181129635405655151591187494240883287586091237065257784481008986706393888332446392117644322938907151077328340776848286877306699220468970226919510402908997357442661328473544967961526932559680690559436404972257583442223140171195470000663412136588239287687546127675433910685441869174057412247634828681980131160235989798657137063913011303648241570596239049942394361438376834137906049159016494660166557667979614928274226360326049525841136911815316506828416384453670745684432133486470925542682769854874416589760996799129968787453972485151571812981271735068430542984906403095789145113997248076981573453102146354138285396041537156009509281389861943071369634472564432879150590504293938330860814519312750519430884035990763784245769675429056377734144515400177037524506533648096905372178058478135882892597687950577749804778390582253085252726363333225602840259043542300444902539025117861052401723219673722459755281926395067299981747262810065729662756520545690207942220392436187643236330794840439113811408883278758585540509561988421226198912037543913421531456184252917553661593633105237474071222716754598144497847032680686947472094282419762234106479271897696543005330143563350586647014452028468840548622926940101094142610222311444272056230540849611555705718940303493771842091372991048895086860648069567708796522305351509497978696102029537403724578789242517877748973506121270137586866210831386258657577718105343925165328116796419358938304229011847260698453430794069358690258220487022625092784644736082419091527271749307858616007849552622092027178678483806759349278166889193774624744122889231228670306427369590315872697437923730246152864059195007194643393214888257446399860845097469404133947312606594352751583220435915416377103643728458750644252646266422025527840753552503370813716653967658098377302073319951785244173307352799494422553749595404987989216699750180438017683521810891049737621581138026400266741954785401034836516713865531368090347984376829089684652134106499605946363836917643780378692088584432467069295605423915858568866887254733234726877327904416957324700338235549046455154522433465739596459260624848424967442030756462134712845595143990896932715651998263846106401501060807565231704508348212238859022892518623873009489885132100648290452478607902568221834135961486996091290006667208127000443084494893800803552444412459065028189975137536253773467831651141179015642593417180080010644960432037081043989655683458959134688643459026175851576148450914279952528282605581144842456854008435204948622716916659188792992344660763955769122611045578587908469175914727436679791588540004179593177871537100963318265774456988874051351917732731971272576990158117072251474546857181464240104292493659233654153556598825575736809136356303321040083070564460036953233781037459261595436176670986204111002412014503483403578127657298134490954082832443593744335283205051512447862600572334324712154347390898637917547766236605267880259091951993806232007843783023082987270609470400424136366822546147484230894667800483498112043647443905596299177649628623264235066437561818152355781757333410515675701425816782682453452853278864779153710302998988954025166324889851770774875369073618495336551828510235854298291379571112418201058752409410857637325145494308912255024205420577381766662947163991476848646730106879334500906973848912805923305215054623612638393188733403549359268100400112092809655837461544088578253865975281130153345013887183230342455972414752375416407657183562141616460254506656865484512424014799514856319169005878383782406004918541539617764195188776241996640946702360575619382329995376568335411107760230829120602071780842194406735511826022107495978936616236413675965374081722175000455937650129311610193894099711694428442457901094113199588029392874242506417707336580669716179796802333995898301892045088945685749339387540876569428062158342734570349396502504470360774870485155311315509945495958094830242474307128310889921585387331594895043989540782878413119484979291741709981721118501896765761076420500394402757267187885589245778488680212744470475184810924020718402324489640010597493680481328727811892756766720910357997541426346692521084899974890400096132602150606713016113169175768525656305080053227304211201947768094105999728245933152643442178274536549272646829018757130216866689125909434436640606407952717922337042917249394998179566350691541835444282076612617615329691074380324448250655575647695517047400146459573445980119004785336333650285926599639635561165334123850608818244997841167127001567848080350291177800013788777297786685026389073149860281509905000519668060469713375504368569475976464026998686959251660814787888892276387240955977433666852669642465158003620556908041864284363403493535224439872373210629696816329067681588985698454981808252236848476561023934070745204519083433137231692709077093558286602363311999513026179332249076635656582467241336776867129150358525523140006119331423871002454135289886884134182165146581148210980652020991422394178641028739286428929023486081665078792397075430782852289666626235464692372649654988309232558587107064518009732253811275788109715242850234148643496075609542234814684257795019918933112861933315250023751388764048078117159088290842535692772240759515062356702954627668344228892362123614489536056128631497207610594693209347014822854158157820694331407529257896370922931626030658058614633910684935852019227382379884881423963818928262526490602359927285376473809146765656475293643557100184208649559316621575599379993869351894838727141353269531205731627197918117928245822882044922828299403730202787177884662687003088707650487852445532373384955929156318028511661504548336990696258116867042639645021996502449253542119364125937721743342727985357079061536712373534082471935755282314171197819129402734026774448795468740140928388209543590537947687005289105193907582735011545702241711939668731732206607268279713093632478203389075660821392753396521067349942453806881949133221169334593103384371488050717349159779960232968658390013758000462703369746804231942695104204161560197159315624277311355655252346455014083525037848282984466660654026087592749786083143221573243030838276834777076865668358319653543432707606175578027695181323696777981232532938877794098273245286306470761197309757864821930295257064967124579369501425664311708938862461245335180857108383658386406262330421389958116082529642151160097614999477524223583558661092989898173113668387783965482281313701831100711569898982144660696067911857220717976233655553062370794855955476010938312602735897338060837563077878620362081965819783844090670264887143665352875647953920665115034094380863380439952794866363677947981056395053666126688124752320339363971507533023929466676368545240368345804799418480696189374462216658406718708782466124751894098370807395170917046907003516333984605000631234007629141575523633505219517499355280722520814972906650926488948302683049038615782010236855677775769107863882203951237378560790643415860394692619173931060854548938942722364950137441214207725779282317589545126468945084839198154070626130975857115339436108087250100691151035256222136793443248046408651198926761865953927877965437925446119810333304961409816782786144371751358250893693551260929068130825657057146700572125970550111204770099630072138779194515545717580499049080660541325254623085633603809632578597720343982727087224254751272652894041471655072942348876051348529405012840645889190057984673532897753732868396389161135702494086950712296082688854003687440508708499681766048595579775036730809024871945706039648029239345210602690936124357438401392014001747523192670853257475607164819334228132726767158352939809322426266331523529771026815203234322642399101860192390224857684352862025821750089863615632366366939715551609659627815824508354036159786562433864186255573374511849960309170753311726059213544811107681101507830863824160510601352272363708446140823429017868947516489071513593740676917680465608207390663179055777559811209087113181085235994279729638580538763526641096414352368042931053580922242845807239463361319912232207198805347956750263293330866560302910694906594551747958505768592707293469081197578528285385104008585779133525017997740305350073636259436983875710413896061673966767601940035712971222428571655933070560368248022317442027418893866500635687893935089756908977693484985839676822172018037574503390478099061434559725353389754425470315940154164755483792266782972813718706970853273423608714330450400045599350908644432385706638065080685703178389488811893605135201612950304805801142482040578802736340815736758246315842840555167907584348145842576808527912717890164958872959759938754735358429778414531168522836420406167364424713230449076756435684525922695555078871997322304481726046148785514049638891705807082269773602186166174655456232909659200287150323097371936867890948163562048998607012925627757023952666613586062772043663458148896675534866525682606787054638430366758802952316402609710237544423061110592507131110099643454721736911034283072225428565484533339856879981950222372737882780146213002857499120886158313683811641736094490344253286142020881084416216914878706611482768027235056307675250097551813880675759305489980315157701266294133313031149336708136803508213025802702254274125357036670095427093130148336393541679290808229249007536817299634299426988194337751000691051494914664152557493777437979145010396599699938474937069373996424340786400210995412013609986583378695426908796052031232822538445792576591428932027025948024257802015724576824429763738583125645586419382875026248089298366256983394943045999396960933928473525580538205299369820652789510725766089831469683581538512271612137986348022127362563957766850786873992275151596820614939667385870176616682714348880944564145871863592620632338659949481227679779668026492059159663335960627903118044869816086823475597155117726077080014888247718227611387331368633737171232514006518437804690841687310059403109551521282070682635584340267956340484414443006970574214641060378142574357975979342397544995531760900686001438534363170651681671276290339821027959501544785586148867151329850248846472218611685824549643222185260565405203428653988519398443258749066473089547850506050908780357016803835383424738399488790250670616729344991430779927402230611555914264093921306845996268616094680501299371200481758517473575658178900807710730633855603509687286450315451729583984955707767276618669771362976843018744499225069233024964481324635520496939332368154177573756029740770627943576068941567390686301195152817291316206206316383100661575236466034038390895702834808029442681755440343028399420064940794272527704957912730243230753800467770021584021728539836517733481767432443401903764359851399374275343816269740884774489359828046441712325971417751892082229555244893036921297429867945410783725553916196332840651142815204086665447259381179459010890165493852232314732128836246105084806701017008781506832353475315721464533892264737510251042721905894836437627751315841521285019181831766883474755045569573082557449060993041963623434838700270144219163121047912558503315738507755166854898315473822829065683972996513577674679289779138537734221019132738947942340958223695140291590082179814677325858340569941606967533225119110751593535837816172748171346205585054230285612978494276529081811516125734752929267817384099593128114008144291185569708795386350598232815280823872820680090850061620022356845238025500809308113613295956475045753022457404626377433984842296896966660480188922425796462613212631317600315072730430268870077347245597422644033172933227632819886471555148941414585431532019229567982462154450737448917970869482614858740908328517933164465237969371757247940206776559608263730488028503831762530159266204380307203445228104206871616979769060797491953233230051652293975990794786717820325432845831613388807135195902265642951430949149341671914571362647383199644653501129731337338886252921140496728702300476833096424480532989395695612946027365996250811493298945218371185921361980945344851908612991808974469406351884253124373718553047661138446662330315961908313075875708281292607019430048180696334362059999622149822071549167780078077862949551674563801395714545870193029419219890049010594918468103124893492852017189520444025782678131909310991497288674720739586822547993834384096863649801921133462197963364382653292800723209070237502103628960452977938547681167837577554054539755696718380835822790863353675825366530098698430166680726955337981305947366076799293420706997231532154506178310290567840725465113302877871851772959698961602005827983612943590668179009731972721505444268068007350586136230271629169973876667519629961897870634244865645887496249028123840106721265358930953516944412307122827440466758007327365780126111684212976208069533226514640657752177945764446816044767100500467106996039991564321704596983823066799052627877240571250385372539243072354162353915137880859321605238876751582495865556691692096537157282175990506075950733808689154319448819147134470221906077565684632053362317174098213636860014065506698025168719221932140543891493741310649603233194766387221655534238329938803995588464351124348098616034981961559598398507139610620339311923361185704741487845738101812189927813408889372781948473704273481246188918786359821867519742006567793506001431763300925955638628051473725805987460013082630518481780734939147420552286462111584995689556368598255703095915675292028141320863748599573093802188808073388891656535611697816708082447707585580281002920656863502832303310275865424758120367865047087104109733339353375319186489208052776989831339498767059431849407531715092975849387249816908151054219965774784726993294090196005574415078519815953594412612962278478791173378446962230100163262462616703678591340435243292764823544555198364987839961887038847788143727625108634813543104510648285955741160355549830071885866533639803994739246912366641388207108233175448014996228816711026437949227082757137466741710246519979947246065786121123057087463638735341660766436945651192745436978201385064045373415619573909121182941211544112997324905522647996673953116813185790422373294339275680586192134400489383022483736981305569008467693942779528117150320111136310601729912248126920674229336507941789408686267354462424367084391460370330617371213526657814734094751733443955167080743947054300841325425569002642540310620646837835125157637963007479518282324633824435937439203569872249882780381771378750111833207456989900638444590872011583601254561956127769827178819489374187604609316966126169222048537274627813194019325073374785288109923478903944577782677533242219077077203692186085707724674430194500955636814830032853402608932798262224706584816919206157321601365318418333226878111502756879414732478581115274210895882934499903242004026437980462070925411263654115000809013478387883023469064841452174173365535049848977911713134730411721946198254128109485802567146917797881574170066097729359927876942930493230153715932676689426637205608543048581620421770780272617968714836997196327840361326825977723324847151613440177058847153880682463036827563982015214820374033323865520627689152930944905675571922374955010830173184333241987368461753601187568877667755861111340849389695837907449650905483693014802256465054904907910004070632147140030838444459559680730869693374243525084532416287279756425447884191405502091048311384717460337429420326893353160323061261438366793268635516729160881486205384075737924386754224872337183309601889898402914503697600582778578270471296384071432291343710136416686038856606275458320806699796112536703089878685701364275601382243445986333872350114773812586349815781097401792225942526018428555178270740004881119258224914860116272815826602730713458074299682801328437359766221339118097254814982082412753269763068899549175190295572540144910717753874600260787070493740411055822279616405114965578215607553896029775409437682055284449006498385858118406703213827688858589678592413807094588304389729260737370036858157345610388636467650068241106766143900481729763579649616685754385087348310198185937469188880212591750563259470644485353736858528374805335842317992216916877350536127483450764538965918184915998318714681175420344595431589922059637639120911540715826082465990998773677206694049296479893187041616276270354202862683011621522124543364987244172899159103548821312585239061269207835743654515245792255895550163842026858842247194042071434614760148934009679179909276254518604291976841101669329577676143588585838922719855879460298094235180283423327332281054163841422669846256591753288595920273543875222295687027711026831458434220423332843345879428628904853014169931122571273676568555511023184984281232269506849608755954307704478846771236957579090659419149018087031440977957637729943562813159417272565460931503036137705263397516540341603350639082611391721768738343782497637065365945655727919517685045342366570332567610417710565180235828440268100880473580096515465471818681039944649260870151533808664606861265107433159526022939677107165528406329006978272285354844349244267966897303608015078482797200427467879743613584551815756627072368755278247996641002469143832417558168691869346716165694061364731135591496984431458969227619394918522344740823005496855342612005190898261387210823377435426575104327956719339812346621344082747137258193321436304168927316763233000587133012719759854436383939324592675818625310467929979822441136808689686220479363908516622729525799934332613610086970988940261491508659293849186787245038102297758558070593366436092257976035648216026418616486736618100139753410729177370374009953590000257186033176024631693172479454751863895362930169206705690565294314214652536473129605346997427845707047356968436677797021096736000422518166702007155616745101112198210531854257201099573818442085092303265060817623246778910909093257475265246839983104785155156553006977636122452090478640673150732176452285241743617033109820088622017900275525809127686845738303576248509356014873152173396436435595418543105269670768837473772341176194275178590192345627842752165578689000934108110923557342625083327893867833317335453620329128377621322295314492274349044448067123873750851895376505757109747592351412081441114346109843022013001797226428842818385596088227351102010450250997528346048203252106866875777681924593549005937337793906072646574372070946043485685492528665230490164861658167308949987820353612403557416691515640387288902988939947076466751036852271201627369659637141847744035003988096488092792069953751240636112358213656473023456987495559821153879177478532125694146777068400039985430021684965722797908578062801246342767146481370307801161611498801568620013276073252975765814412784501333671677206976349839035338323651148330644619603588982008505855006417366740994057589654567998601777536062344683757220278739163396571049049040575426484541614424981535095084171778648466866953320298125511230875478214607692759127456123101701354331839672313210945858226396959357407256528004086980012634184132857651717299524608873891081309530781898542973995494899443854715436599268418774246520849802932541957569207348095330377188246107501276311231650575946362491361499093925545542643392266524372633461051386793157246697928642183955590311231214733916413808370243534735966079952576376523200820167737643891956197663658150823588036720394448030960583861510111158005723012108611854621381906184127908440667878545224696734434614281422679968759110032050209756893134886267595917161172940500478796638026740254324433281069109766364973544196322393201438111567437191819055477477927456931056306428436925823120743185268147583394364301030159439020789640262145029273303458898311973298883081042759508289147511094405669688251799073961166953569632815874407622639235593159035210985727028250305618743061619692703609885515345422759067368668804831254516094359648645024999835269708220876826044441494819720193464293138295134798757759785563193738691525696926504919794520391580069078513012882226275510880592201109397323667723076995412256257913903489888593707934179219523555945984061066767254581997606161878807521357738040611291101626436320118686316957372544784116754705824542621566778858094018283914160315484489581188071773577662166383895100276763526219794824118264844109416197342121254820421979975252418525467316273428220286276215346698213287547363929177485772368544605126481791204255133881242101543449939422934108445912786705839265837965071630037838581265394202677380237955628284338787901564882285667518468185711856240264965713787216063949262294798798010322747303625529838989399241256623549990205908594678950125486657355906439853701805419588908759850026395891431831368262347677852727926469766090110563143777917030820718698979131478466807384178204765655744592296192123421047823496395665346778756482314958719898674107163886182024486562570878692055364855685859654799974702450125568366097287123192380917536761375675621565990441970446763562176110844285487064747906728231426236954018166671108081612902127225897156662172288238468599240490297502005228766915816362603496845071716571193390098094254712962518981213053680013305204067417266449330592056905387242325373784026018058082995549155750747611986028079967873063076503285355389054890421267489998212480735026635582822046905482978932495220011134700121787794377224331761640174361727703472954469087867252946449740937718566545226135574654182633148191609994243572384157670013650898694263899317925246160447497406699310127015236026727731384347839007772412016659073134956091753786704863266296488334964132446227429797485925719177594957763859237468164577062364558666414693421574830978930699197305848818775757224865928144243820657009564993878421510587284041797151443988910246341362878775354382956833164666089024117983480777561097870392106389998658012887287348978528766586886866243086678536175971247670487239122261196729755285975126375837081770781527345499707520169621960552903756843489065284337639741952087049126048009396818151646467091010215368435415914711498775011131033836341043449991348397128285324446212108063825721411131196198445389128830791171333247135613684582742819519798953073774323023608394761554710529926605735007266996874955453142472550096118914266655127225940823861848916069334404886497814573310331548976450382676162156547023950273217547234601651005752599957885993964635350810858712422253163295837744275888175508101379628195753248555584467074011490326152120791983654772733384746088382355938473854830620791567920485678490236749786977679361704990354557049285097880494651734223501547075487832828827814193849037653647539486559555350168772774456484708150677759075420590204893867683475870064214434472371151097583836707542092166350438562090783411459794776625355072481139707026600801742229268496688238999256618736272962084019827459076615127578558378107736186044081179501380920750574185959923275869381619369729247595255002124025565688991795823723244411744287685273347207666421897253795554987904074705973349626303484952647730465494124823721054683105824418836578833614743458287256214604476915332083391017966927557492117790642987100273410532021337264521974655543945686942632467547753472620715048590823862094251666248258349749000483602914079416680894000272941809972882400690159426469388747970981639854703369467834750570613045397233710982950445920240495261684070211645616591307335376573793920824998056868992459445406253462535893719243093315627143860694238031655741948115451598669238505677362153215731441469585378864931890827394967745598760051067695245413896587793964231038910135687196176804168985842420666656961356902444528930822835710280125931006455779642691299063253323526635001299984159579767461878151995697172120866196106785008959272633439599527567170660381148445413586929173387843911335492441921957663674969315814540861194204972184749051413969722054319268203945519762313764296564742134864062902164201463481579835994070031945575436441158618764362688172886785206860710883948276840078724171454867246447473378893718681669270947423404436263662115423600481655652565129527040627642291094989352588387561246646551863707344169127175130177182808941750401047552517617705773970731934130578729312196899529122200045259485301239773178097079077373359593200172128563139992552425789626674704739065960779420973949465833552395984220794101222865178921436586839988716480705986101348548495924718861454683248008462775140149776620906847903836835463402998574303364200834968807994933587871839384187054537291557901160709462536198502798911029220682329842802858448576239071179798861502069886537898460505049216932110687722708655315870801779719673873943091382638120598101490770689264297676805943533766899428295158058405263780234041256772509095635039151089378913535065572366012884806458144201989137035607119311043223204487597365201853964195584719314320104166616333706794269711067321163052825520502813628657837793307691488200535241745438597467592141620377006176263165791210982064669717187844683312309406835775402243390552664017138231396363924444379053379494901735233117288445977681414984208109786589797551205006992822024766738691365505089910942846059487337272702220913719623444122666413896231650227413574548738668088375574693842396569622266727373411077180648688884788402220817885318566245186699126494399425621096746334215995445157929978949317698553604734510986577887191251775540595094807937782988946083510198470676689852991237725775387079879416511322764696036584087556589272388385966934104989864674189259568427888850877847966595547830928465636522352389414465011892301844322644319878869018709761332204732440212012424436729641697237840330613340824227603259632019606654369704091512136832973679440332048040625352386916860373088363583805448294384574451860500415530554174650679011804781284423397157607692868090507171783080165411110313007582644836422331393251778053422892233217682464027995269650436636211358871824759173240922442880005518449951456172287604614667104719537485432424120786982123306335460059690343448988052381715231941305636758036616494709087077535951717382556431036804293588387829108899723313218578965523891927116295309879942693061220969490970420803824961438000470698267830052699180090566833768208627555808029465412927503665661600083812721146751839816071853957329911780913202308341583292033389904820728325246654955141264728258449083997583680425243945838781650939161092302476407758508001628719984534706366980764210444385230638210521810970208757518685208336433358388825087077713373145486762603428369235018723005834773499035422836308155715373731059556627219346846262413315419638146323405344671503434364633876144628611636983166377876091346244193699681267187811999539660137736906331034362438935170117468889572230631091616286506186927390142197408070237806555811489822117979971393814768496540099007158570200831137780867543718620319271548804524391183511588536482056784132986788345073807467739487943542413704052770722664455630927506562306005880237880211630646996690161178764785767937028279202961324224741587504762793963741858303902103509039262800190574390626506557782834321522900314624059592877043775740045277562096943130874649111006817833406782356728418429734531226638509460413560508426645280145081300600582874477075182914999275915275689031685793108329920250494851122518059124452214566759208266667787539563441132425572142151138694796830807917206715741775852178830031034202790073443750015309506227964226950433434477667625258948886897120459479833703718635481691186250667318093449341805645113262075912264357400428606389787072376127643397809229176179155047947249529212001414520319827059524973293696065923242742679305161150369811664886985045407784040415574519543792620877586027188017631015907820946645104482600138654413616689544958964050593679177700415515395129191337543871195735493716738656487105607155914882876240133529840710750868429009225806422232930792189973576506184251525277212797648936564583625601625405218929989930950257536184855887154787891442471194886310422686334947342678429706668127270147518982459177794164800519500952749351257252137662139310172828385137946833247652837634731914045384738993708871909623245453005808982834481427776496632003204039102759582885522497637780410879176014202720225120296644393876251089448602783017679486505642553379661172525948518664011634247808987310330794318207547361308107026928147067164994144472298146500576795417012805887392643493984469130944946440254012462464595165335481593531696599765744909573018938077631640270805010913206556203216269839517947912039994521614818216756895539575624584102856723042952051167314519177087999469459351818244126968065182615108465489154200065271622117848569187903182181591227826356363750373071647839191973584837814188567854183191151221069662855232483592204339035239869152713325598211529501519627216119084846851094218690824497442359985322072428496586692814477980461281564812759588458451589747748612208656225871354575993606673260315707158726850577724122946552668902131038967282027591818554952029630738984213370130497834665648744546231481467889643822784601001497531267188245979819584594194086100937856065537967005147934924092411304680472657444491541564144672608516307939712989537016657090129630436814410807137503771327209387542106794788846189025063444115159482558476326463866979134007322106054410866822784492237523255269397565958904511892158581344869737806474187244120920643423359001936030002809504713136349714229993623358890585506990279424290098745358926106401906637406798556083430740307859811110179753630169771852318167968916065483139582185086751200843103572520383132526097014714903673376974632809091709192882167488964335514468681719003729974898817707979833691825521482175782263501765814040392659009105143717062290003630015350877319969087303546734158361964448746504268815258228189477199590156092962794449412335913297070095451504405910804189289768591638086892061396837031122638823509726812428245529855808776048003395778038764476112842175255048130448032518359533663667324506551143447744223033204667277506411416881773816072416207401136878739885913822254508148306162516414953276843984501578527388867640391860290449177289568433592763740462830953790892060016345114036178203011110973078688195933528365821586334308470011310013448479213794679435201509195568216313181111252434743295193383043067800278586769964787433607075681515015143666499970190237527487140411767235338935938931021180787141608308283662227352440022638016136678410647121811714907008687488716782154892072992932065945550762054238753683458183310557415414959022274623311271704729132717572284214350261831199371172721872302806946848903949095984242179193121409734026924593627883001075015534551624821333841671841058111280994531691224113806077582484083272368699254357735630937175249909546342650250399492396499704566195358593710647965942594126906799800868417869419034711116711976067355564335289091969415769337906631366445505327154231943276038878695862170776280796949961607375629777609245806348316211791539839196848897775058597120496550743541481071694248299396513099119753029494150014601307874636874735869928735722153088049115294018037824551734013696649810410799819182596386951352889500134740179657848419241192301503309999053101432671051362398613659323166146713723887400848808860467200797835714127175298156605699677489293357320616492871552063619982744927810930527252918361642439047084719275295473763682805086644232574177491245807965980054714446149779186934936421607057547693152231380478080707829938800707564623623001965683534522382753655595752510862935344593905485206886565604559066840641947501919671340922147077044524942140433131442029782585720463730250218740306557720136552377588578748986224196761229619834391780130149013960570299324573053292129622790591843287224960685339173881716570420330168153538567609427690088556861708237651091277531245183853976497118564040167613990371511724541725584765601067712629504291858187953678992218202122857020775656809067244719040458108734118188409517483095465929166254168737269361741699819879449791579103980436099617326294547259453603851728718522074274740939544141473026573512103820224945807366378551451644364032169855010918699610468453909917019517900085440065857332918282680904492045922858671686805219405607685900687715077268474936651799706659127934299989104731496267147541934051988435908184771427332966818155294917228009377213316355838916263449178386986259884890478376146170839157276124514758686677373912594935074232502351024210425046164000303175368008479066115196932765874535631067249748567248743957251254167169753384646436194755276826807478662793018587289388123658584792279472259040707722076335678612551697576808909647328303866661540051817114589389417151559576714664257914074002313234806305288730482780280907479353964545834857121358510930972024119977652778652134977975348342717856706784016034832615421770369796428557177038746455671403312311759532984986444391213700554052934709066834953282649535742450948110078954359332476880101701436552552276234408343378127024505237843917550524559311418889684181069943125117207376826070000842382480457402994845273220648607913654962647146785982202800988519486456663117694106968887207559994193566835916731341448820910451571343031160158995834269877656261853862898154750978801849272853985925223751685685359916316974130273250226599181995570414331171259448981670550726607436246367780706258319667643381215918671954203287734327506913379451807001159350993196253516802084263197578317514985428817334087980875375450975438789693130715653727171280861814395990192184811439300804994124319854474202241678245787882996859882405146586485564731157979445096426676689328529113401974130344279991909622782440164783930460556108497672124593251352449256808547419672370016128466156072222298264933844327875696468335386625562021533968359728552064094439246387228644899267541380100711026154315197352014225858074108512486294349100639507585053926003364813549578369832146264478507552009962757855870394926612698961542631205468477405758992274394031958001457396113853333983789058076417639823118248584301226236414274493309787583864648058627568824092850948737554615133036769911565194205150558281671154196374875016383849122146023765917578491482413568288349643784641290419166736711788672395021966400318564204872312164591897519131205798270203550760363246639398714585774212835067625500791386361012806162346484696801235997931609738053121884065125127389404711629484940580650919848339592818939013019134694173515739336426974280539814209918782498135593854142521796443053871177590826677555808499950837709371499904059678667078019100571657098401900018430127053982071090242443676514632290550156844918685724383830944262304749603207175664435244264107482540295910042348898746264631017446261359403137085113140431624106785422042501019940254454236382556221754244431557370343814406350162077537751700760015005246495881142066590598997535241054970424485929085765136480380150615752844272485746445455242068429626274166123426207452979016182530898094779160458755954782741431277971321768100364175550900599014131821207582632072526448926151373773875329950513836451771255211081913200227791266160769473897043162035553706478691869701377768876427025217811852832566643215788625572965052112467844110355814457859328294774563859936561535467471719544131690772382553975706106559512033425076485865520716179221704752165896708916047525689982519690421868154940022372548774138032058464982811657841337724160632924629117541403507693926237664824567301663228569242092465055432547502117120412668125036052486061839588688781367080963906933335379834997357414915288986699353221773261431207619845145083701555177790089763399649852264270860355246011908584010232284068801074879282256404293297568613565807911089568226150326578731412287552389103918340937947211815907118899980625111006609246916439567478368916396752133119872919418076863369102177350984392195031483754376911029123060789660168855969356049626482621732596976474360674122173325464973686280619457013485049594970193596605946274138101544827363506918397109393707767937126595291772138588122772732313038781149578708261909135177914252034790610325857904339340961509246515408196232665113810611185525630585654183821537944238887272616315056353426753526967614958870215571616128016684001406776425942870366295907874524953855751116073812060799755689284855048196691489090368009035273333789242570705318617499958376583992164937739205588589403491451032071236762572260188646723946793108306280625861072753023543093841506642498950166044583406377951217722505450129936479244469741961180827302093010323600343280276819896491106227221971377421565107358048338655750204613210770677226570243287271582735745353393478746127224181265711614788381691575904703671349184226684370666983297246243717536285430735695436425440290308893102497591760755725812560083566431970077711816232781987190740512175778211381510485469910658230213166683581243383623170300327385898555675328180906161327026985426411746746208302263388513936640442298087466771148085584702978971414023110068279090368398766801308891409723128389642943950093632234635453121303704441108949963142566802003767510634146710064694045881830780359579840845886769654289460072667775951630552598570717307602512408466875538897987794035368776134789235243779301574041760975037714064464056657403368225892374064495660700835779104343139810332220488687508011100388630512325847500480102849391528196663959111383347289248944803659938517509164223614276450029894549679747162642580994056566489803068616376366649982697850530696288586084321207329422434243697400472120730257057711176254298035039136381076992315672200463035290847788466306260771895711129718457591907533715444632862792187979095457782252061547740192558732442061400266967591574803846530857246998339010705767599148148277329143186796894415895117807601268171418169259411366660264600269454945444396779240702827882947186183427557039097667860269385008577328009651699300690513746330649773959332284096675748434511450658035671214315126256225779777186299251854524700840086862731430685995055722100563262879363825466807747081070958352401882117479473784641011344610033184096106040943877853332258007287690643437279314654201779115520580493394551576215398692509830120231661162769283715099882528214736022233144231971060759220444165758702351378339703726312732837547728114386192881791891209973295578584774954327588645724887043356271271166262689532640387429717024155519791263389181313360800196259907412880557621313966681296579079448173375573790267027609898207528877095335904650606117096293488956782182491475597010005968369315963176823804299431594904416087290898346729924013016111531287365509490135550788258647852065835477102053212500520370569869870162906530258792347695879872451699724324759859775322290868887397331161068485969641083761208440522343367253604614118127677461234551915816549857474649046580390872583641447098879372160915903024781405077327960769506170439052339641414235051517013335894642255022288041016987197200234138365494507796739216491198140644196952493876268603519008189619028583734440097696559663335639164667376760184365637039328336596647715900945360847855617679217208896888307437617249102860600205401231763480098341700098090619473188048902072517560678942102534349458325933359885962924638082239990913063887842228593295253670255998965637946462085341696229161530808357461772504235739418043623802779593338085178289899176166541660316398976005224019069595556154528278025890479594973607434898176930856862099873765680693052923129156007939172684841567814376161454054811168691217679598288250554711595811288750160593077630815802991907112667723834382610396334481247838344267408571846321661321025447831655261574637944387323936190729568385204890628841725692967411143247812446953765453580860575320946307784261527306104186539440117689930039974626377756405801753459025624348605012127162108015673405473117067095073584414943497449080775691924728176469339151103868648971149607316126741245880112904563537535696807063565520288737604250961425680995677070834952873177191900829140088327915968465623218099659910128157244279670242656847901584154878543316681302257730887007918750241576148096231573876539010471598900896194974978679678261545427288123840292969919121304908971278956414207313229260235066080179706845904805858296505777339174326174193790151600512695264389424461342376928920482416245500458623501060886300854289565936966713673915800109527747151080940730860064130397565479166854924098024297714335449173373028454817408842685912848462585329562209666642037788709607538515732465301747470487095731793951153150711969288911583739807439762030554353003227245837918819107078294740694479442251789126926694011145144416782950022535735059867535684839865797034931954566373684226807109330601879591670750885103727341082663116636480744405498651171792957669246847217962836383074754641617728747809628573866526948249995120964229467353770756041633132395120768570179999157475662961947386951325506724125235006138737901668306147589068952019616226996823948719247018537627912414520479821712061443711319656517166650192800424034092362748087602465448206148891471178398674829323984775648200442204696786831866201902413585460480649681805259668192465219926859420747113538174034291527361755540162186527259642719551068255751382222397913738684915219184065762806058220737444205806142863367791393477784175325747999059561747159595343335760311267309246674075930158832292027316744881386484460119466856316023484452909384368172691275494516400634063697951115440288810145601288273887852537044404019750079557253930510732142870692489219618661457126954460721342704713160963521656725183094163528240556761138903093573119873541901556277081927453687570283277631999054174059524953046011389274264796468036337355811806149458974143972856074480461692398879187423685075777207035509551793415871236314673687047446517322972207838390953797640392597724804122699702980319713297064994934887005651393687861795046074967482629580677299873913016016931810212057004404879076711587736564103291995201196268697989268514575803287380932163874144708921075768449742879803556716819937457877860450977240171749445536592390206480534610175450498686330075969860803840783527974390566700247385754925323052592040048366323710917823770513238540185810200703846475626662547805400511240596363461061778271101892408081677819500691682439692513075618525581968573420687495699581438889217858788127544902627682348946633327063247683521946011989556741470067759296236163897599268110246476582444320924972283506789543821806138897422258178644667486348016692819634228002740353730258753777617642547409627201033960658248084407455224189653634461273708807000210273827374273283302985990140390801636475982172634448925420173299275794125598460661431992073679868195405044605293090624856159492327325048320101456950670339854035744279424558748087253054507279751147208840210980739586959789394565800129649720713218245923689415409495621488684366858233744753974165342002163819996294220985571995894386094848159535680847482993015178001083530634877515745480491969179915135613748573540697986940715696037273778085473261101539770410061878925212251716468238461004155036619229360767397934201509094212250455175635049883275691711563563628534239039921703096247442508746458380668136955994217403992717475939496923818444361405026949685637048646772271695811989619754441218751411245964079330511353921541582038025511962335602416772831763994669843010295470055709190755315485388912404418006605299362677855986299377429708051622234071233497448851075348120945822435476359960281994907612302456256276748594614098550484039085935008411924494099944030914031415309861001921268693290811639146328061252508894120392186256294161198709445889684050602845695198213542623303242316112186935280275575382287410153937983529058511672479061821629909262781322313687251802926080549453671234477611040127922161519447576483782302458276426189124555310475603110209218193318646679400488996214671873278922016143692216321825853315651794038588994783309641172815030446054558953937375281015392240587347331246206470866771895232946121560498622588959787078135326529166764156691953292265318476408369901823414640333788662032392448809067006567200419120560611136464044664967133818319187561176008140543647911262957019436147439351548757223819367501984296448123016702607306642427946876656287935750417512320605304473613368937867569072252071893068535471849694496530915644826174028749180271969216512695137757126600974231546575865564501190037952528419268681135668953895740821518827816329283227211478380092862089969004017522654308108789090907126005357962743626779108229728036762565246399170694033851699106214965303923150130014597573162974348304737934837851084801207953595844229342091709601403013376614585007498552082879356007111827037946517759058575255665998747468411794712632486401432354724932779665419360244112382866259808096671217501662463440424115448416389807448844661096046251465914889577262531203389589840111975709005489504933438774133871763362970730190297883848226754904920910332874801454516683200069322045984035909476964779126325181571102870590653309167141128494343460575462536690884012475181375431607550003056430665495381844859530027934051332560791940731915758479271018956919878993250002561154420158553707335955079897971713877726198664140360431333691992030747034383065146385726446491774480910585937728636931931716328991101316144936832106909396468026445344388329316297026309346223980839034058020641666097798744402087289225177857568638805493934752952292988268415370774989085621487194888831967040197359109982430113625406956167255472760344851818868954247956733473763681958986494355776965344873864101508455854438142622388725250375562668487650370589693741711361344918627406533661440676999876879898438701763061758716130669366231469685666344453283276758829015957194523684122540234219083821506357474280755620645706509525133420322374186056999207764963579853419895248575342186641057554024745660847271574344585736245853088868381474643248498646891221616787258271306546084109624755215827954934111414170665671746713571970283819542528460893720985633597440846284586520733223422439700444728242112576113136310405303085295783687041020994224973831485835356266691278860872940984215235442104620086203937930788569527494311616254226679600923121709057350383188834556867354478109497174718889328773749937021383153499728444065229162322828142163709149438382228402944167270344692392263519824915593678947602087925711416027389267297641630054968722171318033343786857800699838207644753229631391749253892761785400245512917373821724160387083311662906383024340930669667119028968966182418350718294452265501816890051541635301645855213921264219889939224768547923608497062359098215056852443557905092411095200633382683437657819237516760562057617295459797730210941229133412816039001541836662630440558119472141657775897001252694578065595787243207171201725794653753507537248468509681967121123359693176719032829567713033019599226292231949187257629571489607297332621213020773958257438299629055618291442067133751458421098897045883955182199831609742285353219417815084716001908045836537517374178462474161759307308198696629223268322623312789896503178058793227016404004070686294031985528360434504143262608136704259052419787375138512519969814511232410151361780139317713387113516290831885614185815921490377243412737029174353102144897818966992529818523467550207568098712151980858636078828692449821313648529540362167129038358233675867582163569495748635681235791293565501446459679779632915990892698353176978661089552602286343509896229295881641712015869881003427213024951093435357471451264439656238261109737550452792791697379891335192883963121396391255747393966098647016947069757529349951778712568216147442793356623785125103718527273347657289577271545769095158278900288786643322261510645250521753799638499074759536901591248574949527695673654973423692268382049414433956686655174751560609737419496961539447190212615378434448119986143392645848344715217334851644057608564582533381602749492445633618089158382879038317572296333050204572023739059040476079335200589023911213122644689261296016124116872918275910594516655657107908616106735007726534143456182715491395245384494359877708526931804405945702137688576854794888367785342445306933583447091837281795345662680622375319531384447219834181415737691547708876348146246597832946602978929090326948307020902269816072381637825765468444546880642391716484987108433341371403155607379701994080559269482402357265019870418018295391474901371744967074602530263584981013869310871642422999950808555942399253080575405475109536969302242071996773876990493593167112433530642721810031720371022637156831165292798496553569596632890461849729523693269308408007731678677340984828678440297622824217807668225529953883574422583964362713339728336344060953907769382767671855012818173941146080494255239418561383365001058556108112526160049504704732110894649699377691094380088550223989311169339356119089869002851137510888751664802177943575634383082184833685663389512195852269419665498940924285150808951614931918648038896431738559820959313447285711237407677428548306517692086651523009185131199658019551058645801192102759492043133464822827662215022131919606611756570948040268542392096058888689073628256383254665065132123767963416549065622318527976380555982819516614999678506650774214850849321089419290242519062141329386984570522459050770108946333954797223212215004162200127583677742052651311463411494070170346543857852083303597440592390215771495618434912354863289105816619347044193004334532567969720779409694171080737074627667201073908914689837111064157686402119523610648775022688987233419172479941300434004258864569183429847887360950413532951683551209960166278139586210000024572507852034451081015132165814800121406746032461375815272238767827577191385362980003816208433314497799338942389505189210472865603323357343716700927414021764571963320361744733576411103384641264674006627614707815804881436125037747862914096818288032827334938791922146407249522625369567865803857332452646961890136452117782897570639239665689971975876006317227420187123340789227323539049394077582929507029460497608563651971269267704987984447667769744045858344580251890814989303172440464422953729226800703607135716909472571171580771170085923893552960742050516755203823043377692023393736289344069336250184303496243906291074588172461192051027108695868404162984736447662794577059906248118513472977543090919066879982246238505450212176608047315840711476642823112079076413107143611521941964957455249808644891191595361043210918463580201534095105359483253765924763028486981633117650390298473748459091584393797670454942522838270602336102842891531055460495649690942419977056146646018922818243950941107384768336965333342362561322397582010073495078660193330237996747130161120275575747610792473733973943060743128724609656394602356917910095125615548502963537058303619344093390555803279264042176982473529361184265586767546689047329888924550107344406828156648202653696205176575730130661984233452002560859876716603588737526224407611723048199670947923162100536514923185828733729503985983368198147074421468646440400012946737759608907806510240667079205729182885414570455572248038974243790822208326325399474873292647348038025880037486885986651714522238913218756571964338202709007463102491374861575327638076417645951042679786048544783746304844488818846918737124351126570463498516380695672568643710759483731228210912292740341649967248250165539346471830948065447469133469777496183116247858332299587858602381979035409668562400158015657814702372433101583507311273984956787096688448416341733695198181608636968704821235248492480926102847306418502757032747962473402469654129695457261311889860049624197478233811116760872205832205129974494242271050143605587471095158457700596462905469786472226714840158248955664724989217889370578674298337573147448642190477638323343947349685532927095480363915357157116651868836269635953451698377559679999340362237360633006398768128120007178411109415006865037614291022473606287493534564544245377548042416446079791816937380647671657329086192693087610182611951718693268275655403377161739644538177881724114592984717737687132687151081090622771384442576483852462243929475466613534932906208679623643553055034468598342693228310795446799969459954130012648837844066458713292870227264630547064434729156952363762160477409445190391778429218080650449502895624157077450735794518636088915843968956488868423712784447069385745892064216127288876519186924408276394668572067973316387321743844048124374313307615439484391017009766216728488371676360227842730897718195526900760680472476301543996316870732818205720924737977494456112075101643622095035915630159093495284782600809165513305597267255865811186908574957867101948085162527161438900324628837053500508735261014813351633179953251676866762777670957104803602299545374115880260347312868866750882324852527457992657141585482438694430989364066361298198265284732255490145117998689085568117713816650859786502821967287115929705652852784956327036227098228586348518561048544592022955883057434528834389552116311120481687815247773432418828694881764505227197488711420579615927901139500449113984993930328121281137966574097809802491080021626253775141433869496429647172901206131590888245356433573591034506677997209299096815982288786859256638006002149013652105269102654440473275633723407905962160914801389500011784307126772721607987422403486342638790699821935016705297936239722636152124023396251105243082316269361971797162797248722665768854185947364268808546726918327762518728574409736387422916787572429744509271342442158897649508210534882949382454800189626874535712904089675835463749434944799042996413672118049933108362994242391674967274271909939574409668977619144905884168133289296394000656772763546638036975924555545165610192851473350611378743737282077488151676034280912934391626448730440299752633567950745433754201178229673239754103495690230427886435814385489669208296394224310440701786390111971313996428134954387425482120748970355495609692344484228398913361769940049733509025512221885818376601893743055515667142562029625370985569022552597331129564368040616004047776147274167234241445465540115859929884321544637844292953116105201275839480615518921886567420039531526588207977413228862648198825176338399822549419086318669624673749639946763120296304935013485813186994612640599713796704315873877113513544226029776736551511854758215093515877622603912516451179323715381471668816939735597387624860921800753593670751113368128294273784577435230226095861443111897622004969693277312618211763046092173563571961608735797412180479914550185280627559761950426028348297078912756629897642972945757443828833344397422867974636591651663330538494805606421825587063899734695422755068287306265579350802065520232211763067748759811425242980182464854288404680480412832201224792926421235971800650780634557030039899033926826259361720796603564746965392669623176584709665640240935110585378876423975488376516921664151603552699155681357449383779808185823078961123798176680940494911366492474558383587037879359133290301305407157797152960670664003576464692319866353408385378532517552303974329400330586597670558384994276127241346753679550541887215092233380311054929936864965905964748474613683582312325238299291722565306736872723726499729762401455065901517135714291067065865084393160558486482736390404116617254871369696165836650754797919981912095412993761674599227817462273256707613129200366228201609106586588003310441567069426262482480982198692764899798725590045727388671232185512188731364655311091575039579125386474756245579730855588461218243166778094708108312564277230298198130215140499846613564964682022590229906251139720876081822718945985796350200247320100829842788598513732123489114987211547570535401350920100858545521434613056792116346293467963984484719308279371852242809371945008574655941863499944146517948641610220815628088887738477789772305820343015817105327930067854330718889420588329295478851818109850857858400305829384669337482891407902313814350032982891282581148221533620701127426168150961534405511367565855058764160885473394872414546269614745118070162845649369694376906850078874571577293297122687796410793665670894569234948217602141587158018101484112125772853068208611231727212611248971566840066035249639734171919914835276135517398639263222998420935160603305058219355151910031826183186653658260981267373347800841031404122169862451430107470422834709417524059319727172323145527956870482667718649195082505923432459712647274595839649421233662640654820435772402805986150265662708382559754374964167416017880346802066446424599439893830406259758044088159723319881979986196157290988084811538930357861751807973513953484080963568548133804413358746090281685000861357327170298524550362198853536338136397472504054415321187316716167100646529635518507498671257730269345698842832080057595058670756129179953238622098675261151964804349885380570416349416337096823302054586777051516673168573221287899829678215016044291195054743300130358087106768141722556292509523525081567627919447261747982084404030133135319614243635085177413495354757307497518197779951643751055469087697075069093756603526262651664896265592956495784072018573946607148215953471844596866350732095699685827996931630517383634695475861579490657943050224924047902773080195115727374713145070385096554971434897664901098033674212143116065895119398558673204359029713328893589829785275611951250118021123982133269562444156662068513392017389179998264517248748320636722486003836522244984941972781185739133693119127739250308472510444620869076426014627103826946005908915019609725541393413315681863869215573983552560320589055298597085714308642344544828050218405297690494634827475957028602197038965361650437488027206294235857220688591544664840813076806217511070607559070462644098423359487132132147440434551530585254547011633521526190218569846758020004259982984563884483843217754007935290374553979774990747831863629054522417229553148228595249370457133147305108360495449015067382886836645542936847904136682346620892123749916558582924601207413726792270639187104719735962950229805259920143215034696659028829416246034497291295833918220114378188484968640625763666435357567557343672854999278883667357722871900052983309352235764241811474884794046260198815252325888594618736935619733739460235071778631543650141775038855372640727776577580006641284702382849307511220305263879794605432363443067933288297120366981182190747611697717335753235644403035245700586493098184219488265214010187328554805151784164394413977855474853239601313457967224338046948816579132953271670942735909728556853818240653483153141104347166206077845519593861707107443064475350805390129736331488715081415150899119331760688713266308066560699496215356888218822209352908869441660969365106938237768161864266924324445062260793054879567601813091184055577366880756576254716967886629333768040738193459880529701046300588190333718383156648046597723056716584507601001194304615948615035893571930723267691084480890346997660278639635334945839695895451045883293592506225116237525395081434975218594171448871244990503306475935599961322380803490557247190563229662784945587183332723202101902958421088820605313866731668175402373694383226542136886779554549021604938558565657091659010551208134632478413207466572899501524441510914412298968791921818298510955424489954348722933529147801237596484622944709427955217868694315435427822103272445161273795080983605952015278153579700796092645946438048838387427837914874180454824544813138642944241076344802556731072263991185405645935959728035719097617226939303379421064208212719877134744903778274564801665221106289907009442107492709141175567186143041807260332061790113518013490424068502690608726109248524125915974005844736264883363023228670898694336052925363318204669452279938096679976970642023860573295908907037132205593333891074406292331873840877349154938624804109346756520526649780779916771148500389669822618200595642920080537451558445349475356282879576473050550536550293065113042108608389075603846256274830108441267025439059584515270658984198060936265136226596773133425466193953121923179362099112288151909624146041442576348537434243659047644155793592755892612114246363854844616737358876991197619446620151716772158482787143741760900325551354099496982100577284851318872866573058741457423604222690798482961415373095325479325043910590681256416860387192875794594216577306919377223436499054299181060490158594571950684994563473163363322651736489960731937270572298889103589704535192134695081035659152936709692921709168355539797321972130239582269630449882615293434038014546754055918108509138439767204363621932047812662747538397601866259107845493132580774443364821242981619836316627316031561354748757956583368822176241561748036144443328360396579732356001471269452929423336754338553265236540682599532875634054639653109141847568522622211061136426119232513412003164338608049732937251447816993867794375069939157214356805333064158917565203493812910982825061805344712858243382200298198700417454438032326916833923421937072161247004260893574114705730922416473016879437042789292636007456483313016016649406280862145572809899454412043792598268102768503537378513969572590686692356015616906670978064925137861840261209822401101366037910803382822163216999604338803707591685183688387410040217351265244935650202301278561688495487846867315291349262601310061012077756213398176048293203229078524444133607705776184995508825348370465906663489167123061286266320491867886401924956983805424073763652581731420151363770885577238828870550292414865501213879543993290603088898388179693187918044457626455738672862982771988235464265992736258450219957452623601107015021983318108383474685223704566374395999370427369477908292416419629349170771332146700749465793913813941563907050738109910647984835057093525124415698442166541565045726010810762368102491415050774165794590411246571302055834751960205498554687080426459521676427679133031542857789051530855510604917052558238254052635814895332089013503485807937740292797930791845852194905488853292978831624511358060987062949376093827861758681833828002785272008409916673099918303531704596672033702870678423251486845914137865690774228994600494245608878972591776757259462929424538743692582022526004832158423570264039381179528804262483194084009867938455153879183905309661220289436812720385805615263170131652689982081511134170490235363938728025877257202404418270595095844821232509336185586743612968061815739316722649795816555242387396903131318035085747020220414467371163568798110313831167472809679087563842160432094824312137171604436830893815234585076122942770599619327142016051208242118470475533717749749411131608006286961061425465659705646149318647788556084168748842424553281506134187922291955280428300334873183382433044971319251635161510289848753766891242129400564111580171377265615423252306349453066979159686699747290128772064885874666281250742837702832076248687071695857706418468217930631025021361617652295776979749274275985532107928492428618873349647533131295542283861836038458046682658881462827557440861494644305764528600179090328223244026299435657663643092789923046563221846581985625785750936392672950910813296843541069881679681596482121654177297086939086003625384704169943363065055847159004657429556312892791181921432394491783725089415711019675095057005345882243225892141118030581945394672553431189155304646691405211161666990800225115224859849775099422716337310306948835755064939760362773844120968251619458707597674433791842208474347637773335556415841115520176041121478750705803912896594563555425046559769461224625529520549887665770201146439429732556978563581473902838357371966911178797985068834288542435775803412851310050259852676908204563376894073568549770382093108712603263428690265949410836812618824817563819948233665188500898140598701287814208609414157898945867474485229198141582916056238022268441331598872110308145710761233175321096760111777362657505054936469733356642365802165974480494078420398214197907840036793717688861744763003708139476369680593202043586046594437256772481304339680587472199711910736303095404926289505144337076109784164394624858572585792639843060055205811760214234607365964893481007333547839479464068137977947714177484467336278309918115790997554136890640224540530283717897070130163660126238453092018315738667958786126476775148390796150332375839134378189630132161134821586830404116601187488664034055415661949525055956174577629119403353157549915764914382073989176248951200590023606800152650538828654683646532659914761044631801410260078312826014916834578339185861849774965474673803045255858547000821684916180809051898992237397035162556641885763755669389066989421623346807048936277822354561643185238870682689373148126112081959090725530117407493142742413944850157360687741602215328975840924442086906952502624954304053919241300282334381264230812486713082755889894581066423869608733980815998998120994320455484666624663372969572370140348453258641042449452336874941122946490054727766830646966442281430211191191559863454414420801046842127744745560593977803196171622481184222505846049278122908511993857929218510010668519605253137868377512336036155316858446392039823821168238713742597777996327231930748841376908593099839273122167039695967731212540652295611452994559221897111258361208353529211110495107451380661045100462341002297248850318205692869108540622612287778353873406212040709308264934986250059743064880983264624844679731284236986425906185928539465885851927318678113696131232300244162730884713121677268629856273133008398729911941069328467430493620519244399445813017419475607518905048585878816647075469116304253964948751365348163246736413046303909860582339196691964218730841974302578437639148485854276202361615203980089488357656095531239195649441457275970961075837247316622372185762106089463451155746506622418395835539161982218391295811494187818984986123745479939222075360325995048325628892099619197025931431929744838429713502072015144736935036328623376531209893669624596927763162841864575887345455544867827442827269772901933047370221535472890207924420211674264250402277714467963975394772866623460268082768529033302184167790988583250076971572138563801269349215574193618849233385244899309269338981505448956746430274960405807008879075115540060826665794845109664002444625771138896055616260784580734615974423443864584561552881518848744828650745616807753733218005368845096016744300815778518874432091004934970804354912333318869506701480645113096097317536808287619300004571383559989463122339098439156001270726705126347953588401438366701505137190730744136461609904993151962039049712282340603108574309341114853109461028099304776429116821050714173156421922065667862972713163773229592617037691575728839415761541383622280551010558241568275544969536994810872142356252540523926754202967969444446795735084369321969563683918236532829490252890435405883800288407206944554707277364818062666372513549958610400870301003995278528156875355384162012066978703452847411291893981349183708619508250562226215030890694539395573077022330516716536562944276400630119864590993099530391552987408202182636618273071336211751985041023947252919583699526638724660606435243052286574999904325348789409124156408009657939632604279884602555736362286758089343985437107891243803065980583898660369003198388984472699892678619027077665502363906531010179844272643355571068946572049265777378782359090868835595052542102643591955602901611037410333032396151588829488253572008238526267405750473102007982772773656269065790891323829753327396777727288259864222817939815762108485350394665459492471015998386958150858501633107605176956817253452869664723175543299884110707710070402810638202797787478073751053370369433684718368390685039718960954008945798843906797597995104897024727040040728151369077304442975890062953518584912134412371456692088382396986493069501337134630031639015471003460257496413659275172311961806803729881034771783034786069706733532876298303305532112594953981040624802099669813479094562275358416346877154534612533725110611586176358906677692683182006894646076193491996550454232236695306437850776836228250969466264207944722229963403479996834401582056132852004759014255788522155861763773333754828412858305132578732546531044577573477314263922605930122476258490749458468316698000849987152252274230291205587910149275518989246129279364973673292039477637084831750255234454813210631588611514055140068367283028951563279969040122845933017565360658584156457221938326304385038881009306659486137714135124325950905598267868275276974603294101575717350404281360980895832507922291618730624757122751603466066393883447192669180240425443638576010349179356797905551019154736811551508397045436991314666342010982398119821254943291212734028977221030535310485178844643511704664628552942171824722376204902467316372433563444676678756322590420440588240791277615171537513572018912353435408323267849875917114782277096534263113075005205816413742378669572928453778049904231606950625243785927814026902580494002218325541565159498978898482493735354856497826036111237370473232221896961865534560408760936021451834999062309335379474712716432970188593221632549797704408015910332915156757491593704638535580313732110406142328031712756468981080388123189653717401510785676978447767462497810468918832034213305626259189723739892572836894841459002622070145458782525254295575468292827009672003133805938145430373749688153133664918252584562623373756811143591268780220814607000992881753785366412967799104051700782214940961791373974431679931984262958463153732194672458143915943062366018657097984546510681909989654049795959738838335684650914789108454775311123907676869133360878277659065547809579923529600444150350956191982123740921800256653624512881700395615650617654386219211103203845203513279368572664437430407989646786836457785007611249099515936981125499624549885394458933259622265497992341630482306810920356251745556838569618396141004109103663958316173783494226619560514212154284505405562991996341044960589744369569626453155899030726446332281205710179871315274992266557254577737816086216475361354729401295976685548622798279171205044126539528528951274980566868721072519700858661461230295433421640182315338267589655262346782152312202231018159938434081819459719648184618412292098888159098400707331788054184384045454114661531939558543256156702573959990932001522100331940157880955719625219217679689464896007977417433613770841466335615789991531264795554400532050426957033389780570094982404224772415800933697704105020754386913066200778901934915911550325856864433358118020805837550899507510298949423991743161223994995414164514059333223439642225813425271448100800375161639756955602486203949066782517950296324804944249622694895120632741298535122228463177076316873420763166790267559722910404762617333896011524858945117552867294515218624260707607081744239636637746223577647436322568229251790544477911977155424698526209060703753723741595638364417974860903930664854467644906487316819096576468619837957578597036886851917406004006142187378036001755588807171972422436246507788761751361479436970789429918670388454045140573333238523778051636498395899606507545450676188809554802787116420114565888211018624670413218283321362625871477420775672793078902372160181240670940226348476385391896898931599110269468471040099271714129303407057706032045814588047681633771818545816156159474952963096033788864476452262676137816949148421755782953932431932807733528501937705395303284245541226467330598368685928338313466949856211978693839025930853467507530809256180122108684572394520933543781447512415073619564587388564110360155714778266790534381632442858172684113529344275430349522427195350554726332782456598578363518863889900471071875111699495425734001955562728233347723062797389033525916116211166566157453464848845759087943405594947986502282160736308701151097842346704732617842822568486622247813441696769704518877206465704866664464492104732290050919111126772786757205882285885464140488758383568074150628779228539294333683509434620864369933136122759925083698769551871226571239851629951666941039219910739989208462596153009622557328833167896146377276453381880896945604457010976762635525907009607064042143278103588257094932901694082014929987411660835050006122172811149254975500530159581128067528096067244795161371860022011440007519150812004050291314567624441902511885555179566611750603672983881109099895232382189766880234353033968033731864648544057439349058846229894524921438098995269127803360361784074086250578386198786692600379880003313843823533219616068520990770982270804036791197204282975566253218141844099821689823439968548875866636356944265291471237288536867784553912115784568867985810583320361251914528428351268269660298405418026453416995422372676843844256893133971046456045996733059061511915156153542942502619083236086659404205183782146984021056979443225148308800591270333870121816569621695258176702773508462681582467970961552607289381572040275786886961746784569116480349347679024479606767638946971040638476923105187946689115050538197824052618059231472758845128513499157854458232067266954049854481515927527559702895109933360852745503537016967392643659973256515737137935183531289514293116944086526353075404331835171145295550958543261365158940438981338639467740956462877109323140041567413822111607126500465325756975251050001863897590894687542018383938679198768153650406778263861172828478077044440222330610251833684858630279707353009739112539647888320677200116144998015866890958417206310480223641921598984615158788480195961358831786197374319206951145118556026459737143055134327640630212818812688367008466404376711989057489672763781734312865176057681518831096267283776589846205148288477672398940250560949280229388438337558691468647717335174324880337273573982363667210335436596952890213853693066089870271934008774445877145204815888531173311670815589666803346940286473570649853777358364892864530658536952536810414068182082995642893746921592160066076984167593796684508528054996589062043062033623906527759895919891154635272951958712924022826871325029691120133485377774102478958850031503138756601434340846104043523178075834597429659679978473782492535118638231819909083626881800735943379713189023158931318453830278555735806068979861020570880821220272447000176683754294498099762251932220984212456919535322668963709188789995261089275337958273890785137524719901331647388102515859838182291302050647244078902786731644227761446743421590550371151127800786283356984882902137112204809461848858266460531901951525229200039284206492659601524327846710586820572819783753135097892101296979674259736279408081637620148631578065978018816653537264824343492138490520017479043958411560397848792784907228487348462649465629160053961973378463658182056139271664074736620015032347324421671910228391505839603281788574001262653608064302225220208803576601762750598299578778687057229532633566846503449902302021001738041226320344387564838048646650260411492342364059393474662468036638622867464463438480870635733722768995887563811637198769525094249353794967253010672675382463260578291066121699844822692070684589297182277956158547768866062057360083818669277034005897367824227276817674581704032299764588182442850786050208170910582000697631411009972441664908718162177864670500852689254700220569564538148847491900295265500369838020457094978283556975230572106314443465684915883401650335491559125540581481597985943798907843450265778638313318877457327804078088767414317752662949310215016313599322523678986911673529687066248819559934867403482740680561021310852346669620345980250036665038617712150386425056975247312201729415850910937482742160875753592204606093277414401604817878946313830357597533719305609324898671245414036069680894896038991633046262252762779927925136627156275405177473658407476924088670902283682257082814945642248816937707738223725420392346915503756108297192028180234388910542000497449403581967960218587509534104523718683541394585608569036357728942084291944891010819811451622148988070874316061917996257747672415941751290580670055294401395482636758683321127977161795885874293401062965665971827358613072078795964004666620763392716029124314929406290963085328287206564577544256803592561423485446242602027940707237541796258682013542242180775447877095289991988957830762944422994658948480423740405175409489262783989428232257103010961619249423626070141095954120708311087436111502692190829852998364932517719160327331977499456290834270535914319270961793775732853097670103051782546443222620523857935129859406862279434457909151057345095754542320268403152171548836450423754832128207673412919770773243188250289092012889564571805791965892197110516125089653985608151932808818528337085306792270553252898124667282335939288015983158802252002461293357199756911917788123934557916334014700076376337922200189596232876088382175069832223366293768747640457053622692916909512198478192920006568315813620015492742215956178339578637196118391461929280335926838538494235327199599523600709943416915458115453382156192817438061753795828154366221351200493495708949506657706900717256540575589013647039944753080441758063558519926231322641473566821444381102128831204076775088012075088319812971901092586183599684939103687285298260287357759614808943338566004854861994559896924257466884135488332626137424821291034254391885002801192145258362830315745777746560176330960690187577252541844353156369718165201916873594982539614581907848979681516671116537965996626227878160126650587858610332184232758754923793077728521191748351204225326349672897258502194343022991895567451868749177348947882013427635036668941867114081069374331360096518931170580612797206185629312195952532626478058503232528666335523467465570071225138521763759528735018855941580144285797868861123737980387372499060966310513192449092142003753208216895013344856437407962672276626781116628449565889509870341210602359064448440392335443360272684745621566962433650557193590676211291808003235095979272333361301149797267332939866741178321330626811470767014899046986817887298044720675199836390430703969337699769897627324488521838781744093832733954661438226724072747345086833571441990161805802479500454899938561679999017643295723896827383055395268211076112727043543842574603047668903398621194927467558092134350061335219142704608746262951007303257679744899139573355741242577508029338932163097493934263644122409124789438170203977908341089612859292100827515538813480885804261687816180783414285594216096502874246164400790296203153926109643687483636632542216140771127322204458185883744465663622900087336617835569133962264992621059733490787539594174150685172931260384687571283428950360707122595868025488929036553666185399857219212199670458560439214715903997342844061702869262822003896030375214317793215159451669787066524613128315962628510405645039429007152341394232676298423699787732567428907227721876169989989033586385279522619863865986668548084517592959596677306454845605954169515730994056211192531593615409053481944506637134108324932007262349003935750206885161750512480043581838973729458114064421970398169072864049460318078466914646531141025285217122471569171006368661565247672120950071133693716582027793686713411609436562405119494376700036252913798033428940925764569542665881507199236740588067842829430995718870689007666909882746617291350608473705710606679960070612646386700568870295507125730034075103403048622431010692539113974851261552835734206567974746216504026497905639097905650827431308185485541560261278607328063535057087902694907413788537201828506556901363395801128419845288650852153762849163330231394944909657797574073528554176190397705312270988958669345127615304771536609631607708989754613465527275041625030057004777270796259346656492524716880633472032274234274327148858575783930155833249575674321900823452739247350580190085458367519684643127001462052319422174170621620842254401555653380268542174462143414839851919524739176872252599109775129414805645628877588466751877901432135728586636252570124764546818430184203854713850474748445522025179612774226302047695933416905918815236085099798540646244525616995466323470898481521783015936010530768956880230824712230245143369020799631202507820528867547858844332790846123813587607211831736287343948837790403430717461590520418047652276736990480654326032883550427652162608134609152238293163384968417731076351105829400969058852922002423634280809572356454809280117007774055649345029767026830893861073946764388065664406721849092034743026535558258355442511892859194386220340266613801779274388897472210675532468507972734237821777692046497533640823544924725053423661489367800823275591616137736118672191778173754860865055797765528946725991191927538698683233784244267859625075164834419205636446421862657886211422420902410007766358538414519560830796227301471368384751415664099441321561168242216851231301053119960316130634145023932041279477698665976161138710853516252989039239205320803265879472423137749548646060935376469822204981681565155506942763654428039514140583020416980285334529989739851489460694705110119229786813567178888668502612129654766321992413720672896925888204449140352113597400889915735026403367453843795429374288117657777167525033545642825247761241011311854879786954717254522788611604833099951125877998395963646601144566309464903905835716792495749922364865425043202835876432917655965288704959891519566722105463276880895076994597112771420725550116639762398163727214105665876332311280700714298427075406346598142763083840438168789045186994770078033026747767954815462819648329966291847808664430495070917636731523430537368717557566221024540711147875527842313189462193942256249284071478599691732889164246903811040241038241439849141938438807396243586453093236461286659581303859333085677125442851512250813983145663110827521663768391814560110812170009310315704145802614801445760153299301802426361378693013695904385387623667303365545161135275044755536312369677136438111510128572885671310741868010566180387710667359550223212035475452662053480706084867765129686502760519783992986926326240638425220668195211616357124872443209412390523069683994168014058337415828523103193797734054786717634027224529884272793545375953771136793636494070274209724082746389250246406680918790007352339658803029154917692918628865279246634436045549002861176526902279124073289875913364543459680997348043486975038034281304647063265298514840814969761444429218257632823623315158293229889471281391795833853398031847506701554117369166832172615857919592171828418643831808231592412497087972177504816708614544618997551251793716261411195048401133197328835561102482303538071780173331755905874555628239382645798505805759983074076793135654336418129771364787444669501499895418591008152370349990129446814432255752112271555356585579795801908065141642705895556935417596803882258091729795676261874152003071449582593194290499192489037941023627266483389784526214105258100856466855046047399773722770360702688872177117442659278394245926493845239804139491423238318334663967720173337101003959666552218830397996208071512323659586921678021675949401357282560693552160502495714900958112211125197111214094128186398513238639747595795258292717075909221889844548929988289594146482959350470212776015323529122003097136667773356893764741180551580993099610178546494530405542846884489872925265814082620304450642938648172076708750823388983761687449774004408193658139211310470523299732143400155845870709577871245419251483655869609553038089243445647423566530756892085653465903461948224567109244299841218429434078230088628502095332933336194203134464985661417380654685686869654235528007812519742740780380079078342059589350923350742024463195570528236173741123004360104141008996964336409902380252194991941910453499617553921296278654989889785815058631063496881333088076063893118437267962841216117175546917342175337366891166046933551121684428878838145754429988360465870195973040335669116396050404881490894293394158667787101209619051269131301974454404217632395838731965761638769042685981693207564115656741806439430149959866740484970875698202561567073140492812757741949462734053833814352564331875963132513358682945151442129621846417197534492782366770165942892254356390069228358154071197739911125417595151086119343979659632317878839758469474239317168880209474108080674851867721722271732824761973991521484602426634572640191333020636157596579078285113160766173666463784077212810364618572395094158083662617520133139846670870305337469836645012093678461331017136081444339871952240682051832381367302918727870359357759700216759882950156864455852889227350485760707990834644557679490845394898531209629918052876324749476196056568281704661051832916278139638915212053601747541190885615424304265427070664283589618827116166846203538158616116661084022567430051180879245157149431868691969307907607294292621131567867011912954773475363828466015524559800815344884753726478196660426733506117226367176071512704033121535821392301679456201363630853567402811468080178179578231115412428070696988277186267403875641181742995152383816805952688773762097509430045075318826198411212188889119431986598830528548803358894681825295274188864344102363571508278296549146321886354904691445051026025253422746364411037833030834214986539222427174180163013289410164830690001803491322640247105399491574049351629526949317520736102535521789311013188537991543093087544890949328744063753890609743147910691355803247194424729054793699278844478564211726078227489532150678213080556886513712602974038452322468872255385609505409336951165200352318823267175431004468249167004132963492606611487803382552248760755243491066153138438776969289866925273040521962889972917705643173849546237839531706882534117738184021507397305136603123152295659990472534166639726815679858934967279897767553335541779862467874187189605224621493394863549372276294538070347538722296698143590370170058460209841682083943148222907379939422725733896674612623573866403618509628784302611242292302034195618215004967352563532158790302901313363183570826633771683837740505812411377854078857764929890638075212876657014697002006754990516380580136987461856267907137626937933885116993813855456193785834445813723023249398319449757497718728098790434256927511265819540732238659586058821179512513924515226879854280208679440343283601281022771299088731251089987352643036757749812828311247176326766922907542125354608309324185686385087393022008651797796629456394923967113927677614138619800872296224346892951584996020120990058598996265643551705842432032990820893991318911276668736526920857216292133490459302247462115778846445327674143693003314025753287021497187091226574646759397737115055641629939427518265961459094089349630705491992495119912539838551893671115762462025282539140068051519733889024490160797177588125926531077993097526953695289473924425850364325529258096566060163654458699022270861003509132864793008722830777519384815642640958397392907902877740629043061115605231972586366022054864820827229989079788679318212383277266913117328321782304937354344208770711813186737183410405183792784812894631454589069235059184586669557311742038231682299245731883160299412408571752751955671125805812973910728380205069491059693845530375597227949599934049116919357198997303883922078050529738481358680073690775246633032927121901143710320921119589384313183256178014355473738533408366387910812997677515173175652941383309302339000158326559687913180369153353320601007169444154965916256917411266425354536825050548155973787063162028898440208048515107545185911830365681882345305988299403137247707675566456989882963415133727151465315505811828321947391206510343905363748925958371624806885417324365778819798126113956995661716816427933548156550022210602503275679460960148688401174110918793857720440421886055453963763213453609391005627226241806100907474103785393202015237711140563324656891252277063382959699629014501373637000241668015729561419179339647971491451812745648067746812408049528846928976561417274244409233576707838454861791195132960380353470499768785980130548131327869907169269773121228965517933405266493407753483612224316755834658159038507653016349049273727317878410699101732868331496678744289770350882560348895310554730113780853583170142724932657499702660805612003968822933337883924324858439348314756088310691903171794941058544775537477990726418744067779916903043712217780422654123931196135364845412938762090682957301877514373788975452442355282154754198278370206901303490546432987613900574060938436730992439612085065441036987330461962428316425662222797107886438244038941406016731109982783379103519214995454194886310720610488833649282801072974355003238669828934844023273934876090417455625016575352833255466058994619213508936258502144691999556180151216134680640317025238165874275550964643657782723961820665370721806106012946336749544034799421843717871088305030352208345588176494596929908842747582467162560703718137605093646163592589161231732157102393314444943996879956224359658855491686317201482476536280973655372308246319355327370484397419394368146192306943154323410413229079015151302255925932254223784140022260901837764605637654696808668513372633875306984940038426201614423144918151260599402666638736421304809879951089858733644868171159266549598934629013533665125813597906553005143314318523371646766119469065671181413345486833885260097901913331683294978091987297930621558247295439062811466352466800030837756119625738144879721773317256998709611834693624303204575422927736393005392554949432542912868807715559271157998708361968329970488067358105778715032985046817085180621987667266200647785578255613851397346358477684905281515624142134107558387926673141155779708577134241945097850626581819210423041946004216743312730086672757280769493629790504002386585177048413546800443495716228940907897875598291199356241134765009515797560927354032615375681772287268264366804355120545861914171486183201437498667978533503631287376649777739135423730656633279874632060167406053317821412330042565646668818439495170824142779320402627888764514568383548005275866256154892436297002031212140560309217428441041381161934838061995106429465187670668522506331441140383481695445857474770553198002829211130282027413416214719908430995210288557051434809015293969369266563690176220978457700446771346065767183585935215527339466615001835635659681660105356998656799846137920046689227006559443462014485225507289541645450647165926556943482100131525674979379013464568146856898305553370699346965110407760174619489777882594606319915278307904315271672475591982911047155329316938848139117162431399686115717261107253708704723638084373623038520393922916761839586008459024962139136351266222064966420893984339010977801770375365365475089201601415539965704601534752311187810734877620628486558387300786271096810105564230574223073590453063512993758441897705087817224415007706348579378767219199730120858758243703462373099893344981539107864984302326581407802896980986536716985297023304034898162328548665536154155584903002563075171136352943800744535612349289016613730091554693416127767231141448307890133896766991652573316190590236224680865061022437422344545223433862959359259403894088607870367838976000704311922730099487603609809178109728912362059283200550288919697819295273911091616817814121240425135285228776252105554913414860289308709056279608984839690502253767311289598468453574957801420708024454083713648590682667980100986236074454474542414313684484453627702739730107001805155571706664526645441425379763660850657859924692687931170332711801793971195474101532279370955144690018264272628356212284114234266252598390600050970449642066949708042388533089827853270889370519370690801497743570627925095569442139618666229506727501001794272341390431659779110140222674388239760143247526075662053602734865792622230194248764304723870331915883666540987693488437381189319475626241451819688199099626568959637990369233840735199079408453322576047250177991123198738271253446244897818733591418292327709442108700857432246310606932066333279250260587196330507990640230925593738044675166779857180624076852768912737067707174407008630459715893116686482486082505737222976870110587851482682923013597669572153421172476346347600803047485692055197224375244851895504011193461104057430741761363083054975144942360835093044568152396274093560458968417821940827596359727868527181201237297136985530008016286898122076379404503751325257406281276550104019638499525511633893718119898658558778260681349667789352567146668704817209453305713789220095277140900606931722702862885115817697629880231814605522814086281403109202858531374599012795394593093042373380542640051177026999916269069283544894079415498754391659762032317898677800873609622473787775514382870614958376118836178754166376784105807761944006469377357061165984767281658219739839839159285498566553198036342891425040890685943658294690544465499535901923988108706767545865005588089372706787488580017433971709725620316436184989091510827593496871580751735174264285289109397675447555212179817969526017706463883560184447029730917108487808347176522465151643549007149176069908980108081785106498642721935701985099222160543918262271952742592056262849374965027492782643030584494982627841178195181608870463074166190437460808625786352040671750375288956105645766369531824370785520205484692262606063321064679548346534916907365122151889702683930474065863715813212512076605154736983777182185814277619456640134186605000111818280549878329829522121654630137317966687163101330555805328877433318664032047102339364530051395453154875047307732734190625709397305976123338868127676299805103749393463667298261820169181669561492478946077867168426996516916006943137833483430721370601077993898877912199085999732970102065446535885089934213342688729209094150704192830302128941091053715001307379170425691365422527598954787962991639655966991717431581852618485782192460681839051396899595310583794172770903013264396071691054943989021264195526626767455756009762984377110928280633487726398655299343743217744041200619273618829856037034154851562386991893625082560220484968882744748473838959061956125451186224407306353366357324820009668724401481831184172621677091599976013223738325273649892092372231073637148238643277898668414205451973392737135154014122097782857591982127739261086343907736742168880490350305756785085882343233263946346404421797293784351217326020425965115311365414190329484457632320828219512853479280493010080804944484112342112697397965592059220713510449108285882872578205259748632275659893913310483735994358515180419360770323849299680797456117646327059722881742553112557480309164363527701068189016033290737865730321020241840994701844751748738297880653009856063919942544883458982416541696360682799535458585901177203494462603254776356754705190641527964568276477847289166092597268883206736438311046534054939168120912702712470225443438434244596332825115320411657942025445391682732372410883525858001369913221455194101116389414846106645236612226148568575738231981145088277520205691509904940464273926955242524801890125928676657539208897975771620323082154382452031648629785776647949845884557132215012119014907316265793920052405762164991393766817116885674491926193037241347445660435381976842349441996215319945464044538433121527527648208368058158425094187669431070563148778581702972536637448503260332716002861666201036865778743419043346631845103570110919760548589688890994825860657175091549461863166261125578920587075903309886127101273147248380379614748977150702938626974639637349959715122731720539682150897811048722728114448383502149617705806525808809344540558067500951567648444606264125228334300152299552892877475801259567081251603474470947198779459711043355319025811158923384995244355090249865749829455710730483266313748062648778307848208742067335037367279310021306950674881217421997062002179523310709130995029932316585225017404653780798555185209269315087717863571621882337389083764434891418869386103302039911673234153514389601874293974545508013192648080261985078910489905968655195198879515867902013503280496634022792025652532988532423533313887749798142395947501952277073658638517503730005782175188833307034566833009858111103373578054003862143963174469285298892150270685018390666983812337072904518990849992447368279279747206684204457676184847590436201176728241679680748310352471579198364750958075177584672714148633272563873521873541288971124530970485117855823394253013802898362717039402628611946880657183305397715734178243777643431819885020145094573021431680233815860230429593902215922500290370647870020802975511380240185388896469317668610026884934970611101674606279646974590926267834905525640820348164019870623257574043944925917800032488319684167957000767647309043804127014031009724426697064730452216850560304782463345184509979757022951425465079753873268269749860603602796644836182171321564162430804009447643468269710295413700878965382319831331648546721924358128000689914299063336942894000552655524795023586623367353650089023324794392425280607236492371517561307584539770151097097054905615833565578402232578336950883148225919909883541276532250225136759214285553222797392684882022005903160016183118226154612517906007244164944468580990996655261670570996330150736672439614045250830595044951658181559120877611545814079628384618726410310941422938858526579915876720728948567569147191391065300131041710520178824098552850129820929244570324684182288687866836796322843039931655938622602911212353382402423374573102604821856698741207035014309176024296335466674702202029580270239158394200650602017167847145133815863868811080702892548546330314589497244636562342886875890917632581076674321610801472145201146482743802903350452561879033131573592197894751717900700167403580616867559979080937465924916874294440620702444159890106426801097561572920255172375743586874937180524146147030333843816857354597067471177772697827384503414246682927364720435491358879120523399024536000820013999427954432969132908767038262221660611606953637873084075080619655481226426439947652768532542400440873329796065966047424274501433146467507171556224777291103801525141933803398748883249248487948697037220786502670889805873374921999759915471348122039007544013041665849588653462205478399992638280101781051261095648410112146659534661558383527343141353658815295049416283815548252843777416341883423928787457762799216057643137670597774289913465201137871977182023126507088070721686286019725889730693527563507727853864547255362677287661561021089326277157025102480221532914108166837530371636730031161932409168621851234690967109871297560763085919956165322980962683377719729324703636522980543987982426260811315597177361708983643173246259428349606944737732221560882345276369918843652376792225333757500783028856842463964617295828119338086015666964442342935900894374623005170125479846115641058452632159314257874047196902203366673754214008271698746803717148690409125491357716880202663603711435648617608180411930019248843129758582477740676008384464216768462676430698254150195453242694190418156800587950390711242980401060332675704133210009900969903167479077121433693084419871966471234750387802289260511310996323161122294694392988233474519094154495437413909320193897467467399931287905758926886072164269599274780135820318348168356435930039722985708225292538700266847739133518136452704142745950969080653502154933660622552028879242993818144335450150021860883015352748950085822537857721619782720878750336868879318700926148971973761323454843928513831999752650755975271245548793556550644040249515215880614478190092108322982264700710787960516385214861577059930782691568083341740546437903328303268168522514911318118971200336090677550555263793779125726351504438786953388761304686422459989368222885026750126654618487365393199198540562011037702018469762883295613433609839624134986067120183770750249191506017486328253890939714120884689830162134122287871440693042242925992534115995512147748324197969848543503209826502260214227194474370289379627891459365097939739327850157678418527026052089597381158020118214834876582229909810398024144211432792331737997342788952174502132334611615495756465730022740898941732789503858743637840712921186059129032155181089341005597806972746176309144673304076109995926040568402624824739919648443809353904760555367049218625858488783509642821517716800196829376606532899551967989842592772511800604169222449305284887666184455176156311474749630696016659953083086485663811993868297486114866060044779180532370788710600774396712129447188077280532926239653760024074750522723868129103781090230342289864434738607160659960779995820065071629828103571483289194002217337247377119006107472018437251219163321120004254118924163245140937941300725381210377711218304672804464190113229178880540979341805203273575795203846814014808708107857984848769692279306074505077560067261506014454734574857179422053209598228997398331169168983657020400581712532027849100012871804917973845460710126023650709448789516548299566212981096987508741027414545754717311399943157892757632707553575173775114867737065115709475065872111961165606593346708967307200471936687652070014890108242653531853570695637509557452015585975276038750880707958731204089209877287411680015800958458361314732288339803153062751898773943476959117439486926013756458241980178433642973488385877016401523453631405076683574897443002537134867378493913629398547913470880545230535194151925941253218123824056670029790488932506862284962018558360340176076189053229112343760093621685015842610148782305697908769787723472981853258585240204946722573451316027437263304181721322967217508885984822380095585573887857324668349946961793863290769706561178577686764759198617116681409691430365938828173953166235150988087445965156995184472256649717444676387330425432008623635292709089565875764182167287628335312073956594454893005771993035663504647415229457478411186730862573588475516768352619199279670065882462070894720276519470342613582044071059077745877947507198122127550077745368549900466390487323083612999186242210681921808774064141691757106431621803535088257724502734190066004372110761614975972583688908459323328931234024489924946729032619080143947468268697248229194579821086864927347286941302117072274067795029517362379214414665517298641340959072509072344135347082715701364500901364913498157317615525788918272605443783030086474865563935716472749889999091927969990680623801099832581335294664008364891973718894389380683659976902524513701019368185227638755469981638228360183600323212141160498247250901958211991556640508710732666073488137462148242301443576453825649106690995344362446217985909714271163681471951038582328995276123764526663014170282724968744940322593510891945788221641263434620649429696021094649740130265205439102966680278095269167991359399903127434068186937168905083011329467308562296791911970347716855102505580017663548976879005604996765170120246111408805461029037670989674123916531497865037371788261981678323294961270343823506725378361491584735647853621278398889197797540359920018286390003441383821213528579951339229763967156059167764505961116494649094916352900700908927453286062874649746071082173987341426505673177940860102037609540399599241163046308713087987242553514670811541051032781840496486711892716629395357271913982344428207575630896134314616163714946934205450550602439168667874170919444399212484956436480816200081070832894714913551759357534471753916803293756198221685382387008075392277661974148266461931416750024375921223992935027280005511525393035299991511355123509305282408856134127646925488644170061631464235222309697070365726631510880912616016631284732822141843807403741305667087936157977256777170219567833799118663145913451526438521607928280770632794839048807812319314439378098107286466086011977976183878567987447129824609179872835512203909173049937762477236583869355104928357084800816592693501578727240988575289626931859134968405473857655688895632308903647437834234208321368944293015620371666071137762578829201459303307404735195077461750757336490019017022863005622201074545657537523288933150311279842899207045796574699263067420131705438565535174990139639074945844972077781275788429897877435650575702092051860495114711880844938900066305874732317239887555187690614326778938920428915844080944356052309318326867779610879858644497176294642018052744393347793799205338063711476703624934446440563790294760980384567428942874759817860722189096121345297341238794540911834969098105435235728734877538023989503296849453539958793388141812555164372763625041796576782101073573929690887296178116990276012365242582422666256163103916647903082014391036421367203574188555349048556806517975141437715258699333378064071029816036211199627700848062304998092541510839026759364483706849536389235455662831984800668535076920655008469313762817910818223805339722993973473632092131650437095692627218705559516242618629764648958787331480170191886534659922228067088007324745992665543943050729767829992466710539374222493129420930973428672509402897132005702512793045678873395980083331396143780257920456901055381273666923296114213454931369734651939707004273428083933776480598757155611667823423525703222718600712968279558509701958104536778318045668729214348245069980459589265891308470205024137904959720621144886956032850062207289901764085680177636129205995212193624509342972010756525071832436455517707638481453664199976165881952253839164974544688893463470276676212063794665589397133129385560138978173279013754004974157270100685621597514961754817696663150277845363279249407018388956001874226517667577121908100316382482763782185004280943777204638330400484697169222200009861573096442127513496146838237011736660615053624128357162230649424928862484601407155986282372136142437642661665047225096598620138931982115982666860525231575625416424968608392725010831557702048242993807920477059867479811586248322708912108771670288224050350113231409193793563815380763386997121440256828466231305589683687982075234089671815663044452669186916673354029962937143815024183820674057243446078970788709917868308525630434572971415624210735350528912683045664727908485835680235633889770665299656188653723960192185491671527974894763877763762896227981217535036606364618142448851178579608580900682599176222715454771544083625754489987269773866774315004748890392992652376670934773938731246865771442899599743646893687579547664353588869857207095616475866060564623133221029379917711658110385374834711362169897628879256923494350284923739203619183208887466516249524693831644372488524497064819624529304267295766317592261184576980564273994498272955296379889604245349868279322066835117601493784044518259944260551836607197356504898096426548367613945400685479936933240353244996346292255910240955670565188550254091986710873586109408933039826788727397245807253960281438233064964522134857932108815661845825731261590521929760980181606444852543531687059332675701347228580197840061536739128830378176356463976133152834992760293057871142682271082166024577804475642145423311315139921477475512039654479808930140010517414260265939290750373230437572502991324890781483563266770299747691896278458939542564764035479657191046666953226096787139739881674979859549972879456142607456700147808854711710099870437457259017699003496827473824951872297561553693904488535691823405727087472918871283281880253648744018094177725841959442752889801007148733547481403451402735021168329005013077231425197690308819824420379203457821352476736893336131675824283335343745357380441446239364507280199470653367739671401622463461175807725601715990408729124135262467786177965293073730903091987604236469134046931396329031140438590372436107516801028451967400199002441687094914426703581181544187085554457239073955269742139725151889665243754963094402773884135089983714646811288502341044941082050348757967567602918321239506832253806025043719062119666545106006618693912231445825058943054215650536664614786071413280579377293119378099068786552286707248877492317095772789455455787262448602716412629851463394349201682050227391487528072390483533743887785450417362581679173151390753157483823678385860763842825158596333720978436068924465468659905743771003280914656984485346523176859231696870378210566013028833248693973443383112723447785196210987301500434607183163383541506968308645495252364159287608502183803642589306071127884351715923645687620387644817647939760371173388414662591423366706848087027014553679804689673437160998627025774893643873970990244326791483336205895792210141083136026488227564320062622446076087708263857919700818086748648188373910548165506274263941481817087154147242273191785650730120052001839666367464929081849450570102065447949024786263204436877556351305356236346562423680789223914601520587806614664831482620214340085396490169894886271946292145899638367690612995739419683717662849237147645443381126839009679259911932811562447671155383043666368798699599146998108137114480210380775570206319113022475725847084604994888692618309154116015555496163885204813077934964978734264208797707087567040532177124470614156592264161620713028294912539144197953840486236259120017070823546194248943108597976799291392980875419704628718967899655420924477266534575724857489888122881556436969908075942183786147969755327783930194718395889233212443637606577813852313976791470012181308119200363296284941524829902406963891262168483956143511518523970940584515830036119748086606473979769181102976548762405714744898192510753997969939025159640574835503281023204274500906821410413185380646448581485206333825119076312468147641286302188391505198617619087555421575430272133727106004208920918526083603864718641654503426465619317839214232168527158659344563442769282024537044545757807414601479663208582473017483392676560545744232415242563821018691823071374519722698801032348531432239277120911466407071154016886473053053032934557035944908952876493059390246539755693813633989955751111456932382765421154048952694760203025516378044372303862220882597209113740045340958963024924394911758006749522786796575233213558648621828621113362638530551534026281563067097660575073057563725451668329922264522503917819880385676628444052416942433646935237529499736271478304433804006575577803336731868027984048009386596213597295255306789784409825933782873186602593629456317668887939972326052239646055757577740055729575400583165342950236008533213376524122266530971099675659313835050230998581306112463102663454104512159973285980625484755625640473468849641785438977809358019448770638754619745610645545237641703097958085857888458136364735311953139823281757450136080732978088919517156436961835197795338395004479149751141716660280135265538940575110362635259272556090534691741533898215414788547182869325122732014155618002900862815025611928245186718100950544512290022682357964450629369146505945957429000122344434235709361608785557486910404354600773863255172215308162491785479046274669114184864430463100035357044343200463158364445802769250253275374305856443989551973480254594974371544170759902362705161818131933078981423803404560534692106105501474520465440862649663999776112789535150579407885180575991863598273122462485951247149977282469157575177839359543756128477401883537769166882256914993214422852215124812778300506150262498508869577468337313129051204302725771349622351498232739571184248864259790558514519430421537342280155696701114778193053341202912500413915899275672792483165268969649147038743105569589561494402725703577881457766701139560992984591692601442154256978736450668779450411888586243260839135632438452634249563689452392335035090481957277635044875773287588342744963550074051055828013606527728706545941835968319059440511111376241685139295031835672033651323457692223040348555706193712070800622821174290206111957478433023617282737045119912648732356763607974291582672290807772258102179099658880417878877213893621517564843767577175335069747956574446891759018439132525300935036671701151257541190513304591215516547385651087837470117241041948908264525570919828610475288674234952899448932263756763557474278862459337408653806512401477281112225140548964727220324536135522050941973228484546825331015579716528198719638059374747888222652132165315324180037076983503503580310249242683655488855871999176551893262073754542424265004342639971849610214530259307821082188439522650588891181345489846662655034419777388538453994918822589739013734893048936228760690652323838497764104047291114343635662006620694910251347994170017981550249835961121975197333635812076878255694940611384999768363286133764342521318154277232006317853376165941736862154155283601868144393830722641311356414143338406225155957946568635416924242383046951570763786562766829495923943975507013559177536883156190691286793055407261432799239614032217843240640577940064975229475556672170188611152693656502625884176652750382470350079016079678801139231527424253399178071181890670210969859722096203970871291266965674418195548059262436073637280065250472395141116012012609394867917859462428842683696265773671441777191753984072596392715578113888879515785153583919249787777995257104965850288014395646993047484061733645432568340486521492365048720505615776832684440916980767515037910327652263213553159618865697873526745256715854184263656038652252727429829876026239875784484386095832184006698726820371891246393838423622053547280025382309191708831325374181013105673704053521213089035487478118581196781157421888674376596813108684564451068646493752830980196711917481030098835516660419668729003918610089817153810560973162583225241244450116846369938865010064064614019237864036898069105425059606309269272813572596825318703339889506141600419474558909857156221028599444236771618835367546121423011572601295113426446086323565222771757644093259002678988484301123538736872673169545902206245434641153150274074717349346170756486684099486825991359051924866117714784932774032270317797432997368970734689744171794223875524684832745581883017525063129239293728476361647886425035128898934896633043480928971755989808111430331695611784300999637102289631891767037617057606676112191953528137259772240214200162423050791510790970777116612693798034403935961619634477190437656206605034858312089270144459225843895884003399081070685965548365473299627362892227087736195726889145535252962161339466996822200011533061204309366843931397508489934739709521599788004379843015219333059049661135801046771495152896283093128227199403076314261823453171428328220008504286937296296070342411825659535842992102986924411735133619263074659048187040717629767677739010606416667899135515141473206558058596907368833904061484179445790707699339777356142466866392371135269471006222338188737657890318761251513546862423481619908354277321960682794339752630338217712440229762946730029050677748019311635974631654802462349439626434688084800315070418348250932357350486696792917143848312001027050975636498518714995069159116762172131638506318921842949473364344556663961216428613756063322217984286851948796488499242319496812948311725547842823316182141412105995717225436857264964316591392622271952786538604443399646269676795253710986566852301164958638454193829273022530739730598313100098924347718146976735638947601766327326940039462352623571994938210806807773755650254025345608754170775116215208638561822842596490004785530245339471833208660971888173007381568641935545672874675987307543331942548419672359115040680393051663426613628403237485175305336067661143964537097733285987134181556306709909205664245564242497266786572457525401027785857999664146393187484814737358837899194344717089684663089830192443895800004577231563213288411669076234543638669840161073068266679558384287825321803094422166426030416712435225333697960699536859409790550587661602734351234204593968494926996882328971137012072792694005911303900272881607274799630932259564300407548670282693884076812815607245205524742945530428900291221557606975073780310330632349220356537449721342587720861827851321581074372099966286371129773643833024588129123922390555729824661015456301203822427695378849491671955644727189650036984612734545785835672810870018002498405065639641839986837045429607911123315968861887272126952105826739679715502428625534293055065792456708179680491664058771683702922497103296245991120679212923575689753521566101932790396384919873417440943775566465832922680761230086244334335704865226026606500335170468570592149777901967142271080987542790618362851036407412827741242853624103479760022569141711869638688710341253040425223739553340874769956521834284710490165400979238718775704574452536270067878549265769580614732579487792098093011241765837450499235179125107996005078446373880959521258660176684037687089973398851962734844551283724962481656456159937341052221354268136462873285673007269265686385714714568310978162712124512490573714680297686980330231773072878288436030366342564235828122723380739164497307056941657975966716383529399796781935189477198485965267301471918506130985214287313037508207216660579809216801248550939370916570815958044275803172116513652730218683563313106568013245724233060064512523469949653966817702967483786640229680359531934615605212797212741633299453020696906773329386050520743135898427333107943668549648200644508051194559931935071310188835761666319180821107048365730227060756913631994723144617092072576088719118523776650986859195484034171130334738762920942028799847963010456218853737839232143793567419946945891607581125211894718845044950334915789822112708509124973425147672561287074298967030955391995545398437320754361505978029856802688959854084232089714238311112205571828643651155870033280643172802116757270644849404781691036292605006237561940006781721221473688231094495155506826282101819760497986895366297040903945805155563247527605859290435579731876949930749215945597417807937290267381203537840811625794363365653014447871529422645695569464396776865693098544805007880541467971649541227561251541966111816605662920014332028457550588137961953542793622299899813598230980113991763243018386106103212571214051552100625617241364393605879153095822425238097671824235315872361408362646917567631059121568947414337725020975857294030241962720662465498933599924833460278947719597703463834208887976261325912068945271369099231660052827547752138571092275620173208420703206163261531499713421562084853192301823216863415286424700959253522212655692900879342349673208484202515737538264919980942209072466721158498633071724863574584038100589219456978051794429496242918171312986402126253372441587515871112838128042138689722131024058149430156388531698951157499947710412925240235744600049314463859904329323635242254661868184656877458533855786833527239248557291186064533646136357742864092327826753889019911194121461683591935835022454534605800372497894719895102312317249341453791144511588187661535583837787221360542406056799268670282214053449180791514322836897105572448931873344303623807932687422985772107436139026864381869722713377527254065034724850192125171714162789244548616672132971875765818191229378485438175486726512919396597615881042322911810529503241123132114592548642165379986239706350046894357344099983453692544899492123455589499699354389736590097661014969174517177757216493298515345104739616716120942439701080934482393445998343232060551223138677010017208717964112685229105261421880873902533264168931989584667069771911032033920988528386705664534301188732707446776411537502342840767782147687244186756696479241341618118979827258893105116130837331393266630006198568713290677861840850534081401256771585797554146807131536637516879660451893214474637446417926857441320863802297682499496893871560416246152541648589409237925921289170354523190383771218225388888742721766048766144964556373631320519498665468837186297345741109157489573019624179337846710721806969506195184929797924130675784282187354255040858404562782210900920330416299915305729374003670820156772001801194081606714123804358307863344778257336416951586082560453969273634150129775975142429167164278105634662629110481077291890103208882391085860551847115545827217081391478048751547250146944486159390345912928873840057386026739467644279946782859426567300280209297842977200472264116933103887894861679640259830264922931003593862575947113625376480328727936860449794095130742241924344043184313249127952296998184813240658179701729742198481960698525032288870681079745290774081437658720843354682190973257324595836617258856856265573422216427856385038739305538983840707753423785165252954928579613290742449561022405283524394815446974797043206369770216936049649547107403454496669771818492806275269092628753138497996421569577139996983985641068760093625170689948857023456344952068484950214207158427576501039067733386965969145607988112454207341592671315298626317342441136839477814877447032174671233072909510880699351506068348035550728808367839964293920632994754651148754850435435515286305116137034045757591221470066321247094184194434322979366953525111828491792996389443838472492729356395272519476625948006571676788616480756858410523609682931969097585426739001187190754832664309839255497385535558955675623366527310387626631389716047613194202825838463766011867679187360185848920618622689531208733278394553346318143736384291269767675458985300110080015018070497404617515770405058933438031345033229594600699686745217516794300057033781103707590492590847202934292341492301695085565962450189395439044081201969532247217963231169954906084569151743050952466101149782055983643130106936260253887933856351139257187052808258396263281558849126092649163522467240708385855329262823542123658669996264193376035850433597952748751012698648428371667875423647638348669256451554824228061005847705473309171733513836577238941916299602387746216650448276065137015407954002690198350020246401113483485404342538205076122395006289178919089113148245593176104147014379658203356933579466838701791437391041563568269405494816365295174372237494718191824110955016640074598805151217651609910617031418525224522109080980181149312008607083921594400101266379579623763261904997861685560972218918285583513150295313626335726397251199408664466512130955953441879413537029251324635504625837777957696054011950455483831579596201653810600497412692945359446713698264136988274442460706786699208580350105514572006254299901188698638087220493239268986928054484933994529282615643096881924983907881104166100423619934899846142422542458446111971419462895033764729389716823295243337266385696041193737283137171693463999790290414103443732259151417759148593972387033069396753244342338872091737545585894406974460810395164943209920376432293131342459115535370066176885523146565694902712757454015042098088067380985270500597278697025488684926133143155063584780480862603311981884031197394690596206865577775151084255158358980414873432865122468783305707086846540459265166235038550193588465315044689404447577799513307419441960458553530920188523401374944880154053523142677160199286973575371029939806957873914050878026544506649930708953443824100507505378290596149514658605214292863539628238793966650725078290096842932646637884515404573091825764111322662041086236747468524534378557447301414667653123677569530093149047024226984694784562506728050382218718695640756378862460198101108958196899300656134064322380521026707855684948456340958578701086427449401534741595146193223168381171234449070970207735905201317337351140822937821646465201785912685714193003364256813252154758396266890770030333997829210528062438148260443405439150999077988693142050766595626060578124728080821350254080152399838257565693872487176067785012441940038163205300751868182952477832739757088571716830865597622675895826145791948503908671953853988469785437206852751189499715790656889079256611712533752354002376997166842531628326641601434207026170378823032187345473403323320121943210342206487158961914914868978682107852110662254360229990490773968027419834017743423170727999461577835751684490622558589290304743630381998465283804551868041237204761086443383977120151071708151401059976133507910558480271679823364932954398161974159862705221343307616684096372958577591722266315939131792771396016194166842996426550736350462934392930524703949367188567729085914604008557844083172166025865344595402451259267095759461774315229876481191964457408925051520953860147573920920499452012041108168110781296056275753135763870552205694389624155003302845138397384657223388539787284845547270991314233573088589164979074158518266851021886640932826034831080856146448338187560998281848045873744669203235567335605268114806805213883734104870913950594755575971383035182036591437790000914475366946259754411553460383527086867862481677373152974820939027052084756672697338827398630884068792411182504781673495979689753097708153227001978229613174736287616742281606740020364072946655541753535080527137648294362414557714480146997911181250714952841852383737903050766428825354926486745579717399795786845810875211277032580285068791775658618264825633003174864897393653968246960484248401513283385624013323527755610899662641241639706411255415027658075866653690641960060914162226189610270638652076745982960298546778135668577823239150305757986167037688575130616419242099356633963927102325902821796505559039848539834359953903690085844408673167652146419655890388694621999975141052539960460360406293500699458224301443355139869095437281087722270000695093229002202613242555916973103904093298930917990974986447679254559355352263842759640144801436937704814070686717143616560636190711869749211226982070975733153868496557366165259899152181566504384526176919157718817236419206939803436238946542226680852646887639505873940308885048618898671682298984682574660498802689630362830572451905641844962333769481745997230069449382418354294441968897694649238632896069346709353851279306401795026405353713816522657790997747666328773729589798590968580967495569941003703265930683867307441612427636551067521207476609407837887289272424135440235644912563835406345484273888849382040869390443331143164571696489442504135393235083090288638239371200341100179975660714476113851207968672365383454782620423427339663699512216490918415847559803508672667394360849775685277788218121995448863210052015787218734957801731281879858571199946542321886812652282419690149911270917286185862487132189801586016925062888601833005611885463229488678847742612298752235313012761771526045683061606705038527479746743178269918488151625641111444111998962912470719216393774063137033293872129904488208606983500894778601964337277302355810531851730179868944249006595249045729349148474758053287600956508394557403644762925297104225622463280128854440195058874501178698668395919087059322132546997294704672932079320760635153139213073079465693479874228791855949717045059078163760693505113683657754849966126438212123992257017070235100614480206836233451380367670938475546209859019909189016835878744744176697369503597722706347894376807111897682458590521915623809051064297568696210490978855039325730966713007371051438232085919848864401735263999957917339796943305358944121602581429740867595978663759791008782328192508848388578869330040186627697259450524038359446625220582460717019953902399196771074050667450664225471556623858685432093543614518231445701439515746259085159674541902572989903547561517823719559507091948133584965564408493724482694213474340397360015258594946764750419280108792493901167112517322508054244723849154937577370384414798697410068120346963636079085265818290141542950876238147840219407655064655765859394524136737319998244880233870409884876470922293135930083814132673303112050229708931957473109286283078924580073240454140986415891176348675538311917292848064032799729463391979746785525067880061021741140067802068702718167465093274770060890688622230245583321835173262999814911650125498141338393146995633458707355924728394360197399652217518970766483608390673034198729080270855793037589882213163923287408487979870161690786149004058475891474720137100326246761669309280180736384772943394097896710962765804136174419592398344733623259315320092100348692501138115480198341581061906488707033423881526023383562343549911634109107256848807776786453134152387795859559288330576712375838639316363671460881449091906461201115592872061580973412894346332982986492029761226105025412021673671805752732850920808379568454849391694804663874018774141222194832687118013218716181402830731362896340450673575598762295050810115659862693222438212093484364550415584300313128909188072538190437886977389691823279240847665013556607204161462489559500345584390006726539580848082096909837568366898421447568063369622720045574111798806862341767873421229663554212695723807463660222802387617811705251008281180259398068484424116743370422260362336555980569968772015202898478412134200419108291345398711105409610051854898963362077073124549227567382109951992350038418055954949207519293116381025903501118522644429696577024938711866541867103856656123581152041074342625464159283644556927157346123061383672156516998973575480714287231961043674151926481688791072535724383733816186796371133577932561743280992740274233455269968106611906923052992697594993789829157068073978373958477536584508486449368884224941347886691207976117186723456495491940036800433311827105980909460877881086142023318382653011527060612605263409038957859051373437992326332437009531366684822050149471779506113904579488689419583274423429037643076122576585838944649331395519403498301378773642551727919411757600629262448767797750652837789440439102772895305331142436694123472579473754417278645475126969014262470239119003091273913713234653968778526174325382838734145337569516226761905393771475680115898808745020864306615821101674557064631469014334374894211995135790839039606821244061608187329210046028036473338583795306497080219038985114001890524708881846471874785305710479389529220462719931699297177135621461010050348699422480863820167316609906219501784598177269906182823147707305573698433901167550408006129846599795950916793549472516639687573417542573512207696561133880729179629950675740103398858561932303546381158796566617103829684355294398700397265832900652407462664175360427563509647979717788859855751764235977166893253824655341149896338128307547717484924238242377710618900865449558312111151860173628396367261731718716133424992065200876443432110174039271468789567366679519074596702273098823704667099619607861154498546498339335871666048881953738033941266312580287148324799079574209001260796549239791416664732828294038018095384716691718710951122119432362423869222797830812565982790318890682639260885974114351737929044811562656261454097972860284475065750127831962254542786030211424887863985023308671584024169784884129432750753160638588520972259820296472271776653245127746642325505188043349070196643977282337303920727972958165262319614807013585201138215153130844222723528126608628328364649707772248371300593940493506530394147367580714463544752720916282361258591243807178230534432270674688789460220983631060488771965914571692915439481822146715901276212369880678901220617713099996980759312092138355692327320116319998478834926790510052397098389969479635470492469037922562999867419152568028027970983921898237326516674029172145277922041257116550626518368506220299410612310733220636979680447470868783981615378465111755832595931189721187210617052830677843264654241243189436625241357438871458632363490850263167068330493589889339636165590922536667199882428262172187293453520669162388390962769106113197946622679228696603733901192017658367837134797810315527395865130896515538628704847327478133956431317911865204393678164581464217274822009444968094282638055121180965024659540755983802313771232059686001644756724349433850534070545388606533934377665304724621608982877173861768390422167459327618764657751131859736243486208860863807957835147706375895927273054801968391104017172003701821971860657310896759077419011489739143458249964443770533183882723325379574453997455969057910972637662371472329963213743860935281418296392912190288866304025006775490003827840889982182283296631757161346072315393372752097275154870020571199789898989210295489171379281172258273576961587147962642252654593012434679279557188895405811185315029293571219936083554465258225340298099866712404561030032896177323335988060487302692674200213559825410454143712707506421038966354096472448853040851027033028688046664651970683799631222512752030601321560249793150108370072117709097374343075865354094343941557316667082554115198604690036561191942225108961619341079095643499633280337957662738657388115746858018955825163684497290994859048194938215379247819464906437420965102439257305423715804455343636039495517979120976439290254341833246034938106744461954542119100430600344794312936295369566771445124935407071350921726924727916922881467748450073532603206594383334113103110011642960837096204430936122128618437171568658983388142090188593433046536229554453015615868989953182903220567628531123521970992856278861397284956166854297612804581173031662815711507559395225740682651131309129472575806464484276691125455366265596597952040991786075321987468784097378658512867612133883641382673598334055361144390612715871689049834092937314542258121532212759187704741789497611715185785017692311684770535669036141749167926577122207854151964556337174056894702450933903782697207898439704850980580842399669581269949536759426405044605130540823475762340208461579840992570510804194508796551460866163005137055180473716200474459299495572963299608847101601408110696784991634428987317238281899299064338740917892675838151166516815854154366663135890186485558311852224940878642996078723693758748519701367786941243047358204196400829535449261910754268873186375128134730302205246505411949407887536805683027243446291998604015892359626633158269459819245993846578307358460121027667944290479729642615766040809473811305879951225820609952009469633322705962852798588549955195527810286660111440931019027197452241999750650658860603924004834330424944040220440042247362080821864558626709049408294668714925713530648329592745592204074616344324908867311460070258084344749324287744706009245046291617487523366074087233260264669047726050498998636582455832835190082143334596485880959701684040182149866620593472741255502563457313652620089255584585158544048885653629912714083959727201991653695493344622956202717761289574888971898016863299809463898356953449462934196842007137206717104225908197598498248191251715244381409571976357257151967372020791443237009954335864578703605575487188419985831657759674965008747731887017501029380694419178280498158394781258688796603496232482140499928304799351440648685462502169813749135525503094275724038597290212117209778945038169166662892371124020044007195094033472168777178023845789399424620136958716827186210997109606615266095537997661180191205137068629617802138689381614817694643683285567738665489253481778735637547269245952477708826045224314223657128778010461027050065284111546111131033818978635140820058799079409736901973540275944396197370406563132679249291219776504198636689691673592274225060967361547856574785210049030731558547186696941171525110816396975851874368172573920619089470201955919034426293905974068242429388297339169310613094010968096101629491108006115360700455092540500913704143077776029411594250159424761740080063065170500277232969654030662947062873621202034717023814123995425720620110688593592441952492477360617638382593893252280440797669510750945674798825168970325349500005287695524359886361437726679272228024874212360833367530151252980548952455079525029225336551276064181145644043765397244333043832275945996722518929603296661811618066817307387545423336154986705794263445343437975618532398582223434758007459393528521462903490886616119571691930964283303848625476145408083532313131536320387436229721753210215175665016450381129405244078423483618509941027805616213484643526855395984194308980858946189156871691629786122181262671012663500710633741945914494581183643381544543164635623694858309216029709910236536486249639143548766082607397311210281788634166607083818953824489852149554469397080165884171809012288593062213524797571734457582938889550541149065497624700698406306165163686077670422420297342441113616985385999385708384906030925181884860910159167149350318774402230452444122577344867653289431484463814153087984778459503237403690411414973727225894044883124087702036464707649716282303183024715757410887893898244058991880118833291177125824965863204185919612895957296955578519260726816206285238674383607618949639074174978327976194963986974427243673471379052052631175533734540112259018881343794540063377529823928130351039029587373337553792554970281712968406251463261232375327401714008842322807846936746027410827024111199274760876071830145370592608630425559658375296478395921973218017622313721344101127258317715290460691344939764914757607069951609607502198522162999451400938981613087668339709463215330301182862443513974812448552036842312633967918908709985235818090645855109231900216331140560975022188883895912534224377333842474529655755761655172444753951976758074478149852450952823521147836753868657945934573378469162237143055980481596996258576784159066402943284137013228526456633118705949670868806463550044322730728414260345490840856473499730946876334410569209466088325715077666444057112479473044123421406651174450703681939309525767916321772475335750894935156602348372878004054022125697257430133922711739912755327543059029610740243007046056469537173334251125370298999593884288381042497682312264039092464177143760735713609462789482875757604014930605167983759372802359682038364966374293495764812832425332551720381743990727530990990164406955054072994299373868282797618878203481348209132541254917210879378704003605689360223260931685438876567474601410099666730703003336437540770562201181663581282118858460563256939952097299827874052091908252155577091231947383709605476649335488704601148760782490125750211592963893332677601261725351507923134546713113409487045542678174399280826225488135384342672328334393923550271598313050978697445779907867884821258705658727235219830568530237416265446099809611433365914393736401136485374359734455499412609240335610768295079477586153058024427843485511995050239852190743764935048573851274588962772256349735787046267196387388240731470236915080571911054282190962036714156691800850103759067836307169012631062043685738769705454291953163310397503938346770965082641975959660035191716147564945310970527575655819191449433625296876179393179702983438591949722915759607989332421840097517669372632982660778779571817926805273679495056724201516388732556948301468304478603117483447121132280774692401961424202704623146016906484993712425737374094528240385288294663589701151516486164196114871172333416275595854700352578063261353742188257226567921487998857333324649480219077695871083100319404029348365051902396140637810558573139887910642870082026902176827498723322782812941407441901323096068131738716064913658407719625445944090448439600507171369653931445777347473682309692758653213510303136375901838564620328781809633118221056081485200321212597355680112058216188622600358051218236790224384470713259209394420667262358436909475969399732358520029100940126629316467544865630708199795820652062038115699424224178964619184988094528150575655312159325816317383008333442982824850169377011868079854403792949063195100071200984123594482930806731274739679316169249148383906987535340202146647751156026585253481048099083486603172966387672271224971917973686259965290777270401446400280793115056965825621885711234968065650804850435054107331530738368841653425676216366390634528968475356409646684538610642707118050050573211457361793963136428702326047864063017056903424660972974324168893374079699046272595950672885363240133944866437532904452372482003858981640279394368506922550184080958259071459238130347161439754256846321034541018980297664489944235718265832342683530722751065294889289441773835110251783113341485549192079682839336172312139632730145153246082277671549571411604158086640467613851741323764919308231255949175571193432707446473700600255162806008208121721442799233743729736279152442508227807103047193504149925406152311405501056650214967190745835337052042341809166040769598880961488511236315239061505223342379827363870650056044202172992084108499395630824351583525748391281976536150664356160302647811566346383998091781768809248942205229725786010514178111736570156064560748407773001126125822321038774549073415858070650473544605362457003752188249250035479327308706628495079053691147389679645754869786113507279405930618750871083422293472486485165625608741998186237528770291068652899699185180432295946310165058506031061020470771318943093298969212171494848362415341299903698928302752571912211051201128777763380764013826224911036349218408249982070337134684834628663697396863785531897160379449911069961430037562008532886991659670281039998907979210984776726896771281948294770663563348330956140155116176102894162080863338541090793807394740574891552167331591570797466831285455034566924762317596403317838494195454564877823899252837057863578165104932045251150720930265537650503982805973698204817317192037042408253984706944531934799884184310995096509005437909322101192866422662186608847517175813568564469422605019609781010948681891211237849002894865425165357667456599666113048948872638507293561126717287399770272609945754059928867330645575797512767126954340706586449056100995618186421565472846031899789566953206224733525161505082892834342318773077828338833450511777362487156737142047656348747086947934707694527099762810469048667171170661831972717857537117420220253084837929821122285071239260719643459987345647260147645108836689218501202602513055523253064435894139999205834509159772338111587422489967637214802503772931830157159001171055056926201466246232229486037694609349638507888733746464922656643345632194048161772763715450564881941260676099778344734616247271897356489295833715529660733609374982756232495797004670899826018024783476219887624916454018388337452494072575566088234771187561087760334121680515260568816407860622721383929588727305884531288904110491710605451447413467766791945213275645711818196168706422237476969979679860374310240112922976460986564574790795472097055258772051218755884387460563264766207942765182618702387780438248271580464834039590781060267202519419386095000487508508737017399052681948385237203550330963614652098395826799469689907369306638004695335279828803945215424932400466128577317497622790601774470888459023497485648642930468721070769057974011006704224372510724744616911308959706795604368423683949432935437048620763393317698063610359335442731059563435284261813549735538545693429621699704189888590795287958930617314948375839853593521173576905475907246388303469009710810286019777670787340912075292447969576998383938487412474712673203378832845943460766291955194207119869410274638894811792323171292901887563093354046631146115585669669536573023354775906855632443470519943975339396461067859282470654522653887895031285907402815458887559028514320883709012037472310317239420862709421754673438210938962127415173659092527534247847227925756443320858872249741662084947026555207556335182389578561323110261257145095378749892114032236334103764428219531892421870749348950196870116984089727599929338106314197233948952535169216792522018074221980961170880412196198273988946353368348686340135185973093456893961016471282706900749133543824723493764901742114235831132463999726927443423523492923596761868078361147236885255684737529495560868057171086768019478011141038991882625172410459864889242941883428643372073307816545559063047689563716965450496574834256281716754065759936308181967980477472933616888170514740701244000512139379662265295852044201192979746601368017441240006774178842567581084490173658576205049264494343883715712996197955521937057415988642777592185996065775554803284251254122895891320843960662660684508003513903881309883392575086524663593742493458543606617823680433648133472408827554112839951870478739229352725273804250338463481662425868554898234631796821790261555640910566631860164860180099822214127887243428927172132473130912297711194487122350965248791189004084727764292051345230989614745514564536847655039296860755163664712277417848396565691544638879526779030925124227273551376804071696983599288271407612278760867001276981562351480704361665890938412896578860658177786080270097382542083729521364854562170406468159210478842688796648469354201804639479307517878082188116905240660808864164601826805370990425045904381148446822457757296116683632806508684824855983283649629731551633599122614900171067325050173776044694834688495380640765998554450845781483904887241409798625292773291902962932571330459626038914234570420054989508728623542915724577341802877141881176426341149390024375427135173545851766799712385047312129826786401684212311336944225091422545374685103425157920822204436890761632550978329648648491444318542283666182924918427160643193503350335762977341030057710226795151567674351794136738830787715048847532200145246936860580412925799591754942351408942598218516956328819920387725878303136514475421953905583741373532157203531083823481661287686917415318695750311517562249545324641743502854350545112483382336866158245784962390886709103270334285402281088673770385119412570876153938746563797950467981076278919993657313002182991798386998243393893522464579788466548352263486373126130015166654878162030810097416504862024825786507268143910211018317435565875824973126060354139155665034398688689299608657532841446102897536798663047275130189676352855133908533978425746044122511478235852078546563073687090040709579771360079242639715654812272883238346688847625757960027180664928243341773262792347507118852394013376537715077284374134515551763142541971560931791792754849515623529224713296111855073390067492852409886865717563536835818759673606950899699529447549759326107817666019322380444676503854921022824198088751035304279983921313826677477287586254976415101621491241479819197046831789890858742920305969199053855704640448333000836811965168796687605402914818736553521076530169510268119701385081271896287326924829298569310667630418374597521562028222066810081346101107275679245554749147607565623534283627246532171680362317278990829279237240910852065275157856545513758949250665612217750456517653632221756008242272771332388827018464044105210717767648510807640555308131554745283293130187978345044638001644293767530680414041045280838924244724852051868934570013122632139225757310239522908706773728581796174067312013063629047312946739320961791894375327374023223783476691371073491235609476062778512012805345278865888033871533032781008145777455954274457855722983379875532458069392393936486097824002797553281664396679945136489475997922803964035599364833370165157140557021691178140451992129746544436352526631085691055977327936470083656326571031037291887636841013810469391915558862238850151433301895829946264727327510850230640134293791669921518681072908307469369468423421532315348077200300474012203824755944592371246680573698300958222098196665662517669526528900954819967653411987623461433728301460142612196397859065118912142990997749244097542296346461238375135569375853833190795272801532278657312310665913563469988840132795594142548619678664576560115424623754546696902167004625214196185568131906015551887349976369870814174703398757103828151164435709131809453458946859313840096610586943690863318864652551641248178295668822383211678429851083858494172926035447096953953613009922671837898282552862753001256655035110095241727294838254178660255510432462838190663401358412698596101533006926126401701105109627739624756408662426927688465550603333649612260440756078376265259641590863846495544945268877480869266685414726374812473126014665115477428950051640505074464886715925032087043123030394379546402767168276196311540199071419521363736682102113745630040139752387259835597272810025397683093386338739006263736091731235844937300306913492108255166610230258942132927084345419951238496537277780135405896957126816319355319261345995708474300382243884378009732469129231045969492675885294367684940803191902557340523140697731067903579498488412771555823157936352983797192243293070073426431740170201888162331547616994573823765171139941909305122754731596367119962678676951005977848747741065451845097487746369419456285739994268712939312585771198306169754970703923389246621836968033173387330636620104806844589042244806442008646268645578904289302120095705966013220316492988876838319987900532001497795700575426034810603363696998817329737619490643111020101967131581800336650018366059920977490160957607628713195320324070348671569493586813855883963049003737391884183146671988898110689448451506555122880231779223766815800071902463979109602409469167092863500194008410441621766015052717368137634350279052605190721823167443254909136618236284545199533902162192570637796093853673382877231468300372038339287251165309563090315774786264502058150169359765296856539991250695650756032328378112474511984876362648542226703168642235253215927972665298662479181609639474398102998693834320292187282076694470595273191744462834749051947800354347553999867443678428926239419883831862499825529103975687911904038324017706776566269412412168666890587659429802918421848923930647192150206632194310848279386708979110370108062217078804837970045561482024317481986006266426151433659116761102742810595663170160689577998858887898536133235769298779027139662491018997728723376900460954345319873699845680382671003425923142727814380386061445212014030278348449847679075087041116222944476564463977597770031709039834927732045233615204167897084615922007661558557962938878774591899544468128459887800211508624854659969889064614067769449308645819726941455530870450951414527522330918419285061537572436367469343574906470845837496661235179443889210904538424779677252496337365723955977061420528496062078549867357878459207259973593240197874950700080472019679215920995898866228541485145575872627377407185220316873413622229624465457587360086022344787819533510063893502290221470988265069853545833289085161155772519089309156391163088283390975196409154424007800630531885692494621346732849363158168411833962462022072779690262645818791101031485199031655618948890600048518768852159869886841928386361749460651998653254185490693958945131423235533102409419124189697834559800929009321563603357493713322277144389553501451993445424754475161489592193938853415854523221446547028133786515312181949537518981915908721327243995297503630711007391336613929479919012869452906305526616709682042616293614860160593655259000136303710669032703543284130803979263662347312741511858642095262905797067885778831073925158210922774140284079784360233175690774465920077731895283644474533320324898841612608245095393811700661158087884625593824027411211497280486872630208751070194087698540895705862577756593010458850321155940865284365764886808721182694900387180616836978124031593240308674377757732673857936794180444978247244515901427899578313903620736858653115137264395700768606468034447937714502826898478777921577254083507796739072439445277531214349270847040085816641090356117693707729093524001553950446673816381934842245911583322997453260083287276151656036239419272831272049850174742657851895982710956253194389810865859984632251233399068452750379374815610155730285090088807000415930346716440307411517076317863484246603538390195747615090252677710506034296365868746606247283312506841480252618663820077719130786032226064944185169420974923885629374895812648645727070554182035359181535943568022880639502717402138744225848622736585429587492231905253142989083161193043719967639240553306421156760475409765799860252439505042540747668326490885011221601989806767946738430628259271034711355920144399464603071538552204751623553819043298216088832324697997322355806584229161164368386940837000026952177239723786413560779279402082618673934351684922375502838346147833336265614371033605608257718578500157945888136138537677243405895048076670960850218364726871642412911683632897265104705696264909040587825267438788889054198621432712803292883134570048218417152671538244202409389521832645789187214159239941367963223907381593048116995616028549948551355796353886508369358868941951348275698890177024810992164645466214452716703763119972734506960496887367516874404670252468188708390490859039685631298885182691077620802745156337903258162941183848936578990113649862674276313632910636798107189093360635456849132391773477556414438713310605392700089715712268729695892029229383846244182151685739885562654333770177099389010547329258594041277810953371498535561592397184302349441935402719398817518053070476874931686088811964364459711845684288942143144608331392216859426998241881581925479525137492839733852856895155117766687614962611854900035041873428163340408566919867506710825846174859202128953052616459901249601504023205851016874155249213058457073828146640805532435035227882232706084552301779843806488108416037503410425355779866591011040064828320838977131984244743613546188071275594211470169355559481127947566511912781976660367804773058873365125134947072336812620198820873275894917676471427272169993127129610945408984920848764706142659016777833475330302768909597390656789942820777854705455376418891030421339394038069299292301859063400981136301521776887221132562213415319388140307991744787232628735714581967421630032020810206404389126953521709906995382455238261615644693065624875117103985739306477774139281937625555564647182371730595235740717604029187171272327619961290083137128090735448330665732151862817828501763500451832014700046015288476023043876517434271119402606354816933143222448359512961626076035974488461778493495168838341730540467362887036983125347549684065666843417079643171311148238638321201688275969585508373028962855965438752874102405590491104917807844037014106702802948341786727348601274534042681734747121747846048851598474498092415503489150170184712076942496767270915470617231741202374197071918715473532312982279586516370806127520906523874317684605985845112684928629373390491482643651620711460491824365827347421572301366281809498600083334235667348505703237844486989128968920609947535066207747759387892451465955252991394253198630537017145966080699463292902465160481624388403889475434775859926453766522180999621924502297659800867942200272027044693116519228279007726253947687775113541801246326667312069321249964219386797567352952773070992417118123449652953649947102902605751802893238044997063949921099440028290077009783892988940229574286449014994823738560287312469078299477131166350506175566458057291099514709113721213135333467612284078118277204369213596957844241688114368546697623700417424777412705442148239474783018516210450717465959715180727849742499787139406920143240965901733400925231734498841707066457095680725414204169298614740728226393431511626680322796442026711702930482347442474017508119736798064712896020789307735093404369523651309099116086243269917225792840805895757529146047584491824671921382663378358162734103258133932995609715628136559387578936832489991437711353759247626034313829795401138922817225049221929470930628903932010580133497109023647977277526411522454214963385281133643426993411352156232692802558189270513989368891969453914059904509094315920848292717739377310722475307947251171068097252438676808014828846753888524798191089203710250974195881297382092444974009694368419291396023184248076552136234457525948385305829920180858097580789924419002324591822783120657553075542335033066536201687027325231459546188374895220455145935681164341145645770293223782206008856790536156886003613004251000382069687804064617358420605167324662646761796660254143442929411525931190551380953108535303926119328965350309253232189296468396955394594685263997701939277026265443410388021596135068185716025916312891705451806306374475164238698246671577847452379094118245139477036108561878272969081289831487440483545495142868624345572166606668832210474055953901979013456579736755526304954901272111833584636932989282914945369736383712556700693929273000147676136091203904313149749484840919237181642566548287352473476517397474774629706853837289516515245492502446904201152425987480899909479961556729714899863116437887339873669546867322869541902607129917615185713849753363130720918340959561879925765252438883407179347859826488291578157733750274202538610628767039882707800990907117488801341049664145671980239261098130665500609750893010114186883479561861483381835138209767847640794476122516680045818614283270105194061872993567128023340850018093591860251286058268387880514201676155618738032796146740647730382511169791546759610447402614985915681236078451744639548497777071962913141064942912793442014442659273917811969695651791979238245459639462163238155663882830138309642094611437614895374095704344064671737142671499200141229856598625179110194911755285024273171376924121481043508970380316381202496709227624565693419054432385666867076600068156510496651385635311476810434132800895665927291200413804586937089769256965675513497711872873191579702168754971182122346461387285637137871544040400004240733245619469653405108351069874966015547552914619856820293678501094600351487854634888814775651033971203402736630047615610800539871719321767915029220088598212897073326136130278512741710381355056172284222936083967238468407971855448225832788452705057461678648928712213372114738505324443823886063536313033297839350822786670039786733357418877460235092501899709755247081653976890977331041791515805389793689008654270072211359413323111562463431874978980616125256455445866428663017228033495752464875851793880444665937755145760647577758899530857920851480767835839612703103715666019125334633337965704621869027937902838958607337401696169507591921251663055475886612578142006953217108738372320711349719969947524460624024354193743688381560021696582931056946232396523805987470497349558891484703331698919514297862255400875008488926094014756587274529684692418929157069083074636367763313062086265892846697705198894294201396465085490504778922269393519801841699849762368227133344045930924973377099669668696962910606882041441169650323316533208248288759368701074466539336086385813960956065164101092223838413990346709512743925976309754706107391628235073740484558944900623337479507250070424542238105067048551686446916023734818016868828819707136064110642277321533751566704043725922442533885865434761316108753321127594075118865773545634390871056118937702239703228603580019615939052618629915435492974774113988820700458472846147893405153193626082122202498633284462491901529503851739001373496530724230427036240676646543725884635564530303955950672161374599925360778754797669482569741670906904377208509039289688973260875969022754430234491426230661791878033666359908645053925437647247269174746126282809808870472972114236224892918798198167598317697785502558226367302958096262292444390208305376533273361670672258634696390100001165004100640549632477121701074591497957323072393670542908452147895754940128449311557378451882145764730504098398775953092255473923196643974586149573183417210926925896069724653601770626450934050820388187316547310866097281398866751527645286647742296852767575397817434309478267771692020426203476775582635649949628195757434524848472670274678445684202502162477753083367350896352767975111329042185099272228382297271259163462332422890680017187623251113704429006576288715932705282849764271108574087280674091516303828959746917365778621205556759104353801740005361978204584575567141735962111895797057857899339301503901626449825204459938328543411173088653114309293037250095801475813502293119736117893537729051674766187001996325803663178035160226353054944306968182406521677737607858209208502651300297325551581171778754108749148925717638797124821176068113202278981015856834348684943854851416360026544188121983896314190952246297415879862020753685348672643384351135542745323386079086576466720415158063456428956992957533601611966826581780939702297826781410898374406201375063544503415944591388447960468381547582235867111133837421564071653328548347842303781585481823587044710834852901069308299884032625086316947414043240769221132060054581091422191927733166604344507582717808005256815419089808672393448849978582409957917329021095047300980224392326720799772675762389681537532530071114769907264159881811806065470730615507690496954283437351175267575545726005796859230583553450591604779236652794345980288122348972215830402241562343702753531640702710728653350810590090792360796361706344392994816860141461187507606887952637813331496782478111200866244341681171226298920542869685700508977275694814996259414466948259234464029870484818780956672513165826764502837284107828282876448594954859680796352183288289895914213073285538949965984378255195692349730141932632379370043423694268747810918248567513107556016970679931360546540316157440972169599008173159973981981119934143632293578167314579933714759556995631910482622639661767390046043278564911671492658924554133227347988474283505375853271754355813449503169069782234051316992811711236827922719838443758518716327158103701733339310265037960008721435588672859982093433373995378983957793044066791035988814328221018090225327993550735024884239269827533914963156600749337387377648401108062777019495151416132648630262833290960324589236025133960566230133800038033894110024503025308247305115112926571057446234543322854746512084416051805956774281733912749247691845690052504500553560000767337533404314236609047940212186575870209971044164435240586116912061786175757945453338476448036771349159750940590519314985279876296073648923067678161113869764217759331558587343169469695999826285673257839792712939314470808101055314285714676492902867276920207299914858437276761004098795352671987762042921026352428591701483668273409766510880478634739838392461698750630802142924899113306420695849726944937301210854676642438356451976050798104288733320843509128246293641232097730788768225257713972857053173891437559640160826802803501561869786631141799350438172894682764592319493428668818441144109968080826603555369155662818261150712587998974004038915329681427882762847665237220869496781678478350822145230010840461528950507597402522151826021002008378332226296355622825770042523069209041218503548068049709063274925997968571788010666161341900217560920786380949179082169661815323744575644510767353037326278125520306248806071598681116493700568631754237114306535686867520211111386572989974741658187514369331586146333572768995755564058294706337251422865379531502590730952245963515466630233236865300287539783663950675530991701604926568699380768967763624267558840395998807731687282818181607544036167836151348489920634483713253013955519847450570236687194438216780786829202121206588415813140334599582209268077104787374515197270795343193293540856034769031880915816712705669453280690999237747586013515514453901724909606779578051102566639269997555304890060209908149090787710828059395189585793871786755463272301847386603030634877948823573984968844703593119994235995735060910165437520121004351320553302106172952433818831979127025715600771601060123789427273689322835021847725676505888673714721573274657458570763834736323777495738375203679712641710300383182421584319435472614932885279558924510673325101937897760262303618836509216639305841865963528820909387157310188160603359640290023776416639560725184267386287068405204430183206923261880968408553193780541269461584930241435905530196524332895735058691307912407399494416616070061501123928750582224318386074761873527454970006813406326123849494096025943730802962207291949354314928919610024451916291397308044433204311604078004379545051706949957517365874742680819560958068001895634894748025174389876449342924197545492531253349808931645535785920677169427062101343856737475677551796562211248202827607821872160493305549662014068048198520427718801238529032292842330008133241255469234922067387748728996578532288993281746528918934646913275819931294893608738538571680688622247219239984743653430379565015835853577851756370231750964110850456819857009338677065538450879641774387016761052000608434822272770726191307971661741646561234167684786921321230354134369175613291800665867389174623218532066908606627865797052541909291864840377544722982404753419079673943482904503333293688404304618554356165917648834284266527226484308349801534090083155260942491181508680210036809523720962311303239769073665221134315774930993467247852388778732621886980976371514838528484978622503911412004146282474275094446908671286034225176251462433817150966193122516283172200259462668699240745848764496073110426633296709482087827328704410569112003062464600285670027861411767609786968903757011507482756330476410387432901228624803988825366136092105362246305069650569022219101362112540511789779782420263270472211450946907914685677211173220290005571773152688468062567721513364865377044063851179516623180723529491647029242737408844047622961631629148504946352168015881702509082224501568504468975858539579863493056359096864489260129735398374069533002184850922123199524002241880638740607809613172059226061840643699701315462876251204933812553324006410207071265331169797684927769229148691237681980560232852595772422791812021629257321948708456174075045177092911454213948648104984569377466372011366766698858442810018420532830012808732981400860994403044295896864013730710366249033923139536518825282423002691958560995675759431785806437690711056955511852625372498251020439901205381456834198929084282409715112451721719233872737584844810326992352091794882217073307512265564740059442342111798991864746656509761416725117715866514189682996489855420925572208157247012984867345390661145848989058122621850384026835146382263152493663653586415193369965137576716865046205320116352920303513082042340361913450914994482079926453445756405315626834937584515264822756761388468738457162939255738953869469176424179577604044279786725368752631676946911184234858786247496925936888647379336886693638911733201733176644449851600842420958858965352389591891577436474144738198300075015202952200271024942412855940045120955263939627177817456666226216329109142083583256038043357812654253021787425774435035609435188692264252175616777157079571676906048207525143898220377704559121054307927151931121081778417134888626299478841739619296748656610254348781507330870301601113830011975965914279909819048095947420695004013805154616402022467284565214142035700435252600500496375627764252201582806750833709658772598000783288953987710758776005262931152595361413719692764333040938024655447739750472627282584978081423564771514945372710181457931723411512338204625891270979950267699175221183468578680314759818505054330724386350186712359880829975662834226203894232026878326933352602511102184100351633978983190326216083693466565820778915288719146549245994189231758632817196012296683979131893904003698988441003879614382020534148577751403670624307050629331654050827996811996995976959160546913653807393538286567698941043700423837308015144280463076599257899242714043880882397454799967690969944830367061995615486851975043088333350668841633257761686501022976699613864589540622541623881761930627549491794967824719562490187954224292191168596576870477278143494619214115113020562518935864255974638415976271278485792228404997623267429618769809091281854826411197452626424416813055973816050442877589387630684967979638762634007848377157684530107065250125574257448580819331559626915471779447163678271509956367519367327213947452992494542244700235760110428408533618820646426931200557182041493642667982123231514417255783134066248067771898729457826289456319814862728742014102573633820892762549652372770155239658429635855597807033300251384368920843352678864151383459965852606494588858017481189533875194100747837115379042711780721683053788919091747258074233832160125566873864067297447321131734200767912673473735952716492385623532177548995557955107525687761694728731267429658586286369071135939357353591627641261893679390318156474523432188157676456849137910197017603550880004256164411402886267486111011328339586370459977638021618475880374007238054434905844900299446059881507384920175760977062189203356255325070202030672753929841860963906832920709613797672666494743389399115750048607673319926571093389166232353347066782083558838016366381519574007006422549129903115856648913013741754742585652247976064683457197823709600961252831784309844426598883790428179184527572701851999871704690594544868262533974909268714165687834404320941625918620450833431735175069812171379195236431676663962452536098452970553160981230755541303273645516490174789352028181511034557086532198583646366838291195011464658797427387903217508015127306140944451527563153819281044533213488680986960885417738748429758077821652129350922165863806503283352505030987945788975595816140386729269579652299380921121776944890590587464559136275046533728611288515103176156971557522513437376865978007953422874347814539267658479476695669682562501201389474376725798597486226499906114590839113913143067427133693019938597836123878054639231185979801052419928862496097530320519748949224762141271073189964461301651433012113409962136074345288195109239876655622509049429106149640206269291106744416500411152246345890159961093669992559493815608214928523005546149985586442488123431996664157167072410492067575088819933299568340262118240482171752242322258043331094794540499047976875621775776634356303216118276246108866200889536661482202320114973433662951725838447283775463393081203442031865559439661860020798684019234666623970992695481217593692563735222089131594704820706855547725953710464164506018842408041158357464478498775540413514460037019649971359806490656024567324741828147507699074219665607311428970423421464146983896588185044477133944204771456519748475118141317029774499410632403868290474263241694741012468130736775293522018133122174912219592995696623936377557429219809367912389489549194070516714768383696822282963345877470387369326743223841125697466530441547953939314070795612696425689404295739653883131287865423526013726326219547626954550465565849956151421108509777347813495245535837343485158002407642566268979455840666837605489327055902120032422225972045492587889651329515439423820662906281151454523349415804555377471292689789552829978735760031564424290421177762202718116657278135591368111314649406128592805362705223129441532099631834076350838293732702204783333856681664787603125900904941063500922756584624310157452706657003634773356487682530794153869621824008331187206549145369631552320622013573542547026794095289164984928122835388489864918606766314933950010520923604107807735500436183554356423188022122473688822107992060765392855606526532669409810532229247700246872461589483396872508737522820649565797784166269203137355303682531811622396281254163876453012747697935049349037610890530631595180268291905053199121670952814912233978447813061128800771992080119222225793931989341756417103024044512112719505863965399750776898040783504775108474269423422540350715535011977444816189546262571592842130673936591825255093529607574926081320357717908271646083590542877601029788581025532059792886222505510758066072677553021316454474283783281586941641992127961626766246987184906655053620820739484950527608140188726663144603166817524785644367154413922463029949101601608246232338180796684012415028781853117264984057935433655870424024240485335562996361075595871985490447440718332339731042131508083452389270520553556741754776312430930660190789125156990087412914782566640601374608691320229618728796532420873167583374986136661631858945063020707901070835897376161321455675585569782664890690725233398465826497261405088629691437738059357301253710113175842224163637343662807318550864286294670951874410976237948711672440678904168397558278061824921192661292693291640654295594558236233678669908690438560231858739495393550628262962615663668191924560628744845710068756888678104793634264160172322903277006622637018565681232354216619984641683350332288232191696583811002590542852851644794326487888158473840968385851293024017631346071566105055274350140556881026001860103006638922182057793122726439507720801685817725792615651646130074627851307363848112663241992469294354213716736175211181555387195917378953409367869604198443368447471854706043691122778843176798797631247878465835397346744905745465274311602268970914898934544269184255184411613918937334279944897095764671527408041434844032179750637001606347291003490830198171923899744915104742068222938748662186960276852864995891883506999975296297258155335185523471249054020140633237644508011132464579633474999178523994544778068660902230098549452050891453362489704241114155618947641484612453305333022105878008272873896151418761415967140322619483735946190305029588477874001930428135792242836817862638553215686434720912065019900329370904185069754746347945515215830512097455407370541301236465470378342585305756484164263694311664035791643517863824703400949588999060090266564258620611296386723855252851259863758819403902703919394578705780626255845361488723927857346246688015797667795785010450725021808568017251278854441059844713353570472347676657295160020394053960238385559343431962769778355473933091454829836683738084701954996413641197202551725569401682285592218844361138211722719326632586560459963571291686335031164290809672942701981578409512925870300313490104693710174225355135169525912675963874824949683523172169399331309212622121519140129696734293158334041010577932132386481524054138408561348394093787806358236691605498167665500231897149539896296296580763821414864549463593759281432569658281766206440630895692061400220858460011125844881738890633684174223538760664518283587296897228625545194425596884389637850401351003632952191462492546391748487711446338915575294424256067402723218567851573611273248210415806245784325326686367910445837909627897087590364073924555224895891056934064819463273864814887344167831281465227788831754503441726550691785580282089727023044993785570578753990368453841111782628517292139049355564815079585070088903019303092243554912051700854666271461236243848444859077972703436888896821858968522761401729282733234854246603664794067906997581833640628471118059826672263992187962953026593492291638875075625543235010087154904158566444587794719168631585794219755893098947675285117660332253477442971370890416641874662332576018037429634965278456194413681119560446068140465952380265928414716290677295821236246283065101818124666746346275317920857752118536910786747421370324934212820539996976129870214230196968552005671054307004580317865889617229265002839132350901100920973799114626891794592256968228373324696292478907090222091075305773418617005229718078299380109153900084399174524089576931124389274287779444419043148736357283454265015318000741108764207108864299004318866344863028135955444261476340261782356581076810383891779905449807072159459851096355415153156658010756959873748384214053592473032496483447212171422799176352326727602315786989325285755381955615992273631907506416186858193697532577583844803917171127221336044003465320527575210703327476035715452567602871167226411183257446225978722853585531912511194911821972846564094935593289141774327444098993263643919147844898743688170102462271940576590098966367702502523523667188678489144807861283959567358969235101891134264204866026015919745596856632394852995232452161691635676962324190487221470694593181523165548513553015533080586383874300800979014028307560100195917446920416418501914785671094244169990340511873447495833613898498369667191036240170959794202715268008158249797423118727504710032449415997241475871465175310671238695224812058591179764540085202878003835992688996858895013321331891868243624060617164151477767179213699259796536770264508489289828357773544881878615537401706304032205523292798720700312487164459622617771723215187909204143940540984337430935122868007354668307571473216966357807146385057721450271029524192624570105952842748021680078214138925715325285349314959139992421475733924174851693754119524022320270613712608288313404673285497148034538614295401454259681919982175994286106488170092086086669943489216907712891741957303247573222358405273723164033724466929197730926038669754901026850188913010541638661094417009424869573045137797054165080364605133549885652455858416071398361983504237812944443225201676323938525947806723360746268574329424480984420015443620351016988033051774972634276568931167680589541819015819384762327178911849266273279288222131241960781616713649970273932204295572566405498796160774114757252703097717790459206453588599935070427796809771643810238906870948146129208652136398502612575364163418179271126445967689388183020157873862155696272559206487708166224184456830297550182376153730773659952087381050778060230252010354104506308772461659353722982015735480585774907459240376274014435413212015993231562210945282915086091594241022631718329886768028169122504564463539571429304348399467729586555221985565024675250524063757630035634786072054221041141487873289453350641696356587587590588463248356955179805340147575675043549260104302625617145040081388116778812612687114450440312988994179441364373979451829486951667298126334373204192483843299482619810881717070313722265455959724533015774315587398606010837965063253076909608054936272177614674098060863791521179979289871626025341611579989193047709837190728692253984450450416791756243016002989346633654483093843122462501514628679532674417943406508324684785043930377502080022434379666086412989301683734795650277060056075073885182402394664035859147618897554519484211092530908399969337124418993936501690573156811371008553400274214434732240657897387449749741566298809689444137571194134133384877292477439051289491865418112047100248504048830924704026415136632470649502000327173098719706298557058606956911895380844834219544544622805945218310394875458202079367656427784161296493510723173344825003071135423943203978349120412381265574960421645517453322508804234430067287130771606355254217814724208229856381277099512430577071512220287653994149790704518729397728447230369623388177885172744405783141711634458867662389623174968746914271534686434680234399848299878079793590759393948966461146823722500807116468790120912622328163850608670568006911829399765067672916390826876271319003959959396828136179703124059646876391984223440206964551723372939252594015128609610806986263991350391712132388441544237179489490044686020117502499979914983882403270317172805567843378461586470868088909873378408086292093907668200563878137422992430997172399377351918616036026085147100993244361173955869614195980895647202855373250295810123610187973833879514185541008225344288553468778122530222273524340744827082133909198951085006595011917700586295670908787502359517539293067979781649516674810507510507468630731396775535095169935028056848287109576507884782115331548331251800463782577455716323477460194193696820362322427240883970529339887422606058210212835541086401342827785837630254063424197686331933618412783552635051405312093677541109978096495068843279623160417263716332928523404332920621384391684358556799104169521920999781512168650722960555731704328895016899130224083363540520517685846115734639981214503132518154692507577132577754176311235266781454229928922358192101452665256467914070626358022791837202335371291932869635729198098495933857537607403328933124557840287239481019275426563000420563734880846261186914917843825825696114417039756594067449504055613536296634906302597758218157344197457356574006620621229770186079666359092934049683434503487770474100502434539189955285146519925348801325836017467980482516985528706306455469379327341935211222488925402796443317662361528882423733253409509195309028756911149167437915487253170372597260465234992152980289521352678411526418202373524506452905894886311642338950699431729584832642790450532395526543384232899891738798371393351319430360454672662178111526300267861159677462697555050932662193708809345562975148233830236572439885982487523894436556011756829958566058685034986090860101481662013867269931771207456649229527055380478672631736603976457107538024097508665984096571341592080885390872986621957948365555178789190327720694751305987874900540008371741172015364328760849490941336741292150764227096834143811782240175736931072550297980000172765545087404417813184278931352152044003953133322450408724774856374910514192298789902749139653463831457943555008159857966199818174253997424028289777465915707978058051232984254106723476529583869450808926323818013196169191756423385421151225257688014151620315857683603013905586722207891586917712303926855028155224139581411449554939239074437161749955465424327284530251800553898234632482195519140955998565794831393880416373548733045002250032243997588830532017402595697766178878430760629117373456549707449213487166003743200585150987367457280200823606572875395229066857974481925029043666617310674836296799418601707515495325619962771486302569351103315316291269746100234122921390778365238751874940886243481617799702498023858374340573331756734043987515570640689512772975394244920706097810722017391081336769230022953840714911955762454020111018716020997331305051036174826870001915592216682496668633877617434127716517229746441811691564972452014415928445812576569400494843155562633318800985551737350095947908087958967260692224996289356494295329840668455790212996132512981832411797769315961167176612444310829378414345253998614678799785289850240755514637583896400781316096368421144268775617529831936649404929448565793193251846572819265167498292533254148099058647685917517488156632962449123893307167151170130827878675032301396873335576959775062817380827132324107573650912679173943956643072619450640789239274105524456805386389655389237467084923102933686433834110724681201626368161561731896236619655714517670340540084162217742639346522370726120653841302760618136490042994139362046653137714902206198017346846255538671997942136778759730062873531385958936994415608252121346436376682343367039551379353041952443752871675224997264199957351165678529648166546381610507922424089508745747560317584567728965271283814446667630211036447327192086170953217934680442322758804640879323493746151388011493533768872595169879285295399578316856749500519197853143787827143056858094552598200758748636022020513557480561324167777836777090742783069439399471269164242800632536648067449145050783693249937349123421902595649523397929340176534264663554139711100665008596106569297510834240705412906396772723990484188542386717114521762114790646854405637355019828051629538549207488905869180674506769649144421877703933068704740442923628403786259925751321211625693893318110139017417013515535353972422317398115655930840788897962291867127374342538678792993690454592339455066035781757003558150644519971890142400002093113357526823600041813082655309325479645215242906774835617733266802731408890725527280831705882540326421282086892684891910875863584378709706278824344379533493150363477949756096094689544189773520876628768102197916629781681020983532480395681743287596958043128639135690918558353746225110844732805363133938318473775476388153946049391891336719017410986132063733776481040742401900646745114741807406352287445378019219402942848679183632554569061213870272596327734332725200762508946791467950059638173866822334085023091282616179535330637452198613331357080533420836663157800705287698556291255966810675740214902151836325120940904541232514094047253410016815432477179663257430438990735985297083079137541139024555653946675095846887424224511660812678243058844454499135560883803809610725112365552542637106173907238734188972792060333595024530460370892996202423180358275475482678658422690137056371006274375338600049992330264161605795003185348649516403174201268051742049612097134550670492949543897931739538409098541974083965093581593640691222372649199998210699591530357710250333855548349765599128860564833059207377965892778119732896395806861765862357883331206073059271356510148913652709770928483006700794823029064223095970845289407498769060081356177054692070100601004654868020506153490087778651465117745381123529716008592216238925620208193577523028865783132219132612389560123922775220595203698064217457945301899423081140677477988484796883948340357032153735428298354476801144179510427623798918690044490551590654721332313382167971742176103991587674343652306516039677225575459305706779303958884936094941084850694161427601113545713824571834816860265276961608636765237868476076082695454793898515321090369312110702555040038324983062005231948965489545952014410368826565488442147690864229656105896687845316086016650463327660039751854702128107317847885851713965043844024539601040383709410266478058194730967073423773228725159104605316055774414026492487753628491827392744057595490278582400913984571017153825699533337298166759861839288180778909419536331944337944014311531416815820728090636875862630013121443013735367551462705000235059368782511610138522200988265945075938587014779013788651170951678451380581710943060050290006420539786637648454129279062588280821514901034929772928872248589505296045718801923325388910454181404427624378874523952364195042176502580960283887719275211601625909662977115148515085843855060145138663179075132174691164880562449186895433642107620731581054461853457024355966824660882590409297083577237471129870292433927074839412553944134368617665385268486847790651527724415289283181641526936211525296333424562895765996019404273562611226727415233720618543213577489689696409843646916555422332597295102614821311257848569943848072470701769675933726612944318505227433167907628498331431685683770282798991086029981284819728673120115892631110510254435118209719002699912849583012972368280479656413651414068311929390397982370873694384096691884572564414203213719688859162457847776417873745160823666215538166394229044970790893412700496484725490334282684757210443617922412553835543327659250680454669516788222252094261447898324614120033201053496372846367604082234318675958158716843099846115385932572035087472241814646679588599985221329570961241095831371914001253387435750187671945821937945730189120640522972297086446900211590391572956961746572362383308480911734476662481293773490644706927176870850325221125125998953349189960251972488578472414810780408761147379669823614402204154691582559925649778347474140331048432988498939144722825119326777555361541085501892469709275084800500426102772144768386582928989153678949795741727027024862321536149492551474902912822240209178965321953640342188198402576465253951319632958820693134142350716379137713183938191273767529300320611274732385524653357785530318225175139247600250396977169759239969886941102769559779076685666071772583530495459246313544325997263456682415837477149056523906690034043801598918956823383545267878908853140107751188726741812367496479705539299426473693403389165582421154322839117214704147672091071383518879406913443929406840859208864345133306471720763281583517807984534381817374335600181485620240756198527048099246767519446941493007424347923159035174502808446725783761509137665225473556129282792869152594591616998263979679719724082765516117302583941785613592342172577976979953083996037956170342816925506190346531479580333447824421031867184437588765435085355444026988188666724412398592876441088564068072956299567389665690515156229157220721853134601567586258371865095896395161263597365706403851969678338097254100832422956204505086070235041202738267320511006990251031674564073495166593986574771089635440511678612182215052785306474016576170499647612286822368679037053108732075423007036767852430678442419455873870580207343641426463508082546269519110785485069596648044207703832528133953623880652138957309997239393292068748514338341145152685298384299629787560570777404226197292762875583588909366816344312568830118607414474400533086840503633082894654709086870577306759230351924130112625037417333973595471282675068575442884534865415934707869256370039178333326928748440865308858522278465331126674536865308554115415548065167509753031359774582555324064456148651428916358234727213393116204187254885690373212772908792296871673112008241656825486601962258855212973270007079065515618112510198721535098398424872907499106532888771392180728175925323448151604132430945986450233143046075378636765981923800955330879031135786871193011658214241504095838277922944577150406173156044381357326081162110783610667312759763580775541133828573280702439472386587109413721165923773133435887935413579496897519335686854644059137143686995647753075113013902836111396189535341027027074433620907905892943517215072102780125622386558942729176624829456344929984644661719836493701762788847784948951093813482182410660009999365350642580684780820493774796966909937726463325010196372215314529589091920288474391718343090209376929738206844123027913509993357545818620016749996092023876391309392390824246300166798255752070804299120176908004409902571046033864012954596559611786466916337499884270894902995565689382773472943555868735494515915771017775949939615043997452621336199666833713318558515296638466257817604698192329543924488086882817348672516452563166858827023510377179594627575820938719151448167205755416755879624521594103985463391790022354053825546992395452812599587555077633251686574098086809712743225845045646152890702134564556706006130107645311504750741820318118482381815264827677284799898681655390113542401865270098153081476628008426809977237260376168971375293331352256186461200344390191071775353324625572498459563848221484429023959894347620138650511286400828353683049074349758359016402413027105355686118477665889314760144912289460888834351843060775459682268124566642336326353633024295584119451624152089378022282392871105601495589087380914581262427743273066845734996373073250902471093892652412223709147731624150471281963986673432320465889065489760061880393246649207102705948360961555100933680853545644680642564655482520275366934010318767945988405211792816596459610219138646886625807535469476040344115272158322502604988651075415578866921060129297823326061254260452975057119795219860536672019235504097596413531651285713393094361875278227982149364169774930736233449094430604830772483555853245270740091722705191372502678277688117730740309148013522345476766550748897910731403444254946945483333905411463933314082007788748788265066015019434092927130704621196060885390157056859266775777709867660028130501217235421059458405649675468346794074434203219276755663565478432490186847861047393911365989903299758675677352620482061040216632987823278600651612792878992039566068941023830219311562951072798130586120644159335298545509983846648554819279975711433405559987543522347450263589437793491033958973185883129467171381781985266211688072192985528935383342637984888034103391612561553516100601837127662749330854703361583943989045647462810152541741124441483430429185873284291604505176552550790648124261712130028281031614438080836735786824296366553296679427470163388884644462002159091208789038176728586566068378475136166413731230430427556232554457332531781344814658731611535180657646039675387482034291589616597411456102862468721025521655072910512569606269436826445816135184170475890769633017598997299721798346717359700943435378284521331538120221324517720726070191576613452445576225550573291062095230081983214392523127343290075062674768130522981739094556432705422192727255075761589516442410142435688058679714434025376078369151254846594044697312255910130273127799878962719089034957977324972078176385856983234235558557283816705575075054137452613435234080623016920325771813401076059759769859322159207641625812710428016063179967838752833461462348073027190107672072224250891864473737424198149724454478539033130730845733756517239444738684252766845745963051195469723320709056310335217739514993612699858190169232418093970522203642342207338199968907477090609434257286843659368087313059855885556650293717640754369673500240671720047386319068223197522336173194253930678754071743388800238253960139138175364665654381089065318918711090673808325034463716310571351057013606899544205080353132668159634763725299326299879997637220908080494581405018529646158482436262286488901214095531813824964910222019486891869399192237521319148155205345870854851972861369711469587874357949160022628241274702241051436914909987680079685728714309794288430995657356862033366117890895404811569247915243417412166899511542105990766018469060993089229406366363021207752455921656633141427165260431913570137174518050532079942564759101597620168864080064743767963685484672066787009735553472872275462151358343497769038508495262521831999984335411816185372504749625972383127752883708454281747174795895813816247678893218375032245498435382058167069561685786805668659512918488816936245985317066583854675196219240447172299312154294136802375370808015524029272375129234431721179397849310158338137144051582193426140475615641968860670691943337274327190593582062877480750561679410003780053163369311054233631840681527814589799208410994801798221106727856545378800765761030908137473259891336790375672629622170483491473905920065326810041894395217170301655681229825801558478080375007274752139469473695402680590014248837795201083764254921103418531498221111157078625943773074903280823599271043474394234608009476369767286296152995455630456170046037719137771293515738338690638921168357156737675464927447006262287973300136188150170041808856303533568743602048034004873539445817036144744511488691348074940543002771278588154985444291665715481343565479665263539635225008623333992329344969533687170981094195813325579138141629496606484065658204360005614238502537999972553483204282858390918551994526661036189602128114029020266084318929716085482616715201550467226148471209632641697135056447489975172136736156388187052721085586644129423754096459396981210709593346315164461269714170843618244281454604311492918195192090553870499709761110959740746417811702507385111711108172682635246457852670940044758811053949748911352101945394869447014364306930181895277135856702439611721119729375299746297494433188484131938783321051391244055117188670634505448673148953004806831526024209705898028762361111136243516501027262876223444742445921998609010335287958447173327153652932195536650218922524009032147748342932475517977832029950193327469303708114354164025866874026977149454460487703716622749695093603215390808431603108760081325734077756024779588386632907885901586560505436181578079443894194710108884499625888144807811269620765087584201290116365871950989477498957065563774876261401701503773960937917709226550047682479129601658805136963184043107658013457490880432718732048589674925554416652049580461189029812705877392005653612640285262169634363227320767953859192938323063759744182170067902559630839668142876163681444627516903185517472848243498858975912076700495706287981662605545562359611136120477232405550863174703189637169871741752223235663352560489947171443743523732865623229942523966557377025521221334696421149138480120629653569733751289515690943711166680523837472316231581044478972828012681215913713809031609330315867133680925180582896883291999015914529272111949440263761522840814732413515659885711480927876051032267582846877996983408832801914079036821068850784221816740079392883648330996291335405486833314123314577370667387709636206729589059644478101299265197282770302672489525071948978638052382290406400897566668475800423693832049123683938458067279243336813992907538131061688251891869781456534222381028945158444289522170807163750232761836822511302637816986659009825494920642875814183082101891783566676219992489509239511195133311308732399968670831121513411753588840094566387225386288074891585966253715989218172165188896609909399126749367575177623978942195558706902896343715308461785273050920918254756208322373454795882006133961762020450089022597080827669847238670984356785023407198196333116956669880493673626733927519854093528725510038926105115015828111742759868517317873366510425988481066186381351970624978963680657025625548186617359310735138927525713217469220927901798211544925010322419741580193804158348341557811482433409885160241031542003441223613488921357471966238942649202386096920987391269877291858458555899454983765579218383829196660452571195086956731759270611739708515835240696367661870346469333119580492098259825072621998367712987405155285954948566140270564150744528701141199095457593160566339043207501741492818002939857265105351662892344061901954212458312793737275777589862283942120496211494632779220106446463809752137454588392027680142883732804434169155658985582319140090989198456214992374518589102844337445284078208731851671251781629673830157823923962744225212638786294841154636824703169959793757553370865622880263274370707302920646641985236583113044412494301851728004277004522484194729311747396140171908939842479748841130026291661969769609341681726241438982827937074037817839239434150299475233872027713370660115122085352086039863924858712935988206951023367551015975972732472806773172809751844746380391701156317407287187914342802587224500850543475447466950671319448004523916566908367041360689540316474780974456783898676623295420989626024131241389570266077958391136117256103871946005765483996213608905700844459959368562182186935942479420774880750216640360179646059641579427677600548485203464303217403617526048469973644087166188737005110547924749565397041877683990889421410703289296004693842433860105186228532486069958204644701745195569620175567048303468529582822352179256167037897940342673692341603749219363963918677654945574031495738554361702082681896024724572027879927833743392050750391504509442288331112795527191085506447561094102161991738439517518411984414261306052763380997668831539538181761564334857198139564607820681041356991865268571204622249642505203468597135594381521510377550472448761944659199155172819190984604181437651304643242699620120637454612705180819112239630667147618135074391281559712071513941973179488238666571428528468474826356748913478916939763358664031234324868469123272144810985574797735796268493210349031306554852037289737331140508457348605507813367829147144945177128841079768933912526219460920218854488477892319934973046234737830354145199878380651264881576774464283680278074264414897933662553791070962885446891785122444480424275347547104741281153107203593899836935736378150424119292540420685136192094613894865555897739309959971691286982974911199499159353772404971915657908670139655420273544590230326106871254236157459067477692580860220117112680661126096958212631304548249130551993775923128849721463977067872700330854540899567693701027163985180611540299008415176055953381413760109092432315619907716401336986103753092157808289757064644429053179946178620331317418702402242732406240008859683808332360488326967689451883099217453417175298793335399431281746089482731931519170702695633813929302157347000626242597281223344713503746179037846400446771074206443921291650594593409097694959266793679248601477316164091081164190973169852086437925609165162253691242546118018949962296320090146464729156358278377000199121343496447976076209577710123256170452629501847673595410460915619972364496087286378564642801809831012357292262592429171701667754489401075301682924820034643935735919763494030098409571900867016609736942383576696764079317743809777608944454219888048311127989977334815482505605895475081514090922080454678521177328461701728904361154605679132555774204124079105732732698277295229028654300774101997502584779246135378585684329155418043186489716752872010837396598073098940639863479546849606052614589249916527112144630223061107544678445432595189740126524810516059409420301585315455005531809976080188921420909324351347919266064419920111755396880521866714400159435239064033074713901668371115288892698904625200087220083797951519636750101052783555157609549007053870543452374400328275501146032029052258816187615480599754269384819409246259537194204622838704953311794525347540434270483860794208328249886766484643839452409019397634497128795072226573766761799137551124667602091212179208879710520481025310703676021593726570550485809198380939818868038859608328667579543788484374664277616089289400720740180629648971893736494679334101332679548179017077647968376689064577559057757416581483344022105260833682290437295859479892856474663752047204171086362127520392798481174671516428762950074386395713124424379369830619844523601258342553049713549231441635822471259468100858613769823124230055011630558021407162016329088517148452226386482309295775206654807392507250083278401892721893944726736704142744939312134109993854441846204471800240344937509286599147421535171396573873770672842571889486143494594108165632855242207809879699901239188991250239967829497969436041183999871800701327032414126354037047825754097324517600863336310461319166536546991864538685341327065071625945275874975905730970926115319199520802426550731482448712424344478318474170983713088974715077161972222900126636105654409939359125898323310701224879327128592860456692536885175764652229923974211123961776849730468306674310237154742501993936616431014152389540844496251528253155241837616186152670313952183243455228567015257912969311321463415013101012620029540711202954601399612992240810001638231633155510429491330202835603316493258625514801311065370810511410907808801772306897976653707402697101829024466288840697297982783858190333069676215279087375967412689573541809228433794509581672407676331903131696504848410967742948793333050158745462469039850628851073928897950280980330338566037400693282787972355052931134832539597435125844644845429655779355918150170501193582687251550494187512389381415446927135366710402646937552467853018352614734262440352153852191143956536702057393027334494419560740636089370907593463495745188621173944543505708331627828774075198960303135826785944249517893646094748067007413778423602158769590681035184981763710102517892884656420717959677304319927542183873027351713940224617272244800937777983861743759610239861677068730803448171359704550246783899784681121982150032612366255876572521691541105694248632336976424717145317302594316272003189479237457607581214679029485247232741207563041057195268642304942901416339260100578322023965217254526229626465200815388155861745399212880374083585995134301246347833124910261042489987121448598108393797474667046330472968482583573583338703665404270300384312080069744573325906028025065420007023128054942299462145728170267601045772153439103591638536202008728760104884502113606250573411304798331967804905907505883512360616918050163230590913584949034350866470317329123169595849763668828357311633890078058194278330499119072644177863576372961565535015674910648403727998891652423752967018199983487089674497232764592256145552510143059486917084653211731027458952714489461045960573428123831499309705759850418632935959172268402003069090431435739338834915792743133015430116557281042125261855786310125618008375164605582933690034056503706688696304727296063058232057129032716606740274558130369061769396436281329230760495222497347253126710774371635126821262692276354523021217075082995921126568057388754709226852638872489438787772816014619737607367524727172846915526060233527363681631090594947303114447228121462391847714474621071541535070459192702427370690037202520939149871965777270136781439124070163620132970545030177803266682431136291105995903811314824137777033123096509880247460073246372331233516025876636717602370254149074083030733689210342145836759294617288469667688958450282529096119331631697105127161247082211680446477917610971611108610185562632730957812448604275319311740132815499003959148002138255660343213707229440380304419006708073080385513215791060650181108229553368929393745251338544719329286325732072354944961539883560007667269836292590969752732171948626956701010418129123151374946983261178497745642614628784995064593629492005663467784181791027536672340439765761110032637551103840623039259415124975342157316562692933972282981427724729895609375569411977563648712187949807506804268395498459726881983052851296067120837624973767184239088531400162929278084104687523985600850630879144043139923892483364949417653439754842884114635839991100212938036465727412698824199857469805586076120155782038822132761026252664023870139232340262521117970010482926775877390056239821118876859178161577800331810422391389110084200058826490580467789896988425936126489726175474803718486313731280655043254971067043003428889467862689856217255590569862902701982471238907998068052544814745271326142436750597625238363307003375765101702800213427860123836643760004909144012973655184806737182416404307693619866111785566275447086582466277450719596651963696566886028561545707198852184469223472370301940219284898613090050808938627983666516985102941341920366895671883697455455588578641614783193352923362412638605406606253967325193485178774398754654739631158146964704116391395425463782488077364077059363096728084450328306761335984069378326056199315254723896146003151379461968799893144639561821387669391256032033963192387488877137364991539310488285119490975916074689503583664943897144858995291615107941100830611690298216197512641163849808761962217348710374626631258587152240866747196107455019628330981435900040224632018273928368165622672826679667586598550838493436711198118319418495024970788036821330111176466595110339757381582046913987084284460670220531892709970948207203496847366318852504778608475229688165010943286292313504454720130864282252244520757343052813903791004108710664897402208127858655259733097492702025385974967631900879856194204044121014273155886420231019630921616224020991257110615443393694868412510683667130903753563403896864998324594171337684607967861271135384531699756419428464773314392510523600452865129069754044920031204988741772972435969817094223286082937369010379964784167885588192520623791610482569561782558458543255539221823979100010015923188535472413327522328457287284921857546702804428134492897211422504345727927605794377819799652748958814513763944152843612374767843917009187704763560520839593949705254840137632896949235644598517340004549091477256837269341630184950378723443962607021811087279704833833089065798768324492216904861473124082785507097479509542462155771678776731326478795924757836975453252591002796297294865040500473165561834629668567953438822482356671522245528121731703557687046149164389910906859755561984971797398610322368294696706858599876402969605537987728826774438281008818696447871833197838964012037656882783278732346093171588707719081696981869657478783785229885477173604463737522641218397845210718783556926041618117616155843606255367140179753556470938162928813636394761984297067087263599314054750307106491385575911116613799163911643343206177845551543615409630809175177293229565540656473298128321030497503255340986593361355734568329241621029557732698193778970073157901379283940851073338777769969146172872328406336448370695209751265610863806633163924699840837628855487850249777047522959279043126044064273285337551579200256869006266892874470946799868986057463074641467024073260294454371147553151485443228879385641468914081843553051228284414190996445444820034433028024414435257701021669798253697115928114173107146525010395290148062944236973734032684563948987298836362500756237567752638594671654687044118542938546275896949329932819601718265234611011418937644154382912884822973959927794095874818611504348114186360010964900889875795555044784215435208041561951034646956977990450439189595329703448719292180714454416438896382272929005417736901544814551723602277611419636576985785697848693407488668559403419201934472652579253385792954743422215959473665793232398427087863352316249148803001865680394393311207415192291704924919355032622504381603266503435616219443459493842352487654147720179588508588527034204363920458181432597465113709640056875107874734650404162433309088638882012208766192638871787668997153507943653117780574257787552838087863851553986652699066956609473793143325736337797358210061496801244272898156943241752956847319322857246306651968864137825573561793012450243473882283257706449736319099297399021076209745914893764996232610693169006393825112380385828605887163461106962149444024715632835598842518272722681188315079811966033140927848841762119101303117177822786661539765709868839717469950040439181361617317856218839170437452187987666772597268815014987809628276592794889854276502595613162326162305319176807099214284451647840850356877397695558151739327189682783226229469775392412432139094281210481200343344631525923413077811393578485407210640930329381374879951557644592787857266642534494120105131319725000068651331145008842255482032133666323620482097764545209757181181791168385597550273116971112563508459690907828962621150092596981585658182879649472191680079091035453252381584688952578437405726586172847826868795871953715477512538982956453387586496318857970226795515366755784077893434049815814775240550397735334602027190457444173166934585174066659576763972830309390625787980240555308801967256140661379088566264565335716077642098153413463465509291815413342281402747988066637060880007775422656630574853036286151999067227883688349799866834427068283703758561771517781542985321802878296609575958787851056837113421642857458540880964773575196215551075658406910565571014531623490437357485074860238461026180861739758976891222906764535592174613919310644850603357446362631762094118956890165411451408054002995770347145201722483155814930263640245760374843124904588026895190631803601496529431680834415200650025675914305129473153165254705924689278198616178299100652636738578985873301213636634473793240731947176311397746545877471239287704457899533570968007215271569301681539408688224018635195071230374282525727547013449338318224671233034917597750338238299188899240184804476953681027947579603964384809070986595407112402305701197906281238690470805717394689616211316056407482872271382650490558756765804045535242002522033344365104744916547709488330354308138581481735283019095578727970460451622130946155517992634469818660012172872547897579819386161363125602001615859189318610778299969803639312689578919512002742035307640377156874168019835942377803002415958045448772820899256154550301797635378222440683015001089630092614124101060662065286545375635033244998629221691279936966106980086265411163142531411606076148326790875183935003975133201108887300054386063380638540302758922432306582073188254728960617739981570902352348715300767740359896081405761978381610561337078832505607275959577484941182124927776197522224271204237738406444851747229213147770304767664033518586946969827156662455026341325133020515350297826856074932300733645906360993643774715772351689256090397715847179606239815046667444976094890698266053439710994334805647914356313040608576098964289129779854610042979151285267596222169576404167322766581581934573282510655193315673215205726082383692700349691486498311342047844188491156561452868704629353516972668784734392249542240191317187345519741056550747522182006512914503961036408889859625489511156661630157757699095871223401231915606103272214125178877972365188893026059471725231950357628969906127065184800028936699820823409198253149153912803151569290034168135826337139434143460120937633271925372841066838784420292608774763282846083012180528448118001530181314153198966755217441417195456060897554051635540581895990082843801094503418586853733827521398734661362380178843032324739045055151643153987889712705513956133194717768848514149624364072627317301125248856287147304693995195816560029302133774822232286446948772377503339132950901889567760164259206220456145907382355284946257368373529999274989475152468145541935733909893996947469937301078285940636518759915226565699813410763856681295887422318542899732462804459639871566337308541774174428319245118246725734650963695254344319915659414887602142376883905786747298956804891489687505700194501703249428472475785277674697224753014413311838674044824159971859875760845244740208852015835661567499000322657984819420218650602218151160365541090349148710299939541392284110285006712618894059680413769969566124691771410755515747730821522177746836203490556474294726225333123145067378487483796179273646061781626340459583548977161878737905935775323375165961037598406293468569942129400383223390554058020067690936249296934796911802644373512304977003904036205907908277641464688573995098372178077167954290506370237715446474487176715891811583266794754051052872949303734466844968269812398413324433112632160165058603596906920681955141063758676116999337300344619956794052545577959458906755790790720860525195930186840546074433094109699328938820828140426757377925552846308257948201049568433654709638587591081014704122882308879024934276577649671084619875242510439034952644078005016091007489981576693917738817288123250918551202036359314671167043384425923094994619929519366340932007882352488794408760503480847738739056007007799990273647699411452714530966004671479323031719329851008788704522178846565465658483136340470182529455966741121322790370187713475623099776879267289890575721590741987085535270962591416338365161285213695920779241972390182101472975083100993383631125543654751665850863995914906606279228466533117976962850214884493360995451107719150595942035132878995670674176585856458598649752694327009898554118126405067073805554511795622202267133680593273506290536971038147151853337576685658009621576400552518163465166083237877732708352997367920541177757242738190679999527383461263449066707726057729018141810528009486392672151920288237708574294452691542849584973443270909105206721278249522608718639563806099711407588033159263740948139568729471417795510566136095485716410542899969773025310289781444076189954671237467121822250831812177730419862791308768301427777586585182843060796702746493501412056326694423851981471794204052425159675204788101210449305855711950956300987419901781340957132125226399643074706841902122092536266146253895644169586025435723779387047234924010089069826789651210660158291087637834171607640678439036914714436353556383367115905574268806772776579767864977351827375577915878531684690468113847717141569193884235055090681443002848153644362352831602161043648930183809610435539905108826800599400580367581231873644902374692221932568673306705774616120883157036717714959938364109886359296549125925950712039437126627785720940121297732766752413343600622135561277152124499563921343574889798245267955642972053947451634181289738116970126587975914500902339702869845653186155889722721511259399356744774277474633951150276189396063028576815732708758850251279608616558236756298774515402174205327875132937315300155462907283161674870544030111161016246044721954674583850577772690422877541703881930724818344987736156398162719662374091378224475750696189649853597533423439157325242152348308303070145751388883866406572252384503362528554428129053482892367464851857559976387542624849075855708204312349726237375581070656133731025439493380696360429259904108007305358533152793522727956602412247764708465207538156814561361904514489318013087918759171187174354500246569169571364993603221416513128111022148910766890210733952244183111333268526573362510186530936127429820086879351443780278169029100959843486069186413269959587907490973589225589458274232312653947729569117867193200120122188822308183126635831098055326317259956834973604959569829469765443445466511317407801164593652729368246713082737386820380121493737525144212219487976216883824742022483869774716141978676436661526918553382590113194929665593116379401671011948140551129607210913234876167100598015855984645911329845353042024214433506282771820116188661763425173977021428224170671220838250123358235498122096535529987400852930161880388741596108836917869820956577693430285791729560235359148389179932585861632203138705608622553196603523367154246657936989913146374366416315584863231815742060774770430115495647537790509193062882526660382291628713115288158050986465650721549259466316141026159131082165889690309942227078960661308724436407103517217816485375072807612422289657677998539597651518378491910779892647811731609894120451693797384816071476781785656190241909101874871266033645922192556522318039253930670001652367774353856586794326553079665553141678144641616692367487055638198741140344580038937259350130229509291285443540533855247185468513701753714745313390455544470128459822777790786027873943683357270553858758576024924702478663571557892706162569755022421526232819283339493421126194954260346221549682756851586168873439626728325199316323921140564095490121448929621250707046317101013060768691739316714289883536499759689701888621261574050346083764945787021184033529199083472677714011092762858108589471804244979641746625187386766842026688902151731569617986456481289949163612799318243549628366469166769684077737933204162890979177955740397517323977819968882876592102733872545356909551104880265036901696254799945903022280000225358424481989122884675700159778736781484493784317880222985995972221079398626880273349922256072616715189342852996059945588521802456306884184708639953619082903809110571509041219550542164616967646526124201285512102448370089002327482957164255082209055022434201386086758277063503456486780390513030248611707832397916970307442308913201365438657269280315808737797823273833644807127084243689780401630912305750632583741429708776942996493192528127884261052222418902967449781559772616409927472369524654721168795395719559012385194852294513877254643077313425293619868422142054364333231651107781311009722106889073452634436437542908856950801362014787642923312798300379131487282788556166596327386352485492180469201933321211668888576899562888800414981219787002987022686150490674484139473110292431512783472872479467531671950625176665300357405050204192270752925340944077735288216933778987469019308218316977992072034388129689286423644142178471888443998064601723654928588313480782805770517326115240017979671857233377012421840821610782894149696207837407367327258681036534326597385768143814792369641218179117317073314862784882502936218486788308927397428559940869176488864845252341255253880645985019696607139387354448682436149712457521397203678674221815163485966078603860610567044149953878704799960806032851903141572480184032791441946421994192495811032611667428934614295711457737374082373010797356778025634842885112355547994982185311977980454411944062247556084351542607004879455211767783940378505765320853855553597450938515945849486361013143840628321302133984020293756624384154895652836714928975614000189970437354158085692754958914256244555475586259857727988176035893802569532888766451331722563359900635395939408935396613818754944061340827577524675086834324036184079691976327209455827568416174853242424005990568237696157802835262406950044154145014298922453480995197482105089433703205419942661634333419135688510290350257459121500674888037658850365281271013418564396791248431670969227874024344029632909610831061354167180635530510223157691686278167244180044202772879132345567497998957283358761734031598862726926217390315320535025567915501980184191592545642991126687126086551709858688281113014394257019480692860164561932403700918499216423045559777100563667204273169063190707755144043731090227480254814335425971090416541958553508160281877135575776843397360561828921728059612346290962023741837765565874936957329465717932813734326953916756309643990854400943676025897419218444910363474193983132085167027618777543244484168854370624090633485177210105871064133112811654708287514104215023311548516714052458553685059113362376553032412696655921548459806579631901543535467641012695992268451024543190480485604293523489567220945579820283714225606866319804060614024565134509732977798820864278368918073775031332422041579022607589870129571188539525337932769335630165039189135358273806731954911116642883154965833076389746245122805207258475398161372545728300612692708601003904474676849432605101961617707985539392124867569061981461064329128049592011642556230428527439788368342435462421594547306763449632821968195758678865318050933877886362227170762325516287859713649566471528532275211276529546019890614924042484984898293979280947160566905161164066624269073425347069231088578634126532303089628239343984741761627835149741450222812871072506607603367089332584243417388522422384404785832840189528542178195304152801898786998894961702046568347699128540702952856588538471255764532867345979118843733196652429771189453448083043333167393685975378748583908514784953651377047176077472138084404288139622210820513129840969353756835450835918809008250030897731701390443723537748260457799174341251947451459220433988452417278359512101567580399851258069633881292705210034130210302860557234288180384365428438520111487512731290125534098110307059604276660127026447007039570901452366344183160872456228981084047681653322810308918009369515399988081667659403376089395493236579210679795753745248205001608552049198379218344635139916795600781004577524120929256139263074216304439269869440875749155009753830714801236632247412446236472575206337818712141898027111588177607218988458348946945366103512909275848002348297939373878763219536603910826649971832917447073853171224378097557672197299467169601364476355079626792195924739742320131725551976277498219592607946902936830873927755569578281852568332892584941344656699758138514507681921697404063315761564505196560307808456159292078293172151803927426862406300563847688813343026275385129425655630007990472213111471251992195580554786517697800309696498394671028448144651898174941983645305935409894344985115806961814111485020605185457127975634636111827970570739421179586070400638261113726177283836569880262151316434343813011558348253303535015645241048591893266285923630755872472782906708679023322241996953760704499334238305114688461535447847564382914177787370696724188100705374336050470339184818779330024690648426942136431629116542256420642597581423286996337936029913389104947887436374411775729661862995860581941111762628964177458326868175377728296275517542428386328655043177948151553003545576382311268520467967740490901604634018501051535034158317160327925817148127749080247271676060323945799757870269963116266023353934159678927116101635663416692137022522073056440494610828142187974665269784463542559653594211194792755737059974391857868083489836001078111314321760117811684313536757686253625597752601424967000910174485666042988928142613964897203397991748133783575232900864569259039049406079873337797802054684517004287428265886160200132937665542735460234705365279903844742704339663957354200633087561511330104682839164910395318440341696330790107445521020237256062446946078266030468851277223168758211755816979521535350543772219964874985025245863868966427457092233476636284902495992109230359612709030458688742822655034377616212759958455295883022896713479605909133184047324642674079357429062568112090927193314522196396657505017765721870077006258111473572416673428954585113253496349124108637993485064324862168332598403306283906299859741515432395852563356347042269179492382743994766915753298960027237356180972614505989400702315963504704917366062253934070638780873284693339872622124045523374725722490534385278228169701819773997360632067015088598531568516783734796939954959217968192463911056705218289134069176386027598892864875938857849870646317463857296380761020436174036213583718484256415028059503893205180052242497354839658626316495177462624191522801462570637639468214317839538794458739352737325819861804632703372684796974040755591656975598927537699768413451261391785185144170521355725617374682196170384874655028797084958121496163089049795651875388562863671365675822548132105241431315584236361918498823019087138311158556669661114903378889123052060645133560557106464362421685148806772499226178038830003860564399120590637730943442768639115458315205169868045643077914257383882868453560970797111748214425629236240231421200525091497971988426726162643362296391264977429491862457874397605749872873663305646255275852124022268773430963316678012725570973907535961768392873776692881672922745476032954788756009286566117273568967234745734199178726072789654570342131977366531956219449291774552923359356784173537963756181890019942324410123378436849314102141795460050131399475174884595075493760979590830575205356825414329324985016916741731237556148312460046245089625559884601584933395477470301778644646963726860457892703251077413058740998086398283773521767579539072189280317965397238901585680306814880972160987972085574842346389053550362635506457341997582987332054712822844143036255864032060000951831029712462958931675558964950765273343012515462906377870076690252102036869596407771347786693137719679974137552264688277379570800822958283242506217968914985160565562015315264647334797647393744805579107564937818515936186301597915914109232919315109777822442997086941471877562524924928118100563721132749395527856229918275144335879619200138472724653075190403877843158456775497906052667835576413095971843901916554166034259226679642389404099374598728530183251568527670225226874308384588695341816921525483958549683143335853698372665962239770388107821994973113669544578642348328296925581503668854675758081473718560036728545898470833236029611811806398978540246446657308654724624653336341158486016358250659274606994297396551679811566241096336363415713609540449484189531167458857383344435395546980699725341610940773071435317308014081928267252355307266898312377156577860204664929877472821806385691492230496030126596032464740886146375213382407557177758375550785640371034348685615847984041816736485672145365755081337897248281803863748382840975914178924876009311146519091422320449207121573131829986336020687464938951052440663084347370194793118399802378192493610911717997770488978675494871067857288680663260817488748767684751846482767149519499817926145797882901745433202585658036787285499167291687343490805499581046794676214715154573051377980454249921019000465292731943846495434633639632889094822160216468921846794632558935752049728661507213780807742703704797362249802528999926614849415320739329578387474555340767064468473548120531655409240986475523799177260657465411270382260847527830962328678281769905926484656502936062735311209653235103610058218987525196773286269048540894602398585322043518788986922576257463965214145062152189261155464265135169494931410101016350134650084167092558865511255819230981050719220582075629669714757529399138406036510642389723856595825161949326321114837408882104621802587857862253842574389678688893997497555683841308053729115661121500875053967424885346693446071112113937613882431375234382896612750958713368496601348827856997450783395013934496621355436902704336534772629465831559092600942633722326368882268845684689162582620440262572619905646477784016119271649376298187343930370719990057360598220152711819385313615443891073521189901819837397360474437768795529619005265389567406595291349268105459669003521953391156365208217868734412361631642293558207153391679470823100394104867332517519284823961065562183634756132600183754296134224243852954455900459843998656580523055299060997276647714114236505347246467783229742399646154169273961939261536759454042499026661465108165448189559079715673195323372858033765717195253283845117612497142218444124957298475220278165895763587434706518624876938571454147583155885941869771644380906541637984789163940046738490857683253899591730266303954824783357231324534356673002356363223425476383383047315911608582605313087866951787132924654695182044915832981482556299968106090293224144070542730976815186548984629301793382572266297662476762253342315140493897862833738558801606009074458888736879910202925148265480282678399990308843591840799681854691017807485053032749612493418974962845992005726304357580371432531555622606406012543710277796125856132033935053476823715695279677631541642107381235591141138727856266906321461001023532930182301380245642923552731806996919434954743363558052757418095683616875417137775405215571087934248013871457497323641890559751611676691005894674397120552374101283811006045442819432817930298459980441153616168810273961291900872156914380165992410908624592836365535821359068129138688197045485304853953895862184658346449614325992172923442236903279493573927079526633224243683620890533140513759268995218031442522013389607686679316172272745907851534884134750040070574353320992565902570777890685834728317567615097174012886466819174997624525741435109606563865371691060088795099210569647851147193654713044214157486668511979101445863708893171417247471286731911755715908409279922832926385526787704671769315874767713624902177340921347205675338340265340663809968483156507962724172346287575379103995447968290201234520175488663632957976966668574217859638168110416502797536900574124395721152179745609496469826474088307702802511305903258969196979559855324956472191394820828007587534076215158936011574756831797742882016056650313374105656685796143166325983764364311935856383288927442673209367871418630148073752604325504215270434643291770971734668665761313936722316803048685929566868505557880948711265928689541833689402644883716724323472142779269322223862338709194399632487705546860441832345399865826150194774598846530607027194823727989599943786041290304694794506197687997923510772207920553977237160732039339409026635601472386577345581367173314153582109368771092804009521663356498089365573157477886749065988439156272047378773706900151827285229812240061061364860394342419950303028323176656858795701412793747527400878856224593018511078658212843132492100507929174066319949022056592281306991660649089823052674505307679127035368936759458797671877982647375820597588992540961225782109001267582206538727050300185456000692654529598195442007758812331645528555270557105991102741782926817485511718251860667728323664968379344129138281892221299760887084336353151417069917695161585430014577886359923589980704680431830555834380234249579753612307757762346284063914321883739846061440687533124013969709049335366747420368752360684354938618597542521276769898062343768991091123233493382438692037269075773249674761752118209938478403865346582661052278302515567620140238765959579079506386521513392587549719973832512066984386674827813523898217069746751523249359321497781316323788913993452215737961833623221970586472786145550163234659206225451526070452371080475607055677185022380375542567034180043098448232547641903022974902295740970332831681084545086458253669333517985866869495368158727312400548894423515211160652023683621698538040486817155916631653789500825911674744128387507387910830827362131889652926184964549362084234656440630835737612812249011183658879506205603784622951392974956250155495433417698872427192479755121854054641556517532137509058762532011303468129482631203493104527995075628717528804657731826359947353710854207361317105043478407312636633003843224522695401657975171902677516568911221508521176523419371051390290125979893668119676501808304416462222377954871330247063162843790544138207194116887783077197234238636136816495920165794175455932818027108833903893462971589627948148138700635535696725614762340662061585749900684247825921961245328275632278223376787775042407166075451089067083127859405335314739986566956703944802958689697841671754100360487978951861020700955201402680761170470557568477065721016150649038386818809516323180039770327951612000786087122302682064568048908404120693043236084086506621724604968483261526065856782039972835472611042526969661753439002591054220733766267011022836627820162983421974290508602779148623036774088290749323201547690843495281631966098066731330727338085043071977522846251050104477530870333678259813746813765314358422594590175933814116083901361861685928468107570229187250779511259627417674619337202588480629708257395625932879590031132877376124630954526767597434597342064505002675289606967427122143935937308504941273283720455432388126701768308425206218092715911449900637093213971663913186866430879932423618211475385780428070265074750258948286722142815363666398746866248720681531027815350247898730656371963826613739322582799373020149707127878776961030843669261662381227271215404382035534851375207338140437733363249763894700709511737036666324562995414334323856753136623984857530326310445412533273058216934719287314455821896762000352485821777274333275187059178137116671707940262450838239952805837247099391955019941786029088100676917608583449329986734355854224764476710258186836213149380604182301116742064698233971052515626592502820732218309143360271813117840505304444870397757758033610790860956491751339409674409845224350584575558123574594769640945976335315042816251351775462572033287572683786750853539899142456638917537939407357869252705406137417351396654054563947463485472378198785237439949393659004841263002228523289587858990168220704699167778305162185752043502364066946092845677702875406556494844910580604512492212695615664293137791098033751793490424240931706509055539536258976614839552801932536748799661139734718403208726004695480447718692984398679861439288232494877646944776850100172550272054120071594135058303563131397153231491470946814472715366170439868507136012960290174089740969704146897591961418623261445542043125865700245773481948926788647673623460709811070066560387889803913588117080759054655729998159704686317883853040407185128299937554186292205046426939484869054271042942578024457573874646408132439317206280700901196280618035751887312138902593640574349778173578319197743035075198948320466979135764211462216678691193432505275043180291937256066558744726388053019442188547077606607611186901620871863614445709289811357057188884488273334613396253031581954976642492423670520923350865577146300102116667979611827879723053037700315819348014879034974331043192746769172117546792936580498548398901015213387959048182841157477258137815499689864752245037577902735464886464798783946872394557079916567545345699269648975487861970398794919301596707960981894652164945293167677090154782992579236622906717332416274996964579111760980204697144618931774958495845467281133928488866411865564002032298213943976620710633091637589732619042407144845758089627500614614896792967792401659284597788290959947644799412266955013530433296740828194435916383136906241649768700791636648257725035914388682146752102170919801054471634039887685610761466325172584096534176207129120080048878544305681776040399499833792927668527156339084401392452183161932548760766767480930172012461847601563231347799794774486205407656640023800505382955873366879817599144491722721099692939990162427330030315170223051571864625616413996471819301196412963513510398616098022754467075414497742591294721617336091539031999514011864785241163557771474292517073663727982007996603740140444607660721413641990385620747169478213614651364226929718590691147223672962823729245224169775436116328581081949167771587841154959788129629039138148101588033027225586471761494539870311384113663722908695372667659134533243908357710462067448528940220000095509165392068030774173892792568989656853027025943730819862919418105962992069499343870692679704495677367532604413396132751239880812205838936845957089522349714403307175862132101110920124822114783267133460843315521559913070521963725702513831466019361475796226399550978318231809811551792376314509737025602715263497273522465827724003168262609053749086116628590942778743101704883000917585753876669767284168587738432535977237632285880205340941360994887548051568480686041359413826295223540625308775037681042889542897601504720796042449516834891964286549395219059613267116082933754557491027323292541651500099705520028916414947693953795227794214775314450456705988050560156824171088007804317761581249857165703978836028744975234549143696136806372280070136449616211298791845103444107276144106126495668250373501602996370301066355769472238917168045050789674461657396672682921343603218218039553094657852066088260942775408977586033598483651337388764795344844743593680279174186219100262134068911262529379363717124996228420543127472961618244710417562910376379201047916264712263284396066362505261879450299384758573298364720883573408144146684110212461523921409279722175793455120836631618454992909073314019997389662615463514826972065338896806780150167735031809396796082955402054622901090799629072490136545468249204250618592137691197455537757932103524411738447192773632548588712448670134121442385388768867175957007165179371148365115370956283193020672298147829353359728693911638405155034127771227630812611834330056896218925583031162138884259161889094212517820533394518460825648675079851638061343499204289457960854517481843941237142376415122475663335582642918271452123450378871117896533974829731926410110512020502054527024734673708595771797404771691195361416920302827902229772827680464210514084650517524073568500378738834242559272579919743698614497062570099021605731843186174415597531112645545624481476984237684472590668136208743657087187467738122471182377860864217499493588108485720910755814065545164927738625233134845578331952115288626372487937961557016206380732368372679397760069801790516868431234793074457587151758902866397639610720685711074645613415371537664736335923650802177812799138433012346637893320929180418439027750510759733785436436265569744085846335518699149619115074956065691224906062187225952305080058198520960893857702609165557612706167292967421802934368613591436156972291640771070979141525903952805068702209257128274727774431067657645354680937443439906784174510564730151513861076373023728827121066419652049356526759127626283258976607828121574877793860574703400240268570702349880253758090433413702261121442782741610230577100139034716261672717407515758705456604340544106114046977104742086991146041795284046037060126108573165979962665872104549930968995777080740087289258266271138224699341057208935946389298191456018795162035707699914101378597981280635009844382982862193112778534589045777864018531877907011960435144780404893705674991408351171506280448654231714911990432835567394762007314123441235119964887329483944911597408768146934732741625795515085435210383882250796384528469129347523524762649438120099101916121717464866810782578000165356789622755758064769298967881960019958047169660467447005750200889493458921830788899172041525829709733324511351996361252801734231111898580437181479346747862779219594142974181817857051920568262736071541308608660285595139182803477894242265198624693236071381230740504864961463692726628477509141417308687429584172529047586534020632308195037519008273665726297499031819970805691762973563102851702021375454953114809709936361575502671879689007070468201692206627387934573114596681961623855946999704027762404909191919431920832343543022515479261746568291722646316304215436791523441847876312512833375081580472615171290207583507024923758845578791351039639429464661802052440163594318075503118119598615733996855973525911643105457774852906044244329791909734288327100649601536872989497725142924791451556577733421198929619005785240425120648966375978637419014748050761976279573886720332015158594487502946949538876119155852464835565745978057523169325844480671036388595000175503997535034058984362305115837486033151613751480593877609357320537844972722874419555759268305248920260740123189257037078410834701716951618754632212807262137405639176710078690961073216777164860081105752419310531352077533468315282813755367104457742270291546362009124109905302695793511010728871796160130657968593685053836332446434823334256737857264286165377449168213023155694119201512226221413020488108887059917376495998771984723723363311903241019978460860817200738534176098675581947305043967670785277962795413497231538718276436049573779367128469955479897535196969312265339930535080357633338011967547857330669742906115101014323166177410807973687759985170748258124174228949311165881224448737184926964498948093689451660692120344150967128669281787058875458510969111172742563717322332702869587872669113528645668696269062960244101241638490707824247851065208357474985859896721087082341670812364271365889927040734324334854538137393146818791546175595717309970600835558401055275152671419216160323636950949044048391400402419750728607978125961296335328374536925899750746730222482488579641545313020278979872220460731019892842520322345092969268507451141431185632649716069934002142324384062180398779370117743601545480946552892010442154862155451026157166871799302464122182077794499801455340514344425912895280463065587502015272284115550592100912904191930195034416361769499216499032457171504145212419309043068178670730972157407360001188717445412643368894716645404685816899398348065559620352624956785853709635612595699579740257824989905552917971000178107708307386684952969508408276775041846671962438295894119324441260845508547299821536463855848454612190373092271921271839696653303674126369252488148529500631115639895192726493897876510057395911427850281586025919298721179233060224044152684899648828456230781231002137903782013821068425835347725219179097793882054177951930228164183483377762254139149602327020462292238518929966865013738780618301472449478747389393532789362133413798523324070980391937311764927231179132499837375442423319084247328375076090789507832986968572536030937009012170979659053695101715367909885339342475907330183970726700840053049122710323319213456588637140464614196606400357338743366330858874016164767430203041869697409542417528972710331726689106619652033853055381158443395640104034635190320573410406828328904475090666723576147170276230372376977112958188960154810382697079753872185880830070467357419528790838439506987612036765957501555930495266891121188395148625476925235306405106077511048932870968398697583286869815953706882845526149857012384833092099251785897490604390782201411623914835507450504947485077909539052504441167708399776635070402196492955745512075323335967660041881974270951059367703902922336188854465145302768644672027609533789784788333524191373161909675707602538702112481139987552621230695418615492752040820964936492390450880559512775727298702470201399080914253174184435013653917011625294648080917287035599077009610512805418050543747460270726465380698689006787485250196702150743219766881054510691113725039170293492003217613926126515208038446069982408613259203478870335700332329055417862202570047593800871428774350049938000437939059743065089064008813081447363845663497130711334177497277732657020812746137061343485930451747900466132994583777304944597783090709414099913180760140244010008206071994255834993500809029906671885679232822606399145267475198529663818983938806371601508108156224886714061995743835510832170198534647880332382040262810235196462113548739373307120771689466235210777442335607172872116214020573219297682176936499560457092770577248651500435457189379140568836844957468367339642410931317205520607897409802397491505336744259050229469806019425470371269004836963927757541859916412372759285098032464110838899101175317402516484006518929975030708320185721784666504826003454929443717468935732277007226106042968424130612107317179651407889728899633040902235896070353729491044782117946306177983668657792351975135476455330705809930963143865682360487940901149063159268802239832829107984883806846962480031146676835361257656565924444483693445478444088390879589898962481036235592022069704053005380669546452198553528043663688800832941557202847672414841040396652150720183623364767872266359415120745423670505683494128232034823689504421652448798345389424429102193336301203303580824320936190970531720905033604531109139941309069765132268237309496068210136573180769792066028462359092412810112418366611598854493130587815919379770971942180546601608919773283512890121966001112007269331116234630691638955788654398745285153852542385655236378478236224322241482427599148245695465791588733957342634115314314065132671956755200653758254031857205340601339523311005270554686730883001342924180105278173138548274342964811228630495047419663625221446804989738275998366666526063815425549272583427215594871026247359453752172976691402993081452656068845088105037175804867004926288937239294188875277295956050726481052595758172326733236708098253724608063458337338779674034622160196552971443473102496337093522176032468731091073774953216501514328642696602670498201010047428299158954299861136685056142625324173968957841845466982634972369222991314924536140625761490288530965762952582223085488515319450453147488866601526143720901284641104922988147992849205520584277436156469355182665482703177800964115545024765968844913339026601648280431643091330899563478311148912046230269367869448751040345638871611315108740398753925796129000675397439183490924684041145323166115412861555865344501669322030794369107222429025722885760687399283104455605447038527188084023806111545877002114916089390218239346004325434158753549537536898190648475322700790367939260950775597491843062356678864329569090694614644699668076451262608913862459906878212315947866450707082222623506199158817191524594566261913423567610578292443240014600800944471963375062566515459104429608483287059661467650375839758767001682345723244985510529795915507603741208013830320268758781484847988462365481033564960440784637518223615412443158917377106996900793414699536493988660503411175750067478844880733165631440952944273608767887269584625580479925992022669521129275454004310034168933082295466401986216913650719733255085268038656566831068056943573194686840819531350679723184654368201799787938472659068590415125991468302331492259813714569157674398775756667738730742331660539028307210908733824908508718793223632570834445308807067927893235793064009930118559711667127668773727739891798819431314115005987921158257239762324647199731046479714043737838921489934345500503910111740045723890151992315671430939730133143190796595504837278956614398227359270683272140899074374232643930970904808988107056014259088381719385367949435982201665568645944454044422972576649877119696244025338902118481559802102202805259596470529592629667809475992918961520728907604399271377348414271725921495493892030749420695449611194681745562375105672528432692110283244101156307679355036707547512195408633040611397164405026175405266457607051061062975003516572878345909419048115757731878327486472592233747789964305648777015694465821749491755120698954733858375078122249612612709557942764444322026694249546025729127270258113409474303706068922653085444624347372172693980481169848569007600274193044985511952057611981035503780531874899290448293711461931268262082267247358093460841781233383056447113290263754584995851605855246830384672007293064777839839399872354589958656130344247300669741471318297634837392260594642156665734479980520152775877076092897988815747400105392036877930544939924977040003752638169169351656402588626167915238449715258346141044602303486004472818485736186144960831247681982235779495784073908728083834513641478721729245102667915347691421308853226079966761385774727571325306270861771972333794422241405620381973356312827923105530315845106835155081495950998541747808939572299424000453420814909023362395468124307085714761444989885675526022214633189020369657702975395522158492816690254791109727312147872358221368691357381956311988480661165441036916032177587018969439721353880437900049420984096072774481551015750995662502806655733296754335853375597667874109331013352455704364578306657630218478058566984600086465283898070556180633331928078379027297914574910526046896295637648828377290624344101629988982211292799399328956513975861271119279107194036152678341097450387102769303599252483751353769731162878118594492569291561229927956798984120534062783827705742283067203620131052281737180598717310468147568226715370118942319213267251885909313262071226184073422876530178459368499298949530890049173286947324271142868338152023803767663089412512824371168530484028474668228724160819667558272727640443798133872782012610496518692689587663505747441439613372686841854189191905707406565282874996584745768446321183539614949106946348004535347568490267017617301474850194963160300588410014722329288965537401736984919469700201354940165997996609641172201984811832938295184801104606456168879910776682486901639289733792217762315638825507647727459224175909417189342106105556655451697590266951115830479105969094704422149072057612118584436304941460038721942032577481132053251794452806552416522515444770992734620193508084424124739788985748618809668295998720272558453234097961992508888346251100095795284002484190799853013064163241494440411635697329361116119014654291162835838345916851263133291092540098092737933351830551764073000126825163443238254396947861433647760864544228476657335795128393014590835708763117744424358494989147444216645217813398502314842358964441490555619602626464730850072981345095805971915285792285677503939393886139849796017567955596011994723838114569597456452944057409698552866605473447579735058701494532091748111321721329285600705624306453288753179874693381892180863977517993552970333497605645129619914427266057844908502062190233075458889518376162516850127609814398418240517963805081153818966832704994935257345961336091146043288870265512075241380454376818998629583341791253393480700402592210163157044836093100400924305198284302158740682750218933134143400038216965271527714348916066717815554261137493979692177532666054697855911658835419862626527674789998618943946818643427323335911603868305111434476528610351161755071259664041274914820630495682551060529132282000909738091156148338293709303924752757323176033813798563525250691663833102367258342564767791366792611074644591213728905982302657361063367461522699664097927778135613312647812694040214068965365680187567869886292865168965077897917747896139682551727259285012868862802294572995549131162422943972804910265757245214663264320144407566520781764767720954924818583747863429788435941606858182075706968918162176923376625625426654077498414365171994524892078357165540087338089591026944273943437880527570087570612232349790291391524884120488263024313571611815872677768776133621943300378731644539624257650374246179073950711230203550051211091967251876627136556467414306828319448692184320395797195867280464435835734424960992610233544927767552078150155492869379361703456102783254343799493078134439668764536358362603416514458517729886138223219895262149337473509943103797131039132193489244334976339436764309357625291374579207028738136532948578104970511359369609167115396099662802035469219175485866335553217551338842938949398009127847646623576902325588619201783206480362297332093799134214538216048518411285031622799988630368533356901496124604531450179489010853174653393605002117371792222445997769317868617908592494469499939520535500241918074980381089101786707152134990235208949515211515975701934459905132286745983257960813957177238024743745032156500440320116731656222049523590330291994343000420771874739277230900631273025293822386540308336298142208888450149802220773542399047213930143127206537987950078852612724756203553680697303109922555434079259910319464623709913882515648232807475670797171960929467947223060314097655717706714374971512579809086662849194617205607397303033588837278321846398148108420757227336776740423448654542818415913413625991586044299088046652120255920478273830405241029200854738601588002423808839671926968378624168600096535759129769048360556659146418012091726313121724993838118557274386011723583132803745727993131273589051845753465743242218489523371398425357344478643565037421238578695995614181845308484931039370171643477255698499106006378461553636953544130459652275162018672693039385868211091588052800892611962998355047512579912896058718203441114166382180697474013407488334828182620232670520111145817587637555289108624877362497846359219657641069071270161625772400359406659089984939683789103738563151823970228269273304901146053989249240153148748020119213182054100437214457819759030078802032970814426583952430335549691375426092585538287154749983214424399430155304841563321484081706802123056750336154384294900366996935242736488040513769132171341550458689383027318366844378863695385594358430326571100443001043137085809937044589263691868735378042456202549306224121365320754112139013939889845126039534568867282433462793429812489425286629532940114374881977484542745574416689223741375890986356800077222390264233197279781830128042031144216068098493778920016418229027069468303950884453779611351907925787495463304803547290678412599533938283549366509027678595386219628824577659144469877716644889795201535183702927586097024860247495420758483296067054625162804284391141694992519123414236636513644996970381959939216664190925246145929091279523924356456443005189248078480646755589287226097698588208787879184228337756618028579684889655209715571558866409091159831514959025174937413639778902313216580059490028603567001011755385330685679297204773848295459096727802562479199091729218521519518201425655289749447615318360299600526005194544295942945934947438412028287152589852500771881233035585980653212707136774095897546925016505873780984880037654559833148161535611111406122416512062550367822056197625592097118816559367425815497654448402548731771781709070875888399794119223124313900155623773802422873682572877460656171476954632983228651966005889540516847382154803860658571947692494340388296071192618244179132501906378283256875361836740288688864223223994995168839334790276834364948571780721528845952165329035418987259493599168267081694637322427163842230493473021682776710226115141499317967891407375054184822902012577964447889975138096854160004129004570090210453899330366584018545577778129105417152484236348595140616339717863370525526612564983092843810828359782943806350387817579588055895813203685979282208753735766712142126275306467935691540920172659175589384971446279302787272134475584394687798040700228540702289325167256966053574651494963435195543618995360036173340684092685305123119144274608627328478884693385431016724753722551592478111653802530512547432372621509522274191903521015912069552927992194241271278366641835894175836642772187047380462505745935783581066871104665073654934079123619196182947979844779667808785559264145994130764956333853686202395739292244412375044664551054193771810663773567765727655559622692827603093753897201466418961394171097680438925590678466010971644133602504474654715352596291640179309830234261131646827595914175316009579745105636696955909927300665046649740717392182877892012644135843840303832083447969982223400683659557302571865193636277586322913644110902695037478711822072522607782460562001436320480034692154261252914611367633170745506380870975430312287580605614827416550183691426362153386313469198929451811058274208899987738036002151281884012789105793309469167037944881705450173412710744413161051354373184446801215340790402141685337293065207397765750629761969589692332001221593499583120322732752905158796633306570218184331752485728859282227799933553217611921768441514514681260667868342584760968079232721461829094772605672676528164634088826022291246422623793687285099982888585089931271098105072920178661275716184308740932951111799834463739626390619690016071497421624935746684548016230906172315617093033524885373266543981244152012137619429703327596467090158748964580729721447362399717122240801221168616906509364398968624360016448872524317909213070096768639719381591341255868037631427092025119906211335682070595048502284746793495024953580972822915666588413569214592079363163271008286744699751116068951934845272789463281888038603627232306455957061269530540925636733156820541572094366928807942899497204170899359787710966647327504791507753945140473769251803991632286794216267555467287511859974274422779855738542368730739202668387513995983391999249113292719016671350783071350162472425312715724806192572685373106387681011533553342011835470419017055138173658451106581395695003492428441422090277159108025471055568469653877398948074501085736530674684840747463395053762848124666539364957414126791032973844702401854191475651407733033373339966587905554775794879587437517767545655805001862372875449544598773518270842780496842591241060511226760795107149542166156286510220141332910793887400546984253330125470224612493897989661187716084959429318606655827810397829583174410842508716227194400853204408878147733327960168611891271796158066495692280687171852428631952758602112843967252935928630290008555281609250054289635402631815834995309254985740425435815658024768384889606768140726447747937427966051596022406830999940873163769671885498642019514153968086740566788503111653491668305842887981018475534808716186410319468609064682742295156836203588365753804382142431196731230712258128220188049417760755506239793188811559494203907208372162399178857247384269311791762212871195382078502709394189513426708171270247534760797671709588037515944083840909344840740520004103036604395113494420524032353330885785137366539565060406171124840262900592731026305779826862422720106569357340725978612446951550209266794112634207307184814225267901907469308712028442613277762626766726329192304905030949127975838023669499547306799029780606447314668613188196694516403881728008008826608028390624719115030220586143396556312409828213471112800683582358655088673269217553991895682041150892740187463146497871488333873443867553727139487554203943935180823018687269451156477430969282361316083546459740685215725385174690198218529661739177838127857995105662615506902204160174099692240921504067465614491984752014473131050298158571746456673789968586935313654161482878857120087033809545674399308511505685285621306838567176159465682929618134879374899508440319727419606164968861085106383179724950805241456098941869556490428807769580496581664845082973488941411613842214685946181122235003118631391100669927611729443503526737234543802413186879276606098285750188277718398136783294160942459182035418886294133933374385924864001910964742363313740490652451034603825906729686614970648310422638112274723272956798183359737605524416173919268542338902836612643683925144434488726885971631503426143307594986001755992556697006174716603463346212587991356147511150777139167294687744785426759574779971475759785392670879968587850138949428848487828610911419492018840563322194704979087661504701378046081583317554072445055247922982378232389756904486809604951852203932624776700195106534832409061415990255363552547200160531239346682881310296664340409610104720821844500159915484172964157924897802653114809653332782309623078721262318814530596075274176346662039443646057437290130544828504886252145311312930278227627245049695203685765552010813504669336057301704330426958253303171940131031762869259388082774267112525476991419525490843092351834577967498993605013296113758571514300069671660594422909585785166734511504721582449409497409975009545266769302453059731606816742051355732145956306989885331154476641763710616602398641180744857620003150966878050134399363209337590798610959310922362289045647657715103454422031757291350528086665099561540941067539019447829068166525995917716785963185053925338876796990393358611369780365040610147400055645031756379069279374285682906200607399890417660809325617709804304600697567419684581388113234001605242578543139098253266140349335516128604612707668855107227313942851934472543167435940612614160479991014286414039838101615518732647956357065995879561801762864375835265501428444802985166700262522797715795883270859031024440071949010532954328013531474730758724674621625697159180301079393233466175166739044431411948966855889196603271894429920508382925046461102178233797625576423952820497230223492869357334695014780724730706913672131680467718114523499154924268880987858246134384867880272039242292998323999788359978271841689940067067598623256960193059683801400841930361272841120195935723033953611192644851060779090704016595917765485013713567336793309461859596011669348565506540184900699385815413867342085034251739677819099456457665636022192126512831257528643712528730129615874493427309192942700194292945153192609538620065419300397274753576177647263973582755945855236251744067070363480348714114979448577088396428488153365474291385841160687202518095399825557180705466278172424135694567103786349127912366574427866151766652714088064437088500619552893050657415805767178932477232406650194641089372640530279162291388866105764982753751816975321560011416030755872117396391559800386570113017115377770114795312803865870439598687331827606544160329051057710028933658196875646768889646440733137192231884703197212682088043405385461864555385877983503252183972889713634091757688207570138917255014953921234402660744622980871482899646450755732221722539022782717107804243840683573923967235756132623974366964337685085993586234358217051374825607963305719611295296063108679741549413267140680968586383731122688603185894663123950726245364859389477591847220758294864029968539954833269093103358478543780326720416306994857255822223637541647589654940616166695638012871837403490324712655739192056334492624835594034421394379715913019171568465779094916314365851102030550020660952542468636823183389789150186278940011121448961063812064270237465820208096535977916489356550660832141298701151711534538550504909759724326911882297465990837344762837304023696871218320798316228452543476726690904607609275809289988899091759670139182355343212757030045755086734915150091693107041525394434146395936841208239721495836360798889912022326826948440271635189659585061754173116124832802909727528667851560869772362130604847931888395996201661527593750316138075769613091511356345099094693189069476813796612399507214829290515670059594496102242538345665628217155434741900937350838601614298415285087273400326058324180032085797147492385904219149986588508095023256734011881405279225865589722040464749800148505246962858347822906056683441609159428040543648826248965456089356892891036642603171366392566349520626885344427802092328579687189191734533749972329024170244666460274039637088901764881283436099957665013410934461879661280830198335920872980372403490113193957731476015382757777734331643084552713800524036275352465035423740559050453321179135741045122299872377592322580497660523254811382882970786536670207371432204738324197375303858084716620210948693733095713606470544629264921815412040767757002698483946856445364614959547290122332578156454833539851049688851425637163333533008759855924169585787355863810603936664804018304659359992750174002568730817513507323004786790069876434827562495616182904476509641693107064370967060814888466453804834207300279040883657441557457943893472958396079330666347019635079782875271629363168382466849661209909303135617598198687638324614077484230967070940083881263895159129868215227270434899183748903830003997611080543360761377334306010013325148244942646686795568957189227277421645580177514964715012847916284439835339767170261059925862314105370123722840058912913027572537369963922483836250772030775817574080804163461323522046337723212982200901912137785503472827156051787104714943608316940151377660401997380955217242188188628115295396372867014992789967121108546957865512860918072572008964942748164365339493346531017424282719981815225400393558848624940474786551477597376234613664611282653569855789829761927429335190963381221029267435300433674716661201264750756541349780712924322061999437285616184689974904787617833549919013098270455234149001231144085893653646808670968784890826575673407742173078966758900251563661771828438510851241102034820350381238185468720539440047598677132896316331055671040016830353602337180158438461004495485059763610308793677046729432675013561270052471641934939291819815545480379913980853837556611816166258997719870078778991377327362580187744631709232279063908622842355659221506658976779519904018199342577160739168875349512459637647716330688931719672565795459071112419105137933130509325582192231116766567130730493126973084965708502067149076908976330007321278522219601499706855048630248656380335668386894040331724503395636095859636320227701338278572676756220469401521027014150152165458204166209864200361130994102220805825002498751667100380730413630414671540463757409671134350890992664398289605111803684769347859178852147633071094570486195533528423805881806117530062541338472391481855852185449915442454005011577081333373760692900926770027585881906609606475600275754623414788628940115257662580842981745434446298628309049862809413619026942122153914572589184553699928977660087678222234397860816498130655724452304426722986308892614995418124091199596533015846420542867583941562425867002110756390794540633747300829264023690078342210621105146996960832008442157128925886461834916825842247975171460340501736123335386166570693440882107353457545303846181017818087862967375714644736644523666656048243942674614596054569025022527230742930030928936082221720144904234336207295110607767250703300704161731211094197893121080289049570431267071457217013942937947554581382699389006956245786018284101111207780169685326426987465159720896445766596365614271239921738139223658755752016605876423813300840892767269712044662136960208089965511955306079032924997475815540659027984508740743595051742647332454190622686115440337421689241459994950948376563779915121044194947570244530299666928279302140689761761358971893470728703276308158547552138026859060699581724773266347422158252918178308852098187848170196962702244774700659471606038352945249397764631113208990917553716660041533629383886105602162230729126994784106523805472223229232324955883347060768197103578504301977465579188642529438369856073071713163930229830043110619385826973040558844406451526827127464863827080017795496189290871512382739094758082644993669357690679347621247446945408334732362303956298992815072644575554396539555692604049124765020823603586660916834193694248796411067666779855597328428929197468537964221288121447189665694022041147519355798832548712515373947752597205247638804455083501458997176421587179206524386116935592582847929162026933644884252889524369121434084921503703201089722327298619576597412796975516893734564928636752245503696390316092501878742669860970584922948799874955300190846732544484547297746148425499802759442068700637485304394238432047895861490296509229609132990020841104702778641052634624132456029675508677534623746382596393810355720301018188387526674248530739738305097532663256264231402192549494610460152062863397757148475979389037917649909622768559798951967807494297472228771677629984036907198664444516463531643153375954767467494586795419614603399024406193222245428484499379834913631741108016152327147334096924381250673902662857659767764719066582746301616256081085074646865759985539254075798195114642877785831268533461174650096978693105939529760878740206829955991013577578048288916164112720426189093148586551200626188795951347210637712447614641904223289865321966285522384806778013880184019851965426559797766735471019634703383968903089093274765111826231261689622239925938431920132264945236007916389071912817576990960011967444287160624300479436458289816289192235905058692456435978705596258962436842102497785112026987231874836901221796748501497859405663814306658576870649566590122229537717961936183536714524084654423869222124271921521718641971709370487064332185247529514809295049136220383466709638816233188899736835218217378243935554134715158052919240790192135848044587284261070721850046204747273308663581005103025340429972119331991839644296471871555440801762766287286724418315451734013363491417855092146665257270218213337484513625373525655123371398733144648041761911581873032121355641336259513467092882728575350009957778142240112513096686409539869884811043406329046887728819955307711619904748304589347044842964994702611630638088620046302611506661700127047782876330095959747999340835450819753746768187073587500371406787941944754899114903248455766048305182241200598723928029046621053459307411676960124718250929309710136194574892639606413168111148498264097171825541033365075073241968271135121206748606115807857623873577405809297911373301508653269028331795845081087784318503460697569975001706144429646587380755566252824782664943848736048791375995946729630829142438336185707190989616014921581288250487051878639017804902321440689771111546487207331159666219719997670075757799829272092125177902971847933513737639423396086401505871679636818906875546143981439368984373282251102674047827275827156458238067619400171748037800040505460217735752094600250126321762438300592096924800968683934704624296444784773371504906173382780138472738357678450688080485872227369887348392076937717080385455643784962640901024144039894159560513397077043381591396074977489288201211834427504858154193223247226863099491367204400124419964856386139924101009086016107839842286084963388510227284333568343455720845243615461044690169280536125473423649180998083771082914880237705410878298144166209991077342365555048442075810884180656765882580501143400721209176126322435638581269544025466620506070079390587460907283676193776864282116747414466873810280784113845598093210681713562412883905262395663142893999465022526235622664374356194826617350708837075835450928324184443095715528413674180810564149570954736632201788677797966003894145914646813057843688584415008833657490191125960559152531227151425097807946127918897380487962152367424253549147240160219189168916218328313096092324655047733102673404316556530763504338078178904406631790181175427891197777568104062900504578693550398129653546342966943452367734262239908564321742255011166248713171780512199917117389920967472766010961664995753115806382387840563686307632079567943117239165064834039524206582502510480540529256530626909337725543404082509356745988821104308377599132004018455787310529259572780774757240656840725489502197234845589525169412195663378345187205310131717391550046047512952453169374856360733472180250404479284462769115850105196048665841057021227138677608175697539364278818546534298558015894008455366197504423197031553659918235416040559331137557860277568908569246801454043128073095923964533977837448747515376551563028514764881413926813623409155081750971204471687989352979668951673685435452813751611593768232742255142144018349613568816572658270713915916470919866303388563555564332729052065558197341532333189980624201278507454517857811185688554489947562610821203609472378790645608059253030556921116943508181321817312713171351339938449435152311437163123582471718662908754811983350354863011857836979378205507420507150047481830124163573755401679268479610558772562591144346834458192258866243601522317533667921138046761828133063589299803026713151296028245853222551917149768910494033933502330517789283211518760508646403072588149338316120617754976645249420512773316626696577228488764497473950109649230849987524682228648841391702228951617498115171417295720248687896799118683949924399793299148531246591414234426011285795782793488015615185557457765302762368834401348070235767825025388957992878198649861243709063877430815599821474113970808235606201888715120609953148415023561188151215599917092529322175970398510080799609768859907636343352698906602687264782377214878544765503218657508178685156563499845408808360566140158304943398650845753198129527520455229451165374190537467595027666498639283484654431711625556133231414748045099337392472867633630792018760695803581267673498965311725210177920967245848173423411322723948738773613340412993628341703095780952642347302033251699853358135844213881560262920872145452659506763137696999629957715512005174567163855872410044618806179110162775411328335766833987336480885532205895645915812724489474773453267571569461411677583583107055364444758118834061224630857728335662426521540630569418481434031636670618212415166760565237967623272215398825973840831060574365429504755269120243395386698732075994023393297627176581319592964805253730581458493462105962749738925768437896235655754679255240333159813273104346780626739846298689482465840646699968994369023152411012413616474566814267668893100312931210289892474354833597648616470877588883446108697731372179706900848052028613111506046351162699381595580270823958245855556165182550095483042384232867230824570441818574967388743897626218789163400611968642862099070707097025781804107824065849965325397082351696492341039220641896157012242860886409097983774110788089126683026714158213768193973208962334243228840606880982422629458864051817602160523756728731570647546594803324341825414034535055615319107611165856526302131075620155770132384196103490780972816020138659667762900120474150366619095055878139097254603211294092709238238917351762066182899005918911477011709734157936536839072122396660385109974268563011787482209158347474981674390542973644768394440176337759889541354719170513199157741270457665427498097764096287196080502084667265620509170907914201876887382307930935702507980324149858816748611201228928977089816723537233500630268905241010879430549921959966815746169318380284672443839389308187837057268634717299263217446875461858938275349842197345343463748115856056707647016120662723298732885363157090751771081500640565843920788795303605308573180116419748372102157179736289519257894759464096604433718662202251800008845751214168667049626183105329190489908202970019017951059347017320977252325236753655032814962022196889133955229991946452489550646988072696492313829616850046144829002542488762846643992779904926277904532200211544631847358408577214252861945292940041137976615594061076975318360740002655533191970925254928949479216809629033743639122253560311955546655657427558983605238640979379253321334241474528674737422008356278345965888284236269781650472610737879198608113282957596208847687455202924238927075494616136656480684993694672464937170593520294840371540982285329794469931183601990327767248529975473851393252085361111860262208717885475483774530965237120347332933539413705629503033186325140572231991899045028913769187120271705652303635248750999961333086417211859613855988948141810959379295357284038576016297866235902541762865714946880139695761556736246108315009832535542830235419853383909758130725045135608021931912483447104238822215574597282532978409186007109528449350634500843637649114405302715040563566877201019242404023129604147445460482881056659509909333255356914849537779696599924535493941945662628769006485149832508406223950363459526610152716187075009254783228943798222006485139114559628095454063029749111212189474154554262338646345344785248616899766635573332747303117070432822917133047908594390317641477714308733206551456992008445961782916477552976788447960591344891341791512154662381305502548031992335603542203949994564028924825918381248771537872207716043672666835026389646419393877259383995284977057303286528135003205286999672607462195935486831354452193144459408174947015960598861535356100767403888665416593755160000432246860886515804063028393516444336029069371064259900537276998835761386902548071419959799605330328869298489118259766442406768590798858579576393846960432894697673823221354589147766698051585312309880300547186255366638387551859329217453495495430709020197853957808880938311203372055496770838395349167268943302435552729182556572984614248870581938422015249450886019023013924959942335756372169935436436489450224475417100870075367405138925405477811996119646821020221976734479461887496642628868549993174670483874431691764027739172568252004734522130004547705113699420318679415093569738172943539345396277005378742196916514129911109027837691283013357758309533624402367643761633759549391286128877658671988491630423893426242199335742767214893547090187077882007812876345462628836767663632352908660568905002469213871282477261386271137220960176666896139288816288678023226524439659392247422017839380876819629735286529724112865228098741658075939753223322215036659823971698095514690853280251589654221331055189649437102678534238562878189356325952507098786939910051144916425748190854728145738769214263209550758640914379088873628753200278332984178425536343052519126877322280317701861547619465234966109161649941810927205371992637158968512797912503231647124945313359020554893003897227006264166400151278894936665998979730093867290493621777803209172645320055328316647321094728335851972878580802462131159169534360355748228632387685222270944345117226302280752296645616514616370420966040602254568702711500620541607709071223622893139008069369331111279972628938690741543078969057698843552622528800817430648763157185057723369932126777852513377415079215087706223410789717399241816014386846783533400499919894327649351753960198670593175954226031035153276239189785250901429533283925855048471829790082400834248886393184131928203114012723433629938519863236329992555983567904594927979858794752002426642164094556492691536425826726874242745024939439859628520081263965391924014494284933163971893480521177887770986738991534309971018953430830007792962916780280022107862060986338232258987789064798199387234828213984901577497729031154074487471388392274799831707305383349230500133042208204127002085101503712979271591579282707293865237406107759812519412536282614332602050364304843193989833517270105576790899298064329297055395825921319432419301478240346728849516910320617654719586329303514992504757498826668708451511916648765943994952282433562203268635475687756799513994722383730155672276009245721483917819328754541691614258837418839248052753334063958932145500316815580440716265203074569805902001622626098837510583480496884110227135128903610162367218215995799822073619532685040177722863437840990742683954837526509069819803977576095431622753864836232862974391826450688902448700335138429339049908973152268162030006637143658067228523653330256201082680076124666665328317957266817135049174580355045407095352478229507480014620237387711962801083956234477829499662187022460258841358695599888261495132147854744016647255379001053594215716128314804444632367788199707931340803926599724026459048361866491380996862700866775710233899855373822296142669258148869919806279974352964784395661836320643550699351469413081374862051123682172267608403987502426359144278420556893454495696988795793758842039074462650583919976807729495090941599604778065162942191479077519871180903842432532934712546000467141596270482631987487355966907560208144429010067543673333559833807912918557144853239868284902574804661962767552186342618094870657328899441883895409200089844479693954475386222997898899077024688545382267661763960218130856344153012308343171718385950404409562031821877823368992784896210704081653356111669564179327049249737784976816683827549528464053572241546857740365109662999291058885123549519507020006999692463978949393929328809198401494781241263764341719662382444084593572665487142452199031991728011410383312897980539834943666116896852235476564363019615527926734986359717635437413077169399531848689139700535327462513237269984630752879258308666558549963826861422310516670644599172900152419171478157875316202977951079404884555939864965211125932096338861384081021651589026739159461204102475342115645965930956612193263931304129188977293331096766249022299924891709507426055649085112061717431367313571644938285839738183646670130633022223450148930503423871702267955601079284129530787821680351293152339291316321757132941970852981625588639575786139583925777430652524956396637096074630061906863824384806202182994980532679913517159503751241559701672949381748741560324207847628887835658429948094611648251283801387203676162215591343212553039079188681491741041410152980244786513815646474353679708512016938857497861105630882547065176410771631444420415775580943617217293865826300615312582595485627666572500297915932889991571002126564709332254193983818952371475781947816004218104539272357784193403255065654684246504691035991653165545234791020403612437250547085584752321486373637024159509964590634949052418351570084699644793114895810446437959358660597319577213635314824375883871355428900507956567411521644210316423619840277590374128091312219691913612499638788398097696899560574928731801201820752199208483514770163588781952383654956542955774375499215722142476546877418589860851010650833727151305996224252536536470469732494200478077381199140515341020595006167101153910134642843328246937155995765398002375694283278745694018500136242999199691460196301703244987066538483312091543631464972761967445517567984995714837168567471609864559764573740500884696616404625384364566530236520930525365863725508467957484212718017598595605778465270683353953666974669502735776103044470446114092233779580503733656246100959738040058305948630878531760703154811812968712891968588639912921224618630503225806248527028465464829903754425703661687045887937889176551994362874632013704680761867235086993604779844413633565191048296264889459105496870886990237921147099731961061911049800015219356265228660777102698609210071557276517746612531799670887674586591458014161111633980759628560481061375995582570833354367992138384594005659226339852850699768112169904403176967110704507478889212591311988088219077228278339343468012729643178647199960518317303413154187219335120212055332225235661952295332163932334467481790687125604133970252783862299408873228680212236121779363401318466953910029116395873246497119574752164779949327508943938791623882662402748492498481733041198894566864605519190523128596576029641972148681822148606747778430207996204801093024853715096602328014263602703605569645044868401706812042808619257317768862796882424006627290853695456335380763845454923783435474752712407010070398777710515519265546666752060234357681924344665412539656018517403212710962755786495796618372925247458380131610132135590354902418436116585977934663739996212047380583072756990775453718735369385688904702082226065329890045304361723466968313889000350258232990736987166496358911401315332793116519559536277885548550047680436476253457343105323658210890411240321936918107227276651487977423659629945054174960521652031071789889951698321377074708517021917599576132295579075545627525077259333916127768592688986522543593941639919964316446188453231529531021305376655012584500562894649612419274253640710347185985557813922784772572851690780845841730383259800337035005335327305725555473740212362420284740161304480549606209878811753093952122569899574639424024391530087136836333729868955399453497962171050719189836702600306355380084869469394677000738539611180038123866831426303312409074801783175300802981083872253418867216950974603094722174994437957165652483120233702096404635908007901351148419645494783535521103950755628661557041434730113380142109095562522801103540125979843340833448448008782337202271770495855303571935267213208618505438482326949736760829639773642180464436679316954685570169046291198785686329707882344246437792243558583136960064068570136395063485802727052105427637121833809372757498989595441221916113453729402051401755489849747515228080440067363353553894568662901112566130989051072082431571318231856791196617160020067756113100937584690977346780558415584451832870390961294913732850467278217331351517761646647606836116401255875542410155888717811377310416056869171659620469115487523849565034563527676684169764357795568444340967247610964584636273887778984143499246882740835659263795871876241637918902993985676196256561814530148100134790054708126720471255878456857309405585237885069580428925746968662970574706138626494194206936058014078191639368284543453169918140976657134982715059502534210226893115780516226313105192619580399597179341228884442889237803790364352728011658080480979822257028414511435530390824720102245689501630941154534265989163166033744086418120331574619772614738989110405153070843395189107661476741846928985442666489005996996950713752405155800441689756823330645560400783259774426178748272515799466160322678551630315386156324638693200028614413704276212681268637639933706349891982112415681757343095586291545746370642010874623639150318106509047236815489416659162883222799878428332147971452282614065777987953651160803069965302347305070135368489654295149554606328407938002664754117294363504921998044445670050790690925470106771662784755420621200663320748825913245659570805356457453382523655834887025995570676685418469486518059265242721259428912059064991942174529187044273528922633871143503132330682559104787462198063625101491545566078806963970918721612218959351808796381874986071879704796261305298142008333682767504049635942991622507471262094146546765338011299351785114139065686706932724469721675398085009755857998175101654810993459083808197243606521975681212015496114345558436863867466788057912571996308405156878095308389987915164895927604327011510534624801917292737675172505406985658927514080153415600959361893764011345178512373556581476703225462506646928068510121424227283784623657166373412919454540075977703797697436190277994438952238078613558717105524564276915414708688677604463383411810659980991133719423443596812963262552780793859922252586835351807721528463814966754573060316154042623770638121553733136431278591500576201937888373491756823352752394072368273489271439468893962617306921745493944475231062417863068963205841654796794023936597070707249140723065234933763082685423767341897482229054729330432095911318999298859276690469457216979085632403621534900264262589445322295441302505324192437870826162610237069230957360010813347350767739733245304960981441964116848896384969934266828623786746958636068072839689413315138762814475335650944558356805937732935226771540112206935739145147152208582052404921752699894024713368523907357657912622822346261072896484676008246812551615636232019583046260202813424598312411137866274583556452558979734489888907769982165986647052088044713810254553186157574999591283766352276077475931372805941845703836914163810832726057727066335661608367729140715497435875018783616309365694884008666152820617381277508396530091638095298717581416027960386839044630011664953491621758570339517494827875336286232234671177672034591741184399408718578542664078476778407901102817371152865891825922396708023223013488330708355779422627540209310019870793122955285280196399949932143032137511449375083635502260650463469858643841832087403713092961611558166827700254813919506353070745483732846303560383858883299826250850804285911200380754983374846839215385327748277484817570492387107689152283351438923324954533306981839820140204982032160115541227484047435760675543577487069235522039556984364285025956680698199322587568824183889105896588433046691061451955640668351735087022749517570644947995875476220293216086718019037291756517200917412263912376105992536211880623433883936302216232694356022319832247154787494926432964025690977146696871062705694334018900726696664896236316086710554237919503871046802010758652352955099007931787143168287808574338938935043538331241078166797198171987259836057621683549565202955644808589604422233064946703117096606522927501989896131960607690535366876922088037382541400366349251292562274104662840656658809165064754124670148871892309391340050472206188190757756204936634308485024266496508442026797499950021417089692394817402358844228390216145583500395040811017301777898867575381934957498534499461745111650749033009450617716890648704481454218130020603564066264637928946698483947752595654666213182929340032380892575676794623425273627681990954731332945296132046243928944321470463770359174332706671174066520175180097748143888145053428576477294313417459428978638781539877551708610448227875908664894581309710273879146114462266932477781272775189671052361172183175188839327202670370018660924520239995770303141135479588013833140245716331947590365219169783738561695955493885541957840886862612150236498557542352104085288274086569912650742206781999670606882701583351732379923318156576371691374260199341431492635321330139118587515464939295833243679550634172001447503290269315074246503932085792821152287607694049476157180885020525581262074058908784130415588991459047660857438756289014126961077411269227752675686841085099113483280151179523715301485225624460930191531659337290949224385805506519227013348274240832015572463349057615514278093267111215630870019265744359229199931083095035560904672546169551740246376335636591625047731009356067675754323330401376425831669241666687542743278528097932710351412204121730150452444029502588258461919081422522570303633469649645926648202645636144755058031959875029863952562987992869262387238025477225109440332304740044074012938243940380244821471839293071334229855233324981907198467583517315113746624711461900127499506373722801765268957528443835682137340908932170491495068312667306909384240786962093043150155506498185430446303647462323403662833270187007858435801282108398174038852279458302094907259765654985756914118569901297390480535024611333727061718876231119751073504447721884029207269055024429256926433605172887904296415751039788087279994763468372869506148261640090074986030285099846997311583794407323102130082001998770748201043090146979790235122756704267446946673137928898343657523617713191281181464036796537206063066593161923714088245941392758796741388193266408822916916777307723516915124323035953642593894641460508153970034715378005635916856909377708421015334561420496787100458887852742703970732316672186596603179266573081378216228154386057155109592783200708250759305237229040305032101540382153389723689008130057835538919859415353861947723231967048453188029848969988802867973957201945390828613804880282487404410127807220498508644235108104839749694130331895036237321236010710594490013757002618943425689037054292834626563302827239326200539360446480871932133728740227203555701214378068847987611857121473985481552547874054565656355609244541639610193080994893897872939376639756257568045268862920908964704780491768860032973869445960926559386546735506056731819596896846361200413841609736755941173858185067076971481374929272571302441663925636456269540886710165006933230145916188924098254389217729982942098540002918528006054695969410648225888348268181388041257002751006985264092869587568313249442262027940442587156186474221978611313580564097950579864638366138134701339404043072376340529249788334378868010628946478632294535043560565362287233655440002299659250763651046419555086222896767589214514086941302605899885652754187645886361518977885050190798542044957133647959219718561150488091082274238780141367497296511743442291171608606203421275012837113783270854327515289313594658732360990368196831060481837502664490861591356885237106533428067707797471383043616252002599958526598733640108619440396429848963630427947978838203030697877955159627838316538215110886000791346817439155530061544970181579231401636665259716673871251043715389680870180903600143834458652695013763291161770624934056133333843664868813955046613762559640565702983441803555670747994017440127888126080583154657170072657548298366786176944090695561298510569067406819472372398028675037913633886334110213737032336548326284564455567349148230254609242808022605244717454145787269157928290586171937895245452337778322240249193936631426726578969210377014860260080220734800902371482301675793307621925270993289128960913795815707650409524603380519109726693628712891398875538713575060162815533562552050072022669792425370925677885908792666413681438924483213859478815940635352737600582916077040232178349786984451547191437161944659435834024462686583889625881811158561621120954746952350032375941669487284619520118060346725265975968604391186889757791228305836609318972317998901871049480832120624910299460263285321456285894108365742715987280612568207812812145807442253111685320064632086131370346799924868646491322481628092037958887937313783822843320882200895834742948804786744488149934397907040179676825644606560603348855377219052172888196747654973468696975791991849658209511129902321609037188734389737957562445869876912161585888335209490156003451539561258580446553951651785809752898822646239405404277789425104241343426869892352945882110443630028528409970946261375241169335852533198047681186586405639299641848293478335812059794952971769295795471451604378907113773121677726316474464634951497142087284482857521068671836870573754572987059920258088989786597619960617218208526976294840783668828575181375756148100459045892136612358141523747769459297583382141694203166208156077452167831917745716520624329019230159826819873161808901746883210429520519790785141874684391114455261925114332094995343060914346063017740365109181312052684256231694564493999949184230585495970617215474998839227943922938695743819221436367054264294755883825914287262223355997706553111920818210269839667519645229137540506054034871777282399607872048306110552079980420940435851599375099886300788200502065695372000180756833090604773894384214029077625240541718195789410953557293687556483740227381498048285425526815351649972062559546998080798577308457502805778074603105978409404529090130659018525929744137230531306983480372985087466553566456362747678864919098270226778118016008778791097474163163004034202803974857727530138739938413538023696352497954755619155559066113423893111686905708820367091341679880946940925015447540577124390310235305425842481141702055849098189221025574453082953228385694078745256752466776787115031458692837459189780128867723737872856734664019883453974629054853129432922312095449667789220666093219044598976059388106700206581943300123248464617291542930826298949292127837465418989657550864193422214048964969900089156698040891051773585835898773394520197479883743475057783043729741682303074364909251493295159837742421932997312401163862396453159429349143397099112844487094567608370940912510068799322770125988289138778908702306605445477877589691306690341982778986318458012392766007483828308205419873296202865984462423185474700916342485064776533360754331214151375095985520168735373005783929059845966462259232578734016717013174183579851799285249946584745785794545379303376396512489867534335220090399153826009342867067117050489937655168396042677301696137770133630897707289649490027616886121531728867701122333331626423535875707322593259917432631989589744425934073406558123042498986386840242931865408480323517529094470725136555284018643107484937005721759831113717378643730043517553010578828562901180090664343598239657288908322097554733860553724375820302848182347577072242592815683081033977274091004959372754248549260014877562142346830652721932876445365466505994140718849855063387589999503918618999899072311150244056130281884227990787670258990937878225942163388196701733037634897795164486436340224103450095415108027966860968066889078424172806901287645388713921899012521988448511275383819672531856599453090025786066877689311864781079393651721470531311407023997779994528590319692253411251232705409098123248762251975703911174314341407818329698617137257567327808349790136635308693285536717484922596399868645248497234537932600428048703899880874645039308050291170445839895727326920839460067861247675022413635212278954195638664589630559174824714107046534738789906047310001269559614957881444366847126268013365155048261076861019481923467364225181107295605043219916011446937795488731527920887780878692494001798814040964674731794583518408077634169979915476449493146450383190720199031109339782277813758719535650445296819674633370948888069880790930111409212720652907119850203827675122520786479466730848265292266932836526332433455585157597129617791189663153985766659451025633524809433824137445231638340073250487263249234611365705382184730368738979294863031308332926187584265598099189357506022603134763442298015696425324975258645479559121827768015871617339747263904735352384461519552507851005703135964731730643632733693180823694328858569974714527070290750119433247407667409441050225703731453545954037308624287823781780705556392266726856098693497634154548709367769592270190509170639518910165391779289890842401671269659397003506015445353293336233074841593979177421321183754913029698059109136434127658758490079108459478076898937623923192250900682130172710168950895249853974925127777011097767917865693856608007396641542964972477783189510362686022755527004743729130746499173075102018769562788009157176597564895684240968537904833929981429392983264959308950751764969297658773972049360780425417468990256510142198825505901467581093151668289165544056061104746285446475773694277733405111219116048682625875106541931308019929731014268629040259824331675933128162641794640007983864044267755072743804057750727976658164539517070872543692778429531194815396591490917049639912213637505128742217688040463599346424448864813704783903771656488978475806734346011242462452176443622422668973632090914366911133522457048142806262009652476775235572620341277126325101504837312564289912797184358294153736953109448684512223668893618386262401131331485131968352022557463488686307045535805347647044138881080978185083688225866262908789464434455434376601749548026352419110936021189096444004020270948322942037503832254824353243220605887619985894179285419847129075011764302417994100939152098924384022665038387060518670050123402386997129906895463717122578853560451015592532806068229387808249835356216588099915132440630835651326995989167047258380477054573105588362303892177686090048985125745036369255549029308180253839734194633304960654135672002837915430816049649757171851907580203462421144755654412680534089161060268996904012489306725309004628174907826859125339093241130163579474071610568350772809142352411110541039025250547690757034249092095918862545074797692687853719171113412158901405338500903823240051494535729945729612271237459864485073419320966126551903473268596261840557502220874708201599628112318257720437405468316295771729810555839044262708920131632569678645242435047337517614904162256845916526629069630852742173422361560578808638270848442686155479052756991571531370088017791809188211649493485815541948520201811097899416384482881626254450573768075025924539413091366187685590408122812052553890467822087863071794485942349524835373303946440425918699780465645079392000907955985891115216786325620266128721794790731821657666249627515087032375944304135918066322126419894756254727494167176221897192952952998418133781837192391705473223798326753053301761728753659020285753047508626083605468542965514903413526248348522002036567149629575647445256094210540203674349095506575307410215720848893287958630961923051468351021889917465526464968475749447272254804532381078021384478700548744826365050197303702838371555659713381445178586877169583647181533892510936064829925219639201490790254043845796127915628143317861526594635688538400300549619800048318110009657409136962408041064230979912900356700784203747436294519928133385183845636113592144602483537360657662358803964772649254235872586766634223626952172369252276838183297376789516239951463322981321197523987965113767740100773254940657802034087777428283112495277251113307272257963957941663140079454613861497190842507465386401488497263365508902827480736965273292985110183859229361894201769191668683133749149838930259303369698104863698395162867649162477186596483777213875403158267832356045235600649157917468625404298624698143732317810540391263747145051487645551984779673448466967056693594784092298396589984922557519561183305258903056081901123833447452591569915330524097610744181460489357643033858267695010694208598454177599841304435568134041841395430790869036470593369004009399779253398099925044462347219193187624526655520942290984694467016428329979938823810729400138329059727633767279866280323342971005575470966139894782112164632698345399608460153758486611072014844423052199749272661863199668789689409959298330556789726638738716596770342200344483978666555867864957965680893980106215453582479068878604761267216195889236914650010835409814036026761660478441203442394174165231775895868734180047161513290861337332800898300715246494580076891199156776871917494549539145060262919663378920715822151221733907028640578832774290374495487217125524563307454919477472517401939747144296352944724553845781276773818601768607033181392273875332161256483491545227858062912379574342042525148133769261156822224144841648332762104619510419179085772336455222914147314096606839058442016829603234631644974803186888279142229311184308216964546100974769195328396938315415658915534688786516935245813219504123555830439202496749893466463266353766932275162981364477199329974243438602590744002836639011619032413871078913865495842263632445378748615536598222637176610430235552976109398654565915048131139937862315304267095186172567162354151877197085236161751265354647217769144107355726994656217796666385639868204111634528399411168744818745386577877524732917321410311562333891760927576917785846904034359860090731993660104564279008048992091217540472427190481210931904698765773716714120185308626870889200384281443875041237086724111623810434799846648186458950854198158877047288889458913425831548750985863934300370397534104406760491061673299608567275399454332309739900798176143855930769507668549109242816470122879492843245170139312610801609710808499499967475634413288720394780053191704854361071095638736373432103161494447909228613939574991336241099894693888975935765801469253181176473997724880395168943664544012275903906628649323181129403657978262614215528518530239295693956841387651658346106939761197773158117123485670436466280431019167670692042265651811368355739253971741915637778975305210588486463623212866830509389428394478854440725393858897001084294912168821733024548715723588957990203052258253772243456168453033138151961275887861645019132177874765030429154222514925932235443633768758690496011935404383706210184346973859809957269747700897463927767082089411922524146285447959810478352188919366478123024724022009421343333666692256901604022115751752773358454697854180467998250348743401402381856875289862090841282602912421483799950408224872286289632153842719458758175837705233471811313294681225837896664059199385331528954568985767551758325680407876869504524207635659440915218216634501301038996235067340795930351706157343335377912320164897912398068497450672266630291475146460282403248120103889473669010325958187601803133364370655465867170725021880527137685711430508191944799015701780653301324979431486888049034138411395892388140157309541870354702275036361311578134395268946705557483423233621427433900737145447827420819393675485612025480337951541454365447860544541512194187887411004206201521460549270902319462626382224110412151094049629219457182144264766935574346828657794307195664451468307741532362815603780003024891846560011915809694771952468825469251468302405039961742208079833567284462259321222910363383027907000709195617599408755067419768324955425882299675618667893668677274300460108471801658099866579459416444941758148172482495497920989902223701269408821193169953899769528491142513863137728963747098449098846288525837539474535482847630577542543876679800589884753507187452050207121680570146622847408063433495662973978430397823733913625529907509528951597451283204888965215993200527724828781742942541423272417733471581130538603962266500914511560051989463891203271724614433048348390111300243215269354892296601988694680026519022029973836058304786342561285896739947898653753241132001566802906133160825153880773977489464133710246935958852822836591646341080855885796986662559068341307797633622418370849585925548783289329312797350296635178015222141164495554940585499367285472992372678614697077185101131864966392934289328556880688586724748728334303644760435003523235724806696016459024103455020965925981184982833795126194654517900844266340193849479244670018841599660393649959057381350019146361780334823411876976382740967093568256555736943259885760519543367631077737323924992047293813422948881205378343542031300925424937889364658300981546757478113257407884617679466376151128276485515873519159455460027504173980531160089466262945582502004777848030313834177489733346898785893159502983161039058671391012006963038827235200371886037273575918535186244142156491380550052142810945119474886374730051725538715134604818875349335694393199421263278101403342692221044113985616688344187225938082360506793339048356662480153374534171800351635187151259359808349027071142398044800729263997291525066399993383961802811963472373203963672446496370319912768414032603487054750879784919295078286286778825906207925055910319455384743933817916143625299510195274169260645929068093183869746850555406118196379515642088264718144760818673552938739849854872437078161748862785003062565765695306554617694575944334206352889674258105811930452135826767724789289286898030547247839806864737847863572829675275567618916728684848612073697128070779292756429527328379539475131088904729503456167710944625238502949914158834963011644720480916943086532590639282950455527237092353111699898286123701986085455556604512362369055392089581739164762124889564519990731753837462613023367027796532668367739003971296819005883117349660053446615116565215057328749803392349349148066678543417767948734016040479032595822166631298262882057441089388253719740946673008718496278710872797036473058239132002615020321875489423440102443692696801188396831766523924406927536370353387997316001889450260578162749068422273187070355776917267423185796013915476388878933197892566796635763598003795650791977264148083484507631697973755723786563869711283334274053229775481744821253933748143533606307396576806764047612710119619338477627320397262660596311030193586739591126125103391256371431183884296767652384818111386816647555945109906961322107305241082216898909476839959124505503062099747093358181243371346669155740290258750838653838542345969298901008073574394743784092717310152588790970631427257847468164037814578554211232167481541363739709709619986703689772223056100035845025869830393410373616055272712949991231469220819880984170234202058715674757993759670082301204247622697667911627208499873470891409107758173363146331623474554495057142951886266071158065039295850357291100065110835814077583139522317813831671397205936212093229162176919323647752751693259172270479873234591271794743082529868967047482495533534696517109420154915173509231325620855317673515496209127342667123460685314446721134175740477657353302662534915457759088109835839621541789579827351484147003109812789456669778054022039459669554613695608717371044826213205365360600891200774233417963367798620015372208047901768357103302543563311863778294099654126887043443303007228919694331112132624785747173254514601386740264705467343696123889455208538744727864682891808639406428874900816202158194487337506515472375036106987594289420589265554766116702934827573911989585467851451388690761461156336129774173323028666571633674985126594189409051862041935116565958642665162469445545162163256802839033188637159412983643059362283132871198990409587469229239823769957218631989673000298235159431071647788251471689456319600447707393489091754365773749925523242032921664970897213754590223214558053596532646896842015448182254226828730434866353914587991039197360532225349434421682758113331976388461843006201761402250155530239116911926333811329865843396169170663260239769262793102030385354982471512290694448434350006274474956585749289210626532073693014793053374556566310828864946587769553107135300648407815143485853668089087442551624721728630260073334966254291301336611289668089924184777011873062492031856749090236778790592354055558206332947693749940083667111550889815672600410145730130593994499641253533617883912980879488563213797759645301850073665973808427249313841729259137351594307461800925701118524238942459013807264145097429249618541843082493033727919205805110921189915182749684374233113142454973206793393799148587729148820416561418671090280629034001932416658228507978812885742702080184944101618127148527130868547745683786812546077515295068132025469031450844291570352468354804061224335144051076624357978362065681794902810229122604793860261323900761742648055380181812357379340193694317175048059486549450405375081538099245928513707610702179972368132858415951081171189744983313763469852186416404195185809305291205224096627877021293399401279058319605898936710684993178059649880147344360543090163461790294287927108848870128128591166810402441422480477781398140087003865880794121913988115525938989067944738443311961698544949472955178593451288944665094265253074765772660614973696480297136799875211739964888473346982640225346566852215506184067437791231726216163318798251159475760482151789183165341389763511486439267566739043587695442997016211198334246211265263458497820320127424461349243451567783880305801975415284661143338189953324857559320120856164728432849199164550025037621608724016591363494570836462943516686229431261999519603844547392159754882870651362569463603726218675896579091035912641406764648658077619854859211422609302460104634600255910090993195489641591878670292078681807335723843538834097766316613657699532053808232151794058748205792866875786693978613665430533145132623702121273549026460951591596638134084690791946772153888724025942064845443824397414841943663198952767535251236371412235564579857600850473543866380011223154484630930151783268744768520783269071303866551742980057557959814139990873099787290589274857085974642806343516839447350143527289123137824173869752587487242771255811462534731163963041436567679737545742228392653995660981629841381919149070749331557200560276845183088551392054513698130118093114930112153508019127887314141727032201228255816527517246362069218159510018737932914965087001389943459078995158528268581065093112100865004994953557909838750698086445066947755672446469461139709568307307560555682677056144964702329054219438793776290232795698008691680278607539171644074369354115960833599937324650984682893997824356048182023498405409293165719545945694067930113891544434327930097010297187651376105320402610033057226079036297370815316681265178366382163878390500478607652047124978854917803413394473773496856453226362919424832690589687210209328316063458965558393119743513873166698374121058488885673858023045905275436594923263141374961949363317240433820205140504263237403309630103386194081109273618932096757751158457647049429094551627893367080298055726841128801787110801953223148291444100046804204832007723442043005206928233237727240193697772237154355704430347126322022663719018767318737835585713243173098123682186977514661319068675193596945593478093746892874532023948007783413039891273428152649629381442348807811721058081326806292023121961051998176408517720676332805412107238439738959068516466941107563047438057966395744883061332279861565163136237819041152562830264062439107599537097938216232657018938668088135020568140701302921385694721540011857715407652980975246344574973704935644863701211954486331070903730181201310832672645300766574129399788794062423799846364701954457006031973010550798597257990560479032513917995122746435878629729080096896083112437532786516438440081170518297349651213815138469921765546017358123965148278731956449179180848602783358028071087510953642940551964336719336032605111058426246070404240730173246262097389306188556054735916122230886811141892141658425518595468289375809185665636034749506506645397464144337134685410908319765216010341021825374834666750775712797073021570798317339975996169446582629958801226913469830176178541186731014344191088077125559356966045601704202639752787321859127099506132159180557575917217476299149342823729557552545903561957800385652940655997386263570150896796783450929209473313002229953557672048219901974014714344967421491626313307392257010642982348294357290635732512882356977907088076119777795816871699816799478113781536695414910422229258072169795683210197260150845130848322570196911761827170737050828952795506822522003967446995548707736587790639311375000407245674665056161373170292160375662626632673700640511273795787064330359168763877173861029642896178133553705407372002622069626529609422376019850517553512914664459243026683395277038768943190977039840453005675489512706242191512776278425001929838089619786297023552661677933635621803604670463888318898193360525240812415006565901386226324706682646842642779191348081513811960494460979024271578474810727247225082674799828049144428311353672639519095707472377277986210792223518526139078553414678600987920346251705006065062575820540465951993931007116557554288923773844648207046618371035213320723650520187711888635350117279642672510083399607091394677121062865778575922873482522616976374413930981947920051863063264515050591933101218126418749403574325712000975074877856279327826761372944689214347198702508058980152674491307259484902567076520206298442147576328446664844222951746615079519320580071092568950743452666438481474594718368153808358590929030293364260597310780467067953196800128208269757429722816506297325329092188313562207745992415546403708419796650708923759506564772850257765498878021686025082146149782950661421441484763241290391195458669577405847129103226575452666798986574320801048401001650349072507413621780861663307760906191225386411242743934665209765502902276616798988708517101161095652416060775796807971114615410869722652853156985379716758450301013117627524089509539871170291586700885667915821299082985231197574117755423874152624358764849370609734925219299910844757477609636938500379622767290355675690154160823517874156836324676740680060275879568388065923829351952926169393522824320371097467871796692816712569638806883807568140335916787526081586572735897749334192479570105061355338653844699852942553324740103775222784878349516909383314782470366584805874657866068919067935810249717371401469395084850720324273545691096350275713979648198296522180484058185615901703785355781070689757397398466547862370239348210030824139775078966984315283398176240114457618558229441136626734482181033292319756464563729962790368739220706861629980616604173432277475387045104362605679536840463087935964555099632783314641828998389258495969417086360627110232333509159561201904968802726759121936971647369584150646254071966700434258425250980669048401854788705954077658793463228634749243019685902727847082836501235691044737314024078464100874724542670081626738759721888410191964130573689090119250646918655278876320375081539225468813864363010533462277248021081812556451766673598122580810288588988655071846298342437196536551789642592390861736007773277131067520504410563313470555987227393993828057344268676827573508166670068082835430178046036287177064613466170753026579407028820401354614066597696198224356967697018932362305387730827671924480425601678357774143009432471169949833081432177126777115383366947568265744871399033878737784675018753394475792504878334895344129007008862450508152711843642906577492057945745948991580253981290457889513736827931355803079190268583234924149175482940040109849332990363573964039914738851841561778570161826194203969307834314459313103401131142024760112119924625836527823948137025333225070660029715402169216486932911147846948372226438819932711628140939359405609896255948306800577785978673629739967477428208902035321628589981524292314920587514933672165472298722652919244315061993006404160410938643694089716692586807112496509447270619166648096799247144135997806672090693285008361273926981992200585950073121242531695048920022063781932835460224969968850890841278719063593338796813337409689927398092343049142572926223650828942350250166085049920209052760246917325479019045579922347113962639269154536023750582891352586835409785923063715585994542050573420955750145699858881427242116530331422125073646737310252022265579867814455050601478105520194177926638010425196051371765895643759476903462006942505534689292665741232197086980477816410964214070152351155512256579671943485279012576042931020187064442977261630845616986898255015714077288219351878656949724432263419728254782811395668976113000433679554733657244395491246312055441038980200768269418469160324565214855502201825409632216128118950360411622985580293176181607740108435355219628636739364295039544318769584882100202494570686486513412902467969512664300904668049486015315545940967174702884902542062104540472529750414826550814170963373946886871452207035465904055708583795299256539698211046329095001478527174297613970087190869835976298856640993260317354453088687064078953561297292948275473544438496680115820091534544018514617256214142557247703057505503568183637102186393726294616212388331341306832866802124859490429948723121419726626609118221183235304960279050086091599996965336013053740627049092062709533257083722223292928104456696223262484945381469816493811418380193248592848585844559962586132702614711785236595227260543159692014875177668021279824510309635107107342380265813890378973593973028611595764325325317564557780082080799979630128067201949237237583854941062449399190627571205863939299446894945854056018366781008504985372343567661143776072857692682007489165601511377037241501814637612814777941429275733785358512905911941020481609203178909952912855655926489433643136210495217953538489716664833162796621746027207426298318407079024895994689786745639862113352588221458904203271227034726284684494132653802913847278368275963554675519464188450924535672670071524741787140705460612019054399762037259933812423649526428706317266105868916437674168523645775774620974212760728907890554802679186298670355601655807231231073578387019716696926881480398995423028636318964403493766523557703131781794090050719538929667968363826791830180665317634279996260416527017788300409859786557470131127446054220229424149068994642092518485243420257717759653374305831172652116107858356333035766291893403254581145145272126355965845047484588919970635075924049880296259023671052843983096197999170826699258753276637701810888533317077288806951166517115138845469859933248151157785025953832853082648031338275957927215041686197286661622273023404023841546564956684470031290493944955353796420000314390096631085522676578025637033664176673979143916082414330395153841837008547244434876164959707761270720039898446740625698023959221716625794955490104223947519985110940705326740049903971206950579447330364820171624058424318576335386229776482588888020492939196084676952849861840140319723436522570529498975523869384647453903699703332834310156765418022315905554234138712575260560186893704526980015928841561991099783622507558932846855899048899927527142683531030779143624559735203238637856855289463465267927649282051379141890563576467470968537533743710130103849034836147760522832642717502805307750093078375887499810871179047191313742246589459466280140680138576237507595762821695043153507620561999562698158941043198370857743020247274845720187731925843030264444241236819816648699643054753359177330023247367291559295439637437764078367805016669307326517176665648674226618151478079573928597985459341856604653736263005425265514165368168886948724133371053233194634235460835470085974865776854036744361246254047605875327892354370156731492084778645172840283693235942902171179065231284254469292041120486319878152786022491555190397423716509331967311874028920868760546823384439842238719903593314473325644289663827518126691111577905149965086290052776681845303137658460427045632315450931932678511850843384436675077421999173013066044723438998585007878322730755594999452289347291121406775669884615602213376982004820355713289144373115660696094220220977380925122296874437985304849325400805725058111520292287594944299496535202617036429509863132332748169314316989234634736863097865935246256670720083903640731541958209159000131205231172596225521494755669555881466252547575273163258271443074959906218699369659031158266878218058831011844765206466024905226078715814019235994144284928441828578646865139809052121174586355149892539221100454133358626842492414310550599351892930908235802246295918400084140462103076629691648407228973181026494634466855497780540945858538576878235478065137507357786094913656684223914262343610895928347168865007512525001332272471086064513940029207374697127340885491021235417069344649577048752152309237689493754211672851447676562975878176324003216758132949608135381431338337868666477577578729509331721637270384352380273662732042503539146230822902219657046684095382486815048891220317295121735130474800151539501324683083579533216483497759579000491072997565103369336804914265233891810400026499255781314432398197419004439381465320475183682813438885519918430982948849832462254672564569180355823038291451626896624077582758936961609070438825245956953113427529207104767826536978106101162977916359564587160235001388445488360505509076040167810364793432174705916953816128769612138869054351483499433787197343204736831484202712879591654977224873847917950474144747108341604528267645149141224139084880098746940479122884642451137414350571247311644563550625938491563418676940588084298100148703461939590589539655226626385626911925947359694708994462892627829796405431693682262012548946062985920159416608187884957152550378836914800276172728237633774462764598431656230391453584184099252408922472931393032347077794692434999698271065628764262795954437434109273797280678403688450699403803732953078272061732289825628369871116797794375889435973411796091463979742408863363007993624472972901382001004280883976033731216520989742741495127646962662261215935362511082667596758837693983983486680712288716315113585507856002604538442860709083517814939190206257538093815162630277400043766777489190529010456428829443989360558330847331025739091180196231665521450173311254898659117068430885357820163579911913621281004345889507968928258407635017987242737536738107110131280630457962393977980731680894798297378506590145828887329727786397995983644744874404864420293740143028225411583078973894962514750074098654740164291485703162512750133997101215190660317838014590840714932162593244561493817899318909697265347115942677310695990588260870447455749847464083744061072700919013430990633388036042124646129721779366181372527892814695224969737399710325693593625988787611640974063106313026950837273834690130862741278674974401976091316985807760708381968769487838322245316890507210139657453109146317854379299659368786751836059062373747892900399056859024491250917665686320455721262859866955328073568574550689310542060787663587417716739450866864003568328762721114170753385091211973336940260769627284574084292774992020375292721618681601092980022756520800475228754161878936601975991826695193809388003175651278316355057628677935912644833721322998171291538590055965750594787563659520280210295224033267327955384205619353118048786902312802009856704836117868466201382914360182994757365231102103096858975283620810378243992480589328058555304218049174497623033538712831859269327734600941203799254261840221648762357025763257807512147454219990913942112381964394552952636856010236384335531141239957246289091350953148989718665304815296545171249673860917331234030333208049452165126665704482091179464963775029244891614649555020876528965968351753707989212913232561874066073132779932941392247409651218364694002605319633942434136553365570672909372717931656457448435035128830693556848025780741300138111772942205889155204149015203419590934154800112896386590971294969822184223481098141800423872325543925110125108107189039558023695526246436610420872941397377733609598645486499711200485796478910663870824443588350067830798675973162151333423118396852964449589239487101736896107314953758600432716038376781474446966210772296284412991792940369164672734085879216003510373990747590128811352020484559958653286885125595495992353227151273800445777524860087820181257344056625776146089644285567607833405439314811889714303136943984195164141034921905758937214781438871290167116422241279527311034295505524842258070520291773002688237895629038554955593532902969213426195949673914663869474483360353997309815820100320915841403256721804535172503308277470929181928433062974741598444906920234084784218281167086290652856546183199269798046282272968185416045643974615736281933689599177392116024224245234351387558202640416362763999618585940773020301546228318350906925436142176550266773555300495989982481471587641453401047621217974265517267650671193188411359963557622681890441429047670576750389838628558236703866695417030429863752430549475391685263954794987108725947742068231219056674615114484711795208930874098846319460156648288865864291888584084292214767368165462707966336537770139728277471364811184942219964362966805889858057301117044155486074110671967455851049339925126699108933420931925066686136032265393242708091057771427691899058578901426976112990345145289022693483020857400897530679564796847299068377154059196809317660577173592885567101484216684000735296395262449477179378943296000699068815210974395008943092531369382799886910713989374520509878514878320203227635900506632765728804543974642779265964223008871711460505437710908864306516480921003146046646366109190440503282419222825560059906332394912936766793256631496961905215724821168120625109089321809268519651657259014279833157809041697638259830778652585963938326645627611153315166690491794940332794754489853605166838471682683580574062407305102230348798197402943686372133972848528775999942453111775213231127102371700523931851795552667657887275329309774894858654879584479851545011095993853753790623216177631995318740910041879756857348459632865720429273377507062721813280236222582993028139762051245604466409123107689539282768833003547367635614774270060286737780279497965595061206371850158051563770267967433095999710765451436620363855465727068764898794113077488835863417026093555330909574934113972839090668955179649413677240208842506830183956284946144700974396255734291892616030271521820008562218287349612228939766441329750318371580077973785303049067786072386687766845014535676102518729829182149097399135297016576911834623814153621155386309312915026630312571250508416292683133417926996755133010013483713163399912435971444652081177692935089781577074325951012919235201174931608063834745648514878217298502823805806851710165964369796481769451734165801050405917861864742841235244742614671394296132928265482696654692353996375535949187763293700853784461719268661871805063844345045761199444590944926582833291200612614893168176602644813830366234641678147039377743075553552252590460469700503034234613686164802409311320933377501286343723042431680565553182042639454752759540504866866548732751156053020789685263514970994794794778029151312376716698987539169266087482493100606767729650298243947631309824585236094525367509368299256864657142314154272313960310991879603718737822965188529531268046432637571232422693233054603601885655031205523940079585279695258590672255067936400716389003086627222052791256708656307187302466000379753908503776657905324753993635958794342434422576100138335182544920120697191516956476864201276045058456693415031527493196895316796581439669581788538109285745835261647742263913978606831141590538125219112814760929826919250880289307190322318161243233789610405922818758701381674554735269917808177125692238154103944866987822309009847067795543413277171932837679812059595974023866202070224991802705294065097179053093053040790259200119965706464218844109960369422294913575356478419183375563561978944085098365200248370233589213093541530247768645033111641026691808959827895660413594275043124184652251266972383895291113976176224119276040274317305495566715858264448373278807162695462560296776855998254572970909855895932266462316760601505078734503408264843636581372249745826586778242913391786589806921761999948207540159324437248761242087048440645746509365960603301033063427921997738705451110420389916234739305667499425715039264458353190252816861471028187968772494449028198322728428990772057907879818000418305639569867427343970221472089043630527637694437365114604920702608487328386934362970249080187878161765881601610492050801863560367613776505784705167581581840575386961204460048265093245965897818140840465798064203781016445943842720618091218630149777938890530712311878142427064261231693202487687623393097317519347778811564107775899864442199994374476797638790175358773672871914832636849411671455689537698856661421322581395425668793965525544153887061287036718719566018616409323543137106649583318231587105318109096537934798764901136494259570680417054019790404452983701036763679692084378582630800634435788259298895521609194948266833857626940591772805712186890621173619996342778576126808264066217837303749854626164246528114238508555048487262575100271376907983938371126805597834176835649562273889788516654842333509804241493975774133285566733179542610502751891189989711690344523653617780603087267102248292461018099301843975310329660092824430552587019770924339838594359334574894113199049737717211585535730749891250459648576655098688326388447645209925311662581976819743169379962495493129331355507089189348082427119845803083112581675833755599078099818719556268609932083483378526111074744636737848374490714610423646335780355265564711209690203009821674819142113247539924910609632202946506089399250806785942760128398718144043788807434714050618010484319568607413525808077796755822629066964486168623905831852612429781339030988192578341742937786662838142063751945440372821878280654396380460776891206854852278020441920049636112801320617820418565683432246022927707466185055146485467423661196597113232747014009643087254409892547389682301047161636266919618820177785668570147705359723053377059397348706498125361655464077343749926194122364752318351317513639758191722431659584843250368986120444653847205818475118030745507403338190829393233839876851166867444853865071112643651331999463677387337568710951192322937014543997130799591011461819980533490946054456978385501170628954820882999575030240841203605596085846895930801274903155855375322051114160597262951193820916732304420086261723100965566608968979281452500942590624298324019768142360718864806562195107187943781283570591541279358209631294980653636727893193465491280703119634048714047688669101113160018872180624634185992061474433095218813192206665588052314940387515706921186493006744244620007346007701148061865295100362676357324927515064860104516482823121992834636243930163506379218871830499725574256074852693323741130134836312260921488766193202836542610140245692683216376368685296001492346679904950554404088409187116616234225924214873900114488870484892780943748119892186914811722730520487872584393265357058619034486906358659602394365923022284594666212530345242493527289573655777468443962724684631897064079965949326657602571133489480731633474960731083475684749163768189261126491804279287773965757737403351310512826738763100668388222574447484753472334406563001598105033688227148775993071357291097042695039125200118470619526543345000657382416720208867087216815188409702870773119748811479545940332999418384666550084628732998591620451265466483426822712083522897098247054507899402046981353256338649403729121797442607238598795160871502540593955530561417138750678145975419780503922737311042227586149754620244391905452292973729154332063302294978030937837451338417401582597193704682458079831319831216842428169345972564507509059442620387066546442199402032022302454676501136100521392582880248557358882353199815616292224955544334751928419094969928400678287956211782476234814703794856778252452352676228713508060147093431458620876094136908927675321767862528190458416639041292413348710124535090209081153416834002533026120766375077339354041726306391624107533660927140053559606245162171645184762870150227853140746254961931695796920813103509278094163903754315700239554475280204630481320966320781088411845164744710979165083857594324508901941225660238693006845153636514446866305128707517644234344890585986112241996469582751652340196885083410501201730481941823559580121823378154867752282284398808400687962008019370386639592812832127364235390312459517030250468963802235299996041701095319594245612408740918231934949472241314822413122113351494591656916876714197009800948128066394046456839265734949695343624465574585924787008486292405644847635363682730669596686189985469638884867632833933095724083949860262040467623620741322969345251294178574702640375858451023563771013109541603138788249543244651970631687018824104728677444351138600434859586383050859960065768250872142585526274429378634166114267981938816580712246981619419508288997019735555319927715771985033943812384255752370876382847953256598592741438322504830789281165573488892676755187969982505932173403391888089730648427323405439896893080142573595098887378398874818529068691483982081334238315867559513530113382122782251161475220125282210751265081300076166421138885776422981104376890745800989019966574778192634937197478631076691437312059725229735835376617363872795077275497814056844155202168265775507165507822344121777771043823031982108093388854329025159894205297460319015956516639139224914123342167912862672155564570616216852232403740220811592532140309917149854668362171540579984801884822274972344132326560511152986599131135411303041981749741696971729246971235191078202023428033503426193689661091084076003957698825964395018997009626008508353636702910205666027802565831800593570539330139377892530891401482902963514293591391249191477895671917192773978044487174071203657282952489659128577712184010394397206108644664021834622398564044988222741415361988652352778849810306294594639099598053285034779094043299211325999548878983303180947242624305665793953256184353635193800646864185780323371176541224399980701030426925771631977889858224590135928002249585922613482326876818564565259243157908677185530174237928638784285049227485073063674804978624767633162579386709910892377437824678825418391752772734192622829106846903722985938455747854879571439337706160198404634795386177099083040607996706845403141390807108732269472380565212150054158014586404661701668731017777669094822505153200057488930124650736926492368259465035516099622793056859884764593270672448336108464560410578247997810938953955585232177556066119604336970119257885958424718734513540540819166743804142090700738851192455023399599267091900220968169514652812790698422242220940023642302995177524838744206169222242633014120589351636118294766458887721438019081292774755511182630471685538799364185947063701480217384692647284434236945465573133988558458372563085605335456765217020114411193571236141512825587208245024782770854390007470904326015910046787313499914645827211734576623144612876836200686995582167674670559631345909026992589007189209319354165737279921216504536914109119999089055224082087850243270849110592245414035547538925183755709548013777122172431456798771820159603002780863988756433580885282933378145157253980036343408944971836249682847736113515634952390367551568483747196058236269440330745259793280450175174909236052434675424267789665191374695025180601154079570323711054632185058776972960315955585051562658384464721275728732915644538789627066477318455106846375874543301308072423644211406605984872644000823428353907375401755708770507341995662935409293373246835934471101917032062740693732275294043674163093082849182285534688841977587621676195346983062793181333430804171313912960449256513558867328415596817155450121958069681981272699305927750996528696946214852064354762226613735458522807702918549773348568346243137274111777448858427203874423404577500412837017261751908691670610080839354826060710984347476861810765126950765789451298814658739650220385843781211534937842142526743945516445315382768361979489719367304783886994280165891408165169940354484798538775199870687213925748065600490389241508639144579916768239260423192950015667640137855577865308785517197297394986364863479591712608113699801162011537550076300288614631763596364401005214912719090985234469739735494455230006220997252344219534702940292847383371637641305887519543441380335594327350989377351601110172488424679944361232305443152103628436312300948111452467358236422280306382792485311993265980263134231167013227189182626172246837619988375128511637708727723755885576245837082953928015466987793886566434030641105361093459180657592301550563928915601630789791159801252870239060791569802139633669756745633642224671414648652078008075835864334292909169288141530797791287325297160269775268481536273931045083616381184458608300684462592086817405896725318082054194478848541290478591683564296359936980251224972286168016774624837413668039249956572266875220334514744741183756221174511960148286074591545126233013470229106820670398189019961079894155846622930827029441874771905389730516833314076177207520484229700421689936358503235902719328150723366989847599791930605774037271335993744182107901557632196211260312584830958010979328930211763069224447469820615834120001526094681591419178245347695746142649565876730679254208203129081624791168642702190074417693845358226708154132001361385101007838926905991209682331710887233825018983824923832646414458345631282521176549646235106148183976198429110726969959361782920093693952063997809763110432470526238556469003574941241449152000922165607025663783496098641812088377178599272748601187484492146369598407614989061207053952063036465225570052929882341764001964867537391401546431360689387700040474140581521015563010945835647344653071477118650989608822442433256745166872966976155472739407128284485887251453997997073603443823443971186123637220174563791207446199140675865608439800258873939444477934883115760511311833957034959916538612051383325345756942215927596832975612933780771460059950176703065478090728708105165553852815794049411301735398091313096049184445288280340160905915464441233673780527725683709853918366442008263984541607285680004297853422221681512683314233550235323542721189685678019707289336754868440405260274882060286159769881116057053087840185901531229700808719633949423856429658049317071592506395537869146419063769269295049151439126132097046095329952482964069588923918622891698808764403826340580527679825457347044928421191944805130039959060294182542538205318421024865913863933430096449153033639210799391009505480371137076427233399598983894750265215177234772616397609357726477068618496474908143551471481159835879945443442584549064057290195149176154122084447858426114994238441249530266988572163612535847047317477240058816410359092177801850625264025561839183571553652425523015749402294924279605972051798890338114246601450324899860639208913217947893005882969682870466171215902761485163414232678804728450892855448308682179342240491416572834554768391604533679029175242942535362089818289868039531962845631504156350335880760495647292953313049997744266906156297026188564902178795441427477738319965568472371451220219770422286901060594123072205629544537596204591466602500888048865010459797230887727733145708855264245928625311647981908601241759198729098268064312460944699056435151115993310266188096129232690701435649772357812933095624032246855919785086809409839464727236352210753304079864675762391882666524156527148832113991228392591767700333659156181254892597523558194021135341788756367334067968052745327694301273627480801951612604323685982420182408654511576945577606967732679828072063410777701695797494025082353397074450379738079926329172314699652218248988843611178224514042648590184742677112771116427119899598788520971534654822518203333627793381146936325204154544242523777100994280434397373679082701148372234213973214004859568456667270638722783319497454300581510986775575005313155081133343882520722782317179955510399501749254332108901121268331306707191902934998806245699034545249637784071445140510062324573971037676036964382587020950647929515100335790363124997676814851375300591101978882627890020000831616264605290043062526485419863544824967580280154275766998906049269265889888382452724796098291803207266487264525356184738490683402882956872707217256792791267793517476442875866053816379563045905203801150632802465082824310688718131417228034192776306684323297845888800930420492178039158811495581826910662719131887649004519413779621335754126118110706796417191600879259003988735056505337529787711797746005614616075124472944280931466213495149735849391630407101847754634787913679944052259701616015224847132094552198854982954577075908001336527797940042604424130742885394229106191280366885320126424998084778414775140875163928209935612198767337377990714562840562262170361213150448273288422413380792484242166795540594671939919903864982094422306024840457967135622028469365576098971970105358863273941201177629881969621965173436312645494448852879152546153034214656191947374196542701220159926161987013991901541223118683901269183625440865340935072324879740574437529614897208280046331253942879593967074684364647233169174387303873240341806098335416626653743165668439327918130672373451673181148440530388352142426298955123908626485282976532836054399637670598203165601502345811874509397847653306028061003479570181035078461939251101782925840188881848935338526562967025203390513136940256935270112462994419326992952459882636718863612106819166781158235955603810251586321607888861538081460943600642829928624616483843122594020310995954380875893961397193864091161141523199816254564194030265545309193929857325617988176430207465093886516972180386140011064298214002542397480060979518298593654326069327021911217873786098393546251185780390477488935410691469979194586343964076668294012544893533144434662928400808843109668090022909407061231558923633964693882636105842826861843341379464181866051795953275503095309318760370988205706684130725173233293408590151273671577653334326996678601724459063645972832578947947306139721007704925483264339393555064526869687284241834368997817808839570926414601605516119870402000659953640660818847570580384192836124914481384867687368585072262938778073177855715247941362022551347736269597936740885336731020233340486635696581772339680180515016212686981033027511827579654106847629889843949052976021348967375683197247707131876676928472191288696969940277550267200124529010129831502521043329676377209298394795957904957346099129306726780907728336911815283971636533820498932138428618216024149501583987367005549067995843301039065542735339361696553189953748611380413133145263571838971279227319983675281254988732110138323841237276715286675893841262585219500745317575660114850639677742505049311665492687204382177605082280461124143636591867034654248852378454435998826282476410879691676098847741915339001935990679783658147474843258483295031200057859959506682374789383722935594205583805163148655793167663173339456212013136793569192524749438624350303504179555254792594935094027340625050534692979291971749725832103445585082874036721113982474608019409005867776494956638405904133174216031611743656314030681453167238239487415345908497192220852144259737166814949566076744427249584434608382353065029363836989468074310170079450466863715933506505090902145778720230712826766548671726609360164945732917736963182018679678389941343013049398800031674622940254980725767876683551379155982475907781562514039772042732414339777789595828837759157846462911119098838529915485070450637874446697155002292114334046144574110163240224069187210375531778302614519449111076769192155612263733626251341294086508710658612364395459609677996060315172475160222520826753019933497438825204386774142413023442627912350989844229172549573213210614578303609485521337256492108802459714156134014902159353449139134751304614468712679382117431321178963225822146773973771498442101132225062181066112110237009061297282055723258881924105847756133967447077903619216810443230374689470706029170916628524533378423514429517397052050393936845256112928140392836638951799287999538974945975327835900900566897425680561279062119789037880875068440897768760911085419936205959310978717216038913627230439139178964282745899768749884519768861614632564512687457754341617101918967477042749594291284686785880290364341213877470133543052824302041013892589561040130046000267419477982158717439387395252590732455735119725141979599610394870155377652477742514555270677658728027952727570120742761741230593444717278754635776110272504394622326210290883513422820706958508104898359865980696134636226052167657417002609123242851568679333298499038641404025110908282301948539872590656391536491517159937590520283533866273660964077461841925228305728841590875670429347562956491900621160509225300772973634234356567158958825929178328671707803523777801952067567428474265212305865796040692163854840500407198981510236855983325823655554101307128707687781208315498208748100275446908983985309649698231677566774145655431678663734509954083574329808434820821961286048074494239504485559986989553408561378855749747221657499333615877854961915887366359949399926866700793014155870351857291653446122763983216034789273353382297777517821992167609646449762974864207948142785261404523608549215368949269546395949278661508588471837060070113733350990042552776889990232575397392155443461030881608983002569344502383726212169065616798237008288142291849462378779358112973867109292824350863965554441904448490815811343427703222117353215333019145004301586013253837415396702368915346599995129547695660143192768646072959890178042184035268400530327001038629725310698468528430142601374313361378814426779870069265143288623601272031730332491074726037190061169977856343743804909126211095402651440190913365193403669186814211837021539020104141126188908875298345166275573582735794084089810591313588772759074184372753494307270052570938999885889823262692193704842735797357686819681668274314752702133182748904887663747755996606209040590636360572807356419397344456235496914931135531428570752861532441760572570576811640140742195536473487435957305996823566808255992331319883971997037251957691967476784154111691935550827626805427497577537225746423060958052850243690919697826783839325955643984969774451238134266903296733498955610689989810138800594482548875865843061951976171166138209845994307181509289573430898138215038410838345219186312957405461697277364631120647156085331953557499026850315738336915532824972377832616513376604738082407900556989473734903956571193267231830180766533565612755924389616752703977086333541215377341074827518575863670814156388913160931888587705107172394208311150979634772927344420272041967248726998537501084469792536940480057323042696762810075210130534606986378865033373721763494883382540256032982033278163913562151185737643383798959958161655094677902391080453980687084295638550789492208286048667934451910115610256659414038973700149605405392817158854392823129524514418665396742114858036838601119359239831888393119534249812216967264859743622171881658909020910477763311282359187310510896006331142865506264409547534354467789840161149970453085368774313411654433003818041280856917701086400494402110106550479325991658068487960817780859655787069769878916422351855476629777971539028687563330965641355394642203961131751389596777254207205128962829460104118144406455235353837134811269283653919794179088497509581345392484307044371093392866280183283797342468503902038990073105518579494064121145271039173281027865050024386623161376387987166366138637450063590533993615357017062721547899831113194713099523553203962036215514720387737237663056840640374748468926048404179606628421901370051798601096815106921960513974616854006388508311184518514121288634854209013697087937117855726479298995606162676719231291824367559285866592095840977259276946632024125598038405709166244172687756059934239218633828647822896571662817479183670070019541133335206113562683202333680849071858947803263913059996539004597831706980141724231111050572472336843821891516470202873390634191818630488044074101447047481321090610629620803952059598293044739840491787819049790131151744576268056072583038236315583125855926907591028423012240881356251736114150840864444521557624344560850043995859758066242167121419509760389313775108476612000376293933519295610406887935068078452269446265664232573861783516067439776225756730573422105859831711801394065963593203192777969350929336970266201519185565469860309364346869840856655652879769500357307436273597893666154842210227472618532461013809728393799241187529703588485557473711479261353375060081061886488675057630887451410744360412344319490762451621524725163550653831693381000540751123935206201323870093280896026643194925072154081175955970142427141686979515187265148420165969837962635215995569483351040534824499544943296120948251351869559986420426104573746349047544343622587525415424641936744583719928439706804944748546715939558747782565490925053656828860394817145145805231740040524839818308112128233347799811168938817091201203585625633466527833935312808941405723782503043825892813042485419801961616056509888913952597379625630608215397193789977626140089943598573836630227017958838379210602784965845476218721618967700721318192532503188563158196541253403499172864512486509465461273331938427194257715268269538282187369247158832106419159126696853802036562606463811063016741967574504437444650902695474184866827658700347772112319983877908198735554056590786940174744176813806903521943650612752153654647945906278152224769938438417104408729797990849447450911066838099816279805500881936839247168771999477682112810943432751176401069487955803485028252082001363837904430368812371663132637292623253014656755765396195014098890250272425181246653307735216240595731206288735841886183918481912486671457406145728733513707803229439710618778099714337273931967510483521014041020120846974954107537652805673485258896235121362362628628988454211723546140656214622874540077530212243376191510755935867613702900084783428797247379601913457617148923729892333798484386031150287466634025193566755152858836916120238519662461107207113770883133191982369443304025133023731560108279799854431755987267174023596158472031047085143804995487921358653632805254494211193184660659127221043805347674157070277261343581573996726604519464721160892403550072703492104046464247162307472850026283777435305314415213810206040900255242642135349317811658377310982288848107808964301790435950791085451100963413252834436203682661424545147129565169073836698536683434574139158350730863047248032105315485413456595280348730944930875148734792877439604277074733133724371838418313239551871289417902650710182640504706610214654965314711487076040744022707908925114452508939789739512476640206626432466752685650763562057302802196033870788669376810778879012326271754215165962692620380284020682944835511469921098645333549014515662127674531873986083210465361901578945926983641535775635587466455246469077742794455293138586470661441940399456515156429200832949333815389859296530112835475971877374817280495523878109123948786501793825207359245930317346950092803377286665193628202326521923793108313120984934034704696590802501653482467794157654156685087815417625063080208550752293932674614252078184382818209384883035645358570454767453423448835047809928182927335074132874116102068916374966480029230058828714700457468268500331945074860517125112972448000985681105747370542019434239129691907317529746062520630975589992218534197015313179924943856441121150893443559225229199368444158217240221354052590422138725903569693307238677917940026321006696552992782891901086727990493430668694102769538991264692728460909984619917626268138285064819043845444711323727557460620769611418072952585713798038618410850214444147986543108803155066323643908760051312359199350594154367169713738051667724099102273760728265879174325699207977715628818807474485680021180694116369154318819720215638755785932146239054717129044174415035021213241277528534374526011881701008669206013980240606442532004564999626175825395920755056143287412867416184385325481861820862732555500258642919259264210547305172820860512272843426540148551790472642056361006313187999851781338226219656189170375903766294511480053678033221969020899365878563977067320367188549161931395875015656802074484494476825916331134156325329975374906644557934209689194439422979654232598412948238473062014140339404391495008814868723210902376756899981208301529207722643869633465472872683156999619571789581587185267498938519704695199265096980426214688032116369941656280223061989707779287110408858821851487433748374013261246538344448076178462190767798148382030960283507158239829884371304389592836370451230447073498273077922910698735441104993340548592152850337413098665859542919083515582724666096192368443638248867512677223739429732076982928864637381081897783891560473972018721130928668361303854575017066879983998147180956195380211311044844097540703786040269386604663225008861272590068887501343470805796599202302047577149538677884109234855677458249281573947010654286455919383831195160040797286041809190402115041676153342784085105780939407335469217933983703123823670722792259740179871384242239025757194717837055243558975050335298578138141948629726119010445983559115624274324663587160994696302468192787374135846047996242176943210426828422546812549812010663770841779526870084520301787161580382575807528995928186533831331448522315117856732453081567508370583541315541918932490532155428972955067063097420806461274323771804483450025321240073160382824573924547181818175613536731606610577044859054325394713610907532844233780250342333193068063437006441072837310675954880932157115681326404113470452094936133897039202136099216147877824841402305070028384985228151794556908299625557653968863626287700829124906697897804267267262239009127617260625608957829394281274944045022834489770254253792354934433135443142266754248768542346813530820924912856981626980009509311753642734370498981319987795611245754413617950676056838164859096543079144210853694281315245259490110079983379040331402603540378396184870145778112307505128053587056536388719857634021125846576342968655651180462558227672429928254199108310753065503115538079920457952763532555796723956199935212985997344988619916339718681620212754964053311167418327014311688109964700302287560807632240492964494594029131202579800529529978400859500964971871999713452365246205267939950163571434022498022467547911752238844723091553269340054006062357316223539349009264851270335747688023587097312020705502729904650616070359429130920591467109310282028654512756095371999388039745382251406909153507545648763525515791240412229976711208518691002191002037334038001639131109269165284042832707728450283382491223729958019501554632937774023435103843266880024946271373700631959797032688742995577688806823684143813432422888871162638030834206371206727870207824886574184788184851755954390899549735804558213240598127252676086434279395423210177656354923504996538032956970550588516732541549150935696424185130939489253830025906303499833588515596653880728971469701288700648873504730718425194404076654138710376995698417176117281244916487279870039285451667781455101112966812098786368469356938114225990844282073107912907314796165679607866482060987698256592974453155938966057031540738307538622123964493482824119146347147772944667975542795545572663328338733863709394009549798244070838978371748658850859336565771897319722237972460707824036358284296630614830560581044947349985145479544358131895420468170786245103121397762157995193167291152861518460295435568623998946031178447418021742284261664853092152774127677476942109769628844437009973505522924503468049180216246370835522540122340367846596358709431458748324583098048565629674964142561308674078406079306007939400272808591701709089335131867121391739638766748652506812214635002840094209591179688398673107460847373798667184911434322869507265311562527396375844657963479555684608138549262459861783837654761400335734372063121974283622393713042796140686370191789731050061249752355941057106732705615567537260206677882631488238218199452611157160085078263174101430386714176185733490622573563950911313970877515596229143708865044798897260922995589897269411495033982856085115089162563387015780913317707496247843680208143175576606843899489601530553548726412990223057053199627334607144483186959289161990733109441393571131341959465451654103001633261913040653041980166801185457808427299390084891046650128621570185295028801043099887541546640986617861224392287420936304434349341272300568086149237806388004624365220936301702588605389230180551966784570893695741186008274232620797726498014482148659475673675068866417539244323354661167265295274946843912333414621336658004049858153009632714824555898920283951703277367912761100591279677760963697566536308277518626655330060631242738357570685465847980252194869936128223619747814183729200023211396090976393789973760075641947705642498436182456293688363407744387385218355102263160657653929956212414082602765125143646055212515867641916445610912923089893239921549153880127084677318575974022745235930968549501120724259918795189228636926082674643038458570506290091057045158781681866151206463626651414561713059934266640353751751034180010428133845228401728841073249376199144839859911161599670831293468457435267951341002407852960594170329652798925010478270798489934471711245547751026321320352540578032613251314765200408499265681445058469504191463264063303665092501501464347644718423997171152892642199417767348525761010903664777359720568739536059350895014519789352550998979462809174648466774635525133955781919312985010041615836733609642242279305446952104711537144092681077594714010690060190347199779140297903414864547160755163367882912801946793985173532655338208346981062241324992033685708386853618907851727231732056090888535667136026943496721446014890241963345789229077278017374984828122733473347519706978052711706773429189714220576966816351584682399399678963169914850485795687541206927249348557033958037858114671086298248570709141613913018811561203453835900601627066796790828436171501960012659582750470286470564064762653209330342442637792801960256923083773574686211987744099487625161406981606303589622762889241377468156255746699895031413587385637022856855371836600461289534747051119550685385223948192909689476704061822456055860306677936300303123592055232296960168215688220950060570969343015710746952231796256336011786231514013239117474411073691712836683959459266812687658423789244520948519667924170393424076127493026048289451925619294190526664702844219127579713798093846424076541381813500562909950316267227972267931382231943875428471267992616405345035524135412726412257910304986452214887692051416671359686234403201238749824404739425558909268112895464094122455430276017814767274217985954060861560422838184598602923816498452121739541094174004598903342227324518538019082374574975489238391170359897062884099840160787909275952723083654788892753957299624556569768797681498216211482353557261782694359310960574171576582920280340805481703159405883815715905369364874862879174893679212621102894782142275032982623613086248762454113185087281713810363105480293681687059638023343211832864863852411374683496213935823701429551301656422797273126038485447334727502676043691466344622594032723917833171099765785919731102821960838965552645718586719655813818606934558903868613593933462663645192462761543899169759958643154352203800286530613589823260943482244349861802980468081245078817868774541047679854059339683917231247635841089894240765563797898344559653123160859530834557354270915540732665292146368937433082687879565346236907991502359514685551398292783248470464701239471383437049212939570431611875615994310528117472378706097025980483869990193145746785789707795346670182087344765334014944635258398898310350087807131477416157935586879425765838845438512050104702836219046988156544790127887819163833602717917390272404306745213429324579155486067809295308920299248375856608420379077761804336775591107933497729324026971307827432018668594950222183449967067041800100209743495868052260437901762140052154742143757599549796582361180387499397019885185843828211386761124959161923651540810226225798251163651439480503395440458653310969733719988686805199498761756205897563856804056089597004781254055059902948814866008891924377310093606883227256687998023726615599919151771100762732979644871585180740201864134371559346221114363692543099541470479219168135136007430948083753133518221225951504521624227694665910264059275838471743266744866606475452154958831492174242212522271194156403968574372329710513901550321815640473009722478801864954692232328736958993862468033551857635561845267723462378434801971980595397892920582905799043821518352048709681034435450378137186047483293127779880670340662008649913020831754324845993214825795779386808436502491510467236460707466068712345426328964101310101216381102349119480874962020931372042428316116307661049948127248125856615555135271200055151027371585356972184923297079406215777189739064539587045040048569418753756366675200976860157074620568528947936412157538989744502237931493596884919401188468750096320077736031621789651071493443801799505839406844172639199546482224309967889225579053300846823641067366443520206675511641483392049191355078563659160498658221112056832214318542159441004108568791560462646352200193039278797585727030097612016985312429041718995136478664688750081372123239564124794764405366643053502498356179185308854709836601349151168969829999969613687772654021279064702274168912333772691357177612126187650613646489612244663445559666123607075310440076108182411173984564201232776461388341791480454673255022477200644654425830763112399463639715585708600356417599801314333126000178978571742368913236519492908548244803643246603325763105290387442754189367540500969259757670704088616074199103829255905451740017431764394527191012679609458104910524870034019685171470026351131756505877729744035334437459401804358429410987918893601462322545853307619505574410234159756121786198089921518394313655704005753767431083121808897130327106839131514521829466386709078772056722841016575526497513628146363766555824913761470084730749178404095796878754723597863957565484850805092967905774293443777169462568331749220457109237095906789226795105587910987808629287405898316106737328928018945022899255306401427412750015260757654095885003579974351527322608709755164423203409748404630670702536877942638733677900179166135834214507699257458106141306987414617335366992984283906413278443963984376298491274999430068670006733508537417188594066617934385160528620379239577437563120512904277430492540607346404340787961612850345505515760450643115181901274604846770391435397418045077847640845884199689876275231590100362638297489479896041129701781357285629789041436447430209536228754426718354054966331963598662738381701244682699213630307384549804698620105226028962127732389370188028323247021250088456788878774074200213057226130533547251225911427627611116555442036435608791774713429800558181009604477066385208340127767944192754483598884211617131822753203535750826117275292831107470001915616654641278681821432008894816840859054962622689719990172553765853136779746199719780962738980088928922285834048659767838009827280265545601386226382760122115108032715362782138606396861507456041092221288004471837352248750285854072730821354887023842134002933205349072710327878563133944283806229952999943283776061508324670445205460801020641346581412886388601250597054191025239092601051791297437463517350494996213291557340159039702425881585871839940887013690638768780839239374872843476466746459624122565126578828307656790184811902514935626269691441686874253067901499760426312290494456364886694922017605852340516203429115023819523616449845394567306700124826136903969124682663215831830130556539697440097602468230561327875122012863889980193830977744689234185726224316905430433079937185407098478639793330913094630448897250620978502997260373329922160710106939136867023837435922910052386089449492284948072255288370886897116943400494087287976436411771312062957894091252717430236458914435597988681490318605856723170937539818033405294360930627337526341255208059527900955709412750005740931050219491305725612476552986461545909178076998982836939380419787684295825883930202660273535724621348133299452827169683021721144640535797766200728830981466735298863585684511692598416467232605949443666687149780757669628773385024450761097049306169711863395543950970318699338402612551228722114526323210222335831562822578899973188295215551566074912740827816541942601013095308738887970913318946302678708712108501528676902633672686861967563737641205909182631353110330900831177391576906272274654974922138269815702019218099077399370880729119989256669033861644551292021614305393300257547303637786455545054384204606584230259399541508986520648392756336307516029692919688261977140995958492797947567593813480138060368343452397811507899585650520419836226526252990535844652045134035185067552511822170770027822511036381226974437227751093644022719046565876136003987529359499602864639473283746795826704708022264836483495699834719655161355693755579347294506030539414082574255881243249328650274908277054483458687665740341106052757948061118830674378445214823705247276649297506446250563492667492527915440593316615407798337844954497954131333848887568328465951993934959596873198395325665859513372636121763493814703198143986678634515049802886458154907202186023183635549987473574025177388293460351428592914409718773263342748130827066285418435038591438511266301729715945775485592400548587059768145797091035558423111217360301690460493013258160353116647991908146377996683281331822629582237831734167620247875430384799551733113574924610547541986387071086306125173787131399919255667236402263003140553642862104206914174455354490448469787783677832927439377853613029882965424827293123616934494902970714370324796148334460202903470290122712469712821093197292497680304583063542049957054423290265125491245345858368026532770294043501377377156209989940399220334302653321980868497398879221214760725464541665923776131583504696360674590109154674043235854182234466649855005284111436767838743215621266046738964453304251943744068673502344555548915248160109804746197986971097472497546579059131987019054530530973692655774042847247480948384825063856253858580227357252489189567124712498450950126305301012460768594866031867320056568419630342829239123450002514994369329598208319887104409676046517028031993817013063234946389430783668731801040900126021507052156776798167132935063972314909738702136846320939147230209988522284894314147136339333358216743329585063024253575269953715284155409587536856756078042001016095754769180146390540145229195652762653489944030525557878223558900058932655017982432446954623148090074946232407030568308050483917123384990763689931372967827150442477025934279505784207027225692112808063854954823441798431586419593187055692819031337990299446582026299648538890791035043076750511797941157012118782007026914362286545336968531900526854352354281587910194000893126275598796120876394747806592838063523134964855330413966232711850979336182414531384793260087142176616946136372593244574318643386368648711220207749494927178984267359777676035740319334858268341613142271859532686174906320048163538995880332756185285104374162202769723901987872689717190073464182077497241539228091970744983499621505631367656042755489930556880753414973684811607166977390634467740300517474438328206419773836125884641063076198990455665581803450570164887305529781542739010860388976650466498858087290458142963488179576754494489477092083422366791886152884587355958521997934361286168460586156567125744226451661617583634866524250002577392326477772126143175576912259967732971128171023530372955683216128509760281726040909171477859891272576736541533679244757996186012223892327235558633765266309818926414658031909067560934789010782137305621298607125920715144066753414462526424596558197620829686367239777418910460959177885886803757245910624894330744776355884281706380746393743789917215688655915106857185417481283576860052976073359636157931237353270197350971976355192452927655222641143062684276547858755641125581260196898093836607444010124223508699504532788780010965790130395187749002701461676374255106002077844632017816610332906598521310069734511599093325454076679809176964138743574254957932629282996915677536566749575858720054657873455926110220652077150427000982007678983098816242470258767951634120264398416052268143741091780263555377504567594254262081372401248978846781525186588028790125891064242548766033219266244764755549728299973838142308520051264343215441181654874893582910119944635690484038217331942039172322445667427786499550480217070622984300523853314589843528732195722697700020328340185747577838462274811920275330999279726263359454138950703005032658625836684133824926163119136607613980986837783752179996327039044148007884946004892871946005978646041676768316643113318749632744880308333103482903679661579163438768478456361205120621853271397795639071128846987241218021361021480459102341949691730643658409916349661941801771211602165955602554909331527325534811654362196836623340005824174922102749084749747298928717352982144262115949856387565361278738735030060694668061644290038465686764878836082832406996716277584532361962013286152889076295200785954298960153400634527325907748648359673590975005756264533459776229754527750102240943936070132045511777073705075204503158800763301154695480377200059649510427030873605260930670961121954645336099422343652029385148528464693651900979397282325027341379783942544507843624805422092137250499653549477281067657010898531750664568442873444361748478093434457984291957322816396220849107960866408527281269846778536512976053272890864725450245190729736487382688138925830736098740918807836847683651467409611235944544901025444605908136293185313459076809467737811958324341716631576132429402081633410941136471488693962397207905009204479783300628618947679036026937533673483057861654572850045392681802773631798498966658525551709840879637372648042732277494699940526429946486516214348214743148560453415502008098108314644301210542512481055559153760862414267054950116460429782282046946173628619793620383849007932949083101059832460952470988078721257760528680366785660260429659653715012030230894685404667589116712477917189403666650225777472505656322593098603669973848994446381398549429477172451503133307251792643238418076913112548506446526415233155752936763506203644303510442939618100198600210805647846010375019056722041743460261057350145942414660828360713792210790737028522059553945071780826170718120901753757054938326320442612935675607268211575266946372373595752991622502947014041283091141679487729652226104849271138066456201537118977291290019970392048179421765442578807372171858932599623567530480780111535146483370697617996825518229022548043791004722835187250419298077667976216425914312819797399068491639089202827396504693153137799781713663075408337904311016696300717596064438698926672932213735845765675746500568198537409236209845738222132011736299200806516173976003500436054213822305358117046609451673981416215545510217209667237743436665310313982225734045931850612560476356207660009343821537863186428745409649302630199798112733875748180291550676791049822568510712578311445961588370761829450608658320508099891290628263422206660213072626777370096990249797708430657983509939518531658250789250279951579994641786989954214800044001401734392573623475170137355827756607697188607521685101783192003807563633494971337036269474696398946994897744230772133627385417719590963902508736218968880113854983229266852281842684219745513810686355067694205892897737511711903119162679758585275082914981078500251266462953582095871583738017549387117627177817982767837769840119704698333061114296323745577105548010932402464963142931977229189624310202730875397892903565902899663562431570958412379408570733366729786674695426702636534175233643898763313520460618823873738498017797602640442974644773674111971739428680234651322872242430354933835715266284598327956868303187726134543671619635744447571863662221823092370965051909687005957206027564436596070614160894637196000812635635724840102614668148597050788488015177348465530587550602963556755375882312136588048254476536537660542976772570275280689333502560824668515941935886092069932912382972357271544978720742528392203059894182312895066843791079833062882256269812967818216049768041358350413228888969159484111736628452092177509530539347763065682725068169761608623221358289508098538216194725958108521384324085401037671412605794683119896121987628921444220592491519343464160231740908188927623404930371151165375181380742698199145892675821273058355616050433126304960943187582643329545190874010719834198383594095837992983613592174652192821411409375822540719974488452568146050233535041752169587509575851576939370847607435374818992414236814194746153090761586782222975609718586605395329617933941729742850339366176399057973219000504091191044834655316087158931420803784444177968928985710009483296960832487146901132630344456757323096021699332577106254132504368247620135458003370310416127435442524626797274420063110782055877178270901652272043261543143628745533637124064262042532726893601582255804561726745421016500773163367960318694409671223798347804249246689465627137146735601659038057509348994256761520736135233821524498172784329203894096813130666039979150852186967643769109033073437750109378335253356890220247717378155524785882255662496238781463075447455511114874653325282215096275521964123688095754902963849134827500023988086503492279263625181941952134272224249670720406119727019838376465589006993480106987865939804100408701762588607769528093619289115544093083760207908567563929273643651711015604280639928937910172874175797768402942608327415452031034509039791825755224193779718207831387495487436488062372561955371115458056404496934615206064818351253293887626113573522436018761371162105076934432954945551986060453364900885921313385884195913916334041084874890723833258104335348154754306779473672083816488652231137103938501797345745014718168209014198294865084152166147141801350024707419108766390284823913534401996206538561939062747027584917179050801716108426947919577042115221244626603958510314908778637708249935176755237431282399403591259661628928895317430719145029121864103529065352377487541270113005423808862558421095978455149140289387568107007419276101415837020883096404309134684042547622349591150419187785250268753982377140602929249759580783301587270441297118278476928180073125657092777083041459982338047644197695132548142008821715947299742563528723820861962970499741670097802921759394275100940305087686123736043600720384140956387827189147324240702993743912916598343553312918972179484715692248539146604786784471556906517408370403317124455502813723371634288581710685244513788806024580195475084251467727790898092611001701090897990638722748785157338679831630010408991256122565477721123790819051765795853011001791850920625004181034554861592076108399115859308233202632288835582405619729697705387429905835740688184719009542983980990795621526929498064474155066656069066704094778762681745122857727706754783829372520454967201724942219918546941654295102688880747865606075316625905602352609673114479819332394179638117584304240264481290951379801293619252349670291020561281740067382693752346616916751991902421526891738498099004161580119188303021311583165670334388745449956247714645523820956838601304154384229215200425511085064321320865968743792938584303851493767904326679207893298125997930524180342401382266777582823431277408921827088894912765430369054777513989515163317668274902561892884684429165769204841491950867538481573084726670714496049070107488856689637657190977162590890921316721803356905101593776946715293964216883564897471009712891336848895773600247086062764790752780689648377324052277440280646817877887752325527661178065631607680684821845325097645918832713615260611584102297485033147390054536855292352388344470052746238926532410133354591038388586263252896609410243664533257028580235574575121148544409968058086094630598864439052316032820407817680819569757108318296682390388023290169149460261630208123216359769604462575314187871025758934826059408985581037538602119949607999114681953255967218054526348812778492074707081807546216778699718068223486237484793140809068392362664739286615779725514189717176933728223277181685800890997449884315011127646986073148237599522577909705983139769571496628344001430944200034461235572724595987630291479250972944011953135181758335391770191180984538035860258756300613301087484418296705405150812179754452483475061390148798851704538164682239113085173092689140935372130385964009020881054827021378226838938831323032193490599068904021614075131540752666837985506848887607000925299817570466622981147816760326187421824857336517159388584381498868515339990099640209706240663759822878077797485262682068521893018534051879192873417250712452871249422632446710134222291452542206725501536960317092716109761344496738777338803316000373475543226655512935783950220088742807470717286718008981016875711823107985664684954643944068127278095977327259105504555847592920183941630422162658404658009471521939485709053149952275976908412387919403787455777436928940134776782663617764116656962237325643497677084096790549489006878078041772441812570217489603598890794628652688877781192400382669219173948407386000236577186782525627196853018619345394830698423771719056415278964921331308593710572949680395430298956310535441075333243386310597917337950375613157044306381068237566451209846203037579061590662495080293671857809701732331922467642958225379717411067993261369510849592927905029984209250181624240111502904179616239166290417894446689457212823435561725731860421724337383768580114543213836148970231492261466944522358324367561475558395845715304561906591396711417152960883134708909071121498498583585280715344826352967720192497845376555041219992557242419474096943653567241936512925956776717847901570775310475116783875188475146576434661367913252729287366630617048736672974519921298378689097377149018460900742975725320002263868822662314635156892152133085040788435429939502468447134688552633318494086395792596761635940945846732342823119806783940980022821158904615199823591269604813194062124661450484335717099148388783052147822517472244794644871999331838213421593898243172789614317856842153215184722464120109637897825309309850518858196141053261481039935233207610371121481438011535285900994442897921447259553763252613136840127782904194306390345102129621931914490586658434377132248874705382429777367182877773912496933479877235271495841119136526432471692942775246070140446093550637720618776728480983259719536448263605753976805766227239356814020984532116765625474123113416135907754611451335806026266779936768447652270550464486402555387238550970526159220671268968927324476332370719844220018430843333409478598126798706901745389752541940243919012909802086398405777849056900508274915760446456480421367241058593851852811878394219228367365659927006928544457305559079117372114861132735501097235442716621026459139140793000353732156011533299462352473058544874987586405901996389062393086511815824044962062960336223295327219316646071706570442551859497098577298120680392241825618667238113670052600967140310687026435562573139462705641452972833965116596459541137943548859904677912875033955245763149674764899114998518829405299886821368485459614252412998947987023861554093036073440523168117726785608115217597653892359264949311017227340105089007847521889158691844103467781675902183054490933970236855717664799354313047294210284865236191295825426095001953477734381349449247617484881763728121198466511312574283408333003394284967115533385480980983732115449487040345162810840523119893104941407434200746987654477801755767073768464781753147688557106960482124480365685548141585269539084369892594631530340345174279683493267480768294121364957635803552579572184638529615012842171960253403655922131351192930845775488686175500504734127196680959705202499622087394763999402966525933948485993056738625243526943078060069475293576194325434610847022979862648214141972344865083802832506110884541821221619252512728647690888182914656762425298431639968188956302869820261055974574483206477701706793570255445093687456407443306585940283377536967636484656909462858811922276092676254475116701491899970355262383684018095364734457435354490652450784728113177018335226349221871191986952030536786704851101717615345947115403662397583528888230162142205315258365989648600271419710482852383396281982387880393207304053669926758583326295042936899218507219790724568662171323445346408233457156567090462707433650202696796367764547823613245111174983346162313184191945733935181348635183867509195719180727654463127656351064589888480522646640213556185693822025626631348745916848487810851058207822325826466751506063022922984769576575975679586303823297509556830502913250423423154751968733484794714317633250964688013931037431228075231261274055159521166568007626821185493497497737399505487226540079454350566507038724999387577816261766807583487394570136258071233249750449814661818250201242858287759520768547176933866629930489054553931864856546883873383664503777580558965909938948295787135669776107318688387311576471000100917155716602138520421553592449070983889432371495262374514956875097506916554161569361683591662966487541695131180620800540839063046903614173716484628751216285876523638015462145691331536009351190163443653029388857693933995956201393467624771354624398872961390009227552878603906921857864788441347264570237083932799625882841247381683949045736302422423173102793233531104728918160909809193251975381765048598928145289217454121587853367972443228274789258471124662017692793102041515661617966041482202374114491199197899304175485801939408127898649586419517340730148424600542231514306835973991264387165913154731873146668976167685240724903337184005030904960074227177245342759039659728162015735143352344834231699315480341349501107484880107001580633059741338687824323086054822056742848089894026308459692318595847999493087278545487932205915946879714545218224660071867994827216600165418105579566653150557157872188141186557929311228145254411342923434355531779348581835992438354407886702354408255281858272701440527682936262900623170996272065146922260168120779639830967408914919490133498537777666456623103080958263479574070512447331777242027033605820691500447867927091728231683335707524384690133552590070124263017702543725172877114892302759774953568034010182219766119524188563571440141767267927055111020024319190985517547522080615828802595453462281342614285755814661684492018362502425183058042932792287616888986327463562527658344506148241843744829341268211571475305770615759078186304297481773751798156399768275385846405194528878185960453364211294778829015146944345179091379298143977358688981318043271913560508145878701566577526954039704977225299454234901956401395311945088416526552158279317004664246963291081864823840200623156361568584728397475706635607033805682097494329695527681275667088367312556844858521126605013703679528080532646162301898941525748290039741622249063406048398950304710699579633175446992939006778378200278377114983609696679387755584804410916997937825205990054256010405614575554216814531473090911263758927307456422024768836015991426288053359326758836258326651903764821727690473772542021979561481772396495539213422232078513080157507891160873532729461247693220530597390763133611331065750136805178271612536360236523563455180558891803741894662389922042075510008930273176731173562177524825559810127467449761484003446262851487959940113931634224343956304537128983762939261249053787032925648668805612531034227432468625458112319082845648688822813734153445845783818408348370152324780234428089591646015938306342866737080801034614734146593556573750600843042829310066343490470174673879024575290417683178098753643456049351444170780600428944315207423898938221047087063859695253873137772489007403464633954352131803117345035588070374709310176296711808318101364210347206775102292271134502486332266930048228218503724688773115176976176665459631608047921718033582111160313534986826963879638015247597844187601148485570927023717916726373237348302750062916593738976441705777321136557685971590313990778960672604757085117464335988014018464031888993182064626623636695046462060933195766833712929800074954734687506262374168037370217859698008468406345394083769392944044792390457475541330077526878719073204776850807489413127872649406589055568233173250955713770074682524414676008867170447152153071200488240173604154304038691870419743572394417817140517937067286688886408922223926542873163808991330833974658797075652987736511406117058734355275893688906789807274357327566214792853415158594287268485927761169245942590229179069351092550979479879826421341807962276445255393201564889178969957055634394332902764735862759506962097619194265297038107134489964724381713733364529390611400618438634512305526521426680670340685815328366562751723200537158482342520428906048785799547852349166797553596118677720086325604418932984782016762436417977498202902564345241086625163234620960455251359370735332292828118612203779592028234886088438233536262730873264095590332590791120348339522255524245313492826156865097903601511184494440696778183689195707692235220485990149262487135924477477008182476595914111816234833390211500289610711157891378591371519213573542948767631244880404420682513338083034944606514127669081449718180313978586288272163844139083245129380217124500798616856183297954716302657560162795372680418468342996486633061437077355439917740399618642480280991539929569753808381805428127947365414375170382042556946654670211605153476875657353960128941181784673290547432370954931699883543615878592006628463450295466547556656632515442790306022226091849333423741016654677460318931177001521918079780248166477466275191671046112207625527150838166050359681937831193346564162944292324638198817920103426905649817599246496740062775867936817782755517018727949150755415558497811829300307176070842919589322020211005669409507548140805067351135513253505966084974344796820466646743336785708467316356203163671982154435472446498707875524669006330618579094342342691274065466600902752841398966238792798393770371786677261800988184164199800370537551275087914530867917549128742267482109213125803351389873334455273058265193257887592874540445916812184318596437894132006185567375519195705680078512093236043964259843821598458339091471012189674149464973548078760474619946715542395860454643492274483705247351860385735106164190268107384579243500657743726501767370801268167263457426802120706203965627439327974481409015541105806396138685652720354075989823678333677861695902391908143672755796006965702567183542052876625472916425866453712500345579167519318766927545040273416112515084028161598160353741761773357986437021441680090927908481042187705507906156997227190520730292316852248736787213555619365948694527681415738507032450023320052031745598758026378259004074660602787013402505403509556905421677955859971420107309376066335610110581330962070986559847416708292382525597416455588219088825923845613006085781268459408335238688875812653189135673161151203987852656423868065345993812824106284927664226025976437650558164103733842628441603217205003103489568596713690160344481329647293756377185158328182536447086824166788430527771145658207081211756965787650649539303906771355167098099894597114550383629248478892355927042842724710088543673317613504957841978912175002254859056663789103006282104246061493752653970942706944515167040417050128978643573893403267345155263294784505769064157885725699865704787031762992456955152103061672642316310104004719263110161606626513763831284118845528293287809778493328074075640353844929418864685395588932828050003479504628845501318202497084143225582756240859433213109701514803467670288570558499915623534472698834346950772537655734991532830014939085053520427798983127070327060944173970176629577757980984727256333646378537429453576505521041650346148868274025591516165163651234840534594254271785358350432503289627207168541078866467257134839803545815265849876743237918445844428589621486126567484820288472127030974222258121913162925585267598062805823196899470002253892471157155429249591432631449674293976578936912726140033116329780720128942459385211412083266896586134810879214417031336939977257978538205717017088007023955870754072032729384927272180470360980682484624884758275909583590312271011799231611304835885549721827641256604565827924657206568250106267375925135123405703882606613205565498824327268918360590866545401726141014538577500467828795469627244593981319154584802056880362969150703531560301485021871725137606159943136719218781034084117288909662394516857255702537467915913214968100528626085168763214321143133746312453732455383477870214879919836599398283627524791516646970314232189706013953090648481356193078651801362736041794964542565143980662965898521755324730716058271870542886918883007856927236937408851947459132880426795402965258377015750553317086907756249971705599279367635115302911106955501580463255851006992040993949410646551869145266658903765012024380408568163747426398655661573311598196987212741162449729167629260940181679907629953109339969503363458425211880061121106525009295550880302381490314010366322509595170759478378996482188768070580236710672808485044666944645776117931293331570656161193427195437233054339817541018403855519624500434653822650401498316365423718709063417884844341886542310161978540334948418473571800888302308425279075706412115538347571953692028135274506588965205757960766550278386387556303477681478141686741497900411161340783868057555557535196877141496508527861243496908653238578175560344135088904690349511985215161575257208652436360916488318692788388115292551202373537303621172084236745203658997394253274195454901734603460372916937519530726242054956151257936928190469485027122439924933931274758674833291431455201194775700664156153643137170195286199257983116167897625891043717773041656849294929095802397209400610106572579253194980041272363465838725950674275246573714874167375017470494857521818280545072313897285158020067861973178254110401401872818469118318520565012204142282356294097755942567827166045061973627663390893688174314473414415254515475283177122381276991305700773082925184028465070887915244954778475066536377406486722157278777477005993147330817890777937939136055186658652713731765012490811804919892986857970195030829312966829044621341507130810302797698414350499283981683272810035269392672793372903077313153979122648784033619337472947447596761954070622890155816324512528923200148309389796441000391882015997746291961269396333393103201070877527904800673245938043187486475822957118570916580991935655626059529184586023196320685870773856773071430894970667059813955626615793481012136511594001374822478754893129417624098267000161078894067768925359952159249294896911905609500791918429533290151047767922477412689308350677678324987990638533156938954393566659832770276466599442670583232179282330234990901477498648434142705499992101160848960611218838347696182066825939014147501583487974034294522097769022925216058562881319578499303651571203055036996146276004818104457455317203912314804383036922681698962379302033405180136658370756040393131432105473032562074264130469232004263744752948729666206222345510749244757685349161396231120370553182002342813158743340354099980831882121698229607310930962192931251611738168697496869799869130742907517958379626133731553636060461103202945416807680108828036999747410355012374854071034093725527152984286620409423535043357272133765646368655965889043523587541206557524078030347794249640660705859546026097113654184329386850150515993153101903638511366256811092318479987426976404842435090704695509340305160928360605124673340712831583807435878073907330756915755877276109423335432903060618962949387244144752841216120232557976758269550142508962217001601898679964193049429132839615618542281855941167341781199808110485753767963026424511127298351678200509421038432422308619744515594005297612391757021579582160074872546418232420943673993436488191817708864026245440272918673970701141709022205258660620130997596711343870872534926664196057414501425114704725221429471680393381907748356119383124775091676332830713030550304257095414008610188695590497648702067602090758168629711872573946469653647988682842647086520629656475964098882245115826697387540018228950061980669977588130549914140296360658595529446966803418357514712628110255670959627875734406004059001240576057693691800876624252703016378305419571998696008016587035656218366553598880970061429375317926572030074551505213580982454804311454923849401046654706582410821832313195363654033165482576438998183850083810405141956224270242300005924982072759392719235185369993369585935321923423576666471973616740596407997536494663810743703189203660898661141325075072226811789824927916297430511635501582356037218572318909080092410601446782613418585410208951923299652793281815281684096238913766047489196369413563233859069631557478172084049090145574279541610268418539109668019439993445292040202850012981898250464800982688572593351168561220882752409754504396783318851127499030451889328203229895854347964193452742364042344433363907304835551387951769085998505779847001544453219133863629714111228800599225616968811140072526904055474322355956415362944540716356016958786614374465462742949832828206400329721781691519248820151289514237837464124636707488861410238058307331947245880234410876592977141709627645688495402904947738705692156309631167980929666916019078789553677588346199007464985222566621201091878953859271639833526116942194973365018298064038721503483648746516504004627387738180593923269731439974017064871481424905797109213638931184109159857925309429003849667750155274789998828523634960251809331716441350229597272130587441318164579710635443563426725813397648126214961346011800149888725872558724435453921042168176963557081351525275487914574322431160160309910185660670962659308568755406653834812481078043126160609336945438172204439873923465171493420814875382680263020851494138897690738096171623962883552574472095455014100409825942365676811457280168574125697498296345007633902096836510750285129839103319760942053111924707158023115939333559915705603282118802764442350246353889513638925288586529336587060057480100279079866710391049139474614341676340139897098860696442328274003854260046052978198393023122817102695826411524278042630946509129333582225287976150370198832267220141548469408477688569343644552292758058111133740971627999594780164003604259679709319381039097101350681458087046228066693647448364535881638259810400557943138414768961722282188954320828547256560487442973185355237349595725809595046591538185155231049729042167018124694850578500347906368677941092623873312358433131048590537079898775062495093189804854871674655411955222947013295467361943072277194147781567262016005366722417233407916371111789980902179485901108242964868116915089607260192216338907282861991944960878911026526208294046755684449685781245999472539964979963923808123371991131082280809774113120322034428212448876714135320470843399043704832290531292613452266061370153285823025807953505952858634663108004077652323200311999994081796449130766586603333176691729434328899321142244244167723180377621012292653460656239317908064573926897064161178649892759137774953890590460807895638653085640896465085162694419722724838803169743480408504116570013613643282646836167185669824443357589924423187157109601478252171929915889873975152548585166124384736309933093225784099821636716305225120900039992038347685976264204096187702255055155728086494094402881704702333056806076846386638977330627103710553991064335296559565192278481505570020513966933572586827370446805670007142264967476293774563820024506502944656317566283262772935996434274039597550159234808824583917174804591355808177936220762481762637133550499624833341222149802545003190793237657368253964154897311562893411836038554721537779605619099434089562852132826002617663435372992554580203817612859182580815026796947369860250277327638398538447942773079266303907981731256376343501864666465909526894882942174221238598676075191044998817694204191728248989913925072690000231644135787587215989359132981029201208911259578587568114601539199301401851481180968680520693553907161657217407776646007663659078519844878380610496633799270764697562742880805138547701396295690638839352108560702305908788903026353302575630308960832867602943307931371202462772704233299554112138098820414569940683792720143858589741639440341993273902497923072718741004762302221945782803979189965193909627296829470672280848985748710225938100672060066838681595343692516109463172881095507749321249344961162114822513963273798978471628697998508029969370682562877791097790617054530394466427143188519310656675787891618587300161427367490371959413220124097389040849116439973607463427468005144285216493188407468880910670952000024058155983442796812143650257046721039272261204409361320057329128249987185184513693860321570792429727154057125362588052823130914775673442499726194793851506517599812743301705875086160590918268209129247249566148914625642419770840688473128080735934180609424550951463401367565082002879806143393637516676387590137385020886664620010080545607968293947582112856774815769134077409700340120090625495536985313228634981000496616325895385348906250623357578963687238362004855818698919952648848468125230798169303092515647622404722951531206272520865433205142028711891269576284935664214523098499486042682564184938596393789352619948182371725153987178022473970131301549936086517437358348713454016171817165037165770974129769952512551508647893396615026192396919484431720739582769246095510772390890574560641981105609227422198740734676506344075563986272356746009701105693959401940346867616949659794802238388742125730641155384148525174558837395264218781410703775820485050837351004153512388902533982404600211578739887591043739014763933200317187179146006063006540483621634343691844084151374031661596290183309691959868290413894207507056983139047974007671827920228039060078052799979371709461205259431496855207817413195108843046649349584200237968764345700026199054371024402433850200956847437433874933265562044973026333867340588727980665616047536013251487541372692994544665377830359461415178368317268899130877703434430128787512854977165961977956164643579000639460397981198902174029187910016349424707044907334070172235538697364567048318312502635111021546567276744282331634908454890335505437337983356415325803571021285224595119242838714648058109976354711582673609886092699912405785968229541260421179631829894425420600431483651677730093678540393175545179620634240538226877754553776467637271051040231725834773797314228449048708086788729087202445385136827604543381195935367403699553257689758693513520750085035947993420560698014074942752345810059059701284061866126194130176370710807069409395955899707660494513104140375669834362004940115024990850819361679491047028624950871488305129430303397142574895614703999560961615999899577556765117958767118716477032245422482832132018802599648806087718356352453661091096028379912141363659819602046191982712449551853834885771691571695868128860826534226085235708850368774633021244142918299051457288671390045284222916453555289277458365515665159384426059676908222670102937766883024026735037712023700631522169950626767289141992234857204311528676067882347319405570398056099263112765172475364048616625346215628576571992742617179790855722287093505210864191245730177527115568921894688809569773202702308378035576778074281441455349624376589565162858793432870976358158009562219017665444733931273478402617107435826576048535111563380827946989882077155160488573839058736196496886336267808829980084049940440024197488130974662609792189653648585584324364090797856775050045488184860152280338436148208812645724039582234078278926815216378472684407503048413081898136846954380169384168829951556836291624061508788486921497174380101082216196592400475485879609459119817803902331468843509977077431148396439447741765058860489743426450223203753470669799447885007799968340992608389270009898714399471543435564126866610410548188891229907247395821105985027190454245611328071937543074094640903640195693337756163707806320613190930238684188027983034575517041059488152496464501904712107839219943968170701038206141734951343779196489214807503247564296909951981044408596509278939764722908344458910399321580681441020706773160135456665038143459675963258829455985245906751397904747233031776915671143193162840876113460598123683338762993554438626170503311263252367445774821513707757096914086456924103907777910046077811759161291307116633306191372589269614520384728215785444277395243261815244466245475861508237958743884973835155703660587498196645324757194180818853044288186426020199406655175782294712546009846398689164370045579295224527103191963420937289742112655591119197571385625673112687082657607835167365045035154828068987041233687300503280332268380221848399108843162185619251225470329152455362214499300288930044976245588865539966282736495180837386439239394058970578817377425300969054143524667384001724338266719668261234853828720494773078608466351032562448985146940763989303283446766031573190254499829380828119432396640936464044911281314247866833717815678842333765417724337927409356474412703306547910214496470812346795813144332312495435530329005282148473114644830785066050556447917529438913299020597245095305121116086010691105798360929778324708043589502586537466437759392225451513716202892976161697612124005647606560610999484300216279827031167077514406036192736799756459316618472961402335972752083291900882416558544360505249995938257886478410511788961558615357825804253123341731390992380194576782792585092557279953200152286220491247171565871634686068986219538030300594679879552522738012589478820727520941801937629438152008339178647668442602999122570669937190570742848785962361186660141445054735888342914377055492811140289779575537329757218677064361466151621437551702832906772961477146819140367280705815507603122766630467741136796229439237103158304507583664032590307513379943092098461609755654450959397197016565585706221745870775751989518217851323325928889713970656443967206866756122116745365984582427340455845671421484949219402676470598632559355743254731782094865180491629460967658581670613651085171759843350328459984611120875250386133959739791468455660891645353170806654887061236311283234389043741661686145688479821694689302425457246446883688724818232149763058391258517242021243087945705819755371023683850781229506060601956507483261619482846225331561815382518119055749780704589240311243322286398530676544379967189746425633062343529337188776254752482512008022454237107210216855101173585210382565656710689528842146962426499227482026140540310803000756384997260463495732300843668477424167084192775778001188156532668080948507770671112272756085262907449312250221567620899516037680236723956268086119317022901686231399359586763942552083316512756160735787245475009186390694157667347551146925912540696521269640761919248455068082069994466505154990724946559899435506085382181686506034633084071907826026528408160181005411893671422392492630375877317181165156414670378373892570908383410974491037034408762459071105389710774187794737715060902079475943707941017685164659161511648179269053084177591710018119181317261214417005332633955835014111710486597544507211314217173263145238541011243184636975642689453469285244147358747937794841865255177250442733134788547610582535961555562466047148759629219143795106304845820016027902142872728421019577895239673046601671441397736875238736276987342379570174328886932863623001830752500600819930362984111535008494413977596517548916215554624767692563680748597661830612668857230620764093688550720577963475507089078070054728169563708309236939289877139809965132511263382351646058665338191534976251524333979983047299607132949639425055830925550890011009520001460326245512082022860835038835190180071229879466720820753787197198035410310135570269761772385812555330655730066631693919425311320919487654629934517784133672697883999524790763033282579416383189920403354514881860271790092877970099802389894014462297158305541774057011597289379634790968732915872668862101770252889517505814147514650224461163927633923998461860181696765266828196691769196153077189083376482729666180111206345775547709418094085893452852377942108911054301502719730864297166894033897503523731713422904190963590769874984611494806257077512899550409107112336432652791642173097693137079428712646670751552054213976895628481088608774747567739291835957035561869541941564154260194585459606534352010919666862972354747836052735271634566120698550103005257782737935874832901106238582210111194442889559887165331494217650407813333279167835868296318028500660439518034023390240282041703959480719193926515238713441573299117857408242923922753189441960971435916946403054203817506933717674367476714852137869359293911669432759025341676999167256315187852747244332603749833249616722419887684614511902196345314354011927044695684676073082074305949614043402292763373320579306798032754788392787523679789304009442139803487614959897557131151729465203141904257332156154875429857922352328465053925525954826193882980268658206185821945601825298658798655346021467221449695804774628888121365949455710798793524728674726117614511388807669819824526367833858134055806089368007070071291935585285019246079191242862755691745806093720792921018634381625404908482895115891868614041663819117350853000336296203557828828925107113669952960593692651777588411678392373124515339775345064938399571680726806263603786622978853223885906454294305247932506626539501720531465330912352474566838539414646273329956530036068564318837302010270046388733228684696579682265455680537190223075328321481108831943639883764355208126804261827935287639237672009025637990211984559769163201597793417340671294032736202442520416649840882096499541520023542568238354054712290705690330392572493514426783251689610313608823418169206448375752680623080244861594090153377241149862928818248769356443976773479009344685410949082920898227851075042463099444204917942867825526325453505131085003219989272191966407844219762578910067218270306309913465013499743896963706017731329902946953953423335904213198071768680787524908504966185988801051019007801949496899887382479436200487403294606948765427205751588246244330193577606499078027654884715166455406366281405368988986119528789353910102369459320002429327450317007161801375583333767130625184732042392946210615997238278310908090665618560240539680708810307165628195599086902839250395298475043801543834000220649734315231470183611155063831371559238760110082964023144410517431274512529412988836840439761141980676616055832839051439142688905612726482505654240189329024138030165076307122924920157833353680074852186119646324387123193242374930134397783979018600505045978687143192549328730992488055874003245934642521064115290159869921239777851284570959292430213579183077691043889370587428684138518560833714172180155499049451632859281217539303003760491383993464842817476184896932224270393219991975931914666499105039984498959066108362001753214970131492731908616159049678575120528405176386618938005929897825122792994205752138393335077043463517251838452184504212501699351511510251435471530701178685333208118235204417009129287333160243738724442530734173928143125190969412710656156469598115416533878090632763871708174940595307865366125674783661333326540447720055660257285745599827819072594274743405023638496710539296022030680264818702632269862219396617279035333404045929163831735846901635591824904542374959943773860443067411683432975876126407255144690135682575149464104012558577650940193279816948624457673811484509578183642793549178204215902810272896844431189741864042848099354843665622672267619599648303661994439032097014856631333069384751862079704042938023825731171887911120833463824413290355104951828811725911600818024007659624128746378059900860892670023662249117708479636422390148604431791266982374431584272885061092574299812445858658372775148258232543458859071367736829248683055004688985860269217310125883852414252459228782571174092075956851903698591852350747897070856123105888100053680567570517137398539271603892353086550605505778119427553309546048021266517440698075754414496452433067997377750575566649955310380813250130166108874915904614437144117916684558984196917152628016056470540959915240506285114432912781373037434442056962930061697401666142901767451279248929373718086019110997696965227275583215580980076195904150647249904149695413555536287367820873676023355456486709651069103427891188007153508111504968538627777317587938778263863101733248155180344644192102777624730843453810471772848550288383622406630258039265712922738240497205569436617624341872638991210946616513772083234938531656991822890214022081154712994044088202444078878691027093830597094734295401458238053490418039437568555526121315728758247664643860855169579013470482303393883816917558629982682530599498439693678852384770543620261274838686491888444862872402309388106106541880028806896688459834280511839245463763510223757624890251760542553500197584526081615351713876820619939579074548526879951232077867402061730969632795356068465185771687935457191663431077903876014206804359566920478949279838238120109940593369809161348972654984657484266463142523898981189673075611606320027122055959598490767121867570635917610505457138431860518763143347081061925518975416331040114280385594377096292501007414869170571390205089597172937759127938971327264167503783141676922376843462975529517361252601706040536489881485499047217244052729713000140324240328227650905949200015399721239246619928626915546680892139499918591037471773545825150080296375591021955346388902401288734361701569999750597096707538973690012548387563881539091691125145143527998384806057531835720755972572104583784897897136795128682480295297968912973318887860414079360189840312552312165226806569557457794439018657059570741971554010458664550917418737728138992626724368923040906065115434162713072916781834899228896098032449764263294403516613804049293611506386673581497186150646543445931261653663961875688861365553604604096581871150536778911217554960767104047769239649598553657245888856585402015101693544916686742122906315111511835557121879464303817376849652493713362304245233382621005804741303101535532630215597587124044142068527466243460682846845219940763176220596871139251899642425106855668683928109334066386091064304401592778985616563372818109556404875337162038668585512980915664471570966601772384206487426113134034981347092988538858136728617601433216963449586849432863092201557541794023944873231182921976156559908822866906802639748213306741122617234134012694241141235187870824721094926205564732866496925729510857884948555601790135945193050964733366135481537946497941771204284137413341017545184952517672893591089451523459918779970297301429002805059364096344602408543918494989115685292268182663948869657925975624262652870075167010292936944154089426818665343065680828079463494284423575030968906955210744668977813522397614306375433785889521194030810826253438552469291931084343939395902834295022872375040347376401222544918001956583017839699361215916767617670496358446452572068918277534194212959287968050015821842149840603211839600047766813679132436484138171277429462611791556353630156120540025010619312301377617141216137691166202025136046699421650020604573341031992829741443606724280615046669477149321376216617609329909469560607491481174530494789974341836916517928371761061780135573321199752294442741228655786439138504281336372831617070681345875741266173060952407589784262332452177784393462952170155818399884047892299369822125231272389381389083957171235638286840982122545327981356138469300451891010802256389328132347979851567030104869556971844342542501548507628727812234113057942237517512668009980924548818759965752315983063061015008423780507001675544437622859164203775579624478261386036888063352360893229021208713859348535589349426299321709690463004942799739425957751870136934427113876655137168472624347234177037128407914741781661274024810749882184334657613316075079416025409537074606552903394910202270566783571466115222559365519545079429966200195513909689355434523825540168408189673201876089165286643450878814570294902113714358455157472204263793529739472117282227129873735836434296539566948421305982063710105171171481709947328673367568235244338368060696557209468831686365184624200455588168860337444517016925694411289446738161477406734418202191604513463890246784874931683201045653700964436640112435146433994597374944045986229736827851372301176651664548748754689111147227078529820158231996367789247146774610988401400417645789585537004518155033210415529796918999464843151969700915415919067571464435044889990677629193525658461420640904977724589864788445217890538924790633359933785370408302140637244803784070452734247809255335529278288469849904472205249318531419408502706614320683050672037971846836412005734565422397185065922584300234596945002652824679476815814048332846197196639170447551078931403436443042291298375370692451332702602135586240244597379591999068571156118406040713850187808568553194792306656422995241416376147705232270138161314848971558528339447605640865362872573445834993448159455184871288548863446154669056303618208022527912356214720294917518147960894487692894397224966886532668384215145275556688530617075154764039849935213740090190186611493278590751896586761631643201150069196408237554198803605575718621984363450877357783609943578134438919229128428020600390796791150772803558969758217147785607225395266844500093686447358433220396936478397974841224029646489849348834813214862377244767465772225224176684328075643276158548220970637741046359691042122007497668695932434888701262863981503626024733654617792554134106860101498948677604258069697938525946562618355955517582043134656213841563076872592985110345481375021209311903596264731789189692521416756882266551081027400566815273352200739747448240021036698113507419552207852054318060062563390059908234425710833355889830777062007260424188738082404500015042723415943401893540349224408372294723716877737253816180725011768072769348441667223483376492765104513875753960904309360811744535401396014697943366973511806194796913560823983506244444560667025340193098540910404403855963202315089043801365305161921356590969149581327583782930598359918723171360808624069449056591203294781449591387972371876116724820691321593562594894797393723648024931321200435279300318637499391257055587704118338965102936860741469090905524359006108419556743186075764577033012205793093896506852399112136614580054020992112737040452788895207392383557237653426495778738039363459860485409059848661464335520561851154814900975295985573379698102019411863271037923691595249055050300386872061513043146731119982343650612269202528669852928000396276369807200961896672421014279567146104065516508312508221569318469126762159251587693588143112215822066843610445185552543834371535334941919451758318595494433584407171443018720298751752766134283343150883229509672739087227630024640708889451152183513775103835317084438991804291510951048604561863659455561123568626236055422862473753176950883514056411523257221441597091896748895017425770020376894689843481371586066448750803070146793157286424402719225941869863668531153992007054800508911630497219779529814178075071487983848845041287478455220915334974318132817277709734938721949759722294492448455419597099239398183223866620353959830408920123566683376354694401012468765211346608572978143319336917339493262012073204518872348972257647470707100924851078157013731158743999396547649289050947464313841842359833332209521678884080206175578726489768122416552102934286473252607495688294061615303721369523858708110305468589725119640024168299261573083182966861589997469692946076509468167707883441555563552530861824295428263861142512431645054024631795259590806411668261825429701489299401146270054650607965110045981336157308883624362683214815180042567757737839838334307747414408483802342465648680469550721999659615167191369544892374492488763612362339026610399636684889040447350054714989054899540009426808600578717134971561810834829259307523661484236778108980332111365644154977107730057068670068181517336368456835998612811232198068593924409644773725483211055271051904140609720769738028441377909290537295764096405308453813237608618313200709120388019081320601778377795859551085317965292978863862598167427725275831842173670612409161692468664613521416779799946743735283198460847719675647065903880586308725019217734893163448957544383698182067755585783297173757452031269452438227454820124762945858902448728662295375596783206492703233632427107274310155564966843079531827458590257719654880272292003768426913663428437375865647559928481834931859360003195059419315632155191286694630554379244846662830559793278236775010134455341921930744032735236598528183532041418183120002866532436002485285227264262360816184569553397050630341879821931852245973979725904362366216507142149927190157762464700528731720901297309789468251030435589799859528856391310000883274313749135757411673158164177466789924008807005150590492894661012170632751581378806610954996219030144794844661546079709975835307641713733784289125495603689915889179597853571658069298001341571855030171950530338794711007137596577775219471725575203156334585202231943208915931700293590698020309384355512438895542973724356389214680747775431254832383934332720558429304965066944844205054510834325629122497705195050030649687667679379046273133036275812071204797860605627259026995204407036684221510713292233728455290981373507258485682751823842559069913488949032619653748194905934644686984589997657332311824339264988024977675531387982516927868790518462517654657689931802370703857468832681106462579286430815682816773243487429748009397994655419119890470048181615896968233719266307025272111266942089161819307625062251274913366060471771418967166585455165989095738082732846005860807962962021620502452410710813829954296739669162114143248831611520012565298658587840748378776221094015317189993743942246504747033863493211561913887850110654918905742774432839734852947487240319081487733228287730861403377077531264958711179090103643425930662639303359012860577250514271101627407361451788767386374698228087642520929780278372010669166846721841847306964925066723699184444386288262618963101913486938299970792099410550104044825009478133062006304559799155077201405847307460826479461216174272019159238534779698028754983437600257598486593981917398849087250432357716416091529629336274332972750230090215244193549579862485216463936838250160832607596700907153771978881182282212105752239621500154038116975588434844046887967588444295258811198095753543303805388188070587818241685865448163897314980421895288844000702768216260606321651038976818652961468992543820064422605849765488245881454019802002857071122805028552903162769300887942801520605866307621164291638687773511824845879507190150294144762274530007804746986772534695177001207818236803752411729696983252553415740132867828145190249621857783479441315115266386323322546280348491530287954682472582898718876633162022572980242521526664472889988638309589377629866089688306259545868813676153473534706661427336273742925187628136177930626423453130976328807839616008215530191913443283669059811221554901312678035182179899945430155452978633515280326171094259340214520277174422263052731262498311873659023661448798218613242965246962970343152004439234846056395089432405888403391652236422522533873293636095815234570534468011445085700557013115110807494295292626252109390755178099813803112191299589354124694725660741138593643997171014660388927782037293763360438298198210225103579220148664190159980216724416880297449126084658361399131486892954346794047745621887607436104663341036866806498075213554259735115472988524902361214691723501683337977717242347309651313022042896488055367324972643365204791748253087754200596802698454796455991889627784570889362969207111951678670629841022440891884144294205359918682240083428508727972772971884603077714766725702327220591673820575709755014566059460861841172981284276593591004578752287493065011738165630691764958398229288828183812654307550683222444993442996945566596577277849373260280673757697241631115839491499417836397514818379511031676773848506029106933258000268337094497442440163299573250736520188075959207422609721877749114538708687506936476479556484214415547848023099675753452445522722329767521746062316563691451106626828595413459653583150282883880254762041020348361234238605030886151555119769020072868942929983918619039636140867219873863189643815088216718357315680726719254538518577896031629719522492084869309290721022074012059580989413606888616081729112088756432330739045068765360370611441370363709288179315895430653766534131082340133355329233854736556097021380191631450674578344544496188402076566623014324060173336149488566279242637503700328131136333414101640299993025567958618077138880265047709197909362965342975528691919918045431771466916244072764372693974842517480865531524677913828651854471156446532691319067357512956277430846065398965409596015305134335616867009753978158549959091817236466514685328071519321810312502459582176409088449109111947106021415705021560847856318806498595445126472071173807879977032291833614611591496880905914826538832510125977562179274562917520990526617853451882450650249052011843237688164394851683754443751605235008855222656288304981608961983932699516944016433817533995590766009772712411771384329169334883700939875183511053393640102916064927834842789630888672994591737133722474013477493719268605886085053673744710376544612748323033705986031421460141605134899574068167400740435923757518174096429050471913671924644622208190527479127394647645212845163963586977429435581844142415719545494449011011075717801169388267718148322543411566894832945908880094004063571318221482155173444608369347684700984160706841921774843293062250419873105918954349423573179657213801491308329427418184037932774630146308131558903701275662841762745927790479642861374956207544536673693933685566585275834896797672921587349367973506798896427436871432638429610654866103414258190901794243471303557580259681563166959208118138660556028461730923812554009574699690495324913423956355010675230795656299903663012787168378057846346641221787908556278577970972724191429684930726851884046402809168266965665330605979395142658835500874880240823239304397818385099554493516171335071089039333920101492635349195676809574524615492243493218237856800574330405409046772995105171679356695503721784584942341395541136875298366786121332654440356918352983721189010955036222924832842085322775357369255063962279240207850587695668434219394416000777040546764064483576303908321785095705785169786868403372883367348235478853815117621116231563305236733215512652445301259660203244874538757413182744250714769761124766034327561187153945908554353730954254074853386059351969835188006986294451300076744120385597546671348194011452197973798547185725710713743289659979213654707648086460855282619122691775120790005046227438003916927502238162183900125273532843351403067172589397876817929939825869163834761700025206037885382965337980800972955707616893840130082763788803239601254357262602925393688259111321068413141451543694528894785472050212145396644832442247055081939490532452741243392824741070213379041095395571414242099653793894355613080136389327221105848517281804044450510473096256896826397608331067717187635536326912698821801659254433299041399989170425987586371551322068401552392962751477393158941958408459434822903286602442973800520664833358494075565955219641895632023346151906194440064977401451071052842345868129778742389914929220419348515684934379423092678929061116967621858172880774361517150088328246163339946479438708256150714610232279173923425891685232566809466031558959636645001886149765595469557616991165407628402344859174625887388240479051214920910244885788984168553642654892451310329615287363666434340089245015021583063118912859734213626748429348509023895072332000012820093151758276612439368871508211163399006076166694849937187274103185876717398795226250053342738727344069631076302862350503535971647307783643402878233421483621032112638265426860271563754873418784504309637470585400931864083734735278337211546146111140463239716684393131958334789476094874957442571313860006063404675831024083638739371851737614672895244697486275954514130309597021182604324636679924136131658171930485037347602535910730424660410808401391493266989479049297491305659058146749004886379262135233604331767919831785697684273447729486071730383712351850360927602920906788765985085092843906338326463280514681805859189713046446954461084704377542788357580112790865939803468798830964200477254282694485203249155324508003683601263077673373315381325675934141886388212324747195442742764675061243501411831033853812118976877158963907868881729554392544841816770491042773550421406793244442130736277592043541069614881739685975234542698826089292340294611441710317773660244923462139930630731072154315265475220431714178358661612893064931959451873366426157606656638628143397403237214401901311481412281267172892265601467846141877634399197361973142891861823586643151142574912511158040613117638638892480883012299949172888341824084899044415495703126160706298537796628148701308395975393002763629045364259025871931633441222556914494724772098877297159327254392947091840648324734914987028891066450633334211052748091834151999694879812925755590929052744145030388102520109664153019440276225836503872297544775604110822136062632345966239314267583159625895987931572143191993837568141214592565649117911693715606186890556362379494693331842994865165250233793044352579645065136078863057444980936639201126120511779910852383619212604499543276112208163812338918459909514171611249254076176833492988379490599757357693330930416457680154971385150545897581837513269320643876819024274446477191332881517914469404116118702442004927290482161039183137749027258137300760382037954776598092913173422914457596673606294837338498530239602866479945380956593286178070048616895980357667500108228996532261547243772900700152588675358607316298778408993201803778436985853107294655182602763790520165726669342907949502626748049872789096209306618934379417822992249628229696016373022696932016610794456789456516697193348490244387077610404527246564131689604325891542722040926189786822033592897570638921008045593515767978160387454983471134269999067603854949631468540459738073572911440754524191379240942158246893639917196261211124320858445240997989456410609674005400429711304954175091179699223187662601763440354750198188989787768190368103854756131868305348905486625314471725791195738326325267372139237823510662668134035985761466488633685099446970728980095539166765337137445130913792871188533389177623394651216113059299183522785260087852851642545797447887388430192125880525398239372110491087092669912134772781550809222300348903640688834345183766867049211078082144859462438296292277330090211692655543695801680524711181828549566071515166962685188238003173342564829066531082054343467314243241312659236850959662530673481551694718783666186144672646996046447007463540890852248181602919426592863204827150949040353690481879095937571775411773888025152465682236499005512254965290173037512890089347577898018885491105094868844994496470674708372637946258438262907341347518459914015608940087038382664892153985522539419144571540024808827679013120740772624467631224850762444724003414715397297120601929307842300801552754455439066291847690179530472889382746179055967857338163999819133105745989427288297078868112715943785454228603871841923763804005879927191310369434439964872109422237369032716100016908859591651665475903447491667582900996289515004293548896671940030287497629596663215523962558007136377521903073886292269447016803162759275194567917025338217786165775338897178578996365407560991166490527681162095492553608595575861219586420985388098311883326982618612653844261730291531471072496071746148478097791846631016642075651580386832906456711377716774340193593251547013827591424505691782281141074226799044859077168971069185495629899163675699735267148412200892801085657664602063574643752266701497735753866549415084575163801408971080356928118355398091803939474545362236225574117082195238590441171718998715688164838987308703759289620951142408910479020861270598694824512058712893354645277597543884127658048385811079358330857909270978310736538185219748471693919917636930940880002036401034475640716597751774783647998327593417389692196110654103807467007686129289596964471554043929658354069550919046434291408172190784325735258960227082092156088352076503569239971498658155841478724697202064602117060008368158515145158506823973666655069416701668144495525374937375742069233011163702708837841593637993681660556022890089417532148655361084975411555606879967519630803126334461418444147318026133579887242425236058339459235341222587739071016294934964745114405467086016421165193649670431482442030642695760694267534445773861239684023665209893402186308201768937163678552293330265055144973487687408623293490526793141049890813500401803467371213961022738729976965760566030267533053651200973133327739335310891262784586090323875951617540242511681431283768434525133162327016532052757303833789327895774961728601408891590670083366957985494377541093142110749556244262662958266446515807333541732320661836889078321219355753818449119517717039199517316812967815915195780152790749558937567268370290034888818871151086748170763162833791901050428859754272149568448728809393592647466353521465078055914506754747481605611276322064904465212238945235759053863576784703230740012600476410582733643027213408243882720118309582198439513388937136921601001433376439490196055582429454511608763357421228095510871679132040160746355658103372036185099604192103145737518453925607987387019319867650601021860898269530271869203040780686004687679834797825467024386278139692540397920580844609492290051708021955804633249267489334980819989171047463041710280826386876020373127408342758987622269484389430650159620907125040237043007822551575989642653877712242463833966792395278867654905803917145034828772064049911461950472759110980025574317018551899715631461369336604958442477408017907738469075404498140297849715377096581683677834841141954335198235097784131659990016617190420545886163927767147217864043684913573054279587755942715467832907607400147829275884524195371071873089146719259551801849726010909181017608638959301840780105855012875483591883849266569084498669146544279000934036458313670954375966859379785677087428462930917266922244592245476656715067443797486915290505720225994871704757753402032264900523449184918358564291809834140998535207578071193923707154883245091153971356910227338596067544968972024220940127170432354375610195709708641102653555979711684711934934466734100857419086847271390597667262961673824058887269035593533870466177344498092370531344994298299272724661741007951455889677880691469757887701035095230224789633250486321411257963561089660965224438446864728491768569498460660072897951235234532541256166733639600047876450319629123090182702184086652236261071777986248387409366854127607430679494302941660904840719486875237238924218702226303270090870045338792833745154343151707889495919924693634815866648869939538912452030203503532746883543325948945013763226592363158472483787344089483527302757591015607744789293491406808625459805679973008178752389219668731536030967752550989531345873193866691582873052671239448380259004848106537199289843675169219765469639263711910825737870252879211130972892769122415895554174462735420954709590255607479768710592755597358383989464128814493162507071661427878330747033586345481327952734956759431463447497434758255315798491804255472772951649446162863668122151288709002877946704643762292867980005844520024123952183675368251523042677961008528906169145575127884148368311001571130147746031805377611349399613099728337274514033383999724299927487479833512534531451087558955389993632912573999831548667242299062202807140538993894803208342191563105761342900522370794129607218446076465826242305081235131896069258628464361280329869109508037018576065104351653629592576438466712970796531429829930530500610633171641876870648947630800229909576862970800723892575692129737978731878109728483121706993063173451556635348671732576972472364238858084637685891366346089168553372183235564425087698172889395547141050777171602926798678036340449536864215127273768112465725284275036877854675164182205879177034056862136865931410349645585571325181699593902375009925178489222297336781040572079468831911182363262279612651361326213205985469712825360244473027828053595731171925235561279612617429704894360249751295430490071067765775437512765083059284314863526013828850719955192280501413501479211475780149104807069894811905996660495593314641457554324705677118123020592257298119531235367455790183932663080741396642187780170607472629092139569809785384799843848820680933980342095318268990586482365314313408578587257955801944542300873158411949027744947065023382939726026172367123333347059788993055092202230401678730662417721792847520750086108573382636873190783716657626326177171398993639911383342922015568582679660412757337705978014826117289055256167394706961129000271177496958994943741636949261245002714762254995592426891460527384134214355298069434259670242147521306348280734668751902102581574563082155159751603150188082873858701540812974482779182385445527524568013035071385429285153763804958929909686237865488548379754701948458137702919286623062618727795569361051976100883316536176392253433396215608390971444335489857881243105599185031369177671189407794542009830666501118651334594832676758209131468819999827312349376787335502050876685443769148992672117559980129977762117810285103850377181447391836061865621239571351437131309137748379018451835485893666236676695216169665975753788991922164233104222892834224338543266328571997896284766212209356784144162215379134283764099135475341697685181652265508359556304348487096705543275145672007549975166145609550363763285083150664055062041898586578650441659623832288998900486163610153915618159349861619471922554179614675340779991990079082948153492894480968130090569590626934489887106280767524513635057190595304925060895346711382587008124363591616427721496671523059680475444267091418833907909274704114869469785039494634569201329312678487259596722520060761853822047507781841056863369154485363709730936139692288510581331823161022832706666876770039095003151841014940584088556947239023941192816971189415600513983791331614188335994070443401590568497237069214225423091711139231755274337835563961076108557080434154346507563203015502631402378170581815673717346400140743453909557955246397070133819645167161777540103376796722510357938249092823499756396094035037571001742701576726335237025817971402498281103572697425213325512469775933744880348669324179601405870266649391638455072421261523855320015767376135388703801558812160979214173738621617659694994245000395808909281930822668678260414802929142871502025165442613935908092369605996747546840370396542037323973423858531094090045451298865659359362036717208597201942505337019485296704880332273683085660388929743091397608228898189337727240683116819834034428583480514275914579648331215308041532981033934610231350882039756444992557906362757287225704220947102726015488372698587291353142950458198873433411686073416369486597272527534287688165541682327753008488795089692826239541793575291269116338573015708719830490894330771920081400503799965220554768955510200156733853151145277500898870665851666080429514185512328905017866096744451793763158590063226034478237713328166659516491717488432055824396241524473124781413711652898020141418126721101047393602902536845203566920236957751655106295508819831045890988918575603412878307316980754228413296158426457224573026583762465303849584869108558983144204025762455808884155575278973709658289157009725939875401778900838773612814639295241495358553684868144063858137651347053476832411410766541210698495632964811420334673300678600520054615193728236562245465348789962087751046590360056043168141037916165202090826146918698065093411821026432636757020599396474837406287546368920302984332386142388298049415287480507820104616166459861418288371923136249417282105277501808182247856092716059419967582218041014759656333947805281641260687306992417955472831883001891870697300232550079293575353413020796515067320552193518867319793168595955852317488960793646064071550310017228696144659161733749279426697487333051498492768928905703655460477618292064667982186249717841624439277495560597246910621537664774685877423961879794505576076384384007736655780369949672160472564648376717535966574602389895905897122364651498340837142892056617734763793521863582050189886301535062127181533712106167728763004392105914376510945218605509781464595915829671597158670048907748390625921627039601598058257665657518761783670610420272347669544388534558218993605518399556562210099322111660456208860997173224313689466511574658046112895046332753665678882594248426577027697298975656029575955077257051804580568923504536057914866847397427538384888151378520413996947777434733841848900909068357781519258537927486435531697823452134153561307908575106144797676269801398552934067808595939623366239816823044688656224800904030740638194653921749272159303734445000571158376658481246861671159816759425618910070304557037952190156830846991174026223621666022267786191083351981991789435466723216530299847060680225368043910980761506943261692693165944962224589242728447112489831836777919807191726090223009365500820700035060193075685688512521206470974698518680457367809516580016558366714759873320451697788237287105744021350940311584291104620254289202644731859564815724354295146905823427857327649875011288373046155589754920057997113711268897326570987683586644746306914398316101335430672983095788283619378752231253004316352494926195510743807147538039160270596916000981962407382625129869405700472809948074589984977051904370846762228643473031325500055052099828234447776812164400334434356859681418584464828829161429011466972813347072319644037373548551515380366928083482668771316981385105408826540292024447628821250399572659361037493655949546561940968470124896520604294212194603009020327162664087263464650180263078689325149372258377616495168887927275878442873548749766517665873114324775901132629374086846748579317611489373745877907437837003918552483157806195010258876677185586092548915443861847652251517447340930448222435513081497260521194121718079523673281425251417044496059728332673569675519868010406007547391159940548494254403408972117571486178037644412025147590119087736136605418306923383968867702390218526303856216088880966239473252438750382400514025288070716319018468853730941144499262756671170364717860747356879539402384417539973117441232713279990571651546053513299810201706544644993525656312406634148584724950393792513102111658202749298484783861847758543474714250481935965783244074517459406093070792199486674136296337660451003623408783925589678870404460769810191051606119083414414582185364326802066993540991102952247931041553893710455499255414485257556624698496151428799401228439076616996717897597687284462946475725058652406163733772540418949750866501647774799335109080824557725535863627936281565370586543572250555701701574436319083519918205367949653641055079880251210136995943545838750500578530210310752862161343955173951685241466922643199714211945989742851363784870762988149986193007959057550355893648558725525589973701418517233864973044655472905968978573739805493007929188944397339665687130413735804277987776704701345826342428774107806181722330946312229708530350816050622200372321409586096262387150280023498381594924691480086227470274904353473491611763034891917136232545839530138153349203976251884405110038697104937146924569843544308613748310824855027887771360659299399854938162928825799882861026679727164665265671396316987025128009139722516512394630758641962571866871722663381468956277149802595888277577450572131921331825130109165406513930181010962590697412296108638598274362311582873950854333286340136832012979382803691075670031453697756101893478794652010908360771406409549672891835413996157084923654244339770749805083222007214213427297162953998154770407676505193772611978318400443104593478241648682826460597032741299866482958199473955147052983829675842449660814210298863965407305538091125702417715521972051165655562677236794147834327472456985240610061312037420321376339819300516450209159484961808952407107621812186068574148173982534712566482610078399339915506786141478754178240855249855381224054532624601810133024505214039675384745726235486622009580035099680162968678156779701569688754094535769402049691632079183994814985252051034841162005223195541865658487766837431539716573923876364597453072999582771347722400456750761578975308461754919128004348871295534225289057198466758294107858446544753632837857143509107600118386016754017458751900262723849165627083706133929027290690803847142639945215757463790012989993561298384981503411683737978220128820604440019272192925177552376342439460274695838486002544641489742613969338414954948724685688907035767858089631003143051758402815753291022861495631176426189859976460768733398906361382664610964365829082014504393558754635522648614012353043578692013760728111497490484622872899624077902898308031856204456866949485219000089138041823583520064517672634908907545197340455355191718404813397132527053209596007642365223945380250457581575583349252308008130129620146552384380406672190665736630146917744048155950208041991688925156203894138734209240599719379834427645588625317987849037513747013262912234268740043567576873831852672201313379072353042679972619272090519780167391525519145941972964444110912406244290819848911952282892152632215425911850433415948641677289174863461229670542784863435139360061390359286707612116089352938389802753456052887197466798982309281116509645189004548179612280774897237440525163807227361956279886947515651115703030984356876739216668624725302840328913069407433456760630792726369426553077158134717715941574057988453594273726769779826861899199468611147246889515810747152128402676875961129883469746957532467954300587162983181477915108373933306931916583914782721432813367003325112294725843730695871827994698135390391345163130248843501494852750817614107637837768918128082274164156588894255972433422662853924420929859866574912597391045269419777738739010263371123352037095393961861782445275529165395115382675883069116364305315265524581565710214286338863221434124505701776435091702599221873511576549300362622781281232227321094112964927871353925644243345496770272388261663968418081918007045047734702090193882188060217029494645270522406374163485225332330711042861541039427486343166080398368635753708221287169280143141614472662165752759067874151522651691707835346105364041310054186905328894731306381127305671633502305367279979360179718643888695597544991875662921461801427129927509936922467685626190316895646910724779597982317614973358922798461013960254739858655211398852246163987363978162552560504976996578535636626331931211747532097629630921614067370908879451861621227177811678924139450676856297477680555888509487721737039564865568030838912809995604695822053956390369181741457612578069671545483628985546215970433135536048088060935657727115848529910258339918195766780520974948972729770753983655433493053302868309215893598138338092937595994859758416720569721843387058433637365610995073860681877655658713817589458642318312455375717891911712197738771059934036864332864611519369517039532813636823931788159488870874302200258544045905053929487928190970668193191571058996370502743965305221712046434363283051987510954141274253018080214716254261727303953234513289414268530986649760402520245430260643311119316299087725311558812931380941923287126185863851236783066345205064312800114055693482915506889902999235540769558077697233721446663777512657626956111757635821294186818587838026245202585755926832921404191944010753373207539111344071518270417383384577284416039042439396953517437016165744982176789432972165601668624597830459674435031263268038403027382615895649228734027816539836469401983716390353581871640080361077426859843972663055057315308843472172633536269509689468229515484725010024988177396761821573944282781932070357658341647403337270084720007890283400164397165938104998522116097561345358655038936365222137789758562085962805997863834955940196218538342981488683565845201478686679564572562036706564991813158100046557742512641730348872149226029554819285274480605221055779872236155117474655920218067286798706821373382630591724636037797130537155006458674981489640134639060247712063842128070221185751643877983486393715355857098281773173015334273839829495786870734581040175629265290999653873819982757524700146997976923254774001627674742655990133109516504400561216511659264431691637203084592379104983093035350080751229031050347905737510209066706299004672966482309833569158213349425812243166901307563675015283217264037365903368863961152105083287923067795664217394075170911997831253527527278023964594705722564204187607590971072311745100425662679044882039697249784294643210932900683374826238905814149431556985704844664981274697533499531272803781025251945258137597309374744760166258979745012151374705129548147338411744352752673391931745265833693343244650722484375835674090929584570920044638683520673035111104185164529700108580691956117880156130138678407603970878482477368559238925860611064575349611784290732257653200752886310408020850672320472130605355138082780525084046734535696765606327671537967739254376619759199813131404310549099811448803225448046986646537098228627856409927107924570000395220479051643287322872204647760637257957259686400331442396258727676077249443478874109924136926610986610925179650931037961559702098010239270744231214324703063397641462182044388232099155662338211647506374060327447705305792841025184588732402788284848386345451148587063204985681459007792307302594793030006578516437569067742990071614746967787842032704220844636160404332373846563239997936043601950609586451508173776469739278911943021326601354407444839044722382086087617047398702893791464647275439875074989425669085341602104757513649340003752293106809001557105723095744696708502226929169673453114007882892710290510412786324979266723447453631136891599877384251913081723586003570586376431308308131913658551164774395146213971935642179689313174028541897167516754594715414949447442172014682732835888284983116768172499115960741450769843978803438617427734140517848122652843474378493265614302591587564762097309700407875805649942810349848141708102233145127968134017614838519824896286413958508766167264598924877474763332734964290054324164211686670014396234858565153220040529241934776192775626559504548740004276449328320081688213594932990969913878302813329445305098258275804093412563871435201619063014455957136380483599952472312268973844425127280829743525443501246381479000590949985169758445515632742394018324418425555729103810940934981653743450998223476365380547818262336011865574347577757582532029244543633093514769376418932443191728737145170508300869476845281792905518194965461078492563679467401786571017819566470402216621119724286233248765166968786425075083076842423113652652247258013236097136738141900072713531174735574975390586155402159835096054594225483860031079508477410631434913601890702103461958219337563435272714917266682708859691520289531381997025209066024692605554650491392541346441353918316612072893491669605238650580634167650068548186873685399373807178469670835908109838811103484538246599479730625030921394552601301245978233254486342265311800080444669185766480966941846467300783461148678440252214655232153133987627093053421864079893072144531570690451670077262398435166234214799732422601702200770396881568129994254758869704917633806757348002399041687218141088597185317630097254491398745001103211205251211851871997318917003822335866407543219334149536305950058853872306817948629415372145763618585884068425456999533188449890313364923792549660116495000617898748219537423918549995753084648769590414874064229334656390937598611005703880202660062037731522358874637746946863758555839934321635219796407284154460676560860042760669260331478259949490972987437876709890951038589710101249974846806562457691834885875174587767908199491794256468822783089177976830730747249863873483119574813206299491765670616172158750957197622770141372868418902679091150979848492199996627283789044372627381775417533725590681774966866370591177857319497251895058127899689059350822656048597074382225503357561916774017989076164867224511564248557854426417443785058791900070149614954696549850451683942675315227291606178454570268406007580022709754930394864550937766219604945460119966337645964322259885546293333967994486038908028073532502327563258238711443623932175330978036026013087328621132972651032317526856669525833867833957031502422075876322941190732873911675921482766849021244453152691642141275336729202327822549489662244797811755502849281392795674371024901756767276077292463811618595889319486658590663828922088100890972849302483848750979220549393069647238022973239103964342054785089237441651680201665895088704281061511509437619403956914884440719350289369012439147464696551727577558045079386345824530262470729117251954542960988662953878041264422794746370746993346535282614408607489263431694247758320317085954813514177911354459045602309771784029172792283011004739819475755397916399156469483716686310380260026082442276052301855806992440446241722020760828077440682904470687571674722512952180348940232455576844778121344614477755503318614124121916891559736953504160185246046540924596209441351040752748133912026728457797660897382930788877449485431492799753291390400148352293109360339500865186502538096178126474254666090085164439902338757491111757071574592831208652149217706293287455806189501945081832129544070799879919217271787095246251512568110605030379089802554215890700202221663715892173274791796011168403038554513521176419918311343985214302982573601542757889993153342774639612806455038857448116859405573022857118533934136506566078135722840285911517345959510334635066159414543870404808346553017294374080729419906751438246295616151403801650487841099563512518541397288449491212675052905010362942483286481716300780311910293763084552828729961821624391392558930568965841498630798271933324563532265231679229949241699861188705263959364394223683990579174755657900535226684355092802424628329090345155277760121001026423674398204679435642614124899114709399933007948856806492042500735749282007177573080416362423100997246841278025644752576366262899568383754853123916867670757904607144516414533904147372172861638486434070292524718795992639464611379275222996534281890978122343693025908825971669730436422852695029471718833462447767487488628173677828253288752483684174708606801126833860034860013221731763182226630194622501772331779811131144952433584135840909550638976216724728040206172400077059024429057377939962967200853727460288791484277575801695610866270001500351341007722891186743972952068435956831478993736532229591328226906451836913837409714066289687882928557889814014148834328256149199632035279414469609168175148754129618622304566123787730878795887113771252190053298969200692744116769398154600079509271160298900315634828460739211570448692885424330696601062043484259410265373806085880332351185304700192194647813581189132652938962170615641000707908896836601651147631508899977457283210263367786898571553927894755397602272107115627212018667056992022843009748084194140516158076537019902244357842271702213170554653416629136708810686330505468255835736492170214172844408770294372032640156660934875331661586889882508996292389611223505210824668560343640575110404704743156230017699036874416089966631651029392011095670710472625475672583337586678623413932923103532959018348292350979002484401654407651593588066184199090820792170331468797354636291058758762884679294612272742880060615124822782860812672930725684350917808065048593472855867904795187584839835898462618034667496200232790393852006695618892584685817735855919501894007665913047889040239468068318268804729228975744137818726324599157621479506456062232159300489348009687384056414464423966935054887222427134125812863898979057007825012402713513852789622788157012222717323588179028974532213484879330099048365981156829906888999692510446967113553360318056727784415039292975361671681391901577337973933106241569492513978594251535338042100756460645375658088047256979434584927628681073588215524098250658891999791863006579699209447430242191804864264572147258091828730671276269786762765707332123203456257356194557226004127321645854343386683217755970541648060938092787208651042865049732018522353381605720458574696972575233652466749491387526640730583286045648629470862478393389072980200710902545927754757238673648720782254026675318285272728595565605900828984508856650111825072754898658282141693315143248724291746461506980429001776193265512794955634397182568386976185045911824635743841765651898771145304127793798895092290742922269765172413385168881419941280887992893878271004800044470857720148385991720319374733305554734665209081256875676475108276503269397194237457412865237655835677491291204343000167240425582109612224223500143700736407502371574127708195975743844994089191269502610454653167307958512359586829906103104062940033083827282817977437692342503891528276044234382710227728732196384379744640883100914069363518495818638862486819142609042116740610401578708366752732530683377480405946567983033273578321556091052663097609343226295469287332686769617162431181056595304488381203544144816107306084571187141366083657312575206155080499084457721502461217686303628022130745076794140467228219367892702847495893288713539868309324152562325302679703011868944029651167287633137149553283232983232692830198910232222634796510478678178695999548957292314260535201129931652113828614153312711061425220574234294269801535980860495794563591614294776206070871223174229117449078598207710088843070189360402276572744304960725145117478407359085222603096352343396668832327645628874226185306699873765489336079365533000072535143389167284744418574429769285737252335426948927190727856838740700726360841115351162930446472573439802760503653116242189315610195903772272221085755887413792582770187119836676025440321670039563543102430872112752019849988627319992170853410901691597185052812659667677696921684129793694661454285958997549529071149068234731058597486186279739927985863362695195516233988070815387407618876173078193659106147402373686096866219571302812159307919511193553092206905879102710633721518966865348239091706261089967500454864038638771215210755111057747036797047410025932347069652843065320238229992993777200703030070930848759986777532307055573007708371641401185956496939008566189350675525012686761861924314872941540788847422005899979866586838871623116081250230872415545735344869968173725639556086796422109044358140317586907983100063395506724598498284499363247659001643306158412608979575920157577567090470513931363353791341667911736398017296012581912493386456431974196914752183988368294137017888826317653163661180343172398569436466808016992657883921309612876391864234025512970796081138914098222432617284479828769781828371961820190888669883196929153033110826757171409882886511980220234180835154221343877153893244865563369750333444778236117633245995116650508143945109819197818816105576595822239959280443130600571853600976029754104044879017408996775712575985626522097807601098001047166177564894509202383693084659908645581014313211802658442188629968741580545010365708999041531846572488130222129302767133771156114769426642570491669093136630686097083584507227311501828381318927951023224003625332788089035186845559552066147169278686026543071849745885381425379422879569741799457495333655480824435405214120476286700951570365587420828364782077265502203580212486391525189780123415890170672938602871007440267958724010424446192781653961919476827141454313183867272531162739048747759210184398950004696599977435737234824709067439578377111305691600316193218261552566990826798159843616761991806147629968960393180597741218883211473899352545989422215251782707496864801895602819066139583315966807832450692739784650787335064944540374420813694276916964617201769096391073531822571518697406910841381363458885955072958689979125804515457964357170039639312891114849666930686825193131193333758150261224994439622371162293325147397751595865847908429325172993087947812711213181612561456476976202815312370661029852616803248511237523900730514813548844880772845898607523072819167253716350420447165727097395642573432666280660483907981934600781700585152511541206988174741855078943128524000523691588918389943274347421398597168854564366791495313837923870051589957524167495492695221845591209160830561523852985097748488256657296604633772606159966759940663923528750053723880274019836572538064103180036999459737010727408737484187267055234803974232469701264125561753851887929255251383531483885680846353522390152012645592614967011837089821539398147694372545028200845673695267372330465330152726578923065870536392385813813494140933191967555492393496765310704780485008464897180599485071540633676892301542276971983058753208892276622611083181545084220007240708520900755496856534947540728648015668828949091459635357107650447317944808276481497711495951143741688429484045964962012346504943250497457590720543506002128698151998910397476425232102511703969079323151351257932530523130492793167468973118578893481997311292329377947176055624013436278000228233859261108142590631804849896852856892801710513529353708852128747096133398733152006423251931813700864483654882307481794042450490533677367985107362433535643220271475564155870868748208084597449342279048075538889199645832934674840535503153746275365728955357067904575831754853454919280060350335503479997114632156794308205944659680338691833149379229052278181779091470716945566552601697044340627693349745628989762650328507456488325905938187528782092721058353135983040052162550365099494631169238784897430510738340789557767593004652733539822478223266984664735385503708596433878010392397346639062673704744992444423950715927180566916909120027435001806224469697615347377175460941193814033777316127327234728466969041561246084842954586045728156182536799937743906340266554290070222392517580177583903406856386245611696324603272867377200029998247778542024520592596886443534760851711562515580607866950430834771914473158796132403750481528715834578211267232704433738376341958692489631834543285795965424854809530167508658040369332589814600411112192651409575916172020071681346641857317960218568770778634069092563468130708795315302546915547771838190857871187724730504832043021785253353981578147736161406404203127573531903931651679226078112061653571117026725995851479651674342283062956363912570000541732609795596557228073166923613470018337595890159657644579592245906384629171403430491611862845834839248148323693505227057040180428573630627781652604760558308068217510058598044080369165246813013587461731391507335667117476638466314781459775633426757678520575008822153093315099077359512009092614591931017267204567722635292887254647429585999388527463636416320523628329395779373940543767285737292736845208685834353909073297954361244469926000074081477842900708693956298489328481386148537677793643813400730730987758045556030170440403551766652044943660372293019657871915336053309722824324591657306100295219054001202311173537315107766046045182636306331367687806716966493203549344377915259587597756547611040179786399402835715255445396818667508045101187068123168119308880813307377771346221855403068297405898409842863917166032947412776825746971157382241420952011656058793694121384350346308039499001567136537918890055231487842765073091282321744973309030247639284224148918829777771513044327110712744408475428769110776489650154699615086677046948436936757408227616720945881590929341411049884775196757522231531640067868249107252643909066410138147414802202846409058859951573397413299073634755227747380694640891975514208326657275130717316632217827235364744042833931517506454024552230906659142120784033347140451434054636199028432732397066117602568539022420346896223119147273445688688437244647052854777758774466674531743709638131513801895785444815438451271248964420701567280565872293865431726988477222347021547052236901561144003433410489344644312184612637718057458857879512127564477549258285792167637847920586550721806417858229007054393637316006661612295373612828669876163300197115819742740238827571308179179963130943148228486245195550053922823935600541352542726738101044335136141585412229306859180986668422879315892695777652124431789003767415132940252607401101984928893224756987895221565170311886836021095644095577841193981608677580402680600412438693729757980650099787867235446465900847681672441751147255930111928940742022768433956020364063399016169877442250748219468034922489924802795016429480788060088597763502135330705248520234862801177296273524890761328052013417228378694813880461725455924564697273777502220094911229653699807097175201610524169103548607909288686669123558150558948654070141959612883844889542092824320392001272751514317553485728553580327682948197634255900714554564147257002361818736014927708296464157724390955126026129676837941849633428223624635761779237934276351456851243505029520325412866097093292612691291432417615897468842119978255015658621389148073220985256941916666991503854390391979064303783361012696048115353753398775064510728366335419864358550777561056477780742649268271250301835651229823220784569712233597303969997100643806471403622390640125575277669215747028842003601836147839469596720927941173004007980436941717098812457698016470767514792114160716921898768007530486004630380953183706788801489964107131233097280341172935670545761224707230019789075795587772779535786963566952419139912332071967776216227433479626941204141874471209447235173774889883427001603061757521769780654516550743300390793825128571989076088156517257995629952375299787179538377168200319822618350145406097338915673737530319821454403926845070086919106506921345588345052217250833257652690237340212564460650619088086283866510403180626097384132133275967108803117273522606620044315850785406249730425377952482252373345789360882428845960961697149454191638725803387582769093785357028906812086341515079758408995663152578676386059023984434004799005250692425770087592492313851752577624455246059278614889259554115551254634293678801150909582721756899709703132222551547730796271420863006077117470498080615957747355336463416637674453608432483658196033286684159136148800447055688209572694314986787126551592261275950266574318704061870846511553834896976256602751490224258065705380796209314144485086450711419590158519528782221551079291297464801060197062903718720300184372511494473138482223024916600478615559250818472433820603830657170116261418286645163616642171473064730915821252459175766075431149173306413377985179265139762482630256930662250332175778305337302895507316393195432593429542108319656757534276010482002875295050696722684611510611343868507014010781849908754612813506866034845312650716292195998524406887361751807308641936628534940323224420934435302414026422663154492484908129085818940231937617575514431869858695610777811534662633542192507393972469527329429038979045115579719070798192457139788338058543911361487197386873253880884939499496076324300333608908330919088119871365009144814898385264610566766495236893583656062993967540555611986583023379606572542080601073823125385164854108589709495874292552855013751044064035950506492521515812996817858022467445480100447011310401687411759559937846033520066418503251935450386872606346646595657028180235244657333642802497315850785372623450918481315435945352648868550255948169549986005993002421910322517518658469695346043735552901104850315172149773967237433145618645740020128581638265746053288346667468182334572126826636922839926381528541804598966786177145792361727123717895798271441133705987664475421685589798108415911921832637537638547916457711611288597872254264478110380639207249986374312601428091583515855296557758480819025628362851743157393047585656539178034054011643943422670248756943004887529455828852087494399347563748782716419442242834427550524235465947083564988016787347797121413499676280802709763876351934662487238544740283389866867798047064525950755522721881673674035950547316797942724442871063485426114554725041825596539643345418432990142197019007677090443148620292369562362815857241683848009579911863964044700573372517983367403260034975486656903799518232947804650672535125741282922903190067479913043913096884170038206878626161051916861020613279766258581394671683919319002944538084929505355144079353853263875898001845636646862411309763371416280971262777527887115297884979850696592714660829607148751842466875888679506874106943777586152821744135485881344670290158875515625450035638064661937445517309181974781621966443512986510977368282156460271170476958232413991758850096039022574493837432211099434296298191557664825913802868857211331614982313767413964506964505771710368489963984754123240765439252053038286684925024912032704721802482797064866753496937426998199140051378391853318696705702129599646357967307054902646860629546262046320899529843208699729721992447003341830915630163136108294341209713268018012497000200641576948895141127126340663728155192286137946610722994448274312174998635902297673261955575767305940794172283070226353902147585328910469759327311586387657859717444334304908148276083348216839704080180271307963527251183463278692950045297722794988285611565423557689471644648571674734895648936489701004993776825749604482190002788165821858057331827962223896971077474483336103119010480268644172634983445971070805034898189741623889291413103243566428540376244402731766676176805779685499934526479281816536794856847190314078687934730518683788625117487514953747883419014329352571324772062441076569102388192256947135190789267347587802718339862029383579044781277638106583733062623413781380311827670082209303486651621275160926393281644737265756859766236978149256707624649432827936504616509957901514183519521813359855139149129985412340328888883106921360783008395947175099367714477411619738172372147432765555136859776016481139474412691958000595676966273066357314149328386772381913836184707635282979303326144386706886394030696842760717637612176919753543283357964324456173764467649119907751564041160327287118494717852334016328854766772584749001335762131978244751085356150501892640904933595167736342168915808346441340540349205779152734647798475566414516988607757647598172602967551994231260160692702979203370330975788932857460917718524936214402110370071288791445668329412130712785357815880677149241738225989988926112736942934437715731833018856110458535907956945478094507382219387286637732656546866044112894356130185069470640300530114054394347330548955360990543389452743089679138658740690680882837381667973567323615364710789164070238388004269720881301701282259560843028474396924118115584017346290333417712381746919803210809947459425908687023754971818796961257418241514043863341712325881694321789266792181859296518962080303059165493018703402992718256299806264666605264720441127262941505645348713839655710268638335055909123626315821455586496508068884670939223107436120869241233763961166005641897049585059093199022269789743965687751635144977041966665992148903858617257805286229418775913133973381750876086596353703054237647214543872580490964345643257480381268091081795932860824361506935989483560389967287806114332390705879437371442628160516769168105391292298763997152753393592534785975668662847114965807581138868346405030678345499749912964988705971132467853219895180471764183279584384471042987641416812223140303122189170085631645583762433725982101583845345240765003501123539904737321332378218400828765909567162673246753320123516084357739874015027689591196382579860851174228932142279924824454469927842290880664054487161479054287292875584447345743464832115263684676914580532940463775658127722672169117179068937096400314494546221345555750293790904165094966340548709096073173305367465218926750282289138569631138301529235014544662678517331593983861535881454228433664856191068442417516655236008696425247542300796165997648028989900253490914021062936985388406189453963007594882652819589031041823437472398816939805134834205518226368693802949676329207222022354387157886709014321763011658895893908026881592480237217579092383639648784236313907674924902898250974536717802672301982076058817371398450372054293186895254464190685822426196093776982282374296385665467787696809528754434607703953880118828275916922355228132144873494495865938573102964178766259414505716710616211045288799232718893150471490056554271636518184631876994635468548593291973800528026701603438911370966823903966366254344722529823408368387961688035790707464245825685297781803640111225220625307227226566583167507264251030692129628816520602126415299649566321939054702266438433874246462974112976583945998385979142862082350202277973936387206011481689465663397705557367600296100147071673499976117713474689629300348922144755721104579313535674071786020293802121723543722326762039884340864634291752276158228731493110517223160351050137181122107677140153449760943807105479241741224904956205180623450097439444270941372760960226061186267124567621815596174788477139199173048529012853237554111404779789613335638322828780958057218231718454518687462210638900004205106155049396675525711840450158368852797423517301432375817511845871359323259051149385221448493160726139520702459904901058696336488523309096777585356405780095702984891487309573985862812991271411576966629917446492020754616475491286834422090610446609882103677755627751097472693011885872354039298514234006742312537337210699703285175536657409277305410885439012164595278024975310267922339224303804970491303395980128165620283929580303795375751047944142672253042100143495926216383409468023036964320447883676510109504548521481862794685882837685280918952611814075671479611451113017036386369058906147808909197673858588270162935890088569539006165546524994241962768334057117593371347834234835677775104067429450026396247057245483319733261636242203678657234880220797656192400377505874661832610416695791212976155129914542355888304950634653767267864302003308075269604655727614551909587586736846633090117372290656223985673998386652929842061681273266166736988478824371128588393868829875156093824210459083444007064503948973115835969090168361078984035816827211489471034507988129748754130841651758688652217209073579203469876415451090249779923308124825687092839178093179053271573887459618729745891878928631245809336176688622521157670757747884021074122186770198336228094684049579776023993775265495379501575511596089698575222118369139750922020010105502383600390138770413321664915192279808867263740346048890422529514670090702369138023933594654750742689915124716194853670107434681175270469082655420293317013166440985549044784668751261000556178554788941491874376297359113924849281664475870273609961059240456332935825863262239362118334925449966403473669269562962439883539725214707726094809621623502760184435354932374305014595171720967934008089151452549699644720120968560292211565140938069449649718337955893718175954471404096312687858570645104468455414187514161972323039183571231411668801727823992023747217808374646098407841286652844377502890807533858945023915170061503098028490971420609703560528752401069190993997730857035397055603333320588345460313638050104312051616113855202025486888656081836352971014617036078976412923057272173793411132613224052261005769486034336169252487464213703159368928204610316457291128099462419297861225299417077260814569979984387773563561449661053134129889464762018513566977908986721362488945946715749912010188283167957600135491014186323156463415392371691657265203963787662662303353848909997917799825704851234272910938714092393456425945092163160845551580360703998222102762139646419663331928273265305527880475776467807614225840892269142993487858782437146623901311519799582615502397641695193083700101293173088919544571268149501509299027528224937130019231463900110580686581097234387631704626672012140019746832064513332880571466341568469966722861322453791440344638005623046716216972219409324588377334515043671877124721608100632741683356486523892926114199231613939871153990048772100761084403811159460008139565830202387844166610285163173572146475726550324285925616097084732060524309685910340192179878478113939570888642565717343120163202169898480791297921061974305383012598719643611393415891480424716053260174163705945307322115198804158149456095444778465826619919707143235678359333715433876506487514357142261725701265992415568798685722951675731252090673068714620335401329055413117151542469754987354281904736771052561759599996627291524969153413830394908062009290929561860549224563739317941506646024015385971965035862704857140389752294288732562497112295954354138582252062056482410100481731205382415178249193610072830494449551397315950390654259360106034022038280371267616663734885443925210028265120931844420514609777410532062922022316390411710000261453225926346237717309512412872195267626772711717606645868238170378791673950390620457928367688905579242163132846917395048868529127727489906335937555613592475626880025513327946905010900113458691581155623715653044893937650052642071022596052197735748775989549949190769024834408865485424471530476356737054224297781871204932254156880273283966582590976160423779422553182114099594940018274745782764396778775523697734292593209909749116915356720722178803788082425176313643738749687215429100902343505976547741249819232170055824829722678394358634264677112744405687387118846088491795131277277994547090554871169936023874914514905608347279888868995947366776363807920573178270806380431808711786469395140358289016610470727131329696778251190049946280930627188146249284326331388296756203592022215020536084825711986035394620825023423581085479840608438206240223831392892153461325089559045811492215101636765678742581251549351690692628102723158021005132419228977371219254889833062607736997959094361265282723822469497485908675081044933896090055546583697123843563259122819265196822271472699226521354795601636825798985333333417935782650672394900425469686718295315366253480786919367915944316837884204058906814474794221786186448270019909583370969086563840460546913644607340031973456703857089059448311831744051775301022432184539722838505803382697171577316354375054592536861560425824247498324108821314593966572663812978606968387252935543735753552545845425440085595872915661147515507817097913285505139906131543381021296993370628949863750150546562307940213431496657918081709356356597148772250176614817419097939258708864906888096158303735119415152513396134672163725674578858168675859961051615235533389123115462951490930722489889349332320328951355802649713741725675329469989727464275487852021347718944243449718670363214257998122953071604699843252872627522042155017930238470568881589877787693941358832856019842545491574386303483105048801331656628508412218287065464636604490086917670140529475403009402711231926431845540930875634863314460041691110779570001274711532153540212819061901235578523451292856356699123235539482955524850438261388502470134944883145883452782298018222411371298834988441334142092280189290928680906834654463525925611579177247995162022694149579844817538261554492146401567742567803973750930423078551042485035735251600673447617269363889094709019904106545241769662866876490148157246598455841388742391242860628221256813565523797299945028125822973376102402232158860496164289999407496407640687921740088692314410178188317795050387855948198313377980501837477339421987518181192495875265537013434747479874582647253426519379589754571266440234303952718480487326098611724014041586713367859420565334184256035522279119340552840920969714843522122949465379389127032787489059404101222590997440109429452602086904979052620646072357196490599047141586701584502673076185784327663450272332799673594428250560578602029175814739241628153590497583909613178181188485268323730633410893054622472733317641415299447358168153182213219146514259356921361920195837738343011897586761490791998145188087428309450049104826483284133475142371834743864844119194653790688087888283780607402051951504565524662460656209200730539391741042522868230974040320724801096086953122797362202123999755557151518942725175357779713629524717524761950222942249291035105141083511169523764231743010570717281874517606104740506021730923779946246515556895480407567884830034307521190276151192948268425493910006701792449431792841650691058363864395878029791362491823652647557495943796447471782068457952906132421287464404516306189190122084914929174750682576862682778553564953645098905520982669206416378470600351912263979697492859938045227244042790251666947785377893152417871973722638872045123782086939863070739726605840441663588804927721728895705490135964971773999492207031524396031886958796184028490806140027921707884306649414888644547312044988024910478377806619907181226186027301807669046113525130434694025564848605442782542366721640305412360079037696353748145624777332668214750445747219210118585447911337984271929263703121528988958461917357452656656268365116022990659099541055604928968814033387234413239883924113697979201114838811583902686766480284707089631302677199765152124102245122236910539775066002926119608352198334254476437256558955818026305943688719247747381089516948811270360750142550803347076173503782163131629130492521363475430207444309399213904921909537667413433682188205437832708542914587618178902080197386145079824037258606897117205917155386155825500505703943352439419665891410600296097203071049587634039024980254035288678402384055126391779962083367776053202774860989360299404759909146854024309686627700569231929425709414228894637359151227591792917825266556965889041042683358122707081472570583566071687479680671681444535285017588405211102399207485154083884666812037473260691915998512736350379966708433807860000586093422379781979912371975493333742239929651725075688045354708101418982945972525015238653939033568317726083320066374371769346716684986405917629106712096486630341519493867611703407948417333161454444721364887916167428995120728651154833907593079416806718856844558302582263508443986736116169982237018396513200210197446404659034309538187548898989393339137582576241034557993805717793832958939916294072337118546994664473788484524665057563988408540514713957649924612791868028514635667016268078081434144138228459295701415090239455585120510323234553622135007234010948528277830783431443549788971651870794079319938492359011487295429325441134925637741116056833915930965844477600862390552000880152408953498334920963285010537175004896431298629248062385569244947714176883486281191401902449557521554147009575517412269388222722567716630597653017709504638007854160379003424752312648782131247947741541990688172097030398963800619877641263754001192907010322171465940951828563675993753781839339856695118367774243027092458130822509137173625937537030284459805570536847284882295603281551853195877919423488528235773418591194845976337088841189920966737608229206295551652834107337752822134806952323630656065535429441940306368158227626812867061816457692257381402217283367360234476568652417565624301803782691087165150327162898727738524597940446552684162475726177477921230674430702308046175494357986039813457861022093649990517241463542268385739514019076907567471221798216070069391574831179249742062501713895736263257211401412659148970794621032152992836702274588126160755672017693427386111340890946621228393483927088751714131734665657678516358319864438560780452200879944249558794154100475939035596796348169504139878000426376978519129154319353768155937195207039252325278393850906326226942743186167743363577004846400493167184399092701707463929650048978082425038822385497927084857287994420673642884306875373449528201205994368890053769793240492944176507910419094398603101299026739301619095698250018643504315704975540393285768498380299510936169815444182259803443734744361565287434646178703806167223209650144059754514356106526416360021320933562287629217205242765598835068802573692262541920702671834462434045316109622366219725297224081796753065344052905565164910209104868270728886648246817211118042637258164562946549138851833734933863854637561726366103738390761296533953634512535944657145616734425446954505245265798525233070049010617934077625710418194551483141541049382401985462196620129097600268698965958422510634470422560926642480374534633914653171009660594808318280325550043792713482932247344955551278232044794750374621994943968821711309413495866109936921888235868396725156156857834828664881290817567002583086484908520242465886714697960261722419698750378132440487898797148494154309873750802551472403418975196435325485139986260300461248301464758235938518582830503785489411772228233762574489091447700002037673193231387867158428014393153343213596809342534850042361106752218327006836197955933363096012272274844659789485491054494598229195804727001007685238374301132701970565427436750242279671083105584542907970468903257016882052102576804666471320806360918696527562102102756849615017617617567038660146908624809485966062494757878822757695787825056791088948071911066345880691559725295624338403459619531950209696571101504124052296949708505828217247503354484068543124339998804808892151358036314270287192529711827029642838480717893314743655451355414729980122187292897107109889652248531591582466664241346323953623429644225579452146052413962633750516989151230054523728134441931329492694945318688877690429703898158922338504775946650524314951683824690016821456773798010898190103209873477013581320971592884959990074034547015812944637083270257394088752780636021733072893747921280326840291178720706263430698553275231686198121204677664591386788970574256520884812614253217815611516059892907350545629944715854807731789084635306656335735213138953876366632052664069578122930104914237665554161217607600620270107341893729664090864015431344428983171295078961005837605684644861829003686575182726605059327111825553510979649922524417955715755969896847535712647174028945787398017358948992850590654862571461764215784623719389383161571813950207871311421534545315709620786058095244562033164800031174026362042539723821437653043287975572430679948124602166644349592500029200848237535170568097909225091591318171832425956090535592384046612035481648937046595112279969471244359653275984645215658486336851705462277130477570072306085773641170924610393539725784336291298007770696852468280458678598514998695637205898104541338058466482958431959755338275645504296125290356216233437128209067076111085281258179566461549731872419002686111170164179405807100453216663564625243269345875654882521377341834669268170247593105023958229973072101481997247017313777668762434991984051756619950057851393008365040011385398043547627233406293524424333545401155717398500543363750880242132036330199967021867696820626471468232998336619889629635435233325004821682433758293739551607060480837571957779730890446954768195196143029168095285952305072933944780717259981657709314054815401851646924705658192852293849737762199621316628026794785372697862801515073150140909741166200824794303678411061223040577929547362972332389901737112223640391078738850419542643252838905881511314178305808290773600385569735190617765478309915087234498775313734222438385323516480176967637469456749030710957306788745630102861550023275200880500147488090959144545037629857763536253361355946880087351149284513754555083267850213561451223067746710191826692815314136892103557985125718062947428419549407691541974353527124025010588367419164429035527857934211277639015011242106642376600092110158263886643769532372791856944739328747784087284883258861839266468792268168812989182346067359125270287141129942902139218653247395449340228645718519610101447077908854587479938897547659222061297803160154799821543035818287304894191257843757868634862409989388214729751565322921187184904987418884426982048453658841368186161525436425255853778325138119726480780373918318745079801465883429503216281039415216471629730095373603705678011375488070570575708542232936365795879706908388786590965559316018542181985413189125362675431088873732522691389017004640567441513860400411481711413770746713083861721094117764377001933789569028126574425764935464426234751227621434168288181514868806806849194713013323822627982989608318418744688642876545553950766688521014386256854713892566013783062910215841670891808718024753367317102773971935876437392222010685623769662724293546972727125642843052625608011732482124638263927450666390017591091585394922253680833161331534147180334952349048903269331239905208003399167705805095694114519806188030088700314923467303292456654049823149264854598568924769139048119812106684945751510909257881433344904814673494456142411412453621935838849335672629929323023025348749960977458071561366064365410778807464345800439205874233047132710291176077039829849623250012882502193156493316076124606876476536624832746082141228925261129922003948209112087371259932083848963474408546954858514872406010300955849516755876683957678747988254124274367915421425319679117184984487357979851300033574602644932891509641730294554642617751899063435383581926771477134801013242319589111535828194895452804966912240141630740726326419358831399107841868549804019889346801216508820212352270479230711543617028869443544238841726064522446078560976679979000515260955737140100185826915391582550426934524080457416423678880895383737565719145535524962994680897767044530739918187445135921505935935115527328533422688783397902201869967721470108851024279045001084965745808181391159977663595707181012029219132180022435801849991232727744594392386452546682115017144551513690405396649716505934724647974699843812057671892249515401873686002889637048633111347613814076492270668113329549934583133563312155428760504550818571674094759622839308657804514132715531572639748062900271237273734821576683688603324218593330730327593522046678401052268523955685827793894850679129802842783982087444366408624157996317631354164032765318448814060703183089248756593237407014217425100179228800364679343708897187855788402213816705617816329089628936550478237829656568126564328840453473082726347762720654235517453855675998296563570644866589234513846604956368300135318329657344345242766875418404756214515661558753416718769458510000882990410498073511758040442884085707708542657600860388121719415975925647461125749573299835674205865848506874613817905932377169116712478705339878699832030125268599773074208041589864758354154268741526213392229182330326990203903813941440157350218499417025969956957550933137234886958297515715606963020799049894405654807735375543890483625962277046537642804267593470596920012273726254688792718142138782736679393723228656928866589725724624184108796084436355428252823548404388360227451578868470648438625165775319654591767317281120119468302147186908365924339722729355710246056102592580445691509582618399234360306616486911468208727169344466973891201088627855718165594744276866839575050031284215986761605520185048250893918455656860487069871060527262329464172642664295523093206937166898230188870652949952612334910016815242455403540335278583277185214684690761909688974134555563056655307435392517473277470666326533061637364923671985939229003048386681999072452323362000093421813669403659536632740521650497763012763428213520244758642444624781603905531758662424023453641675378976040856979628342269691970842363168064261866738255645384201061670867156228841987380817809825982633889682072956059689267070598131583222760195172763188528641971328911706262121541158635608811247907190536656681328081191437216108861242012217441175526422232351548441124172280856798336693486535826725767573238951701251583240807956199314626041595947936332731293907554765023631390298265037643211178986039596353721650537977165938976430388645390168937963141887770394919977218549763930721444608566298139497294405601656733236139751144066834385620570157743901471992840625329493407308232325903337586520815397811181069095736746762386199590650643597185037729604630142812596413952881417693156390933223871240145361814970481399254981551376673476881421475514658680676669476178787375142032392357773478709017022466815084877552315944315798434507704495138534741891103841117225535315468883129530233870244144638100278164022240719435841032928579979446512383530834315770425569524740757696948893062206635234858653841490146149197357491127001648799118201372766192925918075353384579807668633101416283972246950796467914703685399459911681867334049131705783704536511659653649000281840069469046791173561296111103959341415984880275045478111880693537098680104326233949721367949700697398196569500224078557057826690788097166097560787023386909763765012924433414342418857407731271711101462304671617548648474982539021847300926918757844666959130892160916447215679439694387198942369010556251194919104457836999589051453248766901852409102987421590479925665344290582231673123036272822247696699184573386304059198288516570925118084062417337166566697347377673920234550390094484030816852131310147751260868184070969728941271849536657930991939748534062412117885189985274466448726973661804334879873455843820255081076732930897944161859267330426630291015215415928446434345730330983870569406433667702551648883887972406223818933984873014855482570387450148798850620029218680908416308304589526928641513325837801133164586508893225138643806493232104778013910627422597163050517838991546897041103035714260836985860619341847261332279648720507121585222769020917864872576895538795957996549374688377413636267578510087712999883252201187302240624384191188670348860751985732649904066015230289105044917366826682358156363877961642983748610966927809256460084965986762910999088103153738506337262924264387636772592000473184932212258163372939144926500144744036146554440173866086441065558137305814142200973705197573243440294719051949525986997445937701406744531724656520447844677469052876472863412827650764057545186287288642149089601946250793831555397842718461431709269664666223461673771051824703027470022805917185135969694915284921393868557405232084043163907813990353915579943633771776827694212029971598319678397816387303180641661003314743170919084761547713473702638779418619532480949886032169741395860487104051174303148001252632965282657251409980066912686445216624679208096675310781223517437473447698989527820670707336184516070160797645302880006385103020890879896646685074985492274779075250353175616783753133114437988965228408593570418023084283633724838166329636708171224680852320011452583828556692765470255551777439008669690625786800099906393325311173793494141623464719304027856573290986756741830239336472528720158852407605947018480627434069822703432024097365735274449490822046552860861810885307725211392723244273731959524473075620097544021373222726836961664158285061184211322727898349606423529246127957174171659569289645991715813305389513986638370032691085846375970020029801039514396853394280266983487885399279477507850611702068517468594646270884448712433228790268383365844668236325522758890668823914907637444383113722776865631543488349881046496831814770197034130428376366346694089856177012608799201228493461980423367614471533819913318203387890652271797195886646581901746731785355869886237972313098609730467115291455065656451508020148579190499147676239825415470295105506607796250350067456018432855792585400311189785131883862929374548294379411487698596577907503959614419078513103960537212537070259603715141845946470012641284387599374868872292244590282310652043508246092341960308401640336610434382981884649928231657572040940434448777363595339176289835618764857227041309843743883157773726972722927280469667640545759731867202443478410384516487830789442176181623526129229974633874022915893844612415908164887849539258623389484416871718909251236029137674279976620821320289252773710766610205922670197977481830384926991509407363532404373250906708414001524613490225859034519525767448933978357601188153606394928482041492631461684951518739750652993526202447366927954323955544632970822524536436686313341834116598119018701790227476660248369384509718910087980990609215832568206876909427606206957842664073210455074731571253560407163034362907507858064495589944821434553691388895373078334624726105351047332927250886471629754077732432045812938609667900119668044527688747306584335612651957276085756365992233454241947474069004682160215485933751973395510914537089187520768843015406330423405518445962572090158310497221469974618076440382037493427786990741184775300887614462907043886104283693178096395885300055436564369510657770314270508403309827741809945265287594691536451173349611672992604718429112176415985989988704318095249505620480523037491749160430380331382853245286465803318948112302332498511010321817513109497103054133138868636164239900248981427648154864603087824120428178927099139912201111069243887851931912654740455105731726299741380546056856947380005129326755690137619333975469206517698235630740309149105344136236639761143269362811583578018883423398159225543004507575415563784971770999533499427670038488383402741987349967725943555127668912299370634542797037418857206405769984434101586441136211855049700298969959428137533233262133020487877097972359264457629004029242304734823399456465135225599635847718303743908662188351312727532932471600321073564351568976315614363455374780872039362895693506354795616805818900041196249619966475035758951362733081032243401665328537500711456784570200327542590135164633238403589684762285101963492725883787490031796274009418338611340014773816931797437663917444628166837620525456889347944900825463345022382509900263392445730357590772788353281466109316278929818291809904783566851515330101097134607922581977032529744271550473272298004230943693225410185441835762085931969848629454996710739171430039556985961721901838768042223951297054372459384189124730179070157717129415050256107646376128027636527670419138271460035625457243272460517635914598249995878952908472334107520955880525573917596590778767051775491034685691095172951229184456683302762213840251217788346721927135247549952960761993064804534766110234854967786928061098061369280135458300555005962047084408343071675572281687220893204330265308185014076273081913452129669085196211849616190025824251557827453617692706133762733494032058462799659395671757229845757737334183928915223598089851871559878326286822760408719527391113356817788172792179101072516048624339796356481272338693599684478020309754810925183583320528798334837338099232311149047207094075805079655988894882412540929934911370265849139617105542310396740992501657951699072009176436919468026933265393548840358238587632424021830373889368703314031347977450965081072745629875153900152192674804851794906744297216048597649331276838578279774962241454923835675523542596759968303310620797226130146668392199362343851486866033843947203968181441167947586970043122967593485735493454743516666111659220639103420293833239440471787343847074271403841736313113119058937730142430699857526599119076562173437518559620916104893872476385760871377328954160419651237380818598668974697756398148482675590156230519910051447125320850670160087470040315362372090171369762149121545172981814990351815905424974781732332028332683936235189392283781231993915934384944648300661859124196984455290379319527457932734915270505978313032957110798401060847498415866437033810933539566779872816824079555800935160549105607216113466877331567103394534673702094052247962787904717583859062048602945362190672508259350761741037170856336213706428020214306906453144537960100893705886270594641701859014491721990086231616165618748120574459596889268009844504544496765766504927878728395303788633850406907298618136954410309898806482456639946776357111093616416867900502639850291269469179768509383251008714235332261091069824564604076526324188634110342468897533984345762088258425212612121181535331706521180901515746335333745023608580408731209054012265135821398367166149691804164001755731237390957969520714958818744354962814499770939571498193203001922548452402430460849723515736953665357419765691019032993006147893037952215186377285963215467153430616684720847907934555386819069903798264898961769788391069545558707574236377673728348018593921062396203554710301381115157180017656597069133695566363035231131060781170784187484309649751517950985052851175781024726376669204975074324833886801266811663426730060388349562973134211962673690717063825581582897973520140875077210181161056086425235516437114593150053166528836102327626840839579015219522976815440971537592805724102563643307783136289299128827696713210551329271390568993791871705943648397073814919648288914123229190685356649494799120313221722789748367051848064199668766396724878625820900765697091789502023476638744962356210597566522950263092168880233439553362626502075905764526720971893507439996451732286903899007924181885325539335045340758639161049059531171576852541825815291593111809595025430841608083795643108357361771192439533859668985924146791622383895916059536793622415625420860972484034253082801363423387873117956794193835255661619489916193570624820268710976563609710547144958043221282968257993909021387983381649194805470617584793050930490260654513521911285141745315789686957007669786290681318451810592797817857598945023811024901515337444563227394447644970502350404843263078325119636282402393240192751592877750504023100673496257988840135317804703515410605740140243898840858308110826647385645178689710768641774553436100179679582132052745113080954033888711443499191154314537166421352800141722888112891748527102585485029776532972667581930213923304833573917046347480733756975418614097033623601341787492706032278776822285633297760420303321411351739476049905423533994817322162753856505172462213059601354989595752114220191725154688037073862228738182856643520901878084250893275894183395713425351526049082122730497998971828941388086744479820507302203869569257185900783077345341331283151539172013966837585026257142297680260395879408713521849534855101053434076659889938442833343748656287705814893958746752646670293816163845571638940772799204021598538460574761742324381756539461889115036848230989649813335072065563061540246784283049247270593123390560389633735242074464701834503802696508673888654195504018631646537386549222859978590606907722693405608649672049162422932751081475644431496435111300952215787473327412595146105733919441612786258029344426735041933824285648671389298853063722747322458504012171386897022076640210184534285351404796260848822861633172136586034905078890442956789132290849030577809759688917167590907594795124315875950453359997007439774258601701196176750762339788761429158465729590907278009700845071771200588324974072411967954622130380242854477160204351878710638156568997999072731872810636854163320583206342975611315422919418861625669379501150373399304049901708008654826050868168953544366198826893128651181481800470792922101440523573149342264637909957925171978416996116400053902687602702265430966179652059971671634295922941214178838526951507438754280497286686153209013637642493164057130151811024793075507840036545286486793136417220188521497048532801694731983804363086331285807496723246349038490346540255485040542164114966252674126516526379636608974486029006380961373618446703773382628108689968186073628324393703623930645802280808652848226176363628781524367515395483588358259146801005426402432420261177235852588713863273090808132453491121252048424024070079556025225486565557719133988609601655427001437930213518490876935280070054393113963991831555842946146562979461958997902592725679990999853406858862495171881139448584740226908153971443178565721147331134742945658896212456249337674637319193863350041888475064874689212321607443321486300389883995702100138457133526636941019595739493665288006347441843105327550046956890964613610512667328416224861766444034806645540746597870791819608845166934872760961710393306634253083371132174003389014561879423248457764736537619362424264353562590588656810150937080310853040012892431659422918337707870018380031195736828838487772433313170278925315677940432571743071655759927452055219408825590543315828164016219740127700154183247498577708047994730068777161626497515729242414205133592368808565090029753578837593393745908599923682198646027142243929786022743423729340460604102689402079708118987977854092034350621295445864758095437100635103143861749160470956515332479580250180090120449099047992318377129755065293794096733051163216572873278547714944379637544261335800530189288086198707395120609672895458919251574271565870813399194817652942358073507583945214294151485272438445688628686797113040046529146276254226937595775802767489252286711684117638901982357201921255541999030202166751045582731781245838353348683072540356459806297224151661824107741557615822678012437180331138437296991734117980850149060167816006106186628696786778914583860829437217784658902729136500753720366353845598377683219200014602171427002742443641410246743813089764321229216131365239524315490159045979623493828021077105288376355134698518711708386210480204650301164907432014606800161921266481268517181137973741712277397275196026201474492334438607004068438772025755242029930812920108425349695201152225052498465084127087500948504450670497143171866398796290447979160659810526031661136021588306376514710564912609740316072196946464884019216130047429667252096327022529275727122602851825985728102288210141443639730366245981729554004577119997026565263196466463307577052251383214450005911901394158133363487386520214673402927037786663003735359936801624324601869861356023935023475204339252564005625356903046755220299762091412668815045646039719669230874932832713481954235990640621351437107999227622811035869981372854679980615310483737393986167039523358864906428892361955781235719991401326039825988180765376635986357836029019528484975786551981846208204634330991702460821475919589817039285216328284922024758877707865904684707037931051436747006880836085214041195961087607932712584187957687671671845622055276567029837512167177438671837673075362254368325274085752041226938915363491035678951096109857227517340754731033527131190105205825814842285429422363630227507795815715225860099654506706677474063454472553013402253715526870021199794954623096342249224016617561065118429682237521270748854870383079047114537409508215223309986397279729337781711425157865892419114645398786561083913848921283485106786096372672947428295794041870430340728358761333783318418678130343089875370000190302211916737725219391409410185387617348032064995092200034267935213965239656064469209481388213720767509831726479683712986779493105120586536888695890735404677944144772884194630493157790816587253089504929789443927659744884196087489551538523681495498979753650053967730899331306546400553986657894644312650402954946540235012599253081088079498292146929710477841726896746247474913957021016760385907929829831150006228656557960302212277518704245794974553075170534930745716173177470866818168321266792310032530664897532076291255095622851385503688410353423034431984391221920279448021967951092901653388653710182998782739064938172767853599341367184090685316938025654794253167102357859255254553556339791180280778196428292567500781688375648239877368028916212998995311168064772016914938083589184813324568323363082030944057198632318076264695034277768960958136045805898267015024091589298091558038863985376795540361546710547938980712665508114065643502055002718645215788233329010751324013761346481878036071907663058447060931170706954963646466030345948001562664003973105189887467007384536018693448436094300310251105808096540728677524960871844623156704849563349626352817016841728243550964283291201445835663487878149716917057275887106044550760991789868973875985420590999981724136004697172375021874269558764670516867562870653045041701704869903128336171376647076962313819012283009681065583530376658943405774521164723436275698378447147240295878268532330980250338666405014917395997037625889403986599596957008760131775253910195132693016820017864364799491212959047201568163409090372818805634638825682682401107780391674467602079079554643670196662837038984286107931848837570965410870317522572968334252460851673648543271605721007419141237119787812071567528966205069360857366766908967133406368466398104195756044344502474937125100743251291147481029485774303020910448745719329055692402049123668973470801122578447567498180372709433807006446541074398709489525602967126613211288712530995344470041470303215911710577526332383426972855923686031059018899659644429829941795864671006853242708335954455992299655318402944685660978936885358634623357975707284767968613380467933830100844351696825737588719466244412344113447555220775812880904988329348391455291522699086123056574786576488128919342059283513046529135836648236855393545837808810422212942556566118966996947307247537523422390260154060212446308622681760966022030769492498038008167263094583573262884845158815605839234496656010046098160315816802749321028138451507581695340871233169591162171246075910559464173532835916005166477000064444042230849075136733891507981933745375702175094247030911397932193094410324539864808730411493767343787046242249524667021918905390282190113788342108996755792689004386473147807785852051884419004191179506028989557748067170545096651235715649708104825455083838915744512549865357830896795967898103147222069090551897908090265735006743433902626526365066739104560373818929714900223352542293912570566209166031406235745783617828763091102527628303423234854081933600435254348086154483850012883412996341900208031632927881430788134321409054160667373879940539629746663299635756300089047499540450825253553213798500880579226617669771388029390840951074992296344673141579513583871224107219105480188033148063868326685988798446013947805896037746827339041562028854629479754491623516039914776202150264096776036823102597492055032583638638662131180069570364734391212352765663133771151619931477901129448560089193291329420207044892634073871208225203763783873088503993430408520774378742425668168349552754973470870639136384003009517802653648130109206245217939353415190038535754313592777259063475623635079932160111701474189286955074643731821931018716203254225431910336122128876192046386445547269909256989079677689340405296452140539277620542869415131877500531243070732116928741536160812560468593368857257951777683228587615648267717323919566476155342771691204450445144986934742031236348928793122238935532160262894575182654689933015009202955337181863892352554077472193010001557647920156116094521982613719944966155921909261757710888128672493922082424508651786655164386677829525416327660330405097553867238413061109077376109984998029229503157265031117971344914822241302522977856918410552950930681599520326834072479239679822756190680544335165163494570111148704796239935524072994467986773831287660065488162346629011116034906504665478926121000054193117844455985666684509520435137685292496901250299594879247317742419671205418235986147759684487007463053844211291253400755715616533934987723081024989422552425740168875463408747999844129328467723224312732514421508832102144290780282171823237111737473163985746874302965602071286907580128078924801461219745648734765878222060405307285803335271822308377190200525336246975609630052214297758205248007955246672777000364240416109533844048636472057775469244679378802954250009679677259857088775379180172980096587255886123372639973614789426695659485334179476674469850451511663931635031907210204271611774955751547581920424923848685315148699368529167095133562444843246051227267164180023358531159905144110002251169656922884424768584251764817577646390589962346485088804082194025527080004051285286966219718839635398464375433397644596884533107774575384116284854063206839235730830391509932872375605120176630657034296061601286187409863224982699956501236024561115436487859287596436184146792018511320233197593332399028278035020739584677307194676124889875463639164895981217958577190965980433613687950975499127488321042605496028409922332863389976553642151849196148281752471134745177706079553713025009235672276170880616847796572179777459289569966880466162591143607104514310257960271383608810802777941272931300498567131544555385572782910905077656593770590321439375416606960370797453616910754769143778638671074547165553580527110099478644095484636101223742364995551221020433125988023128226999358165920957039195888222657494627532996391754174484093379039541650102487144899400948265917049753056949583100929736363908797927704025161875908286725044927197140193839426347125407111891627463293260472867613988010552733347460911326643225134758719577376910137616123827147030454698172557932179361634159948755384906003464706136101063800327242707907484203831578354128095253777957535202392690425789615731757942889268281491106901514916315141505706151952831305630604852975621520710617643002763884457618202075468482076342689479743136227740918765412443423850774850518122139842433398406678950773687703970371286413680102873739312072730683565704193088839371536715556576428504283143558028940486904900639953706291600234371064186329113862461220385819163228164492589763357374052046189787695341326559906790707927158252436357396502636561269631308388039815487089323245376247475853825698124091893335131693659212886720110468109373762244467908865554538547317654306679223446718959541649050119172893423285921151389057538227442112393532181279060555120365421827437038813802716576042007264127096600787033742654382141558457977668079236484410092287195355084484816256006611311321105121821944028268426078842027945008719752970353655866084752661205148446894292667695507109071933572826103257621328218125678520593676206629505849140492182015942306826913181357691891765212083969534218244956587557129131551044401096438821410162899149685073995442730831134313787744881916826108784556533566262454604952064908416518480204652808399818469544392957790425018398844138450176050044222696813684599025964890477806477011979136741929871956772526045287996357873026172135580540589727471922218353926694642005063896996765133322351584521079617685776057998715184397965537123068101142149154712671010643937962190726604224926118880076332013098367497723250590308723042821835021734249588816731677050959729667903912591732707682951609409911608097980523174518417778083061128425392857838219939385653687943036920493589041571952493077455441171797011583519534857321751602792006530459157874818449522501595683165180398499597285399455959746253416388469192787019968526253160507985588039779729251612163447817739032351053267550613058611895155651089812057876622077299223345304102335586615117261818693141907642826124802990061182146375739346534355966362610913494012535984074725662086927860179282728248396954243491105138405754641084922415593909415187083968649547181308369116826328020613901799531134779166077935184517864316022561368557011632801003727349693908778448836598279368617402437725573651141197423801743922132413396631294245468376578481453400815815161156028358289775104856592700408545777286806366253653086402051350195105261912258284859892483784102578357085589067679295043077768753735798047280327438400485501576245875468927181517514922950686533248509602591664657308421782859861267300652779376420926248861229032357838471478792418610292371263223733339678641476645381361530244761921336873889936862845441243453813184670385609243156279133383321105891771222578558988582918294814183756424101128575595103547857272814299064325671958896951519210051441506937345921313012156340629060893126252657547328377682143357530546886412393471227112425818501651988720148571061563866944401625486198920061042000878417897625079172399236711912730655690203428272154337146634189254895863443875970545684737058216478645957084743626103445077790370632597629197385543344870370181025823493525700675117009097948408143271945128914346068580006457147227222026049966157208021704720886999421984979386369542579681558008681787190133349912721994592752556024836398984867069217870574418716162181243528628704030247425132669113978327576739142200893367274165075163439711335571912509101470510379762739901379214078532329101738749976785423913926103572922412377112838972932084093836008661511429828527580976750661764746813193694262361303784309839538352612249705207961484650648469332603305374853027995432557898391277507508323328279882463392259574622752351945434009980507675398100766641025795030140770362990429069845429919482502411113403176319115101316033123354011359575698955787598530524195424829328419878995516880435154055186095928249357726625101714576439654972569257481353600260653129439151383116498207587165645310473369032701544685298280996209335384874764190443930477881176390001402196922665737246820175829330055315784325939297399311736350991925189452991857597792139325058392772851185682231199930438211196741365848941027050146945518400841122978141553674173768659755932777114088488115157792758097156915481636724121516242010446824278278087757494050352593147919475683165447927460733864087946668869692929941558075174669700180078145627035521923349382101771676780492002170772377612127447322898402063098452038710945784148532672209594774405527725127320907145681955483257527608033515168402759300733410617331149506795809042531094777076607168699138224859445601138718755382751996643118754434839052520162397854179781011931182628122123413283646416273201590544112393347147524271852125278346157881718484888999124778921214301262706250407551105134904619242787306644460929720816584313068795221418155328097225907633650871339176317736796665222559507515078467372177076516246857320665965588202942677996567850534465871031847525275279212518157137163549205352209167880877479222073439006735315903830068186552356097874952582162152081320805509446592098591894696380558730991238421086055246425398489584424066640007613736127591411625118521630205937954724830007775405421396003560570288059142486868913328212320316331101072791671506275641951096667337757221521544378643721118590154600282444307999775004496208664145587407421484229038822058338514304786735090823172016495642318044445219113572187740927001933506080823806033634595176284394014003302198216380127007769577295897805356759415786044678231926193291137671919283772357885716378999959743593575099310672159676403758760968189381925942970572958412204649832122140210936557163810092981387354620379409898837013118473362154484210133136292713204262489575218432943727034718834242235953606869172244444446097800162963562082356293804724693746332625647999503116935823166596553470421520288480726667969781091544174972043871773607973769459746630959250278879990925618417947419107162829849390132285803693966537416847179339335375831577871504809070395684893295531953049383799565125925019402423553114667522295712791792125960491471758776874984853587120224373672081536378454121957563285549968829510441930725814052568426603257454271306323570989065496283908364322157295418781170698762431703901444525267197041841183195152104131912679389098321499244852859736298283157621302486365003492360282920592195848208028715181669421240414920374326086423601639822524603387655548865212039710680365637235921629629455693634755127354049376708420673964866700518722413187833908533015688213850175737750034944355037610197192735584220099329649832959936239268550873368987252462453921465085223444729447378489392283463088647384600748326946861886291236069903862381257418473152899296227044600293434071259450338024167969554920211576550394518582648137417456640137721661786961171086640653759132885495164352312579032198519364664937526131663324784389863757055610288883143892129322133751962197734776173642061875805209901987914122349772793963096632336950201078333924049410616008358155350043558789992673324462080285727553603627240936165309621832134698084341010789557084469085586849147073236319255836879297501637494717683427100739045338080329207901756090662423287178923803287659894346968379645145167349011731907206955687436477197028331354297118288750610576146042754718661720317882254055672529738979980452116439517639297748813056420336229641437637560563229627125037582463112089211407206523775321219534762162970308391883253567303279065320991947224432494633186561534274032306675946915682670389849056668225403469649042242693421643149466096422519059228075472383736637259108581031390674959122172722481263013836195910611003333942150349295664505976149122487770444125675090143343728164386667211777228959533472257948713537312200702906385178214999370758718757930178490459070972434363283129491059566179754653949964956669411293173793846472096237280885899844350556736722301748355446270656106570578762386909051038647420724569107580243324854696643553675736190957592855228562142982993742006994997307673177208440295682771714511357136172435863948878283218877217403885617191628640081958945413545488605992754132149143129641935259841413108150077416020044389214397234372192238040138483607042479622480876203625539958803426446568577913704131040429969580258665029879153702607310686953644267472613873941541798440179591469829893382221043667164157367535805330344750562314809218746448131691796485992049280056502810688721702338983323126244843832602303791430406032672757154353143642006469698444733346679175734604737158253655000166812249146097237852883911346360995754643275807803699418067926012105601450875536112707342268344636411736222527672560793191592877823167926625786665365001554875444586993971925035433331996549182460773402596337593881187788483950746775283681680974127000299029066650725377269698850244057671110389482500249073719392997748437251913746070651400841122370984027983546500525319414232533923462770405602682826772161358881376324512739292783628111495384277393291573312557903534169094828769807498249270628009314636979658402935073883640258586772320077729006440269612191808058188543198370409483716456147479177340953978903652201423946566000996666667936474243536252396787410414175840779019674515172778782112075189598048795583368355374365087378240076153606641298188751841082254319982050983803740900062785109104836438898198715939573797423693600013662243893755944525081293109679874262447376804056178142636103769419690596589700853787665775732077356287998024312784454714353376884000346914488827016571787670648769113191094853704328062171572286415026175616544470947621663141249073031370773340549804072085314422750984659743655461922963080714959648001946649168913313286763639989138684333330900570152505765135004519725964409010109105025231159665839817557299346600274350970514568087607228903174885442918528151203273201281744731386692339147439517294056365705969302477365042247113483666297839173822997108802282422472846117179936687828417870778990571473024249942342140408143799084216470554253527215971699661103738111848602922846742891960236068201238718215496909101706480328620610255887523981504405265485127417434146209186374395133728138603817483393875569906792392419509086251388093079889979269862898611335735538381857889333729735753503527944614865313620941773245518504842028974754154437025721013464900305865713349857665163051280258790551374020870922006733386301012648563494382472404462831540074945484673441249223397895135433372409491632191672970292898671819985537874771690513435734212582596522472437999958537293854650156977638725385803196013135344405321352379300202255858757249820810536918904886876357672039584345342983341327618679715055278556978633608256219165706594966986388354565706058867896057863378405090101829368830839366419949976574029123371236900471776668929689996122547106333718220823724026178648226870480023673435351285823794933161402826796775959019548833819718488339462940984802097903689040982615133511893590919905796763436234217265011608340040517262728430909922162412604935505194446259011320068889579474505898855657915792108662879637682005955123938213144046577329058608366118250852542190584821102455321208352256424473723437964367174784410680747633679276075493570517784955742142914092068376566085659151827857691836567595855153568860702728109992661495908573693315900855037988246435122681711249537702713850550876853375139599385827520378384750422604538942299350561501800972052786176494864788848364140990452562555561009694584330676064349213334749938963244502518358794933096426896962347719636584808539132068586442886352822023885551005457881284078775771211288444659863037337733992444180571649856620351679487336853271644771792056925392835609039973859261758831158666756513281382619589255209706084376528402596247193584154717970823322587990655618987875184431175866593700803216896851715291824202913276246450928384215511729222636938814318920785859796768395578832969146086062240241583106220708860390161676328012062699242370390501572753267645066643909769569604853663618231140576054549801326606319835201365437529409786701632999330681501497894943503600809720157546355957050709382552332673676425989356538076718749950158126886043936278602610742377825888341813120822378099906088524713893490033236251082082964816841073210753025451128050418421661245384513683830588573602728893201136229956340987761019505449161751501817794628113283149212953447782405411093740694880728438911395896348564150266469356234576850890716708768817047341267992229361471554699003218104824646138248615323012313016029119124532735831736558321804357874462337153600678250249735204981905170390046747566336860636482456051751201761449571481532298396106009294670199441809904485084403536321210495183217033507720843632801772631676442729699225927933409214337288052935388966719567171185147030513288108659788396335187752865455811337370778640304202516564218157442212031802120858994206379884850552218023505030664956113317538781506508277074259504266195271369796234005424416182128179173349430714116350356132422510274078774265497982706406219669084350756297823757390227358170405898497822544373501016178263010287102822230984578583164997933127168840543144685101239075956467634441438725505075783773266846395916536201049481178396697881110434182408924900308394481369710716699493950217081787374124790716203534325043063512847485674993740741835371887403101250928163877280184474277309412052543123754678155538623429776870243374385392958331317790446649222893964138644825645185795202280557722862852081232370201222518595788291807405056646236824858077706517469007972009842815477703813628272036361419656074119993460805951422268196668535406357886993161919271144174769846729897997076834025311496426907272357823997162165606464661405050643537496890159359074198630648350246971417311548441195958463884531373473452387163061540487224059687380095486181340914787053554351272735258768336831850582299132869085505053594222552281195754502825847497918683447420866400193291175957273767401361664141611977368972647695431084301005706924115344962494351403589178836625939791150339804436100638969313978037706875274189523476139505789527515669806362920281297698550589001729563473519230080150778841149294535498384262533684019028111737477399440664416156742420712186292842486195165704959378352294690848751661293583290373065597062232250994853773902097946704985945265729729073718321760682976414893863472597017701165877172361600941013479561537876081989976851624539329804669292491679805143548050573176672151470716256964987708378934480311504416846590698274503127425775093703547912048101992918577349468096593633202609006552879563332760553794682689452053137952630999118842064663682237183038134308266213676053405679219733975174041524009434005220353869293352645824836068739894522541176440366891204031698990647697124739064942851174680462981391607094347716156488213983893217515699834520851078621926525500481861868244176475279668938458254399731030123549059009571519725350896249506664174217450548445714371333767096192206287626034120393837705891236233939730866963158056324779210105729340413262586038463848367621346410000231287480359512784753727650217985885235330966203299592051545010172670084945277435901788593341934638367828769819229935857642414463632419958588045850476122971609490710011142571496350975087293215137610795999465242301894475247204846389252804840193322068846463295443264017744117417798852254709277243544700188228609901875054195407112060309459721161501058468206136934165977823812042270795417138446852105224163813344447539416949748199845931895191911018284548175139389574877538488334427865485781136466195939183277707621756536569717340562569935350010801399417673438669906576623561445894692726400443564183823924024289310806719002405726965773341347263337383706439674069226920581780874793274583935075402886412964762309652322443522090604199696334309914830496957239841452124896429601017706260306043221861144815921459291031803829780295784249993619061178362930126166619456569217114431156151036873389945959172211530599095376783516882753064629419889812124969237173194986126948236895196288457158990822748807051973022709210354150234214673538242563626840467609289391093364630674570686028677897780753436285617133604953796603770224273011747328336033158616080662235614763664811491061544956885639478452888523569704815374880769061062006656614223822351441738427038933811879992671161695863557795448219047487028976329901330634967640346089898069419784022093610813980219874570941901051217911118628511607880355371140513673219792356271830813628993819101211105998970336161369935123132843229182111949625284931590890209087475516778680106499463879051284637609304776926856207806906316308103410665549086209306900401323055972789708656505805362074223041572273827772483274162613754629958526281807469389437972452374652511574904321834327825164536023063304401585181428288690600339393657509149839634843284395289618967149325236017564366210817671073998828761196680501418841785425114516996794945609011613367687228161035978758294723224436949794203836650124083080182957682669581384253677137797580326008851786513455125181685483369283716829168446665544590586313144991868365892028741556368362349032641894602938943089686365106905207948151383444734839838572292382583266039931866414131088641892993276314166115192956498086856061769243273651235802343277229284936197815637358382673623231522607025863996239119692538757961830307762775772620039821447768212315746320635009215708436749994702758664334534488357957499758755453067257650951556475678121402755359962432227948657981802803021471465494733360182955233119004568556282369104275069915978071391847582085450459261439045593641055337210380999368794149490816324628831985056573761468694117399193704933329259075027411841533029424012730311665006181483306385395737235814373549520876793324363297663952604300877502357199221007104505258842230159654399743116058311439689206995994367196458219149408744813895566133949390044373471304682209135364744119067904221060180732036219374023593192556562106313058594920246924889701510272352805401410842601670370940180062681185721210285871189223386299408617069584959689061352975315363028632983820264821521427599167460594615779848655092472734220485033404695239008538456055592546216857801239787566005155549105703400362929953869378340891321966932347924059131156902915469970595593855776909451098525437657557591316528366814659817842061300900783670242126531350579151825775224518134047710022671462977922968112885244731754267181372201269333715993938851208684895151772419944416417726650687253538453452716952448462243350428821538805805517960357726905675454127008529667912576787273909169219303739317982681839561213589265628990747865575568556859141874632372193829859306549616166225787821321928818434979918336321183018885383226407524092462475808067119231863195159273023579742720605592678402160659177299598764299593245780508814430567521655065564329195020327741643890465494382626875107705370525433946469455123770105655787806978899486137309902907210225518159700437379630804357706367502612831944422995608835684291094126259121814086192706234248637634503534779042375672334067457722968813999807886468996413968481659687212640554171908299651005443747375365013133702183836161625597386547464563404920515649705790312371283410981430782547286107236403558221009831349756515414692000344730507445477822614223820529176729759985388889850306925925401335923227756786918387495862508075302484417183702092727808768539848511592704555440559564586772876361818757075793581886070288101978535062410315657774192815165521023516806034230290955518735317594368583521324267260234876490222902497381223116134314265804426470491034516793623467532161748805848581626283701199009063178342764423795594899802103132396851816839349561495891047231729697644785431749154172934361600695631947764762225973075006611096778816518399556442990583266846487605849174610097814116279242237555372672830738632079463886672705968604091309384164472501577061033777882328604508455731475758447664463401702849741971050085734284955048141095730479890319935754590513806026991151150877032839159998804612855081784283954331089966721590750128609981535148999700603256476908631252136730677028419173449239379766365186771288104262755775056826340719503039931717423568849447139714313549607075417758312675812884185790282851832288156871655706539262188299721390996964405704942523253770005769103947924986757845217456310249072081676706636366581464388168613113179007296878244353789987770116828367000932378382980843944386994327900396198111881431897435339525922494224895226102174312090699276301620998580580251982073214135852603975112875930577482486277935002282597872831548498698804925195253764881621573109978512252143775427238451608341255502027064135330517128508481423707603420984808132764897281492862604864910167513284921335151413791037867779183321996727532257314956942587787616517060446512464926995212357649380015694409071329759985655655813018802477625123465211923723911489437876891909158477212795734980094559880969570827643731033212771663494849647445535388520074247069384133278603083759572298926868577724585177993632871823619332489346156118591773758491993544606353868794074607334831611985741515030992589455229442522113628438882880274458409691395763243599628839057952952898450585592125178048695104168727801128664955484855170406989515734255769747042838451781156568812322293420039096259206434786364206407514988538399451896642473770005326732994107129972614702015427493825973756487870822051275284372536540589287519824071045222378658969863597060212754867855568545942736849111663628251815803343828082885480746631536815488248756285815019278220992787976330030517458816160530247058308776118268501178299412205605993368838836691548867581960233486732175154072644934366372649890007706125659770750049519903905805801132306322113588577083332620683604149634876157878895967775774885447932920949676000210050371107326136978099169140510818662202264823664395247356521839390228417637305526846444378773677475535123337384388060678192877788054755703890219521862767744442292514785904410803744114306368088129760478709705952972098832259783963247193621049092959396691361960372991384175464333280489222055159951967817358759587808143659846841475854540041478856344782653940066007808830543294689138955587164729335171477486821893204799850625236524162414221023809905107502471833979320016877383598396782156899619901792439215525054104465506531882726219715419271070032211759898245273716592041916415370548239537689837055527118327309811684688395765749097335469254428396785663133619645904470998236974922663864151917895344728339372771752936294805188351776398322942541833061631130606863481659873065200294903304318388466843150153308010473505838346160327473066672202522807434889844113253356975980912891951125318735142758982451621884061802932011560777131834942034552517305550701618542710039018468539998348090269144909988979497738170068360216440106727304696960838073559842209722353890533356175000161347995772071472992564199802698167350731244415807974532055953749523158024333311289623239187596486043737015454158647112480581604991841555919562244201067141713055398610079265041915874554323345302536460132900622554311923791571250001438783502138286872006027697515627356881630979763964517042393752899826573714267661097373222247923848847194844424199824025823505485061642476362776370659459385550551854529512394784957429743381660796061540389918668938062360529902894707146994613634373870697472265651998285002978795580203864723087632992894350944615219718146762300677016397772143009277631875374899835332974321499298472471241823506218860847910585431749710893202908596061970313177371144356353204002911432246102491877611543408323206876665218547228467452390985147476625956011890144990864704183245358059595695292595545993663409699276579847050229105452810605786370907725634935627210080466908676904113438646067629258298792667109618726568552581254723785032861101580812233075072204491681859258607670826566092877722629297177786850661911277713469985322776106848353446855423895231311885513505876922849161800892847592312782775165927281087628468808390484927665808307486408635458563406114800756341721637367324806263798969423351291020732868111629215733770259857922083303420617601643590634626374128724335904034301728816796519181053373077243882987821106566088823470569150485406037043817531383930984143392764953930460597776575064899893926221155674131239301763924988152485518821946999363036481065863508548910624354143881136481342439878564073844969060799269316910977247640938532598307531652276852148622658179083761095508427464989414073674290520785387015020333109109491830239892289441255289806290135298064942951681429007783372632536131146213645718231446578701936412047239890644979361442325702241509241339953114259717599999205151141360574290991797769958638519295846725417042540288363426123473899500103858527564318611942131157797645015094032428890322519724636768875321524572655588392645240794368641308135708069898998606625056844596181709206162339479699727219077664198143379122146680581118965134157289955213958285159209344871669385228978973346580348121134661125042851352840094694767605980106696987212693307993660583936886770668790857614055105204104777337404597391791020297199747913182019578203902458919778063681155209460585439618364760901522488478654779872575016174366992798285749928135864711373620549370209980759592330598461529849202533263154942944926582376678237851590640090470116041714545586559116710160366443479168261995056503346877994743297226932407228384701097486725591958762697220544159682529992736654866493772952318476871052679495549201933691742083777024866377203309081520614882767883401049973307928286544078215934642809946328844120808874537003849040391304331565583934587907792856438573753447958803908087854755138072785686404188294286835454374502438495902544632328955937801129245165339679947572367753701589421811704523078407213341629007755263301556289544129362327170234269307226111601545266940266475796035052046378091232751103868239634231597064586351169815503836161328745214733117602353486540231873723770434929536518204586466832237877585300770140922585548846923181771507485111612671491147957377995004917215209891598674691707531250934101773183693683714787578024223342791018691430069898943637828686908681318977470034563221762900783597227889379480229732104153055729389220027038732378249499755026390999768511239990295231085596937240598615197916654320743544186495335971144137487870395355829450817375879223620375412386063049162208026023278086617375146705544930967230893795689477382312861486311643831993798569004805275174351103692685394846599144053834943699450030261185255993855315567788356376038310654992304814296783192144547136458025660434879483480707010876609196716271815020678337561657357063256219892077863515215286587675552884082091594832902048066225253899836033551982828348995188222025877578836790266042415583513847460066721011243055327001189190656667738829318741353332095573268799596212933268704280604539149179181610265175596426319971552382418828055246062095698066053077562530887297705822651534055355503928144515488258851494893597695702547852758850500592893722480103227052399115247468965349185868864215917103647767402135458759511755945133210963071326250602811934320004157551901810309193349147474227029989091125704107483480250001104290934699635901580157502124926126218836284983829043380240103131463559251130603610303037612695841231880063867741698917229686144976216113793498443629328834392919317501150380365458049231941845302779695391991143146959470090685043601634053008011367853951481357234469560203640251365381185202827130017290392872300563993398514779295100768237915954100079058720619654335352898578540150192893170443796942289085867162639358682407364948118678403030765977286776116269393067921276727551803430294571553358290096414015669638551305651760001491997904936297694841914042024446926774429658856916525298190155711358857884633987394710084985763547077824797037943259124005918454752469298606423519355495326164967337890965117946458053678069813367699902631142297966859775660484094428844957698657896338976110974993476683931490495715410581979810067283536088506360418999088263398930495903525922937887256856883128735633150561123651181217016159119376173201895074958085940881852956141963734533840298813017942541238458065711608306569754675187212563720401510899356211279247252795657179791592241820398280798821482911945689510300584509955935887506300458183752718496364122557792432202739450032975993948331722641384450202016974456522725885303010185149207676578867945077468438207780835343668902215731757732253633086784956149572813041477762707975139045961765518032833990872817344342362328420831509330369101559201204766173433126661571022214190875011046766829098239571871671138928597414997564608149242913181035579941834299448665851176054527011727158331996696701246923205595838142140436928984089034470453350525331817383679066767647554532752862736772812473176151075397491382095876160018282384039820978853993662659750410477500734524527881584683981184805605778298142682669147843411782696414082442700028342771587520300899438225476782056519411791024294554235117351366843149034960099202886443097847606511683866193504141403210926763558657279506388456018250962501099582237878925803105346096245133787526956551098768988493095125442611837841338879801197381610748780620547523044007557591386750253091286017697791582189511680401908782673148580679131599618179641119300566321426568355092754690482828639205524616998743132925491157459676249392694764896731168866079511398289109613381018790319062912540925570284697044723169774505160257769810674170033478564386957564330928929074027536427735502813487156980337348833675526823137779609048182901092529692940547330676972633359889092079453578477011660268036351509337293859041520243510127208066374140555127308610860352973141470184708486634755509066137876583899018353669454002723185144907349525619877711748309869222859649431459794656007908142631750492558147231933234286105646602969664693662589785550397407819992853737956232390059779299820205309335642392966372135440218486863523641756764147734710411048866128206227123964190905304689253187037695867934781102325770450576735629389912605556148591511198243919873693393115468379368032859624133888004617726539655456681668070725705301371894626914610276262942915444553547625367442214897299002814735391971497071551887355834984423702423723065126315999399685321484173853220861620558077869767464271203963557801610954803421977561431581479342068331179468411362180657719446510236303574811471840183668346951813517050043981526753036226956520222041882001060994530843329605227799016876256899135851029394843052668180899615553425775881417788386579122008196540196888577482697550736223821413054760363416820889055794442572706416749259627979447086596780580174166645397332590438264875029517936031121131130621942870778786373303288735194998630461389682965555866524781972201558492663625644597293915867384910198977739159326003610723775199154422865714035233303352718928665365534181945142025187030574022330433471598738160738154724348292774898793234414080719511960375273341061094703487652893853570946703462439751862671889449905948614292946981015773643683974286334979355066769404956016382399682803613746728245092046950726713347719358131511944353105269902651500299061041966881430374813930741123838686866456210689400931431810709757764800796169295450530370209111284238569876911968999562123004362788261526411778645616645233064664382648937824784367494196558862439883438954837447963871357918861541336893240597207879530958579596852329695042466669635235208294162752541303070719676526439923435984110936980085701783581009365313002150326755363180351911234082226095090744197100308232380722240096963183796797490040940297808804193103743019476920324175758067968437002791924646127736084425535878837281903559623012101488150966525781181046674493669656805946325141887897520362569460669012252334502140400433411204051636549728324359609872184975443773774808646935793044517548719734285574715981579933266297149123463739085214369060082199541264126378321610104453106333785922203337262489211363788888375233855583451628617846880181519052953798319504472493974515844924820342040120376066853194729701073580461219238937702365785256103630317209244292882690590015641759432972336557898618674761983468695319192148721188321222847610186709556089623092442630557044126698963287504615726643297555620595844530390372292739646082956583376120507926935106465490449704838828280316314828405275992297423281110081468705631636602599528754776476500904372826129851987304333342969499350741964580946404424253048910968656011494831389575245856860057200905084762669992364161772837388687227337977277941276329909984873401149493497101278450076069264662395694455270851684982367392152529840773120276189965643219428876626035942679942343468429129805815960788313674482724634809585885619581159874679463699815853351897015578177522057632280212422634455886172403999674697659709787703961175557250141985096888333926523070002244146819206915844596804094100707457869992106776580116830259081248203503255776683988790626070447542886778327060984282949648556857809461252108522318199807911350653096869793540572081582388387051652958548095558936610347629130328282795205845425195621475373019879768490464616740511676449362769781813331664817720031643852229100263534131060006028892045892499013389112110202653425596627195140546955998673842940853779675317154128361901712330373999004748627423658860518009043578367323060288980055418856323132582858131984645081042947978017728997301577799121395532045946939229157470361086313271547476589168277679828856027294867924384541495532324007103107304078959253279063269061499820264448719747070309016203324944172198825477886314010199671884131084351848561272106479117006627537877950955060475040916735924180642453459218226777503708732988948754840301428341446677992183425347266205385245131440216219564086849044645535744747168291766729498833118455990116337242304457686737710377260214169432439065746836474730859206816641027286810063478592918982779975598310503033625224475342902489877386261311609367723432925265742060083499773950950546229535657819925336673693959348656168267165077990185368240629636189945631649796289941011015408532947750437347572966304379386952642494569018081479116378526161163152713438939058672861318914821530661452359548840362990269357681525785083031882761786872019545865333719864742921017111767053091367987798826507589407409492738582378538842205745269989780057348959763186865004675126853820316453152000013560040726452282058114670331859682589824821239440128579638150179650836456045433154410582751161918188212559560201182452898668946443966453194707464740328225674187318100359028688757393020685903647256035802162009349943029888861136800528829073608284971957748446134265807121261987797322639288162474069001316196338557637102001459965161113486720694019436779018489058139348553103150396134296930510325483516632447282067641121479837976308253620396428971303074447836382391523546922090149652952953666390565237639682689517794399886447322239943727020381923565620531326922357919620223534584564964155810951890129669278626636422179076367298104406387592997421385232768624491681602090490545085111297207207339503042451025744065704229571522763915237054408565555535565949236373244643227495670045865518795751734392263728984288747075044206316226555135337378820335530050283583888615910257549156709865265193152453807611090366457356079475851667663430550258117182270287307730729926160794176303147629548240488625746137248369292349501017073650687880309804337271985537526583419783432584766454540548593615867710074459686139465971135775690466502610629124166707574658550236469258728326556818164020061076690153626747491744313156476705879192570869345746237964168396852689117097814603238600476211969959101313021113558130586644340596107755193097494155754724157669850369071830642558138160257288701390590075680420127694795308575075999907503751432289457528737413909740544523398301327345061298366843506796124838246344444800399316157033213311937862746263121945254776035624765088202268517444476647895644328394338484698515929689625290893137462290016514837211137029228461908664528686805293395491765024322893313500316453620442958496096671182408667199587182609138088167256166039337922433619400035381984632145464702869735894348649029263074290328111447648335010514077585700088632144079583200507672136575343959746194424506717624251900801250926054779609111238311297551743018175355044123676557534085279056021384029464914626035639348348153516117182494351868444412986815877444368778870196766743320844745283072226676818914773743026888181491071166724087891597015232404442579510452540926994039202388863638911466205017191047983484660946547340854808575525623049269126613115766091011595559525476960149467166936529478094309564525957318349645369698460516846407067754914479309688188851119518946770772842987996269577669160595368808006411621392705983274533161137944904062765229273585530859470432190993397858518980349952670396270990709921415477172077045816754796775002949120270073004725875625161110217992967288848269814334285848983160492552843655209061222997374318010968053432384891288015583540656892083193078985395886056859641489380153287243968698254330297790441759867484324108942899984062244506860668512456210482948614357954342415185788132350252032884439951393978531283872428455338374785454582685630490846831315328547782079247455133259497905799000550806748378570966422918188720320355068498982474863578779669399711184751043071547426838836822734542284256121746865062166772041682534467583876999036883009558523790094032790443369909761824443662279741515639115511243808062273639523871711632418475358324687281853811353249032662014746764379665568909577827812703492693626320144630933048324285573428651295542127069905127806858796892900892917379786269138082322198160772245154625678802030973407482163486864028915412511089938547564092283167410455881923150110728325313215065682519474417742422932458238658924375526833698243104011271885635448680904524474732456037318285944358788948508390438841152826140558544079912118407332701069234402825444510725251980923061382999931127659644744823530740195400501687497747210429582178927030749095759801537136706553687183319262117173937111035670170556537730028416231006595747541081765356684644984874582771453465215921249779419171783988203108357350551107426995145924612498761864562564077346525780909983206531021329610756558021578846844622331786696071242759651608040825449898795218537607445329877081476514703020334371857814896193964304356532604081623021157167155499451859465688114615557125949345914629320014665775594271434139805544152547727537979148201865301948911704033606077623142522519933257168508928422034015210816905882796408001057798573613772615015385156091343953008707229802868872386843845270883905084853795112024610758434099306821089121385331095080839398065547524562291278927115445132225518716452177675321918920676637744246906672255514027460195477884690096037264317194686810007308039788856123050004856436141834356548178064612677646367252705273182556538352715624841671849138708316823866230754290237558619371925816030251939954919148543069814894637153603961163411201641329250725225869165048526451123142575630829611324279694272037190471693029912726201149723677173691990475415112801891675830983315129079293143099256488062810499685952288869532016739434663799432204823042520436723200384280314445063784640435313335914991159571555781215715089333677714736783599265488086791569231606599605354991201994374023949256901250466420509136341776968627893863482304696837859050118184118624491446948572729982512079895326220253885965894579422370176711620886352647160764649709983372767062261454265990885375410436970970689304346290326248761544795777641925185691518217272447379332350362505340794055428551889626783986505410719170925122131220227300377776367103184804077421027744884567252224654167094293600799534374476605469054167569267199785837558388124093674232126269271831268488104202836195660339330079506726817266878201633976426096220276079630554089491319306735989653726436056320724865949645221203631572518344397813363424382352682258159451876768420336363904070816979329142927045272008005082595042537194741984160357243041479808896813505760024110836132998001344508941996017063322685989141051603514257625058339898607305337448848350051596412642013470412004199630920512232062052318503669547329652333968237808715192242102637236784433142415932208254404811718201202016814190512174296510834991376117770006586989033535798666303521036101564054566516971738432144265519528900079419343809715994991973288924212050547529237688890713251005971271388705735498148761614425649548009817943177896218844415023120500581190265437992983103846962250711293505336340552813310044909803570542391461149004627091724509644621969098160670891963449288019263096500776407475151808817646973639854086449267190065119607510260483346463095514520474550646659000622074276941798885845537963142441720474317252980459748849521596304172542543083196009802286709840930547793953809007296105753642301359545565777622124913989402908599644345275233778495631476437818510087418403236899544203032802542314438657211967301613805430404486780744462898847320502255854710400361746237214020586543850567511277724588117221287025443593798115107718452162107998308572113875526315371111988444689696550166687387573995097266584315916176485505821824488898057248799018864208260038572479984284488851216940950158400464163967859055390703173248781650551031592793418565012117217195773415411686243953795837155676591264201443853542323653008605638552209945984177934334789793381245770809798556364765784403603758948315072669428236149379732143798722756412910933167070882999284066817613805409702236588742190783471568061059739724339329728452137335688917121414295504810494629480067476387576779709830839137640661749351610137807569609457197410079401217649295991900027864414620110906667239868009321754544817182001824851620494559818830947168370857101488531521056612792068907612999109649913929083166320223591129513622320726968674566372945478964341696176385917506752442647452467912692581119824886513561937169833647831752409991088444356979801097228615590653186567959349297345046628478263606492213893340391664325829970010326209304775330931198190598106755592888289810968632848956389067089524923902597681068867414285658247083626770155781542584878113601054999100229987255469118063702898120143807360016948471592214027647108469485278717876546049969714014654241907414024290736656444785141415827188671601440718391534046184688507266254465613344055172913290597625659621354751829378353835723009565567786492320073556282390249901615156754027999134133555845871419685294690794405791694474985466284951916891257442751650167595630292003517850181492023717618427123360834570658211653827404165454476537342318484413158404228076306657405713154549412100400648317415870836858214927980876579854154141547249810870769428334321488543124814170791599380631611100225919605025271234128661251638021815077259288825905311760113522038328420993419201392903002030861105365510281806267347595569710672121703918533045247052713374673725339866408381241788890658422800404708763053868852274908302631302294199213199805027142178751021293405588989691243290493263563063175590352801182477901425773012611255030685961825451198655385892300677608939274558914448159049559254296581375565108741975697964637893633303603294322171101154249105276589457580072785668293751274242178142302437905515942483355747391273989784888876679969727016830169208719355248563822364233364004491941809329028294377356227239971218717737815995611225860326333791861467781619533269022550357823743698767937085930427770963717886231339875341488654224472529332154927412844435650183906348661359264293528943351003917841935479878107291037114225219898553284821691472679547962515717043663996066654229273887333272730095005515130585142167728147926795141941040335752077160493802777059042115539073016833746994153897948397788890276696159882931605369063228377198253760092294541472064206771045606490446086144687737118697193907915157304231551205423510140790767567305035734895600181819244564690403618879325301256122706629581089072582574161910609986576890827453735657996492728530845409170883559408563356249288921447769513038283299770377175872577112409503884674561495084541069777535876761933811867617619975081842676251093987205208548705023005888273868419587508275080980645822263928645524137630979190839081635377817627235278582522036336420868275783858668014582707288124150655542446381253785648311618551174790336307826484715617708279329134234847039063796855428203018140725432344302337709768419952941790794677673818497012059380667636500110039322902398748754067099287098414355144645969813150060461062623127185194825196934903988590414475814266101949499458037086413172698288378352879606620264291097080981337715908320716151432900589446433148836507541945018034395238341231026215395871575658750052443888553842700578845973454312146890901370823511092087596911229509849200499667037342531498177212215464487639587496548730827891050272065437634673887372100997985361588152484235970122496756221581814664814905534271918462673045042411979564426185131146376442194626162170378585922307157864559962562956036489315084357032935077667025673346387136778284227413193453888478210587444751585519670029136737250755636497981927743489810711079732449487220452478216788067532718288890647146310067439469656706487808641477884095899600612340419728881534592931777309047324185570049998810106005328427528949551348716220167842761844724322737491617176016542408411750922643846424302355210874739809107483627872695065347476180613256112624031334485231602038759924134190139365015269296789344428894777852802268934759667688455845390452796901943163776264370496169187310729550064155197489891068833577423285371005208678262869725389616234344124886132761265921264334933379379733394589100777633471223546755415676403121213592324320123997624326099768479707583422320186202202223165081451731561593724148169380110656361837204403862177708447005756395511726830870373815095885334644664112697146329213270150146090350393193743121588761482456511654276309098404912311493152841009252362207230296408128327487424083299846337328367781986763977431239889714682803735558548410629629663304478451722509623722557167414219517463406493627467903585110715056519298244205398962630737415414926185900989964205572836432346498467803461441003696477840443975438561976752817490065261422261281315129533295842538927838432382097340714605824733843782935750626549150358242965804363842726885319337652693866119696102676843698761699668481549820774039812063415995173400685781827777243782289974416385152336774338660570650041316827433856027644359746251315099138171071172269783195653614599713325762609444424441016093227842090444332824860857684648603650983459618652330614344186698525379437642671878504818730990035576663006553510535404260430070034100293203648137405870059040726857104044106051410556572232967857968314521981546036676357391729901169108869409725339349199876229358747648514945971596608345540842244324557323750269164757480730339382260257497949265238132715969157461662231400769990341387424149865424542180615643170333614376979374235975228795274420673307307310435694147926048834293992911875710186853598099651665223497718663435630007010640336133771829855422829094599812606712327492217280148469706809686922453102503217728912893768798086157095174983159365070388707356695028311742074556711468105117147939603768703686791649573739336395638193210502090369551335930622876955854749799007640613748341444791059804768608763716127053513702188035490022663095818216676656390710594760753493341719780344375841197058095051592203879546853704807567876860365607179189783394972273755389169313379656556617425763101417025088096884583587327366957705988246840753109941754547414760724146044160391834687300711380949639289722615143066053365181126839341831885950732880637166318276248267511684560315108518493981472061361519867656813893943681496683035580499672635567640553568188178628338839204133365877819777041850877559607045503545617439065306976533815779225054005486497513445310619392891124833678022127801262587695118499625187107320169160996013755456225321834205508554094178510034369704464709220477831954494851759059262737328445215472496104867487468255437004612587168819583382091673492600665846273896408789584483205296520837090388197844630765829997911553303948234241592008765482714792952129352938405905573263028418521761257449965212387448699840966607946798026508539872502779363487577263021818926786094818413361937227717202047607268932264584108532660981243135256556286886370592930179056132861332660948585594643684231769984301377183556533648587867421857755772855770124226284888692483938213111047178925146147288616019328726435458075188183845475583634683801267278018766518653994331626931652495459051213829540232151901105892520333047563346175461278143174168314524891217581276380717940741352733516541027480057830667344458059779060446469851718163024219099417981779515891960780651821889431826517480033425403760645964452466466064187931829418634933097835265076664088429582546320974165851048194107669104856698250533393113023673160429674975112049235495098061266067565982654828682397708096273979586890137360880570229605082513558286226866184127746845985113296409671503417891022777043412474943653927018546836010713612333133755807142758251890866284092320877822219158650235657454894848998035033315298940892734241522863961865189559152077550131644457600253545759495941506149429561483039740392865519419754253216732888642775143093517196236300912379701046596398342899656244670072531685512237055967888113049191609803326992497654185041302606980664853491675714158093100456231032767825879123394815541360116258218561312354105478920829356735131104142738881657915169019368150778070639434517031580813122637788556551149325230640171532069561392733220580194315326067884483725621514459266936120493330301451828381113370510983086984323433849695072901435877302205647395206976603346594925981725087177275713484922602335670175829927738226434126308531004834795391868955314200973047041286367136450058738759027413761223995576739624160272194518916171773724802837036511356596993240022687555936450053382429873344216581708622676953720121618690164558240313307473675297714146831633324226325772248538109381353652003815356469105690181246992198773409677263618139918635853671124879155055894844524573732192345631372280961495564678880300714450807631063360568313028918269197500318434528030655786810570126610879540049277509796054591671691522472866161827477520704654547486259028894158121355246510968490217624873765360852242984677960940860778206687076360460835983766095238858163749892769448700651547614997833570803632599344696110775310003886370463853417133604309583396225241864576466300560382160214960226757988587994601850730384227108121268857088251417598424952706547014543876939908629061016103656943648625603230889973762955090834851533884949454231095354975661966380342957267386627051485003107635978734206715087023617932157052219080167572763265139295047199131894212766565493439749242409255425275018367819913277346346033463272961329082387423987249401273622275603953954928080838606871340124939163014101527725740754474035633631662804115631702216479773603735129621330794136150352211484288220755553567732963486220766915427012292451422287500463198747800115631844009802475966092255166851489411321562620563406884462115439651373215494604101525358693037939478359792433436604403538132863504976016747385442259177439208267796341116191249951193692285937964798070378590465235912281213794460304338412320901593458872074219800991279001447641726173634362542523599634550522004766086593587237112869784458908804281972922358882074903932811456307355180752725290165003593921347940250028195838575481532597666519423320378650521735280314129830626021726744968266816023259906891731682809315205025024485143941321778004115660340287937569472903370051874841836975325298269669355594413853065346761536545274930160694803695664512981191372940266962465257803810679675734975932647660060816562781988249246068549900326856290097378643637281449900557385265457188419619422661916979590364921397149487503918509888020522376732111880516188453641410320549433051071622865652759790466855739419823135054922829322604215972898994720391804836189599483893332148396136405741975286668750938623762323185185124397795111241298258696217213486458745781898880495863921487793145324871046174826397593833912587107107858971351077107676084053101777609192542812493699309756617085889908985043971150074290536228135796934016392719637340990380320757656963066410379735325280171729700387608975987307056334939968740432940038083968856999229504761363431613156096946598305794812027128319023568381841171969437662254495244376169207431826232772525041922838998301245614106622546551805524833993600276948919303029218084662984532571557629151778077635503501803884310952414650593532415561540462514343336405400458699976597813964925198014884666611915335715174121238033940907995033367304516631550585047158049107944203407336931210799189705662626860328312351820466585723851899162414138960896037123586525784405807287818056387501135698268564039926570981487036264592357609574971857478276463397484639335075753181840114692264575579372378316530114238185502813276647236589119576473299284159093238867331850753668830268881669432107690057749953584966823825240943831607276215074398068873080267742552728294904819108535561079979919149115581107312690655258512952219374084014041259295025781748440424794871922718563057596920114643507494439331786918033805858882996410345119779903784722686383420174847751496486607614887870228853544106444074972160835440982186295693865110340661838166807543112014028103135962979101849764443379617803529093305470489601805295582142889726636737444357544777505743173419523683300436237446479250122093095966239865570554612771913997710385199503542560682245085106707790243650247094778101085506734327667954581516487133120485942397261258147543188704296760517667452917909950885074753210160593638491492426615553988121807804270088094181244892983474850844559575934079098090875703067633687403526840431359235164949520862419770912611846991044943845220978310740035145010417052038631466127597285461373347958899571339730444666648101922614952801485467330650739474019125426506453014012852245393110030099109693437117521975059443084762859004719965753501727398306496911361356097260494488411915522898054640840725223337630269037441348991852428041819094178667098703258429690110180322768457506243591545911876850821856952014904339733515321752632928410908151711141305073481806645580585659892945535877636839898660415293816992877468579348274628965603012675739890692491850627960629791123196182990375343692663277411211960593251756946204201165857989249087733745649210551124331879530281087594406222323616138347608053686130491402452240046892247319748145125842439991724598123857483680995655690279374263804329161448110104745262039785371907022879328236573567353273170563714657209755361242985626571125225322025769170475875635955882666394111415567668708286969250800532766493673217556244296814011953849199774839050455975855204113561035213212284523337079569404966068760243879235299347402179935183109662927464013576358760559921708413431466360001516094712129612093238053730800732129417684146712689319015156197176453013638325126379614281010965440230691655650949629314653885758095106807817484432230444103744747164221298019058788653859730670246727203726512228220432279902934983192295519642835372134192310958861084222159651705590273599494220110688260859611500611103174767434444091802769413281095335295000150378476818421605060147947667181870362420397165280698214759103314798052256619693290936814677127403733665597038039174873493046031883587867501910110957684560941262102649039684796750771226473721253614703534554278193204252237945104665076113521166083269326168358740542240968115193504986101450449854720150715961888122371619260945985344333862800983010709887725599928122637964921071918407160117672690650876413092146252334450912752730499884230353834385023024818071615230007021973199820380193143200695436021229396757345863885160867217685500810417184742816385808835188700760249907226693790143954602474794002124653298889573866920531982171746882499557389011832928985152321396631752094389434478494937797308499941870038790704673285526956716274601460458318486143370675538071397184324956967271270626609312978530034304290050574798920795435901624302125602422480375884035564458636844351234645548433815927247236841823631070666901793510786703190559605011168729421847477197735282328313797704775959952901333645328219176091825024859934890217276035616884407773329088481471631945062240209656338775955682969916800344755767350432013318360701875018340795646128666858420075679451925390689121834404379171665941379927864544607619860635744442416425574438273652019229354584504968668536614922890551135422152165679409638317982835730574765792244592869869333621087211318532400685049108013386979156612591782640970711821826762720702459587618719990836888501842166796396090731735034829283231627197527077615353694070250637719211687899399613413761925533067962450488217040529190269543693442198654409493856308681367121396837843704801361406431386279180822340528350307618086526809652833558439222003813581283001513822287375285441053125187645837577634890929663784605392686975346700690415712724711194148282631113270059140207479653405684800831923592109203778725926943381427987067725819327570260012581231151005930524989577670693323609796206410277939555863737839045714923891179201357634736174872934811057666970745746061708721457823147266498449740693316811803790993961067484445760329104352227637357804771967398192573595004814760911879423725999986688842999231672147057560995613390182982761055482120895999249831502938599854217172905766440060789889982831319501859693759084525691557238118263590873714762045823638300821365910023507196119554815409807709540015964647863474916771678275896172944679461060812606055510398151276556214360206161314617813060974159448187732336436272787385300523509573428366889441593121136810958769044959585096270395138447058982561466679299990223803979673246071569264033133378109169823916988013503816111166082334127187649926251669525985950713186885830598256977433264278037711529605948132598734162804141568528527141237281235025790208101127512983219165432223236697844054798478670595831254805731974382452289584308119187088797163377704839547910561918605704083217522252416041952395406040623216952937373264398475613916301547872619490956281700311766136634354200550509119734397736602652614939822286822637595812420051399248497130508875543100951884952959051173523531779918588993061814926801329820438721155400383008395704930973667302282205029779767987832593523932907016442455439827819100168068598243659030111051982547087627804865526866546136049949359395247597009281212313031749497119139821603885101471659232007448330300220255009074057690849505846776227221627072637115170668138373283852184563357702381547442835086073696825240806575749280358038338819209397531663341426657840742737050588764785153372186001171595835221735619481642639682745990428408584065701811067634440746393753193396597083181932552713541470887052747078221793874010991974447846666349475865031262536102619789548592676108073950126601937888848520959640402006732549609100197897802911550918623520594529745468539497074343236825976160633224186289194379520388421549721419723286235314051564428074536482222274868506768646343655204563544169493444877737001610362779770374528405067277606808523898223445503599783025220955660370597499555668732600621160608582815967117081321452542752243326265414762078706214434722104164508036146603697077068536140753515632797914577349088225115173179378137661708833754219489608278234482064152661423415211012179019782563314871659791484321519378096140746672138151542236989049040132003029968385924681287955744132893821514946246882933456727095482159568114847993288879629952977866687458748595280537319419886437331839431384452378238549902923914138701924316723799244893573372349557848420882480730830970381357318426781924821800444369352235568778551361862641649155663537811237599957610273825325454149821390690108803774110957957320872703362511370622398042132800829950321213300270956735955602865164659057890837968368609809780864013844025663756282492826966339753025712999685444469298987120767985118848630304017575065527517999804775463208092851026158971822996383172768860539357812605983801064426720140217852921908258611659647701987634456750946359405198016386185187224073037141591046637621675567703482688433887443818534822047727352509127355068118901047500716953201973211659656248510848706034197566144546414707211294152656552377825206144076612301336794933236466303293293921968780962145385282881888291985620953213779174155663398949311895364411756764697916368627018618937643706743158771033488299389492040990620120261053647538488078388144650761422242753948086795753483673173647265618478555387274223992287793074501600531500591491837475868854019731049845838391783012461191349934147793080691477343290622560115572449523149611911660555453159590379545645039011287465379438878846279012137823406736535559249058129823944896033712752396990557091382916869828854791712113903022195536191755911680777006623105696968468526624290315147301681721433348436580637185927894744474412273875975023606891545080477127147914436392904482578633355622716258348659504359432928846928260509630468505820745445070104982814338174642128296033788709141942347245524855708202200144924056146363393490014823483839183940714284513130486923704695220862816335105229329732333646693007666770419143008540459332486220620008439598502690874823676129986769845607541263493325886304004693999872533197794562053694573210328578794769099191787164473661475992011169872452899327735097399019352609299149159239053842421242711692170979020108054898909507429483579048161502062933883039960977188222837172822748979061995261595448004441025195988211038381280114108997802693754930554138904644595844125553336897124152340997921550011824458737048922514480204230098437002721880800692672935055998960780143260962910405182326895488539425572927811706018748188914967028576747037155178850229331032282852998341188179255732981596495033506684839088561828748987170457789323371022917435074572641097188331001475889518230914864232031310584958844229353721928219491542131048298725628691490643006604311830028540729566321636846892631687511734514019556872837332055128602222280849443724398395160607325901331227110714169131856009824441846226714584882164229326016604399243641282426305843213852508193557333516690910961728691646042705723723722705635459241499839553030897504119195577065165567198426596168254708762041481468944360326036731275672693128860874015728065691447301230769992055554831116328549358315279922754305382989922500297750266031169702703790085643889884785483372742908740244592279771663275842429835799187457972004991073346447183623116757566151928318146958263541254715374474882999264847906383081752901497764858010373598550696563639251674080059973404114622637542948867151575955792157517795618948850005822923301361215998271784481466074127873981070852872960566689568349804204827925205312577540199267475674655445374757503343966093257405480022008458618349917558424280056761361808262489509433950384554117767491369814032824920892748203545416475511424072732687624658976539013346166517736339699461899032261813012228402312140798777076536445527431063862252256873103013027958859520353994565070675142569232970129251587204276791133000678548487536545981805749653011477429543064585710164005481530575408595142430552234974749455414054384162881170306246083632769862315777068435873066460327726195670599108453435567729853224791558699316329483548283667945593951708781346606904013062489034857493412929145240781249207428515449360541658506433235232619519005439609741619508490237315510721916483631513691116929790976603797446660160761393857748376396447531887009761644465832655818322898239905820006314667485088923484390952434552393162608131477243957351241962031988770590163786938248869750787894991370241412499143961270831728659730690902054888564959836872161281638274952156906792925357934901801503091963777982080334942547532075780311552612022040457527732395409743813613751985090205280169694292456774712873409015373932580354746792376630719596357179064952195833750580018965930079913688583255032662191729444136439347238709792299815842377933510343205156045605907158974794242956988682766897148263610207152458440361928501628666381299427619945660708734967766508811939912785869253954780811392776383614631279853711428641857827665571265843729271016591123065870534297730723896868668121033629493135557497093420381179495276717715587890546007266656755975008408153292821174122124168729138030464144670597800483052511628689367166106001948816169659119375016618009104421249499477716247882016930675454443352946875863770113126792817122059763734368816590297602615993481346621890299625148989259765262658190517844934907991264039693377669535586924630261917551211278877875148297480399111852000158321766529798466010281372922290913526141006693905688737629746833712991824019111720305091220308325569656156065290847902865525488181261406699565872691344384928290013708697571197765701665097177860772074652066529534643888631063552743064977102303355074798813712749520288357512443029677417482994725944636775186175641354369827063763624270908673155640180479599932795447884383775979456943906092127375665250702508178289436886192818939137994315767125208358393513399376647932521531766720974208183697846909146420330141598300579689364483699973892945787386943554835832373786255341097636892608934522154563970127366609739566428019023219892690614289178948143857898595432165756671565110003045585320689065814110795620222443784617348904389139837913657282674477852410142359337572634565178678904503962369976649693083564975063137888878124705181454189874859018177193539304666988646556018573130098707168937739488474618764273099505091543114452720556680874673499179091544931265390442923187266550234750891870353653936413499854415962585800405434253541077984333504883033790564765286508530278209394240294985519004158514537533095432177000004897405115572235078945862053423274821440239601298770660026596044304700608054432456796603198375496812416057027489150221264263331667585165985642220441875025556699328328673598625501740138409701346205803004410579137429866585882928123130628639129529065008172002249162046596796520946600822791350651802392033990459681010221332921609222269187258215460560886393641212935907895895445889064434756136350141207789734594440547056610146239482004642489405662885469365022103782515046825381035526664151787983755853947485832508037383210792789967527533682653517476930265907161034252582986644977399046873015894168426924560360952880278732770511154609917951491123278801069417608769834502162320646473049541235937783434625867779970461859604363199651585855156009355050621674860388141432347185909927927590755591582170889220154275897919417864119473057296980742450023419483969066699005362544974170801465590101507741260747592284545674050111058362485142220555755616405864256629542457925823484981302096748147195699668158453382722550374642847270613922014570027284192033733814513883584478860461830327583226260125571910816782984661037843363580300513298905012892037826540581037698302983125572533481505856995624074582347116302898537675246538283677484067488486631946251257862123507421761647760509391158220320114063394044675923951906286938038286450106859329979840160103226648757912287825354584372362029303543627840206854502241704559605775471349941383052406880228484882439726165301690658119280134610889853961644073455288562461852937407861531380006155681268936332266120308769999135985847791557188855459642399379588074764087349311627200721061859062960797593403682556957051021538940318841504423751410267931497202934341865404321274735434763603566172598803384386752747552337247525035781841537579103792342784662526641240262795669809615775678934543222930492898459950959687669239309697943849804313895297000174738967434186254035107988503282164719370565874536073625908702440066647779665751438723803983610879219101115955357866853300149282859735385896455569310661146508732135772586356034725696747703465597648187003153142520006168999178283011461170962788998451023460097591374143699401916211789088913574792764471123065081200769974374342335394660547392472467094508028984460127586840444219439490811084459900044010666181575281816399274830575901335382025010408503128239289652585127140314765546245371595609943511205858157580112494039793388278335896916596787328171737109443849869702415807247972703133564704242359048540888445988421398431256793088457527323696041091716928568139343242397233118935547465108836664213255077316231068031495550665902599097110530587964317145623729441787944095939010213035075960769914579564945042675873350093099599128984784010332684327211190153227853763628492075662941002871097282590123681999553834725289840220431232231680683690842597241766891207655272137819492792335824523767036523225703219154880817485582964739652562194456289976707838805714836483885964021661528015432240697694639133830030629807635253514391025982526742271660695361252035137292914378633561683965707363117838098647365790403115776753416122781056217080620276368836297565844838634574861375873132551994151586502754279181725058942461978924930221484688892289798385780845966566743743395515064417595435533445926897801767235905490447927561671249121066510039112574827631113281388914147356717343057086578167801990698550078881878948738659783630638944122546394524821473618252706152588101314749591784831195124615392057896334055967646067186251347714067453804624188259138805885798697480852862217485751296140901951089758676991124405378982298101653291922854634221674228950007694765142383354654975906965787823980917191209648409965368587878859958847386046413631220306292738259751155834319526328322243666893102699943025475285867445432664452820721849592564241445706888481300973127806640301324865414203642018790313196526363979496991661901095227446648080050748959744850284666929329123477534996505633263536463006292556066179899020886698297671032959848887065264955454328766896545903492957917963620788777637179083615819391366694159083694498657451255879509197049640074895373008481780139335445180372169645595920164243281955669974550766467497519810681047114321048854196870668907727423789666920371240185472286900545647015240454581320824068738440447040966120760964296107674177117318456023815600860180737504904177328502718060491908404339860601584951798675316114448110344919641230619504062828888670800920420054341786377402107874527958004145583278395438848795594087288649130529317477259156098902202668149525310183627318246398564488154301076371795518976453933929671004050393655541351305446015909478319992692458623489731373044084376212449937463942374423731673825219768753882831549510186413162423549236846313733592060267651563614797955082399863411871479078825232369618064824762747095230053157815896121124755277144150200608523808357368918636483110885875175859493907171782781932036904296044660582207170639038053873889303006855407261452024824501531641622253152885762433170355770977157080637977860297475075074805378124133216683359148061464138357120127389088051779983220400511425957400510423724916961852161669897496446963996143991620348614278230986214921988711052640488644504891650494371257464616750744375360123362098238260775616030663109680742980430993493972829596029775955562564196979425657395437424867340420911178814714159808850418520663971354656778352254242901706198238338128493591405084091528781033671256803903163068515209221602629162424069792369500313800531690138788998601263181219338554915479654360384282601149789228889197192666354340210418954500605142269054059822230375955253057735188186947238563849940040066834862805122454264573743191858870161961306409390855859947257772270559034025063146800625265261375726093483495968295354675175781683957911253763853413736969097643686537887048583047584448629347822923443948927307524600429047310532041584306836044743801586249840755869489306006520753177542297901751246617425742741711151156061897203006810131963333871087116130980594220584518839677235240639652115080332104815292081610917376327957460429652373263628379494403178090747248517778698134392834467216929695590018292385779723964427601407004138369295834121919639384299848903778952499769475060984945068534222184679974477891312876548091910479251772686559766014590548488186955452631459812338038948698970237532081685099052005181825201073920188172197054645724774606632246336302492004607837895611910277314021688341531285699980517542193247910251377168854413663243944611109695974904882185757638582741415842261503591287273376573183264092405828797394155445575260036583588258600477745715976247437797530230898666493321214971570456536964142526233937309097706861348840020370038931555800456901611278443871387740527893533457914687324370383829580304935361055435454225617181422707971197343296770155976368196118931686503050358271867638221238325223517877420736453399319310676085993307583128784863557222786043994259343839374439303726244932420373646708296193105562312649353759032530492977361094912752473922619961715377426301404161854996247705079916244717235043697148635006090496016503754722628498065300665143908398882776884448300999827773701709230887527608227829230039905314560911102616304084802526491841078296933459462257198670274812522513177701738406122042812209153666282518089851286005988559505616152775190147744314677897769646751867234632871518419153657086842096324063600697780002414027187030619101432378572822769031084016322313322699275959576357470472019517796302775114927330474851673311380583873309895235479357255220719896732522509499515438145012190960213472253412676392029098433862577600401317929665977593201232153343621037611468422715184715922615151789651430132861091187681699537713975990305204742882850257894810958146053069700855167779001175783749653015150462093436310747438589444015914640124098642832818796572651350724656058825693739009388151848523664349927500434636051738330492092429403974494218631965178761599995797664415627633865281688416188413387802271632554641084956693253676536474568616605092004221155129454954192408893185844489900608885903897467484772293971043450870076146827858978861591103139855461638325590271001087478724313669249645069984663369045705918564356019385758655329843432121939321417127474887560315384166768018457514476547933131734952730480653538239837506465726415447007446166651954617336206674532097379364994852682636233846168637746916802462627189043735819181669998875828672798725908540669943471209054872385217901740694507928939004406034031581565918459720101972668504859731670297280000218979915796969616141626740260769035747499628656216363993967370160100719243168154083010355772837496664527671217904999895699132674743378007160053659084399182549509377400101659203634971186012687478040858200392846336733798113408042981472107359671466832030124723240602244432328352347053764322409040415725474360781249932770538985954481456593376849344872902344384739804713626184183532856190435367487797140531849351443913543790650395751166871903762381342031064693491678057696419283238004225452296419925928573416367003444140809634249676687690382390164399483979709787123399164444801801539755912384183368873138280117641216491668089355568885000335535336900211580398157095006086054557194784189165343455004464173190502410291607647330954846937068526746053855549874866655809060829941419265315421384159288212013453702542213940547596929210442167374288561272264770746778897694852634236542230356028837419355051704481275653373401001813566806483015017569174901348737991089583775909562544664565823536173409290735787388207139841449006628864003973470124655008818372849409692969487096737815744221781280041950833377483420082808274759870234537455271990183116869172775962811519788535642957429868669240916898010047864981450597509193204182567666214700399974025485292371027271865428131556679341794526393296578398368876562063088454531188524731385830420758031666860754189086632133651015588481256506710610461778279765072537901675742953967295313700867065968066207135216676540404126229330056781933992829316960930506378336279715040237898818910863166304219608957891727350773339282759458989605283005340743723541277825675314951999765099644467131109825268441953953085183920034715581733664469565609560995608440946650562044644050305682438582653342701489204811279204162326056911431756131250272809111910224320429859483291141664469986392418504457703710734178423073643065868626717512232827180338156480938417272827770192528254727553681448347247677190292547054470922628419070153128082046317503579320429723454362702297845513897441441275643278408707530400375158591990851285988342714443975392652408253497955133675617953675307543423485538791259184478599246274379499450645708259219590093897600444447187698509843354985452078955934906673625873841408500618417551566116825869725050681291756933763697454900647205366357030901100302991966103938726541270730473552771040260822545610329812314999250534226570107320260089607866697969916340231275082965593130373397660310705266497998483061966138530986322650726334469966698086957884937172195966906424492725049834811743243738433760732937201141079128421683587141283272450613296335771766531333503543296822839367002669978145771811776192377657356588884781696035931729315330392731343889291986861890352459815256030673694927753424708386087914211056997589614316346850698706457618721681560180278943236667321215390098404130831724427404383286719398658801991648264230246678062789904529790271704450691386297141297879535987822297111589652631652150394273644719736384359089111005348605675724567377146139547536746192389873673054389039498879024587396940825499080259049078673777172645352267001170818024623322030818136896515383142114934363270980608146611052308883592811076858453411890269019747751452644008510764611427729772713470320226277821182123131198360194810283835537096148383840306591681644290323580221644595751494353192361613153642856110051468592768883079222343173268591117345518149058378501711340931125594307729148931699921557386715301043330855981176788949947826967312628544909150458272965942181028712545224253692628110309754607669298957697123527254615478728915616092410212965737852187116910620487178503233564081540581402453075102773887656983503253067687086535204877637131499604717532258789458794576224955226304047812145187448308012155647231054048785381851729242697679666759630035631753431293733009085803553625819009336755428828503689604019182216761151810404072514563955020404769797179869974780001027267304810539704363554387408512469105225658641389001784270409293852421819950949750945499652364533354799790176063040257666083410491362866840834831184979985178707144013609220632950374230768813942896973962589686187086297433551206406675442137932361799442343566210899449573428926614585516634425543381464922066240072642565241520517446165412428196333980135619574449496920680224120625239064778463716519668138963173000996499434539387220881035756584415011679511959099063440163417543112140107579728794586928875999966247808487328193148630792796023076738272300785334771127075624190491283874377739583199534313004994447122101514402062145674291428393894989261573109943184811652096178763286032314073162193313095016557775753426546984090480347264215865613083237312305463838852332552753831067224893971379623456558252476897397871986378210911448064358204289260463719419260853674769945845591091819789936238870214830355136438509005455338488871889994852496133302881673194131434508283864082313991900394893542728033715743543873434559516585310106596338405902074372130565670826134453982402097178649283915863962872312384955611637682676218397852564755467183757352099261756882732780065253843831300158107477389694275960135467861312914624925857499809421753486007602317839934408126522999831842383090485610048565391808371813577173225909301747428272710142473671637394297940926720689807145185946182762445424024934658761544753516539125889829557496324495951825607312544122585157067823255986922013132400941690019755703442580352917520517527775096279741905456008148993348427785093594615703096444064676916505239524366722297698468209748751864244118015302876748468880833708464918783460892833556984270433214747506205005956971006295231949922419321465189080171562153539940359674007104686694819697155943356802642985661540027291785048088580735269833740970290331580069159207603103722702406807650719111010769536666655594943366003367824208029649871597648032557361836517436697473375384341284187882156072010173537272998949053354143037031598107736751928735116938227355365560481433043591326082443534982629144128731156924161638945997629940645040161986818988005730044306888620984463336287107842579377067326911676536256107550478738052727567204413618176690830031653295010738870243935423811375211579778375693605476689964809258470222000067247203035794622215373324767163856684804561271858467670499476324511092345410965420387895692240369076278741360601015905456902003449195096457824807721304716775581022020393476323804337928145957176225449403851090035743792948067134501981231632929373567481633784206308160267716907411933992810541503495717249226008643448419410787617612815278055159426072290858614035492502071488291597026577026942271781140440832307306554322212821870553472237972159818426484759774686041104052315812496153652897938655368661470409731831892471550514706678900345935001856933751598932443961650876401768048222603526467716419706282095155925547230172509904597470106024079884387718681535291441899478639462466281641404813189426776360399458069798598899422987206220200506190839624119008979088478026025302155137318281974948355579265342776915149087897909452434093445552636152301360076006127062594956029852601923397858786464854009148144313204811528639882071712912426542697381377906508609346923011868998907914475327557796388274872476758353923968074377776054344890201605455161217651825477624198219881920649781143650917602499071407183742141157948675617904797773429740200838991223569455393652993002241428275343134952426621453054772483656017804866052114912732686207102345259979165265068160957669843714112842949717376057641738731446122499903740019844649460497747512912658660439891210965081761317814613302905896437061402529266644757993643542236070926136132104811136607333875670072344942487304460664145512714019487674162222679833277720445553991236080270810573531332946826302203211751739638452123579134502344255576591568237290693651045483480138315607787313400153915828645832335831463009194488188827348296872373151016070146550351944488293617783635239450791694274581983283212930289148781938503816812007430792331976974642675152048589083454691867778387060064246124969810050455772934313674726435968737707017583068019418023422181760895742371096784375645388095019075534877715103184788419852306613056693458261237663008818646076884168886575797381445180869987785261690992591501229576086375015576302807182236721387333803641015315098188470117430236822295138589328369105626201415328387868601232499501169265109554050381309699198748824916148499759920401401011158681267121700455527945426627073766941350228221258920819214256404513135150329632655505660353891422455172158137268905494999673405057341275535120200354029104413116559027104385551146588487799495171006825558998169365549850117302133418382020853569042833879949056030756086310673142316422831934436333997118559220942765241459596157117885008169951069665049526643493779300305391410310685571487008523364968366330648829648806862172008084438993942503854610010238126673329910203053837902056184413620071458637909226648425835610884375196275706409672327534861094189323445379534387448736136450284692133212081511543326259524322470510743948598218177985564630906172730092243279813174974239291946760210560960420363801924842650349481255136068038586909027609819498557380972306079715829809643608459066166279289489594122306816491966995657200098548109906104411302285747962518818682940496143693893763930828901255648612027610526000080067177364640862685822472903744644242190436373712995309621486365109252970123445940392945366368547817224709777391232029193211263356576689210706152393913590429195784004212399159372208682091933584937954454416917306105244097170957000131642199576270805666025696943687332121741559240258961278620154595408920135284196722919561025503114627274030733120355120418392742214233412403315990884674565461770597171987074566974841446444914140990755044335610690345326150538276615774924356605046138492386304780729509997481717432918235208485625280935140230575090808121290155036261589635787734282934681262324365285187629762808980729532626938505059589829356999469143935913170116278647861235965247173223868647773844698076459407168717120914389615672674619211728796858634488040570596690705566690215930965088182852657350589669165161889752744733864863742894515357996107818620266694689374479441166351326489031939512934606119785235519641128317970635496106446237913415021246457434378121551645402964313509464953896307784859112925746836274551286607599645910277409039493538131607462847176815914151735594072835882973568951417058930891683963489993801902734131721399427727949281412259183854959934277713743346417397422172972611031441336629963759473051785410881632777438217344277180171142545318949719465502130553252226744088764450556973945806027838271665032542708160909571827499375369443397885796120675607908680877656309381011750062510839776977254926613289820015215410600171486610954473298400508583508960904336718006836218468844011651877857168066989787675699896248637558980802707092223099399744270306983981032174042428714054782818836510411567908047642675928247789783711193589150228889063764072554495000076922890485826475727057596182506183139510166747678651223831416200920250722882429182122444484581198020106667606540282262361550017581326416043951794682306020705065151741324349314222305949033261460465636082951019057845959406112645543126606381838117921349727549320616203671586428739906755064714672075803193185786442707555167871714591698385839903195282279461312156857225679041471679844013645803101461607009481187888280336931399428654173686795387378095290767675709440667251170167508478474580923780286298026036868428330063914175974520809955968879112327226193572454911502450802432662101632783409683822961398574605016378549444923315650524002612897346905614196993459493072277993993278386581847555942396957507989008096433118183692302312364345458564828083058938531508980704298381668869483988982695976326476163826231821703261149264710410869550406907201490693095410210275767866762570207450549295058476093661517571105982201701279294796405107731440322636016425488329567792301779302957314702071648216030335306591304804113198182255852489683656568962649761952726965498074559144754735897789574544331199436221238146102800417556794947075642307047223059263551742374099631042188597180084427032300691915668945658542816102444382857076609576501282236123723742858380170971488515948749396799514381961884931307826960062540236658027041230047664268383061833649558610129024098631302747032148978839322985699789789617384990442924230895633103127279391246801287267979814456621923054499942921013645307371972773903550268220733757670665309552394353283932714998985275557348053227746306023822193149529123807406879013412380140721944509613589793930947026826822541806265915712459780630814704432737152218181453640906700658449024767822153830212017247192219928823016512025129218740518732299206849652102528490008743277734459916460223128139120205659220264480644060440481429433248097917740617970296924242779886677163397615690307033291820271632815793675613053474437274836135654278128183701031142307460806380513345401012758623964685772647758285805911802317756710186634915031704629873038193491460045461960060331307479035612406790872320987152272835349205734793775374589120697177921151322162587213725664045085089780901911501611786803469066025169782135014210809463726237007995286026014909478692947771189453125504790708081392785259200489408459192108906394287988121282242957067444185512936400599372187534433064548932668372855259773724114420589528741343834175839383945612765790770763793240141262080429409624480776423286815002867713020835600192241523577267742057715958035509539327238148012214182450554221114255737697369409527941782589471654431420086626801853823232845762651891149022009856814600871008159935554105369855382124765179862391785582174502109406909358567449846650460401752194228831628987342195869359238796545899680505269713861125321911993301835216591877987116366246447749788081226012451189682169256205529556793632615103381414354871732400770321712031459059613384174418458839999021400457350479760331620434397474966811866288292500228958306386226108475210681524531401805074125829291048375995434504707683503153375439340725616021901466912427502934379844991813680274367009370973230052240785148299317550762081532723158162674709682789159246411071923971172614742102526754008111069005644555006793194627074292485971526793334317188984383597012160025641202755924004490440325861715508683724191996641156824708151110235335446697121936212029435488499959282075424557959979735237280360557647689908307940945594011638691084069428993678985035673161357809688146200675033656360615786438594497898804045059606155140359645210519641983062968817417799481547453275733727338537045512203050021334469956997734231421040680398290838903597272719249156050694394479377254628677186859380616814989603340103337960363643191108557798518904681774378588661640118702935837209793523668336789441132321899975908168914037099385013351495755299157091086257928632549234375468360557052167128368195322305982564475087593695454600457298690449276932172385594341153112055949069357200332350042042281430486335654804145713929602693638126041281209181752314172658789236974418744369181719694359069785199197389426175818159025133155392312162420683999835278421969138237216161360212941552276643726775464572745414007910510888624989026139344473237506443543511374395705192739332682447183138446272143499278577959593482539811602767660367396171334517353411085123481566398632527534580496327809396923692267436210188745479491325097960234264044014285013037051164122079181176467095978137099802680294255247764488882986235617738543690724465612110228525348528309730908433650403335231057089187790726078755562410636610591898761918639767817296591448132976228189733804776585567547683846285009758450425691339463639379984646973521766451538640768100232533808707211718373096046873722411914444570577734158863759900607322292627092013876201266778695857645175223719498840363543428531156909547783581901962288308114832705725847908445869244123017226859995437858637166659609470591313312867327011853756407837313309069415112374049461074397580462217426413377850819214868148327062539738727686033123440140955595034370664296266875467230040653070790766248296020576022649977672029383476750505438688225104701149091815971774777239029194789877566855885781826230202624642048754054823443750165273290396438676393777232057338984398515098595324911063910508133195231166577480171466741705815777939622556516546144119032424587879387966454058105356190321396763133031907339707437602501042774611978284138570492579348000112682836373462369694327494607017609992021629060205183530609024230214994221070893274532136171107583807183435514188711254891488465802241749547816634011605244560875962815179508478369173204127679562077111978597055465415914150057539054180496012336115555404399749241905259027404563180887514845334156652205932986426851290332293957520615798616724443655694731877799633386386816276834728599639538777076452191562554179715642255888376809489520510560570959949739610072710038935284073474898666696883071074256585977684570078169172792817933754102760844208327727876072499292232864553242926212725057569480942226241099764531195408850181462029873758011562101342732617733159081225031740014487274756033535863973816125335087244423280777320050422191719138634508474621714223221981204163976529572496235741761552590270972239364853928150579212172855140007419102424413279787486268322427901585933116770401249570834783548938188693631012796872988763302049054931402148673017441520324041347425650868690512532793040451622209701824987798331461588885921402514412686205894891815587072615499056452063942952495066579767268672679251362185193064226746664967111367664200410124852905629817813158143179229427391220616104333175726500838831324405486782985000372976743714811988134975161045084826168027867470156197864079147504063241558282617294800288612606531509936865363138546951518111031805786515609542620821003724968091845932682071367854078545748399366615729051822893498900825349747932811695840443319996897365558737403913432170569459623320656514557181686874379181585223576617465504427255074339869944116449936975756355169495740826526472646315393177468787445193367370403117599779373260038871761485106727295459265861719920211301875406288054386182214709742226130371159015391297262717440812595794851424864291317455069332447276967485154972433147651537518902508062501288149381387359219293988626996199934054657561089363182581684271406339685064285671059084279698868293564413945568968771809216995838800526080217377388347881613397886728907656643572433177901001343220553412392552350141767404588123596229087942409564676346708669139259448298737989757777958979170861965171210951833471450274456988477291333155573475337984746965669981265688239445931621815023616931270176005897918362910438534890427012063647658083263943633545927191651313748990365884796542544261509775586101935836266027081234628422174581910378289723923246119911926164680418431827749573051848077808739118358034940616102671843249060543246200283464488428952289352070285961757700462243037880771566198001701968648556476434048427735215878697688025376727823163119486564358306829659465021219371851209721162836138127675465274540709814565761302418397891553285366478287555915833366637794177714761358195296767522418136761329730948830379648248898992730850171543369907109561559616456340544776433422947420341073759968863865224111204788985737832982830387576568799406931927957323880475313784472533356679476647652948427424821036587891930583219669082671833456465927311266128416550063579661149499328060791584834289603437029128650795585812249850482911987103797646517247675913524010404468168819395767259021279730746648677786450111732333080433917808531418348290351955359164076833882342484546906485295588447276345992238147762594959520771346769432152081305184521548927839088616482480874722839288585554772130589602272342264606876071567338887532453230223157145817748998968807060496348728195198490977754412504302530777142240769730773363622138019082338237911969461891668385240638502465116900809643097554086261958444252761119235162034699763635783554726189404258986844642765653685762785929399855364110657671657150580021529788434383338175416547994560765091858155443921542355719504565255958209875175477432404799735297278271661025779656371665552327159688010320526846350649808591894788862606589503623026745979171663470539631683763547677901867294920628470089393044311518846996426388625728449702563935939567346331881198406888243270619633735182971765856937369524378918062396580514255615889086333543355348234598976474996749959548975150365424345724893142775594081164396541607939073119973459663237076961452201924163782388401711226715542792459541066444535452783442848495283959055700498383273149281388707979841510537992690968468372034432586842947273806905195988186420301763916799880862134424713834371903861133876071373358059345815718270073334775895179576399918574522638498564139051622500330841046710545023036470565290161008424532683408409642732226086213228228121550529841053945179344752403351664654573926491960210225768849127152875284604120698311052717500598201577387212901151642172491890897325236568926022179285837358898255914150416276196352454969774271521686784875312107171918534899963475084840217258190394820051876277430546725395500999272087383096311065101165533686552677206650629900634560942235569293742472764292594053360199061564152885620458348001594662986368455461374720730200074229269630259730628970087065189468233304142058497632577846939408340220569600903356324236559064037837817282916807447444754615658905469641467636051987855073980948130770719636328593604237957671879871295784943028092136428509957935926612567373331774834393536359034123393659634562487250560252889685018869931204568990342777542932849891974521800287476599242294985416390988106431074664809554515261015399909687546766815347319785403562730782012090758971188952793766386822151837787212759941659593044153691779059065462649032796436198095999009867804029469718805410037207592188206062688406201449626231012803766162461300699778108625550419991033365488457926295962308706886346563365241945275391124472984968838649270999103927815930030605766812942683353864617940738540546600707689556093209399036701334476888713438204474038187463256877826437124183273290501867395556413527528918074297469735845817798654765130821429556130753053353694678665331231511301568455047698173920004751305031685922387442978301715349610100556879278470811630059738212142032526047628976635445987091217719201865906475157071313553283453808689680234018956779022731666714102595233343235677681346698450531627677213736451995834844131650810151507101335019890894869222870274059322464660489737136221105499261011197501678026185073178090380587369347153211944388437693468819177922387310168249842391740551443105858593606909739478300556571706993097048229006115275723703841818994105983190056800083046728056228129031072348380498332223399117122886413710058993272802546942503841937004241542205767780922826264382029477128016994488332757407186001855793522412743222532593690162541202770940375879252305827811513731389345555539105805401257517665552252713981145690906029927611209490526554808243723681820059314763946306661565271834635803460527329916204891838163631817870103658473245650778905390080799686983265318729135239714471855701593814710622017924288981233895387478784096240283110665416110998843265419027627996913055397318394365811230414642748707716136415806043706064242254744969092031944648769589069442719895264037237548987466592355636860192708227655282404370734051930174969462488465916591034145584323254803203968569015412988630619018465330052209725832785941190737475878508093052088059050471625464116667664755371208460201191100972644873790796611692207138352253455241483936692985855128873062846648627541584992365227724252425197774483457134244558528083100210698555763321611614787713039190953423280788241985951523285985690391999029346665768291767437843005872792984294330982795947961705779254262628177984308405397172313609176037557620716776069452916551603965263990713304410816286212038083394857245885007415268808970422431230829158204425388966864944023456613551536355045883549039675119932587407342655331910333900965032367470274083916474557932767234983548485442743609127704683302932604570729926482846764967149140836077558369139335414019334266223448777030874257746331219178758499363671545587763286085730357688512972817692805146427753613328257433104159873777547365734800620393510810234567320994939524710980119945217963817187740896230999119887123611080793807568658561816562076158921122044092913315869136155627928710078409608836163664160849749302604108876452465880898593795738271744877372561483219546245411351850019355385324047010949734151367687481694372186454664877236473601795620322156846771668012428097465736106642258841542404729854433946066221735645053654156267880447695198311975968019820811211403685873852066929625421084864162651256228261519192251110233380812507431497305624781654691194871215226609936862412011238866494004686592680724362579490434708102785417057619502932983069256337000086248731153940454817443517869334059429286418486570329724505045106553605299140576896493147710538823938223100171237065869398944790829553084070929200962453302285207434575228653582579123605883917622450582809009052649176938440066818703050389828595957116425203101926089155475253415751823383118219766535056771295560488631678369906416343768784587347833596623066680486425495972462735455590320184857140797778318803194927457101566341682523317467631957530652118759817702328493155645312552594633921424780009711241057959553947605527582741171777123234213397567100449533834721321600219312155670635725547244507817864348833363268563055516813100087072316401599660629978917148590747797313631574973234694247059001411720201325594994537710603476314242662696023705347657203972283443426442686237319283619895987091653026249509021280304586566166900599322480809981651470464562013476821887349803549102317740878231932821855348192469389310226432066379264158763975968434436693477407835523999361001106912043737578603534808357824523903290170966173744421079415045745121932871523342887216467031969146896351569066915926435983927711383959898002568272557774869560111754217881461696805856842774518572247876773490314849643342002095579155605941550991716111671796219768324834092483769987890670461934696754684730193752041102122885259788787326717387275480418721347851597196061959876596425709164820155031934577579389656092784066790890959573201535727209642599219242607778622744631905450344211511119749602362241230088712451839613430100507102257173105607775778263136164542841026531823534254571188611970613571039747380947892862438370363306475726667512784985568912455301561081951751613971968449651912916589200081052923622882394524576909023607172059720120659723243937917358736891169439127363224962514452139995307881081280978599526411265026931101510423862112518675046634686077575801728522266915882625471343913488731999747362930690742904222924761926046620871935794402068775359462201573569096731932475785499561059483819058822382955722818556326750102353272503792955721542416813641552783131826991138092810829350858880484541742474494706721421752746223171169659322751011137654960909615420213011157046702653739006556723485865411767041679661432156368360569945537529366688063990443235592344232622552366562434825643996872982599846763603452955404975258759062033835782531045769363898272509248376256975888475812010350163094083983539920778763296607065771136023280851673138199434925931226220294961194944547849332197077203031448089407330945369922218517361523046131946667091853288334336559005588211389905026137287884198393759886182339765648720226396381032397083474920674662060134909273563661646873931805826239716453511730354386905001315239048868962248036908315698794320713461438897948311784797232531575190075586808360307888430064965246467144896970013509482972947598913175208707485033106677538980087834899917227060731210365646068687102828573792592538721601778452029717150271274681286141402015384306295836367218016125621194833306429177478434250008478405504623702454247720673041580606228446838132585859761409482864043528205191543278227178290510445541168751160185522236051887539636929713057788511807977577092473692225678693053028273379662868978669492742184293195590982861381691558941135063251055901390020180526289110742163911719852976756931225815249368876509592074349656207254864168204348450180726927362828009819311914217639739822675970509936237516107117674821632001406856519831866424011813923472172439386183479693967848329567360331870301036089430349417725467452926310548416815015415807486272319023946611170346344326218512245154348192910991062383694572676737109426717558089610689397101458910551420060075908130903366271142169435134880936115073225743637705577136366668456565673059849946014791193191768146329569285067083067469252280741333380731406890396750813991785891804339096182776920089209465357102972490858728322475744108050824651952489479430737549970603127387045740077724109786405572807377526925584174339888429890261391552086454979444430548484951480873475496985471089399956339740560198736455046228304454203067010144009969970659385612629211833147551115275598035536591450782173385853226746675107437777399827097111131263666923725881826385314536930967383743922853697664508557581361861629975282902675813807169813652949192781329522203237121607245459740553978793093301113453463278604214878797389497982024928266868263872621463856957301673469127193539572840896023572543377904272726920066556185687558508507467964310236125640725902150020820272725579717827690825489617861808493161983772326754013506971010277345958053429943606786002198430689211794850756868831687359574528580916343613778316247663360553995759430337495860438455753830330996510038839092072970243269181051880252122609605856979785027466173835713066212906433623625366799687248914716785550053873041226377048190544325609789388260091354945569057430188031388203925905814160880860281649972808540065891767795704698989585314998190512299719567999182289338146800975193412644858189828453813328148443824468717822244177679037965001052271598600724313131454420630780723548021793063644248852560073090812526001213290630459274621038273663559188567282318058913945173448606857297086662876971702146561173756553816920845885138391502435090952569836607422569063284088513447756834929294490577678191191154523819208921916885780023400615322622249444988998963984156136847190409324394601131381543557079072953575530106340816304173588100831029878780236898140128712711784729193719380595753088346981476714566239250431464446957753878165269490943890353743640267018578083348000298643833886496559682503432173607268261731357601065481410286261755339986351104028689657831522521415643900455368561485138766954806066005018207745483688587443849245603788690219198196820334010404347601912129908971954026880195653355469566933645677395011936007178489813021524195329928306210496483081207630497078042247285258832024960777212263348665264327224287380216016868570490635865204608098458170024974233887169611144729599331536996816767399057269129728310771567596901812270456927586908828336798653548515861958675557043321125302085859643416963103127120855161060452646922509863416915736010422202986333196718568520114771963730231440170866548949581147819380875295371977462798221257357756233104532445263578807467287733934387551775804791427134118521156852268463076838339936815516266377178347661920586929774958491015031968499448040344739859963720011113980791607867553352239336676155482007212413581082760646367354811056518491791616631321525851630564167380654868539621698434513624546516549594569004781474761623641419165118329249085176283919285510670608260068979535534149957049279229523536785760010117278295404384064280237195580485516611163063820715347974397949522862985739545614537066035067799591486860180743951501358877706747430173919127562344583779373468003552857292086812111708020114509975652279284421486303118006961488738977038360513298550745598453145339465336492961188287916556796688342435623099385156278541116299827500342819002828863669809851611735262642953223723385832270105289010535121306267470573904946676004069844608013306916918200571545606951403542005679192152149861295821044293993381909047865290043245041724983064955066252724162008191009897568949436845858545371960901285622350201015704772708907559136711586288017768006856794481144146373438043793492220206358921695648512999989871906916855569877848818027542329120235016644988580217098862189254469516335847933438992789416323872916486102143534964182711261419069134556924956257480077788783496611760456559335240204495609438186165170280648950441958102942874292941763247093170797408764706130368298784087489129004088197472648530884785573525971694527008706819044275968732638357885550491624871864433977180459625962940127147554045756207822855893084173153348108611021958518304466000047713137649892908378878188041725607815385786050427278503940937504078178800869195637305797162347254928013485581445472987628883944508975075663938690219885606337711927924928872744051868377473062710193079379186216941616850119507202494148669560880751304393044801265042931959175405490312782184020863139885451117408734785401788652420613171532558620989455794306223272258898809841960751371956200957644181483613576168917922087180953925888190047984828487813451866599969744421029863576892986566571462299788802507432566178244539483654753344480452380747492071626429374109481683748739476399235030277625753630367916381128196261159603063059051833331703255655674351984674252302159502380552869611228412539833663683095802296073941391970864541062973092730332397857064849977543675366920977679570656079168585884518195789252547475343163081718300717355803411187947707272399016339664123293458935419941229159532288766239839937112913882372621372910412852750403760115032450365403170703742735423780787613992806647776756187686209691249356268002964648103274148106822524129189071181736260042460293609707534547623353370090191352840229522208841642074628867807591929979362555110255462231709303377461995154484081442966516416930868930152299241612694379485253607491569698877660238238250814038895147898506225710203612482452604338203119023611667990694637110367755172820540411192915676861452105767580934613954139558784116043121144831340215635830993307057124358433918814217349184938733761534342053862650665668071806426945755316289519634597432432289597563570930871202547622139472390424281412490442100595449946277794043940057484344060115583113724462559672789043896672867590609427386714510713563243744776135891963994950176942632324218502778954746057606439949292209540584061216700913446877146528216306457955257247341461704384096817045110516918291922973166907561130313266298114712649997832384585359732709809665709909114073459199078734396135547344624336002700983040378421490328773111623726299944889293935709037603189136416812562457718606601961336212621141939229574720363569790840709058234678029558618715673914003241442619898863633494320492796677802516779173992097612793231524959419359581382991193776066990446575955317509975103301133367989772873572286748604617599266884338681451031072409340483437795358673302767178795236111945764476626756288410436894946572765176923769630622817978253715805021322709718975037438567103619500998630238516313536103920234629529527669276826836314165622577427022077249042007328620605870102737114332166821061353923441070381274462213623275375257870273611469623949001055992716983147201483159936642529727629212806524703038410734222208750135233983003490757738779364003752047997403319626898271963221183111559506254304509645540897023109340742014245831607052044082577715264157631011082765270049331219048989118005202542225116467848209722518452310617008710391182078656036517573401684275456097329842898094203001274426088249282355991049585319386647170918376855670236902895179207649292567172472886445099132949924006515300863967366559653174619256497434223562475671675185876519795192490930881335285158656712664075834058278631026577152871298923096487662658828033763312169040808465207019062861220389306330744864686994469068366207243417065095994136863758956646518250777503999153788160934032661987998571222137618227673027762911571237426043806262268205987206637119734230476149176683426962861406089071801204113303338343911389394531163925224675120914992449208014791006177830345875459064292007268113835457083028886156795090400582942266271325600227866764338352700704778149529690195942136142356480180514164196268085147460012788225221013826012552419975020041753227028105569191345477755573377533358744894745507910541656452573219918808783984728322745417251885871114293148551326582749714604041570725774903656626413289365894503471603262215341420626750465879791112799416324419464850496670919374523080005001838392175324594794697018392058113119719341127900688961919470584438086843222266171208504611809641931766410311144092933632787077755432907478240420521879103059986694126664256838587856434355135431125256535077508415851313254874559604372024633370853450001159197419099094552895829385502525449707445498379180862516306369093607534478302599781037664134499166127413455018330882077518929598758682684504756249861757071444554054617236821238736556522506158906024976230320349486348688588653414687374867669533860338296276650599974335716864500615015809092873780522878028818096030285117348529839876594113835305040502303097452904449946916395109488960312299304990194337848728749575163253295984473025381129310054189913933922388978938594859370392198646470781767423245401803580600075225650463040114548975276313537205164571565955540204978517139252550326042266592569226409729343967811810418734173607395627869734153365072628676132161427184639901949093994869246663176033257798848743120822772407418891510938911223977281133033072601738163023390580037959069749148408239687782755957511683020862451984228587813745278234725057939364421869828429800462477622270631937987076975040470418006828274559023622573863762963089650452244518309892838475109675816219359858971052433352639069866332540069259171157857882638707321854104226566104622378695281621213454027976672050752438882242272562412722945377223042709153980812750552358792045458370802885454279532702038492720638340623501869388725969056439471024644370388738098186815114718715729363054548507821310183959315061776844131221188509529487795831352614141995196053755706595976876662839805348781880714102254219243224003727502735425177336955041529517076095212477521950061305914759592107492613676998759752400331801823227194777159925937706043197351159063136745662629133938419411345688449712904119816163587591277079758273898300220898319678543374590261434783604855685879931254893612451947760818551581738009180915005423636417047404484720580546765649927300066504683303591266439602138945485213837698364336242960480956480169225188564119475097531212955421320273332115062737443489988162005331681208620136524586472568487268322749480250989159924916651757536739478537702495241297347258848693532182863076519054351048045179519146918005997181565757338770713725296753183984330981737029960425686985745479625129573331977908673350290260827499910882036263242758186812524234386483639603655760699641405328665301163826926824047473084680509614806415838924903568718222133282380863697325953925634434717360496630672764183476852902586209834314510195166416177986069602256393800600926828291156140018033608287282632399601959394408116030799072383082124814067434453757523437741973724381661895439962260375381968410683094562020288964075023211792983788920925449618621414447148792752057696875442171983002591260711162621160330169085311346495980857918958079067396871042133363525278938078963480391423382691150455634541291431535414621481690266853299629503174433722130857304144402196891908931713834080997211887716058000331786461850945259946308731997848813836039201454231015016045724320425915953796251077459266878172572467154493897380363110622155329559738039645285611257441490135380180326675531796997702745007010011605047856596666503095173810962431419027885349525650310246028902930615103601558542335703952416032697044230652836304570168023318140296633179491021335704683399095766649743026780682018907457773796636229582443729943766643768805340233940618398860105164240097513741117060615747300785452346526958050139906294383219137571137607802774311128460994607634535893669430129213793497358159162816629809472050818853759022608775890612543617129647847356836075679275714601087375128070124720641059015991053619018942571808630163346757687960350937431899788699530683550508804050500131466265491615132205842485369690968682303176886223932303982435888498003465986946640059475754981836085441670491185409561199132631416823784338399471669687659054697669959481287340400205762779326903040625950822245349913480985019469355790605588095568296633469335541257570183390765856705052461911017906403431335784352822083950565780036439172220327536033609104581012099531341318773430282679850952588983344748917833225662497731741927885847657463614621557441404785146746992916668847917752519118652746920579324259985442063407860527361219453050079750591079687194948513542052156458098883218535624943461429229931130978893804504937006409814969611467602117421910404059700209478053957874645898984089810220890672657744246116674127725395974321736375979385392626545540366342352305660692533253620817536531636987816622977353159812655510231962687035200274450063407554102969405270956267260577787583591731125424473272689169205315971610784580920945764432484267175653653977336567447765617736885314533577629655850178147242536330578334978290648335617624896170181379268469955502885376093622884446696189433764922985751684903319679195191714033236463133786084084377865860400209087090837836694110478834704384642823773877973273810501380979502444450843406606875322034485259189937287510010264755790864616037109985663061772958902846147979863359275711435180726170389811106793111577351873591179443216654091713822925516820273139421285348811139727369136664745137701779100451818165571542816141865499298374517754451336157896372006867973554116819956135100013837553478380432021120910889704119921980687471210303701783454100545370677789968964741291943347226196394756090632304550450315743420247704790750047922620913042051822819098506309139081459574533166262730362081279015666546739757088140119952058249803043767615686341404625965345036725666115882824997900990210816500083042495194576894904911425173451851573692953748242799226129516251366228806107198007963388281578044014852126909522476737881722525216592015365938984608090467479879909618856126346922463562739986745896246620692353627237352523747710644395943020312487782676193530410620957781624247805219525691476254242683143120113734052212501024658594273654333480572293665316815267093083071026879439054755313008457335808479784998630701430660272124814289049318932805400953519580599260357130374044133998962861154624169187821597927622758461218988315540697395334352321334179658954199391828015698072464676349362643061738701754650048855113998690764554287588254656461104351015494784552499598721285689518219814321877063034430577491247847755423634735771261686051040099738187728226433071911618184847704476660313170502528189424565407772250300065241656787350957741321309039408292894798990072509717704940947880971423647929424886471263891480854685742060903292711361514265071834625506069879683014612928295081308248822901433807371248651740423359704588778199294085402798454065759309126270727905937041532429589126869635509738912686709039667968082381377476838511440602792725339901445298783190712677352244661267094913446546915165380959043604715694060382571709867566457559849694198128467388021421322013202597862841486893349895255742520694824600462094813828552982819671155717741003474506319944264905651490195543101946420967247092096428329120354847238486614841590411776161217963940550701873724617380632371638931233119784197173048790444781458523374350171425812135133720429249159729002233610367879326097663555846622924985702047496622455148325988224371121303599449380125951320726987820716041194374764834420513699406668634844959560002773696763966093049218588034297666420781723385025524509197250963439513325154845102157282571895114324707176039649580722794234297335510091345018548305055160150147151495278308531145051991017674896981714411301487252572485709763776380361978552500043575905823873421663192289174613923446200219956454152944244484016027971278880959280346478648737081216059386430250889212170496718262290376125076059636383777456608193528254703365028578317997148247977750137787304263100458938558298935655097310980711786985907821269663891868418611570429890003545354949586796417980367668720907830472065079742520780932366914386355942168788117848907173008520065841980212017170624095538250548065233193170134960615395881349490391721490478906740239598350785627083739996119590572786253393928051730220473124537995450277233865114144908939541722625914071420260600000491519805522769030340074738653643368374441971226565128623935440184482230139188899877599582803936227950013401565134819676940074353551521011064793243512594066623222209771927274082139406817940644431413151502967060520837509204078998557101146739949209430403061271430331522205436158016551675447021195240074053514273356553570335160673982804308533258129015254181597893363501505952831908389583296820761569669796286154044541852186736047968551614179535296569629330502724571480988319334904112965295522714265961300853020875835865281869091068666938474422396519007855706833372874036873214852237644593670698770429629129715166076879028773050975992011485597027897825956397449543769843154967612597319764685941264942591370383535138460424581765391502180034907349030220967998323938487354422998132023356488440918117686140595737294201070758338761810646789462536625290689782778540796551448777575152469341008923028865332320946247925853069822269287571771608517490304946019994024235033065425738590092062009188577282534695315565591678034476254055232005020477232040316871918661149655503565584802148839839858899785673375492126273023564083342939437403669108099053099119359996717763532448315133022693624537233315830410600244453330018864832968375317322780029986733252752288327414466055978993947386843704499495015106430165626220889332096676099909626931093987289084731904695720403789481235199691737961193847967487189801965796720313788048383238733616761047918753764951541878574606281561153689907403385416058734386896352514803576143687156728850307075964012617133061056332946098519821621945995282784583039784509658232114116954087434143845542344236784493151921589553008113644419271515874228723900240688658595239935866473995085565937693860283956764897273031554382229399082146033409132986352821593746834855776120296112354387807859454531224133866586356912623926777923865598571398935476148801632405042232700313536693499770870555096515954930312598453875047418106249349887515594191289921537933502936744808771591647307104003747815160784678269459203259758951900276016606335583534912403231917376506946550534324489964123144355633911224709882847305595680150437455652502204474591759324878675284047471400812259600495487525689133777709387994137512634878763321414199242576843614846864906448560916026879732156509473904518233594842125724361630684464024019952746329028610149497045503012078858053603763384445492739492291742180537720145081630093963999878112455018054002058703031778807512972862114094325338948687929237685633086733052844348638733332145643034872759218048728354269663161489976123178944301091995428478520574165607652628342858715056801625147112668459431466180461687335566980159050241876965538020015608984675360376238820720663707546539916445931048124439566290294040933211323889459530320002259121058419534132198590014284063081166450615857950838294117342594465272911993066840834839855544447752333721905205562933736143402544208667051752925614088935154462114539487065145383089053511957242546182403558292076675907042858472519340952761540662256070402516698056413298004509439836549363945618797210083512080880198026760699869806195319939648796143623153269501481158152768622613649317198398535821658207113587102925124875291790029438381509503470031225857236126525345784298102201912537249350248585074159952861364785562649887132868188115639511506565683970844680400967346713498539054842711633863538651985604433213143661410343356484167002766200424680293046524908265189644668421901365869632045917320917320175776213003319937347876805290536997283049298003792972459252736673143626967236791135625645356309334037471535599597462529881227396071942732301174148789041283652933548663019167980081649336231860133791468359840293358640809884626252966548424231005082399910160511382215811462286138078397302108791163021265449417181834205845965248558559914627381481001208977739532638275468366197347066365542768749791213518010102938612880905670412742603642614944517512333620074291407488825072676966916775739644894065818255168028006900936628031613509509066062134420750693130367573627850397446879640975012529273953932474287257409402000191510241614553082999246968589288095901972368712658665734586799846483009781278457015778333859175127242534650321380691467947080792915500858465935386616022549258251347380999381666649182840480912119197913298685918707296831921688686908483457420811641480295009513247376299362720945189403942888371943236515057056925212607393516775005246476649684736225637279929837906243729207401419067300901317027654972491354245611912878847185810759402093705754779214650150929764769075155317446567290243150325949550030321612842074689462231507594078371314953209678453556286828299956940601180618220294837404659568420696773564023977572831450366275948246987769472969729248861934182073564059863562473853133599896379531838889991641058873900696122377174864794037058381522880299950777496849558561474980845677595082267457394575035752943541131309893332075214201762673060004598655607937250908348232375596930198627631559789809453964830609732695102236606993602491955656822134954367478031547627826204633786506059378587074478901045539844168707193206861132957781314224633696723050883269292735454367335717707518123061936699369581510783169251100710231408171607069324237688907917892214600496522519900358059508390517932725542756200615619453556448318383125151991220137717109839036940184219799147310232887286728343109650936069121342793933431509444316730924800345046184871858206857426278863217946920192471991170179477606644544466212986558383736541847400196135341934121402818357556160868869196328283395597365130483878667612230160193433453530058943939336417677828547116764274180546990733600243261165788113615241841972830634114305822719697667326680854167254890926480929596629881132192187168004223984071225547579388282721596661252903840049217106541646181019333468831658281820532373482483969018775240809441371981239401709579557957427950776752020690958582859033535976507967778171251787419097708211015998442124854578595979050117055938196390522344106591799759150019208975857807335121336760620330336571959766070464284704577964886549562456688038601546728213757730851430714951792863044067839102642675982439939574280376202625882175826030809879149558292106431022704001170694104686443970697239816331727866164828205500182297865899098432024002906083240163226077978947355769174995473756556091783944295302550417193619185709560184713977971271485165560257000844697071154221328195389794217106918167146676498875772961176639645552955503126348675316685866760606843350410424119026594037281707169080117585866989663574152886710751794973385286222816338912970504085956837797565800219741262456232380504050798090237104079248676952275746850517852332500179309556152612246935091400252260656842186104527459226981840183253266662044378366212867007466334039910650789153578270456278401109248207636130199409195882986294936716133191198781097409496514792315137514876042686117846956641804628584870907464784107915891755099208185793292884123890666137865357515900023790113642840020259000013745399261542988096389071022468148340753145543099393914324441991675867722151247113133121203512529475188722313320366906175129495115373558799626545810601604665177543927743625027444933273445684728820265083468928782397727297427420097022430318004120250750143784898474508593070375661713684300172894653545802848796914220655585480152713468340308578827971237959645537210279548324718575868640532508957433330404083357945248112740752919273542071699753649636094012466684000532785016432589038873157481728387309977125236529791827947746595726369487971133327913557953506913494121505586314109771584694211615012255969332448949219749964878212796912999238201604150279171827870757673307694658057339824181147063098082629778222458720121231238096762932083587452677899493349269176540810150132383514022937320700948398951735676037911405885437850857858026457379461318721339580353291381830618475721322975046463731845616586372889172915458062487559343871168039302654371980955338332443785606282382067099793536162730874497028375722473601355911995075242754571442249958392738519602818670630079072127631860446870541331555718441810911603097684920334828625918015538874207491146866373357319962297910394732038879983099173182275189941107076255256755072045951984681320120375489412060988252114104960163261286229811975421030279610516812760544553488458903012483941349245591184808924457194219971554834507289262377467028931336867274175116335539970830925452354108173541623184098304126744598635710724183982715953254480993054059431293331467258810758873241396513601502033609033200475991263204150471986016698537345775409358118476389408503100046211887828539456825661553182065260695209797299645474885102202599644363077399284492963044733602648578756081139181291675189055701412784302138116577686946669310584010603532681358471386094694070844730374098650496157143818140901780506598932235679650829859040185272404066825345184030348457863229487637224836419469201920423053222063147769087034569164659964039284397090810020540302538794530646959053526598454273015488278968479577308895290120476356277308420459092846121655166489782526237579398025486223332436445880072884341845812329861594078843932819574160693962750742411439419415703923711927965832982624974564213428534533853114327696910807522253241168742381890708720513149940209897458125966436024050469519886423563128732245008657955430546138355012180765016034159266243825091791583853694316002796939657652955036862561886302218574655501324493514500850427887540989500528771028025147323686333975782138199294581446253214295131381195886332797039486126268522131011233590850606808326910208423707475644083126606774546435736871263158706567524289353387527529711312331096162267047678819594495721717907056141633858430552533769446973672928883378812554045975987486878018987712492235529377153617845881005606559883400064993814404322393866611583746136186867795020071237814362386065558646625772967419570423581566189186635633555643726729251645616867563566859108184092404287711492169154731920287682674222429579307815634645226301564885017908550153241595947108204505780091377886201263105348080611690034983066178190006150658219717103818930962134391149858773738661444874009876317806542003681550602648846296785712306143882182817625581026484197919940529407255993645430550233409392270728154483547376770259899695601433449749354452462815431420613291101786144550122274214711014629976361999157922387756215726332272891101757335919033119332072338322520781369733301055485765387468597007656848681216337815670032063127126803434164884449197573217733758860290637054833528672020762280184022065190609979452264979223092743460899483646488783109146259192719183905047316684366867427550747828057646790612274572531126448297549144613252032958555430268662107326008706513736800979195850678307200941635232920832646317937041590911820670541963980609631368726654371164207272197516166068783360862924492097782800720883206094691427964288023328590269244198287470482214871136865546420796493104987293003885505257606943928653651987112457672238970162001496004469743594612637782635520329542324680106028708271324240924650361878170444884980243445793669661513664810920079350755459988681054244616041436613744413998337798417725271976739778126005320327052106190114500187363498842275822196648400430372657539650744730665021740112049065112249937295581423995899747832689103370894205594204366664375687112973081860821241873565308341437246967062385042906411366709461421824940946651528064814972030217606604341423777638148815897164946961923695400152375183727218792467699360092015397509730786724573731991427362364795056005456029339113188193299699142794110400684318098306850780610130159355561754206199613228996994928021173919202422610971223533293192271654082589044131149805286327185516713557961414994391163450460815565570625161656430124284713642924418011506574940683761719793566397491482500648921459329163731402582404825505992718587245186985937975286851789138962277324496683211859444932098610495766241360244218913271836544525519237181349649196439004651651512598993152279324289286562639807529988985607138562175243232352460966931304724458977084409970102166169467777139292079481206490064659447541981540450178030506484473103258368636980134046625547597515761655056840108523391034979611372769002523113542589306405825871879486882147051179114278080728211748072621950871648455948840259687398171458791109629643523904657798882139020817737612958246648289983077798205059493495942761719169021182886421023227313442909515382131313472703610483535516890752723730359082430697485373870264377323618497348884066082377874007545067485220617674499678732651034674587780650463538654495268839239280853865345038630162879341769271122706916320435490060171405239523419694291323589069506962930802314456615085903314803208993110688372248493552248275059881735782090764945225949835183759456602318568714922651370133748697572291508862572908210865435050747083396358359632951978825460532170588603079305936766445598815010243528325535807387495688861062137001574126188688332103163260474224478833772769303098603450546625399569153923241777946713740916068440580935910476694330011612970726759855567416965032563799876822428247810680503154693981138450818532555801211366599376537937819648293749968428699364902959835132643233010616290209029481257339233310671701362183133336647453332127500231815361670113195702430258721894891530650654648333934788450334398275662466676903894712032045674410406809140605406391574274826977335261170939905755142554675757882727822963264623339795186064287991278878903133991399555702250283704112450942082307025864548096565227398180017618646089840422089973053786766890986847653238655654810722888165349793700632987094052178878513199854162862319223740614711648704646216671861093988077023265507222994109926178789360949303735230521499917427499402884738725902970662752718149624111921290878374528819944190363892808539440282819952672756323308512642745585316588138411129620232937768452950019399462565670015515797555288473420495124047286230653289689768009457672253276298818223681881353101621837416988701685364287082223737602128313362326252351880025129468550136772766006505055922361773454380016532438601739918330793627785489666327945291912825069009623879233098382425369327780040453328978661283661120832711657463655454404702334880442334279767884778025220354099332880347310986498598692703428781522327620921921007694242701728819976506739365933244508304508525674426610848688920845603335854844924014773765359595418531897917259652554913027988884600822850920333822220523490269497620398694373226130566551099899953237570907968427272760624713941149321635706454502646611090709058282755381749189151608315341845546225090658313289932278522712932993745397533174306168580763303010192731675351987591257398763347741582549973246641648803823373798337264724431304968405423671370422358455974661119457912694332685895456050184643327338145740927502959521944528450593718158688979475554855643507585852645735538736416686012856650712659089076393754309018562687243988056161795487082382294463840727747712283536665712612522655876786252486555720029208798360641173061476365109541619092919808630421988379343853339709233776186096793055884680269627287256476459653159709826802626352596526369920504979785168812709832089362534039857755194538600868634973387402088798703482120638000930022235303202342840795575920488425750871068436730865898404234975563354369600250236237104797905920355171434423548456357463491955061141947438934332071416124780525311790233698892874028443984038552494080903028064984251707173935636909806547300640644846332655901540579467247883677720060838262171045607415336167823505269503184582402027715533573216859522611008380253627949914541947260642213759237022784533387019575100715789310968611012090813117575539749258289288132552919256262449028046739240034300720690568938245423839230491275351193311992444732997958142388977727106113292317080900719103778363010164525598062258110048425399477989949915704073768930752089027895429031349930838683515539176441878741203042148936224217169821870906365508328290676987931403702068660787082813508656693517566668900660161984099894124876084718523051557238968912988701981799759650516946238636327810647025847266334914458927210908776980063353477053292598197916948192288539264017682231307599132686764039126457691602423870775313562667446886879843090960960054677802462633501523804796085046519155597678064557732296635874550590519842296677353504432487011211075771786295628685731476735871334257359682448256135189630478664786626328506127420941750914909089053127141233513898111325069722932564489880515594982449967875639429872929244483689695138117875467939764952927728870612410227793986575614639720791410797625980088589591806070846390269383156364878216480201616178748054578136336331278606832330278786556292401928536404301638817750632021022207940442146758739090928725155418477346418387804637365652191444728834831873728940706976155830838724394625478690095807028904510092274984052914076732933719841535561307686419052290738747701278063971551654769424829310713445077036034074794298447326915251398067102219404821350227517320377856777848001809203568637910275319800744165769770801860705256520444623332639622009630233130619129655695451347401644019760178639126166388912741945386457266816829588891756386040146209160812377300674373325293449010517310082356277863520385841639542678445033626967281066272616538054595898289780121553790788815290793281327131788124081592643667652774156978833954342293732750808145896728607640113292764555583873182997692713780861638224919984641477373725840467421988490385294855470732148960300800375269177714457186937697492541612106088833586555495191249845709350505071875482236109653365018367273671169384806063925705430776018553253339555580272026138445680589185986309946181611171613353260314428244150580170654108740824723407571721388647772227867252491777173372270126131602231624180122266202277957375203671869952780561830979247543269688862792708648207208475295568416136101938324982568515166246769949832913822248401862910601274273359273690699462986637325569614430030387515459210963384702295448678761036417618090996823720315808640905295724987981401220782381047659224915584685160391115775930074953382183882147735727272060849102565218766506240125625647164917849297932407009513838877565051595016109787867585108238875869531142138887950541952722915137430091232980665346432833026096010470332150113116935991703970680685126713993650504014626524682698428668709682940114030730746201495251621076758874443717888149542197701426541383978757556702255128773973463193496316511696522287260837161161823262412103931060407925740890055895182861383509599620644186647747922081092821123511661338739144887364713793123402499217262886296755310614001524980448503395113048035292568769423572483050938968719329584656208702809668262432233197374566366343803815180601657228286456153307916188184871585567587822229694806989556622197615006209689986258007146747564420138765229259660224971990491869846914285954559108506406186279831850845661688810662445835448441126809393354110177963119779070952264993826524771558408331204900356505850399783609732919781044889976062939938387762821785343107288515482643759794215748664922790049473768820524457462541721870288105154148498578668807475331234686138712873182373926403918067500187543296478220964471251024522384458376305268877341649380030035556548850784889599452531082883751718571114681872396234207897139744330480413463314917504788691203505515621253977319907027618767270779786719644244441232005550758347629033248181271827101215293647627674019247077537733547686113172538292854670658122150314017153309321834539137714439309345935669067596326912064990528770818409281082887734802706612201296711002395011288842990106047173514802655009884839704473214715089969926574184106880215583265974068043364197376586775486118014025848283591054707759904885009104221710802651322435215748537753900681213038154079138598503936845805710058149290819959030346715454291004788409361562097904627988248411931988600562575813937826844512668574649428163780411806451298156633363417100059367167575406066693087628882715418838158702813208437489161131719194913459163432149496769002808597140873470493006364042447404766763301246429295114709994057630146542077480905884747831849951607702601436363593392063220435740262587358846146373831737392719921432264968800956311432927959112022887540005211879480884369874877447367607024820396442525455671870805662097762613079876797550657808817212029513204465292855548450460636191118851714462480878179018592091227167322333017844088419508092025754187432909186895427196088425005903295805344533538756457658804835442660070442042260777355407251027689163717120843386643880221466516284496310138953267285032200464875094513190885254251782907840382617094750952382250680306494618483647944303277739942183680681961719656682110968689335609608424881010124759777374138161667768058561015151262644109704329250002299188351863033464002251440059805773436013427052565178334902680376586036557714433617470462011232301141177431483050338107194926997003763896393322029638624310383845062330782880440694194182818722230867254008770712083991690394875110005151608752953159253501464885094541811815692284335454994801836865807783084063709107108167861863153976546562672100511177099109967145735361552965290745876418780174328408294321173459622556643283075019972776144809957900724097313558060723359840330946739736191073758456326437571805489642741591058524863519078816551589527234680131970697046957612282847971810664641518148333906361859438551523575852493107825750858510294852099357780804553390402154576394341402763692980898978891748003035241439195710604132452743226002671776641013348940729479538140802700644023826851422792176892539776205735853926825421190899110419134074238143538453411029716703585410612197461585370739459330759893239399799839787746673129298452784923082240997394444971814918424498265679736229424293997497212517819751564285069834252529597342641842700419709943584189209085412727822985691112185330511180251319362669663538191984904693199926980130560944396375198973413160744508985420733380028064797320155993614862238414162210982009456895454020385399907433866526169374731854072475783548880841956543197258835859242271580600087505261069352306793486466473917173724219273553735102086762736976939329776284312373191785160344603376132758177391770413000538865902500647216150818570546430096021615394555513526310588964842964543794241828275434313526955589525232853911117058450760985429208245964070971397753386537683597060019433599370092067744252427974650650764886867974284929215277374205059651813893290740960601606525859380798607135193605646008505377863792798975277992391752748851107401735089888681567891777376321601989690555865407126316141559423450849548907698878534105280168643828019516447425750584005626254382709494847640417783331180599746845329381499725024596891528504686488356523663939809218716687357719419385203039755931822911637246587179015041182125054350988067755130655935684274361327090927031045918638791297652502148924121092624684083244636410988351844868497699580484422070307512406182062046066009486743537715063154844899916142401431040547225670890516337677816477289625167130192495361735292861639876017972881196785599746356573245256916803525700994482835676038576059562262466150269798993149663629388180593385010366864048165900993991535044050361588151581043291262053541723968448302935931886195856893894529163821499272850522946551114634755762652300558339391693286726555063231459705523642615884448290942430607586569661339437588839724985209849394292466701559099837205265470478313582651227203399216789287374599811579427448796159341209953681379150664827195456226668228619296510122655996015502618325058573717055700178181838542352749200698968016229542027275580738457981407186357572062981942743860856908358328180617440269553869974736348118221206420409509802858709854661668545276371774741021653813753841343861801754958963148303874677599383371283041300384199355505260076085676121084419296314695722951582549710121987559898693903517393181419112059216928875144615402795243296947401004950570922903331848503651476376201633334768614924605302558031463495102197664976615716049721080930389444600037074079330815153728198193134494121227445041804920007211090195700014827836675798208721826812860754265133074022423657149902572040554920235416936512115140959939746136983738940451654003721229701362198983275680016004527156200432573733000666304851585508010076660541375046044456271401269496086680311119142852995512123677279038489571857537013608675186803423812902693110069591015895804738296069810933882943973971868369128803608559616333433967287829126405027964012814490759432055390622081183705179484595689552355763852578905350631155749226088545611935530013895903426444708184779607703204155749056709648943960626525335827183176503448770332284925476993595141312119729267298723675204950621772986906594883284766582695057578338954170464283643313741589434715708959178497876044894296728355068317544127267021735815384761995063582912587544740616482112417431518124810233814522017184047968331965704467017768967374137475782283717114065495578079302036859109471546319976147864644973966947899822333419190391851753902234048543961428477623323941215762840239831585849173564453913930381913157861067036589452810750158088757906419539457989801178434985491036048572747249230133910011667417263026150504568877965870946532003715104862940872661201467406189960713753029488190182898295116074106821360608882847853375901659878807302200980447985048332236264038325798650411350995425880326601509164761497394487315074950454474910487192409916318824490711530052799417880875673162965931900150043451971296266709464216832380055354815876020100423595788777143550627500635733244935469511302144467345865250407710490142972357991813239114581939709956529090512477879488955587103507593360346279803580775313273426478385174932159313911939515977571472795389907616488545165638677049178514784359134816415682886652050826129385399624076007817986301156826127838056002006218311336049546626359066716048055472375725725082025505901693667171523282460490046070178057263406109893853869964007612775103078850191363861478888869473612821815425435727725666196101920745067488902743853295031067808305058355480751423305616902736394223445772286160711974677856133083197535355506690055294263944394583684664946255638502966816615196274507610641695522135793568225930051480672628687901557495482012858368954984978794185517272087492126927904491172696352013052516440460412144895789730941575990432299659372956260310799430979932953886941594770088631915136676508770933807001181591742704050207236464907937664384191295240483083890407439989964669425242073497028094084887432764833822923759568309586317092854709525895076785927673974784986806567678722790259083762081824242143909136750763193307983483149774873031283575119180359985170088274035804065372235433489689269125368166022636779098347747656795866746794731811518234250964105390980033815756957411204941332200629891058706511407779035962673804210671116454267870209429381907382128719786996267145404302929371184888091090427775380085142493700478790850121980672295541596370223741825210282904472001533462318408092290970554416244327638559128001040657331548392704631486070053736715373451055086310454758235446301211448535148312608698415881394581910407487588443172788497384426682094241891341224136181155638638895607038976421542837526516458520810621367538935823644158597277708277847018386477805957298276732314260048897562744343271033277384453763351070011933001534558579981129785263285074411503261865889247339714679375504857599523056055276815253734386589976447388383405122750605975013126967181649941442399262024038409059821362255442185754178356921423543275551109136403002365993826598983201972805947680590887149262065024448033335418308878483868785813679770926924772544942631397348596961098117093658251010174469687355448441774332068257739523312547933002652219429660068415923816312248866184372122694002218381612979580691406530040621242038761011815500221489546275173051996112844228884396652153749803631672075490040181836762669407906771143360074072267023636709465064308696027076272938485301200647503307225948245174287883693777781284962978879856133942129704472626242982745754526387170389142465801943478302761547260247135833560480611279977425860979943340151923025905428057965025449300133442689595693097161824723530110608639200793978364384669421355818969982597035213310128924404334421415830469241457739845327729966786313229114858850089594310563185829583871267779499030482887887432661926429330159636003199934026444982639364905413115302150096948548533027321265929190594389883488649695012004166418699371865399361029829437286343144267674205304688357463620424270341410347061431979760090296368999958238383200381415336237954781367519744752780633847965273933126665117660072538849727236950744385385057714321290969376663763343356433818360780448990020773368483734324710932308718338360587867192341614222066184013178498227773808294966686497307378782115893942481656957774923346737271067168055995240388237319423833567121048243016594871329214451568535167116249921935295438135216034405173098113798412394274852795544453983690442089050585468130462312669465111706430207771079066118874691055846122558837901326404006158338041073615514406340893915252366883314944927572810749962543894432685917823201952976980755997286923467828863715939996370222435486086857894756081306608304194008635446024940166214724485928157555096564630667462613911038758264803305651386914691565018925573006026607719374959170548153658977252478725947895178539641669183553269026826861530847586359230315628213438433216718673651813178684023157414758581794423468445022914397436315563671699942283191756004172103599525557210722892926951587365062910067616655571007864622918340663230640339225311575006893523367706506156513826524278462068537677186921870434486337730265902171737451015746641091120478257454580584427731591033424607577684903841373165528459380559081141965156055775605665812348008941370669150019039617563375652604491728534422941913367962437006986998507973935746610778973629768912113753455044688166935789574713421166674619622161583642923793508546708746778087125437124456158403095891742810321378726869003810657082517204730073794491861901743572460717212490535987298356450389280172910713713574205070396871435088384910388464679046696988597312939995097486289995577684987445671726043896962985043569312337490251918646690179391317113730827574739265898337652871854917124527678945651571947229817684099476492968999993833344044946181221611601017574303446328682510274678433602417847004669366007174269133851803088137573244159553947169361946949776160990345393582141089648013672259597517301425370283087189372680004105434422328129038994667797835728143044711242075555449948566663291829664231028206550414423428587465972680979213185978376653694564384012591338856524668332487656856802747214023413413333634026648302096796567703529772383685970248079839694653434557898542295335856855241882210270595369829954258089319802917364296254794809925262866773678931522986213528555039260762811790627811438894144202665271325813292247421314098580929723299953904873097773394056156445552754504142563874241710523673025978951191315510936625591719776854045255122673454168476138156147899776245681711042317840306835969718924652551106057694613663602137878367891726561776008782920347690834346388212379374402905555494813520327685868038956132316367094069385172125727611872514706666142344107046458867152898625018504029078316774564566551904745858391486268024802795784166701898778224617082583017516420697769714896268943787131192923106670295265139181085405325125868394036850052450505351886208788793845798434933467291481782056633493380021501724924818850052471007231974273707166416150612715484703813589671056359577009242919135411428272252941499255396211234368623281669973666134503526145000271071299166729130199279641939726908062771257474674898993183288180859840616534017245476043478676652060286815062646730237313939663738936319622042420545608396307539939155247178275119767043359331302191125538714643963788676502502474485194349166625475271203781942177257138900992915758761250424715485451851495660724030377851451894895184045158317175181460862690500324019184265266913366845319431202592891402388648620917941870949677772549297708605766928787443912973649350111253494459684544530419539133015977106781459912817746642183230861787224538681769319971725651397834697045517006647324906573237452646206014319402911779580174172969658804323165742240048697975386199430876879744715518066788034595335591703153988451420783694874227901749904489992758897215131769478295385150632546813485586086952784384171118290537661216183814834818480497189328961282259697043232229245020448640777269377091425110797664699715541438014936321643203162990914112268492714118646506419595777953070012577402338458200640307831669930472060994818016981320269423650033705482470746430721953356374746866469471213534711157606739821321683604065251691914823349168722325366273748547861528411144562331739299602078761456028629921559030920499895219455331153575246874832149489659557604858045250052122799117893406012875873220307267276164548430277738046123104108597936751594515383519637675065193448177233627322250726476916601895602608003782556606655881658489390100500962739577593055047712560024632059322853372073497703415547353845822015622390919078326025516952447465910191333863464103340746211863995378780948657445654813261571215702579777216801978849074054105457119850305945680974599252800759978457971054990658131365403453872951727315508294053049229428970720737932740154471232042008682051862956471936264145669348758816133375322064896015290310565712616634099768886069236790428727689379298296373595052108109841282601329204346030114987580557707230694876055462978259469724742670924715419610264185071018203155038753300143669707963723118999998471673840431643359575980443152852712114027062522170063256381316781025202017199135234842004507798032123763290080176550660659311022087794476547467006451901370365218576610952013483325373822947864143554047216105566814601333081636445494771046033933102414561619234666696455183328940910965766918106326472530224462337328833114809252534392868841149371474592022532315121365926847216724614266553758739148760919251312940038686572402154843557236281121641298816284956697104419252079298855072775072748903006318550808808337313963776844853979880038140725805483148877557299793061941911943398351958513711439675762107413610914335226074792687969103933523726302598992846364117130290665798285486688821539955599023014569574251908713290293853498013230716755601527195089382690995546108968362656633933410861477363279620392400783899956850165575009016845563347628647750140076224377518902849924666849011685629594277490390656635685776335696506470244427288049031903040822371955142110480614350851716062090771945246060988743890823159107383603066816550452560446825070282827088744653588040753257434749599321367468300080399967299347871690236068119272358332259237860564338757970079119963849219839967880760715496415081941522367656238391442903910396892195850253605350727114999897883667627110539520607010746518430118339876056122527174250777496662368985072135158622804996991547822609031277955927378316464987512855252520277190529409232224806121220424918788648480582585322728409425582630505139546085389301050912996660919509547129369883689390141526636971227992319483054575708763108223726181883768924733075726495279464230565873704924262823315874608795812764996774179222970428636760541991529279326864415058344746503584774903084819152981439199481543002242581975298925888724836710639054474510943270242724907074050219914593965884930636687023762068928471008118499406389479866168204199763431330455713681530511828212323009534757279230876554176948924780893762992974619035415858779003132299922851380927822994166732379027945195737035444464612113992493595906933723057492496796553755325755608933319540201333775090956947028630769632625072494038011052002772287775522163194596909930207901134988331846247902250928040677226191759973910722389650969373251571764019474371394703380522796700692726646602457844764352752542209252548072359329293769734565043907328435559861788862856227686589454288491491084056793607309381320260911389878874449220012640797026850436189077479179588923592276659071886706118388858250639425945468197169896596627789819163457537498410562754984676310811401049586722586788630546231471058724948102766516496335395483209075599945152696295344042992802287123836436555470572509465449491718735947687150061299881502161994663391650007272534653561149816753192648541306532715347224014128760219061942433381245872986661348343614807350312190325940451874977128248122116202181299239675901470576823004937152921927588151204601917984644703888038506139317071571619386167932816035037943549706452522952077497711236084302450907011083752287078857886890786857248541108278765065499133799144889059170787372097441071549798701570649035244737036528209244821004379728241897741577689311292353071231110929761705363304647435067005403750785924399922565153580287916431625743872304184202233352912670461103986440795393849944546765217648901386533542948260560977497180827168646765660642928207523736031365882728039248970018273114292394547070619618462609374703887658577210907138553920603623462382793049163184770013304113038612860488527255613887963920767430738259449005627543529881772725091672647036054214868038018266330404420669963749740624067716018885892133158492766349034767004374491016038992837020429042459227822081532375445262886189968766710838215561362357939570274307029144886313410419628941400222126990932823490472226372895605286238965006308736044185554962479407491059659056886124997395402804383110955188769762360505569528997996368605014469671684977406131893953086984657783886447542533125819959477586028066080203710831487786752262200411274816759460501123694957636942580742504736408775503562766282414390362198346894461679122355995388304000601529362908339897626080854908486797892180674121542085841240344448238979801865279252883401649478820041306304323441137667168372325261680585039835438770764403809829981271889935565259453525821588527297605089796131657902368619696059670812636184846607768134861439539097238227483924985856792014791094036894378707042437394508635536978130503950656338343381119072343938371368192863231422348199920783011355500434486956610363663553332692581391670545975052741293371271477430480710791337262748667897017175274928690791741716621521535779156384695433270509635568636566122092052354082985040718638225487908205197731863104627758860244955650057772243935776194080773169361812264657159147201836201163056954981153680174541146699401710366594485586145760846380755955677333117576153217766887061108409420441992611485310706607132544137093098343174189824374931239715144935617332659717856767757131245193135332937279314462547533500936171651920833901530458667289675450012740034252799096624720677403646934084144666085583415623681622757819437184052407580945616695668801429673632906787418930917397923131968998823330921400057920185273848389448326465075889995149119159011551656940341191226639530646109605716822473080517203505517241364222218773102842212390333368545839743511169420796253134700563543046199824404274245181001742501947637805467162507804458155651604850695928202338066786776083849155870944053014919255938350341838930864064592492482041698078218128974490061885543785993585288293093065592364879866512504599408155696430976482511323005502140105083680016577597919593825001561727155720295296529707216488420998276571344998706286374260228292970650155681156630747395718794604943336237470419681914456293516812562931923864788921065153644514309988636075220848336227299045830864345009892802636400662945624104442796970521930698475494601665867000927298714627337232266332714767452840254778344873732001502377603324190463302317405251400934082929203575695636453846293829540356331096534323714684388435211955280910115810925868453602890033299972348521253972983614290418117304504297581454122226011696142609146473545182018120832665940982615016323851191673042482585578247709213315245849736229718281229781988462681628916688193959267584516855747348661195991287673806017094480328443874015803134219171619200269456970707676134899211372531354417929623240368743939330780795071200493501764972509834453955565647539049907579045744598499708686550860912850339725147846341885307221256241862358334545390463359528650635527394308652617305516108792921181294600865195143873044294901906812137981470281529691716997943728928733169473096581036415418165961496547901887924969744044073674223438282983273891648155757658550018562856983501941808316130887858730956151045159653597447900786960629902462819066534432439814729971867163434358941107576802942336722106248139991793609730910095392793271610006988477620437678729150848254596699677646206468104621874478554659276342874895309730460812097321176728116285310136347835765879429309796375739702209718381971876168060764141441221692845315628960582484446287091334323002643231129546195182509962958549939519771063978623163794543403354734775210910857378216836839376825629963538226629534210595691830376142091619593083920486650141957301592125872468562949546922745317607435845176579540341650120053355749135171606697430451659331985991541615613441942040312623607900420929342357422767445433957236124772018542564212572319987645988588057002004749203644460071323256870653045260576161878737998233767948378493654847045502862973460926645916623440223301412957112308187722091003988309396076036938751387148221921393187629273024030722311298510049184141447390952443883458073628712317882400318709354092477328798662377844482936209484417440253385942615371352552131305942483024368443960397355328181844106676643547601650365042104643325844337252208644241705424344399102312252937325100842631009445892233705430662745060803967852901276460972222292671696717305956505211434843946899466226608155658460086769875041123460007280691483264720679853789073328536458329029907871406004551538741465908781125391940443192768809296830348575664660696571114125286543852874121639313403385632252217581028140064432610580562677556993931374863334618427677278814873983458540391560638599482949993396468731266939796206235859469653828558038406443891414724905064245508716148295473965959325343948727462470465493095575544962347566171980585993209937676971297358220862770439042713344265770702963090454818772966640416613414036439399365413861529125634886031982145750875535706890905509056659252293026807370681759207205437360110349608723468322938000880720095381885907220041629549168884228297102967413190139174106360817200779373609654959855545401494747941389408748544942655460170275421811595135592374853145764147344471004483879253900067706319241416664045499698850751947332025484987703375499343973080274011309804613238073864380889698962926527120361429536158663937997393279862828874257649611833602460447005496288360485995943336689375273710506648683264977510484761055461849053422692231042492892113883453967117056285372927659639885161917343868824451634153702192807798909091316847463863679837982829968372170460698575736207024107070729003865928327174694641687503074716322726125122758255619050999320497062072734419509947751344555352571392302218713827347020318336325161512412463172993139854118082311189264421663885739427807306683095145290242603167347307129782960280245274043357621832397419589817272991096020958930088900748513191067846253702388657691305241173226173235249475108820475038607058773592332726076193144556515988910685231684818978319858819168679862345791874496341051691269407350282524595674362525529131928804083044494750602813761644430561376502646070135363103691365031847980141217544676002113651622707626244140663190597129151457632426703979314187180449446045019452317212577716574551045102617453593680489270563606931000026189243874544924062018290023880338238873749762881360339024897407335077372318518317527800725468819531074620500307690941329844668347724141707360659571849894195628879701034392900477833336882621458126998656425891401641515382547479394952510370185967155446849346271440481999385153516989531902934271467732822746215386019228082795327569464769385874021817501765256631316996421887903477815443259671685445709066136180484884305040836479806157205133776531857109121859023710256323138384897458706000550719472596761467608836569493430837633309461230567868152481263111805290505175837533890639587357486297169433904167721903459684138224073980711390945576270710757586491591729855556055524872331218043454314714256675816308256539804557469108674023895326721727835934331803964105095712696099592159821214931344208262240448817721668135725814631812483632730448407198483199895933208565190703559383212975374022797574490882268230755928572781463852445258960412049743685168174766759804599901906227152704264795126926072046216612078280368271654033816073011957823205823781141651527346468380794698452890535015337169010298416605450299439852636391654828189180785877682251949722428188654739564975514622226879044613485263112755136960285927506252376466763918009904267531650802191530929674517783708538480997018712815132110530029534184257346194615450058891952112629923600091737475190375405166596531270861241545514699081786866024267201801099459299827270862050663671175522113024253529520675917502037301869778999040638049570108816406750416448235322444957975585683260320379864172914107523566141909246673100084761071869163162470150669091822640489055099674937826973028406950087528442266052009045883055760574560426275415812525607443870315521250046486732974785492862753048072780027999211333216247483763471272659606588466112627117431851080441061394415050864709714685441729203825170476014124630130800889771498569852569588775522099521129045179504763298496039476222276580909347962660928463594686910574746438560634149966632662196095759932349448153962711141688879865805298905681481166838953462690091911928638250522732640881811149589302172369826656488661022988203529284699377210888811587073296369004457251530291543020175303716669741559792529623872197647808365325377938232061836171215430834595729054348509094759782562634271637121128459017656120732862059976943134822311632131650566209672758325259076449757176528400265055516296926009693342434277108237209086590166898038895644883513298398960948340801383654435151227417637958695673402481187095792792582903888509279454639168763015878238259730555890440603174523876043125024530697050813857335819385102339868914866660059007616482495991937263214687385738453268451604546407459581821286694441152409361198727028839148262303908892149150662522861865043173495934752321231060324563639379421343057470367486988696668810652584755486256550486843213266407957225460181136460750399742421040835672719647205824034134520763257448080049054687230163176386784220890368262793111272184032212249347661623338040482089885626414446500818579137668067277331214631278638535273696184787222278007417248686895869890091253376399823603193527542300503406348138827719776941261916499414739317035931125628964694516302221426846025640930666013959449134257634234115778693089017838540185624902625394883876012213613769313346143546017807662299493253701689008389634116964036432860867310909328840739889140972926504558679858505322792725961345711283441266864750503633422097415070783529125567597437527495137445029010928038885140870032124534236418564374116515620467091048271674721587764957574204187010530872114806060580101671070109887915902197508816319898914656471872948960446173920014451352590018904750588698571968174246275198985001835091968454978031435141918752653064629609460403398934711428087738679185868425232774692775735735486945149315735387129991985270510727040769518223465732581193748268904521985513012143183490318415144755807592335361860316993989929246864185767915148881185321428619960570162605594187565988788042740149803644508101868108358156318551396910566816372084757176497221796203396524388492583649610425794880038642592677087693005049201767614933412917396364984592433380787806330631174440822673084216697857173726677552028178441748396915620975237876647416673907705763765055249102392503480816097711434815787479713652825861094928561667141317502983595328114996746319399863208818042720461433706136109501073176814358558371169258186206994801057079927465946249063487743142713828655219328901565421405530543495824186683307538465892676763232491514083359871026420923194525097934114937079948277654778321213951116317444290173146824366845749943066794293518276162191703120274768449209207677714580319824286075185786802442259327786745768432742561489547387477045019950609690983957105614860348224877244204214072408594997706175240642901816942749842409843019767833072641005667501171779308122179750919912651704563798660237641988797888638241044998129441360693848744151110590761430659295349395809128447334669780115832376760991745483722365349946588559590720487904854073706909322319379628155149991093290394351194031566211078346729818919550770314854734652007215478995908825764924465211877341906071108596151842303745054758021851875868835894942092899793225951319414275899176621349542254589663444613135865480397959872773539720982558754473827830658256048811490187263531878516208145985644814918957430935609194403307649762645938978860947558463323601355754447736037927578324228144247957159974017478902679683398427860027391018688673769452562854347820144952459430400445918221952935454010585952089781186869175454882748515810860423215334115588386807080751552668224665048808353315993672454554806595629838507455523684202487220551933238729899552615421062853429508005355235402458890043930672687197223643775227563991251626780179055948445346311770344471553103171192329825372469746007081433179006222451968746679608387111520812696906133214801229844260604312118550209107907471476324542712535136661137651617980401425923474415574437568216936639515383269316197536637762429479278468894965092454974481312871587704063561637443653288339665491230221956856904010749293464731677530633573886547594848869456087217807263090555463414492917766880200753079256122266968646193753087753340208653498440257465395759220747978755942215314838384811162293919612348682262492277995408915692422706243093514436654094378139420864605232834544282488146155111003618607287529320738048812209859910839649202591091327733968002501643774752930154577790812878066287741397645408991137868418784433837934883912585559221740661196141571979622073142596295278794862368054638607580666230925955682114858266737999589156820898957236195718246452564529764744081101391980828071901506157342291233389258233194880609869177866178925025996991573620367471932643583473463782571231359671568966501995797739824488424172683031421032021001243738585090515690307638164791692587027415303320015146219658225322471894821301434825760006790754202763105042508625509430796641086203046490929470432510050460521935011846068393132648816555820825307499349542621184658759719793007304737838615297132500111171750416610864234578037996564906992080134004224280995923162877957271109955173194022229194256796435198242677519882643221164855797727509387227638289447642468972993931670884542714617224993744426024027731936800346943559691357132409096193645806984878702794318550100307294530353485781604348074300352231919479611670241602369870792443462071525181548288595633379736515940198566669415397242808986178286821302885066602820350358149633221652281718212136288344456324236925789150689770831609897074609576191957329358158105069429704658420892894423455222940821223588861729262429488618261542499586519796017496908840472753974789441846204045025077168900076172143927856602396248236950084478932644672134549384802598037571851847070832997359170353317938746139188219164813144698087496343458358389844832479115521596605300565558240598323225120671064124274458294668849517795161594696817586750012443911142708941831481420430744487987320573290541630534344984534442707938936382736991834787255418611109027123406659784094441060846134794186884348124851575169969192850388708932952052378593542782563484766134226722398875357564049318976650485288828488140565152620946963945201787783783215079315557740718754258924418360115040825246941522523568971585066608854829430177097972096148807754460228946205093156797421654780964069186038105296207046397221827478810869257988149248234637737005086494681229451092921899632450838498985797663236356239329681221259916720626920594849716279310225480530240681019414576759135668901966422414525190442684485497187338245182114193758232531689408473088475576915775205224283048956403256940376553373137792672657882586063100258938015259212658529646504477455147554352366454087478573347452680648028469634423843313054399279978345168460268358920204919241679365035879339637071251641191833129520626437527759143746391114092752472182437575153160070066916827551458597732471483571618621873081687865994380033413211580899101123038177591727885665945066255713570251039966331842390516340685490112976379931303306527855315492142442156583429242942918468593077127020599945990097767601749938889092573592788115954404884328313523072711017786219079452372074785778130010131932840609252105159138692340129127773168057432335136781637689435882723127144858888564239483301995421415364385394291227137973865055482784320030666034509222959202914122467092303231038044885961580376508339420911374584528162165711758447987685036175499180730016058134812988077085599595419734974203106509265829616615483344555875433824436648914701749766238993522898858206504802635975281654312270671682249444134746502590166682674483868815769358653342677555309640210457298824002700836842182719471084810132562826493343848864163498836982162224492485361463879128567782269333586302972591366586668402594493857967122894602539058764261236867913520085349086648945027737301518962807600223740481116958995388579810106316845455496464477960766789288328350866505451128254619218091314384482454431273373003068317507287263078739633979394434077201413467482425623000079835834632349860860384144853589611416089324300906492207212670560537942362301774348507622219607319686058051762899353877286733708780237974035135100935742505980680746439329092668933505039231360359647801253709502108806890795819972380932764408401182300732460661141556823909582713596637850790455618910140494137173898482397356984617223052896122878211264533733943026091171323437181999800101132184864705924592304875697953922171154157235069816737096767920787861277229098379484524392546087915604745939946174337003401362459041840877421163731412967673490595025741067230107191291218944482628224518467364092101823178142205681680005334254441163579146660900581811265028520795288835320272534857551290633229388820596637244982413305006410322396284809050174987759302558790689252270511875215600608776265055044750130271518716766277128011007943327373088539222818336096165701802525932055774639739489961456508569840938634971359400150285135243473235735843729449693524425498008184406164592576993398209896950592561298182164828159469340406016156381696235317430392301285392552390669954925145702432731663021295615791213884662060157929626952551485391890514808665556581198067347097671334819126571425346614520529477066217010240491738201560059198415877358914801189541490700951131044036546874520053661526202595386983180474091467750955381475611127720573120939242791427203336129096912655465338677046215472368503001601502265134810428711634204495639238544951870346734795812677015720490651728740767870827456508284539837970032312062495152420785242443097942624156526127713254757022274211702306699001538477139076704786673672775656707217878365806795743884049570040722868101316415361136964618346556464637552476780533792736247926406574430366419267620803821625700699674309833980031484203982560458816449616397911360051049512181143467566319201589862458282142894117251857954161943536213184559790807568716766101537896202163054391242436593121105180516558747555980423737755319433482356791302147479656123763393401602320826974868587570127513802050527815580277970434052468244040931828872486182251863734824461533816195352064589348724662976539272753555392249551001552437211863430471794830380170720113370565783601529222015229831629869032751721275765926269928079586106623271340770325275261017455657762119099092417142845997244147409393057186517099905495963333954646744406893672224146783756042355604801041303373161324219232222550502468152397191910565418772710097584464688872915525478603777715592962616774711769077603902149711508076381358731637931037904735353809243721933951999025742131570153312135334589448108576931691937686310659131533945789679656218698905495210115614442556610321787616276060304577599248397837318020434866440495921194368115122244469608557968604942120715236580113390993428370026684703984451844821274089447443430248922013414734219141913271686378177028816992403289394608645255668278553822607640688885371886333211957735962089343365239544951731076262212591942588532090017171665113482258941884168691019670059656518020832361166682495682016573233443770628815785767347083308879282432053299549072880983718364198746630578568024641898892203048667323364326457944282185923913081620768296667779270097856214283212057797614624806127030383569555045145847959010567321221907010662904999489011139127396197791742967540070653205358672712202976188087140054187364107702774051431925569096563635001976509448498028441463571792484605247455528674295300806736692880605506949285973326673858160923732438794481305856415883619036843004880288162976702218273835789391061521104528389273591433046617225203664508968778619591174074450448658086707563961731919085256564872182937135369376419538783264640785570631227254950874323706723568693930775667876509365401279998458740328578677269986343248851199864962269278716679286385114640441527530016718132941610194517403909208287911577470703317211441804995359618466442681219565491356959545891285438497476287584709936361987363375431707006021247950512146845301404492802250328765259803419071143427534118440527035294159999765985361933558002215220516722425589997336068864442139696426570752396418335255800469204700120124022821323783730770466762097135220663724521171981253738518549120910163230871863345669010237380856567006534304929112061981510968757421628219128987789763272351339078729110478393044304266290350206188210593204653775166167359170452807846663087486715159751919519236312917201254504736467932094852139500101526529426320406174398244000365959474933981430508371162179934219817239191223393685077179299289370462396160444580073557802671580438626721303345921086726583623327287471784563238751789224657045219709556653338464370607612939783090679028961635925492669429211625427307816561759629509473502181492099702322242605390456065030583588895155039322339372019885024555714463191596840411941577341089630950728716746382503398281814138305066371357149606726660755349287140829744871262148959794594545410756216419364376719318594342437646359663701066209995978310130557368310631939644451675336783892613479610424962771779342596598095975866073306009911193338698903055557615934166978389047138554154876900182509298003784516703845762185908274467333180540801966210213511547869494208468260250083929604964351689791815195934717525111515401815209713635130944310789854691210678860964966333725154982729096927200222970751669707273923625968897814947663185284559933439647448158806178963690868618900434448357780362375907464175797055164545293406077659399963003316014079034200386262861227725770391595810777316989739749173768176793399267032281908236298103272696481287594182898395438752885468159627660675728262080942051283627711695092664763933904114361397255372785024863993995280783007387110116640709012125825282073164298736723984529347242102541163366399918428704983806958298291710487869404870690055101402074162251714151859256804221532273688348558620497026894028401968590396817829201918016080051830062489791874324622858815010681177621725456958524471180093692268148115898316837544193039619218782184924612685307405081785979336282997837247205591622676603603471088543690809932228262738532104808725004362238778543550778762368706388070656667076574827937151684401925659207251899585377200795168212141311661914561775535494026847627652515335743328566558908179724074402750096902157315772794182933803167934970248615114412698297990062838613201332102323297395223538793427164385041573312030549204932149930308050196901596354690375166327591543727412930878809446396071930249606579881273564976980382393997181780035208287050004231797560140389989455367846677360466211792607694918076221038159983295621972570747042628957549255267715909795366754741720698282800237918422342133552690921708731937543223643762264940466154786913818838670964255013946546584682225403486429915083307557150152260298328949114866561246279976588281069333059753375178270874980549682397422339706895663860600119077563595531907342240327370626874643214760996521885280816101166013240964948317514637354818406146971792294777301459990812151635729628963390686370031443777017941767750631039175212343334206481167823412849078687352976346881610574464878940503210683908823459595300204844065684243857536926022573423970985991966561353959941704262084132078417176038983565771561122838631546385174737808959060165510696262553822821789416209075633017102130051497684113273291691913091138858383275400855216541588303362760856620209004150692822925615748735562096911985449912947820217452494216848885689800356842505953174260536577487952145291650806857954501792660352472493598586332989940369175797062498914379606441109651368420460791919578987143633247980410558319944022489535257679248708099979127579166700864277613459858548174420755242819029293700425290406349903669615901724077895313761679853188350572742202370869364805813610394980282336952533762589502997725404161602387152967963833261416558406094149854352437849464020725066596006111006286143055850750080959521573566008069547078176392500573310420315474999150497892743680045393324408309805176956523160585270290741538735665448981313824261109235510644744673743259306799969535952736744344474017326155018939085756686977982596791887824597461133645219591508007212796300164228936109245583949577833809864690376756321459711430182084992027493738889150836068203726841156278624998300556226309097099169982628991995391476998357110419086258442635932671240260967326328898975132128099673256610855034848683133117079182304968111957526688533010191134711052632619510690940684501308741403805735830109246158669496798399374798880699105527163079605894284712632145313210236258744499379962385161247194904963287674136994334284108562987443751402447949019049725692419171392443791134796958022760456325142118338176341764124355771994885873826374638372000925573146476006033771444615010315305439317919090458419737468375032570699449844640432830951593863040421279564028043486060701442205577116607621428610623700108202756194009703603864615034873463756367368722689618255039726226307827339090585928794612842779022324956674656121461222840309701731607933097849184942887775718886578919853460835312811800207228742803717999112294156407040546939295672460300452438183764725351587713076475768102476732592179566781898688183387335146218953495262443930315178631719807043439530453432192927511563721127941556997201073962415396083948698264758531578350610375131434462205694498673317270258146006621924908185542832617131321025038712640679973041690063957804190186628765560160336150703433287524535778234798795863051760262217687162465896253291929791925019559082766830172216582764449074275370536940438271508835333844700346879796160613193635571992129281772062383755566958170606831461743684582291851326373823271036744137478686501678559490801934463394888674287880181487221415017265197048617238776640703234192328124376347677043923728083722849967428662337499821392609573748723561195112224674849798786644470779259883178772302267348401415655118122153576545832775117323942135191750832707767558333384235391591969227801927718621286043947288500116804737513931557180699875676913822236698898901065718698977864280231667149048392130488434616613656868184379813149650339015812365949670409368074140659623794041023035770563242716211880189533791248630060036018855126144926524696320049232044713710237364079457683658280738066659182339736187747463411158570433788743725017019345582273356146229779005916802349434514335320379464394100246157825097581624105828151853161257772905202082377487101468049615529315017500762234656444594802069583488295974464710945625954379924988131623691331461588303314969375682136730054262108190903764441074616277357762446121585497078503128655057238470144764059881021263576156181624815958817585466909909665505540413538256382043174377771882274274914238664214355147392258516165025509224388325926905899202775750309650539782116910983391567102319484516950627120884251147561797831509626940458034661447213031792276221254413647628838009577977879631170188171678049627631869539815682740107501032770062894897165654316471429329134991573113255541694962889241415150078508530177198971524440410621017604310752575121898141682466146569249430353617357657287005110136880431404593126910916440941879707795932473211785240814975918776732280513891560086665423048330672899229519011502859660121791390029476434027034979449745434054164327029273409779147395405816740515138644946990141024241666408398452403185626005115050014275073781564499218172018020010620984590964039946406010506349311166233248389829926519565794544866504985811681704767209256732236420319376827514850149935331344965554007548203265561835121968494125682961518632419825081088998186875370318364153973037127015206409923009861700486085376273361380958078371773725081306129044779286873649344460751532989505183327050774551043860341342798937512281388039976051819768246844436860667673929883487667566876246776372256986846993778691068752484900444468958802112955776107538858403737829911748406925349908611021325154743353116164047960500519232076414404447640889362088588720276108031658868851422613447042470127234096550762871725910467061950412217210187631238401450339265709385971432374412458803755286293520836557526704646591439299506524324247585260533855173186401143314105350726019275521685165636320358341388761985463044806179500440146078780713176517309343993617724672372246810127005745155775783554709829799959654790389729216187662613326610148916575455776686131339407584996955030619338092773635445835107389049048754437003621466827321694388431687226432843158549538553495666060384936696619248852598040275017476659142083245303102531460206279474469802565644432712436973053319385939465961248834398189549566517241901587779142803899095823307807607652150504666342490626018460307782045297647115614361621196249121098154500827123650422901528591996645403436363766285013719629988706659730912958077291163464932265404972568313224578712470646491763118008063497916978869825343704826282460009052079636520293977333126339179579715702156272616875547613354130956343545966817248996531329837821803608258024888621590762160683446784754319325815645999739884770232443562152555811903471865612175612326471619379096762644610786649490036748815756483025690185754652092052388378752380127842071464507766426180721456872408602026084401385105671904307275425781291842133808416022943626421816150116263743354095344706188812868049936213675645546697345215558985737266661293409577824283184846725993503809874303098978651323504733704484787982615800571466021328556953267371866608237225767963588924528580265664839056933691416376066096141157938387686606254816378808189900973559070975663476384855506915383080431221846776848200181406583875706917266274859302701443239957940158769074084739794719281691796298006086415985264462194001880626635437459610091492077546185862703808256428689276400137485428311544804932642926118366782218777038245717027983390173121381990842372016857855601760172502447946935819430785384179355576250289082540359872300192033517013516015004378702029057783162111441864331164694356074147466576811575263374839355734478402403445235524458017959056847082046640494966403457485546329372153575132968859948655615608383270086592664883378295345281152290983014304280006515242267932604684325415772088767019342309920778106469916476030401351164719711685479210053116048578225990386369928371172339634748008791521482739419605167471429584335273540841339264844358595186389392867283486629676765601926614367601764339994948426824334039211960161962940694327960541972361009761846656784802518118249311548260822736824573564301807324918052687595635214529047388144386949154031577514624249750469478865346100046338981422360624969275935818065862101989253030440729280355738688732355515491311185485730245324751221700957763788013831113699761179246259178704615801547778762248949636003443443693968153546022246183731210759240243564216457802984847361883010304796159222585329209739205274003310798602302008067226659244735744875536291479009446193992545555957320914302056321992280941695546993495510175721711338162553092189013363422707592950873233865481740484822786433435212224105301672499891210952724376811706766115745756202886065898865570767956831020504883509227021386282090500959170120546018023118586560297224305061188139324928243094119335858913701801780767065058354652354318047109681744748842862048830925780210743060769289998895413472512476772911443557383110404254554082319941150936632257158592235654169424989695625885018236450480048481909086779526320345393234266762563743981866005030194913036491241215864088963420447349942616566804160372617671177177930847456068802219224007721754237617891210228092784864117996747776816560072528102784965085948307425098783067246005505176166132580993560006136042622055419690229828912713966203584643219021544886632026256515956551744429285597397866351202353953798076050664401808319669586292600812703910408816348280796077552710221414817165562103968805449383832685224861604445899094251964467577072872219780168053135841730766526764722377559320147976292802516890412629376273592641647607643516745404747436263243461776866162052758504371085105616313472588305608125467650683896868311690459291012700864390546306584207090846848280898382942084649292806548284685264190109641789006841285967165137218559086627600052557010118944750707075632902496961718362280020754197178674094981502289943929250060126735726380019208948241997081508646298841135187875617732973528017763325745971840442109915154208409845391237585109633283285686086718654329614910944386380480811417449297056508403560861227460124793318864943340651993257884502546368160775407268321039443531150140775158672341766398737673106535877668701688946654469876539295073251157388243509451986016337558868840750054751106458168854608744849195204315451368284678477988184768993539676070981811279048755335067496792346742906980690085562478713307378472734648217336262617935578580906447379215764586495581804859222467252512743030728724728685968638283431244498253272690712412609562133806821194707727965683792715290250425154228829169960568227151665482685615491698726609407145021751718918109873032951643989934725408094029964031846504559000005204216468774129337128824234558329053303594328674979379824460234145489651562348213238355480816128990735502301118575245283630178355101146883343421599609692588344034700259635531865323931807261912007076919224914300699713197180852667019744576430807308719013708931231302759269601213976493908149037063770549841872533395049081687698822052074019919257035128930913508830861327370026109439105606727549183532838797130880964426632868414747522020865657678216666870634560151463581044732188866679828043367849330712865857674059765430632663624668196624930847761390080667662300145854964194082372780478207248281856574378611795123023482794483541494130263486144731104734835316423689597366368616118687509727880794595336867305524191102657874787703643328012906683772010956764939497301250783510900772334990964339787901454887692311044325569590259508983277341402781640972255976415534257550216917551317661033635280493544156145926876813623429698088910699380411130066794986579388210315445560095959322592364193470698936591881188684405732236553246329698938464426299322459920035215261923205974304828036535626213770591966843246142748606104752945192186918822006458569258177033542319388756831016625203551988419717048435761326003184937875710715889632394411914650945363749188605402235271115484019255330681610867043603604622731608419884494233787301986396695110350667916183459867381322424103475364563460299668345009292924531954407654088440743727179373159618757111936666312028845295133461938150415398878931742577065557864465963889547260343747098063945121426929846764666474854898555393751377941603962082851637492484599344476641742995087123763699266661552462503540776809970465326300567886119270910425239331504132546259090653352009054562649484753462821251946071260079928289260845369573357257872807504967624884856204029964562787037605898791994391795153194954495943364845301526372380978218430889283076651397929164171847328510593794251853667774839326164453245472861197865756328981051515008066451400379000944479565522695588746664527700364251183328187946736314301381844408268869346442055231193875163890415638765390879859991619268266497573483357850465717693685795068166594481778659423962474638095557363127317827536820657550845985908712140482389566804646676418180929454845466025996318290377048047381361057562529835647657426943432015272036255941918994133657156580330702852958169246282216907859641174594320092068352242775998545668149197061902578636650105204898480346803703766252089940625115162734658346085481710825909633695314406528062568033018242900980451405419976462214607482042688741063542198003815893576492659128236520672868367215933861855853976242913079413499888440114314695016239218898632319594726658219628163309194585552509469572290890109278596583653564602670436818535642245127862833591718031864468978547757318141388978669506496220562873491476759433067784074971987889302470212772460954824485852325869034692348534300613391658797799202798726293496921229654587784784574835298158751947779375169745173610998461488126302448647695852919828196609837042095784515332784327904515400372904555528892629171219389789727486995070761709496964968533930837562013015705287388042651654300369485319876046313673608519141078652324990013445843913667459887802570213966013217599024075523532185868385670092272085860410083691778053967251776063267962544529880530555337353913526428291331429527500930339779730427549992570076186821876983459770953614738339613872882553003385273560836738775846827123707744599616585839492542376699903088526938346020841611934522661398966928872105991014446312031968110231306269891765088097472050463766862974818158407409829192327018728283159060368242375623044425231142446275984514167110720900694347852866270246576008393751068350882328540676451978245444911812647973388364691663175695435221773123027092601061246481629989201579654053023580552855988223715073612332164659789521275994447917209216868625731474482990097974623491401335081407857137808954895017443275047920856199497517837351479815508243727937661700933947164027811783610785127064351679077543756511212831152510181253192673014208644248470620560337343044264049876841431110291018109593144425823403440197338415618340705824065620040121310318805443674139393721469348304482008897864589417904659236839902018236690895140574277294361409103207638147292649417044884720667263053013535411751890593725096289985062543149366028355391016902088603367409612787964140115532044090382605990015797569921032039542069467692172546170718709680725020799827590370800062333854311317181901520190497603484979779134141592671541714966142813666323194158639197361123985542863735198207778411330367189749183554541190135036451818911343712398938223204840931449370271881180532605920243288175990186176395643630147567414061039794166434497047100747587514758647555837511319333754880238647888809682119038650346203680741392683600697671983922359884682353816193068325699526398733742099597647190302145618018784223341293436363552714074080233800161361070586138973816618085010853558898192907961563031678449272828177529085642568647732412125746744002806959378173770996465926201330748716554171346880355751216703045097468534556790323740648069122354994368018263179360124454058111982900695288682020205655394346419658880731249090578599928987062110185750747657225150148940679843145937573133051953936884638687118443148436677493218272204565786038924571885778479577979157300524566543740505325222552929057831731916061803085291292937029627428555617791499668694849008702028560751621165158988197259316987576048698045164705903464910005745840982795469793160149753848037009371613744075658195462824670991935013607867980323378548573427386440717843750965515352419680291655154289227667093293565569973011661651405389206744961552378846257324181682140376791864967185028093622506572365848913211370236722887555090346123496006079477143297248687158658382339072076283384575920336620271175368700820892231001724488287241492542956986841587209305892722469100395238931329265455396918803931846792933668362403976348212978691488125062608297241799092269028526489118157791253122161571650272028885206068926193011197532093442954330367127906316818195067366249304665190153298075657943196159042286352417383219775802906188014493570035798350899591863644806058013311096134083906726189377791176778111873904379876031869703927434692107384467537248122088593408981187218276757283267099141075953177924417512665563545255627226348535332239224779950207415608022637680077168120900354589087446284230921362289096973092423500884411246744687616849049290408272476573570299081130135319874427174035138089391765565471934698586981598636878176663197095506828350414043809927109074858714783928823333774823048525363498155206591374370091186436563437962778157453219594016733759518306220223347029011647498301958782142919676837058378511201699566844048335138880877658831473025968661720061192715178705645201197693643450834402844917226622058609633126909459926709446194234354391803316447124934545375836731949966406789605235215924117053453058636017830947403837894882930633449773801521941604985456318779747990085385588794739197157538402156815787446670310884209070848881026181430941946429281784206044897673858502869033048107386584639092424597748191978228086422246235107312627800588530194288819463220874001768298180509138951737323285998986618676564915969213786429105489938956143475788869619972097472845447814464190278410873941369022779274049358329383912511986941411588677497151619147225292189225752328489192726646884107716966517347027117253290640969829551128809634484318922691017831888397036643737522377364393745792009887678194480933439786664067514217506098812998876121752793977270442128212377456293486760238884066791946675606653864772730151868516878015742032614973167002978519474112219634208115230233334208884162750042111622008589349113247577932007738749342385772073507908034692222991928078955943185349897213262117125166422144438058943762459526908371289186814405675503495749795487047811027527523810202638078977084240125822765763477782521622582341914322605390760013846479069991541921785893160169173239522799862381637308936717940636033564807361305537641647140064382109846849461927758452686966424409346158412130552089338546830298405982240587420445634830992979134657558222784685197507937894424957554650946959606826842190280326409122109675649751965508251257625539281336207935329868949531712810435275161780667918146622752682974890685867191557870033180187087757951834151957693196355897820547737635333218841072252670239347765408629091398204422034428034152716607132224808196911655339567147750126436801275252082953767684307795026246276489799213506028653496231749748869661352775153193042182145665050551012991652340423070344113021413665264223910128707636883184487613668241995092954833462744989249516472115259507998872131156075527174628418253048681524475927814218151793578604471065580559730064293056743157597499191857684006266515834611762322837327140725895608710579004146962804424883781450659128224435451983585123374195123060270744965048100159024515909612421289899682925167926692059992397986182503986621413353827144956324057840999581727196013450255999032620719132782306430342559066125538675658089408120038008781115735697684353338951184087131748231434574955165965885763969108671886657535495565117013017543971609036948570067433045029852932116607808780432907996318910590184138818431468054473803843152777589773444675120509226224606648111561789863444311882476856753932306311054583486784973292382665921340966673572761534344600855982685891239965176566251083225225985432795575669583525807503395987823339829415216239176843026317566790911993483265203625056713284968327957319718963249999971365763068122236696956925151529997917539665631848029989707870852449490862056570124350026567776264835635970442482489319714130578064903628503514844056144902032738871260532824831514563928936164939838059945822004689269068139645676357015879559562412393295523070690334011443760903491624384428600022797722833325304198863317856123823517388318422111509330639746589582218865906147463743563019427773300986925588217764748971836866026743253892389416989999693234648109540720163563188966333696939414765631364501267095125487554850631855078530101056809404260031707452072213793583991989222457204886797840027214800495350430409953118621190449026620950044977484392647052215734619534529332681812074398105995338454977111586847127089753692305485021380127461694458450523656597112529556691122916299619543716609937390978419575823739835981147931243640783147265562981469450042189506810219475624524598665231085813404057659661949696202985241971398364813676084334762962431016231843989478476740851186341234806051442755129228276045780573273095456663972060257693784950462468422400549957148280774459562726792497894612554590274039285662975312058764216623463078314006438959739235043161723323851564250345172407422910705363411381486287005723207881643528668457068766716563228824002257378702062288316765910448889604649518382661074377952380777222527788245362244944610145118828899158794845713368532661202890249687557440293644298397971294305140637281282104389846335734712084909826024161136833825758201764592321655580248499159036717774026577330800380144558981534625402036315951376165565313512995231104441682684179665262188353841767387415059305183430336785582581475078623738484613937651375142669038569880197755537942678358429137797024686991201513996485844604254770042138143390265577403304947523421672360965508698919842448271755364989463485041477983836048846651996492690051168828227436211109669022816887770980938654437540084339236168129268982548338328359371157728091538631491068412501131559709576591464591649021736727357215855016666866447088096845760142146767387875767711522026935406686699674253543731545316783574760031997944425931397350691794576433457430530865993235390432699428114073001255884473958268524501078694991142122969601660194468712941758134291717882714022956930153859440810998520571812435087401320588427066398893894022476791765400895805461798860155955048741690061768128864646237932864822281506715565604858574787293687599823433445852933348317295823631880698901464665126199179641815982675222121462788756552100749967944538965659962233189962828161270173111013017480312537174863793798068894763154360429336195328212073163965191308277351788360952122591933430183017905984244503532227638003416699942544902063872830135971802841209074408682125557750697598672737680501889934325813261334027613020680214784587460204527879254598151288264950137810305210293414438994719822131183682695605302149636477698845305684188165113784388331575447469120730688249622868628702212663776435017331554394009339165997552791612689642028195965613199393735606505432032945306506706572213967989453378163752111008538261998962496629465573208730605069462477757398162913595038073441280911304052928451637259146878030537477516902940164285787437731054755909055217592501399932418324430455245613041925567923122398253641507017158115185360457080778974322068040310056608507350687131038299183920251660238308074150993725121568846014915307934310652345535832395448562623761079778250208806686914601564078293293246069468937639532877963145956614092266975682795198670008896743884886777331529132378310532901191173878276211710022851447061073358743263490573232202249867578199134095576021149069357710878025386545510555296840588303081672851345143039124690313632111243250641942593737960885202813344059637166223014100648012745751474093494637163002546814698211483211557602932249881181902635971496019259870346292760433375169479983464229972591788462202713235988124479821359475186937123681634515384229647494693850771995181913110894577205702043372184509205444361864596177992026356749394405276187624765161529425049249935742885555250883807454561074791435361386169902849355504581926746219411536014064497052433333459040229927670056446380599809383711455783902250507241947370585768584128786640945089616917618027144287633530655784194105125849705327380575741332265739698117000566388682585040652005830061330323232145733593036837266244722396364799204179757106190034617080494159377943650342731343199804763954321158199556614628964779061768251786189560765321231362083795231946906160589029601085580253412752250684756358205621942896378645983592950851641275171151520133062396165756785771814909647571451018123797498142357302699379958407495874790465139322373459488836470724502267495257904389608336207064320994754740459194102646138566067027966434420503888876288357692138340976529037956408983854871142152393401378559637456916537560802687948499277369517310594863455161916653968326355872198304531801565525723683099392276009137783945384156277847589616704244872276735266708244255000658997509750060347277141890170114283183466316085337128488171366436129313800290162611100182611796939139949585503180116137012023112439306081286143350447029022557791642766903379706565047526772599655730484662586776558730459538647197841586403392946699039014672086099595032582154938994853000481424728847202494036003380841842586143628985528608598128637737428605150866419507274856726150035050374134394128909856163765129167425077597783166544506383367763063491733621219602745558089088903849274619742258259190607634080558287995978734579506142268680230742197586115332768847510048954442989098458716824150114280612781402733542413699293249088591581400204387418070096971693170733083745466540021473127511585466835336880421930442743806859538338220105773823755228995747050440857229277891067938265304252391847555259493120963806321943830928739680390629777594946930246565592050999054563261933389383179043338719840653254704359291909049282758190051852908487067274946179399378270418965999963250038105388963484432240364913586434598361060956252094610057709377713735042185711982946123913121718116522909259138586432395660808475151192136114076460422903939249105408510102514042819800217616910918512729438574994431592527458722777252537882684445205428271017543999670728273086103158913816709951518730079195381059889652576957196138229118187930836934160125190298548301644210163265416486381431516711372728241612073099053057000208285464601116213648103223917887944913461873357148554304573887100232297390414060803962581049160814411459131941842970931169177534659999492521406714387012898949757229906234428339768422304109249517065284106733987617875751607104003590838308102597766554847716314105669893962891881584726972329959380551329122159115256229926555044850285184080061202994535823407904004595009963764054465697887624034290872634653902804591353355797382269455678080548289191069061515049645531677223436402819171927573943792734182439878398194975106632499877085267527770270191306994253775667603004274685167888812498087797489915679313053173292840867369726730487050082021387671898140902744059705323122412267345367512200011211207365844662411628644663779815146523606263353171195564095592558558990344642466824900988430640767810905591802148138680267246921623757355151260968507220510377685480443455442293107071999311983324989155304391861332684919592143562633971551778501071604507123143568117538962934961092340943824230902926898513686708816993329753894141335120509887538401353121471994851641639609690744571479354453991323620997247629761031273990097149095118547326544269293512862059735055236754081192417737325015984817275586206213501193490668431841367548183820169525507982016234983171397776127876492573632099942495796651887107149842260287931376650627142745790384801214252231475053748568471272336875131935491513132986077762145556688364921413155479141217963125966499566917477863120455481340946939515302323416426972784141705031704007147648049380398722911849523145841570477688215404938658671595418071899755750228130915486004537601915500729655777695817782622845017755656636795526228490698026073719968363493016968124576194345263021398498959250615675258836726727875357451098778108931767688997956778239154370436292345048790122280202218071359857779374157213824741826382873088667775817661458756522793616730775965330181558928010625343961268354355257547369146641145368563018527828401066925609525064010653368477403073430404620215013555491919752758413755947873610842847067847517659987644084936345671346142985570307579130397764314860568358472120098054669670487850096615823622493603804665425497574724589493517944126416851791234578077528472484382751706928687749442306819921389460769098327068628458017187427161364127254624058972896224577970842025082317473102764330262061109034538763407975730183977472014111973024734790424722010300802716309787605586754985483340414271835612061407981112402985055339675599613405564640067308151014349926597053637536789522151202358569974716885873042849304488914735092324942734439138747650971904344197529380762655206834998458134227846585581555759387489873344152991297602484145054955348276357655029052264801935785925741647899273198286193711903068739505688626132743780578634980581053602132177944765192331364196756774790652559075428104066382967242098964799306293988526915838909238183190679658622015431428823046279434170068322056064763804448148004961633966430522940596850823524003948333968206192342142599572425014854483531418558834769221293791075988784058256724909806005528339341342770632914941715838617062455399921144730075145088276613664789965699468428442544284240293968533279817541601230422525851819129839189400785832939208786370369906587186951893068609644328525922321975560378642664676309803395950270324365907484220885176822488851563091563269448131697703578944157241749242488202450861224810840022377824400744299770765062357017604999102795892967279285169786752919821430123895306960821408720597302743764381352395153204117647736153368202155595224450035592484607647220158677308225275448949750014430035676314375435933672992426516124740943657865837563123688176272078358077534444024632597851896182182015457737951416937561944394191200573492403969422138285892901393223049419989044811671511292201127358750950909879881346096700970841660905691841318735732868044985994113278872246200665821108765891918785277517695869659365815148384293960786048177431395652339186150676564509590799410087552295239022725227057102268762695878918097567161093992859547926474358550638174246707513087373061009549714431959095881101639328321739161781494558981462993006243236815365547345244789395713039598630170422536485489199046444953980925843038400263754705336858607528148791956217026457696017760986185971441852590529612903699143250389258602935663413866447184001925067778152272599563618200084976497392980945747324814410446178708964578143636716964708329015180762737545467476217325805881957563589465521893349546713876756365608033144686924228621582256295029369468493704898143559750317305583195827075803956279097925699564538127777441405482715151431051132953579325785682555770076294106585568351923716744609459689773267929655686967061264317745312077370288896802918803945842158786156373020669474832227140748672888873949556967718906613332538855517599153175493420300236353863339168258242413960349955723729301712646303174896879542028666407674300509244858237958369444659602129921981598849133573953202059773803721595682773822560796616588938287119385106290302939561830656175139197346969780946331101566069305747735747720148764115946387517361256509417319412150828938336005121906098132938707375568436534643316854853204815068235189428735514813980577850286735742755805930045633268541037207154928257794510515787998227984792842615095353489598075230617206662229554251217378548951983253374454795703615386616665555052413434252859171527340593933973853900994357319315006882801736746821995313095165549829189440323579967044703842214783047600248643813177779303630901243612096798143835456762761136779196978099479556595642785094013590770338086098323562308447851918567322105808374667337483405839955310098849277580362285232899868286327217367703752383847164761398162610527718541887711096622029310070472003125228223342860274171977127610148021465782331503232199223406567084227060244942871834780895971481445327248025313735011442654839857268646665740924507017307925278703771148556553513000006641236039895873748379368509638930983223345973814094577112588378208201396073139882515390536045092987015373090439491059316911274773996210937035912333970743900121058543893131511150069667185156738921616629467851475762696109562322825975191944597637169401091981488588121909834377942009306907984920114389134965880926006823780008502110275802089695788846107293996501631564147985880383087953943569493097964439377180349730333992453873908965192626246436622303611162484258502963612966370455900310747803710803266141399649036254347448108908959879012726997799210645956893841890816621210265572863254483517072629106688694535201590992613528824971447124606238003718375874248865485416208766536888779678648244244160032398859954313965272917576346952895910442473343047851717361272958497853676810802227742839816183507772417440145323385387369829574755281417538105178517666313742566911843016355406182812463551930244417341938299544483332187768166895779832887993467515819904011748207208204314474117576295317432276592978437762208286389686865111731339920680076030932526768649916327787679522050386846525367992791671175436887976511210048100162079230537514890626505282611806346166742454528667807168051688680906650239347204482774454102701895023910435470810074253118040129211086103414867978259219331929199202365158336926481150039831531549406302754242114933856860323531793034283485016471567513287893527951975561064213077997255201496545877312120034196031282338239450384025748117576780697793695681219570006621970113112575768317296417992968720418719563578974022013503644265159002305222681921564167528129624397901744220285451419487517548670580319171457465384760970763994701481957308486287056066348168364251317060304957474092347105723706523832711078769467363764608802005149597639299127847496052996352401426537927707417089569001190380750213408512905000201226536178251520925650183078641859766432669771543439505655679014776345532316635175920004368559491002673082207689764955556824551042527795359868576394567796066494601837286140257047807877495563443392900684818067610871637066820951695050702323804055141909171883798019268053892247887753083142605958116477929456010260267473115147183585119386977042625525915414524526346171176901454163450155492998130994660641755546538087201421306607614801980818106030402108934620285022063082732767001258990006528292634079802327781224496363923519136377387114092245637116933173621906040521436540633041116271338717168292964085999886016906314638729447166274652481454910969390342276517100358161770427085103673476943184451505362883001575462788403216519579696234666461066225170050948568168876215406648039372677403561880961449102327521125573128909093727310304618037311727530158302164075160086296904224160031542259276153911722295153693047425876683535353680311646677106707400719412250271923218979044162218661462112827297672190208318953273708655206085587006749371786559957397101991762284169243510602565304052556889648336904920468479359010608267570766864501810204693663755280637647688328307569408593130905213399936236454660975255323832086492079298057172743753446803916647947620160507104034812455695097161903352402765335502045475719534290406162856869979389873907999576142276641396381651331373211778100539913423932471431901414032302975033018525346904746341288448037076344337786233852239463392455446873384257763308536959560497759685264683360603464929631161881818579796901642286433412087821496627254390933382239526623405304285136162506611938073721766589381843841909611011959041293808514273615314550941639046207062604771211677521765029190274597294448689436441343033116188589436675363418071673738055147247110390215135677014975665733911881539233458516714535086321799361228690919156358125907288986996130369188801624860689260512802162938157857243176182889189598134748650785754200933734167865651825686972009962476868822341268974925815328086249193062338550975555891359686680854875769251097829239911422668129136736192990842315114543759160458077892148882129583165572384724648498568539505671040979369262107704750820501472808005569037949003226324787724939552965103539925885414213489439238192612090029397993490085091616320763774672314378171607325629856343896905058852292789440689939978393241006737833462845225144799883441243297629024957695639140909516186252210159228591663998846047676075353973001106279446221314635986581169972536567656224557711799224428491969882615960815268664897822244124899128111108484139472274182695226274545507543820987505342507637560889136030408678831041703663283317012163962264341392623582696644739194931392498126001876858453429840297919121570023091991976458324911832670643842530116636345273544244309843101885115144364547230866668937050086270241899473038765649518675902501194154405553945715950954954458799913057760630066911231774146502999302310171573068633317040615176594092600133557105474785794875293312544485422024115859674026545778584902291265881304502262248708893551126510477830927428050391454634888826645278448307621569305568385935811966238454636254416291423522273168279640467612557407350792679514627107203725310162916502206709237955016599913771775141509164875838761088275258342449400484735015658334197763676866868266381090775875949948770277572985550046791221173011614223367373872229333188441963046354120491338656369154931814819628331908955115770111658077595341412340465127523271770063081401361528181481937053118536947182046915541191691870875197046701835624251340154077222241504745315731568389941455935426802481525413421079415264583788114366247985578270348882277261103227381072283791003193652920964652671281188733479239560231174616960168637580431339319521452561421998049726214409959687861566489121902917299376850339147451408743930265545639106841136623329011683756456857674464804808624695242073715104576038125675027047482160069906121933160639092264998186437736392300136230994261704491183401319019993870949834570386585014814435355519678479191580842740894211770968285138138654906303195067228430460810588237012995977431658240679931801344079203184866557299147765335759009011260284940965273785292547265524274135388175205590474961720262012703611914017737333751247320697470171679510706100451469898187338423245021651588439958702313076195743202210441026336973287708092175454848057014614055459952500995231333461791196738800894149723799480714296747288546840604836204048340421372207972078893501841807012498317570096099396318201361739094418519658271984082814785913405995076106308314299308984832227130444820371293311066135751491528221062011950522766416068594483529928970827444980819897363876217219943560978558537124224393384673852989426861297289000953064170355824092128042560702592915522594644525299948725769878992618532320339903845484452378423356992822711109299891861144429645167961301798328739794885858706789653296796965291898736539982079494832481400373484517362671455866889728306625195911566100842646173955753292693892548225637751110098631161450583887967728860319678158684358277429404345877680108928250434925059373442493860939152669179490838941903282039892572419041688580376881522713531549748549528639520815739534926959269282724664028713030326614910103297385344231409942422233423381854694297531638163823289763855616660345746190143784161740012307137336344554180444804252622762156639584555193129216861992186476559503038369735765125420926851117352950951215544370654991047357030003855732993300942644205891775040835898682347229961687607529395660235891121037428562797552174421747709224885458209355006017453590812138514966694328632424130160817334468833311579374954730231272489842363532690714311858211090490553881247821870924001687578873078717853246571427008690137234551552723283951364641751291742599322948797215303171650718307151698973287650498495771785425185149306663402161649759656829716009770375664599887839480273626264021829111049195491932246510454837154752767010582635817776505967179253350201321846070887528021976266521478612027623542219234509867750341633512969357847344273141267906180529583779843832570265346318205768479436830070013680982500223194292835719679831598166660333048504069943438987713403461828709874264522186735760574829219063079791306342575436398266135327618791119024529674136079525813994164747797591316603643355629493590146264712356890284305434986047157977528971811994119452808749286312463368683129447325323570897571805341287998232625767156526512548951210085422428259768199152763294415066858394571150553951248917372852609828422091933272251775615237817511836715090575683324766844215633987988054086719727684862931633000561203098349101633796016956990306824220684794905148994191732588985366841387661291519284456335560093521303659737673506046120792247637490178394003609215738554413424341863067699554420582645754144317735115545823665676373746806442656507119265835577416505569233687698848718009192336515724393980418734136817262698964513201326022337048796243530599715322552385491444621087461862503849449985414123456779841103191732720691716634335224141908335453184601659452818668393424371086533232885205487017277547747867856703808528910989799574482286471721894721689107106335360746947840013828833356183204490136752002930730646276077288695400650448029073154779745847707943509643552836026318840324656437369111817965053932532342628015575434549056824575466911574508064787728496695245401105816670429654094286301354613918887251471306550513063258805198505790382832961516574791244738290492329557535426376767771681243592235682763366256355660332458285195287886509141302490147547859514546080839986748581726951032988464258843101020538488618520175752118774732712382882851937221210066893118799602882239556811267012938751200965952920918689399699187652908182065127572896022534735959533796340080116069629910413340917481034016849433926028189376058279937514707181482414446165561283020360285359919246728536809039989517844078189115929067545824498776212145862900130766814456022978586527654318982872886687798059080024513009161631729563147415717305474230681526500581475267647122906284361964325128632203201926609302893257960397273805311655956679404348567731453372792882503772865446938876337388183336303262534215825740284221290115069933601274869195727803471186866148671031441660398942209936895123431477466712703553886097008243264333841073498673030325898779735388145747315904116873719767816355459448934006872527790538671679299286244391531780356894258313805319545449978462746704503618509885187043328937914469532004706418857563276224208812906814567226983261363743731795002562504333466709057487144913368916955246800453262141419215725261655223513192389886057266116329548621889323525675056377623915128030638623067489189924177399547598597073673607151645540151736252023169302432754446729721893082152188218946030213342192072857423075646135922715952630487334604974186892560270043168552709451559705138606755505188098958681042799914226021512338204656717198175895850872855748799009953132171122324241243424461384671835515186129132289475842404135635205918352918677632389686920886430154830431649182693428442026549088643918940260638818093740829733835233447404150126057914969126032214510074724076182215905225236401509409208541644676503418707629060375980021240168871240308557414420202013206323951910861255108602247712379681187417377019704506126228645253203024242034642090945108703908237758049806227063800394891260161392973033768681050831053237089816982272925415820432598007681736850528297905212777210836184559265245536333790292400875449901479716052772012134172812463971667761240833614965116834132346442691287935330746984221569242276986384886010445122253564570913620027608649290986316749682196459192707829404196261712348274384174180965720043368132911983275315854712025409886760410291001588887962773616565400810996154807808471663066889422516576294227641312256334899477669814677353313718021489671836747408278794614810471786237841540076194939451319035230714492075211099255996878785168432325870880420329416456247129557925342614474402830389748684254307951965876983265431835060393845338967211876394307889168607115506200847839023067133851082194414869052294686537398829922882559010547094762416660048125694005098490720714214908122210128922203866579890022091769688704406866173505539641742725474228206454049948505242860522691600049732244155618077573026689455773033491931255987608112417927737336488873618951194376706879992228151385148384897989949706354070904602653238634578013884040276849690384877083604650446986741577186043497257758917331844011181339871018763032657640887594935853690985113324048962525875769346782439061920729645653020085308203567238548270566521836526895350557866584026408422932500971248940233507158376592572958711768833068300419189555399283539190347781535570729106091932169491596846889459478272865601144317021366792863293393781233889761452455631632426362807330006047908294385379438190253603650090749901091379738313117721890274786172755578291945140398220660236582613866731114016609201270835894440207701153317775954506442361918645105284935967053658477243021223965628182253884933324792207092803647766810817149009742766592240085809614968526838350665021528709027379662014150377338966207484655938139174138550685206012497632302161914038804113684692373502440919696978459647125420100218669169432766740178041755011238723479270323802049309851324721736894723615014012397525184878917348773915731849154702841462647211190536418293792918035326387206604129936090472644112816121057760437255257640606695456392972791057614395152353530455117047329411864856478712606185398847286531424823508433205183784142865711641240152354609463199727195804975392875438422092095698776785404231079882614708651932566831254567470104116184001769998659396995538971145936713221819543701122164781477623796256175256617974135237574471935833779042727233069446474776987761762502231954860189570792357344326452690715934196211268675761208772954116997130007957632168718813251599602693531621780912323278852867820614323161083837708296884637935245569196808497676858922860160587962894755476549650048243503051684369678588623291272586323569375494105769486065990892433995946105810193072068201194201070822837310991516654034788801947911037256126186275011422540657106396054041617377714366827130196198379143888387625450906789220125659711593902912939190839806765526893059133189194346515158042711128860831889207970103357874890200635456541836988251334687762095034245348518842048733092338839924365212520997656210167150305954442728642243455929675500789145250757632622802724292747683117811688247957055754118040587914168632320596102555490230705441920602256224220515239661574731733796606775531535518661032202360573787055708661507953303681782269729343969082619589838792841900632689469408804874612253886894516246428940129000126041669667986458863236776764372211261037404634309734367612363985461713419500776287096467536563996118345161930229486391233465151682756145113113981797701575216712958477899441661624232157586597850258239430808032063514758650103664246074435514848831555455963652952844045878240635357140981598448707030345775940132469453584366427950020930742488281593971975647361100963476255492654870062513009269346759131311050129729091782324187056881233036153353639915827521522130938500093538653601726836624215396443370630560199784831307839702734774689883635184863737106208437402461080981777323163161737385925678619814805507300085936367895640216998617633436116294798153636234899430286201266846695446113484061866386348549269775027914094592486728740014411160876658993221269972329054129144683529779457165114426619431130329631001662007973304782316537353878939253604929044584979103198497399088901888275248459016859357295724331588398497695574484336408544351335000527268036616722450868974985364471708680993166933301464061538128660463675027545458547443575563566702564357516267958704610986506980776246998643035680480593937045164431545351726840073562927921128324663828053992006492157264354582454233177400571864815092228230754496979761270345179439464330454002123300689556482063510483247610804432249719108524135791198791977657903165733751100316430740282843119647824985266110414690485316647784763626353740806642412870428684141291204982195221205320304314019794749520692321909699287893195813523250588130385411337519336162587058016403736546341868894696236859809711429645353174995384808614489898681865196838692761975262561881673358617007240343477673264260421931266593376238613644790539040441443256667045604084813550156190336340864123587314145611603083850809715034074628142867729975914053970347669459555379483057681799326423795510310273457783293018401895223094481465541822081874223108568602479850880929962705082196653377617310325917444331285148938141199743856766755914094419148985377364116216814006179763235025159172599182364007306622699508653786204597066740721736244019002786886929027171936425603739871262658501367851290122672323003605470671416530853308732499919018112499237838612294071682082338336544897839849904772163230573686103643979252696932324473786179102785437639442457872527074781183385741796652753982128640551078841243731003180495430508534506486615745160323317031850771873987142459755478891844739809031743889606978243762472860571790616341363094158647055671177796504800807124311538078450443284101225479695333964041445748664438508037999195093769515125283659675674003918999641507624764813961496977475693677721371278669344394357106052466980291401775000264622667089147261550427948946493602312033162243245090700416822145240552474740147786496834460567181080333580676898848484616686837234734672218122205376915256626893810949769379827875559645341761288854968040642337024946024762202912278278697791718558465351477205650319453206974829819248291110505980714844744496720777988991485155727077403809904119350677003061536839545463237958855892362795934914929553238585490517295704236077729461768196084741927340009078886412007203962686536252252417267448982244506188374202525758061009310151812847328654615265304145395165941222319271373761318765253290060736120189079590791339709039384996058083024827255732229734596426950288285651499191907321760854208241193570676374149693863654517401026190464876647078755622535833078583261349781534442981960951574204739359128290728217037737041308584866579712290404417481669529958045267781796417418273687017922629331607418637815204478436671051074603810809678472096843342956009531662427971530054111141625895266724670924966322835766204352724751245035924982851235175242113305521189620503997476417031693644182323233316540245961778009137314968512746880462288810047618043903247776695526757836800596456198018332623186393937652757766356475241202476926576827748216023084345101133891828852280558661536443896798946434550446037695427688102286349733511585269686891211730434749172323812213836842471102531544371537590752626334031876951782202853371684094653761123408034188705468180170360891387032758871961847559321082833147750883588963418603759994763678866552077081696135264664593306124025680129090168810818407172849580287332750321242944188523063867523448877728130441306105111493972611834046712704500358507955018124198395608303278590581916563645555366250201783386687528871273527242471129531728271010728289488167959785010344937810569406921325801373924491292813312031612297705034549126361636182353744684244865696049934893243119882547325507530737269663034519143384556519281161404655038909059202357177589590446515114261300787305351254267145422822967386562282039296810766142990850628764559854232112916368357094626144115772302896596399415079891602711625210678376205818403544354032855516714584646878685954975929511347573316687480986716641295175193919427387515595260265990250040138984897305887093957986419232027202559904829732343917200508577539284640545144747188381703230917242517212109102555375049511298152895682124361008597138938100455883787325296862586296486412411149850791246374147700522521539387858464421322898915188220147411560862394423581401798408995052099280767675031581563714089569866122264855521384140060364448882846730405350917593243952372793922933271140115136535700827692748438697058357732338700180276268502786563682799158144955930234231610002210736743300981074400657215376016821100822642242551995216554657645639538520950899155758259280219102497145412466325861540361874743838361416402522239921263415720586487839680195784306842882966124558999185594885820264845366182377734875777096883757440052233773079599273020352062752592284202623982565637097994147722950539142335838500507923320659584873660221217697355535642486477460745089126381691784435027149783045825139920963295624125106639633726635902748749000464022204870022046552638269486814170838647402009572544483052621487895638971748471790647874655001329419760936712427994224650562414796951412712444312580660024886243969218367015547006961812283440137922008054065090240387281507423575752827499920627483611311810763920542830590064196514915125545689088306741981150906135478108439829777478474684433069271699578487574246209729649998459252756819951931770726598546592691956402600354154234579901663486209056589592742776624018665151663377926236467555730660678346205799788200504907619454061377573339422912508715496171488085139689434374471676148039466864427358790307358748370231430964373908023534971259165112183337346847641040280355934200621691141746449429825499052952668824821943338896351707496183433503129009204675992185461897816978978518712247772878645128736377092347357441969525076459608110299866139691215578167989943089142698101902199497320110858358198062684947891626748813562595334253797838097744157741102576038248903816728736041730699579113388349662737394977901531545386709647717938773713335946153496424930225358975303342049414406424423625218653642961866657858019410056140854616926827393081399051801549759458539975053649295160685327349357320556264166817661390584980839563142233594444363098884746679464990869558787369715809940445485509556064116853844366915123947796705146724657427661919384724284957585918947738112677180250468846305345202101034981701031000635748149843637008131741669056411053989627409996915513581556361317472670833590110190782740163086072192593685733100960986007156225468192948659646929044075491777793552831277490963724399752505423236692847814735811456872107766782906497341125557360385901675466356434237287613652349139196701962212757808455460502877539339728334215738024720715548895057146196744659748525304847831891117166521538722605508955986444369004716812471588559720719841228948130492874606203401744051418447541590990103918329565068724772877481225555960961151940624215447069851916949022148919600488924034783134322077359025716189734725446221921138888535746276604337054902120338843460108310710064559976354047590212857760313820137496355253115672812597503265314834351072334857812259108953373683512060665948119606242701958256176684739282231693114649834887888738388629395521256757510891470833580382489463882489034174211683145363522921681658521407917315260752823353269784221504882368897285665282928344841511337410003189415587643830809467599617414465494702699176647708479637286872066615031718482473545564195598412277083423197033758623486619754727546863826435618292760135631584888914391272367878139768115505831803170048769376945028314522183271297547575814111670771777808083467111716342266249562730096898571995368100616406773430512910327180444445318117433226116377505088747599617732065776432583766434512980565531752905209286730153325570377279009933757367717842030424845555519083956439059868672916449271124860849281670791592562380203911638092812356204222557298576307988214339669239509152851613771022013993687463233836429339956194164988471694209717991772947274254064934902575555826470128141905113562938899226396425391175859136641304486197963653110122409716223551785826597765488069833730480449924019301303601502450390150291478497899242251989486540495329090473743647147582094196573571862471372461883222665911344409921982561085227519622971834328130582668507788318831379277444915572426035374329106074196080993898610285644914221055828860917938292839710653925784303154882245034533014734994692440818196890071109679300026689314410966086052059881869609673150787191006938180917161542927675161388198638340007366356704915552116642894721447293806111937848250523217828219497879661273616192536632231063610629066263243758447116803991767750848533486800371638897381052901093450428870145682646382326508852405174145787183101277411963137366572431205187199956103357885342048430650747239894143693117696375510584688847017441364184286725726305848367034653692948852351679042458785824660164176429733693108212952042049338300139958624391805794711806319462766246552619558481752319575819328104641447896478591458933242463790458676446893501627427248029894984250930357158343089698748657891626132122267397201674306522621297793751573369755514473662243548373753239029713063066628705500177205481148366373900723963474471484608410392247585265017883255281530595178235306568130896563775847753972438564970656357178603554330815060149749351565004336819048790718839657718420218072715987609817221309173490377912840086401777579378176741172740893211882817302855015182389820357516702794109523772687700721048612830727676275580701707194305119131275115190775983424971302155929444589844034720887355963656588267051133495789455301806403443428833703777225052114620202287404772387529275197003579679426592260443133107792471883276558867206732400061929817667616835308699933743749787278163362787963021522012610637425130391915230170334298494314479887986306936062055924584497793242154931531000326328211313066023880043353991189705431433311390133211304676594281232551462962006826477378854567461194637774117026298096753847737207004121709286618939484086138807366437914700097291820849761795675632762670538445978815372722817079075362690812798784436979306715077671419511510921325801656882156358888272803865401788683954288463035225572450100791874886899136008287174770965235116333801572661100370730678364228601840539257789022813180228739137858541374449760321863259237299402016354948629861149899893071879935338129119293112134767338032234783102632262391463327450895061001134407128041981857620694196410768375624330463459484039599233175942306799641066497652506551745359160368705966293551993531091258368832245902684991460577829319923155797420780753367622485722798548147981979582897160520140119771245829952425790410018164576019659599582149652079761572289487771627503441755673831471244905881924850025569279531915661812178543620107771828119186558181208981797381495407659622008055327017196098376329095703651741410791603418699013338931282693321945446025731482120006863762711047698799851917998203671427810504769050213800805015786023575009450120014768083276394818833786220086515121865740783983304718281916368090986416159542852674330970322917509411716176368652414439755997419862716264224576395875057964441424469790943210029437159547958637324203379664474177385594906477431618383490917119948967158049123797432212372041331406737010068991980067630004094552099815097942452637049329824169413460036507534998873616354735349436491394263443705710021902258143141437558262683750862304258865681440436823871177905580457528670570857550790599664726339795349731416403144907895668595806987704585175220961326179543689772098791937385282083905826527890733604451443822452664575066929281973873214217723632793819924887312402646080251784674470819262094694832120592253707357387746294974857424940389294620279638520889979059361537166830368330171060821885613544478306357602489862458684868815331033136150582197566365969551155299875880004406341293079904349549854155400069497791453361814892767643462544115468967679614154745612939800757720113901660462453027712437703325453790654962486711481252077671855090495274494033625050383030771034307499089299543553546204443506857116839230380099989730143382393599832976423198232161494226071458167924516746024782328385713427586065790237445794238261366642140832678052690642391669876565305867179922381325646393753520443078085776561736520793668978691456730229624469724032375946562468078480007764641022705992730855378524621606630575313614004822888762206811009134072853120129280594884623201229003237823866874844679762279524726808871384414073765380568796344166661926530743584620931178821470457064870981530395766500026974762405540345154620389017347399526091055480496727513694503702796635026862233079332507671284886393310917231817514155085516258011975106204659109951729050552552613871073124694109904504917680765203153583518461395992093339305874547108175583723085637564041573479516427998615576753527263783657343779019850675146015996301248908285659037875718687641407905279034540918101938665884669769408683296195221329238717407225954887410272021311696191790702188277581660372253900128617658815151092200605453397388644464557772536454048103532387523657496705138532555275646679895779836485285834670933448624940101345263065766607674011799668602096044085487451468375787408659098784282415057036397901990794521123444324419546816803528046386218433922897939805889389332308281248420334707799054711254301237638691471550013434083547007411171662718632385323599019975962270690808972659259996322375939361420439991900102895721721302585051380232977007305825235136576826620834669370520677611254875650983165554959252021074528071457194623292327700713184084788734631511292452263071604751798475501082718744058030054534031484403032144343088934091309526504386318048496401923276149349159347806011159043875057841153970035581448132629392561448009054464554828462635335956944809141232209297698413797131314190942121762476215046167661697300292915979837856148614697989932449435012619793066835719585767332142309890282730346539058578893059280163239389076688524315916360795956028050861499578570021145983207872734438746995219779110034422737286201653375957479399731310471010437187336759948240261900635731992639965625302127266274860517574966882922027442324178181739247264829081815246935656670499580209568573457709506001159614690983175523290977586212882247913622631092734085679324397142932854547322264489674775755310162174145275790929688862685747134958355310738762713585301713792412928560548697283919023549601453821203045401922009192894470076926086452586708675912587454468842500125309247763986049999090080939602675677285038221324130039085293965328763170862696397789996838991649211247964256891270945795412494088166556426511892023688305145490808243374691356444585191834076216929643685492489637569790525992505982667982361693704076786323149403298144581969162134287164937419000642998437800428091864087053384784273192762854236542939707253164572882733061658162171287585353323844550864800773274296188248985696535323941531520134234792337756965887642798426560399283635101093181345536269301723870378459414648328030491946685726071644756535897405455487776706849100589734918889316936422616708307327576485526303971811105714505703655810851449796207673358941714390740370639400290565946452387451124342233861610570653506281057257331564682495379465235915893480029798411741811170990922728616939114772379502986699734886201902587704116595872041151699701163726125099182296071380367460885154909305537481801017585682567053244418511320429681570200033513874535984440710765819935395931009260447392817780256672859437508688067985562398610535631857370059462980527467730302181950167507988192881322249140779776787898935350313470406124253408247686061523310578960367035470081075250233188404714591380512542141726756768143341937025836780987803829213455150810818357561812081055078388333720160490820319001107814897364983214444021844283633091016455479613932416737656974626274565574046215521032726586562992855697233833474767009933461648007546500050822385876054418310691082376690999154418441789595039354977544679120360954966308834270509250942286488332112761179614475699025408656160439875732266553401840414465063332450107596072608211977256225665432640196572316466140996827959569798793233361075198735429624502168733082707144295184333210340604298334873216831818379603370119041280385324938798417428503943015698388857725048718537078188239601647061550896114563141278461629073087404982625073329517514299085793009161120411229275889968472589003352055754024286598576184867784774107288575847050047809699820930820941250936176749881211064422277441059360682717677582801357498125599849798840998577529103115803862675135004731681440833459891616718305623346394505685081548586530388872815591434908084832408845050516365976188133489703995971421627773296655071657785206594435147895173647027002405340905048673963981513358854486499006663901156734209228223380335556990495440349079590816623265072585722849680534210686631572694064389185639354543158993565799465305213942792771024905186548362018018966899147019445002737188038884513839316781351907062958824054351179946285323790073834363714309330936353910411415987236189534617140933787500179268769491009810136155696335749788505004459336762892952510877389181307450705403066707938550880384824360603981222798736522932139639003489425794196396143407734271355334880412876497405083700945511465274766003451271782216337176686685499002724309756670199997646890980110972269486213444440445857202998262254885643747120421497409361096303571730910473815522151692397546386759262626424309417842088296543292359912670916244225836273251986552542243165261955685517811804062113889764115226909680593817054084693551822938757819841572061498179819323808898989643313412778862029862030354351732082890225417148789048423381192557322457051486428389032992080976514008735366959924536444988010322295345498690019448409139741952708460482998826084014532707459561202764686392690930135573665336423638120246087105360965301928328398374583045499724500482409691937907928134302528324655204067643333710059505399574169871297270332815615360794537711219917214983142110842617074525651811095167921936169892599160726932982321010574289687395577986949263504200591683927324436335018013439004679953629783549968958583815687986129296712687003724720986683713050348833444769153341330790153860924191344706742131534906991860740526968909051835889381543835423590850664369435341496594528117132202043513552777137014813420812480705776487661073927614543011179256533756610075203768486353746600475994838989691202888977001429263397431024754498124341450616361365163647248872478588212218302340052600066120541467336220107143205809593718860440749953195241555871054420358663564167534312339973861048256479571539396523698150341985741249998414516497206799174683429072555691446840228833553041081873771604920080844060978211599397454712269464286553176196900526045160540082354500817814534771044595942738268619376360131140471228534374544225861659045078887318559773505780242369614843367762142066663520291031525708068716803634676632101301547255709826287411126384954201928420811600093669404326025305473703508554118405352971998290934854178329208315507811295408034810112333234913858523228583100585200452503773922924397086292972192298168600867225096852918986165158060630847871150080327886996209691632851282906786352449948338895370784885611030992722270105259980010225213474707956837478181045374456588691745835609601358734333922169308371519158120243623102103474902720539634781411586056532331978339700536814601083036342969962765212415226059440611804373499557332577556783317203499635452584174754959235620688530530751657192248978094711467718507770003306890721489370680798085700087879125896007996867154335950336166378388775223338143072650449585013161718316672983388149150706539035766518311191456810427892408151093717411005499647303451147686100017322321359479669267789523014102116382995177449567888056545448502939530588183677325809549503868983484621694944750388414732291279079520106226450684486087837527973417918217548712717792987524574164743306769198499234947384915382875501648831929934775826864788328646728628265364478238794225525629082206688985056364799334587721050931229193089554718604097826275304496907411180654428320668870368727152149103394139604531363507469424096486119215609543040564765932926382640988420827195061443817837603012348170800402711637657177956946299676225210784206405190170471973596691466810471278086265626032770343930129307813829400910640889367213035820613849513295279489717347178175905977840799092545989182611550121268194798720533339684776100717819979866732762226139255226843415452769926404414282314828881611172932342130143663913851627402873069704095560266514581350834501480090201540415154905815204361338458122182674217039667056673482325735883057311533457107426219259409547957744714997775380510366151406419354535803014086918441064141438689899940304379347925528763972678984545660092676968129306540461003475998303530370447838564675865211289189879708949537630377982641878371177049585138107624597764848309555817526923859990916764634966410004964197897837450383066907601822718204743263275405458319890780264286266132238538957635196929508865052294735219217466691839580879035388136383064240410348911127795496556383020195794143806446696854084638181695029185299332592053495985520002365295966883419214799342391511050187999444759479658267691531063878584039581782729155309846007130808062147886176814170959150169387446513014741353237608291204177520498443950952391036006216583305224676394236093165210782606078947788741246059728132832190098179603420743798826710073456203651323293720945926420109997667688817826539062253116081935779317678326803895880779625269652719846363424277925916249601438332838461252425589364488932594739117780235265662742567799497372076863546060324382370580936478370196127098747766740493957414994970920809591051361172583358239598331185404150564564692606731098058005816197994403508240504082115810850389305590472239875409863257350226181146913814538298450621708851479222596745172138030130229967236850706908044488879249850780157761514819771064995577632927689845472801352395395123099745216666472322212649212335511184511591951464554953694910404619318495920975813795323783251299800992493567518660829395079842436973394390811925151875206653922591352939064304559959139777503098456322780359900678749769257741547714028636903343433986884411399755555475947929992514049746984271672932438288319014756330840289110427393364702101523352159183142283900743016593754426851832149511578354332686851307498779588748908476030544628594877683072167725233862709903606993623410232620756761297278433309278240770528861178851168095813561036587829208483312348879769549308410811283574656239209119364592564315526469275774702709822449743352711534803156717007347823481064207369629425000989848659999552049797538172558669288032665505816123026004201764861427798512378475295770248528949289478211852377383183632437571053023505064360410335561157784135923945558023605840310439589811959601615971096517586642561592874408422122738180288135538715079137366209165979221734912734281524292442175412494461193429132588110364744430800218746875457330390935796378300844827380844579314872758970210643781199037890355890331406970483774012248561531239023000640649361496945924570994470227508600599295816123900019512340452759365166369482160660353719918217273537629958932812721936271545052534570777405623540971624742945982496947894024379166945122756338192475642934453366469060384642859437459531120091448137241063369363268968814815629511625293122453775108709938585432176659966103375999972272226266291380131485307545873471205038310670632498464888889637121188369632230355509036739909072962909839890244855839966962798439857122102323008443531864562069819360363825297391680023531070046138560234697100103541238716474577612385222156095917743080853119132239108058875625605819631381060432972476140449900432079578853794333363425144573376161585410606452643389005324709137286364264846409303974948222526854244359961898251818063406955515241930494754891932078215747950876059687674027398714316443523328070716669619628770691903537257711875441573154854544714094771742744982837167877253300833175421322061115577984145689465613859204856496479917561095525794150221788607856923891152666237625510794213728645898825641184149506880955391872255158103002487395928425609296088608062600798303309298922069763173882222779409142965241720543697202802022756782121533483559970421390069810934296689027704691117735922050794855776474028944512930106140679859395911802941647563594531965166609597776342795173928635563110872270272592618564744147545615157901302282260367625061742144214891772399278690051544318815873632542338588637345628031649378684066355955015309630442778390057774578368891500185950059072535106193066182653688794028581093340790595650748416434530169854418914202963369853743916616612105950831729877109109234579492551821504303975231133115595547240888685247982467652220675164208260770426116464369216653199487867705708917350791417944124643562970134207484022053515500274842032617114725472284565833708062770231170307022044143730128625042828816620190349936232791930195814533108564498473622253998819830159478447064198155506816607883527654011487978570072118063478664209207816737931746092194533831462043302595809980926169027696634431290025321202717852082147707591866608734518693198590689014417043387790471512201581772099798965797130873478390990424209914764723777022082791667705760082824856579839892679772405873495812794844828390449108579863027300037185152460778860190691368707759032883496239638154672000884281473631491032270506438337865283654093053963996120575002843933593396054591753325651390762768267820226153899504781824971853877132476564650776135948267335111557268446215207146962838189595198421747556832096124377126616719758068701234976192999639566623030716390275202102778768160037972252024889108549305315742371035289393940324782599963078499603373420689466587058447581921377358443566789544991833419222259495970630455296842916033830653182775583638511363566691512529890416981759569679592776313270239587229140102410223468380405418871455927091193181349769898317913878000449488184077187191165351413898993803840019054732767778880335207090378978913895809698873385913046368458019351283155539852861124260602120490893810305308074729715565754128947044339831382765396258719847101248478880995202519981383267612687317007978307700206716886187043654088813052209083263244894470579219960907863100529947910619199561498482979902054497000658051191507254675908924899036970329958501574499404566180534349067545525879400122972570507658124256768849575041570169593470394548758248570521873268924415573458304255412760525684579966892381948082554986072483763283536048322500001005382671074689882374182614716640076899406331539383519453677204552213299966834229314477731335557009764166212219472530179386467078632420361595498442945467808815166251867241658158996215181214734696139065387039105542473477179274790862699253024435126333721849697127155481417093126849209013517248551729354440456727093680932775228951486591726616982142744914402548834861921924333305087395058805087667943497114361363311717852284227051202163069649879284737737609838324482418637158767550390444912030865477841162031869211017484011808258148567064120372425175444220080721331417210058705244496863388548589740588021239411025099532732689455649484615207795600215490394895465669184135742014354454955387048264474735717486666486799909423485528965345206397665063491747286643093677607091348991812243012194846621602098570741170820115964429332301026039562598862906552441894840274589878384510943416235029749430038977971183885995165271626284597843220113018452086780785862391120346261638791698008807115358301007142658812789130183665901882698804634421399048920735066257711482502421858659037821521110055887790891983932206417974661315158592361725642898067777902033611778746641078754255070831196293495800378280193433315091364595155177761677598325262107911327897895448854515569167220546233977058842880496619283430838884770872142518347327820851665150405395972502516494506438180670229660795777171679734262485990084830948913172082196756029513330364638674807732163727912942551194733942036883963728408695795386621522028526852734214443583862836798591818133937554482397177549570239098247077737486168985224098022489791284457050479773739652782441389717109990072599057280343134568114967627938250222431133821445311920654239815875745049170331606159815211809626603819202040280741203463853324473757032503827823496279416644444183555607902634659988538138325591821162518553346505450366806472804374872308939431839289423002851792848708794433405451386185642797442208343411921078723402220203062407508014200227372311887004245213489478893746326513810732621841941508570456577863028491216588212391973816480879945563687167999535488347381254191942107354073328391207261657125227613134589445795467698759775093087014993135693953468095993819720109487719120108953972921309599675957570814840222823728792824795150757608677453343379120129375856309416958639836250915380063943767861916200112154932148671605785826178219612541156310026369733051749562244702627537561064684217380236980162910864591922102346877117607717918405354902325505843310945704813649116126565761295657835189270442777803783727228140760663876937205773756780336955306856274772770027927031885089315400884703164179539419039180257410997752261180427085274595206860787481292814868805567360639859244599626185881552088163548585053176653170755935382857797411803320746236981353692361443098084941075087693018767936898424335862450764394108435960174506054653033046978670142029369045231199846654753624957503143929793291967342423591502649830952717918613356277444923518295333055071387002977385662357187144747758189452682953095442413825778986127734765384615738412354734380665911663036881856620615926541620554328067939668707296284871332704740317343095129009596791686872420495142828865915886547363181926806062237964575223315242574093366692483288584903021447024404310367083609382869836778856726089841368453266438701963841532880499595182335955664855051154085294227380003530107580665919485734885040717585073411155724875633866813366103211307860405979793212943102210048147083689850589019534216602891157942726743625475906703361536547740111932424390643405005637464639068910052682856044109992500331401805347159348812633822243250153701825846051337843374877655471800634666702897212036549675270472415397547424214389588270416302453064357308038181833892192075464448111321047516814420042800124329561235566234664898873184816954775758462492447051700807644604739694699740973423143925504001896224933823808588676795473037462643903187530249260189705836263985291258491733448147024559967105906648122541486441297135727744240861680552650451894169236492511597264640049388772943451544836182687967192656073531349513327266290825349000398330751760920231365705746115691483734623002591983229975998304172543915554546191914549100847157853515869813700386112114846777302018971384144429886977562354182271330019756877069353054345344052012412910614840509493365874264174996379641567258113430406327087301726220836736812613338885892993505901105169179726321079376814515463629811687011273943873219559660724421362592907609839792694310139292881071429193530906612070190640326041497441788320577430101535863498582727582483238787310795853375897858369245230792451411831681171341269629728299972901513541629863828204549480551972377911275898494383886611430423421230902049488508853950184186293228077071434554848448297912346430925493521619519203163409047615157564600672608061928939031661045982663286873244409125626373346565615627577081430316067990563891698441814790879997779076747090204693553359403044747562567603537863632979377882363630214531992127193037141099780795250378015762894892873589909321696984780244213116041561646833985050024308261112699095585669335514849596095211808209988781688804114326184717111115919541932765855280561375434354702000842059851849743544723175725092459061410787746756429059966743454809296304935130880476625719934019667800635252630988250109810739781664177908466080148324664023682597461642399509175772657795324565979295926638388607367724276184353494289498719182937622599541598118210264917626651430608813828564685145964222561991828797075936359656973026670210815177569394373086129424091186952828506310181923061570858890778536962386009610911581612505839461457058212241076630979878924941865658436148035250722342787385665934004059309545718243265392337583194110404478823533922991322879029147710494731252944130187681621619046344116498563171044490569066786371403768690927887732427010885695187718906153101909306322890906539214269978704777273810317107989511696470156678062349244975519486755377110632191975775166751105166092262736926916120337207696521129367266054043801814678407770606625183331721806218251961196653066515943249549606345240719042596235027939496028060237691064767643159139128841750463758223807229861672711328512538734457669058110806602919836414504267023234760307004763806316578953934312051909761568581567459689969219987530179618768911007365617883969607175537091527319252000601436580712205630013361810020064538984431936381684962460496136825804834027729036713164091538629779561195454061873287578916014357754428815576907173870542170059193229162180796962083902234833141164517594020551543484380941273664962451453529391470318734458151639936277284782561940240280081095203614529098537289056421970462745504120931818771707711716230659596855412255371865358096606111720119534844909402725530228536635284637569537364366447678382386053850804128939935423143065197453376063142579640004595935803943664226688078496231885044030379962065154450436464218487639260771050310141788244798423021974380631502371754844931271487520484843181775586178260308433497676872224567584039599751745020034920641210315233212137396171641310417273738059967075482205774859452705900458046399527773299523297697610675396733758230753280671665289950131812325791489936144921338215250147027366406539863542564092815713915233710667169868432752230848500139414054365700621315992900205982914960763009737227093414948505657655596890998922795051982820223999517750697230909772982579728334508259947897050321414458801960192754499003933213256168925669995153298270569940967456707748484716904127218690848165077270886986373662989062433589951771438808067524826615523685689737575009369074606809248257113229637514161236964296450840395030801977457139538411035056638532697019457610702655034206586805709104447584466335451110164654985398269966350771401285937317427181453866920910163157861690771732842194601903898580914299261627668015482697900842948033325174798262421177857902260759645300448794879742324140109700882663557582250826238965239530046693907618127313076279359733195806444088190873278400224368641798493561635532043860641206686592804544986718346284026446364235346817313940461702435341867615179840700057551052056721453112813144028810086783923990356225399260639082002047673806497867103135743958945274734907650911672568606516851625669325970429912587925408414246087502911768199911033755738521797870695957410061321959201191084013153393171939427033516152122282068539988484368665097173306499801048825745234189540265699705926061407440254024942366603929934359724499884310149688289905442139861555062560577651126206542068413129545073253274487676056171306085101993151143527941914873326094748120577948774420866461137983188771041081168185454538637695228976516195192143013212574471849890886438682300150820622566365781959710338740721134891905201801478668936646849683045580674159436358062949014432643325609017153313481527228518760925060967427906777155179737704213394603089768346574081055513036101571141380734843874913361044325029937219999172506942268576013144083385371704834767168380962470138020520082903181107147334274143133018571980844145294649046855967417816836885121275787455246175640543393189251701205964712393747663439319087274259269824762154974929392437134587937756070073251465444553889727143054563781297978088990583692507783190814392189710011936113914577992838970365459724721697492302256570041263800956611677459510249671726946161279547143469653311025267499447563472588835868785230129696604635975633801655586269065462471133465226700057198786041206706768867062152445700236099903383467043562812825379908264722393448628613477561776959168387058659217517889947576971140143200787534045144965816608599238874626788774387298964595699568441218234578255276730739737046555889002074308407560786867297593764968575190991173181721704452038903313227801640074067809157810230172962589069636431887554116037928237148810914693287652470056149295450350168148257740579038220584751204130984497579302256889946886319754667275757064602351885707244454264948233612069865883409636075383835822402766851436307821048204876165792135981595208281764734836930860407711948105207395369833273395778415785315997665803391218824265471273092763005350181145049669307561416516110905444080007378964896516271703246894932552773737702764531189398477762537091692239898670720331192274256729647763774309572732011717742691293202564475051567215683599885809249517351316583726929936107868016406312077774922234676149132723716392123491855997906157811935036941745511854479158523294083233566272293399622984966118063934102069670314304821921588770110811344003401806188526756500334748392718673847291479766428715921659653879807299552637751244064575843543499985799409942095210694725450865978213100250589864843926466396541568531109507242263440327661953909905111127460142278355992993411467143065486835378875426670140424865370631294350393512605057974308660637013064538592106726169908303296824678840412887956417594306292484336412887530410849150711650562441142555604325527498341010427784336818651859951295908199686590779373762083638264205380178426539300310828593224661593754971887402981237393937547272809201277664901372150646362146073779165562961745179725586558984765074212054601618957726018303008014486861739776124529389282349966319547456563572491112586191997734003474420976046296636172690608971369139797736735336740796699685414891270594331870925325020507586519433869274781188198335778078152256273873659393883954409588026751867191317719487311725535311859152039085048006146095329031540225505170628335914000059457297289060902891069893754447115690693001709241202975679450529571407671526662292769007728158382498032220420849617452357399862775051379301811731443700133876618356567182160248479586130938929754156399748234762698755002250764318630538619205027061182067940932807411251220349869966433873891931613408166484186111918113385526441091912984731492403429354668162566670288147972998818942025290069325051423073888291708348764159053490905775631000378599873321994873565822550530845450192049421167137558876999575349989751305725948820434160268229468931360847980201511890766315730501142077646270103841722322376868277677547838272117525308280442980868372656960959238574792562719253693294834689868609869352799528843377484978756891257400651349334623146742859520933416999447061263471171824617053177313412318640431834518163975827639580861992121707224813711482691796649965041560391854010205858345417899636575827832378394939879655802035598245335042255159247940833103832921385066034716943232705296860617115103322077911917250323898950965620707708237106604357790602538247543222369128832322904228020199616314939979554273997104841968131887366523229560641906150715000446397399382761972330039371528684997595971012311403224297619034604133069846643195410767030087963596310437671246803291192734891102071041547371800707447919831393176206650309759919440800623309711190152886117016747461946435418825767710030992038760806190808251239725344067434513616497304405673395009866144324389807838493134115685976396908938624821511658881286780262023404045442818383346867317302814057819678057293607066681032461347441924287769808356969121524556210043488055871423172296935522496359677288195052945996464689516276299605402467988192045718284911292556657033330167710253526551631511874197836745545616191293714298376532353188419605398151002692572753025513838584764304106955088027987910974670044992016072089566128770897023179333311636195162784946074859754716889048930383527736679651227894817122975088960726947761389145295205488407635073897160710370930113102997311606245573262258160241351265707776309532008747719977388134016913412265929354970478179294476521208530151241602259510774752851629746876958496400708864976141903862413883531676491334319821126750671792139124184375072093940449346875472151904196735025962272698122445188210842962674864918854307140437413073815108630302231107273871074584743081871276378335899605809014609494980706268680737326061727550647366792386996409007094236248362875417475697231846731632582140822996774926780381946634220261952574580420318054776692601098958236165461875646384680007065026407151838236958247221440097975304671753484583186065518468754566950007353299124620644357171407351047961739722816025150053554237161454344687963037500566923212099711982659703984323881498027408198825527533956729085211146006250524506856338608607896616518482299621899540022808459095503550627319624005477131075973000558881113616924149067227792488767222020427226400826867380049444389987550102468570161772774985437425485264506325594084185999549438338257275019481704557895275173177798238448321614907045946549316615073731929212164707323841331107374130709016027627073323953742551890482554529569967846366428213820144527646219400934734956048057765039409986959544842253974716147008085553367702599670637371476376146876816789766213027729844525706558129292468082856820141273873369188207642721322204193061004160666578030667879542979607913402348368193150352392938546180867251405146074423695846720909993607274285359254884558113187675963204728165453851860902640502856931676405898994134970056148065068253441866555095305783644244233785421045232456173820136173748426277916202496619571558877288064997682367438434649320447231488711109880537675380232738533938986248550284119408635631811371647946362970512747269511268623719154931320531889502927333428259704897148984048205215030512144495858775400738742762813904964038570539779404276306528412262802886345808480106536903453819495232580398685922874866472851358181684370311345203004490530969328726416791104520959131561369925718700540931527774037074830681644041363784889410261561836670505795452988983326117132937208507282304565232884693695153394543157277822794206873357199384917858871360818281209381317333618994068707449668303547732808308564649683588549904723546040469224785402107528553510661666624872760661183234404384751820089832869443583986677764622758821632168200610097910881853900619580340346271552274037809910747836183425143594332018153182305571065146365749051375126349088742427100741488504516453651340194151547462055262454096197405891231578216158416821548716406255916462865433721652925474204906498458639888832374698407541798578665352888980068434832187714916000241393335327540777755854868209062102634884709821122558818763160617579816584130165074180764193278281624009133561721644953790726719880515634989352325129975588363295005181808078479004682200378844592282105130450891883897607660482006078452812818775590785851884222621505593804979231263130507725725402106354761246308460545138483286373010068095619477233049120637706646066160148309984492043171017940366463556153441197700207406543216796596615080812867507393828200908849903208356379567454858963436964020983099805771558739044587620146401075804320366088703395619604538129303791824686916764737247590778957172362518799838525467410163330097984600954953300363447614191062492628188748151482144490428401078297661823054178816417563990650175670415550358781298509834431404834739419899900925073098370990957635902719723512537526243697175131357708292104538593548261409569285772900710431585890554487934567927592960387218451163817712095020192426747308518887506486202060462358257606180741765297733790336276949580112707081722522361438484453778164316064608670367756739812861142426603370861289686806352476063165147500491645684211702101656783135264979304161316522495589966834341835272595899380567867909654446439739521354844460707846173507649988835934799403431299668958663793514949391346994733884081264181741416279835177132832831862344417697125346846527993617068194524835944046138508906129774010688058798733826959355389810245331088797225147243964783824454584571565906181896969903941680726451698667418807523234361616124054046718544260652287630968563137309310206310484184695565183236056027269265457398155450363443749922930968153513660186122194129681451007475711733953705119109981783806468305343482808049074400095101233975868117295251175444880782830726419254980623991671416742960138562223464206971671584500962231836788605794385574487203571606932565896119605209123916862062376269593194575617624191656514029295087508310721918598036214927686814096504273212733222539180312494658922770239338260414003867818783406982031119535033006934340212721427753746012334404331398055171334765021460003026210352979018404122890679442453250823306774600461601862660222176344483182941654975189422910709415603369930344005461721591728190116648445570888470004156807441414685749561964494847583121194606931000430403619916394687078515538746842265409465032358120315891681572285672434612621895269488622566496426681147079795962189865477510923999309046512981476944351459018111006844544832953437489497295203179286200260197894977189614738986197005485174805287444327706412463338531924159998993798628693686432313832026384384142918681396134062987905793442094843504041860474619572926220763989860848566971590018745433444415724895624638944599304521578792152891489650383879636616942139256110099466543212476777500580196711440136074263129877633622701275336539316383603109486876598511750859664981287029806162810368700396648408732529920870711474556981181440196518827991972886885310771906627303608353447548084982182856258938950498014683673034343462563418714001275053463760731431015645685804998131423854431736929574387751647975305680879468429385249586709637938027237733428234436967662975219122044502814209745025625939664799477795982221369957600327578506362842089516399220347927883974437745693477731900995392320280170388264518913726731807886184568065513748425392810105112469163036259493956976903958196312435493433310491757658569449101464689926322324208661116236169548423860087496020897555962949278062271038000788675408623812395740930639064077368404056700708882315043984990662333397831291554055959618908973335093117173727870368828301313101087082855950736077021802474356109404659486184628621195370788801953526881788135843952069563706990965643742648336948704008153213962239224519177175681245996774747034442134659112603291071891659852189321697541930940935586559367217473293135029540709194827174356671963218739107716285883825684096699297650640350200826441481810686947179879906775525591118284977969656983513706100697771896723101965644544810463018561747945945506016431612884711964479472172406717495183381426623820021063597224499408055171808639056747404934544730822348540040309954497408624809148548839303361410266680824493724314197128433667219752062276148670458546681457199091140583787144454707382298539147058728357772152782462736219304522659157523864122304236615680940126059796349608812842326012075391025538499849395397558622978302107543145929707945234451779068854922857509375067355534255428294563069552348679588798000622947167481780089904975708414786000691203656973943590807329039263839619871281557156219423847066335921911291754359844855115563796821528471069252468003363335276827574855883233158205312088365427553465574767474701802197429481596109720858296466011090304413893587059820289796558725166487793178550100390035578170005026464849650219664078699538092691710543288968385523690067840705196844640894091246338255609328674188108560894654379730668631806930425074020896280314408898270063541607896158871055244570173517335399820424379767433041502282062328683837398846746475963245549063187289172155087252531177699552602878278986805179744960332161214833875644283462549731296199000898952271339164403992532535803000180211106228404723737788032561213816982670256827327890940932119149990126617289021302439471800192857202620101964758372106509632449321715662269746867486322694237748827729387335601995954826704944179328552444590646735678071567063937403897586220371687318966329364099163241993622632827169690587425712996655835619276033490858394460082648409066156147373675151581085466249837030975095459608569543037452904189645200984470850207736251333733875528486125879604949500813595135285248417790070109678741683979049324851974004729454558937283214097991348378928579030807840999372857807183774694125693546325940397533434260396750810807603954303699641826024271517948705749559244587660519158240931000001876353794201026938202593123548628228437094042805196780220114995591107951902057584881194675248316781712535441983586265352071396929777663097405097659351302323350490310384229735619859531958385333627441061551773291462865167500722978389004759303669793395988386331903243122304567787877212561295483161619418154151056945331297983111281054955053002887629533304413683032736899410336156705673653339944549491815561008669785087779590395535003745613801941621488523698934849007656894391122494270995900588371753184593289386323044198673499775931444408904985112194559909412802866072153029384505444197336086311915579219703877907896849084229959201124587213792892877439453612800558218209719644240887935155170983049945234505526345393293319349364298172349687978541875914440171251955023331883605923477273334426149219394011548537385614495100807514037203434703371610226260604591324565102597436420343888563475509177573936782879592282142231741020385077595445425158307112948720988022901170158311698384386008108627387934291460639084166354469609296001372437558056277815198604666779859126288369602079226379600166169961887343731207013615577366355196397996992468809888456764822748700136367452586204979679599918264644072101062284404893741276580367155794020713046235192572438994415418421142081477872504464050849186462566633858815439682088807525433374872509717708694142759164717665546992243361122386283722917920874658249069125246216466682570320603500831855036594462286029110049722335430322768711570712897976603275279186926320734011434743821088924745314646338494584735045369084254745723514701173855505109609065684965900805511152088130687919061051683453090133011518916748062445879710864348818013746334988738835660160840172380301505256990848272260164584192643193066924096807758660942328478465307348530862555410729062354229152563626557999074338617254270040786604856977456155359916591773283753958422430699583210889313401413488683734878490059190349304766002654697955325512584232311586052367668085625900308179455771229133328709737508540927639442190918597039311857095247725901529998702361687209619750675262994461106631094342315825747706206240161552666297022539431993081059135414519408671620490470546928158657760585577917479220825707596016732210260529114602944892578458604515450545727067442080374532698057345046215952914501301583348668180153806774209393184809918858992843542407182200298961162487351112323250148938885561783813966062550793810568446481602105863082651122396123767992355859613246714424265611816992319597522151937400781952786996405448567204178159658422489204819615975459813075102869396032857455946344664186772238627545385781086341958831607044928379354429122471397496992322782988828908289510664241717986709097445912613484084436044482709168280676069363593177522463150784482236490272493843480499439194850086952908821401545695299833644958273681852465296777964662526104547503016315185327169946341279874635974492732088080843542793037074320043198839129597978980071814719881827813997415551230039660071641183200371169948482117314184629027834506142045424240323226030735937073606588362610496145438656487463881173477691639178391312958312651380018910090660751159415799330040154080750144776597677605172575855207643582619791841237218582736386512534275390806427732942396042374512131501040154043104165464327686265853240802044077987577116994238662985062926709210371372691349413867840833785100775384319627736250991217471056418846374546265433075218956000897001555823295890985969941014301711753447913360997857961364501471239060264669348891836920399185736920234084448776016744683819628787952668966447323988998383647417267678689521599206778468023983465408118596872065385564916376312640879151828743315455650829150378012902873494141401777714580123296580603786259742743428226737579323694571005062195237748345485003194489472631345589325016611182082500723891758277790345280509985309807815402121363678221476797477596681792920736066388366497068013758742550195094805575686507617699696187368311220625932390911644368263947620655918587637985613539277907559837315533416606896996968164038645941357796382603966536973335315034695528458817342625959497213099125829587373113332460640437866256393600265851311595802530994364914057798866835485335710164573337388123158582923127270745822679854799248074701288065007664989910119374811057031226742612940938776980426262132855299697702935276073110848376485167685597346424048074331441794179802109291437114154671104725838147039371318817703184161564490904651860050396358324183889016681909387947070767711507439085630309206642323333995397478184232558840184817411881701530130456962676889756799094070660644243403934820312130135783496654903533205996975198642379752615874080578579127139009674777093898060725439116333446975055308882065967085796284940294847013745757503868693101077575301412887520898214636164202718781063752296920707208130406379206154008224562502072944862676038528961224603892700320732145326322637172907015969927899905371843076431352636728331596293522151879776538519571560165088515150899045450280569003553670865195180704418622193032000135946363525504493977622638627339229443781068534074972518506433610920054090073840477247592752302824060832737200092246014909574721109612676121803890412287511992753485918371058008891342038234030801242406338433773360767943304533098233365871959020864620937808022635244344414890565888103202851855276616703482659813499005890841656628556652126173909313917711376656028653434798984262175846472815881174368934854814757563982433042377783563991641154426401997097901308217311247513206397244640602627611463336670480288142625561779799767463863232787503281824017241796465345079207696947892876691779054037426971078546354928638505482430740741786727067332429459652737731843170768407361706643251108788968776111042164314839165287589548342325857050799909375742740660905262867647416536617468153620801512389006819406704471098474813728542441629623545448739558104597150711733040398521180338933137258901186453419015509101364252964407303029348580171670267788000963732520520447274250436483948567066803119784988975168739197711064119883625706037027210368457769870929698813903088337774486121704180794128298336515330532232801518603525865966892099896591032328340913379980699393649582717976268468231071331534681387491264892423709889932006010130609578311863777425531499448002531593029868369775034224176689555838752685750521032689443166510937843542900135451977491460298599183554482745532145161780914335496598228535869290394635510546176970291036976459740815225587591829769542991380690263717215209649877160576843831045951330288204160466606405874695666758871637469376978882943124781082792602249352122162231438693349779530997175013599524223355707356330774523858773817992096755727536860325860264879970736046116882449956252161141287789139274826310514077031560234804903729701537676989607559983508341671334518815508773020101110647340615355655845593858025640984690804146136623538041475075023882431876525991099737057517272480338839163554345114516290032703939041644631754523318856749741630768705671089659865692718010316270782459518348271713116623395956654798728270105779692544359301849115106587357229852021238700329218912398216115393409853328581011802837671050762016580872366975729770688646868664623383534364351403376211434273322474237864979184388582906398130782627544955932259619881270914238758717528602063704939288466425906105205580304587947660789010219302159779538302155096858342675755923698935588525796395660845375484801911956669745736144078066319565424992587907470890167884981921802213184674668207571765665380365788182109032327134757323456541162943387207696391108351881298741319224492148989621264504187984523315957236992624469290377164928791276702200804418831941032016163336539512165140896208474676768442029867842613207514730761613458566144826036280392608284653829865792318168647949124236825765221398776926068302295335207133045912181329239147266843076642130006180465734315816981062098802926568694796791982745255264030109105592493397529765427972913673019146054985863227665597494442707506361337538548786488709901124791034663215159570311399512981090228829642692631315840587388308026573269807566890939128359906614576618741615864055172862616150112502405619268654862605353209619970912754471751029146917268978251168089530296875632153596642172758634019022395696835748188841402871105277262024493077242717592305179398013897224716955041131101901818021788854061107095233318102363917477129995288710748254347130948063556620018677205044240966849528752612746490303214771636714687649103859025888242684447753285937764529543720817611812132761520921627618231454540249322253143830289545882375281014457975362906883149923997164597522508831859227609385464997538630953223046576874386449952175601252954568383952899091616762331716408100129619705095046278464950962499579512320593416439623314266265279128281957799402806732536722554389504414573094092735855103883260055444138435598134217210310303109100298238162102485962836192824685030006905058809125624362655105924872346668478057118663150322064353011893566757177682026425690412023598994292540604105973153187532764847569209406695612002196254109438431403473758336673724815234583881256587163374684775504516583605142263137688164641066594543862610332190782066751734797492436153383080671054578135766276857084471622529090987600893970782698609473037410527860967481209344654016854874550229360849238204450652378873079442941064351901823111126901288763455342566172799056089373947138817539365882089939470603624228092092616288727895398239409354647829533141820889570830376159107676361118723291292708112734486052864650851155854488113869519200567097979123697847102721660719792490669170692297789166049586367290141432618321784177989884079570587239949915032510793581471968144288120545896293012737314675095870926662720721151258834472407455431855332390523907949257947705030693079350698144997757855810149081591351984462895250856018188955004287408533330416662415607263676257483604505145862927572748355056604923504984147796048237298540859479256185875979512363440925868609236921974868915283386631699578830163342344562554560613968433219388991699242798614820249708088316756545400722845130676085628837069667193066652222834476831489820178762916229055238995394234155663539345697842250100526770262873969628586258901195333744813802480947579624036421374857184633994759422256244574839377167147063443947973951894949078001122597012194664700115893199894165912349068349160624792309699526281040727276036029329769234469786819188589749079537050293473159234359123958073350002413844992170624554148634279087377163760380183710768678607746313038662281536811031177375205303145523068732414666714618773182491752687884253429727750980913326162722180880317756454971525043107159291324925786764433894465483271859196422117264035407046102135144801635180713001704002439355836765591654627096465730794017845245151132703442111907399339055685885660687772428372974477608623535286997380326142543189215970903525200891639531535758743034824542431213599829909292527254828434216365614900130258558631576141879519973270397499314371292354117009352345013427096510623593251044629441268308272512883444439958432778889555671114643495641584734215225210027714480767349140990377208892870860440217319942707844180481790888097357441064383422197827760219232221236371640732695378661352104763204794605849470057987305957943217386459036942257397816498964905587411138728787189409598785338661325886811501176081926024241807965495566313462612700820973917093239262754235156981996701011467300550850949976713347928482811457398646537618316647372049713775205934961144161508699505605383375916064109780128556944723161549019130794106823447987148998687141522678174837733979413397257262616321209023366649468869159234306350542966910948636536906147283354693811945514324030247580661382535038092378571716825857734654333270113120792199644274902485781591832819588173336316442982389461056517423475007032694464730544924252377992614835570998521895889842459866763689492047083108759559556206918910212463510077672496999523924831411070861902677550880935293174191158641658907549880183788818378309149114815246919851332207969896717546434087075407835108765192518802643835377094066585599055162742676489273964346215671094216133711091766641764322677801167979031080124996124342108988649722450206054597386243809530693034095698980154793354070365288325979047034825147129088476411782616295067116616100382355283035940186623001015738918028740134734875960979489350543462392842600868577711536619984665627095786526726130863571487768056268267288452447359916173351018034729973376190366949272038188622030565453899715562468118716687189310050864353779570016887106313559976928619248034167817443402534469963207412307500646372684271859249668222471152554405712810514358007619898189781775674740520635204277312230612720943853276225563604647910907105314036128183024551490056180617776879008247149055626961397011760276607960508771551637938941269599556387653969740555706279726643612198414869006126003864734742697618337881926961686043481181316594328058016825610276616595488176460380679400162844643475035040720823952882892659656524074477117975872682784532348588198371846922771193483127484016042063225715854741572848121820209059653038588142485596582313402492007488538017036264035816188380032049282040576756230621518025722871544990344190612651416691289401704974115385679453732579915739482347048355300326999476359134329743799753500642447479093671949087516419013663020115724262634276888633865852768512035546742833985805840759385480647405102784302327110059930967757585196487966828852940717986129621096369222886274795602415822597374146763227185004229719931889805265023822079323140592277342177402233585634294107889504596855497368718299965081116998965623428087777302388953926686110415223190546452242741856729448971752518372247866671704892544674651256104050098519679858642397002130523729260730405285363764486470041827992213933346958933214858654270923127616508018860163900859882567924858993349735529339233579594116020601210744739572140268898472742918001621360532540493490304680835455404173641102323751866190860441731503543824315821036576025362152541632379614792235122469697737942943320287944864454032683362425799144276463016324721037712870013929866661337578295560502186061190298653079656114281991564367467562107318567869837766523019206368816931352709328027390898119765045073229144663381591697440116831076386391370877124597556253635865995805407627249875196559119815322314818544663460086083976622109100686053665707198735346556317443693870475332947500561363745914443955631737180484116496513956757071595031756943514397301970288122662040572075150907214338019139118335746569499862596796629758580083470680239474054620790144285838760538290124894332536863499765856379655259451387209580402510680816027555141114805693020554618354012508612014698500016389985697764424674902311967853513058099318801194631072648777136977605180856431430802353192562230911138859539008063455302279723424605071326216199324920686347410402630386624463143099893599374331686426843577624700581959677324638349074749679811979079014648131888558459563525439551782863318038762359882140010557176962960922679115968435002479037967003191267688161240801730296156944494971698786529714472237292054855608164588421712166233971368289540014824718778067048154683919531290211657731014553500745783454710378886368134645247202940600184489366057622431153242695136004569645582697822365475103883507717710973767556208994536270978494406965300127124721311851019314268942664261744083629324230167858662618324848678732633697915828885791674268701569298851621736126935395687613493351095056498874678819177332291741848253059579951118231431946444924611729831256121108132282984203059203082157574824219526747159962350627602544971580173903772436617997135172488534729671975777072402567295703019174405512538687805004040148435661713810637728892929948892834902025304354918344253948811702890576233222997341993397991104800546612067438949452613742230615467454307165695187702766909342396691779848002376502849167819327159618068679515278709704997532849582659311750168186069958349809368427574499537632286443827593413092073434900349688109077410075489497286127500633636870921695174015990923454799895767425458142261430850270547392226458747920094797018446275667012564976407832942451277423152010768653952391105026057891056417252549471880899709956860799072403908276719227413497197157062001835202890695002147519150924911847708798669627816830752984120012200801156542488009065559565379852504635051806818615220236051079452054506355611042525086734030062016638768270345711289889484116381874581236436952725778289313436916500746257494115417050721752435380853053448021636361027838740352071096600573013019304506957977993176090252579312312106388038568823691468168744130402849919275356251389992032477854328310900845220552696517547552962936847742493425625441908168369229901147437331227762891329961973562957607144704704840221725554603242002258541619832464883290040066739780631478220608115127868142500974212781333939314374956709428965131791827986952906913720919105532626705374854912204019306455227409392372450702343705574868045847301373690796651148511441074415541255300866967378249704062695477854432371835917907112342165749418100090836257995305230914688200994274225071729839156586443344533344144780344115124439930426133999342886290915783121737698266499890456684435700801670497461503911447080116207899915940170703820530484499288389107161794695098935707748471415142267123968456709561940205512235579026609758061024101631190762873155964304588133298826281676583287696359269220190853774570072429958773244272814188338003801074847061984780282551399426243105143792880334078831158856509032094424651651700959997023733002724950654827036957545105257354867334138318450267694181931303919273542009925210266576575949019819643494753846566934813963085630058788271088830725958405681128549948344220416805094833953497288835526668960303878927075652293849728398530006408532556355552322778257844386420703290816412207442912402489099521460449624967467539861367260862194540186580503744472964442941341078811326448611067785963579262498460251845238330642407627246169911527204721671577530298352988536891616707855538341286848344500028663554656250290215703547834325904791206872148632655497409935324505282557738058075433462065093474644037152551962176020460045137947301445900951880841055325235448224337780884671261911638915828097318965312653149972786814637749025381108987142719052362509603023871646666439948477485526433015869442196906676476451964239620390608482826039810445393592678728853256390861496566078032622073013083321265892907859744981693050447193792814443702789414243776634193667202290067934951969279320171690242338218494438165140996446236279494553184826145791280858982517758796202253399483854767676336997929606656650919420010434122371762505456245491388125339558146487834581162217046380818565155017057727413428842689771144316068647439821015886107860687162063620521871044178703434223025208267034398611797212048075557301599688307016950087943087356502127455889245280348252725676291471324088700380400520683858132802348681153214592981407806603179998689768510903318669201371634439465275142155375315985953109162214816701277040776903561219247949145478608968130955387013867167601273662492335274346846960549022936570469526821498910925653560538722929095915562735715192667747306297546854612705665550531348413382806449356691170891068794271782271556174132408960258758924320293779613952612508888145368340056138226642008464700982245812049197363387313667144426469034027816118560634260528480052394107572272404154313337783260401541471478783074768726104079346537904964299749628194540286947459543985724892999094707266510852083812701536514439585537118764978537853170098384941624230588062902810802411999169326193780734270340465673539862401000669002290480691926180406349016802568707771328823251326084743052938636166413997659533184145378006109235806384489215521599489856695639503765958385849083632008286145448755525320186543006688677790252111127590923444904627846159788270737384957133114229628943507950174648694195829156611342264538930635172686804013102250138416902967255973862596653100052672632858306934058673038757665233019258705296605924638783946470249477321407700705389879457170309574856126070706151719386691585834960034316077289789032440391537494134003404349044159644691420176012761096578028225945146922419023742464477547565808659084255184723688020977182640594653357256912903100833679832020545156937991196663681755381261693970259800348282007067211424901814792082471783425883705173462931207377198734294034425134997343424034533183223870774950434237688573868306087072690703738475520154812825097753392824654724588844242742813174812248542854832507090111797154354001015331450205375580777407444094501345561085667634707390236537959159186675406542332187620536342414178846667324361509052401375324555099602545594802359799273984948833364131191537564050125429079153170120780476485037272027029120309738762988505367021646698491521851684139470076377660363325611533603574422224166303857298357638980666948423935649372287009315975201044958519935083374592456694742188673415975111138600310620203265030281037867991734523919544276144446449185964970001206743480106713203861206738375863301919589600504678261990326063837896825477432290170956931462516074062518442442006742788614415707545864657693259856988291262663747981049659799040951169569203417554247684454182877727134524423650499628953494592660210809402703595599709857171171556117409222897898459958862819152359160725330063357019440478747241009953333332758178470168723970259127294306775487534051485372472478172039802673087964901791368489613144475838035801873613033278216464835942248669943813809754278821956136069073971250718816726849395447583336269429114500724378597680936252213810529601275866997667460906827122343787489051846662571155834956383848649098252936255734904806904094052869986450197201821178806726726290974977112366569802141251252589028553415097273802821148641609070637714029709614176756247388310331035881558801601061115541060559230433608343420945722689498941932283241315523531203386473024066881723237235908105817240916065755956374189303090386358548583967827072429142777223276099925737360685030420105086622915148144176428278394083943106164308990995382084165284749039495144314419383470465302619069674646846317499096039427706040986773989246050736524267668887763773833752522110367737899411897694567203433950463706178577802454371870619134642801828809579419901480436834116849896398381684316862981234371516947279214640401840819112355584877438765284009602288047319723725751966521768441821541892613715233171543159116177567769043188839452174536958169992905892922991994994080696463358740485153071999749831386923115236874497466714415450605253480993790855916490626951525357274404381149032331964263967089775653479518902556676739205250175870629681073017223471044603271658823801437234344678310730461677036548280671539323422846730900513599097503487581857261118847837154584920585837388934819438196042975138159448567511981221505996861771887955289452878756234022218598521702652691833454009746827650023024735619700126847985402295125274255678898989287772595450948250267386083359949929488145549888222285644206237343255162302605072847028767263758227698792727740449609220833238071515983627287058743279632209487360103151142596553909509129780968668816442528684793678622913039854044545266548530041628215120088311519779477657984154515917903699034828460198389077589370915765553394855323034387601461189961668004934927967791785755280223014156211821424601279438482953254595212953161498647348152269155840753614352062799389917160720714692188106454950884881981806634989328217705459294562894613815405109008377542143866070041936994078211849780238119607987442545818270669769225383190627916054840855682897409383266054171203833346532583656023066649210517674181396632034555624804367999775965998653127095572762951005494338103962533229453313030614826884149266678361179263461305879967683874009318240955870939354496601254584504130766161071445087808806946124802159333535760012325549820587476138020257873620084730971757006463994465516238815512605439795288121294743383702783034212134450786829592268717033608863991432890555441867630810706564795625879380878965644775231566573299419446444992337053791335706494440189941263872873315007906984019911828489962555149081292939204057387515161357226671846696965963936497535090283200643140457401908809794947046668663961294730399752045636914008347008303660046857576151398288557478097835268156205810179919868293587278547663233914207657698076165594441559781099481933792689056762180700023261188111304101870580903668560790025111155787058547635392474139438602104836458371035696540610791426859139951595804181314263434368783502499312119801466880692269891980105184717770156432627735782573893876373994531220701241997753708335057421468040215835184032565694499215422662973893887516037747577325235723690623162645247500761215903963711846601025962926128214324625692503553742412885023812070704006768318926370755801408948675890264523767942369385522293761553901002469342260680609047495566017077472658935517865823050996868120326617946973591069254940765545343899140673957549044316802111108998804705932728290953499562172777569758751394334325582973834432805470690412836349450266152242174544121645585215578418612239871021819705098022066388894305600010456036732246473984473360316688049777185825462576352043757842763943478402535188517125544948316399123730635694807139616350001467139840070276387181375767662872073710793771984576604070512552105291736856060091646299723380393163184519861951063441434133958855110532790066459262554737823845172073639012518588036465412057548667234217187207577866913225004107966260602459561342409557081597262036161043615457327174535345273231230644316705155069467743761772758761229958343256258502231727516802106920385933608837676482549476453064941435391039628215181440190877522729698338878586438196696519242218158808490970442319686760882087330164664655480394179508577469320654146477699003779215430013881882791739179515088278622271905015429666956543109974132188661210288084668567755615606565113842057073562557874850417672177599305029596314640254899701596348073710703015477276230165632750142527233401324233372836922149387809151127368349159941091785843446127245506628027628320990430737684570320568005260933394215115706822425071868715860436626445986896023209165187295983598073511141124833303612797467727152056657627268551315557831836305593581813272750880656176481933673676452475285765610431937358824202850011511813901688808467108160476380643527021177443373832923461108347250608632168435287369349218443245710311168499436597215574142867716508155768503451468114955434249859443255844574865449153792116587129132620193740139617294314459840444149753069210856757653216754790214112428582762865825406607935842162415228070961876620555944473216604692975616893910608697650838929028752658825939471529419049440093527336232124602416183418529779489615103039112634796330203612671538870025075622531301653302656625109426842004818120461597166909972327634451704696445805225887184470471581071324866103385855206767494032365482539927670786445176546956466469788008794370830086582320584573802119634035273079687725986344319168294583306293276576620241451003189765600242338386937185730979010057003482390794205739831164220593588105247634010817765417153689470900473828559771030134311852644912814641051135840461192380040405574871592322712754866300430685475541431134228485988638036480150150033146376584338770461343506604147845660147211811704992460669506681774445682989304856419510197462546817488904760666062211405257116277579080394243380109292809681835838766803688676218354640786676695366269352673402439057718306964402635583147446206200405173101618666475646066413227683345377528580802332829589607915965867729894455169969598082064123925088545457149851975465206464553601585532488296531061499936746952158623360510808504367279479077696444557170421996470005345964304014648795930955001197003981878415128696505591960159418166467286265840694969413936903614158263816759962373568462945122577626643045516943445173777660442179838024359492875036057958179409176122056217187703764156873152645271463247718490334116393508433599230144420216320172907683440532007018203851433254558075406950840129006462461552489659305650967555217304217321360756344682334365983942523100711960464449270885241186938586582304841331434116092187465332658371885517002126652175152887699904681193092429291606785148335314595790654775955730089920245751182636215406423588270332632467063575028921353672734691661232543112148821182845367131669271201197455287286498022228276181935795294300857877448734995269830471555030546557534850101456558933290677093770229176077201188135191836276604692824441693035068462547035359526707528642579277855455188789522882369858305635598828955807322596572836430506273223968682609124939419063264546645220212755945394081012480296784222460367768204830826418259051919344078240623499044849999154671758872354226164692620763483699030607243253210665407737697425631767216921295100429066930330741669358835197150968473562765984294422798729280568256893632598829147078755974429305336832138744634628796642373547554842756032461713641608453092506252833002393955879238268592229227423356945973087093779794491262948822720024387879329265760210827875958166232136197880500090680368453592041955215233702377847251069676578570037709175136601345372564717243285062204289295201269427754107944852366636719125884855157648394763939222999198960927212668543994013812200853244841697420177393972903037831291038115806480635744168369957754470335658145496073326470873649468443550039676834697684842472969805295339150215195937424419133162359812348980873668067744125937403193426056045772870771179829334549455442856687399510555619687221753965549542207243265482097697561848028569788710441572745365359524263951237384417190345076820114047386228189601157506746343633061881029178811299264646057908869743301866951059276774678025770183787042815918666920440530996124367694897793221123719460143353775305188207403516644138782552567101588664714564900663874309843667083360302885193597961500265540322308542221187878030486496396955426453759760125607153188547292342687555794556957616254699376294382593387263005994342351565281693133083484941373400583363661248183663060033238140671630541839300650969494674830013445218635209229273245002551404965886936373125073729522106636557527770327410643978189962026335579365649912304232965629897706684389712076394427590645665406218708819752844526369712389884164865382440765610316364526457402309284016731482207563317793562720587396177078406464237411107620219025832338964186096212315777251166910817000731376094863204747485902054621415340871517686521556781533249299664363365549012354350995808946456239331195845962800544430140588756105556042757816059981868931457469741457898792430618056028991422522133365823647788253811824558130518085289568576353460262459878657623446978282010244266211165624543376415249104040540440506140331032306180884444925019911296751103982977985433463089118435331003279409868764911717334462305538619893586487557139209028068598893295153265525694812622472451933019133298711444048851431126778461244161200102371459392778114675619300079623502429524757358817448693833698762754759746152175475267149378165996815378987921334590994544976695871681745840691571182068353605612429147299407057607024320052197555501614203262046007843520353063901036802602938160352414898882994259798518262059711964943891154970644514226853100206912994035390224338194190388760206585805574216805126519969824137636382983849877933141959403824323484020534518231419309876313434411731578559686073305611869600202934090690460632417291348729687041709768608116644234082457523626850010033259196739180129671451839219024736299207016944488949066239176478533932167367247033961611494596531789306634982060215942357996634049312034156966673536227030208463081950411731109382813865035064799456869111263232219632895810954859351263972092403225949398934648022719699794673410019426545705261826142064649150535991041728651426087629274507088720385188942781965444171178699966489246995245413357289257221634797760839721243477883881201355384845838136131181760113224462225366914170219749409680844602548880895314894288412226692385011870102471811676427094072966514291975457083084972772637592261132429842977172281977530641437854200677312084634081733871474167075564305075360553218598370629067941920004581673163701186219985347667002481435719546920063686437805411530876154263591554472932677499232817494168413836235516201796050334019488081695705728341736223472247118631091905292062769928842361442339526681618784712360774819184259902994512178731797526466776304017266234943937232890883235225547141520583563722159182552828915124305460774293491089026983263886769420801580172774315640593403093755989743343071034741646716758805466464990047045662639784026228967407573042852894832198496525811490837541069775442432060506824986604081140521142981141139000394518845389401238836794786501597337522388943998206881162262265955288478482202075414423348753958984663060677176384660940017656025504866180419144656643341450031695211107580824596872838017126875508692388248028558469852910858373080308774425695772060179747651907636730103548684987914712317031062860029913772280181891623783690235581854834821162500670827989736355713570183036084846710986765640405379675857323308187612433454379592335213100840317818105677335242308849806917043176593477968773084441321435364372765623947119682747383643471378539309117757275161208249965095210511436185662208180856963179760042312488557466840446395907203735222571899404340907758670144079400091385876956558692135048036502035856554687641480952721227848692692731973518370880783194776408979722715547771825415515416273466350387484711540567650589309813368659468922730451913635795675989907301117807317047404585537054374913717575826837770931372880676975737496082072288197082784116523352908910248252621058466415507153536335272480243764495628125195214785630867717584567394847940275294210078568998602302635610459858203820490451804553020066581530769663444763083734255934562442042577252931516167846066079946148504630841023607434936670830845934324738343014199651429279661613683400539029362670575595240196213813879089785446044857686279456936007333545716949716135236703464814275968965495022175759431930529015775672492614494864630567476458086430348360489862550558390274977257670061223718315209307881406215748987147758022699860267419166759423475299216447273172688332323483689268948603023763823961015152197118200673733084866628659051182265416908317458402775551105820770637594333857970454044267001534165650991210691232502316159322952393611312953552114636691709891733232652053279263241807680767884706867528333754097757352710519181496530229460250710338820302949993562859456759151324495321359033412410303155211080306523293776585813339997194654525109180585022007847911493226758482901818154911482762946883812368725494949107713693102150757982709084619932440758724573887470768158644775093457469939235900878864274414102003853491637484933669149010222341416407364413385880025599653212763670788351644327894689443323404568569332264312202486401576191401023355645342578530014192421292035439033051606473038791278981348309321242226811098786878454403663158424038937835238369096173213770286454529964344425053269166926044575850589655799018150714462977695797620275993266787202624968664093182475242725685749090870611665671917243290691351064838477463124947716437246546271278037518196639527953947933660370065558068428793743000321949873868175620213605249894952498047383547032833083555671085216497119958209853075658527165046513535409434215084974315661613769247133010603307334734999331272106033335185919468366515184887000647678525236559164943710363437760119786813485586491597557951422939333737659603664000745480138769972453976129900052526409912737063383298122112576071022217369195919112539131206245081860796284027953677984575935762540060716364785662221104703208133134686516844983001502427249831176430507160995063591334229668343925330794057982639100960309607626118394399707542166715177315367380483491549535899224160374952705987970346450549897447515902843215099563968051881795993790478464791466424087248068084212913895100128077666514907219328987802312707543331202156495485206684255563971893938706858319440334238214330687176127067128974332487052773915637536438777226137918604706402836421597627111368459767898454168512702294914059568861156374723891398188456910097740286460574629772564272630100166215539490580627301043759990166250652908482869460305302681826070930735459374175239380961136102249470577762914728510205653273526237626715430796417861922720802673412895474080333596785208598310067318485943758346985210999586039473820220120822070551938370761833917839782099684145586667107754031571811088596064040075795462688654052189015596932272778478995616348517665554769382801108479794290453467971440992702262180113321204891240632988193252778789650363406710519450865911630261045717148906364523151562843946964241214417271378206008571124775229923706644286249863563483821100192158005021893260158926562076628166002566378079670124978463357573530874045749120794890721335930609820824072976684272136026324407589907246261673990422531114671215491475160486025031742366878959000144894083522357161660346750993171183506343026250439110260170101027748768463515811606674021277829636759943458782339215666203485247219106245884193690547540895854473525152433028474919340446022057247974449484754112894961257442844670201686438757847216929591098604651904450020507550676469797401795501211074705389887503729128231624888623071295821729038747924435588702026310512680803913116580091204814062532136525874304127084077928079012771886523191035206832064534434308869437746630013001291720557974210973225062964106165463940572733333765280906246814241913605115918001614944463870438208754669426083228663283585566412094028821964481637265537421647434516783650519647191236517893874376150758180467115257864854142913058437611990035268749094584011165440203150034373946900099303741758812520952034190778956560006824231326927822324293128340345105426400945733298565239520572442847775499240931058294449088516162142827371671075899590489847208509087770012056431033181803967587696259955976915145762776845748498579318066960978540896154336390668861328385023210861113712036317441586358863863238729572199799572505777379630118173973662483609594217736808203395631518139019062650498840206119769569117518058024352606654714550009538212587719210426418422367415401700908932052462858644934197042504973057218578093123389161365011184593102484323936784943360561451855472226032015087401568531800860848444823491249264774391731713883683420136311708683419008365177186580617377062858014937675925557130402853404743372600639050550843009082837970574586994285263086122463823273157640452066245493587778945362803122930811021296450757737978054060393565621920661965771345661695692393076146705261619948691582379783234614055334297646053235924123825838099116343864818987485056956978426461818339303741318061222625437896411510050865509233914722194333187044705658898866553019030515319176117651311288757943339463639875866308305594313564792919851548797860171506953722377580717371514302192877523656344228524676284016448477145561109063309085765013808521525435545237329297853015743354622512424357411388626576677149085169375223834010701708892277244477387051046523150952680210466651827091619715943682911491890546170756467924328858024512284306578996983036165534854774432144574783199144652619165139546891920095659391824184376902285045199864348153924803088794276011070165606032183524610829167278135209258357311037120571475129727147913985957314804560480116730480357060933826636971900045138599484642295702041854544613012982939762350840935210802629483544535599677585067502824756365062099971582157954851870059808462863073835964075466291584615758198347735626395745934931830163899308517007000547445279276211062437107379459112732974689214547231231228191248894022221243175986473821450059038204680300126035748854107775371820962661780179702543035956841281547123546552687663150005493915767185399488931029361539176885840223292676295265555390750110543234557912102100554705935082613715450924656088307478148288706115599734263602847235207505178012824799195847498851021978951148667299912866428185381954612432022874173859776400498294935401783249289429998950045673668054999203800393816730783766656319007748743422669843578603079798698476565928264893610457211135563988015640989743060694198792310362509628482804347136117483930273983760370644018989623604426197960385982020266103609127867753022518447080722775865761726502767420554771239114339592142699272149246225477929603917286513265088663295337809598251202221520315687660181110926089834945918953585571145481850952649092556307853755808991585979731424942054158989050785435227909541050669841808423123400639198035258767198948855388935145537282312933644396773954435665972527954572756064623545883905171342383978920780703470302251343262785873599315292939983263209033415331221434567908119209329451094460718484050626166338261609793427183191713499501198108778497019624134391659272174360983668677441409075312402670634866082477029832187203906365218147372270986962579492442998949129559355691927340451161288422061569030434255167918656268701856663601526063131302622907015343555163742249840542458242673103267012933721353121947868230765273857470289696210728666788941274669581871918776628933817351162859731954161269970599097205159547171260366057719690386324072469274664066289371025471897515610365610444523871959216173052674541715907192359337064090851697592411293092302377849597578691185805789087216086788317675840079786276967836625553149247336132289694335408255459115349625938425458453088283738617642082096216568713244881640699932318393540630794854795185965975388496215144634241156275354468673718722876080846614111683856641302362847386432128003490903006885086508309316586951694415979180002336353274584962165432377372465543311077258647118295150857628838684137625856086251248951124495611607440377003584875403223564902055686460760490804106709051223410619982812445972922230774972346479219649335264392105970157759337093543157323269085870799365345996742312188398040620939378150844875873893059235970111221836277702627807307692647421757313829980905118487305660062940432461856062900994996545150536469628476683283504224623970859672268640031549508389194604871807919860318409640716031509796039485838831658164575982055888510849658349279000231099424583690519041441910423546111705253632684976901471164758257851663934914191081133793533004991764446385238421758974509422854058376120267602584556611947447178617292231928787816001332299772751634163957961437900255858809961600247198064065677572583046737565494468998692800673057815975228286169423797096296348424341071557137231237673603778737902842040514883240498264317387239712059101540648154423319437609635025367434751919560554817840315085336601047746162905922939831666364967145324476336618978958854125263214056457583149531458051185285576963158755181915338921967029264365260621676748203840579818659585191442783577373806616117751301863144127481531910933048062937514992765256156284767696322873989293292331987299449203451824184920118569846653544074162746983473292532027698598520662633689532770720696196703898329231105521754499247265620233113159312281570502373992934580886579527345438188121690999502106764917386264048800615629094235910284696605207514237419028962386130724522427273701720636914589821590170677115465966522360611655729903544308731007273840111909143497485399413310140682612166853641609421717665340657572144864580852201024654490406837167243104573475827564146878197195288989797290385803300807363158223574574275175103178323919159749566804863198447438163665943230866358164398269429919713111883478409122551631413606158471702983605317856286051797277965096720066240076617370837567280541153714396991052378818139166607895120603671453244888069081290370789115424137655952885764149686778502487188786732719406815914687201560802303757574205581713557105484275993701814864253126792567539658785550843378708204580620049094240861749197045797102465158835898591472486351733589769694703689222844251516973844713792278749140071375789830734791622276198526175424547381341652558329144607411775758733682459471834587506050105035841037194164729741603749567583607370448311099728110503548758622151967882805228517971969035465412831109309445114359392463972640222184795746078172841406326012364442371192255980588480594677662059368668633447936092805499438507045089351879277534613534629899938870050610927906089232582522962131986633737184315759654277346610201550110441490486894774036904153865212608125603259165771054614489072171556833426794322177589328058841995749675885685633954565277507073918858895225565562759456517186752245380530635992654236271260253773045307439301840831356294151143646741905407655003209604549864415726541844273902021479395679136376160091100884618865600200058655953625677022465196873067678413784460566176605892924782032764045370978455475476663825500308585707575461435112060058478481206586747685998916392854716669596148706127553233387583745746645548835105851155022224196943383862670056573941515122750415046848177582438115436040409929712688150787971142836684174900054430461274135280912219086727487284269749178545500552189004307505277418006782954503322646097641846653573022823880861014148068346496810486602162397854288460372883370395901965592865496907852464838473964822452951628989372246491472009956723035879496274610896243380694531940436683293666004060918089046620662438218509921188001666347914012023139145490098722530607431781840160786866936758504550331213590043315845834694351553601496767219207695282711643796763261367833753687719345418285160323463197825143521708994041138670334040958538299061357102639805051549132569056912241700152675457958426015734547618613953262520473335315655907857435163551638510187213471386231095810357031928864624273076654550252130927341808222257680176608019646337854217695402403966278625448929627378867444393552911417719082279428566583958951518346177518341532928774173306018140730597208458258996155309417017752513526421253077774825935681095564028238903210154220567774386568331198992780404179353002344543500395958622089172606269805965705420513150243084187279392662044606828516486841918324658236242259542756846836821298686000532758517053917295193887232290388435622483721210791358369306275843872925060373408892694652085029895054212665830398343677142580001810148684404773507312765814936466654798214184034483199058218304046690750418184005299563087362016547486205468384981067229432816781286436583000362820295157793699683562499209079108322503012648292733450510584023873944604899887397511489251649270363346739524604018179796127212640787456050332993165615150857515907658873180312718877692311226132804841184884813903434724289933767523183281337750038842522831163710747923395258822022862774427187910108366303416555090706060669012823903915702480747284468429759908488417950262913645231961377779225614062468229702034107727042662564331628829060955441334360400871002362513979590369967159474152612314903453107206542668739055893852955933680939293398994039325785985895468238849968445396358809631576357702562554884196291718349265245641968564587292576339843853072404795440737746717605009060730694990070423802423857984084907312211129148227168582058297015504912259320768485388617688395661877593545426262208768276964409981287088268502645284992160322421575970288107225367743716499936582077870107093653483369387638552436636601258396207431987977039434214206552952259044620849447080764561099432103972596328549212213507307592471116232547943230175280186918640514558669410843602238008598277768934350082731830746275972063190474808315795391620383734344296222388209084928604178226804865956635301472548984785855521599152122524232583832418834751257487985278782585921655887765653247357925270923112159160420251322125481766527282491173786137746836217945772252503009143898035480574109055747206000627294826442972806336952012752547005599067938154832336385613139238108680823344036419612718778234812340706078520045512189087341438478441694549172015051295212952353823153038093001893664561954758698892782276797557185381189157003217152804202064224643211938704562768152930726791142304162400278184140720778827249746362802474547951972155670870926980491851775782148553604854920492749457632845186267968319689864240680481633734194483947992242469682050083619690111995365455755436996561406312704571722517439594544896365207027300146532961158411476247714183290036634835455026716695576508984552354696589357251351074329385732863038317784660214167380581283541640981066479475870952804272337529636316503055938176022148011590435074604871957086583234711418206374871694206473306430051934603881750738933730437938087350957561557599604937784039714907816146223902571500357705914331504975149747183118217200097707331332841886003783606660639323289726248611194270163507497788025229256280069562652018629417164043406373555352508721684917449672643129622989125411039149023373699986528901655559409738331771859157266088441831642480135962442036900832206507701549240721399428352183105278516982411007073592421543790618794103430211024081091094242335230209898309738365904958239916482132787135288168540218429993118350417252554889234391858971770053710474820542609683101591820550223270063573121632715175896842762826085778964457273022690684673912007931313843456162798622719891586297785279164101233580223882351801628516426830170369186718521281889157534111482068661474475605903391968266872033663411844193278893729491658618600697737150924068128708259064198746175084182355839396051760654037297042494548724138186971092590589775232002916486778013903181897180244786706784090461263469455182079823910256291832906462834262229343583495993793941672593021722229482822624604247585758636527197197903543578789284740394275586990402624117344029487775439025750007032803958018977045277354548041303078670648761055133102808501932100655897472027270876602516449103579359612225369362807470728202108570613255812913734803402653951919300577867265618941426551351990900992857247563727123773749255953137080398052435246439901444466874923645093184629016532801249817096504067941919503405194576849968746252074880982682397279240710313798413934644940380958382390953640060052018987465826948408166597519395938375262977485423191392833221962863558386641850923871029223152618809927767605878366934253128534363294217074618957101571580779277355036316051137159939880053551871617278462588490481326597799813274089429133476719182309167023064317433919988327323549353500031111029573858863031085595588674555441000012679586815662717181878864377136202343970622535279095623443994075126988886059875545373955312120720878948544825408568921971243013999426985342098782424158962011314182501946323478269311845207082249730273035613611341928654014201904586478294817181692452173539612756946092851380503959140643534914302837790806218405235334028107645063892906250155164988663612009530889207221130797442968866963039650810766020950981833649657371011491809960642426623226084760272582565161257205040729468595956442650621410416014874227310369799887835065458319523673677031474753343770471917867679358519016064776212675564652588967169089645813214314015805678541262995092186500005489907715903314028444651084417080626065136274728322534599473209807798368399995447997723339687215922352455204603515826905486899817740808904719275253314635668986573963503165088013766060587069488134358358974779541163475725246121928242434077204528627284708477721343347226866075260934148376901885229132887258447687068370155812205011815020272844445607184488261285406286072708060773454290053603114658232466733091651171616072382723523433198862254228280241226476323149294052951457766657233022252430756825288245142621535449832186478196620517715840764338654001472271528583770891596404761279742528440589443549416621524054641332640358972699079039029240237946135996529453331324890760504821347182566569922941165082156730757740076881937875158096710071977028490476081469921895736978978552725988317593624483815291305831776535998543676926638974464467632013999593132394033404997168381120769258146331461895034544529648521290309053169487019705028984205534528485157222955833562047988742974317108021083899499572591303422234207284540394761928725891223263508016480801377592090812490064708706592508189096949581868766196778505378438570848789829818373091903650801727254290702561557402180595017784609964189883123746056024854458181242644938560352236415606287598661057249240416178656183281669989963236763178510822435664183057699647593054268403891847599430007454524229252605371469347753060283999842959309059884704606958955719601282361847132224651550296580732828712173207842321915588897357512276140513870355253184584472470978261917633149480032108524667721214527421033554787343302099015983581486329831112755297376985062661689805189418899119176423726084347839105454541005186470743180740951956374910303568007673560900026099120791521017739782478072069873149928752433187456050731774859583178390121714728597941260290681068538643361327504287571211892003813678684034295964746412166695943551535641571205752599104772675489382789642738294931898092111921968913288190863735803703932713898586295886815448297233659441421971993565996628362309359417984649754587187411363328333515284581682654002341315957650397107730197018140102116719553322974440027288261905078159386804205221476693565226294898234536155015168747465854932772829169804649541337294128443236141623835938373523316135880117062829702748781642321681502035315553797176496081088855950183107836321311403878407963096163597372859260022428230560844948762549362772666182904272852718656776145980792646770416496204233544638535387047685309934412513699407157543686640576935503611416228284290189101166682406555280038889415699599097267879429637782389578567588733963650521876827149365529152684626061387667811361369152986022241757082940047064647551850192902453348980686982845660053575744871353766284817462997076427518831015895246197820783359251802449541996701159055455511595384022094769595515699105539082319744772701800148853575315308711955864927651480339731005909366815804411354521683177424906738293202177371435753670467767733716560565875583026390984158781088363107453506801235607086529585669425307009108325461229258332521117933877865394617434912087082836992238421586385876069705852925921424790213009235089607177534210936035708253405701015600337533073995368887946042645370409184308015771117204765534860454140796004595187361551897150749203514307632063145143679065697578225892653299399631153759645491007499009794898818801465940532429682264336198936666544571527125553273430404673323250160048246166970611275748690014800173875998394542507524331276792266776343783710586210995100985757399641713511784380497341793880261123003976026436729058735859233325353113937938626849323785722218754569238294261344340278146825301371264762034068807661668220235295681257135438621728516355587666903494333277718499962233784815864154010285444024892951837349652648877068187459315508962514401034289272048815955270890284589395298699850483596340038995099878495799788683154044254115200676811906068149778927172850750330308521003610465540821524033221395563600240626451547840810960730920368906986749506906614286078366508411559161441785613711751251325875134382849456645887126685209714042005293189599573406312356524236441264446565761379641132482821411157864836081885586497931025407737708839930559104326736135678588055393070693327960584601980196059755341949238745726943956228232777186571087318352172873488771898463510960331122278497076091505468868364730099423447631697611545084862002710330682934876912530577456256819960804815886605904514988324390428700918303530886930161665876598958264738929192548085150559050558668361796443062517953035051884012827830295574705164721746289931391494542642773823374817709817548147381941032925902201386755218846328860892214491758093405291493329111664494952064987742763342732357575973582366940683903326896727531957883231132882843698086773669631764334990998571680964409413492699563743687250139844234715408545189157027026394079362996405551273246809742731512078306636289072075730146666773678599586397019044181051088068632694477837316332300688586201685350500395037029230467929372109008060130055982169174681486368447674858866141247168657454812649874796827203141166254968723873080067451709027794161638866409399138191955677231824606159918344002944412941441191177306233054718983768776088206894032039146529595627629117531735982174238706525597139582916797020592897232118451703353360600281277044338427036077310740310555791590242490081688539713576716671129286386467142043696166830172639621973431457165417054338910738125393541079085641103764634806496723027568096931077799181888077230170299256718402140274714929672695826005251194256202130223179348278660523578069249749748910416893821675479176282256983038026404549782099643002026646605472899677466194007051552599218535387157908203331578039417006716579084512115565442182100508016994058730345867475164999307369311191496213996474572880143578471859953539117069288935869475394427623068614263291912561896819672367240932742972983416421649425775655699002146093962210720436425836799008909285796604015451506856520582807422788087490952794699263853379219588816726987302951633785139240258920987217044415776135743531418456243990119881570564523228049345642291909528206875774746314329073092784128625865674013878097822783609188452552854773255410699046034782652095396671885823441267756763868995367381439691021929362561966861637812330806910950744154910085939900542992783401086877971393160248314712771226502112663393667991981848351781373683546212664239005187430292437747271403684342345247537732609513991937946906499208946007524213787461836196140710266810612374318434100810245807525932667698051367073262131657836433634333796967633776722580665512663523114429458394276768055726939117614555278539273226061894886368192165158163053224247071346358856308729078295550000271243597527184456469748163443418050361289886648765684470577531301429042246272298214970915715730730351400809821415209255161403045770990557308250850396319564320983587963663464487265452269253853546994307752501995746445699122554898184034338650627917191282232718194004087016361401686351305967332758101655831262210722454675193312279308109150817524888276476549593428663937793684360358522831880939042182245243868424112919993275288168257423923553595306324557566517616538130311229968702286104851436111447482056380245985320378451034256902459607257403284639469045259886133516740224987313433690625993212101086897748182521699910900503168574439836015157088995895055515253801404679409430828891656583614132245681999710759013056154658638513877626827098170104360314522943539172519603315143712226245369905760891867099468503287035598355102283901481338835882319426180311821164876547349795445300497111509349095742766795899018028948105470735320188133745880534224559104806150084822183300033620798503066136265386192646300749511345415576481126645289288408145822149120940895900992693702010482075769558789069908713204872550517044272356113583868177986009543549749488875220738645665880105843547875890784585041201986092138852216171061168841498390079919356629611074927343956475107679564185063609444900698842430500525158063914413391997071555849774595459139010076607351032980126215781572073947918407583658859679546072482691746098026574979393240367150191307817819576542299878273177709227665346869184712813823269548359951184182663497555648402093567586421097136608845989271730722079453647736730563276130827960549461401673556047100460898346828459053616995931628762548671296729100643869369876917341083059526750435641451464964588604620498098156098117985125281833171114384303240878948498066824511545087901794249048139125373525326580229134618818812287876146882281981747263904995165075326399213951957977369743340094169618480598548016956981486649482094614700968444162579972013824607442924904418630240106007037258176650074238239408815630538072258849916342152289929507517194663284221434812365174704280410116505231224725003597238785966393831042868779642214103271477276961214960457460665433464169972595279927205502856879504286252208411828174429304602442861201362127673186261711798021763761607692191240217436612476227062494113135251521340759928945535628272907871844733405274504096269567565805415696002282494317043916723996900796353122557290422510041992321385732475461769646794205918554398034495944822195200877556787922781426903959270918952513195264608375128417562567108610434013266033852915303725710548512292040233465406816635653039752044442297631836769007909318671618912039479670367914635837317498260497765841374072814144531908000728094660215035973297887347427962594441088021983806076946783728655310793427667103031885932886432221998288982487827876577546292851844058722063919856650847584278703922234290423449718413788496825373846624376886424729459223708464234858069322681649638386887188481657804713361165149852229788123189248907057493495550647762754100188748274501653434129295825052211270130293144503346777403432822303191161626716954494361058321956771412695835468595309750660232484728280891672700380077243313236695327560440300876358118950911897634096890121548400458691582416044326631804212758138041556660263273500647272124087306692979398972771565842611799210561588558933289486843510616663764110075208097781472597084452662294289819454058575868548529164198831219649307598551980565493054536388586888334455261360028538946570828358370566997048762431269513012673198356038262235968674196820605356184434515066825635655949287131532236231869105996560006199858138617253801172503133285907964632183912886913231854280615398153934235563941365800028839649300172338013904089974471748768266501812321481321321349731190364032579478687584057195942424165761721575971055394294679288839899996129287419480221045074572667461694687083070574743096973825950191361094013578111519555547754574400559624154251605306438833498282538922555290979761366019424036503182712648941202200241301718732158819333512215073600156606051949790594609654815415312131960347209864382433545916937216493734725270574056055559089753324536794763709746373625224234964712032859054843813489951791889090570839674344584335861546024356801633800869223104909729966838452009257183318012969221035004203632045168400733677758381292824367391279207009402435977427181424654110186563250042257617763984978008299409414067907195321963836708950468743247208026166929432525238930552693795378888669691703839436622847660053172789131614386660479491339556715545637780011860868668870674435102602705531668294768954275782185856608122871083894772576755479169690993839814742090953058632111431529813301471925715441139811662700036853940532183932592157729066813035582753866996276828612868432932206212260981168140888459034861898924853411580928818729572881000742978597664430288809816714585458650479841760349655517007139239190158755908087307434942500486136960396725378060979646154507677267450635624120959887364865382119668075416142738588812939239677205013774974167240294494292178342228391928317134005554621129739997643714732103800393718481071606130619079010644074502036104675755531060734376936676689342087417180272904047808855296812355398281189328303452428749162603176784237320124681915082730232265137747375862124351774086892127905325988519357247693524126068518884750680551378282997287976036884216201902305004345929653992864396704227263104773063543703422827319232397520363609597419138796682193157599587512913032914462132147143346613264436215749053788178831519103648405611811623641195291091555397006027265119923789059228847009475912616143388984367250973792909686451257573495382595639742644018092221868847629391443422151718704889652434734249312730318414218334246833358023710553141711994844435298448415112465762419579514968911062697774637520818277006651983565226660324564804267228981383339592471480301730595270051604968395493209034920344922784386158316940302575569239901468731682022691719945426009777223751611073882195082239989161094978110080572526313546911116840199051285203549979869707853338657542532914566803076899304925312504732699293576542726866618363848697202859181900528213480328105194950586072316202097466665816240864881982858194201279029403614591320161389508394704846510447027768098195562939084005167906199417507736660364473163278046023929518579988031568069349180282770724317705305067956238011824236477052512773626357688281217624312934113974417710061142718850419346641616635347019643424766193430845757272010462070697481640714036526590478858924732194723402518116323924410638969369181912238007958979935090499932050458641639842074826213274994065914492257907773799336799293166306932609873892049695970530478734694786802611786874057711245278003863607299942660296024467327348207943683894291378190461991750728355615033368178694673227332597420952102477827393932863798845874250152243502897504143098312649992978871581015340740365034001489663714648841353587445709096160515906418203002005403336031697931714606122756224770551153123041685573035186658659186635687868202187353647553559688270319251774326590451130203229131051423129127837096179263091371371603414922701440310303135600847250088606748176154104962627420569822326711804261758885225467572792135200576009754970765054990349744362973991053246575893176513045313624869946806150564633745175954335343422196964362849091659717439915827938195345179548104090516382665661492177970838774037507456932466338713600014279154628077930428984880419599660721236217465117109543229365340879798696839892123637919332811090117273861275037275530154542778389235524772570648166115153917855577316499039849604153784220662724130255548739177241168543848741709008306095740015428724878058181415591162404715993501059167122315858150862080410614784082270556820969882412995396114735317330359762615245362102936916123289363272729899324607152462072684317764294692981372071756484272382767705186114757259272538806438267208239764588114121807941098464425917159517003182142192905797371165231749141012577133159095850079591895092576386288700083695407893281269836716223684140299395106853041833363997244384070028316175113767610068660164247066783749360465016431517150765957038309138294855766034825550086455621656396109553655636062505303806390340674204299327500160742132127232874335983146111493497756312774936748553190875450752813426433939439285908806826547276814459585659648970027307170418649392482208011553417597057548924325856766100931593689120853036205602515206884938643779293926233789862402472688509780312576477960586906736269563867579786915676596408686196769870908648172740642956614515439440820312125710445432516909394529637532716439903967189979641693866904643856324948873854093438469063027511144608923820617457346625061447838024497363937352393655029270320661084366102087256162628508961365666410353000367843177504148529600428174954533099547328334649739241557210282886760328714619404038285666756010111603182199051641794292531759840614175472323043509804271935271214351509199142172430188728795337108524974408357989645055315516024021793962410652563750391559167127502487237432158159442921725297282122342734262704927821075790235711464530245374200948797789578905591058662337084794446499030895817409882608897612978663548975558422903388234412256740892413461197630612809966182286523720463898689834093737033121418301688458838843524427105186500459940565961478377080468815329040921067033558910716032241787039668541498396294877875835700776146495236711269404516737464454143948120560421866404732941223518158595469731527308408517297756862009100819835313490197491535642247626709628755739889387881235367931819896164110407958395461514431288766267791603094181839799904414842977281182566509924598219115688660277614722196256575330383179214451920867982362249955132783962881427944619688874569557044028076749870621254733948694615705553976295248939461768321065241631114504546570535865925391458529483153327704746497504548622228300512005564016592435331981603103310416287634087181141805338864395725193036621376460414132759034027926223822898786150255155292769279691545525846681334872063438274355486381087585009417232384314777206001517509963706003822894938996481431074575099472492820553437635936698819421338378987480607370929729369729428940088584582718964183777515796074976721119236683270089493430680578944658122381052210427924782155329270563280127286147814480851456437449781196064103413520055334783759869435180076920942843475509462037249707061696767374216283173216303545735768911616431627469168314814810695569157076330727160633289418923022071072392418464875074038052477379231111741770900531730476725800439030847099386345978691735696233501359834462605079103614429607145726136260648989704666132418580876439215641117546813550791809676710637603416369065806474441847836212952370298337229239240098850898559667734943062714453211210193236396120288708615567588161095251018001442280677676645472627037064256528576590994578174542772181277641270029690507255012054106908489900784448447890683430957379860818299868208632473043731677171027116156682063220484509950896790400976366261455338940092879805415113252906149054041427550886464849894784529567256234950121749078410414854091511618391489094418392748053746827841209823698457297080486138769707397012930604397887447873462173394111404242153067242426062916482042093790682818087397890785829857490415130005912774321445145306320112605442311790302202862500205883116107021038967594204353849542112728837172472271850536979661106878961403759070441408962467843026155175454515375601489033033618543689526029460423727576804706316852974696964746829041615153564946803361310768424176516063133108518136716751928524400900551570412355175565728599990120261104454289588113332317758701411191020556155025577339630785233046471437560375029231293072806139663022847972864076236199690089763791447739330566417496141077353389077148412532628628711003335781718132942173658125592008466697740815116260514874972306726456508742254109304612837215231056425857004139714017658652499023051199474453351377903140746161660295904955622802141515007306477292591735613877774226561705399370455426641812922273131931655113117052722665460885870152388858715349444430172908734708437587016481144295623116233819941321323506139949618531572693174041407241154749115053321809629970855292636370640301100378527521722675396829979503359702065488668539761419596926909448369405105630233150334949969673541431779442576007037232066510720246862324837124651529741824074774918074029251915436602772842025044865128444522937499863091191835048958570052632715878909973362859431373711168512287282363900458828030435206639508760314190422579241166252974122723460934051561110995413853771779145519602084544960672278065344141580934173544653269199751274315628880417248063480020469498720224553989986706553346637396493870617460090744973624962598054685617373993990637755981327757905822178402962058225874218486420613912590388786118944913137158338665951373640057242318987344985295526567273926330337205242074328101676710180133106727275652395404580629993429497886270050282832627187335129108021969287564440349453775913391435535845324199939386870190008910579767727671563022385724517756046860142821910921950261204010176413236640059820870421335382657017095045688444464925176284965301563410728743712257538646137216808097664455682415648718329368010702395811130732064949850346139050345664479199497258525965396146885651276594819025408783782696344091225863796193718353775769941360009452828426549833153478042685283947731265115312404876027091847909553478645155208372838897786331401403696264150429557080948176509005965554003388563089683451239822167594110662158715935233161135851077465249029690143266337544043918375812772472096613174303150807668668462427236907131585894603160298230626518108248230652665483054322380352491098812859186338335632407985223699384315008615987969334054543878117480079969682283860110734603235308289224618531824747799737777998622259119363201550135693117825481054703600410243861863195123453795176234126305363256220139263957154690416906085434457700303752310086375873193458194865202019380548921755487029553393898247640418630364071044054286709754555475427844950223774721589790552570521008760591417818546716795401219064675199411297119733838148559417677045312880131683484414899538130829736011401000336991872400120102320831072104375199719742690692527120659954995541316207769492245362326362147941522603544364203369896561341931386288759863669090651671161159262082211585168059013014382126351924160637024309748746375930868014056954865445880200567876171104418855819994029925732672543715865832095787963996390759609251302651918096730487725058237884861108219015311824301620417601501105192714725284339301075549774300214310976293067893746048708618369545438202796794727465431811567705494246658263091682622797192540431550794999237696127133721046507167859122049455944188191557956644343172646851485866526114292048549602531041286797975322586750099549398029198696167518716201777150009694097138942000173752498588816071795656738394915641416228825651380971968435643648039485203107132092131914823262449224345721896642694163653437101314438764777374885265536483840037308779213942051843912327618649213781447732331855738169670692925328810244241309105535168488915517952373816367030694875931430295429738970972727896404879881134666806615691576339467454808544211680463339584414238531315706137747519684450862050679778012444762059696851543168078454410513017696802915415538490378873709254274724213135004628212010769872478863528891747707951146765791615870485725363431161488010515123164464556331932243830012707405069138976880343696252956658467033272953023810541676444523234937861754279196399031424571962090730646785780154303177134422500736579683696983908272926999277011678234690350831523517477692907747786843426559129549385469882947128627683473410944164077153912766984040363241078581772836719778144210017552847881461793949403891265287885378507548836162169537824882038097788937362620006305245266826742623646289210203623209699460317789342164808937306738795421020354629745234783597149749144133093559489483981390645392143900586298250674973743141568558082805747787734140297862715215540983668168151027170925954766113674713185081976937276360753043036564144483371291989547972281461402444772614629152979189880842645035922913464969957009215936221630280013613851188610202871598825878075067003459115582465565267985521242094215908796268699543443110211757219672783279507248313853831563375328526346889123037106981176305833857534775933077414873700593964838391339032682312638338489129628696619751924845754256087760982240973391489567589663391108916423919831603869859382342759877595857283509122835648237621255176217624103606006786430210940825831706502921028061826125733056241855341223089561714525066000889882899002751198504481172546850183219258758669377489929007098098997942728598938959244262221004782118039471440892976220050434934260230125858166561316535842108935200343068966502862783212999089683504094018942245162765795414160615943615200771884782232874278468446654256252385259634517600521000867506787862788424871065233637942441371114690946326958246829213767172917857033418118130724053141303639210494401947496634305136810763577495953529713958783339069923657469565920222510155189726808315737045860919129960531936469515505104082486160370508050565652706377781734084180527670194921071725363031375450733151165123131918279560242093469758101660823361932010639091948310351654694989581030905754012898472119531713996651627181656808406346121651190031224882001197342538420689637264931272057674446795887839663282082929582741373476143887231890167699536414897746247829493733539646701073460225116077259667228978134584412878298473717041631823361593901988080556364333082535689027176162171367696110953817922695067625626249919454034531770099597143109085469019910573289612682642926365097481474586959176563776357154408998002103243177617370099563186331957014128477568472009252187666061274982022860938712637524087143626085105919748585242930766058072256808006026631032642916315105768357381837143873175457210283572660685067060353246483243145842800197727745883510384146592619049228574415596776518763694745925675625545926418376942081614003891755790222466599929919962885671424846436588578712354052513842292282858325878478055246998289111198259739760182486189082128153457490514341873846240615963654519836759101630518095781398780576786866046450271380898982578028865483919035000730155820993561099321216422274166628886180082400691354927299104207112075944913451979223214505321556681631961364738249369032232596041739067722142003872277990699870252309173814030359808863808679823320866464399493780761061773333116413827688872845576007013057143908906793895996765442680846220329215623654789838194413706754923914829888787113918468459289338293046674849540030805294779156468776917357728278386887791295453494102666789293337925371464328788139965859259456229368671272108594753239300910524657622848401830486340631647725399994746212762928677921837795627264757202529894148702210558794235771675119470952738342249241331974234827595196485065324039970688998909734894288981069561798163375530845757443160203344800118489150472319829569014445789087309598667334193620026740990694911248201295416100096531322835699883534850646849325814636408773839965150072327903960622831537587252332970302136885051695419975534335500537508717395511206909214136446478378595217123554645893242153517186398390812945111668498650507365630010042428569269682639687576523942124592356899952380712693845239414591587378867288607469904513077048204100482212221534089864827771170032636896586821359974779605173919501018752404266398915679444500120260579010194750623213926071442488340190348995572266228640601903569789764796860102527117764860391685592279024019014479668126427297062741437519559143693052167748003956403076380737859548997974872510369736291398975055378442903999876529608231845002086886602123103187855578405109135461990332862688680386835909273608083834421292251356931956585576868680527389779472836697194092281976525980873646834226525846872399509733311131166658969521751666880843894898269983837408289273168537759549989574611635814821598751508956958712959581565377386795484902474869825151371193513294432852404180253537823662962063043468994143547479003463273908455862587702320607447945952220486367610813401905296895045208492919895872145182315838986257047109492393728150345891582033295840010542480251671247329306566144819687331882578720982460816032375708415174168835769059512072165282881336365277368606353334953277650393807902867292843982940085756309130747141065631907410010371476349863407760371826232633717482314952880349297114775174255517746940098846005310544074938350694311311101979745725869353500459806059264195128594146284698595916493953785505239656443070384655415924889734472511753314649921453391772027500861119093043511713455958441243722910057428506171082794832971380914691787971367634977979953776239680657675938254927209187132797440207605607274487932389963721271642933099147544415021839008063731618049129657038392850753221096221058353566083494305387296578236554016397393187680363244514994309826823858401142861610374237501492593116577170620186766138780900718724156185937110167352109939850825311761661255031621934855507882871772171130579188113863907282337891051435728110287915364339211797393298369305207716036158568039443563789001896319231307543465832563235035519906147886233054929957039461687358863485744748447083748364065697788235713107382287405306630349284099486583083135036738164907816050868597392022847866919240516202777913044017222908684449917240761702047139360922958393281626405865834676594020575533663064644885220054732205812183650791871597182919204623662394955429386708664073455636948364428688836154106876045069305583391669942218491647784035159557232783461562897764493418006451613671090085829535086280814722194501039292932365045335176246271810406860597964432152750348438527204494812776314483308277682329412776704281147565960572428443070811476554385494969975571285354159100452860285567891861759329157121918097748824009892383167036695491358968250470779815612872320850445396927247899919751195492555934894764322649659744123514389108361599310972541947756044317938638333330314839608712116159636363967971757175195637012151695305313842021938695353586678314329308834782395933096989132235782031048777739822481905241029254929512452040980172418202854183244418634475715876943539920514957601682248344724976916107671211439277198170712307681449801073274363677525404725212124785805264003731089291834259453756451985180861701711384315857225524422644222175715617143928848057447094345059377667449628421732843853136013564497239432398410001012465295104203851254352327890859795083252779024676950957064460047907798351609560318998296345106318427833361615705310182867090406255007496475915395529871821422222153380244174500700363464846589404193345752757391422144335982220631787328845700882648259398838950854840069604241803755881200289409101835123008877645434051533330016346103722068494143476380277405759781713363818461600165743356369111334769588581815948768234180465311375113150112267514647703940923777437371065328431565578913657177543626279703073967850818785102769022067646945802471951341024064623327772316192990832812253761926926205306288213625721318524381744857822931812559719705090703894169424192841094172423697260392085664987202566285555071978373443395184553929163921595627750178254925407635347466348827283117141893309929646233270133169713659341143630997819015983347309825041462297598569862557905709028171456305776284476494189581811118305331769792701057212483547968775316011636353363781814531743348934517802188934782703969452630455562541932329477166106089066730871383329717517956499897309513975323424939106865361940175667569175378376145165169107727074404800374047714787557734574566553993500938142620544687446683243917219316077217199309062537792260804707060805261816982481424378011891337696937860208811220659878976997188392466380643228958762919602435004179517988497305832102408628669094769859726815577501905985781638037300295352584307529197821634319679225011990567541983526750303337664006401994768435605739883904423401541050248711731406006053943040962505581778097730106903864514046476655708296553865996227295526668163827507595244970297391858716174834613145522014928855252494541804254118647201103140161675323801205031893481964097243453633216966590868278405200446120129449444530445606564825999040163793989309764184206553696975249704155472678138316864014962509931420697399488502133360133531117249238562576677904423156321848387323150089213957827038681469356421204899093220982857408886245626637419605128831866799648822435895481683972459929875255197306320340879755575577324742312089727170976576468387419094028331498099394713876699435048981669818597171571003721463697894192693454639404448720636445620831869925668872473240815821588288430566769310217917891444566620307548897645255702241849405769697688170886024744050193286730839865661929667968621487056087008615498683738491014903895159378390351314277379720872600260345796854521808947789981173750143713112594684554708167783603578487397768337527528761900899022978527913827988654279010497085059646901218084838021398540966307710818957177225200412969432505807910269179887413056136147709160331745832514248635160271324932009257067415668985186169137510301730350466921002884595455672916147200907398236158612530743332131248928144701847979183147359794145976348766404481856445415994117087095328525827851692030226814133996430075308220167567031587533269342635052559022849491828643384837541239472782995510668748878836924688261826086662464526032492743107525700231330615763782699098630735859268843288763128674919726244498362482967136740062415426941897334462111316347725062854459762481204188843672967874968111073584299062333224714670845411918337386172825399279396580485549281856976486175516599536717489949934301561956231166243194314544000043313531201472654866897485249144769535393826228969902864020132830599796819494531279586644995868510565543042300737841205612088602963021915419284613248728798773924276884715939969700673599196073777386524190030401187358874288348938240174053248788869166428079106857742760674653645637106908333214616645144292742747208833269109502792150212784290596921520010989873931075319206509840926745737954151012577259997181449209282292690962789543773901014102432441091028302950243057799268333683810708056555778115257224496994962807851947475441254926853717460282732023274913974959607323557029744629691249105757085475111963512782628461092259685379836233509689741374111480776147130943587992643899133052815897750026698278887479820259740860798717121002749124628448495643903014590508270961451618970863900264830892880707390983349850742729145045821165906976463907447935718066367511006984223827645805489215273828320613336180009247060838694070736049056762149851512018700713746686322323041587147343742428169960709559103999911260674036318809868525502276925191566495159082838761970993956892619765744982422830003025606488657169183516523828572983261333854737043798326296192943403763785067519786829646049730699332654927280294728694788104869461569044887409084968385432617320669548368329633352099683735348336735814890491029016917169697557298397788443982302898756308870532024880304547987957217496507022237194850155409569591226166190123761904821482137801892075264772636583575536399092454387574353530728681855290273800523510297738705156153210867318961535340481513019550745177820161653813195282267264205853673467017106499895642044801874663783701010143903420525652087600279146850813504804188811231708778893067111184810372361950343659897507259849963353817691012273228395334442287147268721918726834684766668609428351613851692741632321455317806181296406511753873559352500800614560428274664707742819083128465866650216509855748833377848436001251305736158013634729032166093719925076472095553097963333650613044530737622255303907120562867266599653623505611202307895269566802904404720118465655623319545488885638858887166422706064642912437556499331134099494866270814062768878553322949484769329333393488416110548332398262837864498430443327866520462305707426781568694248706414853114479483570730952499620688020677638222275332246351797132664814390157249487577374828384788872787973651056407773066210252622678568961150330527566547048416138834315962518163076984084648676272149131540518511209851709860998116567607095445655257029075326396907051701562697045788082209023967800853216749257156433803471008118538293148186195182609417621963317486856383695283311657560898551684512805291332276235301629911520699322954008974011826865413140685599073379182691847444627488849037705764546786955914242613979581820013687528896607386523229121252674580217115622048883868384098935625872944066268869034944256750509090191687103981948763768941587560132478735762628223145990429537320584155040357150207336895499432380258419235857269815493992956520089067283014988487248050107048204936609781082186251612992611881990550302609406363448201903917614412381513605457298969489951875544224261641278296260480063707806631931490631028820927898385657360573685657920824493717246425976424727975043140764621335784175696348822105886719501630128001318122522226068231754817994109528483507443377404986591856721387032408381118813262496320406611581045951955412224693456575389679576103977149481967966561210066509199857076388451540124228260830061184146467599739180658102507908219108669928726293027689359084642992899104365491885324521543127189090136192842957451592399233897519258154316317921926646464838452706896831320193605533935144550238028288206602120471671337626938138857054879984346442988112449267401358744777060506042486022582836539621575925693605888771505976992804345596142916535663396351156264721693732925679631118266417835215397648318535643088180289803714355444724806464516814294402641938165930931051810110510273277286839700148268302417644742300217903625079008736297266345633858859274270890969512659978430213147254419849114622814441064879185426860707711428434055206598254343738520816070973733650735587493251850208771467096341647001173949601932483574112194455520973974024767721642210766009635409515812793098579155807202512590944386660459433310323089756345907552232596758939417539295108774610659719087095187541740519040390270505156846976614489422882269345400285161908493156270792516089392208911928144472046043692357518135973528315278492768576499616604018905333657153482829531793964312754409885177798076818532704845359986859646776393541302466998239758730512611015894576544347834238546537082813402567501119085893578506823396947018302793445094246102801082274874615727121335768033597922345584484144796662738448415789365182202336452513356931073211037809896591904203702010054021944870421607972821440493235050200782390760532245366953946576675333608046005361417854290891938171445064092725143442242797118962305596536704558671544520546025352288225147523925306574884663202277519569815957815950018722510922983430570825042198561616412757417936007216266615685515785463634021859079422379334228136697830300167977069862543883683043161523137749655111721071853014417385126903833054741998053379234991116082603330338229700813114371718684863926625997905211882370901370631690170166630629579280439871440813200966958438539734426305823000966838560945409053293423305231170887315844279448865073229211289750492742452478567839092036169663147124697275764790362664356293441585599491966467860678963735067315301096046498287167649590872230651350909597315282039816668995238131894040276696405166681634880503390728409065069193262160425846295225618133997950974527783359304405859153105263141613817124213317599548593376493032315075792737585605438205246439397647830505119962358321092457568544399180886968982647966617750892857113221624570659507274529844559775603460400281006266675043703329826523489592156163375734238512651838787359967422477975176761619389742110868909146118840237361097948515439577885787201287835918807834717813277606389312104731925822534735087815523709765806082693717461469399616543069793627915339051398549835095519138303520359228797593765633641116816700335528068585600364907261748140031262569377942069613554246422983982253535441509239580649106768574755314087397730085385728437219356106489850933771604841106097171806251043600531735321460529439191848569055727531207225776281369720854099467196483060908296591307415390563564660630082272117976693773828832707007311025152045456700274061225476265078148629636927755787338798275518842146937753393639082409028407374640412413997841454516612679079250811278218707852803104842779288877043837296629637630649210251530628367240504500126164133936943313295192736587052839506679861790505620481254002260342887517448413618017514395431445437493344779621643625930854634062629083877288647255829618896135830785943515978585508767129204129472954978974878261035790918149033517760582409823649089641312417932275050766952774100208460033117660337040055196822068642143126022604494460480767196230296973493545023289795978443880265839254223739761019731323112104423934847812576995619447525574577324964810088416205313224679937846828332750117487250309171890844485759771438256557190258030698525363836450025030493202700214234678109426672525211660162282302762028386466596723562069386184416208401862895205601668815757485558654477702047404670646569696900854239704532115023478611008442270813049587132257137423470790008349352295568634307572958818237670022713327677182009548679180938492207523684135509670626559278000891517742379079767064956633951689845819160176682162433794057018977023727429423308641659734228382881776069793118441964169873064413585423491985942454478082457333771243200185042090622309816838166140624287474206982611004457933466274327126554302849098843143387250241789711770195596097254997951751995710680288759534729419884073361273352758770629957971238785122000872746140805323680002791305871728804734919344622323146638094764961937358799281233281468626131664688871793665755453678988035823865349147510526207893470014940603605786504248753756855434883138687677572230312037175546829197930786179637149131986668734840347251032104602031676245708447216876253792165404101212270901126534613649051974772315969538935284585196216987718058331687391574773783764716337610651808963090811536123973521846478885921348108814864957660242618398135541590118096389755287418376594195080595628989713403892466948540639332860136037583415931928716862359794238789337244088580113433682103943695827932381377178143326665723264492545612580295895573666680784822888091490491761951934500004489848433603900648336993097926517841399519754237656677092500143760282383849820933124906799139763099242262942464182714780592711158562693416672672174182123361427584325863780252051482219588166634094192497092951504279698695925054120933459157471096318738445020898291236322085925118211251316854357394684844105708796293206365702856924235005845093947579911075675020127386184297511793438718372934299844952804436403789730725721686679255735113478427964917233102668989389484079840254678272642548329178047770588753227175303509243602679196935190097096879882987762097871635470594385290935920931809306005950570610970786952812751589147673422567605718173318317416101497738969929161259910119105411747700967171460104351825388549927486344542246300794872388864569560810542909952817224769058506796162655577162890339293130268637009115065223523328114894520594052447749709481294280160403128714648252463679563498746965593476971739045229025229733561022633821566633695587734649362751209342680742653834643770435566711324834825297248110114573721802168327040257136411357155499677211050711510945143186676956199637445089000438217342813255990938918345893190384499503108708232684709388251802498139385036997799960791088848826492196308839461208049476650889869189989797457483367258756475791409576350926238652143973984937313013553530278709691436469613203868959104768769455075157020612111166744930902840195139571361191281249892381399202545165237198176359908430700462824213988290419632498630258756291772730907979590444726794244723182855667620794515382500896869625174837583285997014477756666946067038743731072010603292527815077115139152716534083874957016444298506245896503375645019941441986793737520754169844083040350027541307408044239947184039042019358322573253613654041809346664940756916062400136647471439020740709068413459863461127198516712550069221764784883992545346336608680096635116372634514173246143226567790927807352938200458471620647404190550175658274100013113198020937770391307564065354783281133206808837448407389336135125226284144357006102633525865818876024989633711499121767135535690076755559572011122964929236139098628619596249985657256246955133844330125226064369736490735071934951552895644682694238756117931705600564278670397309961173587974314855069066685321779109374728492110637077416016258765123106740057739487351891544425334659816813895527161700902210922954921428808028976851519479932581568594109519700410265362648156291839765256026135534957936993379811473859431972063514428725000057272525557312709510440071678172592174824680234983685593008475271396992034652359453452976735938481248145975687368481126717629178524926032091285169777966000625533672151147154265742612972122841973428570017738675512614084667962205446136642908392992337597113507555425434638454521009908143027809338538252382565690749182381194553834096474522710123669665833515001552209655445977399989187600287477729603779729164943763237399849594612211018108322319083151797465475660294584585133405896831774447844494465178404955338536351768540131276181333117589647214573438373440140032385455804666052502413504703670207659221308651823749418067296434955934668557084326086000831707782679502639481198918938872566732007576157297838028637369917067215203875614422910453892315689175157575123841584986218083427942621080585953305335813054127827799700731803151060411655597011793242038183241309717211316342601468216130194936296621691688457248269514117454450342477347859756484808679274837996499909099425269101301589589192578789796003635302549725632090616117606347237973287694793556233995152393886297395399871809788537091299802161527586178516663603802470703838218751468168332204768110617767223712322127027677906936109938827380120843591085579572917971704448591174815241097881648914537703207407154027412187180664226184274224638523276436322172718505608982956634376753679231696074420957560873981652241146613643628497022420373735647732994764613947447657188390141327112897606363697839104444453129310374087099036171791647587371428968698194410193285485301833107088727209157082096078878103943630457081067571948264473899885196153334513530354877301888960497705385416345595579382106711314939803363273216910980896869667884989524843878740904357628038486713877101986783995609106525473904527373276369246681041447180702601660018046742465315933639411736157381727493046085334427870836929535593337498815377425324107092831657714006769939067932081610122030578756410953238619978034118331436366626823026685552235522122416052130087350919358062177551932096661864058344839207798628766289914797213174495167882397524493635108984852723447313171439084857623430391615044093777265787039779605249456130568394307233587551885110508284758741487241925648828829198713821787461444749711133215273217795853483515019728798973316729089173051605959554162048846741953679634482741047143569117812745676011757093652068799804990150025482536277006275350535882664263315391985243326730210566058762169513137168177761756159051813397323668386911651199230137983570181031117403415074606676988182480981202829154424000389532752257051614682115008882420671026981140524453015341421418991905148748927224933402890845210657448482652182474257581801059690139276689958404280098933296467431315042546715924806354488249303252469255008678216362943190017497076385044265109660431412018601570265803172092544879881313888782295260619201002043647096945033463526350950479929727053340450497115654114454379047112814374497021963957193268607524407436066713631667027424810963200613911649347028596741629616752524177058818206110703633420881015113024651494938111566432653965343094787541483157374752469922839573382575119270213132128241517618665997055361139055963026354588169436627538218148489523844082649748620118384934781770213519106862036815667554318092079330299815975017437019665182591504186677166290061271933937047260448780967047042653302094851068435672506820746812273485006574064837228070081155916920300247456099178710168938650900621420560335024772024272596593173815701363332622008489036304979075379113317626440379395976992342916044827646494822114045535064176490627277334791445860905411289227667466788929333852173344540563123477854459562267691460066584514368080205601069537669846757202736881949894871384258113499030112673460290027544566332546988952937933704273438388679428026094345866333239207514410958916739631879298762823908535887502944969085828186294594488456014252999252164916733015336241086246972832780789189255770156203894175605520852165742035237290987543182282625071411196752542710506011155998627070142831430963148441955289099065362574373441113563289113698891083847952425407385590941089215613357962276661105752631402696159424197658595301889133098930436633694886281668434931502435756950053006713849215451194676051154848545517145423610841280218428011047354157277261841556452513776204202103097747538725183030083691184006156606021860602630935740413635461200907489649581582427521004049357620968491447860196735282985022637403165988706528319446574880801812117110202501092890502300193307154901093431992169373716555131683843583736014066667022119183652525554210952642964955969491841414706853649457276350989015061053812773274706312246917275064990286018253834091953669186732863519083967982837459039194117773889114342298550416730409582499757891308033423649797689103968635606087920336518330425750413455975883668670919461767767482083569139447755977514525873536457642539854165710053620926950923675934299696343384658401290710928951527680783472697837653746020867785751164767534054160985963905067215736944470017637269134626892770949897556865997627264534829277234561333802683165440007427069001285490254669611617766631314272420385072764661165580029171084266797173144534968399191995546689759848999342403787128563084999277644877576813103333905018277636933789946584642416444389256792711916093373604214160090451213853776064206582771172035912080410810378909144198821877059699338336790668468904605104069792284366681235181143647804688381018413543169850164102654964663660355391638113711849720572479332303385772610264996678960536436787090483636554481370823760454558131744736341517427570109547984753256435317220722553114456738484897853419240442386318585931254844197691721791576022269538501612027294197924721322199666318622686372961868056024261268450971546467051623573985497050892300427049639216448503936190203032886123822048930562897845418427764737273924875567353705058371136310573540932989781418616418993135665156982983516573093043238679076192340350505764752203909524314103081398707099309973243057955895708099724117666956212327993591065103671248231414556976312827860139153635888452182311200303439746647122772953872478848968059029620733408182528609586943932993924832541830809201569657549876570188307380197505357447054700849788901977793107368144428669341838114703772442058031065907713684782397765771909875687572171546656908823740981572576114756586376178097749112908830454955503906705568894301379281240899244862395320140711254987266842574373537069817511841510050656816370578500644534466829331115699298476002409504730855024225838387938860623279200228208013217202554295151689793836100339374416845638552096538736789692356179305501210374442325113831294508534668726599323859567735187921032406071987930648257112670879854498439813522850372902182457808558734957094957360224918761387699102666800124336757911149305727448945410232038775037975065432500021824608454676296241302345174688787606209015268726017641401070916337295974789399949089840218869046809587810364179739683788038887904278040629165827964856127376300388329037177912823124400543431542188791077027007691731277406822274548211521580182054788464231844161206579568613458546912698608044293673373200477986298482598446319851106530888929653307752569605836977461761299814935264558738251657905006700705771486193367852462189005445665981418361843917338214654411190170720725747387700662918380588295786608084812540455858854290676708870280708052522808736873791886135378589485835337286692936165055337235794459945232078504972872265884778713884044706628323510401306774508225728570860716645167004346835545299323702922198817759971964312488440589370526018225572402519937516890676708878594116887336865085872977741197255648507915904560533495111950457098860741299780251989715637944614787373875879214020803461470344534202728483419903751345164141946755488495160742883934527338869209688925727531310892493721068804416263147859233861411311676536448318413036720230261973275614336765608425728661734567315292367571708011014199847671506151798238797532165598240515780411299634619753587123554231739095262864642406769205131764671667971236140411301716659948802660152527741799561469246107954893079335995445120117386654634812996191238373166049414756950439856456130088086486773655119204724553862980239809871534980592348148625185866258896198093101608903583933663606689488392588432100997279357063070130880942177277564468336177782544162601315868692546178353974643126279573194987883589322172621741378286338046403808349434281356251163669123662053954845256583671471226199003765531433148730420291902957375609763270403560228606865643171182639861092814730182915063844629807047985886695419985986481656931673289949890609938389304241877171304804501488144011524957675909571038151719190836944483410059444916895343873246335153050337635651057789044152907272225939469550370025748140816626650045364427042137806438059514422459456185911166781597540002831419665403395425263487287576987393717128768420894567523684574312788083642383583077553132138762701040487462637687162258072484152279121219489258019841711108058274289285905844216667361437234394719184029649701769153108055256918333328240675819358447162220791874189812008595316730867070109457430037299565798031781806713473867161638932083491371286882488927391183810753071027811204112882455213764493657396923409757167976152858960308949746919341639063209667004945759493065032308694137747379592661301907892628457271173808813014795305714353562509911145432608989828383519062150814925016615427596196984682154569241102054623663700067854133236402875548781737010385530916019499192778995592379708016711015928457248531799647805876819875541376877343008631645684752550833315937810264227221855984721730252901816040232966993794337273538083287625932589951622847695476223072971072435347252219894885122340800361544021348768619773138071072929737219969449453410727455555109351296913582436074990656161688050560663735285963859160561474319694034588070458962351821438960343515861232150176334307030385415282474681239567798586016376353684228825374706154756788809182104371943020925300086095485054862037460613566024471319543484265312325372757191288300555423419703324620128104084210488555142915163059425635278457219850071320114204560912888819249774500637008849486178794093259932139397062959662059817530607044298335527833172259764054780565666820622298381003091499566066988322892978690231241947535512548016422982386511802557053272679835968701530912028565650988616688225567041541934010777757314507295628865972689077970367337814627050608927616216139026765611566001178336921622782186367393986469748895843684899983928282364454297666922557396136951425572491383585649814494928202828560169771272052544342119934233232849138196529768345701133590390146803923584792959739701519672656582874877999525994663990620770901328422457022151576985225816059362631070205596259758573292464783633635844915291801943933516919549495697173174144347727490880794567446293719822326809925602668956452457631874126883783745912932676504812214855185604453281215145035936966470090219770945106448511514243722546455275838273041366879227552565991286471160285015330804963341673377681721158813401537473410562380181129438388758543407552492394640935414677165857452160490448593906571948295565776495940864715116706473705194693391559171976155532431984310689557329516295280557692868686120681648904481443109637826604598988380519378918846653872039657977519047048665272175054105584895886171043077668607785521101026289372576657024935345577801568292897743611860811331061205294058886422489936743819478795897489893929062339443112572786736043096846367786634288633582199561584373103909285334778387979515974006426746250000972396417563105347053599199611048674850506508548830735750664864304369350343329137694268433002273901691093658992172545431547484124117522442719705910180418597990803293461215787699929468933178423219038228892992731631584822167100386637100745239431705020744830717462189671202407270399986944695585249971565380825963428810748734305856613296520292942817471312465862018564896823318047293373063005516346985596639737475678729736021460994264877455088296463386379762233773205146905678708615686812147249047957834477570688636328788059139278015810136383717364314483070383368562882882536264860234964958979862658720249138621507133120513102525705459468615005709357513744363385359282645704869565621063677632389154713416042131140415496303249879264452090246444173722313731094486895138995036530473620909921697366908216281137995363327649084342796736501326418479110781118907894075765756716756904205564085596659644690441643683061513521043678404230853345557988227248599109668403599436289688421478738977386930662477354782836921402993872969302391418700409906396655746105883294774095576904188928818501105047046053979876202004040604579882606581234540313818776233396988341660794657269081074009194878516384315023834153204730325345811302680235148157694813858627846538516058152437937169185695685765818525866861372102078881640786489296752611086089237715699743642234534362822883855275854976687293461855661769569188302846814299076678077866364366205848260830504584244248257004081322141697804324934287493591093597682930454301152258777121515758882583879245031201414303578952166031847183569896342628912928830679220704330679049844854876330258888510726457678520984842748299252314824605421895878258413632546814017064538683869772783184402604750962075416030537415317203481935244296008807298578173869798199133824172357441424433612009142543774246933950060688963268038149165755886727709140788877948672351362588203379325079216301756976262866137084915654590410513796476968762529909719844658254612068793379339884066922000280358730168193819088476911460374623661592407014107323194705695559766917442832839421211818224334659910664164796210893198983831744652874111387563565614656840247798289569934750035559670408132366539583685384802712829838756275487538181609341394998281598756378631293542388935655857173423757249009921723248650461288411045167078214977020330179176692099543498004095415023357314315185755704528259326984870039973287965726106665828891906079826243536965687295590644226638369820193708765854133755097526671759411833125953901397190539216102362711131971693542823709890189299904446205126577049867032625427101142174205695850918992496603424986398766372347672645743903519153426437200832960984581383750295898507851839797682951948510121140335668774680867996506766266910275046794245267036167056508623560115577765855335199066263102662548546558529231488261834347389587480456132268255973840517869713749316739346716259558565577096422070575559069688458812518540356377922294560108772871365815287893424309876714736721995125270842026382372138856080354006848363144010162093136687980009473090050308486861868304608971337838150030018955338409266594933466230093370812619711310929638534032252423376419193276347330456009766863262794081468476797121597811763234397745303313278882213419668134729218890778394825406125688916433086473263343917692153642568291509160581609868126521564235250105944106187320036593854901208392058412987919690815720166076418586700285112089881140884929486146766290655483953456083179216890612311438424471908651980798452568280185280773890679104121985263763442125809816336058254548169143739138930102174678996300904381681457949989865201742315909038106477375036957504022093368630907312662914200279241378168391094865267167374517395693672082524501803188406250618912534979739244847692225799390967096403740971095219343273706273721060655994387528098367244411698926482410459948879184080996636832344105535655165517864527879387253711520048068318996276739641834249789502826879864110894300668494017850986071609298931154851341125736595250296457829540048458687584031514980685359456366617401154730185100500121607642395201030812287550936929352273431586789400911174330842617000591373401905447192068955715688144042644638094991436068730622596427376012335925929161363239259850920829277658027154086135161465682859663603159156650517100870156335470946249154415960598415381550568947004302583931605513152493094299141914804451295023670470145259081340734972402573611900586740261073567708833163514837045808323480158627169028679523887556245379816269697550446203322543468852588882709029154179201826215848900997936713883083138174532390184725978720760822650408761391030034161251057426873852735649337051471454786393619820981998287608958873174057077345370119793343995814730150343110830271247487572217237546719219178610917214872093364454101488993046235365515152913839775404269744737292045947076815015253405229412063312412792629397870665623633956073209075202919580715543839843213190324531780156673731311603529111172518591219043745965144073296790834086106970455293483003019693688596646209717671948063755625908257061308648488038562634218863903806124593905555481435814485921488770328725535101690107557562470625943277132312108682660880836185365513928745151051178830915756269491300198548998634181835835500074094126759753767146570334754850378554084271510160629780043328926455356686675217473629544667091535275446322915629344570601189024160758803532496933847974056599718680210253095504654922118087144962125861724546557791041251476916275203310954672860934112065222924307141198061729596636833391413769665242821576723636317372071901420047503122629676042130969556987666937407679667704310013765878168907772653544530465148806990056846633762121076446408030094838888108692451953057510922603650639356070963902303733168510236091967445110813487683902156534819110730956199200113882950270684261322030416579508877150639268845783946001735142614014643310752936882766106948769584127258330118838525103178243488367726934874731362401770480895834785979797797957964302045154555540101062538929055690792588344680733633111753881232885258504891184254268641949525363581585506352940756329034720172869344456547414029919025582467749345804919010285157629398143866498051287212133956760167027452930983880311346973920656835691846617763629168799253680710567951373253282088463450911827329131571986777903916637265200652580028587555111191892973201161222746980679866491513988936822532874248518813753609862944940794815581800195907404058797669383587228313050444536503010416034157405729560102931167163516416090996720078482043266172879859824781673080395222455939042561263540099827465876948570705367932175286376674671219742554737899878720080434381348767742239100742825332321247981178359319187095465968614465912430290515219010936608998318935577224250631196252149641580174707156416151301923084218646846991813387104593497711023410121321238791831953466767773056085437028654941890057286027301066929389489072299726206338843376742313759293516224794660430205176780686506530929386988018626848801336084552977468377423977153791819958344702999893995850688824631839753029981384427934627976338167859067100124439778663064449328382259095983856517739664491388799540841631589424000834585162533939389751463962262423569628727070097378569306866513876242349141813313661966891870776040061496256931943329173593131731246010551953423432510629306143107872509126245151428806000520983280920617433258975166347869761403273863594312491818810684371959315945458221209369403698151691507557768576705409322836256831583711990168017219999090667228867803023010277410463905573481992790940865207438437321239390123142376095971994338871778325293099882570773639068838123090378467900062504581893416150130994573132074510275456177468890401119122941058761596865027959537207761342637318073982271770278863218582754170051947936972842849044194361451276768453382081466110886325163360977366583357793390825225910671280423400413946487465495173396814714912352026463992622313374843865290039316514837038754416070991755251023822116089621187666799696152189919857200086190528868311060346658110929240662274398378057254395655984455801050397217561096641280125861773675458257645281752314230426387538073730302453878486204987234734217556393723147476335909435930671656358212025084396601853833252265474990199834277448744171403018633321770919130253854537819231179811738631075440218403209086322193912746409172058276683165834366232281154592348035310144012871913594685282416786099048916983184757806222717092091538121111888545032326533525175351726781170459714331439990970143079625662580702580286644316507091347902812632555573899175180575798520706054850515873154178576798577685301773576782284097876425288991237741273934976405630388977752480935818170807645963924184654360082903160182123201264393667474904289757497897387115685814893639964707473497813082550994622222841351016535110346839395916865619314950357356044983346745434169307675922446799449286971692047743057542394621376652105291199074275370243915746579897767940900252489268963298063180303162130369389927605698605706038673253064919488887957365029515238253238080250010961213127306843498447602904408858157709406198885509816817806873663367982167741519759435354001683546088132107481074784572582560630202838244093716133023608411566623906141501272303816276788717364735404569099806716098857825240905374905740536464015022975773665904314769686482390156098309567409406951073547217937331825155227342519967882828770357136418057476160929824785522099158749684663340878301160320891374883994395588298646123393982192212164041645416273219263271441049151981663538979873798230281532863717414004119520083132061572114972722060969548509716047840678529622107610619098852404206100647633977936847698966214699403554202534969322498708582851169771280201877193614438179652945031820095587927056038629449623983536650378615941802998625906791173183846392424941768075098850461651123179166015423400660330469840963562361253162968367433574049669867976426211586335526344956825457101501861078143402844615732363769440026951138665154562570170201612961008483355267418163410533269629802274979711888314982574057280558619782077450890942437634068740763740366090422844999327503562932093437080125629231863511866324188230837468564902665134529172720775123161127680159623077097944572877005403865586904952415608343690600740613163580238691430075668656502572528613390932157354223899464782770103749816001000443802759801295822748225438272402701037132125476043514158458688356014646133305575743487205819732774968873615638368784652385674714274050707221790349121750473974062154150955892080839341654442044333470225395550766135851276606950937582752584642801459162057541246698334384718755858495779145537951176450751723434160890977999578066494403233190385594743697284290569764570156511643216764567097332060338195709928063907726235240546747075250373370394701267866160457412029280682321923298005005890638327228942506752088148075353234545054432946947331783555365992782053153285154984688955038001299427332600028318081679835532207662754879104808959067335508866940506217826209178390814167527807445111672977655248772731103365518768758841754833631984884028647399395208582614408928290727991664844595556924995944533970180795627020002672707223030472475903123422430408620029787823400404114147582423784655887009232249946693364270083763008293267772734839359081682444182606859375359472227323561792830607603315947078675915018873280033955812578746224990073200522508679029810134911070710983651892940225196111763348408249737951045851774642010533148863494340278329920526281468383194267546604616631606269235467142366936773243461909122247079747428268279672265490292987423482853162554260414658791190087390235240058016008111252162929430405716433041816301535556936013513191287849017644631943616547568778611679698332709514334637000685471183339976906103767824174276624590098764497377145906611926601089581727879392116452651515630392227594818200060946386572415618982014107363254574068916294152387869488634630829524368174772858971882289322899913037480948198992833089430118616981759004932886212236518752161937800692414897679288597277760237325581187802915024679150875426247660516165621929284798659677017160495573134022063739598275490496423493975744861460222642466027245270850885714711677224214814575210521545103818380528529926496645581609107313817313933352687930269417414225057706689383426909643857978681228212127614319147541479747193433833208056577840948577129424258163773702048752643572891264447013911100528204384957850409219747298030350683306832202415559754882918730323491354345556383965429072002359285521100200314374549571311655654256080645834236476261442127065509204034472885313520049975374648282116696906836502842824076336717739286639443525338996876948617361901708496587669329527198149097884819121074550407036118700390345608906124026388923439707726851909678775849064805352550853496088156867130810359384469603584266239404584228631007216500674752732459013012903304573317962724442683528745642867186309809418984807040405731045695162537613871142926614229286566528458829019288577504316190012094131627852623857274839349459885450609416582161687864820001523193493937656921560751603547506166019266661284037589779918073304308071047010040218806943049604602902145360898236387771999099237736272897826273062190586441202434477396376964970474140580121035825414412183466528351827831492013311301095993088784023880790099813803904466431814589560326016161070457876357395693436030670238312800750501837770019153355103379496764468977378742700538472847193828258777182112076621046467576518500046232341275265662624793103143689619558953007123733003603609601601226803343371545766007656232232892846812138105905405173616929826827570500379971635295099315610850831851346132749940029763131131077851208657592891277621634782913328909179772828056741910914087502841276122067489682232647809261660150077938008917432702207987857522010637504115239667867150090982056890460706894039611504976397006653732576059279129669298696160369709412475473843809539237951430344059391618720909835890177245134786273647290033395565492315703387383275479352762407835907252783986845126138934081155820491529681569089431265775231603206585956424166118947867545375433795286254708225954581328419728985415393265813258216285966415698221702534303366890940644469691839206539610622330160580088595250253116215438244360582761244125093755660156868559102822659136464170043133585614934079226026726327985225931430942766798700839964435822531187493561651325069053754649187403026530487653462662004040843340622084876588382301267893809077025831709430736731496773958489022657572794078695744166345861437839939062921539752285829526570932684931881546617344067762490538873789876639563742414236365005366428656811647822358646294467669186453466465787316312622141512302362888369833441389097265562597482513647790435208239900500989897101555690075690040331345636338415892553371672101628778167716495769149145312816210377992380283780239761221834103207275333514164912414266427736281241442290302274666668140364316399147278391166880561653620565132873651506800714656744201375531902329153505331554190675834427968476389364516296651577486560602080768967514416306587882831653427138327484152334005803580529171992282413042391966189269953589393943812383540108628051899813462826318786305504935907635011958812357962247033383789328580887821643149271740894786795585418469452864992961264814548055600353404032909754752751083962266179234885936842671194829133353981194483338718509079579169371842149755025497950555122308307859723804547642521274832679709733209995346014111950749166595630673002717893907775735844811312811406298635233385740861200315729865965486957953936013342120733940285562293817476856224257214475356955542023369311890088268238559081948103122907696036463695265423807080070711456272676987443388367861544591212969138693221092827019718006059836924273617833540777075859461885401166079395851406348241849485054298304210694239647282816818074818999456638052589490452079216871847786729017453447208510616450340515628285613556187409849835940161932942122195168991041274574144213905068088928607671504138546296875278561716310251879677698201746109095205959083533483627824815754596700625821102433700760404003355362272514771608659175381883533391948160395636083121238314378231132323216928678205480677595896637416921264918773183934019091250277919154074986403073220216716770261018024330309650617454208820302136736744297635996580552364712278000274995762454099401553885067382475610178360507832616089425070635085391290351280461869828482281469474571453232240217787751698543514892565978577575595477797513143917279087051050429055398716181214710779683432420360264661716583839941999488039144795961465022916766665632482966852123729136378423817302987631274240123465177069895500783370061911752933371468111503414918773364478309065134305762620333543475146536078091371211868896338977411251402820722789798647918278594825778535473537088229068313321389748904769115733540079460225462457090437119773185104942936273696262356496747141681875357276091119351014915109629971652790227290339935557571491525092107254809782167246709909073610904231315944300377920438251371443354518131489757609492964190764827519827509568779574388702620776330841926087632633025317585245299873319183248474925310355679543521639360393768591665401691072139828112690626176808606327914164273166561173229573589638517039617743413088751337263240753886067988904174491652698029559661105662586188556113649865601272593741090929818201318278239273768921644115553873110599964190809081777906030406689227013330857904689773410503577579432933327029131707525279620727651554632751365385860252710639117653454476459879460404922187741795781554055859935719436741599917107380336779215511638078524478524351553978146794100221767589373869783583456508465613932969711902552681580239122984801550212048231541881471048621670441785982882043733390795770696076529475357054781236911867628315426078055980084105861999628902908638000111672275734021882859494522787909462185960238688432259165521931500249859411276453142206212195402125931952743703853513522550411529479255901967733399530247478410326466387810472876096056251169285530729335201893375436966217235077483865081064057652437260610296373051172463219787467877841223373067485721487081689342120043849139730938934380119764255971780411077568201001741083578314422277325099270240575510930692509256011114441016757621696350305449920311499273783301893368686034229482502166337492338202530549409499440297404512793902304334915817776051930525502190233941290218937580806205973366200360023086068728814634678158289574842372307687026363195506851888884467604128131916706007852095098279883365072516857632326722561850386411567022998878340955916245971424726315453541086946497176002605011503865731344548834036009422909896189283846583495671537903555447744353047167877680620301360996470951767433167222468796941944385326508462536434972391123527307734853271551039576615780486197834716080074761286478057433088572077841448848704286079447865075732342810072279754294203528919702251436881992973976445948227155398940773333653268259830897416649777317124397977349468583089771284693019763216019701761388837139622743736128961643127588827962879305937752611394861053551535431440036495040473291795054653343158045805073800278815422243198555955492338203104166760671210925793562830128086483287593297105220353419054026025260959957627407237566823020529909947945181739898292164106859429461366171003975244938158114252643150478311088706726187537834418212162059737879755715175779115996738630385688474570672438176134536188411356406684091145026821128505557784798645179500519673256784146423573676686765119171277280115278343995749943322918872161667608508756450078240834145122906222439585468362554473993442036635359808246026548369087277895424894437171056452951269197954563587620276535972151105802470975556992882881633851233246966267096648627819121963098089735118588844040034174632839689497946330936125866028145648499506645612119573497538881823230556567780247909337506636311278144118759055109646977319819258792690866394924646728913594572366733268460430160372039364984527765544547795877414057678875539377936430265633212478676361776176987896409753434151853106277828621008007967076995031000179380192008149099377169594331216690901211355776391220578662213197731586597115657865012880477909178576034473322786785254245283909314028848527829869955929698397662785428240718876475668667097082654118379356357483783145993819291289780026750489778580960159496402837957380558953619570434818725287404545488852109046491650795731370748021791983823336099777360820979646046303088162507359292211390306609058378132083690151891816664905060811710652119723523484324789506006330179016071892325916233662012912247022569796235183174488619498302203499696709124748056877495685144423208181227833511349115183108991503110008949790012278743297389615668896479493502987609454934656508985702507367636759350501101820484820063294989432963085795479284392285960469761933392476967429074586832291493865595474609784993237330983915101194659200626460652893873798901258393105500487386002161649378277618765731564948545940252440455214939053414063314374525486330417467404493212738540399074138173908844876173958043237253424585841567598010084989639676502779106054980617823771047742098798117452904446150698248820713846350304433717740605753669122273909163089633336660840099791988619681155566039729565330642655849482982517656073330109245822261618497714313976186893613815565306444377340749693627444310513504234563617007944018769117483225469095981958686680427130192920486131565342941013486659198746709589451812374364939202218106788258256522826728161136926622266712396804497783587203636539170884917174343492090252077289256722860301543147545949953888524224354299571304516418073305431212684471344578346248376572526994577157874690131139691662743609322629477128722006020691091414469639912893840877162053569217590275015683482530112172757612017109088621837319435541273492598584669831160388143248510835457931363629325670511488612505484901795516494883096114845757246643602386252334608447887138089290341157948506263101751463951123428408121261141747710267949220004697201772147216209838455837106033312210324323372229502771550282787392708164833078193808226809528805315311832280950272041438674663494587738402263141128919048554630609455017729987583747040276203771393581919750560199436639559803197774265792500994955568369085666738437142276945878750926075625660853574330949392099742719122997111139973769737692646839557114239739158201899774090998413013344017269427541487167016274966574983181325133490166591830750377410050027314072748000749862666946247157447807929612693489977517150360679515648374922318896179470447739656240012159639515692689770151629511607719252646342723334769596968439708810347713305871401763311582853759139682547410945497919322337226494184799155465273586110774199014874912174566128566851273693091160916455999550307627400032467458813755687030388496251882315923809160752593070837783249583598821599098573667514331786639780094040342316812193909175566914466551227159531802121045409968287890843917673209630809589930209939536313376492363605003099766871650020192967624210737103399791660418273993018651654249802771627766721027610857829173882232427244486891178379942973005778703758558997714224641171279748722927769573555604432965378168263773633272588934166922086653539860233454302715522341667201665362257864364299946625898567335026981161169462865467475408313633752908734023049127338265544926918068226236289966559139480097839560083454724889049725920144726967267805355938096780412356354332629273973079261623961920778745325500840680234850881318364374922372133863063643528639393476754678809711875271994210637302211734431779186003091214830251713251596697409738906312936307997796957857271036806622670617195766516327233103011517334194220692673592195697859673095720627207907311003585121033025581441511979144411122507727811928643879362265584365581556039490986216838933646856447037376299030245394133410598705729960243803948616919488028429550257361478351973590685964511359993564797342141839515482186402399684884411944596418316704871764207360437527747090971079410321017435021960663255228420498285123950459512090341244862129411879029797328507549057870014717391038040790703998261025413212134004383726194031464298667792760681630705454406321252543371379680109723057957571221253082582759038302959380556374622659646419029941469037851842996884856157552482839835954394020025364171132675874517155641417988180517187927442894957114623220713650610472086669423821485955238155234520332083656873721552528602370047041803853765331491325755361258122885530601067357023282341702623754069269758048994343247664555818593290699209362229027604185149639647053243101288235582748231284475878446967832791581689729228883944920038259146649412832956092000511466080658591654127136052625896031181955582540400347193853057865082692499989173294960368812236196915428864724965996506271153526979731269510335853776551596069870973732956405267299631265737935432542222969036492132978135862956086399921900396410764353433280302575410478688454144963531328288866337190321251902786712550475537195630533759338308220451949723123872043914891717331996177659199841753490062440037409237949442996384423079827646397464658548902302033293901818860134340221481641244122826509660478826283010991387490153640380677710777159086964905417954906865892150527517584659919338378741574215507062302124751375044534925458255728417888757023209650365811002486488554749185830038476212498935638711446702692211208467344112609565098733968023001641376034892242490068516745576720259968758492649547129418924537184080760466116283714927759979285998830356150646552633475232371108095552715471700904415589740465855894925369019742209078767872432505952465221015001199564668599385244081457061183599145707180080496359134270790045938576085639697193252737171461529752519840725660939744539637886575730720709153237947998538078762395740318918742464354681172050532748959150834969410521043462583907006121198003887309626834481986112486890250940541380302372000658609188426845835064215878958953674903324686142932047703318972237546590810369078590011200382309592991393171356731823544140880851075764498213272553417453936981671598073491592169139250303582419202308902439035089056105509323218631542939551323721814179128780092398083554948971869480078913423840889291447634120905376010045646755757786428156704742464857588307195509523299611956406477935425800678680047159375613461640391484503383034812471727645860268452883111850651002042042966852355600442908456401279410466720539650771478653149556049579376816763258536631334853946920663264615741580359869801822106375293754375177036348697592426352898537137415393100842767411323880648641079904674824774375557305896221610417781770220300844179812796721176893328031475650375580936925440007162008782746749076608116247025039902315416691942309965812059032291465230685161227349884262214238840743937020828262992177661284233095163383786502961252283941195268015334924966991593876914425006281019787791745167413509376494366425410915192840825596284010323363381338543072703392391863570406529131363671207910420748952071870717873264442236616133640562110243819142527485796548495008821987217641271122214308692404502949527230916578701353979203775029660614236118572677256203531206924679519360289499648637164935116755332536896692532909065151262778248957051176390939210925520315654093961203993195743853029844993664001713378671643611142693832449007882360851110702126974883756059085958767424663864182522663853306789922263416340528417768199875849827618972194482748555759657512034381589977712414730971662727814099905448959187009816845938448321750267992899558840811929824763500259264586482251667582044979503620533902914377548766654602593845071620682811562286019407542057841868162544999291842248519122151894043070300975493957305596551055935175628999588987072474202797959585608639397939416527517016784353361118482938254165412317604339186010991221975719000665541097204943778656152399809015838594410818732896775754285815245513432702625845483990765643556458106847338663203981655813460212416025932105927862929380014281927008249193081158782813724347956859198579569516755897618593705859065394058363523067068933488211600391006051436748180013502674788504098987321769927516332956459684337384684577974301230233960949394433684414435103131646514833327157004420223195091792091458106425280480307280036958743214815666299336191433055661353415850834542305211699716124641383771870871853285445784172290721354140461011997381149246078505632430914076290472493730393698274775503614780257875878443781829682406949387377318880597208547022869741336937879353406051189359191124288650424005519412797829828802425768713393095541602162843886022791366674308914052863869212115768595409043963207462630632247051756299340376931958791192251345756862551387740385450274425296034247542361879660139266408446924347434987638861127431386689644267026354894890134800476834619836126888253099369228219123677333236589633438280085143434507165871287241182015669676334882223395766838126565925171460671932821131911051504817857250585825115615104454856258238168510910074417463381104529143480136244983534068372739208075357150000334898299241286588048249915922928791645727522577473606337661645740246564291307867512897882905686335817262231553067196391595077886392359178241729905935004036473541163847004696205546195696282855925350094902735777908479605781784646066184554602512709914091203932297273192209128004849210148918205211816787165391014512851140295800338994391244645669093327853467978628984168970406636020409976050864601028069241705572751291474008695719749738461163939747595885184834890115047857844533892148828657655385512330047395506817429086586740041508877382948866921199903190415549800938156153120495395476054427344988642248696905292015414509720038529971165028371886026994689609428607349228371404567719570727445887687320089853473857880710779488397468234439472664826995210376287377493328214011387424442704559375911071639395151327076752852852778448737170267015188627705146762798675047616743596860194587027860474487892140912565073224157382125408575027960970781450207298017048892299103384934797747448245947270119355320083339038163301027002874085256792328767390775510803729483390756286217200384851552817500737387143818620493277887814471565988906350144423152139539475746405111428698024804600559723846382080811775106766383761124716843803664683642134205397231746362800054346576867829151751760484217111291938302649415031680728985463712467130761819563675232530152636856590935519804899679413206635594626332049372208856992524969204308627909293169830748801320956596631895740480078937848784497197034289828035638111080628913901652499726729006263393560706144826131521222758223409159799315965360317824353055818717306845710750354513500601461498422518714986565290896109296312610364073610713371355379435936614803021106000670690084797556600539805152023979320356089325449976468797368513252704766611572150233395099911852377708935430399020744759267387370313078911358834990493643992212729910432479254270389300381428661665221642553398129168561166496283005232266247794458020451666474725058003238712316924455114328328178005463300346076389743626069755090715223846491982287222978823039874490254459990859586176044339780217680834066444206294993322920853711173829159815794278297173192054242958549226311083175050556623077389486882196668648015053764683982933274401021068905963241105368541765702793928949037324493083494197469573508926238181801775738950486901818898378828485160534413506352933525976084600336163446075111652209030329274764110041899933208149287837173856216228033405804735409960901673850462510256170145794884170412328267199348579941080631049164033764532156582238195227303155684630443631209524004580546068765898576266154120567114485965749853871858887841104872900789050723850306052013455903737419616085765412868824512820831674951489127679834480327948147463468471470433023287896202519200498503805875162491127755134338450963399737021545141698199677275784223299496305205766765734797459561304865715310444328234486825422684734688550744546236457457103715297327361024029826233032468320014081657657376921517347227230772831126147740075283967285426566531110149263639595541781413708728450044942906283912422788291247297698753248540640549182452152119417779296724388644188114903049161384835583836878745303131010407160521451960308084984652575131476163438444583837547608830481054014991285796866518929349457739075999498502811535813704321899964090837244707575890909791751767571222055058273473503275894443871149115155901597580610658066143030010532072729596844876337009405815313337937637314221486816926136173628790549574785174888391506521963944394084840681855476685318166714397228545221331995047868591383140785829654622403693357176458196883967088641356740893781456129487781132214954633306818430501627537737584213245025578343269645082732529018897585535422849078970793907488298672928101995780844939202149649348075265562131891161838314395784699022510471206994176563727676146049458587084477793223694965793846009884627425248256574426027114708027775459056543410710102187245657338492697243513714873597170844716060371694270204671957178310933201935785807662246073414624029466766731398893347824584037709296451895186163970929443533978357838087977200464951425850505089691849737200838716590428046705644817289759477165468308809962531167874016424852868864512666871555350253237789022325318308656140299862404799834080008722233870081210640541936502641655039931104163551199418521475141209931152001952634583868753339742964531510172973605738068725652636954465874249212710428910760488370708871084551498944640780011603333517172106565130797894405761033078590133047775923291026530982036032079542575035455033758755602693696109865061462012251601062204266675881106048937902998656036092423169885868454326547109060885631757295830933446543415853398168438479823804877376345599470287695253202316675798754896603328189260134056999152139925171629967342616076441291444777789614232792362676036936335649585098206311710632439638477406845467964677536663097475097268202764766199433919703736129556473232797404286982171959331822729725233186549177740507340420682325574074786284207654822204254607196557352935079677079503057324242675831068723803850546047348582819559420733382663673952700983840802575750879239390250241630096427022889309249331072231849536039035252138237559511649729381439857338115824548595475713850079042039315985500815472934365731278460887793553094885538154166639664651208370026618854531000620067746442270888421775491534301878557988726160398386866318078247781043113759440518297448846173912162775821793149515586420942520850530145645990995736379009333187801556510981286698981512257998802511779340238082696235694774349981875512753513266689344212144949503245216240691362870693235264135083334349273474095828605185791767707998507560331170949955013939585600034963021567812217894434380086393929408913531985234915775363512161529126429081746191729472218439178658631634163970034101542232741029742431296587146754928839390995335672967043871870968076287129162205738127787077745176365174684761709050660970699064317416799968280196510011486435212194409800592996225914797890514424007669543140842185351479316041415938133782783414577939580127162879747315022997124238464987174743116351167003076946160493683646731791004298928904544925678330541444620948721447676541895154916755330286527036023709695598082648481853959092195905052559147482076774506545394165764534705506831940409219468546121682429935099068619809173434797720242658008354272298217665112575854224441016588229257250189953732234746619515867246020561961015545959860051533024723678744724925212945246694097082086136410209111360495003594774249006771744312135282751028740628082730622512220063927410319209814336236284913425521844174130374208851089251561568276516860579386822818501983307992831807999510227474512347839610174108118262425824196036134427396690207384865641551941689322307720378166537566308196548702238833867441125958783124913075659844737768727959112634805302722747635043208125392637049823055615327002807176497179871004018366089048346647505570221057059556228327768109910892043895580005301970389347704420044571692279223836681623430806863421437710428388547592655217145257085279777829843208994128845586105677197772079547993700611898686508386544950755090040055212647088987196955904757619048969829758167980221810805672265573800916667871378746530536339159373258067310781922628694360084683312693156418965482378360753987626836608377261373876877107550042503623265707105248209517838769764741478980911035576946455083656138653424590958992231320421257446446990901296374010161992067586725207522374827147940567468217100897665189213824981540597373264661684977231894139182820183672386276646851203793065691698338206291638556358417424546440259479489462195774658856244278969587821382841433241223903941037119548797487559285330128396652872783469528608388706831929625611074301040633356477215751168261354039561564955974622642999525482385891447152585438508816011838310918511588008325488000212618881322626321203787032055827001052877595244396350405477438328455084054164325963714430862316428270359280954417631493176512342916799860886187425961995361104325591820008288188455642534653792273131195331812141717906194989939336124972296784442738779578244919534859426734027594591244717989078918920367311490380380315236462386537498003810536036705546200545642945518807257592250130698146877937283874790719750849964913512408995406514907892249541147595114692751464394485766056002883557134546922072508320388498657589313100144499813540862138262254942581287286526209086280724391036987743699167324393746404661473055613446384466983391104272035352503111002286523633517974078798646617718659619974836928903822670411759201267044127235359359536221321146643199421447137141467637475485054643890452178308433820191411393659072346472852457878513635722096238107763247215820810358350176717146482116526571387238323924125397294569400970483674517366795679346260098444155763922492183336623748754154863082315820174097707262527930492917196804033857124439166582738110794863761304686985853245565233447709437726785732516264724226517304126329153993487606456644028382388341557141539943659301118070417011891152632005528660214701466477244026905660718960710178863884977239755524935490985875816815311291050694133680947740161007730704925858101247917463521266930912209471962296268245238017712732155140427259966999573784880919442613855842483747761728398125238861336330460088343891106772206869751914122596639908302951539127121286196821745628477101567946691477073792171258507222036358674887989582828737899204713518198936977950604388325577492417152033781137165055117742624945979860752470092489598358381737920460224801682151504628750027829595263204991996317355869827689223682250792633813813154947058158500918987369208132938739137808338804164758567660277224416085187848557650484473775827285571409344836444841737875250227520609606752521949034248923051702161664109857085005334606733848383301000286057432048364885050343422790067501956404291419324627884388291471203434707015316588685679208789994658462295794516563380813321640352068297755882304541216933038643203764467909060956627950056657809427420558792202276350184102209649359640561375318024420256851669485633808571842008897378800219840463425176767929700428942597534424389261127772058678972281134680087451958344829612123273082521497703384338908352331344366877876936834620046864764859122077218679208513056301862736356667847371003194940640544654219553910718434166003252747921981603739934752102465557445761566554591762635713773055531926856497247795714271744575080587941928902714288704817971291416341194794865229764458457858461217733156702303521235017415228526935459387450795470522840758542224091177971115731037924011320715164515498550575020580662360659241391371186491637521899086660058148732647506487628237110861855038917302576059472892082124524249059371903371428960580799518240882707141909970479053203830886827189962330743732487074378519421752644091094053301398130714750029215236648608760794958156833125120802277327104986152887905986086847329934188532540492655691169317358604056807310022092918149425173158227182946984592540787069922380213762876374694703834783594938185821868712645580554740333827765525712308757400515450926707997454913712600841417084056207858914201119569011556826384442428787628043789024980289843980208453958054604879652108821906070201755866693846124181109478429332519948964620759059464038749436415937780394127258271189524936880180292764375242351545141457562490934522218902298149105238398777458172594336874065862283822639864654022410072666841892475070584728157161409966710479500214126183655961678396801547905165255487581083812721402953691197972416179707967842017445471140941229337225136685525791297341328023651569540145262377145668820427284177268250037975871825839804722396813572096540005708442209936542890666445740387289312913641131873007634037574322954143442562849331869437316767463376162715530936321040698341283837693543094017601945599491758143618641740617709868863548648504534426036017832944812758139943791764679529346231286494170986294299988402876690787236142779739381757163458197976542269436822212965753037658004319035000177994730560839791853965917587492073480027370754566929239050058968449807844081068413715614307426796077715217141735244305812927111678609565287530333934389938431510458263518679005029740849928784220851081666247244244021101321915960704040256212556273574124617965247210248517455310654975201129648392790694058324729082818036368410117574077531641628634986857322086056918013418899593129309089196447529641106165668672842160436352083681011928919363443257530948849292766592779171325860192860557974509327350021372883714290582066424907049183979253468755051232571135322502300805717242146471551858164264330720795955448639802202172771789263843848009002027352853762679826502861044423637451572745761622032908755348867252411459647851034724257759258306039399242488976116313130691983074704833234337816303515130398863596638482411226077529821180516276898777545878452230195052555178420846707920549453373927628221102506810575028375047535338361794209018731016266350217054340509166934795008145517144544771603644844672736451434127834264416876171707966048037586197277084346255859982346085997586706381993591088790003069193105459474225772219755812194423225884274140950221699125624136152359608759565727307218151225507323083579139024262735370605914722685289959954256706901535882703600443922964274228524874563758549654817684151166772976950050124254091475191917097838692727387525845613929251728453252670359848139044204787208043834307646335376564083300991360636447602895784879093122358691411440089779814923968503706775570140351980043702686977629512424605985877541594357337613321948967851159603053310086293483170086764760037820265738786903315777340484413410505113582785597617914504658541326817261930720023931190872308566368733170919860108348001482536218102876070687031348851112559490830407824535472573589165149718326029377057407896043765610515313592910276085609382731876186575162325623152207366956612088967998164041614809141921374648756680742578298023206804898432300302082706144530818640656675113758111943812975297374501172606082229370055642592524900035009700380616349538246047251169137506321385593227344277774811356524138268851333289667188454196270582575411524770441677858636644879671125072129097821379279854933222191055769105955815201861690447454216028419766377273571694321232762362840054051273580878909034823859156666351856963010581058466162158347322451270192238357209580334298109062697694610792761972301524855571764410371155406287220524351622854849131814894304459100825508420980059522411628392751278123045817747922819319880637263512062251806682241500224693345481435962847842238639001762337719812102217663497565193218627303247195466055136891298779346340992704901077459005118369970923059497950918201738390164234778367260062281610189406104606782803673840651134244097083484344273205324801555353320788267991247452924586429445482800830404618250818615141164429023868699574397048341819988523457455416798039532554001914441047799828389596659622928458014196667029025080978678082364942742840545488152215038190476531907345343338017273021759584869896227556651290150777152457958033843508357889790839772622445068364794317992188330025001146821370357713097084613822862692044448227136048125419676971134515687968272211766079678142628882006253695683027677569620304074980026829832997032447422941273936148375020012214001737262148179362652960517688271984694758366588315326680641552366741783998248759276247212275331485251319491133839249641410133672242116600242743991767783454229107766664400649615776360711673773639581989746289154803776287002010531835291475669310979432728500666734908203720913853938834845527910811704274021349008103300582305815960142129627398932062818949556663263750447647733475117456303860569691417011559042320450217030610629125167436155626243528766359369172020213065812694805636079824553525750411886202378143588320156983536844049181791931627052729916580232666799116377510396594712157236407873227819285346192447884530769847498834056177174342261857815131432453718395128994328286050922667478247656646692706650989729532819080806040884865771268612511511953564269405306488549550822966156540374095497848131794671124830648027602098596029545053837323711480306062686667753746144792124267913677411682866521194298337575986901091328228201714488300696235453748655664582501014634962548044409213333686987352269564303757019129780216382756325524013391579726942266522033031066874160981005949170144366412657878604791458377662368913094638171468336550162540140938279038375750032735987275677495235830173732311438355524065728865574189746201025076145386945708435972198583449561287295976371568597012290041876975137592978890996739655396551196187607240009382747659836015013329296263032099365148801674182329266014126256869789930573494309527139314358816536169896504262394476386812494094278010819149170776560551251221491972499951368849025771492204456644268721716485829593157811242856487338510451117097205743169860943299223998475803498640903147619583949208525342486032625740718656234401792671018766407399949086560815660666723099330075412762613401935694196992230276415670546893010432005930371685241151638289285153035096388205264670453312885448619851841288498278249571263181985055731167350114831986632980635679360300453407484792720618204025749999097414519290779593775548529590276226737121809724584767497697520076308032951255527844532413415904475195204745745183755266910254500185395781400935334637088510499982044081251875068521588887600319663311429074862551658021057953681633978359831519860005407246603111491535626989004460910758953137857847940928927353212697718989498232914531133390025019957281029372376336919913321472055691855635447351078540847303989408934547358900596840343596716784776371740759341281979168715267413822880915726134669515034202995480658930464768896371242377098074021247614518293544208887719433370890411467467658477398179641286549486988999115089767789797279125061119999800730771889803691979571318002095517373727485404572459725320277991145670746430077433544296842994240343282995555789786980566111059778714547130546336235741866337758858788306862661157329020911625591367175010675632792292200016239460979610880815247356818341488826071044115927850077699517576614739156682191145475497247701439905650741057161883640153332782898631946735796991708578520843201163996696216012538185700055834096851730712890848606885588423479631431413540445670985616980691402155063781403073319590801350147146497379819371476262116935822681023074021659909352226047595483406737123368450745020173045888204524731338441481399447078181602225166506710330490418291174844941391234828770160726251389626298752194501502347469800349995603891784556371954435760064613123820721008601559861951862001619472238892293037244974483090111220529305594619116251455841505771296929770877260371895765377633911913704016312164835145040074048584233053692899048875657631623459687718273763994037359099788112706748258113326751213554402878234417344029859095567431815165548500010235688270912689040538062272310095757220605326392716356944302514690254856720324760806020422192677251703491417289984189810570194128408489257119398712095877272300231133494257156005210122285133811052080893666271994933312333056910850354387668589493373610185472196611989513714702997954830531303192094736997281293908255859919007584112106264378299694325402097719238765673137485360257661583484335870186443714956718463881199869821249330047375471837926054077256222354525160771947735610181852594902921099466692481042259735547706908025728760560953688964283126236981841740209791020093015500152294079644634281946925795833185073029927914729438146279930900789264106204694960979582906443973619286842767836223062880257999778354888787131640693530664884527816326175148825013524091731448415650440303988866048410174858913485871748499709138109033033302899061999717821046686247750575797561266316796346054357069643387671809608267848840424960396645444181263566922777513620652203521632677384758006997276897853634527783720299535343655362403197103749109069033956903262970966466696248321097816576852525261199850273595535543021099438615973325019221962415268960444106398181227412637787125615897273276781113014574607227179439875079632422668450163066980600055340206482276122073201996741680034065489966194299263497804117857715430175087812197459976155215210708015623747055078574033760511387120055761718229475413303923436281034262461783539587230219093697583708579675397095576858306995803416152924044922799095782201328896154690857395732921931596545942190375354221313315096029559526349693140017500610439865941453164706156072840565401885910291850943164537480193129038219044066862894315323358040419793200293743480470841170596694436814975399552703872177265220308848256869362891373799604846949520806529257109164262313728197075244904774989238536162478434595269651798097984339537980314057845836475627836372533804787535013302190547063860177504222105669832320217078918259270345128667125332815433922839090906696372919988373424339030574441549124823164098047394311941017573071105014946896253089218445119411978887803726581369563762979912050802385863131864465166234908417922714786523632798896163290923210388907830768864287649806476388385573884977051451393482701604129350641817411969701188344940717262021490146253702304204587426066502515593265005020691662573761691488749605177582829647011817869200168440428690358968651463631568975948859232996680431767245443085496558074839385152137203480199076753538165772444128393421669182059962925396298708825791610690214317594132323592279340459591434264992271165730041071664702865395867793944063841945725603866104979638409447634149554628838937485327819182981573666738503063971984388337654073326542539056841899562363422288068446758339389291630644284904674136730239878361541760466382361612154689435062138878820966905169870394577295538144286095894992197080645890902393546595273829260477856093153446697506860692566606661922301091768554578239599141846776744051402944983390075092892559556468455853020712006939149296406294264012188573407666958057208379078816599827830250109915563643087223580073976624040062295011415485515779984154571415371306657907266201358200963566167446175739133733731628423942667770691062817838285329963468986315909044128906940218633293418018830454800404871258535940596479403784536744906077902626832097217347267309530335279418027897960939321644148934804619034014495141474134314399356693278698757818065599710675003442903385435309638432200601588690059314466065806931468419491317770606037006172444056932369866716591210855398287513107944015371423115229237264280208223829425562134820168226420217783576627135793506056697952567443459996312838604791361769088619602063009501766341675455809520830639889755103455263007336740089978259643113173966514788788518311013633388079596815194806172812132706718069011189982517450656113638457188112257781118552688639829416415883280577611239653957217883202503691326686740179371737070359617067913099345273542513656861310360406533267885400377413080088637326195178616141482666223792372984961591883891612985043684413413479161125246037018243012864830764698450011053466986296077594576145512344084408722658009330007300369853490962885836993430066209594350046124633987519464987806218319361734831923477115138874775807916473433717347905714735744771235235544070775922504401097729804368905918444835511989820444490439201936492959105302962772043911361545989219869602863285139936816872229749488778667810981971452078612179720916213733754675531244370011535476618734097720282575361080269695712918886420879434684882601608483243626016168543254315242092012793531857349064503713636165143565482413430473466957129668106739119149316987375855334595169043527698779799983773033645256592430433934165803563695023486758647841395183588683715464538136939931279871091788634043616469238906678537293875231826084117172958427267260390637956210507446099799076540161363873587564279721214327186212214613185277840125998735759154876705713722410701815603694966207429969933379410400969552907668887301872901120615898253143561294260301804164336291068532266866646691839928290482363687770702591565455886707663150805577672505187043888622947813477611538116582323789353890345370476869008324220907171097470358033543227597846645652172997731137430125090752973295871449468669159844518676055435414478702506587177541687464034087747243517512720655732976029877216898901420614166293624913316628086853284416753997437562801199840889116822184919922293327193732044378740424330267392475447249806674257122814357887811163803313985249663366704084049365216269342043369557347793359311506636876411654954090698343534037442600007500934817312158983889758713260816774868450990269887762054295748690542930087238636663585666736640760309188825426694159049044852120139341743878867481829305607245065261644774750980895668497804249343560374295370462313808136666925414529573142070762152116806319278512341209561459905224849105357342505790607760543230949953514835054272806512411494886189080898506086848058256208840659888305035613236708576132366792370909923083797438300329713214741364001102092261570354088559301093569940573464264966501775644119198432987133103559977084394984394048500193354718037595781911850646084070639411462436239048591126128186188055417701148981818936318043861668571421393130551051180628466182947417207586253583084889715115657081578916905138682606426215628033340828983939958249544423828260776662306546006547585613333173105026913138462268678135908802657790880651610638828366452822193093454551961018452797733977019593484198248709757153689389259682389050136329003416639470546499022278668924493171121984265055447517107751994169859615171094687867699238191146596377906155942667758763552209167953091927072306809246263450280037270534645924188261015906977791539129222360906942638231294153716660327238560552826155658543580740899676380661699033414038059082176869741319364080308744490829445070688374327364070089564613150798375232992236782795707187280366524968644657388718128692283908545499526790105283263228794632642800153452907192148451065742221401214061863507624642964296343238015702076048329118611740250907792448878302097575221295389923017342699319804606996400375951880660679072538957682115039048122503523870362509158384960979577103959314434858590973677421264403156500043583616417311118540574081569822656297290795177436063712512972569585366333778948489011869812920214083788598378646259617195078463778495348226788113595040963956180085215820680369947195332716519141087388228942931932390760915974488622204990839831240002200614692971052867459229788560074924124327996750028796471851265013355312718962071978858970639794083225223779356534338734793454538755939063665120602785545149981096084877204309289047086550275311975791392851107576069360972571718049732510949717544418566300255458892229934622703483446592805207677248206167409088354604298972863549337724997837476931999173015588173449412777000165243005245002277961930172723487800713116925781853470220895751512574449608349474812012302690976615040821733408432651390889959781737240098677448381322815192972501298073734084379999496464539935970201744193808110785199155071248322994677997091106304194252567462619782914337814713647975179817762949363568046991201396827420192758985169466962654639008918677562507943347067465279851890018851617091783504596956039760625851159437989463154034510924344882043034948014125435376744942641148831771724839221037815058356275875853608169470252910889577028925763676722811115387517408393901291423098907246149428529136545379411032070175079708787587014850816689951384536707618784941444198079627564409077260722969252446693785089917543546442025965108876663918734515206133625908205487071276294816030735583013640585202498395248350834870926399772986771184004252518938957539115067395617250799950397692059981291183193163305939812981668298259879928317943494853131937260843247497828907394343734126706675570141121180942530893512936520381551581899628888360108506141349787312462003161926713712086568384024643951647304264887975559063061558347263983889891622980000791255883851580951845822202062255852673135725056633056401929637938276349508944272520234690481694615175344504567797490420799827770266981073876095433441560523698137265442815834460109683859117522174690122231232332218706376888060799618356029637029662563242411690055065878502644017582069670078252979338169864742745576018448794079946344519310701798271682211609183128923248233533950662762817508240976564360768276256331432749068326534391190135633954457100653732168959489157210627759908846384431864408447676228559919677335997888191740679405543284199231022566755409973756792789966472013306344166350514621112290902181282161219802959760554160642800735681303112914032115460248615413953218866662571228058063694936297057486199419870681876309420161960819034486380070550240598878621207776405827758018517441876014254428748387663468700391029991878933063070402344624201974257526524930988335995181549803734410079123424934332330741247875189085882692667126336279901792560365147226370226226438389635365528731248293420197425895970512121739041861708637635466665415244798339526903827872794784600967299590016448010327492399623414414640397482700633539107762161985202790443503170079654454171151035133389052448227093410336659502407715768521470830168535389544860303385092890528538701538069736053507222212956869359046460660949911453777336022240836354265272810019788461633289737015462997825248123662276230265879067770905703049130403321443071463860174987006820408741340583920554162410754340435592451621808906535021942355023136305055774848930614901497696987659381668006229701216089746269959131937720779488115529039051391364950105535453739762235163322629816301456602927461629391257762351196633988859055154769220569930133183507920246902666104943159847293021404988891117483416456474923601038109948495011748009236312773973138152864274031806457141298816438675155408485436190512283630444262125851045879116015869172608589403820277488508340779688510556748905108299982404221777767489797184347781747213733544468697888346702437332285972060868049345735448541548133195420953497769426839194685367139909459383459574112001672759380356512936739203413226857243797511012354939652136747816767043984281657590033799572079734010033240215311538141435212706512029558296730345954315624219751799849638587594461213752093680862858291236792623518659385725695032100549243084653179477702251024511387580619718253598019675684241116281316915064703511148881132331723291020273109636782186369991443589604587483950437510641274548952449589058373310781654817526639182181788608518902134365773133014995106990785870428226245065704168700398008039372846449487958950506626078721617201615586069563710681473949671090799673880526505813292169653709898039770926685068100130354024172135650796118489041713229789920449084919374733894570544258462252945283312820060941364985137213239784036477315549957069954684092327428304271144733868797211319526244271980887296211715648845035553139533345058329762305658434781916289651739667625833671047565577130866727058202156455869362649010917430858564275820336438840361964078443597040385685862564047289130389524478146934218656181721085976896085720138041839708935500339922820678336063207138648703981060569066255376989654176058396302848763181702723406028256852028465886561382818118289299874461052760394923280034151822347062820844419324875860304307596898275996682416363779029424053149892512819816546750525544728271040742000965320289640789197219707609377935998877495691144374244693445406198836128430431121571727006536768169061096542527744456203233766746627418217342084027151079354249584913353577896922608523253000908423562032898292812565353377735301620404885298201673367584464742474688190258012899447831531803599404984178196340603401538227081221241309733225306797018403692900357887652469032063188435972270523594792207628464570943821188185030233029348162609644363274382135132729868143246236242377916706425938583703962415019252358729222867801553122940133125846203396163680549401624276306488495407880457104444993533326284982849995999299365344741992222587832982998490958934854497927349106796536017719150840638899811162026587740504080720866331201922579805520543309297367208773582162781797360583569032184588684817710882025600785399834321679941221398753401822441074135924971215253587210021855271551252068519975895334319965501390830782696966572807619848179373418392024051742681020541232289541312909317905723445252314916622945606326874625902364341382254716277239188950727291010630393726716166912133734422440195816095998445751208071067404056362258123701902726953762611196010743964650906006197998290125000106558487365797581075266720207306918602908213333484637029225716190775845634771730455540953523192804223240575579226798559653894991489817263521392150469248609868462555555059193467353087664914139535815942906702812515757340460037837017048908355426675822960576355530259031676488726378821841488985857512276385300023383906075761787900764572232595193253114168970249781035419034806793989004600212984730922923384740052821079528692290248173423388782548041771355948179198235034163826387729805327237725152087959131444049513596468512402454756707932897713039578114627343501060360140852873181783895576159408947693161201757802152774295381129165697004026125888880218324821714173001012339800724918840223241291394996349024548978536715138841810878583690498517988003651682305093191489098402698679969227262147668402349030960548284859697288065620253102526644934514411239548560049202376304335818998815931640327748652422551571562117917277963640334089941962738074381918898223234501465863457493802350398846856356688149403592577059960563240491655066814646787516689604772053048890637317193653840510864432956872795026521484340316471565961045967199433528975460607020943821804330621820094837757607942444786894877017114886661600494096776574839066510538746187836467878656594895242623567450960276784701365346534843855173352709412754846403491560760245898010556429526996891530182762137905586500026341019970449062380286540722370733810027271355018783206896694613900237213474693422921602925578095509561013083620223748817695687537365183653769341536440751800638275105565238410811808197353803783214969211414190839774689469706424898521582622803788670377798026804764313776597508979742669544935394681033288139604217800859814983316325363545534217514133999142244969696964073027546418350132106872701588377532293435550725908844905663760452958222209088359234642025220509495721032238735508874468816035903003505434407294470132126319866899016655479724204042585645258200746430324802240301436475773442918692064215973163429461754476346945424103920602951100883618136822853105328163496412053070523605096245732246264462938218051706597898707129891302037226042441883507997511088108405437645776903745281984908934993456392630761658489448872891823269759701362712837925576434437346053153234248742660330153308695955720633821774836171565769623423167766506024069736258723602418171386396632265909666864589002795819550175896139758339240477923926275512214171220430108616332973229242360719514939519669698813117924144459798155683449824946425868733740459124560096418896418614647930458008389434012348218553921444815217385972005882716420492002335125192913084880912338884122090274086364628845206842012067688265913928684587230683592669054446802457324707730255048716123076586863700845099966424166372479492919863776581183503533538613309456114969778808928251928156981618960803045945809777414794109234176521012089346862418466585762484110365143360889005192908609805556717763187094499954171913334418535182182058693793055915172506121753005387141916306992212081338918320752794121344021464470046206810872317748166551550667706424446841596644047497047492672436294846825140204172530246676606921531262989665625214080360159319146133560618997370553994660597940841419674526697703336389147651514424586885608320381023837732416809381986614152248048170990830866466693418544984227770273522172635857500549753097666310846618886001830920945418611154497490915207299369578675379909296517624497159241197028704854423159266418444374454448688515856072548943126062915833695460738600990831499360911992293046762867988848039195050981872982418371503116856611164502630328698740475392711514848236513464025296380267917645600638400727189052164558253687233315644489807349924532360962847395735570866954445707784699406460016584522185100529495568149853162894263915655399675577053808431117285258620575673833727210339709288800914971383345129826099844393055422132095623191055211842429494261401215685970797409611361602580889124652621435018283589246996790928538998112940546646078415736751835320176168893963719545889839912650479100094045264023835981732822886711574666138750534560625611253271306016987851196996120833617276127761633026784380010765826265858461639483033116517651817717189579264947454957445830981202287438056840062919679213490491311721086134383644446786827829097349106396168741110214376594035528577812947770824227388604229983964257048222184549932082374140194233250492971865633089737309294072223985551388069280742791769398527687937958450332772263096648718699241039843916880183156206326756149696937698244706858017054566859317684514227908468182438707261226123903975769513464888566422116147488035711765213818762624565031258831371237339162977998311951563775263345351901516625158308118182285838828390850125727617256373591987268585462546131704128520531029137681860603334491798304218436114906063889004134831307036899925684655038904997318911253743978916258091484089387789267746326595841026265891223988806273410074355144098287979603232909274917084496804214589030836433096336214987914969048336035695181366437323576178062592301294693715421767492276070573642533587400307320382492629934904933366593790801395207461678882318734387736066711035518445514339296282209340414999226587923896787265783399323241154017877651740854285341852042722897922307821071500732800944798665668004575854622675998216638134874030995887461116087103628249458827057583235316345122553600745373043227975243714920002941632310978453745145191955352733170929384272301153908252631241614800138324770824527584355767351951303694348625066437673900291023149261755843109080543454374786784971195857409294032645873069688838266972546843776711435352594683281436249211198539876915374253450565176941455116055995824467570369539211881253045070617368489875838443071209991947374786513280055078907679614534014588960001384126962348177757921383373648797426998805872804249827012741084848732185601042581008623708122751351263120360197415269203474013314276795080027003231479255112587502919925341268243483243030914549756613650831527878945418081672220413893291569919517342339742072808008550753787022620380262395300064761784162969731778973557401751543988930491603576792785082098096335365094106828184332409427510621723573758699615905822277343191595025295405511708784445053909826792116898060192971519639873662928321865010402994563586439931845497050434854713691002224332565261651637203810163722574499486385310317215394750461057454200803399131568810009310411320470898143356106046606160865802871935706275539521465419506455020780836519471351887791022766937718976203198573879540110794392135457772748931883304493390956909170461059867719259134179383461883256257234324725544769419278859818640168877597845474704355166045592345958296723815096983171273596873533017588689925928780401047701136688842577500135792774468025507318517422702115147733006728924335123069271568066678964381066730473672435218668970969230942308665045838020275979922464887552504731831903825373862580720203028601124607139311919884601532901283290774611989782889540259374258893226882249709134215847905899490579637132438931472212743194413949322421243463052683034340904734685126353215089925918128320610858995767780067669376059637631856822649742397776706697063567392224410010055692209785369633690286898472635851536708294979341044009503398360160189389159900849165582162709501660448802330099926143862559050799970626622342775872348494164530877715595314601185731786668165905538076500620338081138744180175135282301225950529995631474909333578144316214503526169304594318392248970332341108666038396815597746466473631500747929089408728558702327615992040610898134733714343062388214469117087367862262712266184345854755722912157249905993616696983203706563808764926041071407734937470323913652550994267906808777663104023569497700843476038094182866911042978124972545387385458449304168045340030409577391082917732668670842600317549430266132796933347896799192652088209813009176914239326261680620026275017544281265234136914856749607493022251969699696528917559976788770911410718903729379113317468021717375502673570592973066536861442108017607949105328794706658160446684187783030790686316572369151959450400915167874462295350152921137579696533272343226410056819524595640411531817317744707341721609410625585608809014375255272353808735060293143174685517966688508615542309098564451499045867788332907361873935225614907339721906565540211612796171248073310699996818561837423236616321039928852834553949248216600775897056639342241404920614792038354431317953820252755968150604827036592355018569999950683544949987921662686056673680709603526953367744639836173882756638674706071672054160330667494053909688494521982464920228458737924583413339994431150945128138712991222708634902782411848603351349554055635569464895039136131627658397367982327605770698543251619802603862732237704371566147473868864286202131021572832431544582739474344409969384855366884563602189369373050927346773182230971750090733626990980254875507598707449871302637949505929045652536869183854352059250007911608606685789334525705586701449258842658220733082390191144100424127665994741684827130285599585243749120368353559576594473211911332328659378064138089119467262120904530202325095745936302248068116934162987524901318567276999143298132875365492757795105666839116307190611791544897534475984228862837151285088600126219766366960772162474371436504938861705727313289317383023317716555024082574086061481815169497495181399050130273919980351201473401972349543584801792026735078393901947458163185421769981139477100158171371167934138451398150715280986914434169760783794508182004159065262755482690072588409954183060760195009953792599392779599389461535517789060193170877979517935639256123058935155481648779418284072770455170857502542049089868838371728908407324495412113866816031307525466455003612862100143055232733639802161486982680139544031177531847369842184367253691935815207336937538658307012321595719177248049270538302660106664963233674682119790928620759965718384230330168820272857326813277812699939253431436238486419498187254142037101757984440384678551913083586088650666751064267741831870020686342507783074586415461459559149225911509496486929332687983858418920890083563969410576894052121447364293605934153051206709317360169556811518418252769707923128748681336846667776397929507449391251307600359029652865060509765308568275412185897268650320731673417093346886314706788633833838887165594462271248755430770390916952586785798216439194672589806035248589426471561936017485004075897662034434009482439763824888912590587726008916798033814926188046246928313064766843193210357261884940311223197378461245225675976671304277136458036739274848608016206149404003408131190671515438848682526628677335501766574273437136974612370133728665869871148630169372005027718385465553833835172425665090471682330786272066283846303934786001030690781858902172317806661747866620069806740908971334745278298549294688931961347049030491283262353593085439227199637343530151500023021618919416608248437840803993530451483883037485182069205973013883579706526901152056551772279293183192609832929315446604428744228770665503397316200359058620876657455499534853170176772371110453619494400623709946356184117497441172675721168614060466366080247341394926285771019016791608374640433144253116282754695548639732413526145156242519041062645531868126852029644716212858060680672916422656755129745135410306528930499925042968907799518506200946319270137224823105565278836467434333864847821442536404179360656538627522422543262345580117033039754314141009117230814060436712607489369642976283318140057946905787018784163964219065477950867423639075479596221095077870120836210378397543837307626687623423899006081562277019024239019610271992927376297569442052734461086138568084836598275956709229673939836599090247929612929875565532546139811999506450232182949422851456740899444237306498737496414730050107027907072314786317090041605168808988864627126780236226742325639010861202481004229972124278927159680975664628256461126029655930629983775712035529696723215105876245315340764524716217522298742403133357620673529160285049983336658840282051392990509569384612358818656830198907437097714727086121612929224598094781561293155018148554736235614477273406759457439791832328782491264002242605264950960575235733928450377752998953021007052286835315103856467452208154121082988190982145462542826326364307591019916898798676149577073624795730220747655132775319435740411443448868742634055451326799197603958137218087925573560480384444910314376429645063846562344618908137959225523749338044730791547343153745378211739150450189702362530803439706186527068856702298954417131983089771049360248376652898803333999802778562073762391815598455237010009604864001192430553887552297636476546045501663317329985796507994022907740215018079084313299393920638288332618037789226992806548827733909327961959474636692049495997724677056572533309371105554004604631883989556914909834557236643330760150934721212074984986188852375761615472567763104058948544203038676656720706477580655619643794673446132069411964171754676659199986431701488082543440216437234210766056980131625229054628237527105871045558687245572869020833064364279487446117617442739068443670259016880938328431474361581517614397647209690153306139389352260546441019744373681936894209992834489829333087904871100860106258441865905985699565361895362202424165409082301793910549633808779436989240523405121053181770206939073953900947278531762255573780406292002607014744968803328035877546803104019719762379292222664293485679542760992067392632260409817216613508151316632014428257374174025782065523576686063533095917279303667033219574226844868015354774440946652039415613315312536184160659842684324869032469347538825218185648567444878278211638798441840396934583999908689792619324205500153855440802769928301075054140717183363353954520542504991079602470863394207893851414305971061246197748404274915561563349519908672076834059558047967198887591702586228505061970301941691237313004584543901929184659294829705642641875589547455824393427391782993129786070874172533703820863110677516327981828354506314157125245117394694673385381095633489240455702424295687767037761696480251490668007167842678969637110429492607233389186675034667915374794775315376133572911346573037933757795907409070532588937218425232941344886041620673591268347505996197453003427607570495731310780579144898753577856368494882330830212942964431648740620128852219712075253662341471570683893663634459215343263176783338863037387182213237085543331413108622040235424054430836101610300569449670533862610685730309078801227821813277101380940653656552130918689064268542075597490931856286671380947829058244382203334017941962146864645080148104242338625094895055155733787418698329081252778609710130911917985901145582558758349405380837981384386926384363187756853446173070264719285362192961304584112692749423743185230429457299508059887738689855482372521503212541446275492091249910454405371320193652321848692827920704732412938079928843712860389312842246681099337615224811420524966661964467605767353468527525319452246868541195133862411265596826511469563757776511003564927867486671469704915838516207134472734371109589817792969125894517630918589070357893290382100582039871711384037181589091408478327717823720530568653167917727536920511150167227114405382670979179769684495018117560424031011266195669025922539828836162342303193734572509331616144561238793128392187646126237359000474573648098098306956202560445016828638277887732700270230030618394643600345301789680601467225376814344333699782492132141375464042691633195974553105081632405167179955382480035555178529610161474258161116002870261479301616506755100033892296007274005930742406864202517242835998123845050262652654252193895782684650437298636536023897160577444486317870011197691302215524223146774645127347288892910839771773633819948865526940581807934289326385556269615152317441556711074051058017464557019172505882392488023116990776091514016562667459509601797374737530331677380318355186881019039811398458268069327573475545953621258754200469616464539741522625399008507233392674986200927032439553368929225364801371446070004378841933033718052708340459790531188005664824350822575637730540109478670063545128741992775869361633494225164004544332404261394020453879168555006769652540105214553399850737661424983661004512821240240327527545264018472882884712376357361582875558273431201059794169997041157833046632855917982161060684059711873408242977191034865553476629043367577414458269223374024344971243334979401305764922721644840151526135880130865189591631667418131858388648953242908525444777180039172911452090056294611437011640822859797628244135128866719630214351540893039712238346910023075089807539819339831058654558511473370122266070566112411932996286858174641486440957136759335974439695320488308395779500931840722930513804852578566550888264459313996484053401756013087031006285769396895771110901426788192163160066829997743520152381796074814422961806639754863509999115018641398228003149628107198547823601104205032605351195243516523905294574794739365843020234906137287492657058309478698893449867147680082961963375495033099467512777908701128722536848296224390464202923737083101209506169140591148231559627438288549808780543511511230084470255495409308504982166230948935561292045127359911752247023923442954422601160784869469555244839257952705613674035105524862328769494358565284146962770839217708344320455139842449874416658638979415102816353034021028865640080975255106236158581599297209212826074844629040142908167673204771126360626743165101232132886811029714759993955581214365619204222698972643847183525787317708994054716312902995435407114558319463511788134928721902567278677656802293249107018372934932669141800862707888820030170859793497336326772632650479762831525499541040138214144835879509683853042367327485067217135876599330113627342089577883901774327235479825539686505225896999691755593187699623558199983485454372549411286419524196301709146001773747728810499625941706997460855780956230031564601652043995732829608522524441996670930250068512717983320568273106391207424817158209917530623492589464049505321573655374012981701301760956221846406236328611361048050750916376901491540815433371340730430416509832183251811583581768760692099324910700727670852416127035752842813627238615761576237363705811010314341990171967731259069678136455456253132083676572086977923230362752010244028967784729609529583259076649095947660647589940007626274976931588874795169709347509673358556950347332918537979491017677211363759659180193804282007588104216076111359864851533323604409880943333204070083340067545268417951593730402382798696431679598277090452738218321536618957282487123160896731217569927569388129847123294116671379546465690828472572719494380337457240557572069139049616605253333754357460083510587091018641704351259391823467525745593724808542663557617545939181908705371965987663371735707812323599736236378609991490463594776216860521621395107846577055775165087227483046558476755203947451799116711103271918966552959336592549901372092999685624162856873729275100149652010062249012179868659444880129654797881907823607948698975603900248369284827673034278621909523672933184448623149387737076431343694260654103007425464764281925809671027871248391025145184731326969427115805514562587600435021432566899599536754274498663149072581203918531324307242207748295895806604924132503520937883040285219149853849814204922621319466391993768612687011927574891838684756182528219927378249189089250740616722662821085431863789860206355773958117490464345216598644630426516933070615863420838186629666416020921118855462862002446471099266343462157802441011636418966156187290098013959492545118659598363251562643699116492717151211330423468435838882084124864854283721351436090946965558249098634827472245693984646705187436549737399768025836314485726459636959628516623087715919683334209221426797617972763417201560380051687090520975493563770595284150222554355808226470911269058154770638459204857981610381662902904335792615592646411286085129161674912085138730290665056489345608553345749869781372630511245202608630656669223744882042622496234162027993359946905257623929116022000218634474177666852662674004606977877521076276271797936169971853149933121601931650533151848934342740250401109372624820760750276021087265759470091543407345574008542575899982340390554419059032476626152316849187586294259297120857777681856461354153273482180752264538777010892022779919955368129609076694285560666398858227384084176982610846373177204653373509748198436804371039506759696254880459191186691648906476911488138153297745933057757793887923120561297503148044685918868754764233686718585227777935234932039043739038314624000753277555682318354118263696426059442542360531043929961392428424443507079792471673617322192808402137968907276999449958553041416030650704071036859293414819334817710993563153670218478260850880083786813680158434431938142223550776601409009295586533391152097038194063591092913765497272816163651357188190790373684295486237028604509752572430613992778618172976221097775775340964818305983784460582111956451857219825423228619578283258117746812565103064395740822845426821847025191247403651513791169635480520524450369534711706467584730024986541353643634105812982170419956643462336181981444652192470184625752850215253123973279138322965310734773081773227804472073760482550971796511861761494901806181865073974857246028261892252195277434608544296358726014632719243329761576339244486465494064427919540755529043236613674258411710942812166339993163708792322593429411522317460560350082161519644462961421946045185073379883776523637750175095841125130649439951296784783487527885286134034720629882892522100986982097893512742669622851930374449202934918304445103824476233969435548090991882639233179553324074139724316042377323665588902311665422430586456293520903016235679488959899444864926362723507632145306636423041006908543084426272916928944476739454500510360033858079221758525161747617602310198845975799056852240331987340076051793236517838372713581935850928490853857255288402563851382005058169331585575294935565556670748956958767485593004237424250840545088015984023541520494296939874677464376995312726016609716177776547107592185569495434076835543307015857646604761496173987488357975335475300329324469857788441321537323422753350450059487734624115439235528074776113181899508842972455883344221976678510620325155082755540940295468038447720056049511464483916875293674204866137508741476820436143599305699064377684712420989395083358921303059619847646044240064311386832762150964964911021200093288612099953042149493999094407325806254307836123612092582269007350519254913957521695274407125774442320038164844802184413033502276149786208375647106340867275786305849029063846347736821187685996997123011290688320639006972212053954846950058707653720917281223925467363505836872480599975598306788182618360509874586798386597834562379322860964702732560957899280619781757269252571494569325997777615643919072649668871458918705796238435871145596750896457153794445076646387074008682490820026837380014443085914721434183023604306031737908260021850586615049778210088948191992332680261751626148276484767620357508062150971273703362662154727012915733553691014722797404108145746909595107908929991055049509668531603242662922991696178479861506457613221241956096149053610877318986793560227366891044300179620728348903291035547711720890349678295450535129961358738721270444161761016026668315369994978926165642241512134137585492890712369937841485968545100979623467322702437878324322159259083664357234778054565989443501458588388571643068812954423564988165012592190922212814813034800965975708504332428202119180973749890588188322011262423384497105851193055781678342230557475138669826049775221823018053343783918779178484067457701714882815818871911575060112832765161250333514801452432878326777782345740253485599700037283853634343218038970893189019070223116219020614784614915109642868157838484613242613534632308637980674523468968387551809096359604704973302215257429364661016069666857545370618787183090861642513768583159334771982924531327124983928039920641259645378357659868705936695079459795577103716103933577710832361230979044810907479745132807594845049034580621228767504332269133971671310537985548156414317946643965729252256542372116763776123876000691980484925665325700879266565608479448500513374938895304265515512933626170601305688509891910866748850730136549060659113516843975983431429548121369785044373668656280797772788797743356211648037678121091057942650354391955944339109277574320784512610694439496420673774624468882107979120379758016416982246310385946906848212542383454955061570193580972138915733777225752969381232912699626587054069526293108786096532510342863847368262154287664406549069115397663631048254665667602309738243661821515396861271519881043293674553502593946082931023374373646751575020799720758679509991593518415305026738493579967993400234550229992448232312377502806829918161083517746703187715969390988715112217114630208241530455576080572830808540591045695824990156234897438887412738203139878271518097946867423228497336053575641001129357980106219870542208669158850928799600373115199442195704392057909024117472032840200161968886362872664653979454083910787070732721475462917794023560996792902611150406192946809025416697121491941692891447667449756140606934501217687635922936182543345882261363636379872476464884999241419439035484495361118603787010942795343483636015326786636438882622209671697151098570638738795080255292690088197291397764452331390361543760650009234748488503934971152368325042998470076388101221439629716630039174229635800919603942505484056157194251852287478588559734714687521808279994324209286051741547485763567118485619160467787849581431784123845093692509652780228108212622388194518107819268424603064861356367205621243238874272667380620029324987680900700887592287224902050339073462539410478657280764810708939869136378761771464484502798071740450876067478121845417414649687094944540658746219737336702496773909393254195554203997364697518435241922983807629611478572265608342810896813440307747640682484031338245232842827803905157533040592699268597788524273463060084587707986387788947659915037252703255683937407406464787640857697153014035660888915917642939066327560018671791675311554590802501456087175183940712443627090227617611894015247477657723998284437167260104748887427026728732498796701223581538076383044936875669628007587592968807601944876130058741234433236900253786639277567589123917122642647228752258299310072902270104379227835528025598513610218100535035867436643649639831116652920564449130973240862566204782213692453350503581831260006925772886916859714757413203651609058258463387745984891171665752596923366989873653623102598381234384387103236184331073651091165463626223628942129392475444670031415703856791068331984161079036231114923230906421972738976615105300484593396857320805663275827753191550351897977877005731587745084821508985956762469426689583884504747928799254188492320388814682488171227569204763600196811954949546363028448954480065823651745745427421229540434600259093372696374187594819481289119989426553651512447482984459660987769707394843390849384940020520764200771031311047043994787786637852727151960871932631775160255368930047279861528577183172835853339482152100365200459241247944610470680036846177186963579560292440563318911555679917283386499966251679439679236546154500988081382357475931945065378399590612467955617316801319881476248258975956295048419323130912738214658782617785557938912080084745788569203982637733536707410861845706474861993712518338084694390374400816808911511029230999502729045151469690320684591967238346326473305926732274584543498082876506976920209802116785820989051655119791342569904185408715465962507595249696363780368932173129513744413335870158899975862435316890752122253753638217565284796869437685442322954930904044042953002560952487483413915843234637011958761032609949319567341712017640107861750113617355368754618200258153425670609318823824036316377735088442813637128221388877902493674802661589099648101273854735751405823338404430653171661190837913310614156026670880121672871821758154823060819478254617800921061585062306763356197250193288435431449825085688816699230435680193385089881825482772262768599373691932937778357744092447286317223345073250618687596633982137110076266402296484012440795680585904658138386293412424137185020584407964534854050858466035495859981684371583516044596307066965105915089815280838374233397774156941499423305176815654041523322129386168318915240786296912444897279255721584239771749166616971374648948580393981989640097950138732773070046141393232437747279663790785353270873107077722710182076505712050358834509212802268334725336775496034358617094979377205220400341190021861641370160512368049007435110496382754311964947784760791876306176789815558755506999484433548911074045338600546324987758278131420927619426984135308946193946319825942465577046690062770376642875294646025094776729621431507694554059622852155479424761649188279255130356369441728360148992217438120193390019403475910532262849603044256053333904149285957550258044995809624893981068000757450480223774288231202811373098176810681083146286505901245093939286059086454850794260362638489394008151750740505564635746452033751919777185959922072115908037590620543752715738309610450587486226534410330772013853264638505211418392021820919585989349827535202277494673993522415187650673803926784853198617536753426136857536802879615726214032552386458937538649839047576313263243954395545573263334288264297020329526337543210171758777301657735594154375658936112293021863339964721735416643868512646655313152421426766297576171643278530221396230520321778624774500770951776972012900565337363979925326238770854870934308742820292941530352925245820337665640675834068489877741595829223489571461005412478122645510185240835036714971370201532514269295018562507714336301629041054692160026687621326148691758843164404064863701152132742159634588616006029830636185070275865195448720644981294282931357087377531572258450009544574573090096069180792538781651732911575045492619873578955306561259974919591624488890639278705058568378080172101313928651680535505467945998519044053769138732139970536732758428225794021998355230633718159573599494327775048932462763803859443791795013247794267698160350541030237775068471534585588349685978165838039158651121731067042760352135880124056926392716497339240550890565221513727171444868131988781900625912676367340178693869575871260306445529288928646800320617089826036575394810805144885285143853343254423796628210055841386707385763772951322724076607943595517084123336116691281505129107796280955983628402159276918408381569057062018301148365601478805798607595924605266217000783216285932893360893053805618774467114532199775485206184317056032232184256166607692738480570550927732762463032358188476609230102243384784624530479098130346814769967934026391500800454069674004465029773185513173553984789657926946976781437389653986716724925204455102198536712536029868430070268361828788753602661042597818847581037225052558518819368204352197714760869896763813067470534286151978537379658094389058914024023773692447414421510554001682415061454503473884510742397009672225958202387406472989559455334921850391571787222658240412955621860296490414005784643221648224559294703277878458569722934997813261609103600603696318430986445831277693240979793928334918212399875666585135594852868266820443567502954356812417929598646548571402189286382492867485264046116669087087494185290716108754811557520391235889653169818517292855470198196204949161973631384432841813615715166730507348797123629723498724775813887977449233996379595092766542474458676557715660155997101442206987464350884225968734444831679519823953651923284299893498600479827536933147835184845607517323574908065191569304318640264965620341066999779211996048104084499319738117972191145329642002732698037699367384351696841802510860541675649141777859002388239501400207532938765138201598213334788991076674878862894334571629526451039405588672116873389817727643818834765068087288709146694794940164690860462973492887978256763729224246327466172013611408988890444867015161836622257212028894445019832626881866705024954517917026348942597360346779993230983283382243609471983608578430840860854464921520114417476636654602839441306678557208327219409586893379182960155200775344002356080200829151487600205962455919309710576120167836319091621394535376327993492742571314255642666590792513423277478768366852197177285462845442005939320781173091245580684842810522512843788266882705790016071270977018734321757571249885041372983762428487105480411522420995534081504962630602171847178857960474782927978649717165592986502768093239456042075538286837658662839880709821895473172210926505812148300846265364387235042888105998665318846695888338651090412819652395050112612446734774874001311723942298294398986151884008207535996884211668341675439061358104600079745946634796710909781468888002749155150687716194735287907372667107695470931957111229519924110361956781157642580306624627790918042214550295102665901411394079733281738521799710876341959433966097174957356247235275599862616405569534574688397160661566261156932571933166566602359340447551987649881627168441547903237997077424430116157738921116752684003051877135816394102056512719451264021075678564875467048900857254518209127190368925838734176111008522522803355182971650604529075030040599717153947763318823431205780349155388540642436501655316970233747391802903218928299529308719883237404417427249753260136677329096515942373605605019351351882899659863042731409009685320476031258622995167359854232106918754046204872555620464237301072374720177737555834521984247622717578672445558409978903575278374876362844131984513799626527837829135807628275155332938455323554600614857682220975405646774428404618796083125962072191196608972095319017506304482253730174011719237141317747309254021561462338527739181325064218857111589866948501847955619621708136969577351548549571450417721010859352508694053281895031498533453009372544274424943001028590309340714246202435226604280256529433207907720365845906621238591932189976273536420240828261208000599616576471981667095890301595647984035709118761357215926418579527832601051630983470375306884397896749254493753456637290151899705120985594064971798036037311127423154173049375185590597088668557057443039537065794844252971396782926160220040497770063445151242035432771937156154081415832705332321598715703987849734904765104956163417944531018802090589771176758620556634784466486363232543736702394594126868710884921480865211685335550861845296729309794333896854586174303956402937095199003444312319484200130296857994697624463451388861835330532266220230960106156366613556059575339509839238623677286672543111334911636725124198732446038895323460393643289680590260220757485038594885200232428016469740898640639726445606321892567232792100819380941080471612051815606875464342687782717079648053426689961055687246076828860417262544452788281909631382916807422077134368879876587787589090326336557266023367650745776699531343235089804836031144142065803410760668431470850655262990556198005396443855940727636290074170174105368163051210306771687728789591567086443637167390827345091340099159405937720733295825471197445091526551997102790580985020666193580480042267204177329144373882602568503439170355701733146687138085476060501662570269629648578233287681134225660577276700017109848213608550474305274509651870984086457530572229894631575874184926372238435511239673139934518439294548859639924478814591379753197315645442281372256752785024180603016240088854941044678498656017674021689377476560614787686177678316979175489011298585526446540478915443091072540118858874227536657364083598080100187814269175298011853704064103837396433497161777275031805084820077798184749624796385697894129157968561918599610628017379407943230025658855920602255471734105162566259932554719879913031687317274210458523122762128569255934681457202770216482832978164302135467285887145903857410431621587377513354564466945110096068721426383629379196551922492670807360580989945780895937309633913654914909032001326898757548439109142200707003862510640313842093273514452898183374465144517716734251286756288932567104917942428526287389665493394782922142073851031214095713244939959142388721479714300447064926918393248701597505782129664339302900110559238144690994759637917951676507618232255953718891173568482003878537054547053095693264723522423677753312438271047716907749321641755475271384815657549971375252255093620317561072811849854688818662183677951092881102833461265242942464302426706170935687595629343207427050531017022490752780858546637714302488762465434219417139973172697387468640929856532866999186120622444335652605345757692601679357652528186758796622929407425888467238877479430807222593904006790896768502113377125831959231798847221882765288855205498547626719888155073359878784625068272768388316454618263490805315892457946622560020988697721786879679990293339954804112666726932476076860230773009810424374531676367618256660602894749199320627066991849396239239716267866176963839997160165934702849782573999828335765607530520587620687031173690863389208288345478531052041699727335119454816755851392793092218752138936291081395220074544983924538100386615222087128060004520522524219510180186138229148537220101922902086756770828143144582528547546991439838627160435794717742874197092014362408609821843916456664889528517560351080195251790475399479130761263712982108234738537148818376353109330578643753529133359117704532104773396159583102337816339936284648070273952519146583439834132881041257386782275282806633417913737937968184768643243213838094438164780864155716895777091342519499698669452506302539724868061907080266209219753322916550419161380110126496139602182047674362653323005154535380430051624686422376042395914583854621340496467744628437231090205260528946913447412672402256590504992474298515933482777091654939205200084654968970403598442059677847260142579313134290524843488796474451417082744526306175268926648860355278809802417186516439150303380012591230856359045565010896133335060305582307926665159423824329098344985481320628911783618879644030615493113975955813540629569536992936533169794634619802245956890817116303222652622302866925146225079473254507389673607596968637566120264035409267763411593581041661617475645196109396103430209695088861759512836900477518079879297153975554233843516805923699579532354909878576317065262577509553306451283458824590682927045513444817093636749950247835413788461977627677993688068314961588921722382256116888957377216896771545035246128180989081968310350904074772404958788724732680010476522804970821424605563655108775184961669755044156776118670770108213969282762941872628138326525625299058223309872692650714847955089479030025474354972212974254325589645941797739559533585314274707227893149986946936506315060301521766079073308427303604913873054024263561257541408788995492956788303126556087252214203482360354599967792469997271824082896697050356302476354378528412339603657611948000705943887679289272971067361786741650302709422393962734824753668239049355582541193286855934604071090393638076088607602877133358901779028654037207444624032355575199777523279218768380711529028768087681841370054138268224455667642465172400775123545918353336983640120118842051286202862315690653224297911862872708160732066301450864971659732392320609892714223138459584769080573488176509879617779239786304899033784719380151697536100718724044084427017240288477771616984551403699852807387695214622912713059428017994861365768246277075975926119161385684748284167952088797593248528936495033675767196647124411003423148191176673044609737960831533794715683893692202624571412901523971117465956784141640090449473809059833372490776110305378342023253419943507975896221815167495799939121533495160965182670575032141627329889916588339937067461864550816860243001835118285725391768213134511609180121503684868157868535493683855121202116226057513504809344032067502361336368450335222396320109263533360043973019661264692710547398056027363411697353859285346807524552621163535027246189947357651125457853298962396255337157120166314197288388165726469098629611542872390720115008278896817137957120749669795358028723869976617304603298964962626936177783569616203124587656721343942031487829525733788778735428583538707387745465472604705396640815996106405877602609559237953567021621069868042091708177975573534659912965370158551082817379907023418601565918117283640971469607364191912325762908766605292053872003423890799403824510479786948897853333145369490062062080755535486014684818699544412159742599189528084717360904599652280360939425426909371120264637739126872365348388664253098382481763994486414333159982314313117824173011920722454884465589258892809623302117567891740299219038967192641523288159502456001956888955462939133610255252042546144699581578256302696799693614939255498591355718201832406686451472672033327526077328583413096094083200827309613856436585746154605577318103078281092891514671823091518425661162791145910999492165886665643475179985384879184293311878922175603918395135712968633715113586190048252810636483359443380822804214294982635824339794821737778316943437687698874192905199188379162320329310770038913040613172618610861999634779258277903640782654766202993952805294744662304318004086792895114694991395253780456305869490424017126773959561218309833140430980113971891394129664413315522598011881025949902977487097985316199365725814587860568079571410814815291420693307941213034415574412411365749335577677946279076298226815252542983062520137893943533638137137589190480877752779679963893211841650581725255865787676619217869421722681967742185979068577490145280910181408603309470968145147301935919991896720732823431874692013857852061633562934146680460101800303362519405902219420609386580570621323759987313374569167589712534872258979668800260137495360871465445194801513759994068076911297623360317162457145037847511484395924624234620439217310886152670955108396408347224899760481510350635578254461623653453331248581462078384137701298932050938097753662685357874743888891248357280544651095762810837979931100607465508378543521398329570241531714453850050055236309381109710294507090848441647577412307297708890145048140649962914175721400004121219747417956259873331967734938303663361256714292447618783854906742671429658994739073356446121839191141138834653301551059370072400291550451709238207265482935806715827252198364772455886512461415801608757388338537842720283765592258166227408734172830675358609178778907821129340972546901652326621209753737674316534794201279870694147351821017430113026309784478940753118391551777794579839568991037515236577065466726890584691404458157909482176584422346687462218735402669937515900006495694183330385355770578189390182091274896681853930171302921313567549707873839916831555468953568174802018988891136309833597634115307886723446265500089507351296879168752127807740409054760326881220803752594346662740664728703673305434378703707214702862287177760120374831923645173794788899919330570812771326905432354164815544946780080083403928204012875173046996098692711214338035248948177916173032845514631292302043822968209922492398433683031587838558970473950467439847631216416513586774350644617113081720321275057119847550911279486774406669369874123259252194182685165709649938076939869684856448267592181307453507825458249034752029779208971265967292777360108350006205731644618266454238562185222037030724330556950559058397831035402204473102491463238904097030311668647677148659302968492353609098757835915411783450259443211837125770321491311240722013995482588758643965297889727681507974323754926427239437458601847409602914779809481158856345247764524768007852466735789688451945004887789792608019516715336601829611104872715694430593818133661324113435863037121524767588175662180437237948840211638606923666133978170372343742463331948089909197963476246759482037709442901075254027160750991421708982477798760253892439107194628799692203382909467269906091759906677747351357322390909883064164687125624040785227299386828820985080108780789979768300685842164362899456022039245922156800230789230823695440893583989483515413271939970566174508630606219543226724060739947199886330952196640904752354979694722379710801090470232213290127158585365955969764928068734611843708363723241261428537448300843918343278850614357954655886232893771024441164842004460875429713062642222848016379838781751818295795234397498902616005832442588501516926972901447772971299208634063160560663853289451736526235257197404758382000819268579503218757365894682653810239966177012011055858133403934160806173908354740317464191861534461186490972679681530018592412116879658878280248485681734598592629573111519549159565350230487705194922019978920549880613267868001127634310680313241785238245273337783112027961983483115874762709644358855469429630000914355161662992977764183408712109344417479401345189326880009776638980303837388525846758738266120098420194703196121783059706349293613845259533310861600387228915485236303966177816464128641029393572872553068151626347195401793244864536335203682357314018642017103657024365888546535118237439709380612977815663227888084455811390510994152135727399542104748807411438472632085331039379832598079282184317908132063533567929809789855169621561231738506347020940377403740210028238814100857029387532145504408742873223000319600112058966179815744581441645882769179542670167030447494017435822022687286886183054109489494353479929213023346534180375485301083587130405943758507484916178886934220530187267113559336666905230315831913851152240376128250843531640823270446801868906143703933071101730611566067315115994785826791791926667440048364354756379157981248740202576873613473756751749767810381676203946397500938983151588434612902180121482403771216229305034197532129694049198842908450181577767380862335623349471301119788405692810891313952486666494131929042941731778817116316972451019142839407325167920726739939622741436899502274591207242545146378195539259672958636410152781853333784621344451049273922921717212938935145977211466052975257247253184786768725985880722037432577048475807867550193524141985595502252409111652487984575192617717591978898013491773595949812158212095000194152152145083248456154763548184460708605732752916048349093677239449679432161936449333164285210248040004455130270472940662960990177651906675431391222885986193468600205945833544907516848825977832772051282410470206019764333907989983997914385007189095997551512273362534882969036604158399373446963906268370742563594083633123406210075869762064820951458211938965697632568011075706280548443004206973622302004544849844110586040541716069109384949501118789371118130034930086020168877621055704553480603392284855716984275407735363912297987047348722027848738799084000072260219402560022538125928092460965270513618338476553113873576413110513699513372801728504764733097600394336840392827621274633160607339054931491071414796495345973444577906110338235915267090920297787321394676952878210568758872457709209723003718928753002158725877270292704631110354482976685221946805409698259471567844496051486750051133678451089829814939194162560698724824177314830301330601733651985253371016205149973383681091197681363283736060792195813509579952832070404714538964996793205401567094441938692248064560130222635239516683067945006901134538941389457595221049472739802973438780272632392521444717628800113853229559639653372948088826062360892076055071580307462665852359823411463514055935056627490824213027748855299355797199037810782406283120848604978600826775619345583209623028806948588545683765389630230434398442843131984600912307795748890634980417356716900557641848863090653754210690133848278484652853836425307055459202555263048726941916263447884309617166661358449809289998813789801140006683432044965270873316492125788134697955508083554025830797314253954354343548565464352219700491631392818129089045109678633905935520459867235928996398362265840908760574480437231558038999620335791580015174564137090253041426990581590769651491172492924957107019670189424596755853280723351969311619596735469823766591110058396873178152177665265868532545521548694060944945262761122453933539841523524944443227188883471866194592586573809132505302491459359613039199445961379217411769480661485710520173386187228602979816403717137537830756584341792457635673432799183187212235471086264299827675249974101460434330457404911414227817405404270845789191868031242149606386177037320545826500580446333186695077117662688093752225005769984681880600497449190482562579514240597155133941786645254755233779736165504563406218362953289485304523210926942383136413988372020010969223115482132392294099418608653749114275577817113964219682994392266039566502079970036058024611594491174105261293691282481636868766551058959363884010670072774012269789958468315002346388576952893822839364215113218744386514394984402830866276122275872140312521925482976201607528002361739697243241017648178119837388505216891610542305147257065996352885839986940971427236281079354628290608343313030759872673962511130949952875625019706463987853909557495282833784918872688787238121470339531058350490826291217994466853987470290169223731495507082169126354400134138284865890268080120170872321653609663350583312037025446821930515048916872722063393734753337874187242466003105340060858994065096484781220528549115156659992643091104975109117726587471432396267438775559656341611329876353896315157092389739182838121567733461202220938893758453250647848736805544747556457974222953682298918508366930310807452477890138485067888695340075727721712104496619249052009276584534565669740959338232301551204454832837966982450194051414203655824181379113858909375602836553490378230508425684867639493317502738260406751574568530891694471134696512477612230963452211815011301980741815336983971225709787296467889680542710428689841216590708290474542611056367775025070790926976570707170059410718614371276564706328459426412469271183583310951373726553143771920085262132417295838832462397267495165814976441347996522600184272013502212116457911917390180688059078988856733576995487220441617185662108239124851030981979301895811155436205786070849867689668875844541752506888406304198402183563640619315918690554901342423883888853893742735511087148731068781514875561513553239492218284455819685616114824469832007612057028696388773123543780140181615903125517657133534839674359004972398522385292473282315037120242926173062019089664492248441281812051980559279185619690941720123908902197557135122917526416568902828130174207097840063053432754390238179407517888015963839465540387476940720648346272845622988760059824677236977411027414751988672722959446142376367702550952705179366704312896434652340376183033844231707096292838865025864734518790515491406915119950158179132618170424423594796017114398376849682878398208444984330498652711657841763876955790777240142497665501561835964686229309599374065766112099513294393821999041309303168443061738458238577966970818279749181978568285562938555412083542514793921221946806327189262786825363287761468407387913583087595317633079634910657142478958262624118152611883636380818840473220182444335996279135152751039159625173019598431777460644190668975507521827112503047752460359521350218647704447160566862661433895844440491822306278620047990557717190415644089689780351439285326906277623797008323890671608447304771497128496248396772820486199119113524505757078410052534500362698749681741452712199663042872171921247574719079063123223539413357639527738787030903674129092440660908413848700449686734149696529788998806816154851382978120080536723390364632879217921062751155891113300158681377880195449868702193754887615571482361141491862027147816116606738395795772523212986516298859966874291254751885487260222676393104728858581740999712196899195448006936177700766146803217115039304016239874014029982765564531418077038934138057241659740744969616119413891888334503029752601986113994539061119508910711088809344880252303094617236668699880583871108857725507851762793942653750702364283377974418332515934021948499727433293500343915609690357299375348032619708452241003199786483140679819021556273329847775310076794318289691941248300525233650797076432776167664127212396554593753174793353843403451715037992282883974119420577934403474851860827944303732431735785736170806774327540469564076154604001203597067564137859458434202127607317479056938392567996532412525876689001221069808217855936452410689114517866039572558850324029004404563108303009338272721753701777169407829347259047283382025639464465844715157300201913196486029770031402733650184470989480686722662913224816762102856605526279276283283624213720670325023128961588432218947649721854929150284473910696214189083217652389555557512638057875730660548198457297818760419419035511538682432498709937401789023791580804876368185419540081032034481015065311214074984852421948128394505876053747850144534162246278222165557782020274088474996926998534159315981469172876449903725665472684019755510285230593864430885100313161828533781037486153386912467893984256873708565041031519071254417275203809239846679264606817484271573836208174721815030377273321595984357182001003828487984811952580822612317331870830147152898571664002005687496807151355963157262835821530344801458181549002668948467296828948951280659095853162578795503272564691826003785973098426756071828465331900367092792779636257605739427888086285319371969700470658086623316094277636780985101987806253256032258200230342999500296610580362102995038684099224845977460819250787107402137557169891342092798647219411495518025363914645166246054622859706142591678402562052057686165169609540052126426431611949555055935815405073797552947992119923852857692440059019849991797930008446316362554042208091289312242655505926434526834462069348100676603586381443107292040153638606485033129344469106138251371412224994680864886142207908861771754788515956396014057340709926276311642906787357938009210802568491623053400628931025256713277637718299764238614770813826362128349539892062691447812889924896094946297453277053791137350008214697244742706102217826622871771177303153964873173805449778707353434824017573427719613807593685052995425976544346719751820348855211447232973144218337943214984223434526328153773622595820960368599574295614764794756868183714690799005841760118828909601451544256148843966110118877619135809103800454223997005147068674433284702201398305266441075516578758675727941759618922088357105274123477346045746917682544156446233600913172295816008246241787709776136549454859561256630504155750589429471213293141238366407452672414337890351927961462951956115417002854890536577889426859847716207563987175822924441153540574648915424921542291123019209386616394476967149821406028544249173034376346610207977500090409205258718036354089652814859176917178265393781520194339287084678166604551228713514169614231671218954518417334951883917772520598119115585126958945536245751559719813519451865631833097210459574768119333460312814547564432347093540496192004167546600533277115126042428287592916189261117092273487318082109519674421821378027095407392095160206446600305451581743139979661561783558435845731490624801747410951406816393135372228329305207135752765241416063990613763842585965885822064566049670624637146836100344160778321469648795227472735087188501741315588396245094963565384785422760170454317927211637099447334316132239752389570517005327007576139661746056177923748717783901811210207516877837703308058571197205784510937808478119227743258851208223733301802504680088047339843049465580972966669383678101123488030597892440876604433285799512627613088976489648349811132737654158667619301584998743378496742936982809644361066546409211887272899490246533552831361653525679135654578027001360145739643004166784843347200432552196593633940100691758946707998585866596031179515340535683837801827048441055908639861571701004375576345977262285246796143766641800786915219755075159385164750981403136683990425677811202070737366546187807281877799725114282929014070952827754564776448764348982566535106806618462286397527431696411016854237065871932429169909874178736006577908150243920705538392317153618636295339095951551867503498624204967107134065482965849181585918105423868528904056894907198588700639480497273585584403886926640768584293643237935837464055909031338924073237834391466704135591214411144334083214831185072967431590818978991239343064150468818367603177830859059213623384754009288785818815158346877204717951518152154486281571728371408408637869015488961530644054254860338999174763646329132657072674947714102234735476260980853350784973629954627443246162870344679734291571870311183099293610938556593666284787706638891257174460081761229592080661517040500582600381667070950986544823824193178947603881280993930312552587903461419130961866639243245090465823196307912218543236392423530301568124175416250710524038862854318165872304529460853768792959860228146387363946551847745769376414969515436215173084063024092676826511196638600441906335341173692331304248230196132327746148242640879848272266681320725261710311819435743562869001731736332492727426517007921765799598587185979438519473456796845805847331230571504260303497100221317063554904012754050707327749188714013115132499672493834584826635948786937720769847046317375325820112510113165532149934863254102139441310767955854323709405899913423492298274885103854827041277789560683704720765500912188250174386009586773558702859233907798390760615983239121505667392188069056857724158903932602523795714251848861296255878526271847451963848402238409878440103830187582926825579657977692333571479474625634412185675695643421481527191069063892791501704821639317511361637670308591336731721667415471328975671010685538859302104769750804220709789464291723312071476437822131256369442718017661845623947751751571145275471943847599430711579887092252407320593757323534313061187238102349547185220685241653303261995023261607171599934208414278244199762126276501884468179332656775235047529825139534019905231576157260187925412212516381418884043605007743823083661527718469798590762789533679445364681500988359762245009002411648276079426754178369408994604918762687529534141784177174307431736187842144870637759269907650348719770208472325112211995930907789920473733387422323734776887354776239680825980442649101340165868038512763666028083917472626802898849898521020982235533383466463654884622431560697407148416210850415921325925275889666893856274964674157227180271772002803113940794450042090542277935278803912491143677235997531053303640612024999129492100370977038258248693076450066655607939869283212284983074154855185269355949640644500354204795935698466318540309051660224096926183317673474780809194434997415334692361714086170924673679706706361014335646264106457730998805484705422039850966447381293122931191951153051221316322884724305726605927327578040383298089134122514859607015065043103187030700105949791876249485195549098087860152492605465758383185045894719911176565210184909154413400053915803335775974385848934918854823929509719391706499551612121270800442643397160834396649743756329380757444388772886324372921148554094877648151300772716816338130412911322099493935481230022339242722816769481885721723025238916009516561538855234258126231853998715131818486216882321852337761223345385904059752450367285067411651544717866963588929248488498975174321672607382933559087674428643339859579997956448680881419798341976193031619837617078339575477381086586862917235431966102636231723836116195686216650514314109694010518837934170050378620766734676165342884914153806257229672228551496006697392259274788334460591637380092991824163397342384132333674797648308138500799962338857871936840664525745814320163074497189322935221385809120006940121618843105829125837893170868949915417330524785843046167013635320403997689146911161223811040408764329192539729180345978034224257667769846875272489319319113655109824392520007939471960159428823552823183276894204702911645492142003232363143632156351400266132210353929830077947485849003499825071882116370419091327814531759005308399007788903796461485439227140463198889092581941001499490370165538750490141344504119508021201068046333257163533447834014121414349835234836437725015048664460530493653824727795778044706960217104068554805186180957455286356774226904425609702527268431737358194691140263825845000992207300045553029045874499644385914163747187110117552602921040895246793561106718708571127879782159592637080164414406971098196759022838234319762063158893654937461615379889736198825769308476613141899714360841880064281613046878921285553725970417232678619241422884059933044868811577842640809869989335808447290037523674589480678118379770098963915984234080334492928265712193144441257077599258866293725063689003758306646453691251194625829723890358556380097163300540243925917597690885657685399827872198558320260583411814884127093009409827725014524418591764247213253522914117629715437843229245295769645962986526922730616900440659167577070143247029137473809996390012065051937561665202210885591833267791956237571642281446517757477584450283816520029415668205680047585013045419819203924775511221689541181331301123169625641653450967543354485293931724883457760961152527195803653851308721873774413265034579877189758186385888369625296519292165122115023274028380461796577351986080577561081655818944343472165520356161104462205575269792836481935419733709918042552013241172542500446362744172720638941401550933258789610916858106532965747751186348722525908444854881668583260586443589563147060778596007049842398837586797995634421977757025460727085828918187915389966081260168061073643287198516780123131692754479402248265640361667016168630039190655987715959391631790842237449761722673036740301248224079494293432518297886747885969200467937985248342576790758610082694033568167564914443311179366147910105847913321063793224837996625481680940700272640053902714182424014155718295624949877522452619293282598875777731251015382933656987498434597156125060223762090873182230386844763336284034052320611169593212904102663330464999650565331928384617837036252361139250370988117485864652007967553356838289857154738049373800664902734307895037749297123520121571428548463847466741320390597040971568419279108290622686680888149909836458669908750056922806884132881602949564454400305380639619686872094410986550338479817006973877024821428926718107477185871319914364840355373032111498634176615936929157411102356003891083882919931389346821343463779224569697776590388060945030431694830338869694910585268079214914730995236241993648479705117803680883003585644364215803098564161140564183549539611489961387786355255896149694315196680022893206049998461689834584466683590720425078201370480810707037466163558791126641267235955981026603802811667852328643932515624015622059280522428809316852513541673173929677116595347194683774505686590238718153241857104409751765140838873668199739092656226768469772497737776176382851465635722826187293455849619287104195847446131848371445162111710086722909079954521546720074072675442582209113396563747188893992459567660589302008320781826137105724586328285599104406632514441696706699536498553666992802244525336597505264374876072936485977114123383771957032054480040618366787217024835805466579213676751095098371670690727356271723972332801656315825377951156618708614319018347886824573269076671310398552515590853683860684372758205739606086343724208828472171752420944677286687386416038098506791491772665809110538663770392052690019709518959335659382888010111156288303471615632977518579745287155447457782510540123390149425516853862689829786170335516276335406443733109486786004898653889294598805108818153210006100379740834594235463999151953336016132994165846971086643999172947624485098612317941972441094597542200024397731351948397743431102406780421375024183403462026527614228900932295302128159356151076916097789741514747682677016601154213948662470385889014308559958795926207894914578717783017779472442785670126487140028559502030666575731962655900617812111808490069539409933607335707838340544743334535255581754173582219427495429592728929868049610066143521368114360807509644752009789264901161962396745134790547604145792080998255001418845899500418813363942218401744356453506709887370201875236444844711263979874029699749106236767438584676158521024422648904492665586804208965563626526012923894581845491904465995349819713008808099328338842200394329344936456534267615288078134068315672080014185499446272393671732469741858410140210892879549373451999682626862678804819958202956438466629686324558531995312813634891426603514420107815822925176536574631006893380906569527103936870735907744748256527558184276458319712179968966241427888905849810772093113731896697007490072458960730901553381073308834996146055905385244334184310482873974263673113023571939863117011217196934454862516283407505432214819626995007610482527110962485765881873461794165629203141780603581062031432009083444117053469759260797231108553988894840233440313507193180164452624642765392281339012840216493906978840862011005181595049385895354622488212642592821646378592588388586697931874811147441134950376043982224058507148786481333303733859089032912625458720436331183604403577718796224132382438819499225849260674367072488278134739421389486494721504258435948369537242011998292034225824003878917289965300239101000265392541453763511830677875613051322612542020973441360468531108605310835151016077478364911966480272050665169250242294862033726909982353453806812108979502202680923573095673759688302386366486757836916183292094911371473347248519881517723262872697523418949507769507111396452823259169721778333404533702685655075964534533341546237401139871397309743997403070424112521885836778613771362098078866004434471641480417684783416568613883165072584127639944572212897644014816823788431305404430373593925714071046248386046284840756228184349541645882265708376004454303969494546081227868158496254546208755281255665265119995692560397868436433192361547784710803218585025797478330447088569275322452476335490236904681608758585532293898182986368266718640765663206103374349684877720606013676615129115957376223234362146596060610736306523402956602336064656660794708444658604427290347512424799804254779064993455065909259676175887946233752398874169077432729103156257535205972451443183296978140625806921861872787056847701413541153683644813417716264101542140979027563727112800855226162894384601084709496012735102795256564557673013725753774103653139000766038636883399104308464239265070914510769338727203040588287138431723632741054957746386841548142582959359710483927324422252379903945423162551472524823719941598646623061071909587198155052124019543128018113859976747613438438301135669524721901081394994942869167119566795598617368844989396003116722118850822317349549914649905125990370832660629122037082126444212263209711406029526805202252928599876572086956415865599982305550579333316333054970817076758739955110592056779134247867797037073102257151770480251815801461636347613295654533839699227701180448027945659618964460496325931099178942143030529344912153198052976201617814686187492352495163383383302829249481426661510562481141661434951392772906019537361509005060582706595887243569271088978728808575482404082027389013980169702754532137888219651046669541803168470525711436437926076927088741445049743490886721610162419398586237038680719242136728533631513909404603863822365808139923095113457282069032472012780896438557225925532345726477326019894670783534655819522839036145587225366151413094284243352420621761582852629450243689744514785256331150807975684999359433305149040438628132167981367297279182066722149273990831922059275147080560045863346459337754878251561833790087400523813941985444519763377900482814764900783460823240932376530762674691896796528451312105947968266875909785805456880449017376436524660506410193998933272071315838260714164214270594094803058102761397444428848361399800557748143177861328916426000692619676685894313020262167285769490558137698130130289507315095506456710204894650938299005393396479408348088416326150514116430108615186126090144129771679968551795478070601414871598993489419534003288432096376118388418030260146021608124064962126815375012356355586836218020683689106994866599687459239287905529158327558235930516852832968806923301211484746883434337065863086296664479742058388413467651770712245427787695443174546581300825186694337164449753443703760629135094537024500895807746037691406788691150535792629190391231377328095520607672088945002327419603957584061283358175012464548570482012690457009906623862683626131326270001475862886983336450079586216300246501383747608970045692437040071419441446530889532122164117976945528710360137428147789719256701763712731377271491746617731427512119016913003927555803314274236450874588764751093673872057750913496556817999477297893381425881815983362856174509272388836067200637137833979735684098033251924967427505662801430179335390880910361419000267163611932299360194376958633320328179182577178886017417182227843353974425462686374446533338447444999012657613782485050360673164417671007374942068321425558882820676918326404897319753805706245124619489609721420749243537569159862305110445112240430520311045762741304714771189745663150768158761972553527974627642189842967406296135003063351029175924139199873349403586997261791571955991122534195687769716892210190158219469700217711844807780278078014635982703556064625721897184973512410884498154297021319021420078338332378809113173714549414195985989069365219066693795803883655245282814851487253835433474949110339153823400121465316834326487447263017885438371258171457133201597211697270740086439277199244631462965795155465232334878256431902465162899809991150454059626225830672250159387817309629576411287890154350848315551630181249522616373610126075353747239894155497978141021351638759176331061642160811322537905779756866501805369263132357619669277351248470103187297816954594776566632230270389594664583813995227196471878416960607327720501571509178163601674494422323961772123986529108734785213186319336491371661775571415066659879370771706725065248534955417423701412332177104492642643345408090957513410514416198277452900276717145616135896047098721273842880533898761587235931625921791774864536046633289546608286674721040177708767393715124424466859736369768909247288144848026129474482174471049895088917754712499785509210933860411807960197985643151690467449143867068752229646093009993618918059314130083419937917318217927365801261923156884672042032273665797117940633727548284697931544123597644856030375337315976597670879898375314793396536306926367166574504649909310782959317120062221272493606803522341318388357588005764368851374730025945557489162064986474739507162188433618392595965750409360600635335251696881715777165019001715062975020434863981495714894889850486166742812105080524228249536530931107501096387980232728023408269138491923833126418261788027818401043379980449226360141278803437472678894894884625734513686299221754114653656123304719353571014789575409216958927920909206842029301574266405400483645482657433121022807410695836846455915524318266135270968473140876220982410968253022659994414254450927675417029520256538947299014252824668258495087323691151767603116492567128769494327272596456399359796996470663239594006634668395303641626808110769657807922595239185977677955474566171439334582808489716189735546221037583101243139041100289713927715377746477363697497328420003582033732396484870079983780237274447695317345106652146541704228219496859901794754486392217259926910680429899121709856705085543955454283204770443152311731352399239823954215531994293154312024384388773117350146950968368790652953831712929007378989218683933325711774429507500257174039046103851126145238144346851176793192134271415056053270084543796423793601885820998879376982092858553459754032316291915313105809020664518505997820322986192487847108102696572291380991718275899005386080779403799293731553115830660663039986914974379976528952974569710640191561245028344925686805502411875558280850720369620684317541388405907504218497884129616928065568780331648598661609875401598836449671266731934984590535821855636455337587864859483857021635988282102383819955422812438016997746220410629860750019238634955889683396575628257701467939953500373794503317051939813276783848461944066919934490481685440337311361449760148968487340668908101352145986366888758747026866769138149216433117351598177751392114883040427551994832985135198428424814707483724420395805377409602444701595911778067002416889088460950078624903587242369012418654329495770528193802410893677838307921811595537839926832458696247146302634567028114499121453146377581098600976750562927878313728846781711125416797943669117432893868134057329373389071807832213875821973964809236281391046163013246816313639715437826141605334424405453634280151540609236650796555861945205305927504106072417998109337164041824038806755873950958048202918259051990309066407390913530277402437951158028419848100966174138393920217376467788012594762174649182823852425021443339743594831024481698368451404260617657431340651602409505666484379481634056593674523430040719975887239399729209131074750813902489387627804903236761271774304752721772726513119803929438535580377061550428105310868180595897031930987373137727273647848384569195733244206242141904064097748041542110821778056727519462122601614828926777587958459505443120527182999694041144880010572095382937833203143001268912184346081491811264994766227511825087453527866242315693698635923995339992192109855363238562988524386062875301209910660181651545600149023165893081807712536678656014694035195177626137235486807167104381914799554500135875887060039677305856182283642879132268491630968483574639295468894766410994681660242753434823827398824268914543993557960064067293966021254977797696532336571606125203566888525765726751677660851520722325376582981969858419334897800784068920017206214421232532764026209691066250633193944487792500214483463694716133355914602273050968528966891838868440380143206182904402725993242128823953840992154631138557304727869587411661472846354308090024567285313848852346917275807159351021788545958450685027359274966930887111925267751222749671056419104222527729676469751699758775698699006776548294624606515678236555190858941341940581881077131545150857199839920557923856570605158619549749911445027256144382438331735353449869595289724762286892561747817402567663105484307050599451098207497706913723781689798674965641016985965045712014491798678837936098110966744844635640060121377157174295136019010078139697434402113840232483345607294554040826392893289289554870410662238325651373765609341222560777901201519628187734970296688904579254869099538611147153137246287440905565956694384221838430763416286042777121234908461687525676944923884852281434696222930832177710379611504407216190495031314246196609144790917381790049572753063188987198169078157784008963941455613053709051418751394745470496909063937390946783277516819954008768736771755230117999753416792191379801678869144028137758452098720627842454816783785797074623952638237359586438329914124482008123381360164826943583653233623008384268069865760642068366341981440410646334733576424761377287701163487039903067328328470520987974157150682934443528852814018171975310289019504383684176274522420209552078078572572288170479924855296532102601874091911096504033839221322436243457642029343103524546937873721060030439744221617375239827921676342240327079729064034669067714205439126021751191758211587469099583043782147094695781380126133896521746033894840116250821573163385067951787199900934292420183989738639021045694547813794269420039734373028813604907025875046755273419272824995787327659986997163708006432213475790053464159647043313059082407522079234909066917727912592433895025145570172502432763277502656974310865757574144236758404229312010907265582184855670680326372014630108053788423302131281389110988639708504921373509553580052182384064194258047225879012732765741764882870369989723486859730890457027219926980235695762604314279096345502411235286583677717526713594662794252024779707524278157104757668150419655384582929262961861313017943262166610837496527277774288165847908818412476368151988296856008190864099592274758025373234915666802651838984639161503706186660067291149759096871089564937961429476847632809785684551276270884948720169608124866893624579752097187943900504442568547136992637136800433920306851238490242235396677821624592024163590180899280252734649763141139744716561046901728588901253497016951740582646099939738399358324527684454429022916160445375823839572674369936448726451672359059133996934814029094408325411791318312700248078892540954819068647645636823726462710009112845367973127017961671331761111654365803497890572599318821338178974318696108644526161091459060733109983628465253088806729925640547124337756683974314418291319271488789378374291089541953971414370215291022646815668174643613491450633589597151626552996903362286012725865976324256180355012026759710888187887747473882645710952000469437717253709373988290420678515020589355705382359445901749636862099343957753001942404402324976353347677636681273305622520079685430827124679901743632368007773512072388047017616628993055014773921403790307462851488033779201297886750039658764160190657406010380862525554891080652241276836710791367634499841410105341866113064451828844320175146458994735682898142348133763871566367584567678599271426301542668805649444650320474502692056707025776688792429518151397793278124613834285962488561037190187335796156557212889656284554703107138950814472055655368837105636709047820071167082718041946293427828172636370823979862199847882463824221267117913732354181226089848194572729469194942893931885587290268703222528395499209494993465856956454780100112836506288280972200614381174143926304016930605323675198437594119331851049044322823326140264206840967019089248526116459686111655967586580659494349356766341345198346943263626524140712114109751641846507724644853271034704311241197977588804180010572559336666626452986862756425900893037481411425290660865743536285508864666701408002267606608032579188161682937581160293417210228498202452345969413483238801354548384871671747603252379800358738064512049185328650449113355616325914823945305164602046640656348671088844345366996233355428322208998213136041083273421601319641586976695170695662872772237096888410129034847199671936431707383001354209105716934155471601121951279246282070208156601376919602690549208714394403996247606915438092010345538688445687462924770114758877764636831248744434238759405114754574183319609976416953494003864817754397188489849329421252525250974032760191846188671117944406882972916831031505876083568054525142839025129230083230781419202470413133612237042411594827316836414986535456646060493980880484718323129564895919452814681374219633725978155831838407279600512012288339131336121508707512882267264103017289248898009877715390720078853518007012802092485832495312718703043300189221513016457298950538735531679035798125733376883709334034906184783564594521472026912880298093353812976731244455949465120194976192019023100060040967025586908087074463185199554475560397389230984968527916528124419735452569834078994735238525843384008443177799307728684334356095940015976473886443952842930207513082601838109329917459614014848570999272300471091872109656873132559305910954657112322871414067026287910472238545013454853718728308514686552625002947293085748789030543796345328148675157357987878386941505606308047178054538106986403782923248211956808594895336128415429401792398019530091584460574413503323470396206204068793976681261147009954263387716798930968420245005646192794006851095043714979048770365972409475491698111574291716136654382206012494285081686509550506651304320228864622065533854627725187070647063926672675486330232186568093238184795449935150733486083695465145440444445081434608800351773277061471944337825041680646460182812764019341914113928072600515149795269180392212669775741863676613363728340773909884409477603451334901723607264278133229127677657383053374654851999250380397692246451999064324277636848626964491896658374609009469127057900557677960463384002922350647093721296006404097518967961539698875653591866042277908220743185980526176441910666663177390784365744241970666942742812722874291228997354085294741119462914718249960847923833654884134318449239021244866788670476798832394230615640224984258575594166043236897843731350002629534777621805911892266163048621370491166462413508455413255103054525247612187431836468335376353795811418657257730046576921236456830853727834498820422390353808281637301365979342380982983742913083553516733077298392384268134931553101791679653307634301998594364135152750631012131727523600882240117628553004984622473845875788201730757886674923116259395979845708973924401145334037455350278154121366054958129131984205621255299156041002621221630472731140038116346222116010914874179121180248384365253925462870130886609960940652910500194304910029761474953093103878243291227463093383116465160371355464903621112580973465786066027358460494873967091271726847854946024719743334325489022265852530125394154169024493244577778024402776685005996078508058755905178486518479026065403056037055310116690878574432597202533169812752061388223944274310248182877663431526796715190466944226403305908194607018967598997580062868241991212280607031724590305840844730003123704442789159666281774561204296574292471204110247097872360261699371506044962593681245370480959763157393320782491210329466812568859561759410183680054640491706679874325440860192197750412090093395509382726801936698775175452687458427436362384676657642550989934002977209349987310755080917698057703668660509837914142588536282878957157797945536765942356102931822815381077015482757069292116628477175224901549946358229542217873003128266535255736907431969172005410757480813090721790152203546354950230553009966104309786928855427582373223822672852660328235845533862635609094846613565943497501547982480703294212507513644097334726298725763332096012317433782250018356027269804272838421082408133294401228048186950987178578703398610375526573321645561109583195888816453644414730486006639427837025246314167297691849421250559575926023905912777345299313337750760108784457116941696829880911896338840490342723430302195803530731145835218223532276772296097957132954814800347008667321355984231185628098630196186926633676154190442744099869423158352996401502172029208402216113048570369125247444303852267600669422801227837969821050700183639870533329034832350590554000317570454536149266408311590349747196360952701363527326427834543784189087805014527794910133787708842727936928403907471651636018923800026287871100585927011246491458479441941837489667314000034019834656823285290298267956213803575606936563193725036277494173817680387203950352360209161630370483865161959913522265874840967567585814935792303476186485138181592217849268267689380233723615920485048258912701843864936663876642532963518930076523069682234292494050476058987537815032423182681141861142075257579414697708834782111768659632735342434709760518875555099066148379053021439644509622590057913570337721987094747186578940081310534554594956630026263628917165401911085170676131190245538410820061109140991596353554602051448338422104703907852875086316201335068237049018852311816489801667432533204667097846759548870202160070605781067324696261635705893827238433439833566255195780939589556307555457952509959656800395990937471347696300019553930712687150696165766340290195870270186643501922591539124855220649823919244077856241606339598130611417338942300062919789862117390148611060686489753305111031406083486440072157995171468947497173345102591351790262953984460978545970414454164140720302172987114915561461857576607382989264995666123401965661319015508921539091104477993670379322533698862923365676894242425161235162620577330746556582624464721275846888454220030475713477376859871796927666912516154637769226863316376027520122153887658094369002902459745662873938819380505021099995732717894278633722963990562350061094563418927471601730630600185253011441987674213799207896511426350955856183161121125697680795995629817919935291993038220387762139700125211860446211819511129300517902961513641415050365949822006998570588073503806123495509309389118920447741953761455329466299626451335187888251204965651445436614757174994587027398893307406662898664598156972674561094266269907244693345532368476758386468334216582564143619590992820321731008813694415738740802181529580255113610352576586465691739937213715204757939037427854760540569763116226142581105503805845836287679020930312300444410660314113452867790620064551288417932918251766119867437370639919972503843786221880659861671949090009656729149139147657123923397114972567519409098820370071949166556074303966079156048416219893950030584600787157733837900545998633777772690624121376614584189906030804960205323497604066584044620139507463121889851529665854547518306886344797967514980127583815660890980851768502260941469146479196085394577671041608687625519408690640029398062053268591543340781628974498352261277896979832977503940643799082469657239412211273974270393515162756127078627273541485880580074270624570368617348441841934781456949043883333174348464913399334218620051476748257043884936662332815793230536262392326289660403022570628488247744545944287913240645192403401893233233929377340836815231152431277427082460979754891000535150125973030759064915602757907542110258896651643435980817021896522243249760921535748475259671032189241446665433214433265261105882190307109427388036537985617965560754753111248032703594815977661451910886841089626539611065775395683416025866455063939375062169009673871096050037365916802947439661177638107524277228183861264955077304102062836796341253868301438948047510327869306196493204366206907155760724616693398463194446754876341146455981879316905399155405815742678564348289413512724302356556563044399924949380342071050318944893090779791761184556008363371124464044577746324352922265500419965548038115576804003644442939734388030224160649363798279582504814415891281804308594207098670886033207151977215696482632765891148487336329825901240545473986218458195096826050339312233063798806276821874708280465538174722894304556249375861909550605261973010046106954329143422962330451357274433019365292331222871014021545665122656384050358006546575994571542322089870365480625783003271455386770162749421541436548798661411937295533492359372430969458636460058111550809527679096896398463417220091109589903513773972476221249165392036800754931531653990803804285004325501116519191631837114266268339747391677533480277471051597877761999375481412781318773147231602959754195262618805116347647824327180263247564907433336322528473698621765268077170311524138057024045968280582178515546041846866190085350530729491544627724961565160589862692784524710948815063201557579740572273101807729762908565149501971073661974053416901491924206690904138741154818558909478316218362551942830836200635384594097180046256155476759014190354865396447162814439385821570095471878303929912715872137872693893568863064750084736944202581120458802230279973536067196505772039729391672493257392472426898795304905353714173876740499110389776413556644020745217472043161183790651131012884288278207142115637548283241101984163826710041072270415152769733145007982141327461666373537215837281552970660783862895684256872215627329452176119889460692993696201238130526062579461132764393163269896889326218278498301540141687947362639374103294556363323480387023733322731875493804051237491767588089557517945731447011582915341436814918569318973134551388351294516686420524527662364550183539832955303964599582612888629673582724460095978022287195149281093547672091212290302031299150534704540275657362275812144887850387529052994559994011084328256041035784363875017392913012188374332228136600418915793688105173324035578792765515953566659278793290908880685572321247778889003768270076994364772512603439934856766492474471280270839690544647683500656159305771330571935275990703846590326766520841035491132366101817397206473311005306332323878094633103174858987440125472685396591251034732182647943630227377350176850999010088397991107821958807180217163719469232647061075125458167493064408939611204268808284188443734303876446508253803229009722066677198428437304400787026264738388679203790304030341162669998055317387653198479649943741255152133939746354839212901794207936364115339157829382502279439300229005958976253367615075900587193079975822453340747664263748865250884179146297080770042391190968272884129635021456463578934392141426051615234060014929408414661161410382484722696569420939819957416717597608313532187658433872391347648480685693749295575067752550873696167003990090274794074197399943838070366906098014820438497597113226695709699766809565406354533805162619428152234065254027357106591084208880015987614375715266569825643112228151915941953463618123039121696351797078901390710326957148487855151783564487734327877460784489904348181223590221009699514894138095371784952242863649887953442438843741114946703296038939948265095796437201295349523047364195447079206406083198352099346959089561992868962660604995166196841333785374361839445748065916331801263936932514865407015523871002249390964555151828311423523010121518848908207822005725067702644613642316302573584777563381989720687939920759280443751505395478958265123999784616506478949228296442233901090579048882263042668868916835366004757656165512307546230097738656067623532643693776642957304094425124822696932100018902816114531692233563974074687090675619377624002830285503155198851192958060342762634724254725131884074516546941404150542480128244906625217904024348551859853279665878391444491933311153109266981933006353993552932761680746603248025115846258361924178154518460101800537723263318257652557580190968255592568133421210396980196999982532310624522473508284480939179484880595679546354814392003767448856813567008915499381163407299622896266639662042426901438043137160494375839873615422122525602086863750568218754696453481718782744419452440971234909536912833048425173503066351490789307936580156308473827404869350768702225260783427811169431724111451364358702308540740492382314278213311718100554883349941943142975271912606180263445959595917771051599728904794445526781937252458173180809553013708330384263578298317240822413475908059402362316641382540113753702651895883250236892900760865433197836704372729559395417430189285160840526887422841951095347871908597953661167648903232055211281346733721887473501165027719021945156349983574836458226055608570649993574528388896353725610554904591619448366015154920424129563606173926622153082468441977001080932470809053552840790564981430691981138824269794503675634178118250691124312142263911733740665800065341160553357867280434737396823795457826637661479407830426047967657538174928257673317749765277464871629987843743898245146762153972555362016187965315572487727027662457873581014574630664465069016180173181647282562140248183699980277385980633795697685995076651265323950119897464664898978126822024866777973292741815903183687493237419740390618529358103724480519914365284426304361098984045593685624838326985297057178194212596435745955132756062221384824364343412104280655053827944533172302256323037320320975402710129231547905473920702046310018375101659854777868070402477405517777403065292751826113637245018758563335068981596036908312830595192196872283065947788913424683917836450528271876971545222052502679065472264260156202834655885817010535592087726206815796786927497999924922512882291948854102175316307350830482255203034626738340516159971399207309557035358630330841786864999663801377186658055480230190785024534525160519815390524642205044189604630071567163953315384896553215118013998256025726328259031249081605632987909662241470667958842315717455322583170945243286115560080166708036707016845783075176020284640431397361298390437155327264722114805916788466554604594252963712877618576618802421283210183983301941265213931683306207243999975282323015206631126762515670420978193041123667684904341860008373617913086244745695013834369881521605229199320415317337927094646668108807226656753302482460824725664647157341411109987630555552702292900259859927726846230651132632293734082802752931467677638566158743517300485035200300007203262378444432783609863713186855449098477018195954667600336775614788109663591203983947363868764372398702380564584807334621637381800724159033058985516866031868975680379605145021936887791512737893945494960305504591916585258507057224060845880141680334587174655158449611460827972971945947082714336658181971348669125070016141161487427200320853560512649661255183967075283698455021753262484775395067585055762719261240431103280486122789267798156465183177548092566080610577312537681280309161012156288821771226547858397601502689068114896783672792258242578632353864205713593564649308380219228347760023089295759867815167370321041804268188291396485762382747559177671597390861646791674396716341067180901886295057869754897534314675286282542168204140631993856343786875959020254913369264407804966280988937715222964103448127225450986325649503063580959369715127472496347209548449889413207016587316905413443678134605006757447637242955343388608416993545535458445806447564832186037628910980977320506308391871218266525041193543858068588476158331923132539599931836562099467693466458840765654246822583016056760227633405450662717017138008878421548204507892230556709799561271894499039748731058667911150127160037228882148003296460332837802355111923148282392394235727362284103394759422800054269994261481677937552553174880560277782182333779311465234824731517728474068266479091963128795407677797175627059467798944618162389391871816669603378846326599303299247207184191864293743018727031157538384205581199274945291953738800446718834749581967997641322563266335406757453576956396277355426908239791830088202882482316677513448611157734207539675800542321090310423128074601515780057277832676601353553934010286920057980361817175425376704870115161106096753598213366782706442914499135471492158959256029996121552680787426434689224041622393851618229147546640752683452944738085083219572467634515041405964581620543255187443617289599509320692766020610765910141574798789107980331333118809075870038622588893023613713582359621501163340571300852475201685063911693230649183359308237836224728391396730664004293524826478702121585495032162816342415096770528527258382727437823014389082105599953789347112048991183980017429954868248597448650012181657454961799147850810950570915814119258677150273306671027286007824188998205693520693176304329240267490766473582626525749550200072028934128696029546028328658291716521850971298011607379675169186908249213269494899649102641397932340760543227631677420435537862218849598743641159397455515434458896685893423976008057156305718325118584042685871560342524268500623187352630093846103008879676642684189229167513396264226606656125697711893484300163106534087905684621324692331278070615731130977704365793068241191805349103906321981189719612862922718754629365005742086527580633473641783159444360845052965394343938849423485432802448462511054882894228946192226483732418108129003687412807917928094283269892741890993959214017613400347354767374251277624059466761482677758402090045493166279205680510539551558256779665123830148031341338027335452751253242137530263901353722355656621482785380571733642905617563446682047335366412881746364055880502629613951264812867223770280393131113077155131724357330323973847901923558971240982460245481156498022999985550666914458593992328930651689706742186778296851795456775436605780097888943530095709107038585377283613995875196867078137194784655344128537878762070910378418563244541143777444922344886649654978759359198477651960388200061438693446290118459584394644293740331741307091273487557676877725804610535573973645953509033364120680657808737203897520063932371976068043809699228288889583137072667251395974248543931404528161546660180557600049887732388374558506751298950138426857246981681630544684969087715836515723889944450892883503547058157087145896995553836938528197232710881354929107386968468695653037922092380877058918231475168463088659558330402439287474883538484711421237832490242734998478925802369282158912455306811371356372912577635501858865817303712558569207320163434703816714159607231284065496457534715051490999850565604154995325205292619804651328277801690794928280690684803411171795159435885078068686910177499467972125962885254510292986147050157521591358653918345611648583663858023135472032723956397787830793264360999484378208610502734986535040755496694670993728066484318574546040005117588410258706284800934608592574490482835625825306388992755820032121442445640643858528182077409159837193326045009243914777154393964956243209228716648861694354951974223022461659366112427598736624397359545825342886841552409569414333058032043932443794258979917389029394379466684704464073392211369787998383153464807846985362085979778650064050536482085113010189523266004894481718171873415110715371374043976150503379670886273331577452020454739874784342861591586401224260231631632886374070179106772159479737255020711174715037070483525721292432596324684510806601004042544654910058796258774992538458444807899742023309041905848867438670249302207626956428256354918121314373242435069610952691714436489880461336578191019693595795498006354887006105332579552566587477293294141901425104467043997251904900780205031199224494872173697966630784842904449880457788272259979156938275130474207698519637627040947105027070152017187424345138459780868070528241654913269709943230692226070470146923756002132932086608618834525115278969148498521320612623511145222563445965952920323977092151481119033363617820839468862634030511911394598684189081462905697434880768854045676552081745893441463688006622545604895328444085232351862840933359225213562084341949561323802326892933717700668618661828904003987306053442167271079673852402293657892624421195414242652070427996569612903448440721772645595934089385778062590940884086466617231403567647090142980276728072175450150931253485387683245229321833985897676993095559097914743472952237036243543225322049092961543767672976529699988435982370492118889178897423379442517530655184945884846269982085512498022216236380808417702845792601815364956270594080841438315639553862951230141425378751338363426691267444274150962923765059620210700976400075224201952629346191593405818313195240450492688456570353497643585510541339441773798917792268574695927840503203617959245462359270088776589715029828447697307358003772385925618262349454936845144139057885114825580711076535492292327085353905823484048788628129531264773403578378888911950476041690881642700487926390169179021417814360247790797743635969988127846589856053134003224750322006358740535248628982241946676882075782259665727422088352948044377591332101461824931402717105872208291412706811193068802496797918725029944829994985727538178102776499434891508883118329861804280577075927251102459058085314709059984603822964695508900937452365410815865463494158828445790953382642602141894078445541327768733154811267001718677768126762457613680534384442297791024375795657626626591574017987151590868419044651700090856258920802953860236789217507319505291748928677006309964423499035359020339059706701973563721708263483928681111894889478734617793799296055697929125656359893561104719925694735552276592393147189975257349143973338150993239232999493011525535076461193531932693131165173037859780115871487967414058482809561412771289011868515606654811228524438884041920981102689311250542703044121222689736839462986963319635061155724375469082539317933809717946489553579773974940793866892449790732760304311644504591938978365659406067320927803490030184693093546648461999991401688324560249837160198734133837622760513217891769030846037071940289510096131328186179504986208676814819840865586690495245004777735505286593266608217763418839580817155474312630824057814512425988217297495806627864070833716956572749515391246753497322818048733490732398951370455491158459426713186810939912827207196770611079716878642760427512429552855018192066084337326876075139877612343524482071492893023805085962904474206623642251375612798411931412825581905853889053847122278283065410321492802820463960667769664168217271936159639461859476164046225498528457964448217933331399190153854934617187077604881059749258911734386763766057201788363156474493934308193640757789732007163367554744779685663997681116425421444378628176351923942407428066510310435823740725801763789553518622153036006043866966773022780721334699608027804990919400489860907220764016534756846103007782419426471335106117187475130686552666820978178716008446775215726943572528007182947091410034792371126646973684245585816885833104205070443572181536616813156206495396046617126111746122143871757717157227259439641266748321608059020804667213472612976871997347935749343817324680387370309237165790407947583302288308367136678878559203206495177360027433459058225547974849143451314171337780630276490931264639755248813681247726525778422921605623137070025081351414121945579391098024615933620338749796528533929677735725554704022724049898217242224787026630869337192214414460884752659982665834365679096330616011767369417806334831310176289886671106390138794436628577187193283117659736951619710625091885852724283874416375456745207190920999327777740058885797364657515195229715285650672902166468265028979664240437165905763151294666874992596341814738485113087831491677073518627272179558804431457771000295796137822315396351168931641789068123440787346051881604346605145674031573676971369172374626926995603324992610749424274171162855158167567420877496283902237263628633521034081287462357847323761993938142728237875067296217818734163699529599508544549325515192944256423643510073858456694942993063567311244464336568420469163289757565224133360063172275883053515085284424638648596037061677722458132577414661963464017003930208145592964295674050324939949912271455706451901408321940392627961773454778076632932743797182609035086683864817745863844744505332748936834995014000739249828972874560286570278176562037218137200180708159333520054937077055599692378282692662234856652692761246124694970083368835081928563448815988963523344603279325784624222500903739067585991470458984726866923594096719486218244318105691034261399900240246770687503337893823768799147060401791731386317714852346864228170553517547612766218442989338981044442406132647003598771736642719936322718710636096243924643593497967180033914698544232525729745410923610208733260645774727838754285316508576376322945960205740207924189386301336925188648841146310020290793381070293625063233377465388985430568947085633780019151139654354035250734837527783118829518875475248486731598570127566212071070043144105401048801692395918154527233310616257337322581802145694962710739587317066438922316877881359306882107781465008767415351400784303851922795901421277581361668522059199523151417137904657265889439539017418746822839081210816333275573233827122255378564346437826348066480282057414246166579064490322292602355217018157344078572445555731516937273916039776194900487526217296449396867958879157900588622772119666977321006580497405529679772006966725566804567496474113275681524454862765598289836209771536215090105470819405499990549752394937636606913830138525552043751224096020314722465136117746510297883908325528273980987375264596690873869446638194766090064317495919612176134365389595455519051494687122560351244875342020530310173787030112510935502805172937539779517121736575205701533008783053927812575864912467999494527926145055429399853705299418026336748628759788946921545221271667474113719733673229063940964527490152930379835886386094017805226177115199832403538250818577091963176170275078907465514809974947012401328787234870267066757754505313161019496113653443046303648519306545962462940373559495122092507023576100652738044065664978114826273042595475454224965872324988386052364440598533248969456016567594410001363285324328250336456505081999466336655582846288933352366928555448687610549576877961017207787745295048966046311821151242547163555492685554281948283409273364938391088463106691583086178319921520461550474280720526442531645558165656884071720138614220342442745912987579603308229658112231093839131674692694561847271888852664290260497961016569745782015369481260642257932916297017954375985514794467197254678102111674377208752400814207979535329158108896446534558300962097817254037234669845195527673260918261436548159718807665289220272021337469300187910759536277060217160140322773672159142594730662348208736788050810091852246676202072792113910444936594048584513876366420204012932010824676646651761141691910568276212540446576842479938547495605300116814416694000281337669401193459547942849542842107628672406002849546266258450026930127957271008825298785247676409207368609794583500315763285253635531243216279322953732594719500838392538149692197067845467199650146837506187170876858231300429848368840908174046867559470018909223833985796190309001966819978569491099191775875093919476975700134477191755968448419147254001673708002261853063611184071572457853208669317584188943226632230012700788649746336995414053753516769987467444358367150636946954436917210788103841971818412594114461203709984381626182653693143310450086883637727909604416437650534491635647570254926928152116349040941666434471625297604926512066221926712006141121419917327913188009599754810568922484595776836774805840279124377558593301690704976358205026974247945333849280025840178815723345272967170898010997913643517626171534793910237128908313584531399510590793375495523405015034004184810669431852960621352125896906921935434925890816912718911023201593326014409680645030942665253411162427006160781791703726962723004245125742693631722754492806820648560389978565425441774683853815842573684542076135478317700775193573036371468084829501518685422703508291574546885149501988866510032181228990507831432948728879289654014476730324854433254763959210095114176100888754003945783334225872801932204015075061781834202689772341605159004225181246641694170509308944348579912894024951958912540982604080581487365289198914717857426534549268567044231904665458386466773598021289385315779954728987309295668993422207036606364767277013572556762536815168353042275499734958244993713987508714839834451373782238044654574029054911003921505538679354688758588422469297469186199223922290103234884803904696061501731099031723241366356237210090345425557625901951030441041000711033542478523029661218019450310057511179687137642950888551852785413398501550858715329875278932175638311784532700217539344240323406845117664217830111659481959079732033454005719302875185489795961490785766500925645996643129301367573806189788531234341505961570582706282805529084535001405410564287467951644797605556343559900826765134356775462631492365971709541727283910550087995460305912726144094309992360223532348533542197363500388106265351858264063098140918539964275885263197703328155638595856008414037534198312050788243887493434196624275669794640961029104104842802969346350184547410261373029292195847610164814543054192916455605440554076308502100586265693586062067914251201073500100959849110729912016590002183929883617458126906485392129065647782441961173506455079012573239022715923719787883643576033285821182621088056926280765733664481044225651312604664080731442912545001000969223935933976753039860927567829694791866076160101389456011865933242275358175244092056429740796591427132692081692808863476674751789966903050419900302116840563910870419652335960191988128187919437101410328917441960438081873786839849284501360595316589657789673661880302204927818289486020769844118119819477701289652529556547720167695329792546204562348815650589365005723793162553768915435923158844059741094292797206537500888319807344697299069302815934732395887559061496288826561634697291139013935661269632386780888015214115324013374889520915606897660331336200045763602374867337466132340507751353414208268080961032634006747040666692277033304645428835188692286098268009874678085322183513554101261270917361832961322065743519592562223016066083076901735186453479688414492862699598312846112032797974878647874799909894409630244247960131072455949588112707750750221739091279580442587361897873974802441453427250298817501242610758742493614788896948425508781109472574300329763735486828642027518420868421218063255377788323641183932015212213482408613100047343516234746309845193281746141019972427772279919178452588913892149452359895338637092330715110925733520135898927549768415451180693885409003128968505584123328668586437939582380937893479696325404198125008305578557803905271769999662866460662814997274508983104530581331772281892220845354131547042257715530368325924892928571891159594485050764965675495090298348590898284185918655567552906013242857747328176720468183810515931634497940824303604461936082741879300596431335431441901851047438573654384449938152895002670088337281118377039593041285763923321980087379981080672618353997940325242968510702254708465464509567793390807635711459178228131578763835135659479183234233116031744213742768000767140438993357270673991879151866303897125750121159535602967146744827645254295502995422056771236861066261470476707111476518783767670950112851828382690367583137100059898974177842599468408882761697745480335166820894600325458414228447314207036682980198656250664114385132671661193115498689289319740103179058835830690668187943519235745547245310212451981855862060075485594777744840110786092644188390048894151086446811711166255357973814312148379858106721011447253146549448121599042912674876953236324445603515123827537791901630492718293968095425972754658903789340271912226061356253027434553489030950399826599039018863273826292446082492577903932746750340219928438628558056125215669952089936792151487443052386217924245242205037683317335572955206320716795880683168517950616262658188766288577918438265144294519093043979681247465709278645787081790520026993004206562342713652472195033511997998088703348813665857196840565338883046381858266729626292214609471663283824597956948392635928754221289843047788581858365669212654165095123592521294369977134287064405743213634136150461413242075554546186526349999424912699680180106898622342156238517992090061847484201518878107101957846348488484853883481197599180558040012758552739555270843979822020349342948064699878752520217358970309676248382272545553674305606206488458505645882397338804407819776874872056986800063155727716967375029854793462850805999413254866587299420889357403339438444293240314677745552792914304830308915861923651864861585555838413966121763205002304742694372036476524765675170078750338232509664026153840203581460295849574855818313612198739638631182361026618376161089191089711140955313442099139837795667159485089520600769303677025688669688176327730926233078139368664631030447893510916148225642885940435188240316832623417201585278341227529008484852734219343028754892847919298938346542402145062768059207368709904303929424286175736972340489394656982018250021511063223736301425475006678503892302200682939165699636575664134176198314335048089101693405467923713768866056336848676553487132682643772700899067324461834509331789961679608929154171774514266996214230381489215855425623125344556616305562351056136401823994443229566683814165944837334333618995547501381654157340564862738098456102565336078270482878012061102336480155978174638090438511268612580587661369508037420215040432338683212477213890249362313511810593021735190147016699948906037912420967551184550649353781792462280302518190821759542634895420517986718155085562325247101515025900213568057007308323089252334424302546545115674858785960532487690704091653025792077937176868428977673030683417980630440569930427282491508027787420654625608099448264073603832872212216364899924857563915633124826323453205300983773896937846336463553212968327190315066076160773940206980126519423356979431018722989381729974405788108826893551309040843948392734609535032504466130577359910610444381026372002609190641594160664132541341979656670929656990967852138970550570522366726516392857209888440412906577431540420884679778751463420184265379616989838695918075305452449839137700641182195371459337845867010426743502777643241890888605584826967970065261936618028252206708145332915514251158043499085832909977756520731783605312596241726126468089605778235855935114890605940948136543343062259798990025769578397830820873890173267332753358664390446387121323431677029755978116048951341313787362013491061999906371100405868706860467981376435587960816508638435089546017716987943326761820291707566699282953674753612148252358802804909908356911672866683219389600870822671238048320249560366691498319842327827297328456511986808606485875957810547869587694863401427903355497763008936842358221702086732211411216744040596748585425889757919288050496529601876191730230347172343709252382774126239218295362629940359269704892767751771598885211734110745498386438059950882078122549449586648386078874596775375596068888188999342407939596961532496923528321346540462500944611631184373993823674353401792082171225961608604893966745260109432004803022801092672462054888448603627372665359315579545238159030434872788248429236057809152981022078350197208703343692165845668837878277982967211152122799211423901214471369470037843805483823373747477498449560671881135744733394403588151953916828646445544008953071861796329725798222284888783433526339022759862593617163980170675075391652952094177789588730451161821613226284645217378672992335427131216733211963669301888165184097570861592400271723566116769981779898230534279193452661521191114627529759250450933385406876078734198031131604007514150989947034545766963392964702383642319623241803981713196774823308512667526883604943418778596011338474073552236017536384864652584153171289368799895047094282277243448037776225081437638618664009070223355208524099851175211529075844475947387923140508730114586457422568934488159236594181812435560178311831208301019059450919594592970062219868820106543545089005423400575214898268712855627448176641048688322383034990359886729052051779787285075959491019823244613565193066311040707437257453859654644495012314072477872519230361577345932963157190603449206105709153423309036026915444890566789966790765761632462439507188252326897617782213859108411280148936715572689763753104519419915292365468935849313955888565752097835756886693721926815987880695033606112680827310310813793197727700381975397969939784262978496203381574994757048258406907663427229458762805956431060335513426124151635338674535257147895565679202887790458832049672143732566338362113219188932047325521268852587366941708168172143031404386703439580429922530990788010508646926793068391719455673552774482145594125358003635518964838871146731527566346868727259871275101548318786249183186169871704564004776382180601056980414286524708241037437270631138897200016051949215748808820307388631360475500142054806708177654404495844904157259272835415385762091823117188401125428789656407238445905662994952571402136969590509458316153623645900671893035530877881376402698110087442441691815855538485290577971076734236189615925982142066766365668767956421436903006789984030779915291714247146515515190034885646809225867664236560016847836985523763051320122088620463305120162586176881971876301564483706079545456737659475732937963357605731945971893048542288613423539428834771224519589693033713686722978264277638046680067125038552385434541919900319146583225366185473170567356778943447495647165943302344123180500692338046087338409647734294908036228264262294966336669550484949560515969203216692676708269217425975228465000578169211001599148661640705443301443475809011874530361184806757218644457029672138510964566666930287315633471619742841959220125029193947221504208770132225805900518801262134344957948764708626541411964679028155555355759871919898478638728491367683029748248006309595332074864578173722653463180463173564389687440127700610818858880458558452443742436946414549099194579229704711749308295386341649919974860085819613472638937786729937879775787467331045428514927187443943486418052232398101747133095324567728867874952177957113996509450801463979319825352402578739181322974428699760145139991421560011091148935984009471898381421236322493046933541726028195769595945918451742822725067223028026025601629850133733535575503624277871669128301703229675088787571477496683420137592969774991983639124825653245126814042365259535014369697663463860234932117256695398551636619141821732001278534884042537733072053640700118823818512854398288332278730555527629007879392172191985481012629945024962303292950912580227589415273632644034425699986758302524391665904454075688586674660564753054053368247597198153728375336262572117733563837965670380337787576884631413018721414894717532191892045561888350204579268909719084621416548995730311706310684024868159076095949225295130357532245131593370372248732594763557584911643104277380449462896132351166937723521288236149610475690327489589680140122423626881416029159161363208877703779456679605038839805139801955094802955332684143096442003059534636377033686733606540078622437299859526730966834921690046511147240168556344834338461743993036169917322214444051272461421218656759771518889071612117875266223411168604174892972056149752422339103869342421919297676353657164958309481533948631527548554121265630953020717534581240744742115396000444670343576459539870563177170635961509414577529501722176868618761014849905270738939603139220351153051173914557387960976042801091880697911457952769935144519256233759228032040321446074049196926567396973928717501912554454497405439580675454531247384051730930396655160397061687193779857799947489456309061919689129355050010831514314223856751214741133136337019936580595823428201180624773113900272460384294007283467643147949165245680387541346273152010418281407791914983486709218883337275269595546132415781927240182141359169674304460917448391560591437613760570610580657101796726816889136931452112526492934355606369501419506175334612151587787370629264192501170429683217839432372080331734116398203593231793468733140953563518768812672615247194771338841121713674986498515493345391427539701656372680923134731902527671041109950222699656908166698283461990912334338346321584910850438107776846567309261878237832055061351818393084451888059489268983548403717596405181023785635986386007268165007306339810497916366297770230077648879695584953478867049908282359939967239873077397096509733295811372418602079395937160811857149116791698637183890529335122918433238046841526165602807387360454231008781566702097442016729147779719256628471659048199630286497510092501971517168091883338275347743254825280243242610747113696611497868441905150003135636939276752196135969258928110125498938889556464870698931547744189163710654702101363496109319816998712039769815802140302569400844827785065323652807202619885556203209611699230350591183536066106696933871561954311086760777100783055475939161115125671454978647080282430428352902575400672761348371594563319620352860968827875497000528624340152239497399670201792040339852267493656342334835862694661453857451116447402452301708159172148713630381278750047534916315418729075777701571664514733895779986367479779680698135527746880956936381130452652329409541287212284248266864132503853048461133903817443594908925744979372620789442213701590203541656275051247414708861832701147859672387784335895519789856259904810839515634074479183680676996353296334691257827515352393274725294066392372082944072869272647375983219042201289942593370579210439373720002310336638551181223090480498764759469772180831497023637196417038600249941940452851020430025019325301668158904824912188014881829887261884151784810705226109508980184138482842350618911856157403486575325881115839744885140108727583910103291694927721014720018322312293953879441625739648251894647096198211551700688276614142526373456675596984737728383884753280972338107348116588070989977245558895760750476008542653649734616130732075752032015491585343595841993124913692879962454255214076501562242767077636480946217659854254176120304943396242807947771703808048998191812468548161927256338726550939742673463648829743426935958104871555889867319182345617781720324321177519482847408825669898653554467608260631289444141391460621287711549646480508898183644843734359316157915726638989547601744919547808637619054925989239696898256577293799430799153335286727711020367223125955428918693020524058554591637945639466247555582647147643939089029490132123151837140369257385616799269685291410457552880351465635487106091145528887043159706935298864164615339391526567171448419039918053682330614745787858443246159563581027286981954733991977877502286226766819140717386031531573327611456804075399027411066679425981041248764840317644604798034207221437056120369657582052223178936569705601988070727337506808698547869543594628200682568417316622200638022186278052669139274183813406933324676376835214948094276409853650694981914152508946546010985468979591044326651249493100786947858171858735702797006569974906209239810330887672755841470069698875888500197527932760338711385618713763196908711326632283360544996015808530599066030980709092650108921649811083404772745655138697307930380638979625233089622524069454055255867714547950521655974693880953184741681060062554790313075408926715129005409651426473297862872078780633477771811059270887475961382673826838826672535640109279494504665620498244161851539328821957013719824895773419505428157119394536028857368018656887670727896545461716552657717610635906665141056753756176805957941626658647310693547279986356734892374344480863455349821263833738028211072367508987244491337198864730331636203927166390975438235514142942962709640296346467918979838746009638514222894007953217274852411570865515756797561568904605361501922053731108322659026200609432443130600996330306447179006370060225195714662779232875886834478734166574858339716801241790156641970956764355418644704559039846689398220481146449753736548119825478296091513980899122232362511354327229292800630128057080778408753852230566403761641907473542733624464606325454664045577992243061760857696168651377941480131371071707320920471748821111675292164208171665722201921355854259255314694735437224504925790369450633259708862992830859487813746852297643072402907371280602689298720955608651854866652651061734653081715418198965139876699567711736033093857631748663843532940430062453892785231091756380775990788130383947740831969656892557845383895989927082237651164137607075676321581962899982081087367534802236673361326708429605237770122003640950939555960622473619685851321350605091665638457058654906834912748673145444297168516387392289304765202962600394537734857090312424260640616453078682856952786951481592164136059159761832114193387492900670828445972375093553181696819874225296614638124743340045572982667056921097613732340387518966824734345372148737813178427587229732435169911978370439974217915905543334602349354408921833032363590954550435039267287723121869417321146786238320053531416023315075786440371642156362110597395771255797981098484857489379769450794141843313638810600574563727198079249727018634418288617534679116351197571924199044830175214336026268177212136404307312558349264330143408058908038434283230217211364438929387952052197819857513659155573941848975158829831416307718523632828545769268797184721317038225132069540043738237295594031763616523789829753449104862427470931847875251435870158230963146252096481082152113824856562459022481276228455633214019788137407029916946962071918540166884161504333414254855356325334591078934428847204111938863146376350084793394214252259044171463259271995577898384280841500060030063127342095960662294003142556825586990569141286016937624832096853598191738515976277702244406822911293007922421063032815008946009979524933383246804035625309216667506604468425975464200825160745484093984579263702335815831678563802663428266041140177336911071845179579311386212256159008159717471532442839882206661733967466703431134833454865732637709266794548809627226237987753723882552073900184972502451539711260525404286737374040973113509508136410500856958813900042286803723403671949046897008414563594432835524357740330910200334991865661011742806165950698628020940354813056775576659437664480776426768366698989148767498255932375787995443034463887607296213930546478398312517308487502250837578269166705836210443777772356091239083802405968169117127130555833978108853311182131098949291267383944079384831693773311640895003261438064351050589435534425677297006830831420845374132213981339924457675063900409209009800537597995569141720550397180352304367997539083908661424650488518280227239567047005453607304029496762965001409055189924739067195984848553259303560578489621388545995837001455230076135492811773593604474617425835241937637879524756855061753853496603979729576125793614109546432646403589874556453476809864264989784954261299799612559967245333894270133777859133878825901467911909836592926246987216221638791319331139214148320424986020229808112594938146995721606595786706006397427216549939524159598434431566975538224981051889332502427989117631417902920351340806195497876764269894521925220171046471892403727133370684122422580620428980204052652137268404180257926723356138163905849959103260670399102863178021659581436029583638507606204396307056385498578700709867164991198275151702747012941713025795314585124842639097913470797778306512576319454327577915482730180413626718127951002924777133505526562995535582262207191666756605467019809286627590026653174665235497617688502198599157615293921670830807436967854187186283623388478983137361724104176768655706881166965498854622731747625523531328929708307367158283086902594508582665018640523616663462159147996798157321399744616008932797983569292770274400845009211572858810190098419532952139607663651397542189505924512036650850012657709140048490486789933311799415340129974211478347405850462599389865088834724070857765934004929186655486699801230420537593523456066614912076038355467285436626730397192701371234391878759055626683232186151161682542995807602129264903965029749299954773792235321552857577043326186453375575514966614343135904711259069917891018136937576395416830435503390172958370025881674046211834560006890385863623263027494908305384901514603714090323160184825456808241915369618404868391668973680984474932547967898602400393068953929657523616591619786982835220067887771673819773491370413381528022179653003186203710812246794980403055801519673592203294851890433551837388627367996168178234929770719388424820944611586574547851588335337587557472916202214807136453271442046911907912501197660099550128740586030552798339249510029415332861956157827546477968166952051582677348441472450346796929919999567061488588822603198512506917922528851606335601950581952300833508935743008922282590704048954225487235902559304720946736259298986237882791755157348054592429254889613331868560868383804304757576888358181165109576900738060387614234538425991757495264027740369774604204801667951658452603069606497244063664411596665616468773733593991007821530060849560395064427511155837220092054158354486572671786452535660699221003355710336949490059197201280486782950447202446197679037797426421345842894819591585793436653196232710208357366638124596587857950547046822320550998094203845076119245216209272380103885990568997123710559907219253910908683813311164291870487957339397631445502093622175807322159647812315922124905123134809249954818724080939837722122868913045286127767702951670067202741282636705162906371209207738767069342663642845438265129698478439147816139675385031859359469810251659502255833508089027611559959666752949527773313272983682073311040942015926172383991335910028397979928713117111745539866239099630213355094422567660811344815643483199346666618888012775434192680592044699398009429416212533446157449569621963287947606868988809571978555055096617670259385230937722009854731681741556538823172387925657783778116587057826806463269643556110408052719492546908268625747977715825912494016925278970814774068599483888925081665326206646629486793379101779131198921564995790076101915212450587989043925991854601975091902840629525256967997246350747922349328733475585159481774146280291578158042065639571413548233127123301709121132973361312816539761790513732684697587025003718030770880788360803986597617195827783868345272543688444183952546256323808130211812497382322273298405994206042760758565860744927156865763311200197004245557703206085480611054434880457752347986036261566760785802391152356476226642864591290879369589868736283935126925502492003952252562553756534574796713509021966677706406653162411294674880274593720888711062625899923353523653397817496510061940032750035716622212515115826693958755029623427740182139930115634466313167500919869320918314067931066438878050681763527241429277230057457720162879723511693046372613397655669488986979062399240228873696855954317337170532404600011618637520417633367223852715705837925391429458226133855002666170011687183320680783790109330803138963229201452703977586534729561243933656571677516541986053593401817597016692968543380730776304102083435941265649293961087727131630526513472574270172328948118901691754729049706627500031531797054175830413182971628485464604930328778451177877467677230920130188676634592334759611432465005153153691082864745024561409714214269414286413223559860561295808231075318166972882649106434340941856984167434891880359284195883065775444355411885600343807446215254868704953279947568679786365868188620320957559181286956912937930183964214472230501003568385054320961664969598499243882722014771620834160716003326258174474117961705093270790631351264611569443611076111839265129039327355959247793313193670723543707973962200278541240412342657825419815526765411677959855077800624943416927842230443802992079040651077821844742533612077546581972661629182045129446023919125092730584225749155427095399239996363179609007467371774872570213792876746515481562833913085466258020510902498009840334315221817264857919708585744600326217454464712114836648816722513102524720423082163201921229286470847646644271967189151539477351060336349706854875263204817500784723356448855277476348224283995533103609070518198304268843034241145137955169639450779715996057175662597942705548536879412089139681266795528271924806877605180147767745399642564004958294835826669548875222513268337989921542647873712468076297439842166829880287582373716072897908388050962080132132140507037088006440249803022183883675930897530210057760005290177528030106613823594623610878557592216226336367274848100230660950397874278313689669107009170044904513421295172782103891464153029412625709459981070907337502582575137697090937364329362817319092424320153749666448454685208680414267675640244011443773240854012962974514933283913648106198262258408361900728938060650770219921743066303215131126374167660496610818735417889711851066166542541641888853906308356731425965857156258783693698502579581182480373370503769608066011056451337778721063376517612164417604661444018646368804603262837170481234179391751358902342251643015604818065660662570601282648047118254746953045614902076853499531877116569421218314810336594965661439790844189075623483240101166338383614998119146971508976988427239754510581855193482592060960253134725231420412017962400261607285941563838757750966289930254658655196062548103696515098210226674131834154917598020947152944930960597770161502347049538985527501770291614689557403723694945574653426507413266369953114588783851638895225061994321356236514762289344508932496575569316890195227812722337281688358831418581067184826705028876971067920586311991733676317984195145790219289524589471765156376916835760685919333352468193386621400044858043065690421146447738779499295575223893849898487672566927614036291520823518229538457202025754892713708935757280108454673046723155155902759873191196084061230074402043045550068358174700418171472233074012634864323045396252724903261855877979606638374127097711419106029352686030636504174030533230392398771649382248063716144383429121897122443507826858199270111367634046844615915705750122803649914946323737726329814575953850869853790982553526760824218376068156635302245901203512093753224080192712720236436513354840429541999569404712695472056859722673631417341319393729231372013834111212835885315558222871901824848434662683290776117222437468418474771202920264162600504639063881252595060595874486132857610442313308849274965275004445832350427620192343562905548322417422915843519732653905634040118464371797498857374522126831722044937501948645252630045768875576519254872041371901722910892394931239819459165281619634450537288979964021707015555799975351987336948169413196904043724218849064967368322362540569055300267600745197913813986448489263930959556629605225966249129698267423200856303814454370209751762510055739620053810033202060619467376461606228399703472448279651993632432530079736584031893644023668097060990775396837861818584414069373241945247309574483206770566168845710968286943356802582469490523717281584035270565703131634479784062681880862723644214793143087793922115205605307279882248704569469826823708699664216429208023949604273005859145320906167131043144808814869532905874648740532026050190297343193308226355759344404018176258314570365029338653250999756051706988927597224026063894681263261630267468732354980799575092714727402365842100392256988668979314859109305795038906652019797543017977492007819388221197987812439911110814482857396809131026879564207380217972615909991159351686784348906766362181567203000150201474480373354467296064749616277403264155301261204344474612188416135133324296498257561518092741921389138842293746161808240231151915850234028454965061579522434511473819836909971642944880017682508669699764657746318794459810564957114259126963677964348141924571638365101093601868158359854495849517133794274202787011395198477514723233968877752930825832177196197875892911396064059676495332671693387177164727288331861062029057628451099326140970665869723269853709563060209305947314053080572650616047184168265146836045430966770713510126645184702324955831529013773314907423471726328369539597771102729113316111104544573569307539071147828251648582066386124001426500957006321925717600936679785912312157196675046702524239109412437691436280141732889708976802021339736076296222959524036939985629589427695262888682766792484741363619653465962530283415426533801150875867379546889687060099399659098388009853188259857930384874625447231752966650542425304042543049321069786164348571839582371781076036447417420340791368504958342307248456601160555069830156215626852038214293473353078398988878227118536972492339500825650569022191082989514914238507644107945698179935821244829804638445126435337235227465081699960804462275181611011975212018039530682535697538481481295543309179505659334399151924877411928163334625163063359599058896907143716976487626565345028296431416021585040654925919610631716658781059480051303068504329664683471351083398184325192413815212141108905631032799853476121128972470350872588906237934067538747291187644635447187085348227166425150391395245315298463851544429805231979368356980315894440441385034321479809939122367662077860402276955106731609123994424905247535885202722841996807091825791374762284763142824895044662967032037109207007958723054274780307854757372344959684301067031136857374577943598271258601438346729884149060913944874832864913004416941062278246882890574174370749694939260038919091843788039549989497145855094251900561876353241267292277478034342917623832394616508281358828527349860752862429420991879714739822179394481171213413061815477944758704172131495387524215149455790785978444682162488934943283034706321556609576178991223052284717015625382294380749456574404733380517134472425550714605556779168897577853957087125164967279414034014393361581014411612774767020015614368704143728833210776756283825588821774035180523301097362434959189629342196088519359302650933820099233566557963778408679253380541735043436734688507247825601259760586397722918784445297039429452459329626975032629839678552576250363891087648123712132215554076834319606719623843836766748583746676652250187192923908368103258821481354875240545366642933300177010818522866200390857579863552529854556806978297626530523664903437722560396257028274830899978018221178705017823344003191815227760926893704116297149966129607811247241755196818264036508793947011103925190711050655946926806448464802135494924021183190033002228376676625181536069740140658611366941770095087087830276470706995548513587035902355457178466770365295160173459318318711113828757160710088105966735337999517804289475868876725545479276847315455530172995184177218882077806728992759723238379904482846799432085790937250700789205194612362344230165770610096767197062771050075129940479340837523873448032388984652815935751294584703072318584718852317476743075261098527754135437196826677948425923604810779868655657641645292277716972071545048750517584653798620766130321288417229808781270034719413713319678202171847215039821759121171627766063381179688403779743639251806147552968680326330526049503457294414703080981827023731923062161253424885360097656517408979972280255460151650489743204107011782894691523375839340666225545575913695617396949995811271873046986034975719466180279668061102572366845032643794236169023342378021195975908178182328422658219135957643208232409985497028557432344154532274089318272298984899306343198977580382337600250553109421497276013482739072561992138545102658690686197683758763259845670115568185855062088761036790278904475715154613658493223139878134604629485127552322112165379599205004596345902418986208725441538490818188680684890789407481402061785084025797421711735631478899175865990036181404927440293827168457710600688724778036201312619766665662872949105105067549813796286032853961572591582738912311272939022912641095737959206761108277923729810513207075813569924452101708147292445254227891936675178698865513306526663975395013289146555697938257900253491443013056235768402204088096110354706873148336239434362358779711629573720661634643294140430048461486807562125049327657494687925763539105141731486550794414754402792401253619883641853327448055096171330046621716603192083285077132102948775238544063187316193271267194846605631856784957623496586867214109927924318740964130364842540358403297704934939918801777377150496510711182655672170882817753632329735471421120333716472216836032969323163577147485504162161478916576312526601533707256065491989486063334212385264394654258999082950654427340943691713892232221790643308891705099757952203879176567708724167861120710427339652915536496433127432989468461587743735697045614835358561192520022046830775101917852498911941611704947526632203521714790049995226286459743199963290170974241102512923428337875369516533991212502906003555920023561255889069058590867534182182491440806784765002465480405857168578136275935916476491920526351624301316918619406209832129881795756780118371940439096328859784721899902455497916031879982112315177053283918713724414937402993587788868217275728162593399335365602571950979323756912181656196838764559614158984167465034625674551204306323352627682854992245847514161291232337003280950484286193591611603330453367560786241858295773449071716534567063483488458397640446138039526063270961218181015704115075842499776770940995160222128193182456373450369382090092024151835622274074883787124984218317382136292224166274883868919017677002036869142349364075059107322975305494866733349306704794293351037307327678571327832047835416999409974605773885101605716145750940017645045783754853640795696841567579733631774694974451414687854023627957726944840033799343841465682752316749199988188270337074877436509794043541463878672081001685875741901345355111497301679985876397731914231551922972730251953256499241394798312450724079613390727945888066703990245890194454986118118956529570978583474011410183821505704474171628395483702333063752350255768039908554004660154638789030306272153636109796320059505331090028562962499145606347374850743719551042155308546851359751856101036849279101553797473214365910057778723013466361819833456586768846964238115047130591103011418701658377310467301023735010784304415072506994391016994265182746718575680131742958922133247508252623958400458459388525610347873969478758319940369801403121970319756385800153559769034945923549509736353521431276689183416692113383507130344834507098112240131159343242267341322393909772213970863281758178012543828872472953345066023175579095112068968447160782132415836826394742653423907752881659553993038792766419520013089005189946198570284792022336433437315138271980308902927406576103756728362482058269842908850879696989103622245537056893376562249241584773896019423592725923121397158819159405415051028991518935106421886262742379360966296342414708164268846095051502825124348313046675704615373393589113586457464717196906396820505022912267593724433128711753676183145321286759637655603947536847116731523593434588449065646034636939119292795206501900042760380381968999436165038542655533853254295390966830374675629752628318292260141009730082332515900393760260293917657355538739588116119367206597765191392538135371543840049766812728546299547473785733069108380804806554017538923506755946511101176274102451906561384371428283703296959132043749340198668166017834161478708775036133058767271175896804684357911643033200733408166935170891915253609261834465822111880461059301900241600286761827891557148463346847289969187487817468987652218270923766943015632789732893607466608247145865385741716780569827257282751651258573089263996350140088036653265631749329172102362911482981387186610852839160692656575878035065935985538562182676032837772501731923384399502796998655641458582836307226353953377079525989999426811827696618809683029882570464816791507022064181515143137900770182700705068365830614800090663245007406635822900441810249045723575909322803792458822147642771590606833438092547403432758426567261157297440751509271754007391271809315634597547691198753812871805372340152511945777628694422715937287195197526625870212262969766100662213025775487752061334200364594114307245220429138987467329210128189454272775048710282622632529158929404538098550676615000950069840052870732676223676478224243055984279765183330861929762386337223041311748016123431302351398127672413642875452458994448910027699433156953504161784161235973066582100546658580641523532125159725783568618678447916236101945769379110901067183861384202557977804991308931833738356199257174505510099588287721682263719327636598879585390648673213656541215607300114582150978109831889849955270861715340477611538528191212818113818394540417332714823879194439474121877557580646583658700415180592880410546144461368233833396876903558525487291356413474599834394145735331776964473051512925608179736212378632853276631947253071427245666977164162089211837168531146584775350865051139859448731994650331134341457870885110667427005775760467990747632600218345848973246785038095599703821376921326616454289892933679691564958042112888276008547700339377582486051518825710914649261701130012578759192236867887047233376985147446786653700725647381031991745847787107525838903673932432018838573200034586184170558341445078110436239358693383098512933441422707688852445280605047908234112730940813311070518751022274820132836689123517271848975471549088153178194201930977454145761948414019206734221659809529253321701766265105871785707906818322513397349520157972283383221510321767175174197899055597732888060255910426975107188320519655923903783592035572955267575627194324330765282345201659271866716089676974827134123219528209684917617314785854028485730333759942400829853016357450232607059607755941555693808650512588368454200314040427567845865666501914758098611140579948032099113680086505363375111839537399077008882330176316613183109365609111526698306406776235557286364682034821034949930568351449061464061768782073599926145415514252666108084569977159220240251707194915600694635872180840801424180879610376636090652028200595271331538550974869112219490414047569317175955566184863496110647416087461152561123746451595170299425831280815485806990316413328755783279621526343740710844194046639875162886526023619891738045547633958847416786255721667797691136775408508756227739620981880813177404016270928308016682230127254459887503931543497784472640100639247041967461177135984583675524024142644342402742014209348724611738826282032198505703869523918655973450287489944474318292128357932975010628455332843740270716927367167298336833794284819104313360626201928739471270394360483236342224037185464355421482640118331452229908623951485693552689017182001347228690926881800896853287944327272762089599258651260454099335374742230090029190727896938687975210427648396631428135575569588505307667682119355002509142323100403668713414043528446049959309007431636294370924303942368139555762060565675576511294028015429504984452620323300392369107702102094588709466051311126611819499407132953862796110514405525761725728941330474301491757007583807462225857531619658512409493489385495788880042505707332946254619791044208848583678840218368777380505495548847437244251260541645079863904662475998447113687495605601442976256348110143702824699237113445180417020314019712300651438358737455266803509529813751641336405214848223409502148989720474010839064386342763164782516848189830558242448090529997470274905972973946798422239820399967150165280216334889586907684799937646901587351320602835803544349777808264108032650821670364426121411026794306549759161905109041058987084492130818670741572821493094865611351997569012160086001966463663809981218525377550929174553195677218165752146723196270837294756455060173046700798039000131485149551300282818353391619230977340875883229663532901976688985241486305550595345026746864466282038579004377575975756912559472426380595667953973082303787871088022300993044913792720910266229203047926410490135741662645627112999266623012129515960368545045063574571431450825501242143225401571899122966707766368876019947378685919782071796182348941974269441760336607140181871495245637288388692104051998120210954984073175314259167748944176971905046271709431441914158064264747845113547933261754595750047685605984567502998292079192997534415297792888292959199523723599536080913831625715634900977472362182343541698459155757707902529573424099178997201979687611106672373243688645663481188669732704442112813117419090310644612724955073323979814369884881324594551680449526074800930902799027590162023785073544795993973702609419439239923700014723536802017898047800722725566909010611585003417331754686359895511844013599456213015420120774234602247187847025645216296480798140617396493647632189083236635316352614414173729327550632772980443595498896686836919668379410566840075935711353401157353157789274702995597742012645395216591424314887952261859053824328297552638296286709450122047841323765963955657046739536738761119645142549430084257009647826733257506453165800098845761464943373997850010633716279958610589039865070610182558466953547712127424071474994341754699363385232481292575316971164644160158847999294324728153698084408276244357515060584626247965835946176124542568742784901625338860314274962030426472438494571978781150643394002839208121058965758372299530214678525855880204395313268546101504934500727942753471381964547319480016113255094467618987454258064813761806751700988563039821291781305745518747668250596095699392168412859542409383420648732357515612848878586051100769899658094354221124476084935894671899466029942141392120090600120704164147413788427182748485927443839909234262012098920777012101413355265525993702384786031205273894262157411537648213390186104196403017958222027734469199552053909928183617263403751296940694456822786540325567444376549185092912228820056950027955687717160033749625680659307794324103722445732001490119569125728708549843128800968874169816990649683931279726681897669719171698218952282661140872582576030639120725375466233340819759482218686539507890209438472003134507197913559502930159902445524184245478170607510281132584384087717141545226167931934747262307033926159236190520364701780048406327621544098395978300519474585938085354115770937870441648619787918778732938912139602710313516946410520020377005383551130202037401291968353629877119443298802752262692630337569729728446205890742453192847069498039338870530130088671761849627065259941341552183341702194222595810815648693816216204021962791898570283763066495764010460968218785035209498891961284755380617337644733704997404146087460843511730453030088001217674805266191343382499792506218825684028478263805984440059021926886777373163016748988424872258395375961598941718846808540625170363025436718472310840894350755401079580849323097982933276043422766497198847532188690972223028764883291256669855575015836524201537671249791020704698738721295639635489108555266327988735821501289919879501740019463982011695795528899711083473840510848719995163725341805136506209309700244704943750899970898547885451722690666035740746691191683440812551833349727586718128567413015036070897237846700698347503412475674817333957991464314245554532787562027024987773327463290638187337068411573127543658939466202077193642061513721621868682910718566559175703134261574944967903233387886619646142902998358856909528998825670142757282811597973401333705185699465437377220746936458050483906344995540986684348039537703723197043592000226254339245868801808419657114731177006134983805785582585398505350221949672190663876118564872131860075363022760340899744021910796257031555611670547718551698773641146047712762152309078315083746023720811126771642263279881489746924623321617664705853349293303963912919300119745378472133168748497930889087747892338543790890498106097385323504827158075991634676063737187106637828839163663288830221450173237341962344165955984849362665485095258538027261240079722600890027912538974242489742785903005844659252042143920696292436639002113575573455331178624543442778334398630461876576380919524003663614499015326113603756503603605550409569425227377523361832802198483048246270161924881577864894634542035705086808348666878983593022972688393321329127961613696573242529062416483145445611785326378144194466898257714098274615905792768406955683227486325127922059453369366989380075369328332246266798418454458174397874729813806171102936100764019966962812766681952263940161032356394453929505458408605670030840898605390453443270096638070383045906382332177715196497900695416765927854896171855588408255390987558426218859047071735141594189093164859874863349191895151710707596473288426508055357743039436450592283768045718618796520109380832644925218137909779663342220960038585368667908559376373544245071592408078632819841356620765582407718809787087348433134860711343463773628556305141578361328054900176449281396475596585425795460816308696800567854276123817964040651794733841007463676403150594469835950684942957874056744953064817793581905011357295961563410885000948818708057845030012086472728130522374880753414622057803947662721978022281969597367260857935515029014659127327378372469910162419401390661796371516150449463971406273467172228985194055535476109165666050143537589659843349128361303201066664826577881146450700795871021538232132065901158431749291329736245190831532819161488167633276977075404023414332024325191755132522872233880495870592197399387537553598720387840083961006927140081791715336824183179642031661308846810124483629448187681251654031247224823644749480899942134687706762990447960667511372405089849513486165572036702322218152407267853779049477969955976363880950897648927263343474829397477931424278299622586024321131744684678154849805206477650614755305793037479899742262420371431577098869963154806972286579850117512883365382643195726180529678700120464479589243215819467495547004221202750946693216386991337369993357893051584224316191816032687194113519582959876564448840700329075741155086708097554573672494225800022308824802853180376529676195021044717152385394534599450795530991608111168384222484023351318644474733017434251104835706122202089912965117734831995598519415192997355582158860669970592609519954188147046925163584480015930546025696520797631515776445440650659629433207170862673800899553055569965531443648923821287579273119872209709869706272493808618061244009761654731609578129175702995239505461170543588684352865971907427600966232296494697663344426126492295486964445357028151739713160382399755777544687270052812641784329641446077844207597480590265403045625864610251607331117197557854165425305282820475107918703364836193231890904109404120987354068092749338205691447619983225204166358375660430202586922738282976220712254434480969156525591543815372779371434239477665772868822836151501728637494918081843414209650771810892253865276031840145984261335219389503774591642402103406229675390774662526863076333948701479916987029555974825301185976936599274605852857846232156172657080683670061280380317258118058524785496860534619364553785487958888762224178781432654693943694323557220463130776775276402196993208503793919983966423215949513935045264503053500250150326971656266952112935278929937966099136713992404487668417473329610564101570663791085107870757231738329898421150775350031166186311764454950533554982625133353891740380739917564562838764132884107159734312916315182785428367584485474724699562243394154104661768140136482489218676420096351997305977076978357899360775712637896458845584842579562083756027278093026172189557755464271176764494293511429981955712168531981991087623236764911119498772083468811337034860422015984152065391045121808242258820256308740693061186400530489327470151469850616309199220328209989469863690828300745040889278853041530943514391980096605635451921435617952543021919727113063520356027854050653583228528579630092551058727350840176465273216805615240848470045945953246487096116506121448357025556603332575611021840160619662959377196343876192572470144366363142852958970934993539758245329009175769536155186997907727092974075697941009785064405952214192397528609576431659151490484227333467604657441982706277145896439446297450965354702434506891692133554189696331751626817046587080940612241005597631657753672397194027068166460531635105013479697244878197309869813014072149627913459664005727561071223881045309497144416194937482975359430555739937728298560083735071584293070347287453348326328574683006148024779570995056702828972286420699409487895744496744949176764654757290552417924266512652425121364156724043427711177202930822681945279797640668559970783182992629940610428392113309929773630307731253648107317694090177576712165649329042786320949336248282966181928102663343535750779112139399782695555241727880917859363065523180405541905128829490327313062336037391893700596228903112659142842895215575795668744510801531520893531529814967648353009762020551571830523405256470538705284629132047372352077051503719882603974325154236864326658593836069289080098883148201264317030714390128851431263637676873303418216237254568819677834106611111782959349224108907934818059761637135495814091805430760280027390668628118762713283607911668891339698138230074747228576317067725390929328732448222885721232547711855876477059003042011974489865536268841051319653581069057373507473758301251117657486593379814518346826500265431460739818755763192234327250256552884936318632776456428760071894067914539070716272114050256675402112250939212691307758269148959557914445087211871924967996613049223632706023659125460031918147766886182661398865317895050663832495449093896586776010826717381708444431015352938669290695444921291982308522446658486074854206306563215077207839216160249405432516631285937571216907667178105952629055369959043368028527369991982943722353660546296931451915524480469776470276405727563201460126660440365212364280118883308438570586466383272064402852630904124005843657767344248696441550184202464351804382376983846295744505841890925924140693407651067981121679208510295625433687518122149466792516903690280202768383215802502340059154687483699555311429226906862559913105964550931814573810287309229776772506543075989194092692180815336922343208890546740717039331967040119311859210092698091397191524939910872905359233534299997981750197468077411017637223453033705487087665675069189478393198638057572428510732528909641302832407252344439831144368600288112216267487239822697078049833190354301396941478984901138590886438359971261288763847734907371403517248818159996888201279484162767480833861648387423306693563114298227327606845780667419204890418460999147283248662656563291780885380631867558055070651275378204984144463140692278376127022211005973222445169187422510866950669225596625769560231020461162210063204784607781653728442843896030288531288765624883888923508449052017672587004812323131702208838184125971631679425052850919419631812638887237354751690396374771500870150266280013299147241332988573721798408132621391867849218025832071542072959909617854593590422297890829574106689504319380108586798428990967479033306850091287658654261224302386655169474744044820102811492203389861481983606496470093376235212317859146068046810842983145794360516371364060174082834920140954826429295758532162280545268377892028316357537925365427894575244327976492023204910776719427585963800472442976776533833857651110494217662983787052520827032751366248225881569957537391071986790714919524272261378102230701287005331917992817388580871275371764551685386734529242228270541363176373249608486712515557260725727811430073314672928055299311402048129160894935100616281591919305847517090999438923031710353764399490757988129018468371343201859528179728084900679372239445486270571188196376028480173341840151205284512645388658175568482461553744550492615072817490582930260262327088968568839477079842415355297341419997682932092763295264788484251894323376618201938819800612233032414279210046560390805334480199852574107501681043828430507717953994043219035940970911151740856628530548331756840072587643752632022097994202435757593525473088173656873375874274689751870750343464514029529598575830211440921686163801105944323892335126895419489773726461868276967627158332944689649976462289927328446062452994528447559643721970858538683233567399794436976523709036706093490005029975075778841315090782472362383841026444938865226599609223404691212240209089239149906731629419522074031653024516061046458271968317376044013572975128914954949631875014913142266134320224934953250385522520875259053616399484353823578431910545390706422667380506726222908556630163583052112267216839917582486764535305578722252124430875198284309175034691577843834023663913221344569335933334167399513329653048274255159811368439763468801392061223651172425814091681216625221272775798202339252911031085682502231090717226388282055251850137760500206181317584837733110690734615535352816065153208462573841714318266776165729893701679719714952993927323797541039931279635722539481576081076345924200768003182933468471616762704614043543710422401239019388596133848296045104683426367022160363056467615438587857073002967366016447939966625306213290888204554922137903362423561777035401296613190286620813439485333167930604541837828467182393945020525884114144540384646908894890899421563677101471877336943231438717286366853640756121796917549179897762637485968890501115520894177911227967726644045701505113305063722568305560361228465754207833492258360598267704628392419172160750242445936617552280335369746457802978699691974377317136446474609609273984039977990798289441402451997874674289965033160850978483743585798969019685621140819504628453396662275589103849147149816538965342002844432160495300007877169370742425337415277991321049317876121797464399374680823835828666296188753648537479162933606318287038956796580123254494821952707958442009259262278271938100384229370137848439420074889585154399805972930801268465181972407871344771849783381481335837486139514625133656225682015826606825853570980060525654562412000577144309416786697352398273988998907869464772499289852804119981974938493256130443969401804287151276828783223056031332087022590974898179513518558145150548786345933031130707093784726085902374918894980874592868593492640688813352763226859513910989640518547696634234039087355355266947946904113113496198899145748006273416975510054708765844926650137466706049180739530766340988856565617597298998889836999858821014310025326457180403203926052771259788505184779270812542772158155834523161628359105252798620436596641223687081658593342561963646304149924881586741445343107946153352606890353492424849116998679027390160997244152791370396695041075177774481728074900652251684657435783818669633248384591218265660804597113271920081090623749622982025096365156177856052116660585299302579153868164860361287445759715224764376059383055756056613776081930581708275258081080422825431707308012086387666022564493315515282989250832913707100891874568722273397029646466450709269979510795453474464939488657052161607985613740935767440700413040909283526035582332790256533233785498772802243328939121287090020643065143738812562197795373109378157429375411968247750922535920908430982452886993743321049104470801867602079983354000564431508473117155362879748800013355990483333825119119121603928346745483329775528737649624895012461347094193682083817035266677115538275569296481647315115783926168205408617922379245492127023129919008916444496485355858387356347492934706784059895867762208123642147964210525513861298741605245522871074071829820682177382165039976895952012830203585561172233243983387580924017777360541224548463012340527010106676351641893274844305014624576741717838616290694259619877546635564355052689796791647263258610913421350808761736936084451292935956418069711239948323608554332175436209725522375331584455464212913115304293639165448454417750355789271301338182467958034829122534977762158971639162967209178793280782216620655325567285873755550057545617374286475354019767512428300269837004521330139870816155189467569264938317489250459027119688487405290372863121324294615441862670312551433885005111737811615835216382596359087248948682052083845022942526197473517735806475593269685969546259943007659494189180498760997624984040886334421728945934545976775630508121192154197467981175269681877958900002728122307383235167797053381179256899007125396468300668567361841711685624290921363405739066416983933722920084764235169322597263529870050457328284441658944702031039410305158665698826162051049873787760593118444783570734990083225661821078214995137844473243172191872048898620525155161268895884300216994457865150650923575585675945359694732300157811435587210472151941659007638982521743562877280185282772598309667936039387032182971116168232154419364617045831377153973100270368192190389122703578473440620290138354495707484012600468953435395806287721291152231471174853052613391788193250098571015950110124567431223747476183968552078992180192533728516388196634889794346022957869152721575840462621776097151040798774091830092083615764417726536786359966634151442673988871243199551285252347675202535203619819519250929244952703927360610923865945759203875536941276618400571601092709143272013170003790911174507720003190411485960042370629523228318808535574788354487769044982757163097384032891935370724236722668193222948726455464994735475994728054186856993331582798125538583699027027231858662770044992855487516047284940116262037387916656096632199136348322504881492363462273299510119621521502422517776486947894537068511084282545475852355797605542354720239551240604445473323510169009074173808891717703124969840282588319654414010656029034714162572912961694684791637299841495741657432547662046186058048160445818780021027703124960126394172286005476361173777326534954693367789139599445768764209404279060864836474037282410345972875155268206856202062966430833157961465202540107512502858795947159895949012811981895524798188545691997762170174561983645598439724031845298959270797025523756272662303032485884907063847400929979812732266468730803456675897837464397762775365818780055776231874883893186430176676767164831592024381601972768659898371895802306273584607526598260631358444790077847662602681580538603783844136549149459211248701870965021701064856792277275338061887716595901651429201668275712080571088028158480094045529112513328836831086762620001173366421773507739972960125089900799952917980038979675978151135955450906327886303783836740359773096040391245694349726261820179886913991838845336940421653451185120152186519873866782961934539268714036055280857493855914793187234735188102553634710834276504951709685966507460202775975824936628787691998933167249261557065139131987417466047665475298618760394219014012227775693091852199774689270938548784555637088732593870533775050676198701032804633733580584664239172128359990129137518054697377888821485257531988176942077350151911383818822153084969640633745096433820740210360072533758094051810121958629754153517684008720200305196038016116273856130605189007163650509599904787559504710392249128739043681764700860895494098315423017807778710312534242551972232220661403187747967871856249076528815857978591958699675684100669028239318555212468821485955287472027800125782427672627372375120982242889915360428437166617617266982084482518448179876990202240188447355982012512191792646796522723822929514031295438117865865877747989076146636723430032006767177199328145384621865573140316963261069175685685016289896444279115745090401032128223081250582036493686368324972926428206120098216968775120451421509823617593788135144912429991007301000105772046654904990538133505831803639975136450017834174844563307132422014972367087500245040598666066939997199034504683552933301231430426234326785942360729102320151166267229198840066913512048729330822064849081736037770953382446193493370129804476427523388498183176462281744811265775826693480337663987279444596904570477092854115949906233548149759812372591197630957327725469347011587887416438319794118185677024524062916444170131232961792375907765129756519203139679801971736030726769745457653352994445150205818229183808307638617608183656153912280624989387566208962992010404889596293884323046294358214807637359155887645859623183855973930178978049005531325428201650072993584407385956207726829688804179701418005561280774792384504144999463593983410657531749393717025702968154951436583071485938303795740937850918653682794765182481372641536654617707609458779168156796790911952899144750377935691782747405390872785617903794082684804887303413181267918605592783903167622708340383282671001212367710831714273032181021039908220330824238856370482127818760030556687737260098603246636863235604543798739770692234984674776088676099238700879233035285930673041932276568106589694141691467020679184285259799848547273016486454002871550644460202849732953150970641004951782868000043751041833820368079683603781578237196167567649283424335866599023954860875310293639126171126891989508499431913590010711511743574328891406360805412021083602451888627365741087580748926119426645132602492161635633181672557212577879771122248941704148003388426130866779547164406116158337977214707345288819624896065107941926524191682268271169241462071430712334368896908911908020234065276133118624991790695025580305096244716429758079241425055502868052123025029802228843549514453281316417349379489803650773110534538676112711600373109553722487413776487573849893525558961615505309902162889248830638988879980259515315487458576318224904374611900377699953114221020727152439511760564989866020837486161457703170992651970607572785889240788551305576071289788024780417284148457086479654461663296050879268840099074597246447242399570284153980670826149849381571884939247305186669906640658653715620803022504572402938356499235683950963071351124519335015638127360839900777780900069398156620555354077375172095288748611188774426222742410363808373897143770556075588708075582526668727686932241889590584276762316577241518776853077070231500638727494098289710111018279036573097238775520149321126932211424358290747806810769612415709969653448900536025536068857178631450804168846419247610598543927070667046912682958121924613800309249108067947263793851955271303596194531745687251165987121159987747294208195762120821845443869095281098198642021123503826570338449617433073915458217069267898594905094907478565696489897237101063309398289797512997935457262650318501825231586518828963668174306382706648908165395275769580011966737293916506147209725060977701727638872156010784859917138409083371557132561437253934192138147526667027761212844079562333881748986270178817752534009094290948946155530076480576950544751339598261944673426775485842119306815506609880692968384395844998091665288184145217982775678833695175938446506801011106214028053735257747971003764355337681232047324485673998723954037958337824306171515776091763301538527476145293819399337187249780698823424726622101573123084219325905446441443207999754373283081246440002596871259468936943324211494377205978536257253511041466251027096558901112582831345006496664027768400604585467579583121263672179018333369603804757156918928310479098466440590563232010429502590091560264273797929196084284616968610204407171562417273721720491492309910831603106273497691735952502471574262265035443732887577116987862789726127161171849280587096725610059612941193484393328722617366955994823781826767592476921579410391640107572494406387039463078208912082515282525784908721893139745453124749468999679917204869712557413811533275603281245533465621601902011443835014494740926057406012613892058405583532430504992986679311271561957873403216983534682813472035510323828074524999738824271069498604481203980869769099017071349075549825298518565205885299484958917132825535264686487695680568343904402972890243831454358874230949837237874237548844382239824968939437479277631026218489042550592377499712630394762642431021026583426089188358117052102572202780939266134118269887260986929342291973180652822333700458937507616840051775459874744114844709958994098018548600359898982226526715510793979142600750696256764038422873599669411478003973831992426600520481448271805096627937834445376071843795580328469905937699752989470011996869607323428606984937187915733324780928754286764660863156303195281537123404031114641561387967210523371579128573781503779708862723856164451154006008808098529817954334224920399537058113848846171163989129936831181057578381816351791824818929023536251547744572169335351436550425603958724997128119717230981438470576193978061406101028490572906551993494709392720873676672857277881748035722716816418126155187415281689804547117676114753170550782474788899085628556750173423486055928472642010479544389535038902585717206336443649740291157632032772788139661113354963790620113844065915667422433630449096901927552322763603932181201188974519101112456279171067005146155358738300400964922251557636820357310385783595644923473617113563529072275093554355586588170917999755243300446763313720253712630077257382293303778988162429359286579036882430904569406363032278827755957864309331621476115691622348740481286420831977026810188951862861860015988083970747997697955542256306195626470216469056808952130296180534955216469090473852093768518997921197002630226584623326931849645970477637790588065728570891051102987633741747082696798764221803182918368359758022893148926263455496243032331555662947259323556573319350903747451786945204301405505938236116786678960294985972372976283120259291924583261327115387949180544921239845735426435658929107804363325892348042895945657020306749240683809911254155332512841773720941549098244724524290394380288004417446598476905429309032173144371394935171714823766018758971831115670316708080544103621995774981877534296859546833703136947409220482456375374338475694802814474050309753125245787742554203021432208368220203946856919650315407986949579151281673307030896802757295106275550821407691412166809804864381829578208535950468150351170180536902250020589872683651272870675221580983145580259829766990800240233012492206408003354015619602332943738711833414005892323430742491760941935967246256201402248336369443979534064756405172102164725857902066712982960255221086806340148687666679676396712614063093916059905172696822755666272966565744698633179190633665983591549160745283799345683982172365091355736518370230369232057579241634921904836268881969806167436056784013295763543314114997996930397108090032611426884760351244152419851124788031102091203431998903868098788635533071880926010292393871872726288446401437531268252425309682913813267091225856755435053567656703071180702611443677537069577164788271399163156337338938219097554953278804925667991757829913434488384192886303942074184053752221115188377409469451817118686914509279252830538955676402941984752263617811230347847402071762400828309254349255346691239761591349170727251194641806346920582246015117142844813119712701129665956867915017337745561277598543912894570325735330001679641640860329953747851400464963434973615693912179932370377452248256624837602348579572705057885652893169127909818648293263726677496954888875703901952481519132001824539621823995259357770007345556848983627150485705894088023245560709508088313627623910483920651719765831163241558138437947608431991301201882876404547710624557380312280204037534677796520998223407061490681218728231052135884616700630892455486771351736717805060332663952260939737884009514733337139110501249305329474288251266503112182745597841729597401701958347698997072613466113139617182313041338425927886185813493948694227216015335946559344780420596190798348817851960715095105506569523079614162924839735700761880544614455890235416631041789095308698636674427426772136361841889644767067982819493481896595713192894201294921064967442035963300484370122446082329433705716737000301241286970957976463972692856612654482294399250370380397315801683302084398213728182440741915449129457875548227377193238031835366920914700924680456700631392239120178068594967425488560580969526792375150036920807340999250915774131806581268792079699525786237644407241945310269243605090165145626918679613563042972134674071385763025220313384963379149296213686464130140782295551372799775769725533729585145426505804138007337394020125314126031289974787097079152771648838445363136377079539310253096611493735427696193919614726666894834338379103311713093660262183097538630471329742003689067412956456583106119572979917104879314643281515387398004541733299133296806770143208272671065641328603345563497635545363601394533695322555623887772141342150095736143945514339976837548024018933680329706814297087063045696666465387360350909281045778190482736446350861438203745902131303842179664046769039744493841595648578887424947480540024339935550547037924787245207892232123606512514626171241427897300700576794064789319260433914822132828153314605364370357206014937118754721909989502429154570135569315199332323147070920507309144577000706569463182847931590500940839534401955702150957486146442155152265297010614744266878521324481661725985122832436837466207935585240418655979349146158898401530661688120315085708278473143151523663358961118443674730464123910475998180038464988395211761312494151182889211540437044765045163672547995423623256978959762228554577956059380983656962514454524701810864118637307513880211448953533642030303689744546038251532178791107131541977270455575861139669822415878095214683695052188312498935494249007183672121721640519698900597324720600641376516697753620907700129292847352787682772746553029070699823503350367776919569972788564010798711998649396393884730518964856953920276904807328264420992727847885113538343922497570862125134050231499677594522869815188250848189395022939682906685155931668646391139412745735602621157120854465027665389789716868152469835987698960874863134149362607930396323507802224254921046537802328306959581068929712519289332737157730345541421584343508522888265307414222017561495310142401021292595882989618244939919745867772410862075647874040540666680966475677635664842558344736076732630877200920090369191850371918950595044759153354137574855896430999566510300511159781089187020572291320850510049219189317416284095045949051330299273516377684160318372701851704487392001999457096065999867338930432744405006139427663678704740320910111095804187175712409947352002057307790306896671285841167289322285997539716839007884685488204674757500715991175052647420270141859430792347342195773436466079844067892939412486869696937130541013309282723565049463914059694277140834814459707111680413637251509683593074064254229032866271080384493401671345625821312712177000601913134092792115027667979939421355508232280509042695968795151235515383598949517679282360564171207161560482879247337957957151308754381352288039423481471297934252075805563361925157045881069274960818777780022472887206832064225345180158024218382803335119271603263744168485286249748602836712502202245557389326056748260391989192387980603519186399653407964991567542374500751400320384108995939031456482032564451052884750867665910398829033571356491128193683770255498722918631135559289299555521251084355601244806093157830001963234853539172580522291096796196542591810761298646221028453852343394298355234762598317958266357847197062568737598904641920190147647332689221041990506679424035580149825582363958946702636486980556333111709530481613876702417350714401782786900564768102539837330164910021226472819692738126992628434899660861355543924387920377497500017495461681189217953283298532228424555007327340215061876285621047924587078809501897327694561260939298681700039831760623171508840757763669068929862267605326292654629124171969776759495646809671803533151715598400010325313627566570708816685735972295702923587063470308763872083298085964852203799610179870553590526506369650502286583061302216032327945698409612118705134916538695300572000279679466498998021010982164408716974172988862396442457550486552617936555931528311429828011423697414060759738009933442975701655571481576202810155055071431943242258131330595494433195190427450625119038917543618909115528618938583490962599532623038473923248739011916973234876020851105001232176511583741607538314962141094415226872837973492459488597164290783883534573658147708912792393141680858375122879670979701545972606251865158373988434881899122689785052419693899483621638211248061161147405742539723319376791000029932572806041411179238789124114875638912899708452262730303582912390521860417605281709492546196603936978617240858281807075295719652531921539986762156687882099056834134963523523730403583909606100955445223106758261932162707770388480988325260036364962888162063743839243145320847446803388954339501547229290078013654882182946603465262857670569018782289651671620999875322983692240373374034695279021640159566727992464875314227544243113890121300405562250603960585210026057762004244681799662774047690474260264780711012828397569687164669995168875333094881104295918978492900559676718252081439760868015274413519298335046437204448186610471893785258031636870773957194461996133803924579482589467349231851760957008882923371034152070056937716190378852174551229935857530083271243694018945250891078023523333784741613409696526320391168659807066535786132966997968691300384793646297821143758538448333348397904076790686914460263964028985840369851808709608638969976400153882924641678138077825871233464450817178628340717849359664652313638513888861910777183724854355172927707765018208540251435467646285828045258383813047348800948637666977652859133404048427218637667785940681685379272302667869443824946000814038275639353652693085932455788466268468856251310254825683725876106103606667521899679573151279815441782570043735338548635922694282389723352334556719978688500820129708548558298127207898837887770565259676303510192036422254627563812839303472295247705666808426550604657834529891557998339094213388640439751775590947162974899247701094403350641410311176625355602469365233101119550715913826503071347032633889308008679966181383220244370864614145795221890890340983491937289748853726774453279031964037256392453807156300182178360419673857882929883326459670705026792637007421704846988238274247873967057052510702046570199571618107403087057467202915900811816560362334974535233974094753149107114223583793768757322313893100242869241615108064408557808152161053576994996269027846761639581049884949487489187843587852985895460573929990910006448328098762637035131241891246415903690916177573073212964109126871732919000293506856170239433884938963675046617213101843791601150940224482557036667853141692246444270789721574955971438975283463258455679407585205470221601668145646595836346431684845345382727377235402736669940517891348785807888587050999820821616016828813101860241919395243468682466048998394116777540060120593080603343831390892681568653837742227055955777683121762768923261541180723649498628536374828841440853050838883433171111881378175513059509695216031096417648504555739297207328592389909330061854264061056664935131025529419717367961716283476838905774017184165287261108480988665782929850457851258627756644151540099321757407368292999285628755512091067819821744615151160820878419739933737788159730714155890959310000182888236425221838617188731210042893175046206354449031917239364517044333326516799815890209053393798851370800133508561301336493281620862439561620911430145428456389279190227951094617196527777143484083674711881109476462597345443614920791707047237307802652620869755739292447301490330059886727212180428787298772673390552610745963703771998970837883961160338742860804816449516041135587159647573643811067994372732927431739898826967387793496891331087544662615308611811355182550313377584616056998839759009629311485334042298242948602392181776675554238675344869224110900369043855097331816656730633091433026217072070326992897437735404120605056888011637960787062642272287266250057347232806394487935780265966071028493822393409734239168994011117200128085974709208896063987219592380049113307316201800892103080839486446024919475074415802457288738732613704731117637583577519413435080618116722904811361107654309510691706829466917699603130714194282913010368357457537343839905485852152816915879237851012982218649046430384185750304684031016857582850595939564159570878182054498856365139576951527794050615305631704499562089630914166437365812384023729687977954746220617030035917546073859729923710623366939835517627375195350435498692044616051836512157585763371287036411859029905315722948771246540246098475510727655304829488199491572016390457493646373282556739150632073135788723694268871670404426267620423785061736331426154018663777003325038304154706139510377566918561971296251051888408172202846004162485063174915312706339643512139649092882018710759398286051345915214102376714054303428828575579168555105528642959101901306168832166689662939513707382326596067509144851406423223081929743747161182543260999683363828687465419759536137506940120570895197874952617969493160742854396688423189981506840245100264437264531997159156047430410151339856701093753887036241071115672022983496823150127601218784240533742776509510106096963934103808354581059099573969596528787284227212654604323258363225088747867605141462349426705818485925277088107400954617967646791098861760941808719568736576265001139139478064670711567859109960771267868162114516142221854882086981316768545930633847416521852422537634892956787882782931732724612804552622543838802049932114321489434170074348039688531888757974372052101527727137723464909571099820124010271831300783225916484622773790417341711174799458210861254454734460451413582447597763234907526386956019787439409400441003174921665136546673147947561360745784997577587555541856417071566410788845682129152522699404031878257989668291588215023442446787268379311032999713610309423437733241835724171061674346067152210269210791395804848919792393832110221464148812404986018003796239958063780348348591694496668667415710076893410639268848450352851128852023417756623470561701327007260590525401645428217969993677435787449777153370525047642764461583230120078220478164988766399606663093505369681202564443445160992125170559603556081525088970518101885294149333329695716015984646083866858547521159480997828479793350881045192687035306199065472687691016303463846711187638295378932200442342401303401700732147801816985395148843315488775376589888059850859500061950600857458900091975128718929747130486578076586903592676075591921090470491191148116268378812411277591569122314517666238327283257255314376082187996406257470093222285398244284451188706154683425301567039286836274910270254108096624275104373284293658524904127787398851708348323889428365942519028777454859289716384542762688341423927260972814881300786974433157497169491091388129626256600204691277199606277040957093633861271809650672476554385924915907613656393962193720089498169940029670341564937089147358714315514146314899020025333815312529074077416342509453441242812185221639288575263019097417319425262842920425265330745577868811898684080801181499269230661470593132891084736812467128863036779541482456609499751961757306123654926017397202928942151048170290480667066448585194325703166892278434845189713518211253526057691666673815824261623597316043556605066177629888166805429570839797615939527956767873107451096089113245396528429723840463868393976299534117806907414152645573454811159233061852987120027453973406758008534909963473806928770510735448321750972253205222251282589965830674221449152039434312912147241223931074637170596753428979473862675636386204197919569335407076176747997234620516151849366824233300976764345633733008784848915494666706235152484473024899298621382503416829121717644746188994875042553150144258153862417481762551909891267783435706838672867143905502891904061651925063583760003342504739048306527496847532699076676866145419291316477670972404969663234075074758425907148230556683453582004755951603636679585675521448987115770277632805134579511106378247027352331094657976345630703150798023160516972888482511026751598522020902235595099006968322686642495200539714918757444156612315944322189174525845501958061567179331024567181611164354369175498769027995537503424603301518601211089647339434169934335538745986042806825795003008703197565093235295318921164002322456114992360911426589575567523382025888547148810889507769313710035808582135486030065920928057516741467651064131947772014646965455779110517506176724953421037083758924498705555301720969518377583956762706733523035247719054471806357186530900774458182795785341096991478851202337845839796756119078116195514672859176621651075945839852603959020986486916547188392030078902362648419427738447978511118626648079666330183554766457231931291407530503518434889341049880634734288621679247999680290792574144724691479067815574145325397544514742513823712159539038929455814481431875917635927586908434388898420586669080654243514938999840390841190734806210428671521341787336152014953588653012110441434160018483537454218142834269505488816913171759511767226617754006463041015124902590708581126664925548208451818020652369171936904637652598349131255714501858636507713410748875725002516110936645119627542812276741152743818633393454811051312464028539003413228096834208442369220473380916160160038587983683306372155283475893310319513057337982447653208085170700035800133506033563180028780144400670038498656362447163045636760989907439975247459863527729223902534502971898113675624289588806930311835283025688963739310434660099178091483583381818048570361735822528912978051564826161979276568919339815395081886040602018885382455852938312783856792329906322268853922803486420707334009599717024461266086954741802392522307494180416007466619084331000454935816652866177698004456344343500515636656810468326918011671460877594858850601944501045296717667566492115187324430586154605769350047500578602045763492881270456763959942316715732263637815378264069330432957710853069002681843659643589224858724396778354243607634832007688495727837732250778411271415302653221391471373903990640479664090596962401658985919296741892814996566052705970020186830813048117693128909953327936018343135752586526872577547806946958381940321018241702764642972127475179321777381374485482624990744785324941653517148465682314712157384284582582989241030224321156745628796226846588323014786219925498788363678298373167286099082894127897729964209270490092782680345304074572316382942121589417822223750710901895005135619877679598699184814074188507392674969311345821304476167816854104285200598401250557870080003195357426028614660406511907361400131715128875138397587481410368378926718312278992540520302210165660416406097512527890504430713733142037740277544065159928676112986588500262119768056841707246213907974388929302572350332663462273223771912257364322568008363957087450759365283753049467719901225166603521334602927130879439391703944334708800362302424428090718039815941080482684795428682443550478442177985450401434395487722267829789945798242812156741768250043350704670656134190951510593026064639327643490984480838948617944388687752931860660901013649261865782376357082344013759889895994934248057738587108967944346974657207833760488201722333481255283344103578358774753325977576449165956999796916496883304769528752528020951561548076917165401305955180645016779666720996198777503860629938054917090246415788386085862812361483547963085699989586737600449647833204857289438692767545516577735617981210448761480623427690001000575161189313014768357320288828183504915308430306645579061715870459389426131473861964695857724799698024471879156544508674960916409286273788373419072446903476874375877399193916708182141663917717757791652345940432556675601256344274866292296418855004782179345189494748910050095709609872936834321427386803575581149577124672248287130122612937177528539215325034703668048980547261906837948564307665572179781710992367703647733656479868749054506421206369147242299928682978535387103866572037613379193609909524984045952519702474764219291665996202319918107818908066029686821910252605750999587573028127292449213320905631027453314183284311308317821913295526609559153331382934542401220200093258670861803418642907665085242310476012711677931472532793815886669491534036719023781987019214591774347174142643486303584077887921973910745930099683046088398062731069954965007294707840901312689084760752334073038887377264045789685692673125944259997511086299849305010483508837302286403735579797785070219257313700167118060291922532387681076670795531862550851241937831297680219893865703307775048696702617789929577757386335939840092034596932516135571835265897165459229218872726469209223524221393904433355841432221333264302114029451179971246881988253421948025104803999782927936763717252145631711875007929706676942102799947373859053855407288451575667816511363612106721178797190722296223260907376312213602675363896621321605897907816924071526762007671404883806701418779437836811511013003940734764108521590079687616890869861252014814954706188295792430890583042592134940064368354387017616796708604764171752803925121300131220695343377790991718259716266943045668565789734640694133211283473883725404817148111676305289799756685743581267766796747868538198572033023178548630466816049453671237837127753386968359259820068334354075227923627796575698480999357575047250950774127986654950055329945260163959226489557314920397323107377815254020244482809973033165746190937825493184060652521420468165787035198923688063594380526649326686943295819763503990290627041421125326811369113347247935096497927307096865431563699666494845669003145847679518678118233673830687627084231676256738248100810114659420516649292987323037529214088699048087914243492402711080041271941997847712981066441881184684214275128388646315499269324334148756121843824749530807201071406849006374378176339528162740627700999653656885097267432719367005109456850793532003734719496191793746331169351562399529169288231198573983629973713318729985649029196643851863351250152042337924484585393946962320259680866389500321463591150584774315878279630130729832453448970579273780355149722227582735985711588274300495196829747338036830955983369183709729865174339807817313799069482386096273051621085299272857678893893354536289337429274056059015468237060183790913582610159192585115935068288065099115889884850704037271943407660302358334063588673969670430222609107487015426779140935644858991148751878655323958156257681261119144706332417954378526220185490723622983786237129929246299136507840475308149325124809024840146802044720657001951204660513134817430007551082975890157029607168207608393146355330379741893930711421508777303466212279069427876635946496291954608915282870402270146625123635775336594272215404441628922409258326479606533199559746117555781579929869482577002539726605669615846526390053222696846141015458017020181934643127217477464878029922473259045284582202199575170952698700935370127434344960343359666069323488823042920213323089475996761816927048713373770829073458217516561421006610477720456793289522584724112435178861969271472316379998157145191093268112145217241588302806922583658808353909745765074019039531441897728855863804801702916202535797974190740800018564817536351036521704005252201050870647889129996653333152713154068555484198673415279467051659592071386845198818381967459403344249545154445089365677367054218279257480583190189742125347752544245391196154660431154980452233740425964195154117679631083231030970820592427308474656105966633881161040238723502758116157123540297188668497278247089725476223772578302196190095845603585091511061248381078436197085077343949040276128402642265678697820973765571645517495486208345211762491025765457328654705314583877332921163094106207954339984143716539521535508550404053189065517399715076184144289215624568132870349921830792734645889161398793047428692455102487990798443173032122010574716154387122069392818202081698943225246103664791124884132743016310200606443287368104533615322640574463056428642026255079328636583018213781972038900700169736404083844026693653669940179644517859737903008881406176015543529082172647942653427422929797388255162840184945326314607892480788194671812617198516542010297057962125959769580878854102311951182510388109080759485079093713333604955246960641110833256945944298746045296036228909395672620301502326745094121172297743586170530007344505877479838561442746486205071171239864879590649606661546484434277907092982381745959913507787262619170829150230634247679916381107629118449165922731708736439735614287809265817087195533263426512220076289504699866759958173874862795043975738095963843941671229249196831000615443900504911394361440957462935994053393064276259915898869756453760171516104460021908857747417674022583689596680667762511438795594148251954200089454590447668106602705913866835832394874901802948554876811732549810171029760995434748474114271109015856571507708930584416920233833440201164406191163130202288721694763146861172145958030850000467925779264110598036869804563295095021382790390324027549146587227297179317163424879764478173371905165331913463063385270767127590451435805994779376547018152466715219804170347010828759271733602790933632985374544918387499361284368526276216540274281218855876042356115978716195890120414777707320868556910553149417054367464849392356961326787494241960384036578607483649687385469168841574366054549694635247073767587620877611277201583992407027992156344531005063186775737798328609572777471427074418937868649193688722863432087769240311788969878515488086046828127417497269940924574640045262292692504857622392145550610342091181730612370449609007931643485383242741819830262402710540700636977124495051299722987094538699239089661711982980695460186662463435696560636792157290503264721271997417300497372997537126738598931638907296893340348359978000267012349243677421723165817621149578619505507956914646519444820456447825044101585519610088477794494710268999081799112813051896471978603331412241300551840610126503021586776882379432721249688117601132922638765900258976727839446555439486280065949904967588427371346754680612024765458555572761246965909426045196030804758886042828891033911139821617328569935227887970566295741321927742910764919637349783766594665805954959999288270336193489194222964028967766816197128539048477905862479840053730006865750274842945233099088301930115071524255993405762350301083888401542692725302855123171436402017343928860469117934451153519531092616312945810569820778860495280022330609812004424713632285749060864723670553285151761891116087791188241928140164696703661261618089213344053779896012205297779953250456838129224908216998897115875707991101954359835078011356939304291022243880933468602899885204495757622949511898603613709849908144954982960438464151820558918584753661238724399142666812571978236706020275999966779259472479048023085995277659869238874537050567702484863938034923086278056536923890365401318675533574056027834435945120527791913074143882166460526631252498902679788245407115918105318830858425186677537505137380965435406307985459844845954986851673421880521035380346844289928495351925769152313479506817410441660365668053446578212885461292370082049695432583882005419764690842559232587972649441378235024914466465071680114837219363459512357351491019941722482116155059741096836472602149704408114716005318984689541448222870069393000176583524933872858399783506127974898366451656338036662363881403023845066731952073201625146510424363955260218927663336835152060050429302110243847051683657998907999331037263475275864407014050348037832540687307809523389041223642320950718043779527022211707482778938704367512704753192593494729243895738665931722309704938826667477072046597784208583390418941750954115594893736250058231663103526773257194775881936572657937331613591647612985717414670226372212877289228071467910575219701852089051814522783560707367398960931411266321369080932680564080122506983808228735181848587638886268808078661035975090739441111463175574792292543044321807182288467978193236778734769069343649250800576236790660390350927466674967755354542750239969023431148730412436303167580286692024919546899062518735577250560313235414686550346078177654839579010716397549126141836622253977869935731302595832025735441078742830676585520678182991900383692618482784948599981780350426906710957821891524803147111482679255244778823002935207688032517221455008725153740842934536439272520538623844717534106509876348521074043249183508647993675878682293694846501061017429933655076313972202149060457061975020967087614210714644383863167711130426420816008796347722780834774494420065597744215172089358397455585548438849130774643319153391297908702173589469666422914375015205424074072197348040018992482897590216997608319582426508980906557552100084766187130801203134446472705471039884648389177646662019135402143231460966688629829338524744178279951520872288007289421686185601101283515478078241375644026510944941818480367664754571077619250267959305321628803434167684916311675013619423196224330956307927355085602307284462669606161958610704259631525067780186115450602338516773044940346340006429689508044220927639064690239645798397709823121223954850491969134428676414153733764450195115934963603534683712628622617654887052100895878604826376400219459647254762655225427441916980849401431208144922338700777715101594931307125511645331786566253778665790986940274455343949554235426578705896725821741269661324475240722010389207022764539690155476541609325735826818847051986569137911232581960090579425386112938714348629362492609290697145857239851612187913492123267671987099469649557650073612910877401018955751494322303025837093557250151871888478943999848138385714730934001487963007393270091859623710700464711970497513922758425624966217563067387932156527418842558870546015143755216833230264672604702510799821533921525449980002651541565264357166725515296509382424501713651140305252509871832020318327167963632411154085880046098721007953550015959306931095457806186010865078883442419528341639114314715646300680068493569013308156381873298671353700473657450102372929635080918070363969142554743480199157618564175006249329247357032347129546167119678163373032922873700850134907897653600327165641184942286040894107287052785162345732538956132442872690141294065287020395284645071055549645766324015446465425740865335750590642738988596848174405215635955047819416507439516051934106621033055522526453698446167034295474695470246772406846073080243075078426190933587672076913821453242892385613992562849621240456722501145431511975045395509276938211278855260189125177487824094054804457785676434997574357869395299839567634535827267799237532118204250151112229070799136995743191196576371425899290528552888263717089216924582726176783117221903191948991697127911630694483256264229427520852033886461337285401336674375360911393678773666733466636618967173249516670812647103510120772345012329157867450199173183582907928911565022991109352018537981421630240824882204713787581139271143442734501074525891391675096441821935455842615944867655796618242450850108698493952515979366561043481931044935048787503266623693942362370198244623118752011945521898675125027680488105122146088393345406823906228652704865243936274131699868394768906614766290858075932401860354151587637129971535048536464056059534211667220707945966372106712477174132560435282581816767280620101056140033699381364454271828485454636300340350486210352741193790153693920798340881221102134421050801936819405018512969388515920286746289361380427645593236563581456602950422989495135000788018389376303181371866421407498249676184923467120553947895715219178224069037861465660262079877260825903058999481228114391592322467359444036278783126630136775658257985588841710129722194678746064078998237574205731909158992488823646522084565085429747717508740628796710086858532372625414427596652252855441773386601362519259652132589289053048027301608376040896055394238260009822982597820781024607388678830362876935109060304287541587091079074360091669992431187748167635393024499805371598932477570809055777039112574671687467101069204819857047878510769101565713007650926660405438784527438564064322222520752682491656895877414365908048868497563906863176418441716429207913310786650179111313956765927055771563812080730456256015684558380854863954342232176368044896025249324635731715786738180143853926070048964511599384939564484988935765772091241260179914935496532026687042180774306986738056646681185543749787984834085514882879321619036358039375760510340672026196534857730510385236283986348566033702472442918689763643290673710671465104111630804324152481134023830358524983427328025438225765463887145258498306743722299890781224645062127064253731787268508729079536535613296183867744816791961427061439074765720137473378607054227553249429937916886388055793499382231425254898930328471101631302616840550488229107129652082212041902345227462751599452474372903278222609824592616702737593306294876997044104020427874878675617139493662120920445634657273830916345549915598085280658262400297314008481023154661572095489803503969236982928512866073616765859180423414952303014769299876318154797468768443773553899158648920056121170330926875193846176641059039268461836653339334779902531662843312801675625899501487813696637749016692824574207274511676809031957453282794876344961962669648384282076526781233693513186213116150372403368774148575415048621429640159969632732924960785295354379824365453014038552191472587086358461980803091006726124300344958386835957125211333208240078474249864308279792167450730902980818034201230608934855097370818735458937566352678000459643969040554475608789640754855161986796617846676178568898543264564856466473420485154763090206413967736117089982014615280405647271918167537601894844252531793319782345591360311711188847523464687556604377044684763706755170451029918161453857019426351327863013019865285394103137076439552275873871300007082535094600929784773468713202200462283543610168616069884667189350058897519974562745673788513482558548485325714735391798516691263239341733871130673699645256958863247762866306774500621621562874950078748690977849526049079560724203758326525127835694704050583238315667850781476286505444507394260761696869804559760334444218061528019057507271869625221381131251852757461060405277598556331251379491516020920672379289074736779344324121960023442457958582008909299840252895606343312859778860645004594240883991682979864304688694046938266279052079543079272086958242972415976697320635761264948691489526879338185354589522173903202938094435258322272779400317860957563197081997803141241333696626655013518744589843610851832577078489784231329131949879005399924233425633104063492084045290734401138838800917485565748240115193469752919932737715219894409072611769037873685006703824748924297704880154541539014362079008935449176959914366499777511768491711880741353598008643231987232763164886612301803185469275084059148206372981974460187664879394901965676891105665557099652433356158132346519307220399976842472862693883497498618309577518996375060231268106728816501365591151409006534367854989208583857251976864540046485422590597754599743150875874032506636801398453138911098625108022098189193316862381364797831780787844472555825344852197840756910060962037092673314987001322675088707849140498896436700635340591738770535135939648641129339247665927686697953841661332703542226296600841945889582319797639992546423325486990135832398328630559226908021826461730357741714689947608974369103637594711732553705905551946976412811960734464363536776712948604464361930624183835993540373218503634951320261623323467709248510673434399105696586538246631745185535229575483639071062874530148607318256061428159029472647637737460506664188187771553470367406506183942381678259872402455180071149580450176123288613584334699483058243524049546517808074327618204135118906138618210343557502328936797807949676843514266532831210266048135272362618520737440525002245770752231729658021986829749905085659332178775817226195688055216152732254613433195922399297109405693617578581825618774021213728916508500419138031793445114630422624110052533997980815774011771887601856229636463297806130137270327057532854797017149161566190276681765040588902207598729329294205759434957425741808112242081497721061173893819828328014949020970455439013472826820343749310256507754753170290890249636273337645000959987355235156441288075070522249111459069622111789573055940575367115810591271947833964088123213051059165392486923293006602408536708532726880095370249581624749738968183885451015658659863094718290786027597440949642982463890632731010811794459695972943384058759025063306496652153653568710176347012087907544002555731341105698976724474776563043733839349823780578212720261147993846512334386483700476600434602548826896088061924649752845690635551991741658623063662861682848895710212763623729983830895381572767994414060227639214863736355186818055798796262460035907005557490130916830769004194370642564154329544417038058802005978283962800469791142078203871891977395010972284229086530830527340021399323584357222777111188300166405811121380917221282647681667198576865460331422089582721343134123205567077679544178108067654849704559340662183431981717345086563101404132277760398923057184585910326782877373994054555109893972034620126117145121536409824720450235879237284334897774060832657293253230045320621092293883011617361508765882980170927830239118299100647717958758010757267886161971464242960124336582172884207634380250516655667735705879292304737666198131553225049295763894453517629782830185658348795557098696280541424787216925076516789865610059291068470603343950467581847878197825102800955228925203910395987335970321520661043018101581339624912253753995515343277573860895048051417024412373138409028686175437361482474031886329817616195035092163685016167888335307821659455617477033982208610970285710089508018994859667991047620449502219849174038181733302190502237993151815419698846063433690574500643355528873300652951110494824657728161593816446721164457696166566940660221351780270383156392144330775571983715995350817186695802922395044961905892220888712996221282555412777136615285203885399078186660771326201583944320404661965308691498071356161671531432435469826862413450399651727840926680063029186734351867662740091645869694286150642334501843806496784541836504144803046980826303061814578430828410078129904814150335810158100195716221332074838966353295743439508931755328236049437339370667908193969827913544544726926998631572227773733549309665195172290275390501630188115226140703760861189582991761357432159374373439065057847250701124639649089205817200220288565314748989536628340721941548504033471511763055337517790936541521634385685545358500109986405793302202682181123104369439651088172523914318692616255449339884621476149770877616017282753422809541535572020657255755861007393459360855393603789605150639811119080026172065960676041224961426697197243313807621993188059435850019075957922576714310497559416372571774949619887447429455831791477500282687146158440141673629913011611859594584355259679050577757455766983109120870712417973551267579934230224470670285096183795632835838151845786175967707776741736284324940383868501295691557388255155151951132413428192733730328969214334894977683949622517471818121154004035445398230967463005551510001489910932045018951862062578395016197186942688654417057179570945316998810928909961629673406517684292398038193257359023625482969452332957573627121068905617033844090463804167228621504985115113553414426545374399365732261094307992605712738317685890819165545825765577510319584192753709661559641251580652958757351668126784288161383010199611529732630438520764649983613547164342621370171428535142972387076883562951278638159348406208908247735924960504505650031858684745374246820728467614213787104710266146574003912086680400983742869038751596595902597880448681774820795625286477104551118437352379633588177108983045852020874076052598921362354155291184287735487026956962322185357431642993014859993127115106990621088563323731745911046993180908361582190693481640956457070714916905202147328609713081126043697129287516265928960549243947901348927510361741354836504659708244935377819300181275434610979871060716903075031780457075498266291482527220424863877919031717247723068755270869552129724608437978613459921180974816028237875757977149681374046589864200404077662201937807501961658521204225282203908598591979834146990552858833768823392133324048310518706932565055033340737988058721854997751873423129931870888440210031214704541561253288797224586187668102498130706805723989146485818455044067006429582772808094337096266274528907807261153742712759058754234150561175140388936518406051792589111924802275306090084680893721580594703878122007360971459286552111981502548895859399931529631450407792183302660860737925280837571494640890487650971505745154696288838151192461614781173174446505224959505548583504832773805813004105849383737125221736319942336397367032298920404308273910427192195841193506675275851394122598450529726619735724381632773298659097447931721220908221685959270545277098485633873049750714859902470392911092730623878480442251325888984386446646629176871832361396115463366731158507066977742573450819893414061515604280781756109513868557904323339704081179586179536308771489257925486575785964986788934650002518288900128586729597695047711145108656572340635787972819864305873721234363097122285154702899049167349110145654145898501090007325906868922133439756824319585258771825846674938562454490604939487397405966665183725930287003551151082135983744288051915394325701339103223937410702136674648573140444656210815209222702372123397212413867619620688293839368997657778600118157895012746922862123654993587821390242613954362154693667089840936679993258612784434676318709810575398036526318401164204493729417536756845620124679397099059130414557238138123275431175211064120691299612768872895590820094634394643686648668115335229043874807750888877745657727188912312187231634115046579053557462568247113004264638355873455124960454287724183186035233952934623372303099868600315569246013015994027432707796117111888845997965108833794884431585488542492463770220793845307687709678609602293939544416154773514254884265794789468458898201770059804830263619079056339496178029930269654773156660439919344274243306076906495798030162861037374151678390092678613551038538291525752771031764904194777492392629734370943989701265536683309583191612783783445828856653250913839343932785445843779357608742344645278161092616248901687378775689935173610820437160574269411942892651357783113131804283194623690095090833783714100220586219870830715404596401825305372266732931591095224530183503283022853633817585309194796518445231634126298158551573566915466312974420232102085226603645586904342157655621446513311576383499395807934638923073968482238652269984301600831957245976682650327644163046805117545836001273851278547122351683407772897703867871935420478666695904990036036781750619607365394786531356600355098494211315562244738735200725158973841764288847450618887384472824276474001064070570429704973206971073043272676836647140614590974707795859718135928474490134226804736718092478305897597198745900192509936167275805883297397045441881913500524081639180199702724038758276503353182393943347785683381952927663489301232355660084559123584832843141104289343410298412001154205454026659172000564772526720155253461218009002399889905697722398844599393848851993823952206286971233011542901840203987718432332178837894498105208026274988165546857813180128891888158297284497555956128445229773737543298273710901506907511584752570366036252946029524572990701122096921460143784803247778239301009096246535480054893633002830128576310468219713490555694317592027141600310953449422637421276461131910039897682218472162958752885098724578169272762877123372491493643467511541195152395381563595807293270890075334202061788175491618696375294872515877571024626133618807775269278440452105369803926066169825102240530032045625630556638517495825160199364482559763476686653514958593975088381632564879227486195387135815198673974848817993259648442932705390315182650872601190890139844329927459537664411856820922333739122217623188781886150842106704459025636854991432487317165624563727450962525936375701577816443884165616648912859901924130477636541408060433194833589365943669680015614824190151594238639724707650782601378592239363723261602083777589748524965761217108524553041993904336681384638392920237715244511210811633677903477082112242568351271966242359801008831290674602274554790570137824269042995515783123908926334650011101646385701695489757391527103679550839552759810337636832382076026420587857900276826668609919379680934393342161391396442500560460279874364748558949595566656371826975054353458076259400799837948406841740567876782980087689531342391781171616533400412256458807797396828021449014403233998872208861979708050109851192117404292272538124534971630105929639507350221557776675770296613104863817432037434900103419978296196034465060400283163054739870105329947862603200645001201152262347713159338386158836284213315511024766532210408030595146137428113094533732997197715909203454288882025363967870802082456188987843544870404618543223878473488976407572701012088754139883347674844143922179999443848317274079535780367212380722501574080485007085495839650965108375977807393776615897337124040806639208835803912832495091084914419526549139175138646113935424875515114572291446233842854954871406166722848498673651005542253874688792384783292460754957421615817099797319620994140429615945085381443961640865911915760109542157031302189525375836436409666103059828678702762510018018847669368147637866339181286623496363323329202570072346790240416228437521162261369943041266726078099161303565274725637508226818542236736141460687724263845300955623834992276407625397735236046831289752117952619543414302867842183822007223575125399435259839170341164132582273693670535975287596382486232384935129742797668634549336320209271646508483020989974623115056217117102873471805974110779942968117282718830259345879673765761369401215258140698665021378114577595318466731372479623058845879241760021478401877324813782091470231868109126449946485988218346053533376957418368467935528254218946318718396531930767050949639201865209019614901603313788507367005869245495277111041294240817229155601734345269480068078364652914975981723425021294058080815833794704273352087849476396957720874875643177764015835831734432476173248020013589821470948244717185673031250269724606948755930128421571015909346440413228848674243389661407172494133068689205741818352100833605269271682202302796478061751660871272962402851195745067921361347703249492835113098533450596000622536050238930818891789005249447356536532306096330584735651632849032643613862571518314617132559127204074185231401425651026768032877946050734208613449276197456955363838194020539426619072177154722364164694641632553471978121779141767348038737311966325323430275979771370956099679637460660152904385295684824137876482324345615855345419309502770370838934008983858740853126264086699731228368427087353690689128651704146937845581483836610640778972477141463967207834789025967859276367062541418647105761751575658726755291601911218569726293218742320500611436062831651324553257849737150791398726703271118125578412432773581837022585845404479869644692900667618177866365817004317798991150723337966454836776061438083288867726412714050076699072189296090726513372900129745727181500170791117776158987107995926143495833934819083586839296023339742886514375184051328545289729900751466673787277883035940154551464718887504466499813015238637817808690320691137680856252224277326769772378916491311299705981202396168145407090390135215678213627057378214516195793948712498121614461328776168753990636113050894622266426816600475022532253659871304063909271163935333049580672579528784290210162026805950091774704112288752807127682604952612509378969618300374375854125179216636057740756209432121543124277692012012952193857608381925152543387741697434586032562049105178164699780674018565223747695197425205126705885370221364899902911864796844417185283902823189138164181122516189422740081571130223267696691036737797199137560186329707016464885003322902306387208522445124236460429601264041164460979226802935796507178778015095739909489175045237795385168879221059563143583507285560529449999692401242318937108540528812426360544593910674405159539560484008710238956319012626331967892302095134057804575430679663698127425998693608732263551122347616215057296274130421805217102127147102808213870854033535384556150328282812244842091929625574175018861997010855526180652138692519806923694706115642320707973655293159564412613137957550647071115491362765865390224348087680218001385350646613032026298091087521091400773390017220398394274583579358040943779780534140384321908909046938436653413280347140210737142071249012709358846609777507473336905701242918763361406635675853455261365918574915947125742423756216401453494166297660269139463817201207573661387266833384888520458462348860008184219103542595157874530399531590711539465900147657574656144119908439115832728007716973200843666488409498603231845641298803588823779606728025760287630414107154774780938463556129754717015927238363721179926015192388021163256907687811740595823265026560625953061676471294289513891868555509572665630636096842039379411739927872072530842253950315761616930515549126718155986433867236601486814371613559216457235707383362264660860746578819784654039081970720246463599200003739092103361444607174946788363383078892392362624952937372369603435712067523017317040955733980919385374432181161437947966278624323521933116835410618217824176408461848654167396960288882282291468371321026413009032306938773074012242350547141354745662586527887238591972391658981225165772671409212715418578355194746816897326040299733079918149031054734752857678501484256245808508607380614944542932570814414468001332844178265191537340562876215378876718096648993982963146028628330071622970490062690302340556230214336204526028403453625385235845699260219342843886665348907209691985630887263280640974993393337019410551864186753313517765533541113270376337259905216158651746153672223899959284915892149597384581224106981248518815890288730765408477086011077309526981474425593935942821394033701558103518942979194446397079359790194776544808367447225943114646773419636609683064959720682825410761067913594486283517750178998264288687619124960645947048411336359512327834713908703296177493598414508431399797722500314275409418059351049971135731542398299849216175058257727999616181777217250722970545970144671563619913119649100452734172461085898884411773337612373360982715498330826765922948594582931577940585021275820262450183225661866971846827195035428007096899070570013387216114077325177162452300485468586189075269519088511488044575723195556204028826458313752354578577136085404036452833939623375243837395629690756348094174847209167808997585401995342606357425024747917516726872940802269718252888557360484175993149201962574624147871777471779659175927133978440227369708731692827609256338326105445722432365017493619688658884473412636222420769367474385842791943249662831536918990610359052483089448270639800791495653863014407947980443367654248813506555264408320026402222369096365267296753585396471136042564309751925540792534606358317322307752274716184773426130626266635643398708282180070225907935021025501592857408493833099517619036671590295749521274384266015611404597168407928126620630139935745497015409932555888462292554700569332104341975342113003999415892975000960555396208527897799531923210435814322811690733499759980759371255413516958017690125652073212375718346665840190372588741996120019726845321790668805866987596147784183882157300704163055896061004097238294904704335069628958152790685540805028598811528460250519872160336120309871130100307962795338748372932924692083972887051453195587253568905180295756071983073130484943119783917411423985126471328161340299946481572186196371605176209030258367330975146141942234846598891117086571590151257614646596810115347169013867879928892008082882590927183564544925485668564628644712683322988479656588658541847429970487767213746605897690768053239572894046142250352707815023543686267434517789300293040160842008330494577944224023803545722770503044051551523047717600424285250069179723741067894767024402996025906477367465973588186784944551697455517686333839698815873088674940708370486595356404829076333370973354774066310740128175160409347687842937093145198391039423033437620610301831326862524838226911504475161769506268895315353451538864425991850870191190877848553445703072298148739217403430536014510590573494927641335031448082891122021125987924817634141665388720138825347987093872838116181149475971629371850761488316940273636976717678271368263536007508578646357049763537939185315362820005783999209604370406611789088198381194093948231601119480843904164284229430490388956791415234141907581724701913083952148397018622161413775570787201000784174147272041347700654080424201499934178263535750592568228702792826857557811972633152665368588190051900498214438347394592577391115401027044910549232523942182157583757072280642977933181633570045925042780872265751450758958362466250714275247148531113234429970514241486494170343607676106134133077787882419566621387660026004039794941491179048922995633502379163653881058174110478614770263481945736554962589531933237680655131410074956279041058907565150156458038456775303403730146928261621870129938864113455798091355625920960160399214787054275481651296727095791244979491777457989299793864973275378732228168177453164720914639637129742280508526778846445631799972176088378378321470025266077928393949735241295371444957290297849967988997093094897967354336883267438136785188704706675264461800262093026914620916304018380426331292422847361289593269671955216491507362280090163102240867404675863064815663556666790268677956301809901159692700902354230587391910023764936776603647743908405567791674830962823467029646420017808720826107137577241653770374163495099680925693282808904065136147276125924534905663712380645062335523865568226011832119510165869295515442928878947907294974739301822935429093769909012601588273484407768217443724793579753642552091777938374310084036775922849004944950941583987665937069257744562108728494257220541394583288199741813912030104977524265767403341922524283155214995862541070010355188165386480985682551876849004271429183624577572062042101812382045843806638479486373295988546739318835383149556687082902841525026950790722632855721234435546465740895907255699335747950045530655095283537202705183586517156046036948266452079668896310876772498632370621582215890789398658861578535210450005013921768718803730662652523119871713243533646330213178793604727769813955782490366372884022818941268795994363584172807089408038352345023531453080058977788032408501755563627049572138216061255366699068592693563127298681974516747967414593930613490841512896750978930943718828059895462548623367390077538526647574299546073115369866399168468138358251863368061869951841450086753263440071652218009652226593381191462560836423253589175125710129125318211843712737452873142670560769513093804093786545993201074109392697316894431666178072884887191347236902501168909924094117603562298231983935542665674144014154822777142095865884218366685224576712187491644826720026302779695290021747575129395101260184625945078086724704484924585815249930462906210252437931943562365733473369183224584830517784284632569904468830158891522926986456571586571997932470550299209922859776180041673999288156808032454402257444905925388365002428540171660794265799898007163469579680466050443350777627517952292970033966052812385439269491269593385294326608751285136489475168143065478431504536552555349892641105501287357396102722798816836653260499958364073140999018806744586680762357463209109013451731572831009306245438597448421072606867263993835841247160514177104049217412970156568951078147929186838776538741432766901917092936885939485186845365198014625392063749542485642652921838108009160574712861484527801312116441280684033929413392806039022277353117739078937118582375884789704032715871495532762703142832113213822307897293581138204561472672461479634662485327336961238882875230826853820687783115718947536789093686359383232744203674129952981095935574237725191096015623562525055059944161555282455654714076981464839150150265384178250747348692821666482963635153908241332714879095478676189736099050257416868594284325118331954532008629694553590148687190329043010762868344829440819918462628293231641950975773714218766540373997968477682982179547462539710191773733958020578171460915308444443593858872140899764186545992665902366585325875963037013578913980552172066243487072960267538006156392266135973609532156048485589833988145920163735883406289489142364874884188352989200419958393038448585048557667718283594031652847904397175057996832670124694375364121922729157933219504412840334683894342238464223958928277897725458033695407374640201135899195252553004880279736507254926444948446873579331187723690371783379834714696674144446850243062624844779085921740586672362720294856453583841407071833609349104325761622796796084385805490366959958034479499174293546334668301889112382889656401791489302535345631905343457683905793166983114661216594811839020845360531048215303092496843063081602142949109765861864636541677773158266925701140413543666137115050733199306489320642512788354298263472496401408578711825083058252512945150334963259389060175393231326559561851022765403418469920435306872264375256333681687546450826205248243808117251997242227631242572810336245517260581880180047304812955083936775790495887704612046826640374858965660559105478982402844995238065322258584807750536028106715271152548265237408151444442457477136766232313610907515610871108528272133996398611266538998644186771398038439772224564955344363827370799370068931893296860627394181819205777031740996400656580320769226526815116502022871565612022860240591880902684743775998287931583161146365729942209582336719202021845760875529817004285249023309735778544637174300520621279884789798494559395281932962570878171441258853738824513419373580156452417859334605902211276301418669637224403219850347415719187378526907470569271885069785551237429465488138586165907275301287703856276570111128188562028675957510956859259031283141549455642141147110206505248144783503614330777159571946050610490473865891292585999867892773435320088576416941809710534472373402667826193484607604769736297904867776290026191686456840034192249239439148950198004691728121174711251883022316267950344098241927388126011263067944693420017890547051420698198320818558817952256227086116448586002613825492595717441164649816005335586679189147817732524259939596889425357867592220594154851722138629397321155394339108647513152344754634533192849957195975955570910350432786786077378824748011370734962750899280069810521359250976685390327968999474325616883173602609742983151064486066732016248470975151393224976620814105405520564477207903318592388486440277593409688999224890247314373736502427302292843757155831801409022056478019171878440154869397948174261309433679536438818116019288300080720115576782656957732062984638039726765266394564764332591747199200216331157054434384500986019690751887897529024524731788794142797446319976453964372044561689316536055846776685012691813278636723208630785847890579676488742730910639484530121992081888786246672157995035450800031423507081424745464874700649964298505774325713401942455644414970478201864002820484750717204755002218357819833500768092171877504307735164490494310651131054948994274087455707908032252522715898888717288616610143461017301499898595289798520628771893883367454185347917923281778358215462175114937487681574461612328802104347004394714929515614735429764401181344227487175868291641718413811127942345928954064287806939804366842651160401500834920933737476689809810703117015935327296701454516077443270290413250421901320618839399132465708800117814528236293530376468877057135934496295099552449566846775849689392589591017684960143852168461756318506635510240629412474417298458951479804728025604426880049828077381397565580666405925679118640115965302859081197590727065271377920639647531137848480897704177470822842162007678009186680849043377013102909935552874568302411916788080174621683357189569929643067123704541329619819207855154206656157581603026304789669215763603199031521551601872080052521754771026492203977460714337738509015257794699262737635251211159044344642230678851640892477461686258996450679295434290458124974693143145045906444576392679106472409904363759583598119882327596854358519865780488077018512148636805053348192640919377597843003841113697835977195774386569953702733154368454782921579299069014215162882880964011245935942969553181982199061433268651926067356374828194864808113866861232339814773027206602513458279018282300647599152877062029513906010366154692130901089489421409603022621415469728171365383623582933067919311012952809431943057482506538731862803546583058705609043221363193163821565710437011056107544454696639525879984569686131926263777222159623719796752586363763950466433971563350779265506185648447268244574960984250770151623714043853699225998269055340785998779578335004944026176671504144870406382595483744406720620633896548598891275890540585138626353689840737380755357537741137266851687110391283297038045777146039671865787843759655322041013531038012140762416215142087487328497306299661811785422202446806852133950798855783844558750179003981727544478178113959888470051107082131098857817419568314124707187509982242905587902537540881984949560658295637781395962415041053666400811141333214131049908303138316453801198404380104553896867425248022847237231288292863501914639800593777821200115136751073854411835616749959564691101423796902040844362962743987490432300866852005549714680583092351780578115963017820452894585166247741692715741013887427385932853824531080808460606638384920865291166690654027977716838736505951225632207141339036155901933181450825018013456770094536680161283505551021806022901690441090705719204439118779774085168733784296606958241751663585277432891486254351511244437708945983172096513908154419743105785776721049894219576856646408132473506168995204578406394274558331324577310347215216188751460514192333653050197053943985838130711229202308705003185413443932274826223648784318387109317212012448284208568548410133656091680843120787939197054905382629433116310571394144452647163042526622758322920598049329081730381357835401628410386500933947538134989748382782307832689772853894255138530147177861944614049068749176598868524178928849903937704841689574690529045550208396726880938044668898616282206835991695719439563312362518304377594310919944189888756116585696513286932700334119114745823754924637879087847690026655460111976067402454902664848901243893441152551089275648173648502792376672537086195935718981083800222005527877272836265885715131298149635823034532243812630525262964894948890316652992654961264619444925233296978627074797428941191148313989059548123062979254067970158401200274846419757134101504559840778315787295686556250622519076694118267197714509901868081722439407229414045517752307513030930897620368217252789941519828887447052278773667840678309440526270339545194989301323194189098158213635421256273604032511103461709465425547660444986036124810797926486378316751345422126158632393582054457795789449574058950320856599189934091793034175842335677458153736578001844275111644469309152164118483290834027708620645052004305117091389950374354623110108959068825083478215176279347606642728357306205339301872490313354750991108191868223282029059445368205796447517771797022719794030381809850527865354169759268261080546845106306739102534488999626059764011688460230371173900536963805193744173382479965126845919093096323954880471176292132790825327929816246896926952759376705186391260944273537796783691787703235160934160955854236232768105962719888014082657064398065273286168377152910217456371713505158503544880247016432894970145588657146522654178599162771327695915445409738449388981606827593977715172341191149346475663113881976169373056534241734806313946461625615127329504256410720054806904580471464103819791628240471738224333065764245947402748745200584139747684076258449784922065218992139978058081545507575125682341316091745046504871387516731388348459648888898326652304350636497344222127903186304353220991513809201522051716070011712015393011848177120582327631444387469074809514258369639375762702856016472688845044704299340367287656963264367047459963612387035578272613337647866398826562664552132133087831507188613111705063354172764054582396144572003484704090975798453811038075945302860331921339396804377939945874744879097284305394811299386963954892919775964574587759524127719718505780550335511360816745890215200848136905316925642803942791027819398962060172937790374449950644324579543694352058491502884599209491986183231427440773511831159391527030401766754405534000549694906091287794445355116291975277638916790776982909614680462222256922516276629602796826098932454637011508528012714377773624491385286288421458844399156957055009303205430443188841371636711592103037660056723688417311720228374902661904406572024391061640606322376254345304351298947227510829429721789967278992443504920081185740897164012978449159404182886562376985413151200891742533214604571827879405683691628676952879946181871612399114750236489589172798401461661640253661624242971450148873703034721016612299148081069880115659109031532187473461179147310357144288273837503538261167483163936893584994771178970339273226476230434118510542280217767128938163330253592244924563711688871261021244143635196911966898907692929374152339656791215314367238409303115719204906280701946184927263381889592235604020533077994153581635747342126863219690635692713432650170764469067266594305920683572792285659924932899833888816675201424838229367222579558141926090975903041646318990531184556982799380731711285928170564352369511520868250452548798348460818364506213507860165622367005984394761627349007573954588637522059938642801132920006699876931607669142458019032758805377352246253909789770624354413656520855625257824917073871098349965153750391685094021062362903890072821229774474006374288535297514923980949895642212436503254609467781399369977633760807607973784726678944617651902597866228314274529091407759440731963374961856883356788675979719191857692611991816694608185955108324392927785533492726710017367241719235988803478458163115513811511489850533477764882053885434233869603705644988461024967305570976496474812976276888992656730182871832451982868601819982241190709609000127833184116154009115914697801249545714962204316040295016522133136310397248744651401825809077241067885201502616664639305252358299769299987476960252312496371704383732194561439216110236541085533582369578368591747315674847204902843425679914791214657388818027768974603014301690118110793369753422589189353766057464776996807870333468358737770340646399395615372833662009301225470450572596719946975752887280770337589580044409949995879759333382790050449216658860917975194077560142468734661315459357472355204504568185992960152106717445719285628314060493895837204414181952926571950562828554793509539655461175482396799748944277429482020136467577376661503747719160091648483477984690533488657472599047581556773086050240099858887665011329030524249390778084315602950637820898089853987728540235631670430809879085962213116779139980514167116451870897456712939740091518124654036190939504789190577265517504501978567060511317345004644289866191436630228017392423961666509178581667286935619925985358632547691549732363534765486917407621739631082308189667936167291816670499815694106181173910600576218435261164278770061032603056705776077230402517816822358200051015114996833830668957460599008939086867044406791583090094765028711022134759153234962992655646392235039873132784510740097334735730779592981965934708060895760991205422324222782862748762985539200844991348761938530025009985874114121345352530704069208308799876554168246395597222601364187200711800872751504398154656155800840840595846338038440138562100114845268712980182496288765725142036302167692836090465525076331164134059799519270355260266242039364435595465988627648421559083969256073005243014801740193426241490226286051029179550189379972101083405233717551505693142742321996936705655211178464455486402501459084408643976615444922119299409480786998092011111643382702047126563409693433597500276352364917759531364778015772267662116492489301400781654962500852476079727966776553333507045629719553671682604874811995168502643844859169395349353392740880234950088725419482709891319162745073012857915082923911118508177719974678225132500078890622201457413637812627286547428603548953891988790477090276374701528629426465704502880338795745896072203855693532728290864821915381660353324912958907729903364065140803561117637074085449455673491044259941970968916935711783606408696136502429113594777746251515076269007927201639493006459427520544461511119216226516158423305245557537181938875563413889726363845035239129277364719184258520224705098286717233270005121348452992379055267703171876654115978323596343661709714694847231264435706683858083005143742185082418469562773852257533003036144129066408197127527361817460612433044152588021865365943539596901160593861853095403857347845187760180617457703938061304159103913296389629004454195423397328826811935825533027660296375580910781643407613960338625526004612693572811137122119143865050028347107210585296152694451790355610598207594959522516846914044593820052947318013880739128922448878789816554536131250409440869112910885804955086805018970021754808552658430449399719332439345393251979674317514852579479337449730685536043140139024324850709424530159831146710723887390596134785314352430292131170595905263101175477094614480952177846818978355195596683173194714586453140902420401913330810959500514073022817791652687376629092318141102934357807708483241034675559139234074560754944162291650224110828969700164062484288535116836838967393321451933117345134535411659124609141367039880346031234426450983241876341396099583866707069063296962467871883905268779205110298684566513782676614719209889672935698023819598906518636289888449726197685888513620439258727768613561168975139919221699975738875291440297567596787053702102613638087334889614375917087111632616766165232895385762320387052284565399738124759715182889052040375340464087696279721591675655569150208038254636413404761069141718171683619574483496466008877051275158437848364287339779313801115658979633790847872089587772441487167537095219848482631706091313625194402648192747731021205985096711580220822606472470974560892122090851823263823233142533473852078769528737491178225214999619501734277886255211364735754600073252665476760120896986316366522271239890892690141062433678160788841014855787270447772050459693447540023666919975914942617601696186276378635282467276796529754675446072475821726323651455760140984949772467586590219412208134076069056410111830342354923338593570431594195029829888943324173231245499394806921681913813555950573535759504008015213277885368987026315228437472670951901136248084187795149017133573682184215356947876369413143071385223415809216318007858548229930850170865094975856770451324562490314381219482852878102428308370247182649619765094959528341011794704519772754945011607660017864745859430884833169926585219970697381650525899378616838757025430241438445978407490422019503404085521629079498404671538790321328965619861399328394789109733416464700356869246793760751166631528569040178165101548263784298979750359404617120946740391585084065067914157786104439439037755232618861241732021598352606145223806952573113235574253646400608131560683244825188636897786925564928670687855884673569591536651117379393806373579573205405531130094138142100689466287798654608194660841519910975656248077753204768574974978280413471394600263094208742798980916588311688749864080252135297810342714066004707459806159651158562104894606943943418702844175590644242032871658948532634389713425700832382343516916021934736308146385665446633286960600789194037129642244295007554915330245621325287284482745363055589027703027052935854908035291664320081557385639190853660983855856634136953340952537118993645296333600945990086570321360494825565185158600957502314209342939846774351159574926344450076317821376950241145174661231860303678218658087666578577699494485504269393054970319168141322303244422709515621058482176773446520447934229156089152651360954033197030700159719453775082110394418063827500290531193056844122426494978298481322700873017957012298851867718501597672089196814490868887644173287543926324892601782648122283326130728856902050082581001570319720355093874592043994013818477301040688103937504586245380083861730543669116774667307239116803417633404636542540637938821324915964587727030375504025566410631327108684026245285764986233414721905279584059098914360503509158454864693957012051376198648653378687185321755431240507632407491145252857132708816837136159903413893052908416606708534415429108986951595221495404621275973921535039125023810681859777011603874045224395126808835287680723608906911850246733564768759148811080180582065365498627522829109352168603554319717430033113179631759315901024686340264679771624758018461776047661967391773585007157301883748384835196212462530530773397450903212141596370936439806847437675953019793033195357874038796807721743610621922713247286223132500056908006415088039190080598059532330651366359376296547966320762096625688201849689043075288788147797299704507895778515696026840926243465450689903567442061827335497858373584851708958474041315601228541972286620768370035036461183974063686804891538452688975926499837675947873667928086647430048295097431257648894355246168215805393741099537835401295923525864245783765595459986236142020439388803722928731857749073868040133874194734562082114198234417067451592510875204122368226941453235840559210272937674927855780236433163340285945629705264545598216574511357117202146937251644249910976426790076355690406463963927294075066215846229214181032960295991936247006786629100365006734761030589714719542366119452242903222980200422836748220353083332983776539770202671772142677454578115232966792693728643927398336381223407066349798225117447854147843890424593276514025516729518781834587059392983259678537910591419237464470990132927843486858251732262681960619967169458796011147483670025405354251687587261345457560475716779124472274326910417657802451160452237599505834062931772703976260714181896640671887371160468793629943192325666513899055714710873004825151797955209552488762366366129253040122159856866012113141773962581666653649506168538490192385999514954720707081358573394608593395675912947675889057361830552059282653927779893190369574585170997628928658281106487822152646339402334745675045495175352124748658143153858194995797892407134579756913821515686457194431926117769483861742902854379140282419873558049326267866538740421923336284911980608660752387317032409201769657366919602121975497046496717551012885841697442050960410141093173887600652637438584104325473655645021705890688832998313626355787827221964304690065120627265580657991534861819219929627598099513905125446224061529742322659503957808797801778204674693081025334536968623405949581939024266099982550595139497971063039006577738454652557570046167937642802874162299634004382550114955910290012154436158526201324040264756793559672219877648085225347194686059160575564759579425118365806867927861819952986296871843152603209952675867166787193653726250529519083851505436427784668058240128150457145615986199783234551954560847655985058343351197486121185084955153379478524498073907241632753261830953458894218801559343373607654075334345210546419423024125573563734879072257058699596749791582007963328735824240079686895402857082449675276978462728361405621791066454850393731467624648775271703965999506442698157069476406095426233837499741790428000449406935060837500018293478410035202894321154980018128591996671895557674587745876467273517573693084898735525529116199742675148591072439030133889592697248127708100489919142713359904906548630776654726843396669991106574649973456342300989444174658964304361400584028403665745801945264433014615829047367864097933618217356178442148522733862267882690314907224135984114284715721637418415743356788128185558472083569385146934517938989680850592901467314848443436443219486514964811947328975634935902842005710283086925822260460200907680279420543258817568824839908854134355344576988802750864073992789613767386471802229264495324604755802034477897606931846396794612912130774865600480926109859030767753742297092686253397731571580830569027390633736271190789591622936813169850719786664112004894761278425716834792800363016814324744868305805976111509142524872546858949859886088955470663620212388807075798509168909203559022345872015052247828050409259858355380507212776787450285158156366036657074863139127186566969822603681808900005881471910779728283251420946881083451014784053208717190661939281798960370723717995958066121485351520973146999395998171443750131652415503701764958460816093539114305410844184204616749152863285813169827267251485211769782869511965621044584559576454317638290037550806174059976793547570622471792885429883436312948729271243930869881204245514085048728368434764085131706882476972883756443453128545757333427164430826101025165038638470129665244094140487678785361760841335503997852685098991524482895621659811602194464586055827800740230996865718424264821987511757558889224187059097753330286344332353102730151256498051855941664012027398990477482008751529731456870866420305618050878973119381841167725594657840654409090882609372615183206645710526464390873072656638446188615893588408640009632813498066722712337024777412971459759333257796823690138459083532648077854035698442901843561704109803300852747959313584004353699349195921341600022875105243114697991330795253679123377843483391279450146184214533606614720607489308308826754894988190692027216975524201783135446547634905047105980806839155649301787869881379650482682971095666655871930571620205057379109524376155994370614363695100780345554115490523624297788331709352845034873911859718775714753153644831032429421056614410419696229239890352962078820713734235771335942878690508983103175664337452048001689000669279232214312149087758384919708827422518350021498697908434462671121878184321538891319654691657659008717464841957581930280186808763061572355760916109709337388897786804880320604280657386826130685413830783346471250549401942828961161757863494483242524697425780667939100255057686400933312977133966998357883831792557689749998056015372199030126897797407854654738640147801951824123234516603781980247108374191436023637593833773020218762647969027280745459540569422669096187260425536769015449918618924287224803208649279465508452657795405935005180236455621521607419773172647282019305901963002146533998227369861375943020282017693641003951978679193112735910079915364794459577444866903867561621817071336351706568910789561252669507279527578447198985937703688673015934789096589809406797360242850953175904341549384283567495682278835029833301048847082903388488307448520235555340073774741328314633248412261561481133795373650962847559036427857611163196300861656142203913927956367043815026302676386179637234942072725808979702342028283515712038883731558481276420612229818468310681088644657537533904802078205712680004826926184633006549998907846154968419479587782107784332828563509349907184997638721676700827317562080310877316830173101139642749023779253508343328111798326312899679389903872933083616045232106368945168186852147460285902986236349944602638243897169124485486975840859002640272963515313644951317916269628231994918412574144559598804403790979622915381623823233673168397105299477921513933234491038543301357920755859986345475870253061477158031951710026080925570217673889737572465247765202715463049746909383851489544989331894015559754822649504331944419582586610662949591470059121503443705148891611019678117942690811095701445057751073949387354635348991239004487344897761184179391621986507257617250958295696874037718928597992729847086368022266340703972882849560428462076946188689913240578629265644618717045249616961441908945865293924704326365161609508028004489846110877817468297567483626917867401186707693573192257911952032353141873691747227920112651155746145321113516833550713868062678242944920470777978360992410965071274336732024633545957734235493612593663647684380366904864326125466422426179294041843628091828600682422967920701162228178116442219273062453937501253970118556997823832839088826216580346848126578720892440171319956918741396080169792957743264993572220858444611225220864852572263908726120222711328350622067526803473782850331679127719017510975427992049689788052286504047151858600504156763718280522508367119016159427657010510506067662075728706448102229043732669393526634819469799914236253486443786334526008764881304271319773096761432700291288779977034225228243149952601797858162455312868650158951317042293093492228391740378164082962875892558138397805982601227931487952012627932226253030117617584428874837900178481871460980204042630730374202727098079682271658056560869286320491954225505833765024082638520099866066579168348795389180340944601588885927894446808500967941674196779685586191580498962834035709540958768347715800666326273840038743582486663479936055438045033433613426994945253107435454460479889296957683921044998946794370870621749267470153364847476165509160527641116027708110040105326796076752490209932070817845004896824038385904579537824236209689815270979034806598195735445114575777716595663362480333784642635472972790275227831838118023794170392128384094320583165657250902824645995263594396166566568462234883480778676708609481573350111832123553288169137690669701559056160681695127565868586392111126926132323769916840121876153019528835022159628423059516591217058229915150439774134191071751309360869947987674332657113048347973053647715162476369249707103427794362438611373102194219122033092022784146068648129047981360442695881988689271151457058246614744505348317275421872368336344068792341646084466982113112656460048984218185349427366376092950232254351524311039235154716076953837024016338032561823695792801311905626485351854287913529401521617541092399084849074157938424986481543872867032100633129023264601142843607820577640823666640865148256539438348989296960919367732780088591529855344751091145918530179000204422377829114795701077063447356277493235427345556477733131420435689246865789324923485120651633574568149046572702023476088827475547829589661962695154654491590970245853764100482094522378981049013320822751900325598516163394388738541344307010082550760119490773066663537259653813347667557342729337498433880012452512906960957950287202190617906115377999504140438122081067907500966850536282828681779342933929177552964451907348823525044934809909706677114596279848120650560541810031639605267577667073183497498061419927630037672782185233056293034599966701454174450466622322880880818897074621831744989618982414352689841628530225848123803604839409854824702284574932501914544692185301313015811464191768294227010901228109174948775440505879202974402094049639023957446264047043659720678933950218673712338106269436188831844199596857379479332375232796059221862606703594502142244616215351068963983983352429201552126645757295662513187623532028854270058607062898420705916062336099253928096358108111989218104989239211770298421799093548916572280994881742580045810512558589475952173477560472365801246973069129989665147611395621228519701001978125392596696476451346345564322190117797223043565451562130366730284777325925904018533885091171988556663749040676045036160588682105519269500794254922419662574150988045795235487482293585895164303496938411087984343931262640158887917793082590774388284659530645045843736622311266729949995565463408807908806391195728393157093074211104717282265638951457871913567845749830154182375379595882552815495464700843589825234935066305053062000230514686492732733327822009390600583836624314285957314986075730926745332560812982076038731202077616402525913285575923333961255260496974806143186452412966333965002467262955533475433760467538157331830877338315907096754054912757624192614764639876626046503818525909240961540658253895494532917479947442198492538352682271870160762542457663119257654371756370905656692948794544890363801451840759500254237029618979800060809803434392166571403759718277126422077500408588311833220804443964640619573508424180122664328029026154900484701518703846806130628826374630343555587980185143944845422732334381709754058583134112319465254547187736525349537461145481501897913533541743956869074842175952383795452940412023916853667608067350367307283660748358117829530217051166018080863265396730547594774736945550648044540981206706243014980360614910535598821236649440416917210050721048435561546932034628733400866417757526714361096203784283705173249288747673315122679164481156855369991126061495550655479555672438538529084140703594822917585923067328343729100895173789264455384667433268962434484157433707040719275320736356146066785732239365067716326565417842473801775458563245853053478238481127820309064256131084123273084860079789234074260088090715396322010798817680035405516912890034114923205416218598686587717786045723868275292444568107195070316551363888865108032159708237078763190928854709618171220833327203134176430077841167009374618937951680493283564509063861080299870546030083515293516848690247781505630138639754047330134565419578832751895324374966366033690627990825792842325099417811094141350407532440160339953577422335885264916697891373097195760639660105877531227732090320902543289091364815860021819542617230881887737157033650011173477691058662921746293096896535631694522995883236616861765410803340003442292536749973683256225707759273290680375239545996333861872342297444617864552320354926408160053111544428320774700169016699391644078867487360208127748217136473576634890415208778195173049315159492769247848780689994600872284176639694393583422036455048076952755566136954545445939526005658082833325074003605826573723786907929793342531102933124621277361759910121862292065547049313386701537959264696222213899286052007617716074236335691528117484454493245899563995351594820867314347657521848821383582323184806883591367520943831917094235404908796680266022654027736739642335765943337690996984328916130764374294508773926574327328689160392495925833344261188372847578382806881823101286447230709299318968887352917075587215597646543545611004038982251417377012377086831792630692758212032502801915313946987227633813400376636634858000408086341459033168275339383291918000404149921582863731397851840899701497525615109651587002833278259085400669565693581587392035983132753776080193741578592833027597574896332350719419764146932495666292500917007020008069527495980263361749406982907687447118485553980695590303292732643598945202207331955308216532749084936316666931345142065550510915470083480111591580880770733129889419573324869939486023064816759596965422733566834837009046738555877991638891628945615380554818172991450993398907658906543784967956892832764612950640513298824622054368622518861399366775898662546541161024040782296652602691667108571380342844285406823281215898431931350302496668582589088357464779415899315922156478328976978233904847614482681670948999667365338018098124197539646660859544369857689503853364978833854900592065838176677634218876825975629601651920308829159863099952860934119281268064758767351632665045186949842763061421597488389371041896224284301454887169483727020670976687046298842197823286338192882383982721543862918609926449513163656392278128136497302604078152422206730719221501303785901454364143126059982549784227017321972066930432242467638868408446733556587958036830702095181083655960369157646490545197013467682527345784066872950118950755132560378112093965004786778444410470253942255502347001188400411736611918656228401780479806034322198429130970943942611236309393896908976359693103378362191375451691706040456292699673934639023423020720207279169787394380321058439562520244148994101131375180454015414369781952162730362138374980485336473702486702400713639609533938647451727737545955778341018109773390504080248839000192587971498855085164393347998394543795830536833361003335734176428502372477681621476837273505344635534654444910035049650031733506816690951503749418485237045312311934053440843736232176728354615501412220767081705778812322162550565465689129464667327448547286126323317915057694475666914185661938683732966797332506500695881971475055932961202364990889040383193435845465371262186596601433986202354406982420894930858532792568485298883460838460392265927150796370263729335057938274675052459814406729466314408964957031326582194080930527218802312097280920220396909574608262182143948344943842451049459911173901323897358010644256080781365499968801814864585133587739841007546967543958569087430028676450874814128886328265734089447237632737089960264861251789513182542039936810047843936997071072592661580510448012109042760597169435064877145271377036661196050791403342018235437678074328071826781274837756696987204400816906606404697890592174269094013536861043015936624164611255349588321516934140488910804538548252165613861102119009821602046577220210977438005066389062060119594931473130428732012501997072483283862652407795619770288961587848259572405591957251920528590311916282855706439371070465236432619506771438069856602940111706925434399733024786145696499589691440917823837079188023533599895991339622561586389575081874335287418396596881862015104831147786769805318834408786436314271293810371233613610783566176658567569218722819342144187935838030039188769156636424131312934490193463260245237040436151560443299140528948748953452991718777620198070180964759389324205547750803500559428896578323127387211791501072811864848287092090938185435417256835648914630897050763006633420456497973193881757156642033428013905553922701568259596293698634695306815804274632782192243244854343867170711547159776831083259693028049500047532350766961051977682408318393891775856202609469848216677830665117280140574719589860077819751249124280184329556477902075583851490066991207023479885388272655726419881003666697557320291181102395595759505493128538336032793626394821878200693470378371766131623633302879808414822374189851585371492436892070989008651709547956266523814764942220197934386526868838602463526421356743314849003532593574554497379020648873500418518939566216737102530311031109050728447675817786915939904426003815282209482549335619946392264392391956666795907777357849827880928433785708756543361291173616760196051522235606338293726181699399882637613128152108818766874575168281965344167177657112327716816273709960809990127120378263628689153502025278751795440063228288132332789132157355941670331916525363966178055219932817800958382190165256287833355047574809587412948318303854823081364892610554081641428218014620777521030863139350845300841488589361657724699969738268564090793568778806713547215252235888707043029927837331771625733991659289870112606277405254880213357006823877400752678169826581712385044673564931732627084115183558130971433867475723042809311160806155755074819850868862976164854254263985075135071992858067626483764656518475750595020656796222682886604403605581417163251859214861523110682115708925696346435960442648701651595190951143186576506702186877434217909729192210805983144334967654142579405764542896748960219009710184472911857405956436889493948226565727921548119894826992471116652593346998260318163062685091835889003955259513981870274370237472296249670358642707464021075929557464279393210458575391899890525172160329860356704499366867018037607771401885195425816420147775659301766377939238932760480128689661011848716834404836088602700055350219613569075505329361096309412999331534274802406331657426655364438899947307506153097703310970219123820085799305682357491857292945413640021876904773070373327646002571415431122566626428060925181036041475505209906962822190870096504217291955078121625356119129202357852339161971702252784925032285703216584023156228230883939396216680060729304213204848887351873472678245453309702092652087774030363169026996619934719793216057321851208291308078728147260702776076486469994356250129971000235620665803072701568767816824575906767410973299844054074547414896855375193836701626412489807709048078743989861187894904612972372171417058676929915912849236527419076942902488355226006215596361447456552167426149742522967933844871752963929865208543171819103601147574811285776036246757613469021185259748525945481260223803862698731291621956311275613045486898542396546169106733727409130729135854827989843212603136424904556241922689012035651154396656164461506468089490395548253036451926165153583768867372329975110414748469250758440435015498659825349162029208991144363802948617522041640011764625610963720116816965983671636099605977145159069657919969395452074096870323264029674033172747629657374200125138462151150927137304625521485784992907459761978284083182949779942232737361977393525348144320517462656198899953076148448207473412632743481691462756459802515851165329318566292494039696133617187106834983578232566214527376631598127510591392264226078806541808862921701480738378373825819572802198514603124388281197844729439199383092673451546345567298262332987039843877130568920604733599857597660373279359459063214475799080313125304323224394886583927336595062173975742504713988472282066424513356473984085776962383442397448667645373347329902353463052486433280893125327487294832880480520942805729062491743698215550004820410067825047818750041603132169931700724722610218833114964876233503190285947085254791607745676545025610012621945316821057454065108845735018892589791274920448392752557225015213169431158740113463042797666984860449231458475079782203949535235283245680044866127195249719249659880226110145847937923508293650713628370545509270346893450820263156873117728647144089479943639522685249453735004312089512292289479180085632020642782786134877093533595491588816223450866147536135571395774121063910834623967929339961905340573380259006196330386483753867404957307153003052045392904055330787362115496445628406724451342903574828056922983178813704105673790347435738153924809264185945312935508777542345170568480008917717692796920557111402368114016022450645038929350737846724808720756840241824239259022083237709322324784030059400140973876425615682250386182736390253676308693632372818760813093585848720163546270730743732324315979946265154982901947444706203461238569440626308713990792941710097432140905880048130780904507268435602412524782168251697983568166718153790938153201878137063345783215512531462223000906572634734531308470542110187173275587489085909087648508305765928455158014009475215337234045263825919075998892738345735916403936134544413521114066055042838016139292160554255552097063364282547150591536286496248248308589370578799559276151629954144480315430674022297884678717169429843786159069832628096588746995330541881250145172235630097419839692679972852239807753109111304490535122989157201837565290808757475370236883300162373058664160084066693919062287837699920636014883644641798829365270224172057332141404603562690480173211259060285274507219736007967372234723970717034403822031931520756517792153552149130086128719567943529296627257825797389000262442555183717010386815713972112737289721646993362244077526345046727656179090109776356063796276277146019792351006799866915943327329130453302748791444311324673318519041032869980395811123138144190198364973291860983394386494146158112210479880927062948822954727900958573797258603576292092927747364087572554598465584197483334786958903911900129823858352297607840492340472082259129430369883599689894952254105457756579842382428481685933782622932132818983927991192091721716502933082570719774803199493680448254176898003164323746201702839719982159191179506532369466816235535099831758005236375451204446250113191088892031979484142797077885273202508786017159970095259759200006787785155196965741274556034359745892614568215055478277084567353593805916807888438455220895574454093458646622753223349804737550768675896417748291281959017229716963048314540899122097410614862575104230665102917314527987988489869045018173881840796367900142937444456870836923271075881606451431852258041882629308158794060440018893182824771354472647764414763009997452538249756099981819784566984835250723765902983157416297901396337290079773734772699931865883572229802127298747517776139505611639248279053036599521810782929293098992422783757337474009783932786422386167928038204433170636081842769722018787350259466137518882846048600244806572736369742798462732004968722987915743898065429387701722535533776707902406221746586203756949868273655586577018811267312821492786019502426931580210415159992047968079399208051102479153394090608629114971143467425527236409094406705509291614160185784156470577191948737309737155081285784022405007359676414325201243323142090108894026489824514420747959601410320302371234927326468550462497196704334596295603743881967789074264386888510459820047250261856502501809069638621384713536383044537692958896518105308065377167143434422796859554361120126251319078293534593161869285236594366409276516443615834573076783969722404467223956752675225406711099816987611635186735476022728206251000166231813216951423662460800062106499011139627074817189206758052325921537699268296962734404935181309580774663854667217538286433367896884532909578379362884460250761233439692160954080213996417549312083149866547575388761413465953496102111307949882246359417741241072888249072340921346497840680006941710103172744494590296512605847311874073204826116989967510159638801913213682205921312719875131638970865149043331733589678447243208034211757983756647480431852320959160469731068430228202263810738077564425396800950867512969241534065268246352492311448257004447025917856151948992541403797985388544684497675409280715596640427515791881540034366612115265977607748881627281222682654381833452689016024083426550317852523408683340936778159641756417992280258436261872913635991793336669996376945183370007547549636322083701615114213812070618619473954002326691124546897327575425412216814703065439620901237727504469709051045991561887683922028443230993968094740386686617021510525789971438021787283746090931071326283871699917030256878128700961998576101832388899321629683167462773564930105783684485339776813966100971935567428888849907739621436277632735167232631447830640923564180304611314447467865729263857889778842775333591625436706095059202932196385037436801681384030178194799788550026900051161813024021904316034680362172678059641702618243863211039114848324010641760707924158868935225371265484502934335476034857598645778545907142008124467766737737354015201257397589472114361635933440252801517131375616928133191156881661185806894656540052736288722869194256610531934384545237491045342266885643714941181653119911278704395435354377666831007264788260759261553787311900629141537322283771770831350008031635550179409258524061441541293407363289037208475818327125358916303522064498783765968136376986806139302010495816064982122340128835161527534573934274712242725927555319334563302462009027902958755330643126683667166359536272192123875411752723860505123589349314060034045182861430202986968686572464275494303236760534661173345013897174217800838337544296362252407175878285905092402566001300233013037466300888354938133699556778115214260188647869366043907044341757907260154096598032666097727025017521703576241916937942621621712025339880551812134893140419763149409783588392173669461050990697907984044135194327254414443397812617890509078964137775340329492949746689920292972336826206772215124556087024925238245111633531342775606902939543040770827109688898337445677578408347330092512841657278188654096863091872930914081473033551420721855247829686074392146870900212271670546877794812726526148345190107682015237280712520324350703195374361817317518670724589436648584632359122984276863875121950717690258126966798713507591821083661298868764494460760242355278092139058342929098274248169202861066030181000856554136356755651444890721963776348347166462779664414071588132504029540069532421355062778302064009421420327902501170643617248979043621486418603553395178395808364652812047209605447753065324316912975291707153848141597022779841851408810579018890721323863777725041289548884601022827661283344308286343600077895769416881257971096481068877081311589336628829607183348767126316820894186903578058994265262230969406323307044234937382412320602561960679721771126714199791317317021492555422345027362668235424223162819716985262249073836190304353444848468657181615253495497412928350077078927976639570358852572740337306766521173935080871555504002056543425603757368546868009530475444024418244467033462692562090145612048704629695885272242160296100155082951011498103602486185702856178187450513555635722767222769346338353360152025735006880978317507971204503628974916799833794874217993971987241117344594116677945846829973368757583663283850903654134075582579198901788323804077473539131629136185828898258143645261469095008656753067324979676854854226840175555703000244591757159920780798483155178607897243351578250858904618219983477190551302979063524230691260130219599179420563225552808669949190554843719675864778875492110584949598670942464962530301572721862467165846277611261003718090543004972085430540395436198564713135043411725590009426656844905850441719049285666453924423045205698796586163499391920987848945875576995327571478115968320862704031257133392917275762631162502936074375593676993162736143855736934203788140353543886302593985317745680012138656060586448681540461330414301356184184429218467125368138838114594075148593436878915531828228156022180352254078985385641365604730945289779994300597791096330419663814863205240845501529125378747624633190524744531643042883342199983914369752649926891633496318486993604988699838352842759663504437881306109853288740331795517369611440411425722002164073693690647805414297181770585257017895064654022339714806105545407223767651492804150616920579944431668273404747315227990741705547719782609086590677054113489343646510261162298752998422581112699514350491231417012915948460820973809995097546919701014214342809186777839214458865576850478811837404647728057784494584384731260909658601852356669465183438511041228422351153958842432825337332007321241106441070538113793008230173615238018215717463464757726884145584744573854146664117314041406818772719062358385880144070749422293075632517465964715264954057066665431460815406359318752704025473756501363579366681079051987471665377704367247352035702050704307112054316986135607316541677946593375280773249848719077682223976253240511464592244099757650373821698371903049282231403439734618796434995319661445369405679058346268160893444667213920663001252459897940591625488436374344194192460330470430411510662250857215886551990993457454186650245524301693844340718903598811912113177423192251547730712917180657363892385943335600573364226323643925255111020591525578659572052490905897273799899190501474685878855172862210497160180486740598453662008945283501630492522459545875316486991401663533636085970539947449037754187450063750920736129509694723597923905438198197069619366648079879136267387407686237592402935843777732490244622859004479519557059712521300664599496365824219306929616493701011166712175668870101140130733360116606977176685848386320013541886803008646874579702291690951300472780475671527303311259111447099133379949418297136132004083250103067500023106972013654719588077195015427876600919298877835614201639822086177337575233316052765458656298517333438119677610136798976090282164847718655512186030070637101243175200111480943333501340055926886763664887554193395275446648186505176913726054362874474521832197812440656856817242336872619435489722813867982982642946439106365792443673455021775732652719486004246001491104974118756050335385788565939308187818301156249236583845988930960893716557673857086336200424603248855476942072833981372578263023398008300570230729076834108578983678241979044836593843550233231840249071193642112804978183171649718781128731359483423659079214889421970957026882613154633895982908547735185073185711332887132722042129252357638231179305811888737268349370495719540017297035248737643984177860221568082090959473533750001157442418444611649647723892425775151137360361270521992129560138156314410525311088244156471883095273341513528844825673811507306551142551323982630031610433643788357065074500097988031505557874181864337296731060626711803917908465183635009769408560069886238635836277808168722478989915350727164034618417685999242509440011992783956356007070487842801807693505685547552684400272914212199084280008409072889606820599081621447826983178374907786744119811541410801848945934892013854048533896790193977568226484744660677423093202056904546429975057512264419813203088918463618232624095058535057510436695578003631526079945558200680682196415311544342001769685029979115718562109448588523737121277872771973123974201213641789966513739846939728132582169413976276895184544227295196734566492099129355162932203490868203534571454226440964706417133627359573584974239093230587628172600565796013932151458752556543567067432194891752832353505944623122662496001410581765305336956764390957536317936873362024354865977991690898753682996447124770099933160602698648225009182410510367954022064974519220537980063778638518005474551724649775182023209375114021253026456344757584460616445823540280891708659772617467042277383206927474962794130871168720707056608124948708163142662744510240597296087145975665643305826956720514705720313635085584243027367159414444431278110086115098091500974661668699123751850059283057041256186862616761125417230002215728863207759340838699864370533895288101139248969306308008805575058252035375351755448331821497010506784417059723605358758614105210522655601057813716466436678745041905400007304161401809810058674843229485836473530883541293514290955547162712798993456743776755660770053578084526585558816562752377494791300462857035952541980937379428558463414081235977566276350410947859178464612827909134067904427924601041795166412888871154578083336903706415792947408260169606797069807306648464925946676591912510936862707893399100461000421178385149885159281454937837371461073046380515103461881090752435734290088703565363423514034978859019668049643625044790776363946119875438875086033056227978925720992701921382483923376026593422726551718677536806328258045008901627221789256318286175009275558818594390233072741955540837066394375085841675459294535726198303287491691823526094749583962453635799329757610481153940969658413264209505898841316650747866333313563005065461903106241670147553602408166619682409435099810189456613863570667703062239398002391851063566588633280580501022467450261047205019992641650216095664590910147433809143066071455496180351165395932810573724272250546056629855071746711106605366522389135853213430740807302777430990424050790996148268412216521112068748512779921118298969236803220072147220818008916826678771412303140059411898133201972975391138666040486467923070899555352750355726424315382721775940241151518154351210227152802542212023086164680058973903248547442991869663468269941530205659140379114163771113646098152333624885333590053916873366430270335207063093317365906612159594157625999605639718763239359061554828595975026682745595512370628611407545291761698021327638375827487226051942371185386666848304320504961680883828003813043734518222372983795039807446634841285238152718316527916519081086573629099247276789759733662667814577475430773224920597332643867901749534872534087150955745934341782372733947521424804356201061521717750285105302220803287652499721378080200662555462176073772995190204869597650488953474277867851011481088090848768326849963384326276650308528622370385530856502087111592571544661300675112277827438816266162840734030722758143508287056261764400913664233176679147866609108961089591502953036201154582360592316919245288128695934280747946301150770422814510553393464516922446756639771537198091300963454811987335632781745026127187749250744859626493990088482547182938942150655986756116602964882601293673707691049090869194152724129698387516030732517551420114481951104839228954573067397022510306267848164309537397852079205079713054804948566400587538429756336442651283193541986367973405403223710741724270680676606670504953232256491560020164744740195311866423858855203028969627062628241796982694172416020677737379859427229542346751468711208313402561927565316930750678390027621337006984791980170983720986350520287900381183881576019850183235559054572098757742204575158872638731298847893786186402548685721861178697170296626141318501030360998293268545656168700524949956550646396885805492559699236004651574278285419512950555709437705902405161040777391516527437930458886750731629495515182339757489358543923962768943811154258619491950511562287021301399958723464388953437186039866782593442082941973873220419125477089959270406077350860761718037255983955260522485058270270077853166685347283326386335077611215760932802738680572436768552870068759079778257122013918970602522097793725446970429026494315120310038136968250581489500318072331237811938716844930674826778829092730420045316689200438330908850551942576540765667522994167644944719325992042497138235183134049910459352359630559662443692608687925569337653813681368263011917831990588632220472674282674621652725794473778536503981260523786177971841610972230340966588505123412480646390575865760187086868746721053167463498980855456485750690383610875005476761739195641641732239713197239820955309693271051303914378236501340649584495747886158570808099124529878342563748815204788630405897734429261107819966649486546959737043062606218368171669338762386636577770902906427760089146436298877224672314150744939569054766532644951276086655539401168591518171857684074814658182815158845553024156699188133846399870685846878325448064396538858482469617050940817384705006551435397357282367209672220201988241442735430932656048799182817038580193763408590914564589760910576106545372115676379660362389524502431768983750263432583550168123857838800451617571145378531952279822866768651903949119903731685454729574205165089454238392110741854520861560851369798973440965279934654980091612452837750372660400160596231542002221709497317097115630655855452069172563200341069550270075462326453440450384058927190572057096194795349481032249328293293632871466042433473761859286957634431314436471167910663196941530234599047070362071486438713401260230858122811601149696949294094754229259386047182683043867474202052786058473811326230126517549442100618041289520939326572270378513501210266325607772864546772686618041752458338922931183065782383667040515228644756417549961059091682706577256852167917071883125344551543542155356398443661271280290085002970015391813231983907813400731636800566160748162059818073430869514841732377262164527049635174406816300061343431903489068660258717494660777879982813456029867540170106199504877596192924484081326817173560105593913925652564356745661282875401740811585010586898272445492955304960650673199966743170411182405913934533159835008671152955692414204621182022733901400878764983490593499725102215170177363256057672711060472385942439579935406678177357340418429751577475197638974019332110333383341739992369229514740187822267977617021249270516217647156833275341036497794646379651448222044223139942277800092607055995411087621002377102118412650786414656942933922566269918587244057245795918023690189269782414735104686975564331754023882037128010468071215550287714968515715351496143433502633501816725138960054997735206312497867316735641994894347019557148344937443573954074835864126707045540372568683212962029458384629485013890799504673754003325932987306479695975461916376382115890955170035418182601452012139099621981084827801980273930944608274468855335475495578955570266190094817233023066385947597820114737592671939861278314714536119622786499694157732181037785692583033788096718196219231305694982246931136653488170204064984791716399555259378076551988917970615178988742297697440771476319118042995420729114675922750224888739809649214340904839133565278102399404574922931780643149337055483048068563691893816956651337129942877623708390096776680257148362079872718891839765301681251944060862348016957092118552198369143456283981997890517923814454787960711558746717178103750525057048883441029964201819545582660067665658266000430498711100164830545822775959940692385011664973648700735156829620896711246127737618591605158603209841035746062750751617467538190771484018222826976678336591909274365618670386997354629709764873962642041650686975514391442892572062242279461216521880742809108442741844515206396097434762649860366653921179940842383710040496856308906436116145590326234151056044992956106198920500109667302425400603598099277056551734491422989838668797609506516870291443138116313463033525939709148526287349030150205746619825650776861997331230867897618100328036643940291939238176752889525910620887079288368937487441771607411370734798579678508848472951931224040920596458682194430458342363918830579446947986209926794290322927446114167977289775875418192871650533870852489982805373380306564734984919927572426947872802210059774281768986288606721857800362856513228053282540440413111078187763248932321418228016235042153870191540737658463164473660668953317084947535965715424907696359696034661196312847320973077281502805745527867627709637491537633867801903730334076608198211821892965881591807583808118970230341996466605197673234819732716515929555597030168352104051341144035991716573562416084740735920458686541264690823430411126300449174530257210881804660694291538227230930623919167539784920288839577707463921925867982446855041541462408907890280737563665840155430626044810288776128608036140766820082950867295587593269056777069593656506945636469393573847962712246495963874835327109880703975166752632644853406522682733875222678485538707320799479985435054780508955376326515620599807525595934716299639885743467655315839623354814451706849340201554816943434708421524455004289665079555790607263485745487568530649393599169924464745533092128296347748403233998784791499945549984815995124381897359675074518030183642277964519674700782478776001866005406339242700600114168962808339197706534089809444200528732276615340051934298378522086467311379210496193233850278421996514822960953658577538734008827257642579422691041046483819016128396795368780591856287024180186888725209828847435337246058163609145079989859774984011448691454336857079792219498572187999267233606159964409132759095670662684918048381295053204216863845894473178121090396434132438975047380614639902079406418181639645239464037318566634517401875704646482681515763796991934373745919965360160166573266969676091876439318899266666130294329576579862064116192844770671010684706524646121987302584128694151533547634538869572353371284085154791132520074439469736404323457714295163121173036992644356905087993493160751510816975069893563927083021940157440286179147623360146036034327644792781949278033423866204864067466890287327758916470611875214024193341546894273522298531021760406462726860601281192046993788680594467777216492948488504871698497397523701596496241303699912878622605354758910984671756037460871425120990560674358869814118391989183863473542924544316207146380818312818836217990906790755341674626766887046642283389826783904575252837876128550834614214847560542171879441000611247310894910849117109785664992634809520447117658396289685493871774132541637552893924229097211957611424675493532539286638114548098309625013061168822586843230601447787388858620243323111368004808308748854177455091841571076017219396495832318660412244529914741458616955138702887463421521482372419865911849657158992187645454549770663785000117173607015471990915129435919563979143941603170343804571092972242745210923323881480677977303491637714451865076967215825055691750992108709102445069413080616211321218827319062280464932235997200400362599913198566971986078791959436338164801457278085489329506719903187514957249075224452007123478712230112114273419589922433899866415027117384896653477738058612380037951184732709680204109515997959135535703973651925550218765146683097462231852873691629978265767282113051224810059858386486650726875125859841957644398271646984657522385941185131271684470101212993115316614403847091711057073616189282808463888095978528064599315794735215690989122770544804118193759246400117716801257476572797317544260508097100711753806726701362761521109684166718847769325930200968517522068738109256230255761845850452697775383182650408194817821476062335814516773889262396515904002232200152264570610674361899109148105474521595005826892708820346741785014556505667514331050023857017429117887511648432357351024980506905764504763150622786797280581904070753630936530823530664659500093853258874461238567924312199144532072489881720467652410209240583842040253621425632790534902170985607517944486238458560445712450577411869565595021422581384766977221897706630111540672148284627678117384907879807213949294133511870045939597195795571521152561672746076363499670795184083509233943809386040806235602553899574963982604095297571361130121427511091879132373041906349176348259633500176672077883307682651784114758704459362321683900393695942617536214147608454079444190002764723488732394207823107730409349147729055176896258251257206127207098965452960372197798797143866936301570849118145494487676070463638983067731276584446805888676956086004813201963819480645809145770026843741485663272580378635145891620936976995128223133495626457132277866139300298402243571389777328996864135108690617332533528376981119062261549362851697910445856691594345128608739724673316396522572405624201850518859902614774712557493896500349436963009480038021611221347676403572001828121379542037609812511533437713625371944025167990942640702423706549870275889080293903519296027481436158791992906314931538322409848604062503723894306984619431829118392296915648940641969071149784683070439333922966631852754305220926850529377758135114181442545884504232467171803258444612068908245885499676237140823034246363199974871075767868455844569073645116199502915838726520477159770119147827707064523614748917763273599270798778172845190392684312356990483575130633636418800969415863935197204298396868208743878181827128484128586568119192801022901871069126132644625579687316266551304331033644529549157154002632909189806535151212804345960033993983540418288041491899843518436484489757752642537512716129584825791180375837531199191590100453664708415320660039044216959195532846509082583260316581781372969117240738124719911321107973471455725841718529299445974203006679612113381162066517891253834029149697807660581940445738190812984178017442175141106748945767821893471921988084007667694055713063749786172051952910489449292069699743911419903481672626043022628748678993811254224823667880406113398943436512072675126489695403017190009628887983623809510355826912825179464077960828445793630205451598730392296910477365384097295960202323487094788613108384472113304824269805583645006984885187057350487879537798823505732836419900399023114114681447879838111012399801837658672124309740679266670518093051722686998023343768509374767933130538930369798829237866717314458843891398400436984797875048586971449510481048519339533453176574716236514658379070180115854895151593215973456413826034770327616880314465914545544250309638497707524288898620517805014824233652653247325175499610135044358846333879816143574760202389895066395212197181274930922390349442199859594860363063675310157782632225985757473689636094864397729962203277711138007210951320430880539817412441417009345174646616464290848633786700939188064656939825181547759601137892790371516494182678008937659526786447587046267362848481193983089124029734893132145164874658709680122497962885756578827042918188198873831577049364414982156489040564867951949744536855248628197307129532408189499647166525787236475865119565647502468208755967648847350743056172297107644071618974096343034182791760921497156572586408494973928233896561346854573077926497796708379295459902199765285761954609726661447145011766281682647219667711203334162853881473935300832515211526504245126074738805802951425044380663949083607784375390308464142834021032002273523119378537332103286717959911677898195361188760203829931559819936471955206497510660295991794835627686319315840594661278543030027061213739622607821737126162979614109938009019834375591389201988902868409900189650521525595891715985888501070882004757726369969214103114070803675467094810788118977828154033512214680464796768481414616657235093113274669363257319061692409899660496167699354764722255235607192919342073659997599947521653293276765780715928690592309822525384076281494118583804961664797514878747303592523732257461909939771976684853286599029516625344816140767207455760974540534115281497475885598311536704138916571430629236297582645653822518066052300458906461894866890934134439792001011605298512500267616099576505240723224198957937663635326252551161968676032833171151424853660309573245001209909353880740909962283996527469560968361102133227048923896312342117137128105904724938706804513326352986004035218888722584842415422305202087074331723623965874545518989211463213707808067306932519162963820617115256989026484282137531181758133047379766077184522681342891567962788042620339941571163295748869818111029208923143076284488597827439350603603619145306502084427090752088117602605601521793881565829333674412049216711601843270579169360943387676041920127361937834235812996773525705599163280315077403631008057841128558037379133668609525607310465705321274046060512536120894237332257693847080152991792954095769829684980343202588742728253502915903683983517721533087311554606542924436932742494579089017101692629211606204031970373989305021321450728191823062458543288776721810273448443310278393167979182503480340418367312709781434479447139215637934427533112477758687782423726785328872396211636192361857352783457042572513947669295011585899903463033339212907356399129404887775918872230534013851560565669379926827181009039293736954902128055354147318443309013565923188250284927349440525222586663818690655949012163722683117013546997247583166463777387606485182942125404574075698670109388537280927317079379199611586360088668243218547855193617292165795157506027571378185885160158859269434347144440330681158074185436291030403597919147904811667959137950886842389550058137610532960007295990555545832969521666284930524019063413494565327526397770079503607719245718954010810082293540376878987145119014658015650751834587607245481606630625809191736190355955307411541838186375573040353107352063188875087284127227749804191712705544171455909200127735413198560194944869630847037524319562771162154313827638753386108719816887320155330406548205398913328811664097086033040646567685528148958538102826513160710126215105898276806401485327605338816438486388619678462231975317812314803201168013048438571155177554921906747636128654442963188988787672475449012622170623385393762197283441816075470731541698035588328181247921936198036127965346318700416721272241618455640814831931746528493990302612211853277990796206620633215222862347337633946980395840036329757613177075098540961509044884944652596860638247420953679995231279072291435956565106700301622038486035535480395312600423874115580146968226716211229034263105459049185652653063308432599428195094190224307366904917690075984147924888056236970085921328895457019696924640420001314426344556543115620581178807292683229374559861805531870558914652399181343996791396874830185185424113961188633003684183402138873231743229989132770559676334922809217300254384368755809321116713468705544347768460188366976805898535925776406890407835195348609053012144178519043296696581516102703821264863062795238047772577392120183191829935907220008930109794031845073936200581269771193687513265723947176431581414087077521221783239181463324565330498226402782355794724698853620670598636302894706878695355550394943700310597347679694219201658181252375177214799505909863120808379172629740842095345838267182546509869625448480067529668895656247275344930231575033440713169751523701360248895632994236193880160521780460830357489162933299405285311258433409763047698179725659213301505644544734056960326867217437534738152309746042655167776658112075014412363855155371849554756464472563578210749123977733964528003413104152680537086603301706727885610244833043452428797675717998120144173989816088053578980317351726903010576191626340605293373849347752445063553127520466893075803384586264132590448225895576057079496272376869201910681662963412073074445529775417327026453782432978993326235755773266134812415096936477595396869829861906128914680426816041085959213794450355196725347149401420091896194440701756878189382607035976846341686175096378997672043398398170592639144517101462710389745661283036524291835769031640875392098279082460263950036237803169571567018837112083269740626349329734612598550849943334504104452749611640919245542346178462736507991719125085936564569671202684729712235779728241225156799909901377073994093435496494431117042508945942850157603717372997945863257718615658558798243144108164320363150555288771455726674984011653112239452554991993869466404390894076968443056890711377464036430603489579017136623735687390019832982890532380057537534550708985700063224567860616507206877232290835928597413385489664019601674795988546373573866850962060666177226250477243755003656257451281179455728820378597708726218674780980186628001334868938675235555999147878468731730973897338155395690092289597183469698776893225894357035871088847971802596976516010351113376538069159237251737824187597020233648779365668833490743515630006242928552817151576992554425342129838292699797802938507067812984598987004288721991657004261498875634008046241564096301193788361742154437269432186041856797718098055555233464800352411193812779664079355215509390569308652631600617028401256759781350073105089600892445457359395820022640142686802336290355222652540764100394606161397328841895315859499190031804593102953823182807398712268926204211526313303741270633055290617722099290637265559611134771028069882741333547613267449626143818356139384775616978423216503174416621245059157067023030570078354421288065853936407217898796126485927692127814683543007581456959362483852414144837134003605506318706984785621633877609820560035744424166477578445715402960645351157018172533955569826227929314970106943193322019909643111874415821599658712492271471862112423739133642208932631857925697323574328064008011491829994188561694912587590901056465185476150514792278574377509318168318116101465137798303892179513668334865954007629157114133829802128523698685281278991956290944721104397312131679325106960265828074833530110061022480890699655356777095813237871207311445397253230377550379487919860298683153787448930052793634324154460847551387347564467524737128898409322519160650009034271555376816097547133797679759791004041366940987391839425726605670193245642926060326863804930753922524575972400315208989701679525964398960159389733285144772139032055805446115905324191935643556579083215078364941115344610696662292650672916144922101994563452744970030624563174815030087225068085136091079595186520381306735379806801393840047181139898998514266792844468212383003451263093705906327677337663264632828376338708681944256345598439131673098187712464617482985561696722883211237609430312525923973845799369436685573113533765528643967804584613883621458564845001475835350953830299767103104567640553426666504751108156789275638582455234479120404404813644346506680203760533802706242224815191163499556536822627372019435322980087729502893910460655584265731763008715819253514982633342221577154979153725462173535059470579302896905429383372518208809588217304502316271646408751049778600360082488436515292063720349593143184384957515753779833684689815901409141012196104947267521167016508262226226839644236272877898291305092569670984823609600308742630349982831702818400264046867555458568618390878385899821784823054296210969988706908736595136965296852440549485218773387042276434622912614335774776792546457797710510458097407907500911024278980337323920100068353237371912447265847755010390958995786730405230031144124507874685475380798644459286758005351524121579236019684386635229139802554560595295546237694605292804292795945331068204151191721673515907952150241618946060627662538239316903566563205254534883357382136960188164380569831818638208755576287878902808879466424243936963234168905801257092462570084586584927600790551028406918069451577788395656038590937234488815729927931568860579663050698742055771454046490950471000424118423676291009389397615493060422027163549491591869142477100071003092714802452066470876184272704923227688545245729390428280510268721928997310351896515785623610142725108941928112114713800329060391410432027495358699747354640510688027623981273384540127875000635312150466114574369210951456235634861126031309719576225617329457845977336262245434706393985576098381272671465434221239567652541005552810004123479523861392509159401008220958676343037144159863536780687513263660678131499458827336878034974138242886383521577010060479994435813173793495473097828473095375304780549954704486091312449917252260991598728373407785612574828818350565126039598954556099914698631835004317774700784627950516079867716391708109384103374057044216351510815087332062387934249839769868989329549278441120619301871333412148103445533727773985517524829044327348782713707736754108522008729037347914869862821061483090714209672418625270985595269362442327222269996646225653664874500303676109798587912289079373370408080430807075150758534772503146809493673375647828945635270488132981570356869266452394610858172596479815960424418592352156797003844814596222382476982951875735185487861360745665140230287663228069958516258413664499368760076106663279214775358778210173908831908222010312380234254898622768161565670200325480521126766389579780039675548539985286294600368716042197303912473001450316176800896699565770306239451938172693519411285736749794632915125877843082819529008365280637108661964547436062122026158814412600972080332206475455820789561233982200824665996109074236020546081161579655361261918824511093482691422125271668026757138933793861410734985894519474748926412058268285237413073113847625211202858257242332074539461074736237366794393415654814940683634316655893846125891750428242268192322643084435471796248709681736702995032025531175933902437720048271939166296741361616855626007010337969115888060594560992893235452775755980484771706555418152048679478268912401043454318522886370887201031662378618458391751074816470539878196678030595096213411351422110109196794623293453122096800015315133367548813525131137994413310450758799122837555355250625917834062352861880473411784227206581936780362929197681693763030317124515622126201786319520688516099369697895794955219689917920387113639938532849744494119179358339312326618922788004000927515508253553917905603533664560176812288357360486966752887129246910128328798951309377837284760247064335704372346971881989137327014956240645687802232329809304754854541998064625032358593856646583444683036610737688755906697629488202695125073576548963191327703388401476548048609873070392255457545392202382705767815398125798465955174308573023078254639847074185379038327988127048335087074759169663908036560048928704202178909918147091735249126395696843069139608242277620748411094938106278799276083126046007641663163867954115550345959597012847503411513992630701896201772136830886320926074773368801401312850075906952137275303208300534314947592047525485741494923924299487514486633890367078986247934331951508537807009718638851855469491521870402955302919762630057035880770798346993538457560358595377897824741249676545875732290717327442756207230205476793173309887571280032660282146689975574268400434834506300007719339711970698110720878260528665923455082653938382878046920108769477815537146893499357835717765548498265440334349322656561398454705398417150073595650027594614348782445635624350878554528604967852808221896807579372172594947821215509296320445636337946808580320011747671253485591099906562895841006848296296069181502492319616105827363775339928757019235734927150854855189650542710204994273966453420265322444404695938959353408562183290155889598326373077264720161521275572000141133437623661411052019428793775651579829815425052427075932047167406807115750068038691561465384753895094366931872148144565420322005340844592395600154581130190161509246420090472592119362925241247531357221832036947124176493861392314722633080296322683668134522983216518804829261312241391860297412690358999321078975344497825389584926569502702209735427129216995267116543867223008916195432724382137481315213092071165385438372359774313554269395241790411480823900893189262593820545466135808030593989590076431419820831006605310041773694505273467237665197379949426840837354660096626024945026832305116970578857473160686975866076120291207099079938994378887507997954412055576387074568720601112560497247626139509976621029589020982200310942084070895148798551002267567671490093601818994062400465263120402571745633333868863044565945551121631412007698442805801509428875523371199255635700265622875237176758335316101297189272869073991795602297109964853745554544091222968653578876373337347458894425205382769102514059913198006027977278368331267848975102565216450514457832391093800048136969918388796865106786466550631644181693784926877137598640236230412740422591343332268746492024098574351011683930112654257054649396323506982029815235664996234027677174291244100140743453550755552883593750828008369488914406266010060812318634393475871179428451264099941461974433851337719340325966246480180099671383995370191488247563501273821008011783136749513542787707835973767157248023388891595223736434719196816698112197072259639279507751132455492685700211628805014952977210159808608689948387117183504638879142317671827091103955503066725065371101787053412880385607813045955847747943306892484481509686854444512467138770171344228157850066627861330498491772488695183410487560262494691337563984122488265576052493154899168840033507458511001606891338194472461944844815797033883347254253558844842526063669044344666848317854414744321746840261199865343362000635448200964012773456540541064053160777089052353077394097207455066719626530294520190570557947073591523559839806789097561115766974700745386692584252358391233741144373584081308231092018759114477560275594650472208482428500332709342719078332362684191812720402185279709034852834506158946224931693345440240953460430483829067229592070351400439198391976040165554492658100194316728170214040499707753862055792851685907932068436322512842747488487137742157616674884343518399468391858289593384376922368468738785922084084007021930561076104636499248349631353546265054101828635299637135654173430199926443625236150768766248552232760600874437712495489298187792478766551757782369916743071413114289119706838126387132451324850734962126104186617397726861959258071670867085438894742633523408654640066905316991369956464773441630408743463888545994062849803552109655112041539996028871990336504120313730209103669814505824615490454102031282561117552572629906985964644020025911239941086985782604384048177797557920793049974453023991391302737019745404555242385729885716371301853913099343081608853253042629181643434455777368444494698595530661220584194587975691530894893661374086013642640074646626512480450638150169697169040831964078096074336369176283957332408778020368721376360388802322676027925550020997156949224102448896695338744210956010112983444422707899549850846746994976732024844112519513371824576453113587103565466150930532583370066194696099099369406377788417585204271858356838818211764505957843139150620393963665846471051018666550096089282216342382643202135638030545596182463460147458974989933797048079367071921339544643573037949181583567978908421070242126990911835133294047831498734239448739069922706303324394706192794742981707989391517716145165318291626531111423714138374536375021631473219089932699631441766642979610589338389509726608318089073240614771552623857385956828805180943333736339684817868534944051467595559393373993999627928600385308498742616197215672321896255973741445592404165298393930016237593508103503721192882972284822726795521575472441937064264491396124081028798029593291918647469191309821782348491662921834787152427948778836204077654308763783360383126381543126356571488550045907657827426833744354141442937727765685894036301861593352265347367116098044836626614498660921292465188612285600231540222523670214865818865055443605916657648211095562700145022139195282824456098768942655345553482148287274596343303590194762291841040602146313292833748588143764321665198807605410980801387677249389747652566655304470995358202671624146513781435458777062998066190094589077424498652886348223110405722753502960925614931286942947937224747052187814550237804286703433287700214936233448543309415097614040116257268129015816842934495950290621173951225138048536278132852542546183576779157590393649349175469419754013601450289638310260973968581812994393644969419794800697895312258489029181555588241833323921742775115337248483752751923828808043116545906381716629913452399925620229207717155958488502862541472628993159127514396522778078634274000098636628531361902934561457462595401125366144165129180847970986833022456024902946566661965977515132730377374326601364850652452966811171103563634512481167778607970892900784215130993011909464365756480011864256780971668594732722656730497076684732851702633476457870749901346106232806552875962723091764328821876537891686067728412854934715163684040919121979578172509253824985608390662905006340746502476407831281911511412553782671897827054250173365205660136430197376658498974562517661585583359450003436592458924266986834095563234128972823071645192661551943155310177949963792762325487739307550026551393295606521203809364655956403221346883189017527029463989421540883206890598655834548522493240135389572071613274843353903071707237982749852934273946980844615077759761378689675644080961753337705729027282777595030075533772839450137708405064178103464607033277603307114622122037945509940733283715636834650332868666692822042705514971739165837952399171141931470109645571672361358320607002756541537857427227449025612253709065184361519120754237428735069846726252862134916627043202510379202923372808695598191402251688880731675826368512478369961798627619017324361936967365070340139561269661074512809514717864551580802974866897959014154120081425333112907167395203527616516141568239241728435496236385513212355536794518727894105662074580167237320668001556262226924019171812452129640417075875929383334856282875493369283468045709234192914303983311629502142674827652873103916197477803061383117381592634187416310983929963991404843806094202035880882743838201027492571800266705645355740347039847040580300381797984442004625173238454957410982766960084719814980576461445976108492481600483359833402426087060955313780773445683658188007143065131226712393761002044625668403053529071499538791194416049639245657467045565809967332148355578236847441634253469293924073725805250259353163069780769935857939592858883806928528176187772123586814238770990813090355569293718963402844452556346446776201040181380615668160171194330381303661711549428116958288949704876317209024343293143531418973951715277934517174569136796201509030592750076239810273313221690004932078589334997357929637071920494981532458870417076764231462332365311436065193197656293319993011671436234851466785958085079901379428902861620953861090436091914081482359099300976310342252504436014128083044789782085588073795639464095677096561184582202762910777334277135327467201230904243053978212909209878691346183164539539748109638719417881372028858912360006639074460204902786655512008995969993095422023362000483306067896158098721193808785577242710891111149698043847664627814344619140313723925150577321096115852504985672118224697682694927630973774027534400533266450382940140573941546138220109775137986312935929568461781144989043624142674689724758145581660327571292490217555439069606330867446610005632762188064963543876464363208495270765501910111832820354503322707194062731913692698683599427299882631050024759388965723445348995582761618793707952344489134029516693200703661192972498355064577858439093112006843632338076822705615133920950261365031222909592462894093981069939862718905880303884807381838173653312411008641735366306513797019112729300514649060391451639620342398767776125595745874641049829477785323570292770836480144566524528962467150447625365095862580464731083129992829996282348161274091398242735344505622957609331388503476855722628736682527348715232415287904171994148168447849274700324706943259394608961155429865869723498006310686353802871030896862409563181967113107675754572961597178531387915920553600502928716714607670488037645382449794045722366446994626414347919382594185925935465318531043818292375676678889063694967161769430140472538325054607123381812074634718890107390460152144593321765091752123635658293609380204814370388950157950087148717075044015591603890074248615983019400361231825282140980496764234356538768959239446257747478231221008595868566227239344089503958576173763608901386091849387923677407589517446648990554829835450007970983890268268720148878708310692720651823120199444788859557787785699586486972478420109876980027744790059963276038812193917847185315527557868937363906482013977838469214820437003228076480202101432653302927066269890658675546856304013538305804591335311826727630602903147272759634016728564957609113394565070304065224990101175764608152649904725808808030504517330180736289868021033332843336593644969360320078981571043109272735067921237471099501061910559059618742903807361555008988115622814248767446602420035854587932314613986400840725016261063264565439134524758975032292539865393017153119581301559737475410704979406226188977686787095660940726547075613817265569223095360293209277099829109292893408179593433987376418641015001018089322826760343228016211656625674082652965421445397153577184375701139343797961944854042985294222370924600191392678679658884000206267612768773524753025943259093965176303465582348444612745109717118328930223532213012254923660727951947978008716611294490618376762372358414159761890906942330748064971947184154078095221173335353287551726869990727092556040349783184345566237553069434916080436476363201935248514383991281017563847752219280139089884787706315102692205103151729824620592190000374752847543528226136063831507241151845918970308948105528561586173009658907607273983077387920199465143030194890441937681557468504082297924309811559680514527620743903449671318416571348779102637967867327664953366912374290032645249369284668958291947090380418040038856690987749091294338800439431573174163558965549734207435505939066635402380314447910033267987549112970797426118616587924266087577656235291049322736967191003097351454724567236836996501458436565477876147017946147888584477070231658379401500180305422519111493978188661565904613897090554696066973838489022604928078715683371974224984862993981080329599143098622125185382880639673512972827817030445287129506752092891521901701404008596997791820681661158187282280992405688706008637373087060020177629574933275897755411384885501878987355537256025744951258914798456802703222471723476797212842485918284686426068044740093331987513465443546744780294174548003405299283804142530544120932512218812999047776909299938457962553221200713954522204208670906575032966046218253626334160496349950663692604201165557386018839247914343553915369918057607616577131677085076665698539580604798757260100802382744365265570880002119177262169241305536642469705327717399894661035696236604830778726076975355342067414021942211485508108570151939959901071192308379272302101411203718667524933880367251117324081117814872672912351070446284884925944218448548970054489550904480973552125430483601403507485772309702787053116577021555806618218773717048691988921412804511091978723279602735384517825086234806211523981227689365378206984329390489484133971231353968989505351774348776631899630013767691949584037717855043286123069567755990253858651322711318611114261516851760632609850989944493365923959734197964289030397972336653202073719156283461437153783492817591676629210852710314682479078075017754412809777854793468125986358785660158430517205806219737789924542123910577577636007654662056777114874753597905935920095227558859893998012894929252933198873341279453237782575404520394461935838595414674533785426292774717046231154028597269852167724179486301750236085334656832779540857782017097701841398217851717234014834378632080411519303510157534505075942832483478970200408949749103186440023765035991327586682435694539513956549460251770525154100908737269457432789861687922166512350269747262883290667100983792270827002969069463860723761870963124079450776025364196861523684333105188461484102433759458309531685979751036313829252657805685067799533035189576169179129606599215012648949826989052672281764596211220116029847848395001881497649088418704532312034912824810707743101055063192298031522909198066912003169921493176063415588110766563743443316856125364247427858173833016781668521199954446986555819952444859216509660031581235696060267020468219659937286795710468290929886539309214048769778559153667686739025598072949774083748446164762776647815238292485793401232302671751425658201832304733647690578485393047068693777818864996966884677239014963400701569808426693206460822529973000108617570147509338037444029199324770338091371321392885555508086307402964586830427908902204422017297078798059155435505570019565247602966535017837380952756380006792725960721946809528630434533096485057730712711010913024784405493778765874280729926502874104643315220601270220637410745187382532899275096703302365243993289148292534056955708634177108927100775745420387812219400337548666326362819843282017624016822192993441238858978894589994607540587343139398391453660193733051813426400048243749117404466292026103696177850170339312134790799789409862347831208240950988519209987975380738750825563361621813768435159004841878408848020828254453367953712703427459301777301491606314773957870900336334399978078168552619832304837492370458264805857146827685002571779528536981961932024977133133762021402694855827763110822348541177365972577100494955616935022340055642098378309090322005573566727453545118526883761273987411479667220459474546688389567338552098641718038455494301076851840182520357663615433393327859529089764609620226247310368565006366992442692070171013209132155574268888884449247998949032397342586712751761914229418799532633585529691038572579749061511546552996397615961885403405445214039839353330278415374365225863161289132048017933756763239631852203908233254491437624761376871892030484942570682893788917796751466064496632083130101276755539946335788981279683080465223160932325007378075476820227772832474374325455700950192993921398061989091097531360004268997981380146926207709462623053594671393492323390537134045870799649364774524355803292251898540552290378489363407301624270689116388481439449257639698438821370410137383958227808814866153394289569884617612366477813789102442080467349909705478663947252626788464258835472233978856142637486236153320860442388039646254197052502643953571307870334454599801327899911821493205384957701409081258155851893850283754882540726174134708076155316313010168806357343623358121265866884293507307364906092578077612208751931915420605835411877892150152955360496731887403917829875462000469197987099700122358551461507661422782965770482501609653951402696284320126393645537520702074858681125648593001350562282196280638473587515014882994626576671821842634960249953667756558172819501695613933008670004757031762651746070850643890490593630216644763624535589124854492504339652077938509393713684473787970104084651296506779825760547400327074345722816018428058162373710282473148209797249417635024699250987028098148222390523367291646420364553497795047879926185450350484797157594635350022874889800730352323871126380443073858354827225285555633222643406423430345844840284952925136969566008112670452261765438512312680538163657309394579069024993422542364216469793236811681364256846999301323196383389380276010707082346687047502045628281049308495571329825849406753358353189318264697422004658580609806878915604235612855766031729147983877278096653768295712051326105151476089649946066060422251637918274616161952293907250120713258874369992632510693441384442512805685145942472800537877963484457304574832688544817795307925222057780409355546473309024307972093173842942631024697813978830752385373459642302684009563309506580517583779429147591713747962784988787602795419902999039918764681604455538673641146916395127440106557575576384095481240205350563183969855142068344948423868541935275666458184828888531867611272856596302482816470619423636248279756771436736901483615990044619810107100044551084599784669332489133869837307076190298284555057021835127169833814772756424442927270201664578587238609206469634435756653539633464613119903525547739303895247530643056650997271135246532000538111303194482782935375653348289213000931887666053149341915459017858120457425798783265870702372819844971545157301593212021663248599163862994573614421598819739857646086534920028433402698953927682707796118939921510696850246372385590278433549419304214916150780621076941500386834455529982171622809422044193332968225918309649016778335556427394747044839737905647931242398175730645498713094608521336919880829659749917732041596208562705991399396005004866674238259150247107033695666238908075410920788366957609680489161565789233118726552331732553932207280364247526489417672225339251780713206305519625139129989781746749927383115109098335182092458007903936522473320171878205302972623488009073081280315335299026843569771325358240513840792815520978701065887688319166516855181179267415525462144965723867446854269074166136052036297499068452090602085313955737866942630781982767913641980125229773177954542833301208520502370081935055772474219364587246318284054514456595600936395832911374934070508543973336951222140819774951233509835059542036009363774037349134424293478889966346562432476272752960288069425466760943530826223010961404959327133807182929933586159163719108173277693148995024044224570436737723622249359835763444798768464631680281500866107254159306338370079587365063132538732247213840790784708503556070590493607360777179380148855868760798601250238610031921473345619510961204255342237287898590831039168755979174156550409267507471865618457310836383863560257397596941352079873907799151144437876353096882904518360067073862566294714796628230076012711381390908370248348723344571297818730072906323992919661745853418406790953244248717680820410666849854388346979021005714762077803329597096455925622934608746159697935480536073214470792245155078619091287066874973920828627499886481604775609567613173289913457419576884245152757955859306608197097603006279389521098285668426978991276531214696044799392199157306952613188143264376275536536233875435618401770477942486548484705719995348901259085569727078116533644462783846743957531125191796286459243814212686209381647338194873854548399701534670024213639443737769759393360168092276008729743843545299365312098977364689989495074706267827155006451453758429181091096268023092500777519925910565359718419222780235558750735828825658221622954182063824599260144584922955986372054670218042155299207921077047377409224498621590150382050650498204188693126429328848358462058769974716337041341455653953330045061155601828969766461766844243876484497687336148154181015347676904987068422841942733011183993713652519559183759458805778141275073335955569092981876159341430845200718767010405460531911553935241525690912559201408240937735854519373775904200690344967643825332789822767578202557268181150875186663951172337035165870532392871558721337364584703078856467032037451771772541317048572242602651001914513887587551747280462049626292276799023166825585554144603629957679612403531255408034740353760273412430741603526015246659593596197952485582989129268761297826861395545076682583283691736940472603338794784249623771324626159988581580111763021957062963064174232063378275385505935016996747958969657417537353535080141546299503195067154117841082218071614723538172915414058127173731282289761396534311111602667803074854739948661252651354599045292003620065995508069224523538817598615599228726089766689469758883859732235216718343444754720377030874104901357986219207272006573179716377714342397610571746433159855089164621319609636577387457645070850761339292936903701384206976708920137176806930619319506436923991185687209948088418539691635716452046766218859572045815226644109357203274610863551401992409352458898387557179129516448698485312077145317524633850720752015089724000716211979150438176608225903986803520310504805451249841930510368862870432774985353929304334003980581491377336387599424881873502905682716705002188880881552556511876564128939996732058118946950002679246122264463931218153597642310066827924774111282940403014318730718537434975730708199092203657845187972617466247144061618559016007418196668070839025395117818513251428142412737495259504031925667057224002366721041004706127155418544263837217332034005838857448412466015716011209556660967953898746232129141580090576127383691484585921888119757723335691212232151625515373420699275459643405862370207425144163672189777420201487233685412220214083406638392770025950036829702219924939267374742754687982168723532088932398473895046177950924334340540030920694103152870195599849336226379915873103041275420832601957304579580761340360611050692685418848211502354800950316496183958711831842905446113441476656816852213845005503555266431429295778946038555938308643905676947897787375372602181902585279832705655252170167041670481985686386047014659914077376184751225977345652373504342552309934097485790519884706684771023556498928292491286897482232385659105611569641247673787252077177882329749884519569043087024671620446396420665450678501818325384946539965247260359816404205511847411743123857496218143984582418646527977676297295758622433489858288269928028874204785288343138359061381241934629291589342881630775391879847923111676407937868415728990781480291789249622763211441706834058249228563790691841156572875632644237110010238706879931153723365563521516051014153573819808833852482528173467696967745464307163092914848161667296870071924410702263836279965816584700986729565497282636768686162815584068514099902768519808561887947800882825178940503394556801474880676836003862269266535067934720586792245437304303001420250179520708512993107132994634242779790448646375377036485410950998933957195957402815535121023316166320646587447330809920509402247919143941454347666352222683696212035986099036241684657468676612730101159447917146228778428493500181270841580375896743415124835379321618325938170962964818241877928932227038920222582242116604246309318398750452855865749902040270745177086547591105170200857420076896036388340120867130981526186589086596477547744004945482932724413557587896441602838811298611944365330109229333326100425319257566392082742856402792703418249910540900431221909417788002492024041349500805253954611259336728017865495509049064151806062290404569368184210278774651846427048783193312647205962644433754840286156673119866162989008853088279984013423905284458357582623403719098912041673340294635603696180826990439126751708709719709903652968832330200351473478350117063660759773209360176815125669384280754194409158509714908249462737256931074559395261546940083304667793514088694622888806915807273109466665772419217908527157437393990357087446045272018709335770663135933441172283670103485042605429884796245036845189318406293043494829345437816863906309830414921954196685710977846681411263995331062788845950570401294495254675639313271999576582869991737207026836706954247047550656325532001335275353665378168446641552366529378607339968998001089946464216879427787146075040489718560940114036242670816658589793068197250878392968134740203355223369007323834822035173956617689210742715328622303185643074258688594532818687510773509664080869210658147506904912544629237503847367866527385605394590493182034161735521604483656521677223348591359271952661202285339871990976113745945603102770508735380216752027370595550115508728290586614524714760724733998536418544335724610325770571820985564548358272181612759091400530709033485433962503090202379048516409116371845343089963780818482291336335934502002043608126703034278800094907831286423352261241494653974220499713174435386239954560838995358932933589087036863687795462806515541345349926094760092067573746471962089523414210225856623906774073030771271210197605247545295109022088512138148743278882595571052990133535801408391110310640842563863990357841737705105387986102991553986384445478425782284471961424541804353605940244576572408765025504995935674459237435630040305194570475485741007216656082626007869100528298455252456048722535475896219934912458320720850705940246188915010824996444348759737904176862928770235160191676130873298636216287440313965192704301499781768175879067474578857712580207072940877556228866680956202190162013281168112553589997984043384331867246421224231407468888435570554417338949661755705825050483423787615905171955536638208699257879008976719457276798316787785703817184725562939384274467499532666408207925336288404076264601372856393317023533561822064754258651460300222387353562348256263398376075170306322412818356369560358848524830724497510442917239635916527612636543601401168604599982713442672137834201841054191648313210063404282363082993300711689404429775381889250330381040421932443298286295863800361019670600457523593961310439124819302925893645398884271729911588610180156298579806721160037813304525850092634034667942699178172258681658129648258610420255888983027813985182879567496920536479755708680081382658002045008348194816190249273060538752844872647416292136254860365542676867860559841073882057239031992969951829571075467538686845423863050883068673157188155037254277692682581879219537556715845015626956604716619512069379384795133811122944546331388749676841059141073850016965645976187212072446320658806856419335539459310939906923128886615115392713843971488869344023366419277604066566410205916212085526520745693651340452964825529440296034042815553242585865249078220092250193445865888545326891008598069323881099401491766154066679875654958704177029146898071793005157646628370335373753394825820045697518573989306813998526619913570428839440597297153954701988337786498899898101353829080740259526942395024803181629327244259049416645838412351491876099322810563568914706579103133786137864929649286953256006207026972643195526610600429085903283999919393003355101115891527505147233092004143381076316222023306651354071900386753758107551016568016384220853912348025770118320641407559571943877247721659123949290820302418022052057605276109543542017591814838908334120095147150066083358290636346683573713289303296152485529083410341014636634191683287353908644180437471207489250867639818500922700006411766885045057197593482482838156607434675783836604441317986852613962463424951592747233571354220640189423261168441187549544210010730342389108368671959459639683064852265329339835816544245101694730900656828331633312128332972980853599614247073317055028543958719279774512316970644204796909894635293222836231730202493310640084647085839132960862818077513082707679474716224337087623461583403483605327323280421943723753948103733906877568074915955216179136732439264813910040237554709607903451652682697808968793845685877923700800468086750857482968334479198123436431514894516172087538908111531262917979203381487581650857016899980042165056921803531414346966104921554114737159790956999072795522064050818438510952019862808712046441115345748243732275541040704625228335573398437059764553064713125408050510339046928183568348367355839945731823233185363124974543293808567096193500860470449277743863817021806080670963204202010905130731557150395115086746022130122218284402273540493051775160360150778911853761157149096311489058611152231240441806184519742693047640367285801343154051192180415315897482305851272271894162748082090015176693153713685269062051723667705504907886248732488198077284648724137397637771547569774895879172354737163511103239194802601585489772229512018663366678171496602642373857108127329850070583736008365291290978260364285597374377228148608147810903422381808973456742526343792718496138139197386924682714427032161867872564693193246969221277885405964814612308858029816546606071317884060902947432340901459858717902586913656125006687420152787653578910749706413827083563067624211938526993595382194099906209445028240576929301391432502665788501922159868308221236747466229215141459880011364739436495327365297095138503668824735840931145487997871817581261137396585296739569122164823671133608939667517844231131752309503125598607063041972538200710752868953207400934059998944305758750377567341202437382317162793942627019125119989795165357949322167179623251305187042101840600676778164466793857483194453254208037306022469034917204888015068535969577725992885200860871150967715330173877317871899897159403053076438034168942740101422953811477366645279583903489904209023988457231233059492498189192465790727917530591405039931900811663165519743525792214221058069602303519359214768298848525571513283103155205015608958088794191030124206414343021495879410790883058381973932991345382414491668857150107993589476068819238416189047601235639305111876100888384391956068340028623571831771357718470733433055161558102192861882419802759113286322763499071031612337331078066600178273075404149854951261250066688467124847139296350496954091885727304345620115763849956912510052998142408258381852382807507837286884120172305703761394727826843699555534888480942168887481341446715898003866300062484268947268527234779654508031250466271686101584466390566510579968938401537028242804626960553575877897853374765425446897935602361778320780684615841017049874634104507847996280758093182207486835427615413292611833780054342139653320943436278024891803681824618125714722954133440619782943301922318780539673757402005026036822481654597904989651767742212702816903580680765833681808100900280390170088875089010083471235162355864249134847708411247981047847678999986648289204468493266741105769393007945457796535264381363129586873381045629129376210001859421160539956371073549199010884604063740571777567106451421323104989095880620123290241310543983267572492623683574841727123463099804552313934271934610263353016589247126305647240266290762616173364864203625910981533722703163178808211404392088889496964254263642213382982693889058346221014621386933898314890657298156309872058137857525905259000589241969132935016325582657643838015330786399353472113262833136494803241021700670404388495429353463302078689525293818678365810245052938563509356425171041443499909435551724345682917901016828102165865519989492592662277103560761911278969858621774953198862372864938000465966418404745495196950244946538395467454481413858647181611100679162606296349391196210074399631626123377037422850704100274404923446543912234327635324263872184781764114496630651249160021616525718078223536050589812916220362128683885514693825403510507999993662582161404578379720075482433428676772418643745574570048407605966257225156564334649381023025717037027505404042088239917958584909352212465798514206996815377866018916358217203127710991401079483210147452785714423697756131079533505800429624627472329705734573845037283873515586618345116540040749001094135939570416761834757182924303714038686573435716049279648571102625809367279919615160695059172292035208436097471895019454591897270132933777177541849991606429072902000431854651414458621482220030690165406445128033960153318227549909736770966778746079007828228514936867808602336745804079010774013762817542025636944662603379190334580072249253904113012937639900344965917041437744939827648698384623050058537228515199355932881124732742108662935460032572002921829262124998802835666074383306701045325603973354712615476109716368727247453524220592434107592941886960320635387259682093549665038418162222476982498386454527073679777320085042190887877143516890236622561505373849248916140773361595219893585198026931807311129757101543089155232096182987608763649562234882148648871175289496830129212243500168471653416034661663430699983819998426413290057534959785417605224012569113952959587781806749897626561273115818179176419048828553258318700310511229039541160807947672073714227471586850425604924349259788773715816022651177969506215618731528466566862059268222817312638321139252833726003767792387538639025247345888644831647482366289475013281150126679569888008268656461949345683839998740781951826691868847825100417290611279849827945801304599912882657831825850908954490269241243866086317985688626772036160527395998477879758404787514529316916766593528647793734479082698137417908889700183862481697832611458139687885215761632758625758866157828204191875801316900351794088212866415853870382312876945254226676571138329369879496476833553578411957719188899441966784555999621128251336145739265333934280401629045098636169497677149905953583560173906923459771650844923714954790132253239414574615311734129750450552456802339612520127011469228792187050323597386764105678402167467589137156110826805616239387307555806675203484417078440958456578295158127606866544004782011900588278425934436690789798569554902569075872001916969221353188634103611669833656281502758014160645492301178028573256337988101127222107861508366944213506163118689145411507006267389543647695937723506691678976743560439181522560571550897817363842839321255980242260052395970063580449932471953877761657597322245269081243539443170729587608844744201690594197778673452940142604851932942039635836256858347144149983798593371423944575016783980112110953049842823371478106871107940959192714650582329106136849525415118594295243043156982047296613469100437426277084033842338272152588898818695557346752603106788024958778950258885687735213332419700077248406017551924121312462115797009627629615327466566342097702903910871510633336755863944048864406644061489001728337708542333901268769908503655780406310846371091834924742594839291804240128322771290522658746484129086254004166514129928546858735556688919853557262165208083658635222621621187931751678722348268685435705494829212689540919540877870975553945019811837950119963779573904634471580173789389944118974917689451198895547992282365275814710349558318358532613076432793315411045566384180724813385595160963665920195233328763804642940993399376978622155589370079547624606545831926450970718752564047637114834794899968303733231784592496791720509730092863064093433368504490509148069965579173624167186121684999673766420914138576998010178356961886170492412920609220923870603741670643531792132171883235540132692001121947522811119480778505986429492012227560875285275322177551839720473607465402514634363059974492322600085491787884842657929272440549804290544908539567992346475127020418870777242796330377723935849441204797362333362563091884715429643951633100783000846304964484679391693962538888268101571873345819345156699228017828654280282793970366348799178559067867386242143451953832317906816234161097888205713940186835306338117332544726052688272993052897536986864672398359518308482973879358632113218921583488144482409833267704888845287065700730614813604876488516837781967827856810737693410413740620488344704201573971324870291544297372943172248897091055910695972955925473894451467734146653015917310515638518371859843910671925170433303538741814445559828428348284880083839336825809106573933723023018348845719882164855013887552090283865255475381364147798357356928563729544192989648039904396087588223416581950729539249898582198048319632268363723875951358522495862153343220982728459325950763967052721207032345935110578181309099656470247030350228816518490700390533928106915333841642300966186166134099254127140223608280622902345487711257320299825840493388833191281566333446131727883436821670427414502034449368117037003516719994477405380713366215936810924789710930296604691302922238743813557403048501892795057976538631856777736083402227013896571501340102213607597691245994068346965615901815660516090047542681214089993140277144449784163100027908626565489839207948281751213327714869389788103153067442564278147992465430319382606314924269440920398977017968808623306252437618976138908425603020147910613586017595601018054042126877179504811041709099779875842256494904448210388350497027660954140016103665436449492329474239473039805777789270457067953311885986746122749583028138197407067663636004300192161234761454133673875918739179697810895928491029474674422346997344261282644219649069158679328984501135801626416029760266001093393541465409899682689724461227852325719457490720996439619721411719092967118506935132503919894066826232908664087410100196331816458037726410084805740014465840582869011062752726635916669613479408697372960262291791008088592829539686715531206679814122680021387893210979394292446200445482662786411135789512089572531114786570934055063830472689853490192329667554548839179223262537267279244945452200555663784790917729099771283043055433382769698602305360183070554027478772437804980342233787062808189228290836765801693290424908351897413474400992928750143442546624764643985680484886479460007413757787495187633304792184338919764311978038605795530843355001850422647954352745817537483418497686971142106904032608156927683741683111866654284441806619169313940741537538927284552482374544338701984767274793953944171709835827357337161530228697368751231290294558648580945424375691022163003188765781407117604777910384123711408676618774263168782131406184760863251912905456536170392290894336958385549092640877790589085846706883538435653592798888428916075231894035292948979149783804827128651935830656664922857910813180706973576312880490019963049303426738034845858315259722366348924017326878850268587099856886795752189542680772418333420945263058586654558860294950081613703116924888472530190574039464008845330127679210459690022120594737471081612047047320793366009575171367807691051900260479504314024902774569918483517185503249743123944100578468002121447597671897007713886383633731024077728545277690890636330734640776859950643230557177734569305342006925431035072224629837816331965383846514539666167089280737749579613126249030951199869007799050781789590612092401492565312748709300061701771867737621955168780400894186615201852549476876921818638203659899214202109838169359173325360091547357004891534659635107491058536570944799482938986697399715631259431395731378653379656830343647347635882447617577550755679550750996242656755177340200703099509613395136094123920687590144533210433471750543396283350913234773097769854916299123979190272