5.カタラン定数 100万桁

0.9159655941772190150546035149323841107741493742816721342664981196217630197762547694793565129261151062485744226191961995790358988033258590594315947374811584069953320287733194605190387274781640878659090247064841521630002287276409423882599577415088163974702524820115607076448838078733704899008647751132259971343407485407553230768565335768095835260219382323950800720680355761048235733942319149829836189977069036404180862179411019175327431499782339761055122477953032487537187866582808236057022559419481809753509711315712615804242723636439850017382875977976530683700929808738874956108936597719409687268444416680462162433986483891628044828150627302274207388431172218272190472255870531908685735423498539498309919115967388464508615152499624237043745177737235177544070853846440132174839299994757244619975496197587064007474870701490937678873045869979860644874974643872062385137123927363049985035392239287879790633644032354784535851927777787270906083031994301332316712476158709792455479119092126201854803963934243495653759673949435473001438518070505125074886132856412934495950229872298316289481646162257398947623181954200660718814275949755995898363730376753385338135450312768172401181407215346883168356816863932729367758667392583954061803338783068706490143348601729810699217995653095818715791155395603668903699049396675384377581049318995538551626219625331680401627375213012094060453879507605382712319746790088236917861557338912441722383393814812077599429849172439766857563271806880827998297937884943272493465760749054387481952681307443704629463589281027653170507654797449483994895947709278859119584872412786608408855459782381249226050561009458448669895857687161117178666233684740994938554132109375528181552588159150222824445444171860994658815176649607822367897051926971131257137545437012432967305724684501581931301608776621565095755467966678661708234768255813351868193774565001456526170409607468895393023479198060008424556217510842347173638787936957787844093379221989457534096164742455462247878800292291480369071152707955455054147826884981852460058144665178681423154114878554099665167385397276146970169043915114900893330791845746576209967754812313820154360109885272162977010876157478173564163698570355340672649351963169554767211507772315900448338260516116383430865139797225161741385381293248011946362518800840398194553905518210424606292185217560246548601929767239740511039526456924297864212424037518926787296027177337873837997832667620861195206791215126382119252329404069205994386427469321533885667117330827142408332659203260753165928042310230997358400395940342632227688070118681961767809056315815978453763757835637359027716488313102887693795053507320801807581022382308031762504329424722268391229712955351355104314761886655474367692184120188771617992285620563522054703200691808688066121174204060992412348760515406820226255950481248589411873583468229042308361555476947777083194087481249167489290065936961641662343683707543963838945144011955648738134292122982001302107996192242492449305199923585815808260352497998505918669722012316489710483070179352811222896635512831743735239301140279238980874456964830901320787765878536230135428000162905587729500679587617824737487137806004220844534604506470244325808516477717390319602865553832828141591524873526330715051314788284499923866324319810633651524331132146390093336215916074448292345717745481716958018168890017528564504648913909042035602983604565242526579727013858675765389930295844925869218978864438881935811452677056316060973768465408369423020381682639245857910740487087987785242614086871517857580100602368170349179773362219662953771891385311673996556588591216462801558262987354137633607607302004559120294665734757185274531163384777648683824850411630160522708694444270364425124236397181499923496083895916825803616474988104263948389004294055043150219312686423005999292636154064926266418658359490424937152362206840394037010868074009844000151246534353506723384546946357602118676211434142476117834104312730611678224883396991553909131097323106678111748553767902723184507654577569988741139568614663158136157367406188112591462039742340112588213156907517575497965822968984623132925727317533830231353323287005659568853417520457393275818351398234767800926142652107471045666876313432566727592989195254884903780904654648826857520445469505381349830902146048971831938778086340901416828548452424809310434321772478877824873948606180023341522591414613878270054517097141045765661492895310867248608048420437663793623021364581779802272088273807173671129982228906912576302777916265103576257703810428868037605463630333794036737769674475717191871280395437096641387722662688983731111160200451859397317476462154283846016214452655372029255205150494182800303255026757903825278613963357272065089036782017625857363660245964491453352814103725168382209009710194368027833670896331467249732950391925929851496641449852187338437012451746742187121311020572617434013405687655510418786654451890276500538217860941210535389978490598218002306789082160614136701839368702830454434678053649956649505318083798020795036583522762200650678617717109567200562970302355359337386977183283533755726234441566491600576266660419908527678970350419329555456874533884212130487986200092870617800767859273517538652367734853505306612539602553628080935056256282134743239439922244273971156275598524433910412618043350698713410428097845686951897766888265050375616759153547317366813568335316858844026672620319660078519490526181901613554088321056440540902721620449885104176129278788422785183520070443946096157166554344839280259250115630622765074005031235141765652644994304257053150223055223357663420894310238586706063043029771985322421204329861952863316219947980302165117007185321676809506193416728628467475330721100551185422575862929268140638160246137695204327867785235194089748779958826265101885716752644896425951624560816468058666260584432828153766920950170013169109386439147003334590670186879924648310918185584810463111895476725830366892265711699056543175998868028673114587345754977744056226584133792474271887007826855465678229033646251538989848130338284880157880664698448021716694938171399856178771737877871273996983426749997163226832725797257211542282247158517548510507797096156071837077138399826531636537675812475187839835045758831179075554568661739592872955871938621922357387643860701740105935974427858141127139568050496126996004843458389643669701477114032917806508492587300820990617958758040299661829202182069615574562881098022357619516396786762660973679549234378915410018572898981683785842730361244845653242635348314892550648078219827051836656213738092369590775215169834652610323773841508983065813648713091823138336005592254001752627874212458262528237084154906823317652568624624560956433201249797068041246522041709969381972852736126391822956482434690428030358268329357392793414496255282764361843354262066413468315637022263287683908790059716633258066433109588181275324862789298009486815890245271469241081839431303491687336976581151940227733980095401999252151434960734147453903923041199089964039076032916511192955102866674148788814637078005521248556360181127209426130985380145406153158542266462584341614259501482368936636673554283272006376074901810818221434086197391154832854438431581191734972280170417245957297166080952852221047151238583005601637216781317980009572563567205985941360125964777049002881706806306894439380904206627411641828490881513235556768623630114915361583530192951866940826668806071744329721989087019500334542713093632148089794753197633508780600673514580188422241147584356845959564201239274628892643185709693175078143319276835130911987494192376570553216017624122613967595703448049031407275797776628431505655127739385463289597242192926469910785583208897123305192289771726024819705371968323918801026775585658452989101403110550683658357488323748145435567666180583330649894239399438837996529632540101979963414642878228337725629661684691172012182866147440407773559198924107512312600204245610895922993139820601712131123438089673757501431901377381058814200806858326834886083591973955864845363208548293526007514605537315405680791511010486785420450243178481217764069664165446686192392103582308994427775611735572662241250772436077260117455728343306031810589904078019187449009492540127974828692418861888535772361897193373825947490569707553452011531540273331182837797612471701505762570646552967998971822308738142267435774852049495155493011531223734979975825761820283175445212143113679091427088810843423896158365765734884886990189728551056934563755619713623568051043337582460478374067162905096912205309496934227364588861618074973225402906526515737420844169650286821928968778018202291670981751926302916607556054463105760750982078412203746909440348123266912521571243308701035378903490009066432926437257797502418243302843780921084480513144963745045072082117288523799394904862613819925220523930672736930593521763721661889041942784414690899376490184857137942945237704130250104756988685409304336537030293676952095638277177045347193290699647498379824122769760943310794085840310549121313446962757523313373211080309924257885658041040079831661945569701599917621887866447194317546991649741520251806448877887985166966690501806961177895319677765511995136578355296228575679025721386033541608897984695597216057137173459782925150131146009790237307241203635433588344878103636502521533751542635664155068591620834877000812706454698384230674135069739238548841136427433384899180382076512355937559056301241721917198088943293211365016689536703579578371871412927951823196775077052730143556689098772815621393844232162162161971429326170760137074663600439766842321077254403779240741912177019894286154533015842513183518208113781913815423542155960838996708562951689526267199396640573419309148909818494148218841181017814237455735098848882581594204563198422321436031740934071356176780901434798699419057958943555583075070097288378792490653344012468305502008705087364565309555791707162299943796237776319056633768772370088746745395711078167247218800431295787521446779644996051180003424672524585953920320467088088978931754117949322498130899564183829537871503776146362625851123801606935807412697388440403040973908458313791424629091564840955685126269310305851129200584640165947602847655240861060519102264586305405403263479102817491227761536680962018862783314212064480559142808329873411841436077166060873108194984848449281514768589633915480945133805559997501346916767883365231985305358386333353293524929305031008317205443390505037641393079461194677701464076259049277808465134395230955249215371743522929394298854690668908911115869071605486838473250050447107665195875471845823478573243436854883378387199561707648365238158177588210668769119973843888799468412783119761423018733348144419008617020058260420725138637655462459629927029608782928451522753607681396103956708288146803339926384988385151736990617060066632006306998254785234275540816969258030098293128881684537932522750465978768896330957334106016465958539843692074275149611027430712646967615183693708658202627705120954293043914354796591826072889700118751734502960650919850013693362846839461203024750389754358908307861291346088983640648504485701565967776279464154180352573405136348553212995084409268961231094075418274402735126937021853247784654033960030621999887831803931970429212249506761422900221071529235109348508675719043339051189469320348811495294030308916091495209813302671757024177674770204846564797798438788935089378032070104437785697440241755370465710984675909183022159756848621721013870882525432890698514462921815723805386179236356369835870644080963291165856359561435938634628223819612220135654696673928822077188850830619501915645201629855421386438643376199314538365186891825817664702706237536738237089702067210790067936018568204629158772228595606040220993756568797445524091091273282259510859722444477839928156556208853483826944258140069138024736146220206089973698379444952907011991788121937047080908973418971241031539702306333117834911973407626847398911061239261440204531897927820480761849809742185610419459722164228189651973142690210533538507826922803268190589644869892617753658147086589503185706725843924912664692155659592146335841712512707855640973312779233083441180091721193148260331647244028530953113341680136276834038065684395622490106437049490867116237010132393633354033130348294661244229183225078490411345929093603707139140370164057345143598984339125038871169818665862325407178683242184046385052492240229421525212221974662789089224263035246716537678833361616148970372443811489848115704606743858857095652279178322657968882661332326729001505350382107162054086087554429471504121933307836440537583049328705143501513048245194549758503493520525957811723478029400184624769209459869484696088092617871173516320681802881989626174632216029157633686934256771549579946307461040549930463269131744981225503682326771019123499610779248364867445952667523058137025048036246558224662891089803110035578586448088097406584960299814568215841671226217494883343724097604791072436383870261475970949778215472199296154439933552982815230759809088804303600387956632129003740208048691108537891288554783132637579917347382527986751879782529450672657055324862832626567195976332222372710107343479267296415654624773548295478094963680452949837425649529575118004864319093985263273231905147991251463147448877300220498966709550147208399471996063663587535673786299656869502667095469616843184224728454592024460239289610702282710303517273872768823484266522520664408877129284161580488674413334325115403719988548363974914408679611410475265481059223914028171972929803058871793453252200322501742212342449962725978999407953538920650419141135972072180307181080482865848124409703563761176298736882170851680935184920764169315613138405115324928654094262301454160133346622464795217278065217506351227038298952179453465299445320953264311087319058467358783356242845790281890532542367098069773561790402172233226529660853345670873748945476473259228637804046454381233411083304411231388660509745758645139003863262585367563167730316572606616497147104506708631810287503520837324124942092514586319876029964584539123156361850117007484487484282982522262439718215117321534280410718418797493749998538914631292706258639636380860470657734340707417323728139945927875977329238106910542620209209001762374308224062956091925317164522623804614283319893003037886421694642287639102345849419585039901368715282518402270127795049007703206797224557672649471893295207517640420642532777865953876217151462196021454608662681016373258441952977605427164491692732280471519282214915956375021949672589124563025166213772900883106388971957731847127660967057683151694084870752766302642713668796470463567613459847917654252257822110092309954472257519230706863124175067148189594738934507903976343850049198621488135669746617243726210370861094966015392057562788308843081263165787332427977902195492151402366881064185201973700226134448535443376701988119859372374282525771761208886290597299571452825979444434527863191869185599234713934579252581478211155100807011452028859196277866828679925367232301785778057005127615396687861448198899643647568337759228998604049577920634220248483126128571348387616449012217619584185665651115523070962172097967072046157074411689168398947424805133626102239441203774045954681993491954494771198217385290478857262873284012754085922060152042753480885669064538133606742248792526385637560115421521340872183348176171587430758906823582351013432703013717015549688786653960218797525770449267860111778987672020009778738369974219701951871370502750319923036974386077434986596085892538489649995960702900905542847141058955146715477927331521248564891157178722737459041471219531529444663223203560555873775662521384676533050180711766992905313774207095238261733418186273156604132225803239782797832961048252916961157743203757916379640463570975791719664006094690914007750084960782918753292108900754422979908822379924218962590643139653400288668728488838551695970645456287712697267537389615886323040754333941631384544006684541651808218883366897033614229097428243556055578677327481537465717407816403916318439476849591970244209499627564606321702954570613290085286013249836995229236183114564346940970845108962354780574839992985867822540062887663288048675422354184439040530399507643492849712334837635977927958828727470238052762361835069098182311430519227863950107508936171324456000968837958869346421568249064844912893210691539216118805901680212405583780736189279284850909008713999549242233008677979702955754825458265074870453880768170002723581522777718774461007800800568192254953163223236495765682988472395215228238319694074914492349836886363389970013585884889032179279284351011924498160639662285942809371621617939707359662999004267566982950094763525418549116876191874490755260213007009611562970321030687999781029436567910139326636335431128284055281007958658411976190423988373672072617548408286009720757360601294884480361402865577752295892580541877279300704312461295666369952118663595894907520827764929993993460851773945980301044943614620174376145308307648801728665042446285836194942221749636733762224224303977788603516928057762807040070286884134903100714325212012649909081152739704855256409685970423882931748952292195880663686418312188506540978989896071393200214096811784434365068255235454506558231105606756698367527892516136220648213153455573967066880222495821428358509105711484004508921444032664743849261379614861453675816794596936273763119956532635170451004339222849482673491179208213774549055412453017688479850168977897729171066078709832814694783125582996015395642300787978818489478402416280846878806688473304821448652487773231475699680315323622910652609705080532698765382044537361005326123581066636547715489764727305166819813138436694424584810394466212976276978660185529840165918997007903213320509350938799169614076208314581963866922200578438896937714810050488780766994490894964920073161782064492028938680277741753659495996898575672269539695844132376009504687199334971805484756940368298249568035577697455251081687120729934947790584055861009438442605549459644375720393797016646908889667217108242805420456169579266026304696133424119509915874134216764191682361815172180091638664781310193339032526678846724734340907605042933232667839825000920203072379807563268906892899576625812008326741639148834994266302788062982007490249174354110884015953793557745280832278243132018156968266832604522993254079827408228023610649344825260167211421520741219846689455041158058109538592732884771645490198940537377773221474245995897645186758378692911072054437696844004727451960983032031945415541882226565731199519018196320065413109621959256247401220870632523828374881456009234014629098023100015364127019325074692700695364220188307278292509619814728546950029111823270416947285230539852287989835861190368085329410872655509500009838254516002879867951788224421303776343624856490304554460648221799044339802196709005053533168580781045596418040363164671668253358773851409910079984146363662383262379843898163453472185429379243691388671762315753422126868658941066139060531928162935343882066778884096864404411546537554891620975398463832142133240052911253239464460472292831315681517420236987749809524080501541100836099499312353779994323686261114207075822632085211521528308695939195928695752004865644789990104167719540328842760674730366229277715272473950028380265837886898908876691852917499827575293832279457887620121013275639363810372698179369723139370752631234564813528358064376806110097987510212847502194909273745246041558098697165099891828410554467493939549616001683069569527478490189073537035862292306335487184198810072481639326034411411686869425757605575453088984322919630482931239902614118969843929419197793040941654198448181705895381852285193667301308682940588918798216827394823910683293109069202341538962239978071806623582178877033567719445304049824967621389737451637987594563125715231486477686647695331965253126649491099491156394582546850230059680394230116448329437429221478088179660454984281798398216007405989003884666184797838261219879046552358728627167418919171379087615303555709062463639510597972899199268162764882724921584632732301548432279984259261685536430896025254702973031084045501630471128627759949617656954714936806499477488300737285365998363441256570888286257618182221929950748178386931086222874867755891637647832308817202772407316861145523515765851472900129873142950227621997118861863808395353131274428902461184749587532054438071853913751718856959918815093635192231840840442247233192016988095960841829190798688129818160228949496234123231730698582286638027020617316055104059516768595864360003228181448205871770865820773224954443242238883862207128794651302687333469382288647280748561474770088263293071933057224701739999494855292671406363075054059186317418603903272899095782894828242311195606695557379623395012445227192843516526997160747695709211209361391783801515298035224154044104064890918817986651056869163964913966772726663414166764791207674953128625789913919868640861556436993758048811420227273436373245695605280672944017091981202132241043035633612807756802312654651686846519224288779868722053745550380002742799130541243172922543887583985852646797632977506388557287044549558447176952215905422650309443719859071345890008120508646476010778553825708367418753017624926412743588789936266369314808250636741801369476508514226653764953522318200971673533125076878279122036357871330090099239123352948420851940078843417859699050698482731592202105552986196502418948232363729727037333572394261044627234773875884874695378209979963078252428873327376037162630604294254500446032766787247476075984342742421266008268274372460737404992575374024863510315359830000105881980778451607361972151352547096075204164075210756798530843422170404158856939851504655959149579625294853331122761048915506504657558642578778896373149955972664796782666689701098330382702314866318281259706515329970090395365819197384594315475511698419515684429807226134716425498847314761369938975310165049147210987315688103106017863204559921662800508193239287181270560863740167750261070229372852725731692415146313397271988223399425577680871455151788246047483236672698659101639197495145580028799863158447191034582373228789971265469187771691288990540665599537988511265285964517749965012428152348178501188722168760852999968873896473081079013684875431821792298587580797940911685488023075341301085627787461706505770526846748689247303645221559507780481109766386205071301020044882862761499407598790949730935630376690853874132948109798970692031560388695534976144512139979236122299495874325318959252685921878781603227285039762813633870431810923878383885287726232420233179707388849579395751956927717989553585385367228164487893770777100600984329855836350678110761540203761853811420356883488576434612930456721142260605534022182301407487670105873906649465534726477909164762796974733673261111392108935366168674822165372002529886508689656629153599616739745685501230909325206846343747516095062222729584629625488357323098174771950817261556626113269825055451167442424648887328673046719790266868753830861353367041262794912076889172670209837427009885193706878626096541559979249610410385829957940360136183093799808601036837359065017291233245882149001946398155295159954041465033349935055318915671388904788877060628976077168517731135464656328334179355383413441008261278605616688635664916837732361076056927653177618530288963319175954933605436353698939851292437772651496707881277529227993130908470040421870089147175433900106551607929993216746400948820428867262255643072721424649481077604782950687475849327893637422026560526471689764784370343080519268334761805663506546872221595097912095347591673390351426691528074417023898504266284418811542749347644620045396613461811315238459966193827874560219881382514123400386171500045747437991193364605834219722777860532382861501695120044774249873137758475031831919800299345749754191578405647724827894777121102075243920641999783161733337325620088715992823208777127331558520499263760907247374517300664398596806021358435828307189530708082763862554004422047909730896790967835364538777846728983844137702068958898298167416342965393886876055601193936422271900573687793106540011952745174208817611615299514125726304817282966385685663563673979356127474290590332455033843260866811192428329311888685352658655305731621105232268959838373136922914374008795460569095058581818002583732386502112227485052109765599313659299050810610360543463775867599605094545742880605518126863660603938538972230256284516029511379520782832519791926848214954790558268295302892198718772347489112051817566600040218401376650612926539419832072446925607522668987496703463253350065841372285592329582081086232846679940793360995556892680593371861736406762178312705129400645366970624717754410445844452562635091749463379234120889970542461754430791629357735407836404615482444990631693975627620290421274982065341375674864756316495133622957395750115096095691713456969384524865448421491820396393337688327886601312733322443942777350434332340028164982370772427140915538575731276368975769264175145819639945565385156451751414037621327419018075510436792976920398602351995936592874404211047302178084608303129848485317521183608827434221785996742909579392601027379599415319315991761238654829646311627865227482249499776824557179555425615092894657659769655175723673742145714062007889054140878454426008289951384958814493201147970387574338984608007989408385369551563162270668253865500442521236933883975948321773776860086702708324825676119311004388519837983541982065976163971479200252216454758403265650890683395766064498126174744923546280739762974829438992160823868777873852686288175649361706701840427518691628395684792233115959569519446548743952924444780440586583078812509561011022630937300692419609448316755822039357493574376737649868565251658192426405659906816603210577758585635135079956931875022783526965095185757232283922502132076003105435967638501327400963878528926189299061236460838162995148451654591198558241288399876915659081366400881402334316210131749873239806187244202281075332781837862095623598609951389225920327587675082725715903726235468143993968916313243552403918887964859307607584888561470196716938154014951169737275251744451656268903318206376021194298403332285252617452724068089875106496313207531537048324070835627816679903327468679649228756669495584213547306366513519785454500408240734912476108859518091643246595988775926333574397791311566314840054718709936364626210682143006492893732420118128610000210537491261615503196141234506364594180259592674249344292090922273656555623023823470623051110479673418976191432691488770793873320345322952651982741792546608659466703014076365945404659758496622399311339971826262502594609100723212380681813475672300034804677637472695441380929685946846563249103981949121794087189299465399153992613426932735967763202012341011034478050767979724766741191818181549731963003876829364989356617907124552010328446738498199999711699465034012660737351564208969364144857493553967242884917248399695874322067974966072700261894414264766018841990110043464374050676769024371695226958814144358131206450962253456591799156963649781146303237432279521154787158794125551855058732339331491894919836672981200229715985504076451790146792627214457458729539143666361691096967032895616761744822067274873867242727951778123337051608988592969492924444974228303992764768287597357581056280428933133250524709332598279122802486297070629438164995879992373584217742223938082271912795801206825069807280452622692665513911053934009092990557907056043215292184250151293187412365699637500644332477242884124304989351032470878932728365812650456625869506030426659925075422302481244216965094571298788127295176327924054028896359182864002277657103011504278135629324001570020753898139532544451586617920461201353094639392827058597920596330517280365492409467742775589986471807188129333726955396090105011548708981776582051202282141156366748713601238260858764530106356470931480468858159768971970222304725567200346167399950553847177431786741659964868786440054855279144574155409857644040707551082881523922156857369771549008635708063122505091966289860547469393184824811974987564410565106363699872647185524409553962372811641195780244326904668784694456536746758277939246735898798528307471995649454526944153080358564903500215297942526439595963989194921605997352582132630809097133379888213518225602090626444530303081489689387247301333945907207809677247941164903990281931151562849702910094136411891285291306756910971456915210778909241433177141529406454329364315948029931346729018430139034445470974135521119429987852716301453422385213681896644541343534627444079208451780600989400485683966585282277383224114115852345463242559175569765524165764839406708386177940977103366101762095724485136669743619817492930409512459633363511678758864844499585769031746073331238040502621641522072020918576238613024820063469585882969241518225721664560479577372719703483623357083290845213730430033894596877368338678097696370618545862926347249170505841671228387655330698918042684932385360660068402366328809626918191290366893865826877800403283019030190443644066761558434877586307510216572839078460439321658904168619794383834760976912954212817938935638500972646160474761684479120358923693138875328761435921380561687624524577698037241001431585797974706304741336191402429628596659497766752943166148920333299271314444050686171700981823686723709023695089718614491499899102861735783350596798056577072313445241015637900518886034923883184207089716105221834322181354584080784315072095061165537833666890715459179117489699296232198654591984114845362779263829387957676235944266906942557649568993457772683438090916346796927408456225112532466194742246981633758991230235129945694998558546716443894012245783804662001484989576892829606858381086244991513178653346184254659585577997808562446860001571582989366790214215768018359417560754882696710180861248841302878525030586441834406680183518793213063859177124706555724933922005652447435929665269433415692322011564963906303705282826697104731259918347048185922688770229799628815800129592911777735216744282384199309207191046172477437627559237045422480067117972988827723922696944655515375091535136499580257411780553217433806446423428420884644172381482755446834533008518115584762446167921294301151960818803959303825036732943213947683092947092552925410310086680465596368425093736662157470998755959620484420402810725995977503286745875524810455847786040269714417350272813630971961569424217838848917754142464801237731113910449747818091751771735027067677050572623515787743522936871349530727816234258895758115286293030237954335584423798398763684863596028108327997718201729720745483745673544404662980324657505487873236844108219404989094413693331205539224938705986978432047596519485830018707112140927855421013070958660976047525863542139234083947783944210767134351949068755369071283934095934867478583708991439457877527622195981401814549765090352655335896562390854675429814080744712439650055086075920820648658156338150944566270552680963002913345321536837504085362246380585092021810568083501505035046208450498187154005101480866627324469425160485718833449448045704125466479929473115473876510546429145743888634056438245876867268717412120759930799766471892159986987308601538907001937542025442193999927990575979489187814726704315296131695909752582105197855126752299698364542529463462034965072706736157528532696267779283087637802114952664752917445136630985978332227018927781132718272837807478268998420310637278313155172775963901815289865675658790620892481563810566550286223302645854601439304246420829702258662014626331707708534640525916908638505662275588918288124956995801072331324458824103738496751222752953496359323235382093743820916799902379384154372875592602088209477033474518331111447319312065660386403606593989790485676330592227882839440520817128124294828833655244658177482112323818589266568407579207113369793450521264807606526390085666112047625815655369561147117458390673521835970058706684774266968940014643398588600407822222865463349777210492561982455347084372689395259986460535460455062464866782002424364942748012890606921879069300784013097266057476208625274637028943319141850544269894972472007461908652087208105959790363295810618377096922621146876292259621889283516247375335254513686824457089574025055085352602673339584412311571767891707960561544763440674444617219683863730854540316754909789964869459999267852035732523484919113345974803199716089617855597901262567146594755921889745222041947344923019958779319455555542990356671308894377771368661918858598097047858235902408185564919481387236790713033179418077654011611875568881660742776319118772260043803399497398171361951450293944001215275674995122308238467187878123446595637963430719618652013246554908396321326687799629179429236806567090618190886641081947228027431258472675095009820720954522779085157290429600348079007794196986060289359812275346949682519449266009127645497652110341693921054482873960341310624001713801224792177057821438162949950773602488152093330143487517821675203842837422829610361840105945237598204034515827588310688821305185256552180161661649857200705219856837525090903116850843509824770350243801067759342453547791749414007130841374768457709284940996374870102623117224037196377288264711753104077013903472423115775478528690149706578413708443443026599661045842081652435279962295040909984226867236727225697529560230494956546175813195930264289995444600034943615250558102931938980342420142330962578923165592701341924712389302659049342171359662979703641863040060358564998344835565260511008916669287873711601111487666760145336435769241846769751818496611349320463173280856572670789693692235497201517913188129602666668183206841015671746225205123135987132010108499899621198819211925707964834899122059058586330431114304296309932449442751870862400293086058878031000515939689604624735522812095939477407626637232526035301918019627121324660735812824376552185185395058316600322760391456437335195846734601125540438248766511436613701364781549825589473834910495881770424876181893464805051826438309167182887208204262277023335602322342703559141341932426434755770931345494008511031452088017675664585860648775071672223135747339427033270749635401008922769243687637992965921924717045101342528674547913584687751070658225407379678475663698458948077915829839825469061857142124747906745988408671414923766474278746511173157263647098744689805413240717756489015810549587596368569596385297987642203334260680320349193784000982546690884767276687138715816452516159654800357853466521469859237284211372843227563591814007060478207411736853096660411995131883787974468009153611290059863734722264927048331545485982744739250016497197559291257845151773622968454516652521978898438667022977737729318789561880591301687463077910981395354182521822842067553239442715919486307849770300381190488660161866963543476293034639690589926503186085898375808625758692246898452901577677911983894255058290717180260167146985868435589181582272849789429366067433484981125331861481687111270300912373174626561428003463759647639808431141766155134930931081693016926479795930187708417739131089384912794851158229858473637813222189379243631158388738602529296827621329324636391443219146900157720363578160383784189878624393628310939519901722469336170514039303559158822255511154407522334613482522277618363816501181550194224735671220402733734039608147264673948015740640610628184436251722753768350097174830845804537371872470979401878239676293967973662616937662818880550732900147846271384888815020299085498977991128974067348297114621131512794810198222308378341574798465996149216725214423976207288828222599518355427427147264694213231644916009227046236527917599308893732849395368029941921053459609554191541300482791652034120382150732652966451513167692212876145693116750714878975388665771817424814500345524803559805340946513735636884606711215124054747711706004756738964287818772948125849819370435258295071775891430519117627778928745169428839791936738794465486231715886256600460603565666743769670774587618699979082281688712878084080800352807089900484272610317851421179807645096263242072119686799581725287265709131381857042482952011095784385395225861548706296390334278892547206550384388945900269607634098076517995879986414059329263485431176943066289542453473580163377746045361446644380331189530685103525798095696996697788824749157270355726188635707956546552249959172394268685953424003529226228572860156060000799262300371157877381840782587320248123784045486986303580163558241469998348189994691426323550114047604953894627490351791040789930505024271378198876324084904533632527606526102494701537047057231976754117938579757634517133397806853586942641414016378530751229653132246600990170818546163405422146868113988643135637027898300392269773353120505684917546612561897000111794395672073358859064434696197801127751133433912035416448074395954166128965442230943964507663167895869546819839393003721826412764197019654809590564558598530340369035721605623191999366091712307088681884792677740532224280480670958702135200915034355220096354643389973928090976435610805791861694157369855461099108704780510206955779721872578970469687264092058332897748467449508532871315938549876356442446645008491330267320025402367617702099686525353987344554705710418010949629555523882169745287121591303042427516274198016608711829708858602156922506798250820384023975201883875107763066213510947627232506984216146677647902150209343611623208790356233803117969550590339203426705961937808548838971110860348352616894070277638930013989099754502856970106536954617955931604684542414044781885756362381136311794233572935305680339609926499351822627162282046553406631004197550363158623670985698827115151304256454505286717031985643363131307685441594122796336407624899417510919188185766488760375557240844235566437466225687866747046897174735279690814273400483946179599476965293451516179176469542648373914209492251891812618411499697256252054837388067095322135830261772450371490341933522338913928023966933558926129004309135400491172576653300484538776062837569800815635778172822592465726693958186905264150874548354102323004009566316093025039182990589245049987590323393206629852937995419457084881991526712112244032057421236296513171269710051622570236696982006132232231021250168419797624247008563739695493784220837255494051902897289670119694883740638153580106870699258250741636330556532378100504155594431835128001153365182381020753922948658153019323393791750324707335365924178616059731237428797072643889210755183505605518530735648810158677343153335305950265060747636887798087865943252461022937172056122069730382930127464126802726565451968440565048241420195606067552199605044504916926880625137039328104021224649995764296575820726706216850187465699374531117201363024283645405261045289429604589132348971610817446069177375612479599568512142046935498941370173063459005957948393674450357311102991895274578930649424942269002637354858998893559257107268614650036358549293279629380210449633604996000800405460049338923552686717642921100660705066186752390114186850355540276514256767722708921488889553710448401243406056047684445417214447109293945336541223919148862531646709430652153781746705469066048870426678459521624379832401483598737572415580563448189602039332204899038041120549724632929997553570332365197200056624616290544796070483775404008622765775190243614405207774359194836677117258400511040602502363525551827779998647026999158656604837447230429611056401862830788312186626968652946912674976715106189808264725425289006024478323854272775048200552398376963278374538041040949817434481306574664142998888922244050706533968255136173880807675452935251155940220195065466161397862055743517867757008690601385178825745110366279265844561471117196761475668600601470813756878924735950115373712437799873401859108897955420017752163589327879884274712979982711432674322720621204299819631925888467837214376787004496860904563416438933090524125844779121590940963697585220311591208116455495293695955717499362443518608134289871165872606565735513025876107848048534682407630853731648652522634297746657504025168597380642223361010832737631283912391129621162487674575004368156141011484021976759867341483548112115986646064930589470334103237718591307295475616947795705130264902993953076777965430288561724844467590106083596466443289673280908824762083257287378366558118909129864740915822397503801769001079057636855835301280978207807332650152824887553878018187510980769496365000595340994667652446348632671387870094489727779401985384767964759624578060458168341629194208921679094561218316444197466866838933268951394474677536968830080369771160828830142750052611581893542499916504454291432833444286227040398593952424380601674676457401015862216846088627943341992094523904690059941390953340502749595451007693428292144074682733833824076429744642578676888642380409503042161978417673493195950064442460464772283427584501464207222578817797908349732829984923689980682430855096714253819787167805872676802900338311994910588469868025797287377546641288495792196134426206339296395755262485389837603004471329943400583187395754184595010779452771216729700397435181868799826330387977500736945660920356017591099212360083727927211045231598662135592033804271219453113876619059519521888976101301092103380573528691066679775560178473322629324131943330365388694481660947615968410650604748413845502655125063999493497496826616644106655180213903105895094259693293488818198466581352839901489363032710488610302715344835258369007114675478563312250924509234684746130656323855343598856386999660156718605861247458898825792598304946331331136242504115036752660594397646535926453232763322331986075101854763419312997282197281293691776537354052321222057234683247500129920703510066576238472740236038469788599572252590845226606269186328221145807582819925017230850711500212205764394362070742783415589602295574649535191450856751287492979405670865653984987174441248881733453560855937023747893510234942682165344967932850058221815968905057359168972143913221150527466326420728628041122678255908457235177947866947938347915770490640391229355033070411210292451683591033598652023209188299720240848445825456847315948576824465285563396609304798144783823574995239064329696064042759459507981505032210946978424328806859110894189893789615755082051674431640705443980758116931364026912917164299163038596531630082280670694949115602661521273858451736943405948414477590362082255647934155271941686800492183699555178148547748397520530420278865506149534848105727803004141698374905968616401793413366933407373452717844491294784384431046293573993904090298014899864949348470416393070272247465220079631216575604462268735963249448716420919976809061371188594152143666055269859164626353324445599662627284080255924205425758934398640445283608138997800259133030193093582251756346790483545106853860486128669311660258884328300398556985085564413326254231636291323628547116677990598450192694073561748826991258518678294070796775115093101315160682682243483785857958808069972276992560203746288224967811881760876456491378171812189022471759425569019350279523208699986295559657990279144342367587666229831447445776059827318326539327175484240755140615508912048427593034573261837468519159068451641754414146380360941397968538834504168589246412716863234468225891856862945460220492056591779713135828515420044196463533134420573634310713084315511930295077735807678533383880604319677719550487613134989090019183928534780642078161985608967747260143917499647033577411553414231612562086983351441544325566611820676546378272252077302521400038108633059439276064496150103551519568294079685261511919097311431491763546446696343229089820923147693191689403805123387650442167762255909850684487008577381968193957459793916689118775200397548489475385398473153902697710178656720902806799627493207214140297381458075040995616590661544483665385937340317231348133655412308677306318216674596984243147763414071409327401948269056486490935478309196688184689449786161683762411880049959557636533922083294226390949054342120242302426912815202997098196510921544888981806690003360737147109148416240832394902126734128565465802726092163482808588074885501253647702492174541839712418712410842156966959758974826513535044379820308396575999755481436504180536051312086180040634812113118029088564507348581885299128339614752521640216417955848619478841441578374306774876011942084699846921766613066097085446037898096270589247941461360700135140600009806755293739522509908683780661764887114148968509385101497346290646398063873553683802482296197095310767812591530370158224102132355446503965341231168855710329274657931404548985078076051289621795112003265679656234838520070099452379186957291716099202384268360331087735383432429788670768463040332594084796610179601364544145574955606536761978256989928946226389427459461002145101062354774456786754884247097694331656603659478513106284320811212511164754597075951317067719249992808572441867867305645591104919069756026700970794392706246478391377258624644554979740275051158169229541667188619483170032821754503389217387163591493086258669504704809726604781614328725017472926883696305912276595469272516339423170417906587237552828060011491414414032547352515356983499683750042491258319861730581791446340864364651701438450560014619878957790034105899395891147331142773401181627699160735665806883750280183567115418741852740254772967738609437712742915582396842125410318943394469958870596228984319822688372131987078672156204241904856079935829804290020860645793579152597012537323105316371061092656316616850358757133468064030767994044406078978454509915058749869381335809892557415576662216815944599026047776569339393121654824978331713341095849789187425487783051254572174506572434355188159438775385461518242923859026897341122992968441196196532046835885763468775778055497798389765919498293149677916844384263436213698536280259738570349190955603823139917175791056701088202691847850955235852757592689411789741380952689140629211723399704411616242719203097631614664558448956035337521227987537282934170242070690505923261790864265932283790501285447331775831534384813209111741946341213843228651340179343014072715681887273228425536422698861469651935316064823119168915748023073546746010131145972370634655141905752308180715366605477810311823054378243475562698652609892909448327541354533273092186667305992077021187375403021031247125023143590416747739792934716969750335572061380211018921645128247607505412377383171485163446369964774003835027888440415544760432532075853622505052750880676134594092674069750204793255288970111303508268095851600041752302820357488592949325389303611184860456100947735717047080004090167214500744052703587296084550727214464855815134987808060821352129793732704433225901062904906653703966618067278240656203048997863778312230428209901808403796954377187418402171619458704464010226273359981815859336545232687759818192750397938570951622126107335042377698946837217187578804105526004849460164920354544087462753852073229327037034808675783635473131806334078812860269485101986901542770232409681590985465661836614932918923280531289745404950799828306646102726946783236911144308256418451721340590946794684737307404619570778767120724687019110788863005554764208188077181196184119833968574252698831654452851644370647436015279349243564932576490359572438455065999609241128432723897179882682542025045722406398192300955638310388236549807489180826624669570850430767400177844654591193342799138959729671070316140589541790658373793951949730326330534919908927673195240130243876745516359128426615887576337300834774026935840629486012841130520653283397793589361078118635514597569262167155068493629232796447398406345731447523182370855613685165285374795634877615121423095852375038102503095274215732206146208395308503214068957237484487911141817591345797348867658641850986312833977719479190274515412025099252587581579966827349684481635622486802877873660541734169991637656653858109563491964224641002161745303616664676778449319168768803760434245568232540632588889051025512587238702009450745996568220768202237240124020820942813683162071104266572855234375520399453550687049858215188144479894668176359043572476748738703131386727366642376957262034613051762086961227083435627129332275424481444153976272032860323413738341183228178771895907561204744686092884436650706532640140593743156170212501215289782945846391391952167125541591120366261744698898973895355897612909693564310176055341309761620077831766379383917299182221777169985552763187641536215905029566006540560942912667391058325875778997591850766326266193719259655529791551405631913209645903926242144949179598676274187517065656445268519588129654834288203564840999127462145811498765940874465247153898659648720321100793958168417865388761775030424132556818376436243089902251005891866325286804098976952651520765419380564296177750378384247703416974535714168875446661476685084727964845846570622777433415111929975121204331040549229806244306197078012488583396401084420895497267853660332834837082484633364225124203425543855474792349054248736973241215506297769504957694032259884052732383383870077354749420662529238556875475952836736189695050325497510547568558290426428028822313358301711345861975019784420232041785756047105885909576234677056504307787758535871548993850085518895116700559063146496384645622422418519985131061223067617990489442848831782517506544346538425133271300230240438306247262198306104760185890749438121509708376499294896848312397897524005912034370696530663173992347061681968172026390046232808553407601396429236442012304767822670383362325885254676268536367826150753405315933731307145789891085692696063734597428840222500529015520998884042809345391721847580917037513060813642098485572907669582842185573609997197640354049707570344582015015825702888113445204449642552410103124967662635529318143494937932601048277243418470639942895344622220041299345142207448141903337893155506852275630968454436391218767008161284774212333899883614812382079042635267202161427485062261887583694841911724794833000415828734005123401894920902876741786544021125636097502076915016103173068524519130869491594569139279624592810899540762589954635485223854487579941470930650772676845125058873499578176890552822567478595620217585362024158073389753625943569319362751420235075212169619136721223793548343218975752219374951156609836274367167468876039974568762677802508278456754083558145735067506931016415530186175479366277294083492223487189377371193343564738314472180941135383894342883469054948472156749489716635741885349898687712537289496721701537496720402892003809197776905325943553803954103019231048675893693768198363905926715681601872640567220142425091668065552056929440582980938019433057202968466600078376414018155545143892504523149610910044249825457614551410506821008891883339670458781184705214866394391802815642871176563086525871706710133222576660429263476924689987300382502094750940873219392979727722216518448252143736306266150090627338147156062817241295116941022749079685008460442336333512098132992478106383018885117898752011187008949939434014838450931452803258733116695740251690018072263953958477835684313868451135446260562329043080016451461637232959767825960873962038802191169673226806106665994282025003112239607504459732136946885527437519984615930226431840093801603762058859153023114750754321794149524138615218584410004672174611578628215532075426854634164122332450224835519745749483099759820747620359845855386117877611709161184284623473396561956262456126595758320113997769766992941055239838252233405484878225769717261057182577789999842791438675069400982825356070045088999926508665056324060291505252708783153567418536615024916014891886359864171649548420328632089857952876222102445995853809828984657175956407079543588446484278614721627181606382763454677014682753306775784495771668159683693312049355564578515634744564722240341102345520318994314667781275870071776022912872781215388412752279514567322909351477012349314177955152925518419948904545806217431677000187291462555549263671940724286838275186849750402106753182286265327788675858758975704730915913469624176629518750650490903493414787875308339132044737283893558732854502309209651798444477242788431688073314575997889364418077736191008567628664468441643817692133363255903934770033431737764964736257584241578844430088948523320858787152650005069112633442443965731543912631659182235006138193907779183882571300251826667372401627685219059218226990041028837742280511310805605207890755038220814173341525859781257830993862440517660468550600962797045840852491443349678263974886339542760625664408665203145611072856266947554976073415510901838287326765431881045599903925621194528572295304512825762609084485320733069548798685304289450311590060965519201944293709912926765265197756569936782156517632773107395821768966965863003073313819356935626274217405697113209632982488033848207526644357887644082904125987153466393331271455749218071942250825071110345411383927344688993033026020935654259543789113702560812132081717622697590992154928637351099697102683892913059086667107985267417069963322473177657939145167491150708689897715154124776437208846914211715603267867994023361328438581690092595654083672803378808322628238367224326523912683460648089561084206731264622793091104788527657015669778306840450104389155007263839655504895733786300159453523280674278262179414587698081095490558469269556368777793849160411957612057120976952805074747398715224480621874135258705191435719003569719779518613488098857915780549766997282994936285655018214125679669187932784289869768462277561131955325927010572762857693210161824020731834084871459341382457481467584498611539886547802657305264743321578844336751531411614709003867590560660331744918450612640836530112769701080132695662716922179152362737351509262888249699877244315435029933993230548703940902151998928374597165739084036552974745413948331635412595531390369932765541768639419173909002007849075579960806404024039340022742722957693849628794137507202026061528546416076232110273129946804284523432614544235498082623667759904367101062444047892174926609957574673281612191251703587738426369889225113759099064032304255962142639528884788627207394895578459730387727815927908301950317045748805275122769707767282386982877582593761083854532218475814865183564478364950336403018874146896407537784375122870625523381939471496187305329961505539726547662604053998012129511263682300648927988090566378569855286116824575680457554074856484595264401260818058312721613624436524813413916379414463473054382829880502501632084304317977158000003191659948702580189870957031798101572712429990090312714759166339703908713090001018674017538623699960729278305015202865921785111994000220292482611653998899543656908134197290942585624375620389597305985507768680362558871329562902180912361571174573946503099273393908915402705643002725912474266350157866204690117539960626990691087303600099272655895751529812969841463151078015112651615826263801204633075889795010559700738013661271482206668148120094862908568534030903986895043952435155386034350841024260385234277073677681825530750432494801617300578059212284040222814088431123097933247457612196193609007920829545097023644642768966974697522859389592285387665110808175906974269795200330791197169009825767993270488582016180220669233243559468433650538646735812073997647621580085515958739802035575462871113164252109911740306032531518214888629117275884002397895116341513611210616548339181763981807522298779182783052332661012475243435853977295545614927599951000961844180730503561686022569952646597032702913658700514027162859350405819749689840664018233788868232764540850507745783474514493350502598802757544581662331532839638142631939959413732829435862993005410365072801168376785222791491851385379194318063147530161553235367863090754698353930942631153203371212282142653603934030780660869869912472559589742294306292330347610460632884258495992454085533370575367567209795593916464442888363106179995268802805207378655135689066130914066760450289827469659301395911222962523626742489921768205115916259227260992336319067328564646298859159723287916010554241287624109394726923591633662392509557731876200535457305122938396013047628176419214460517789615742050968793243318470927946180743676275614591012937184345460181450410620722259990728724744876745932611854814939492295420385589067545169441024681718989714203128729412117313341059268769936316727677401860058113141381736291129844212062798264106990488848851365599113844300315009660007499778864262807837908329020459662570636950763139995110743044863780664328218430282336228764128862935935783014941155027995190648245713800687158511626850814619414900895490637235554224317280840340041913034316215013383583181537799063077793370783419583900715236337597496147394911630943643642559137387080833299585261055422402019345889583998787653560271284791701873748902626619602332406178656375592894998060764965819900015859037117211002674337616684049542010773581911709282284029483283444537990549157979186702691855342369074632185153989675490972358216950799260531449211202464984960053693012568774064549177628129732527826209458447945087132239305292849160158795658410667965870643681162473398763733035616752642472668631977476222927070697547772836704688519518792942557103050010223019834783263728604562464711807366516023466715436868804060660154849018739938833102817233175862871917757213174890009565540820263727980025772269362519725764954198616588214940904914133746471422074996179286005905113855986826179005938135733096928126800224302929120016807782802177807895994488806860916392311636132475137427993718824539541907645135142558629462651599397216620951894087409371592082256984312892897140018532106944978819747094383156939964529083013374443678687246691976377214985925954330750626652504652526562101782273019753100428730627772948585831505141107878610878374245715291814669127913824535771441414661979724112450871410217713854167937332757721961606704859904535783104400444871338525893042863883375331279139722706854597786854387489975449213577410192172727819579232905592295919647125183387440511694710658549190510898677751106167275057159849405411971166917093399891314316497529313954291953399442550929357726079741521380229992210111218997920517557707307479539504895912723034460114731342194990604519407513976449477921344382178078859289311223602331205709932369767758033406031950991896537714445227622540043304138753540683570071153996959030250082997042975312478939213797012657555569593905118037983900162575068330563704607089759585547272319728827881117372396698338472115947504279582060839096328262083093670632377079337052897553471617377173863597806400242624444821029477339289662989517547897546507914584524761869186283444303106360866225127977540180017364737379663059499006868757693990451778432097488753510440552824643695806113501493401429397351210573417915286154796661302356051832222560910103023073068469385697004889404511615549277202943798622416768058693220917890248678748234194462951065050817459348141501908796443917510927054374225235189782249151237187161413146728209330738612119337315973736812288521828042827286010592685122341246338822091647566051447171532673738486849940530122169846609319033239725371744131261112986567036428263111460104784415598730730795366963806642087853539703743461234676664608854315500008991900167673013863082094621853593378365662575845473271473948855161496111400434689968187783113620080987144600335389758625967574375082935384581146452114670702219213154011025808647796805427926555457510093461934286286997037927880443745735231931831443551373900094546592090016179645028372758638803387724699116232723541907783127785228741034303041564234683929829247615965939442333194634185052919549018073948296554832515827939301886199026534680669278711877513701414521843259893405787201987983459056098687228039610830958956572226965694748937675877117159913829454572082978920449514381627840143186334339461105705474729292715015149208710685976917522417054585481452333662386938129338225921837136439586004167090354401843777546598210058056337768569082894583087483040853876514585782306794225318448570819409326458108093098089434605197656727157872223820916893778109956120566597546681604305717447165434174546042034312796067581004427378246533010467148950134570066860613390685555637385283746875299334656966721529657247403131319358734209810445704878376959732525297728924722578529554896939510551814405828421340630318228094648596876045795769811202013027735893350866282090481713996063972181897715867334635269105544325157751027643373903284171806925444947055566825082390903851459617094964885067411473686672902718417374879957784353591478929354560059381669441005006111083801853899632311568858288348540350977325637239346193017985487040933869421762453731222436218223266624519743118118637754565242473729851173754901973448783172283751635439256450446774359557401618471802710915179428388835241834418157930015661999047031154426866245465922963518793557243599086698786119366423112016276812389416317347012149809589267861674688310565657134995217222575639203155869903833455935166863018846769017047336015700552710105245104002163609781544118523174773501684350320417623453294869468855383147613608532859214839782056279951887589321407568819640914597684891470729147242760770168010107401213792972841338703911255194313891929171845286420447015656640386989890408504668245689086132535347002583603619869239101004856589266096303027944137687811944434306509283811164602028165186561245408534744767106744091462744493413471428113470371162727478475500363643437744499121807506990819124654931437965274559227760254283582124157968825551421362681979994293522180944469534260623758877949544391682061869848065686001287301628546684754006531983645046243181509616779083796835247276073581917511268231151148416062454759894605424954779090224899418340438186762845872555075419322493095870407010680187337206461133655540726364120626364251364112452631488253497669630748491811197870171222070337533757735243307609983437516135477972287774008754236279400837457535946672847217733350038484793766032850461360606757852324518491102003211835475687527090504115120554383602941135546109990695982285532996376851627146990748840572323991813918462804114418697526445844866460712947171634882815893520856555747635770657512814132850014377757384336303591101768307101716688922916298433263205357025495559583056455917023734316939104331632076896264922789017649270908783635719836225085011773833504703896976910135287349233582628662276660338280303595347867928723713249006210501762553764375549479351584149567699027979587457688193290269980438777342051293639841857960802242554212720232445506552506440016363201976140536145952296929896994299412093907741837734086678686275752142995243061500700379989780848905989321695293755805280272784248708674688185472051123844841619797109021546560509140169782396470391372902017818895717128287980350498056315510338203970433654492163962629399785259660119524321934959666593965270939543778506174192001178188420150462510382696892974611125741299768394916410806328803835930603546794948210398950718962848307147231670442280236407560836376210515051340009204882915105499727286580694008540623103083814699671596827789350502385219259346096372660555528123865230388993982821846494797746593720165255914493347335828324244923554559278282876269111848774685942447358372050973583303263624498477406787293697112753338507056471351060473932062601400026239392551376655402025171152676807624130395288999787886648557315990679697434606064348310484550735050460864216484080790472935197418710812695704682253051343094063808491915490117657782030961819831132481335867088242940074890781087105247878285556624384571095712943459983663850421348075297280872558090892889076265803810097572454244866919337784169394399692608046105284072287694939620174522094563727022465539103942912875383799882761887436905790035017759155804555729514479110268629402058270658648762374482921158195638211017962024068711602071694087799707260525030909159882382579609649738793225476830068730451494126135991971493614157364296861230054835394015836928444342690792120328060033120140030601450590403219919412855134294624214349417817644567994576610890045808998155431309132924776325158654836044311306790645435187129534304000026523856034258066072602546628651382783539261133484202082692658313785169509338648880888007858851609366664338782400954840796842464568240769802509418415580979020527734519990664626313091177429479614671140801100133871094367073743197150655439354931536043353738382610919862320227005661930366725070997463388137530425541782109128059403490243165051350895485104648016744426855454245735155813237900107456388787224473885351256468351269567716866462556779062811963530935150483108284235803447411123806595551318918785783415023458039819252500495603494593501676176600606341306584068090810580029165108892048390910385786236647286442270424735285903130071284028705362901170208579384953344293280042620269243874031026988222131597264584475443276635667347701447544166185846574043081177838753391267246201833661748527605887194175295362452295320412310084747191181344035673053878807569264235788959091306227256453419327494847477444641737717294124156251706242294023955812464390728885620996694747514201873438807449396229433521233518606757512031825845904939415619343365709048986007129217464079141633955198405033262643907183890346773413236426266481447797015911947345194226026213058477469728660091781474573199735216911216425471540808335046205116728615503947588820075354815389406241096285334465560094897186503536584675183542585195969208998070301210152859747526053765444913921104460857480578055014004319086325953728844394155376178990534155240580836888613110855784418310284450390388432463930097286735192350552726455863931114372638835653887720819119843309696564765379533699597993527399270970517495157507438999322538779779204824448798825699980977556190309442795740497897800201374734433513326884968858574680646169826735083151659964922482919964290569852051117521261246984775720194729655171466805572138136920634215610931560736572971685097969066241956522022700737059965092495154007086904679878263820142014431532939917424356706692265043304115366063108960379061552032252446117696596860736428337194770222725185898189940845069887077005312754705328376172972208400871210572727879070132012892548111021318379972259352203151504293595359185062277691487311535719013729935566262293392140874594383384729216310012024414905960418837319732471253699128344559334339604348577525960858496672684673199572352878519133807182053361352896215412275651894657076867728828429495239904235680576258190075437778794379772779593596843288946867458351895473866888853514822536951436210382215718741182722841753145269095309143309894674376987738427233791464250907643673193406868338297138749847194767116199506801436591838636226603132831231599085788853556491470303659802049363094808711755137061699573275353988227523274195075142057857895712730644142748244289442528402463503664532714608868360371599712602696286515463375428921367739210421340931935770955934439482224582795998984025786830886713834949127802161506701426465746777793337314769977249564697278794419734658111333296727632615906066125347604539406179040284023480707070179942873437725046509279882059850500463148464527850444300428246408878464817736506186236638233010135941981943004535934566315684288127635352105028185184917964815228041953861272512489917777671620141984454758107837992610166121856442922526913595405997178170910218076525607827968941190099569808137454771549912037023381459493646247390341451173778293518215067285097907630478891976129987540064829529646593572473486884326297082787798025174545762583581708843336500306653141303662414431177984536560881398787440613156036704714826248697386633033012648532105994391274632017195174462699941393376557089196671529664583080737598006641022294963711505321736153522532525442017923463095475366707790769608560505827018748568668956051868637169845677912980189343004574959173461892795679205684768506763749709089037828367377820700457262934984388110765477575137118366813022845458604120094975917816565036310110325674561128836714529860538300376465485842660572486588658879760644909746738430473027418532416035231014203043785037097138104559185779005269871794007257040115805025573137352780663694509344231887185397309586646469082319172025972749160390375711793691262223883057633254329218202764859288627493514516408084279156349838478540431739114810365562297258941121223647175049264016354907829616079003661677326890616182851758439456599860168968543227521450740360206172923872939995876945238362595675143797742789310989880530715861152418653923915411309234616173161838462182622596459727821728076889147422081001477746471929197030027338742784353295960522128516915794418443896117879824122603339975190549652925583544707981711793342035541960483286666227365447352583747384954260095235039599444981822522426507056749426839548639461193267238462293438476767794471834473662843308023685141717276776307723474982234424188264421225235709253174202147394432400031472894528902077512665436504254366924213790089112124230966176310138716593465731508766941327057087927085902076108867347850609584325170521345033500289739002357680782842638785525140759091528785872675979128825250509768241357198546675516013938225034063224543983348836372549007273555349941576507822920194233530688427667313075291624053257595723917582395588844082973034634465335205510650705971268522829695449452247388279703767636782549386722398216123101439822485190803405311011748257578280775364467551743397063078007046389253062148118157062968119158909951366698853187163625122958155145624769369028832727308183044977324846372232991566266289629060310101899450823590534280952475699982626022002565866904326705178189865109675409935446141739512600376395382598459851813707827358017416220926966823626571574699750469899036670184838161761594118300077287274169167661277226818861545646883434752121401621929470585063949835799738761925513366087438262514318554543599734522788513971708492448903195368210589525664078205894871159623791796743059885878351025124401933810447879278449634806212504776252220380068265150625805706777637285574514670353427965089746667489744324749896699465825816135117879415571477696157750728907895271519527984201316470605469404509327132904941992681873524406445397871806015447771847354510881194214529567448327472587400945898255633159814148780075599399401955860855378583496254084088748898688816251708208705773979205257390662099102060368132255670325679673180126590715378456510151725968159834613099403681235297067803212605713690713501229400649076182752997919752318021007004404646998771138861834176397227668766834095744809333060312373980040771839491292264088640968125336490273592155651325551906951432174892725067667687023958286498401483971547896397148602249772687573931165723178286440746525432563730488401708266493925598851017398211961076349473487498856262081973928022716295639700412588829452042514006902107578809173672556030787304230115828694492522213073186528749495991104263914249929811907807568354346684282940556683225291884420239571988234286089212732972969443533996360142981950833721064074766695089531442879123796687733991480353862007677254798027745702411960339065331533042664484073110818195659827431922913235540925185425674295432120929803905976167085531282913225892245323918950156037113563877039677552684395873948592865568249712614707014831163640762550506200217371080020830536750653463454324303750588182481889893939271402622851847777649530422794828984552540728969623310649499342134592099319661486881455633262724211069883051364123066882130482517985913958539138439346199035661511976753119558860668485152293183005192437169788125396599063307797016292794948356134582380899650503398727011185329521050818989575153065013922668912182513049716186879524034850636166143358043042120299855101970997881040560284796427919294522075779167774993073362248715790165435098929453869172933407279657521015574975492407503207739663710761938213443350984418963899501997312881281522146419836669831182365950919529390350755866421608517982148633871093174525851469704193780545931324925472465030521019114350263103863480519288366122305443465244468461536249521290142238556430060324433374647923999093977492437574825705842391409236291325549723046692427258962511941449580095333692526455209267864696373211302707874441577185186460155511565070164873135099164454057696018845194746476672249521038447278038371126854822283847225243533878187672980580591619136183895594357822973605777235214898406860391861961724216987960021097868530226104559880344931407523717717372473875776479126834700534591788796409803494569116718175707403154675800562631655364298293002128512484087950874196864558229975789085102601259768660733279429316484514270193351572540171219578979394780089130492409444204940403970948213890515531898038700093754406900779402029840367766218709274076989844127582718459468039534836010974359050473673141810406492593010514146316235266088538363313522919836875398766475469658989530038416202656975231285465950246774783766807789805292819913421892046134511921476684619091648057630779936522937858474338489206022932936668314467120064934472212989421447047300255675117149967154496201108976013289460259798033313245885092225610623715717504514301585108054409262944840295094506663711956665969856998829870717024085780709157940468779138309576233535801107621162552996946148717930661611809322537644638692200219848750220246113007807725703769564628580607849130150883175335322594884878113988698925717842555874345444475180488065908237018845185717103923795468896502365656542406025448167053925599070192016393186218896576816386127983618248604354325689879598179112490627037014784426175765408679956897598050296045379895011245255881816504503350104657969300276751237254621947571480417583616735468529012630784162757681890370359903071700118268024902720706678798401777165300871966168767644835956621192932869327748351516566020364848000524170098277584023260677740790216109527491130949511363404911450158103464561006482764595360856900641458648910892570243433931555827230993890700184553284985024131822713873983393823870931904757443860182460813982644987076080755858243375418384555738800938060612290554180768466891012268556049848720388482340076147075814032455891154151290997568414237412309278091865914135867122240601304930385257431621066080601332076958359384168931696919629067208856977448465319757646983136564384800862697232040826378589380368216198926340927980988543790263412588195997873733786577285533539192728598771555868940509693159342968214789282158392499790706773360048360454137570909118862737183725814168047300669859436439175348113681587043187353234259797921601301823192398793053644751014089089557596748600183512392131021729887038225412740657545433636761687147215382719996172818713920558347225297591328893317957263770213996563738405694432655448969244428387828253987989267052351437247352620734504266413299684268698302826214920742093206868059440967707372798613270617142445711527749286942489676651143285391354719761631775142022718770883251041524818558662113504420212039054243109061661313765094399453695301974994362154016092463957616117413751776218695399908700596811380202504692823817742554660978206451693122421212908330766410311562361843484187300203886690622090971651977860884779973913098425436490323106822026865341750119965204895897523093154245150638337161537706319467720658537556373284499486352184379737495479790532924742683673800028175691963990576328512112330167527529566855279601260987564182051032620340445594596009528779067232490160195201220761482880738424453118776274220066398810852623068819657353550626426581179841390144461081449580744320731486485169398419778117579527977037548530100489586534074557832966331957154981214325450440496987194399469599905225392941593644379985247422634451133890276571705946691457623088523213118395830350910791165225300656995068514822622060735217121044764317105783436930523249831350083655105878783900140555740864056471326164239147018238622466282901939172429778020819900212285470948766868662367561183356186339518931747128326445934750433848944662899000568249871119994927279761550289562944726584187293522832312540800446481901348059569638135863253746965057670164624940874192790547488542739822832655487503806219138411373438961252305568010211927607964039288133891904859064003802334168368415689824512975715096536510650297991563684715096935130283520449191445308306378006898164654344894203570631297488384487862588016022881724303133996853319134287475695421056372147768394638172377026502027424822541633307970145500930399335276285631683441474691383450085081393584537144818563223146235570614480547516238767815615142233577527843334730967614521792699701817291426729339660125496102576185461245315917621406628913448103694970383254575288640684341403676190579746003663040458740369433823169266439398590899430026262208478154522449658077997485963316823442403509978684365265238264605296741961802379176092067625891329241269591628544546855430285726069969066226019193020073944113801385211238935725751688295127169426653642034670259908146077221202304025561142862075315813692276979925916388936544564085795375573233205097222178970099294556514141651306572013142691936158079481941018998876481506851289587534489081884326253158581451851927355433450185783400630988871394594023259448223315438387329632902569896829169959691527078860028204197872648026271521276693461680285168806143510915230376715501404758989563931293165194647149288156874131921514870011334197204302975282618101284844899157202720667731591959158384420647942709599024248802531759284575829001719086681967794055622813057316672928968244635152406700560248843292118632820979964057245584329547172164507665632796368057801372189038668001963893136860575441314892929383958483405686039663536634764198222258227440566040102810679633316907807297015398775702314938391458636034703454413573949288006700085476515282386824091414356013678342816466134213088885107982910922357855226697800022226944005239571825844987308940441591061658166374293336947180686553679064482040736567942432039142448989028452539068473359121894417048356875408217394341497385505601256681805917412067965983323152282730095658024498015397152035706347187645446523240677326026109578532085871896231870762782187968035786653195966712233528908027865165623763405677344078488807769270041367591005503561267298638464362785469301281388211197249749542413934308513010144302385096152328524882203082641447797086816542814439612042666333389749168057452405136798033037455059288451040403782425201062760268826388535401566339400881773244019327786031649381924368729032358374398075516829632707814128318767026570929852183688152326863602935989010344125042815443656052019483547058830965575683373102624574957099566771772897267634261854836759376882497425345082025474950024522442521245981505494126150616682169052512094303535530090434101958449445502899623810732603450837737460474716163700987787816891024381870570918010305532816936654413848381489370368735636978503333664497729947028435853273348943213484610328415163063319167066114806390965848295808415906852362389611572969941760902314088251331740394948336541624600847831450557733962093851593843666625534976299975440052548834268885586637722823331206507893814245129080358660977788287300928005414855489672872464772717176912968499680526167817946255530099890451707340089310211191663112178399562781421800355477165639205088516415265567678497682232546440701685599930665020311577320035528156512998819120071405835040671905049791494301564717851486656799031957781923974773927674944320234531205119211272818648224429360096074173336648145838416589439874574900837088510049240108277906787867016577354861205416326089824950765373299193207087088297025139165633700856252863874987153820808081390383043669136828301485219846314135798035732002496923214718266087734059830099606777413900181023244666689600100631009307915642923900496393505612250688684261712422121877349739728623133700634683358716664347451156923301940234673074748352405779449514039027376913475820779087973124753453693388604940026211733399661852340471935172487571103224726524989945009516124577852172837455001901132450682477526724792560755862091880842821231459098738658346315961348969528439889465945277910333619658822090493448163729330293881751389525523248013823850702130153607441017688723612671735734286897762357616590153482319380751650054562834841236858593247894616042603372722000155185022984432302230787296018180804692462613217713825572877358961527629685412432903980802136857891627301120971205960036341820322950011301303377244312855582945524060840670565966002450107276062014343388253253065249371997317197442951100727470464203370860277915562001097058668313733278276037060023588975440606473026506947135379198837233492943483126534347754965512543666171536327332074886812160256982379667922703303093525601953000699486694737210139264090290315341171900015016179162850396394954743155309712756659762350794366582791294665908738873626459521595004852519158854240280033975133980099123967813313698410314289403489232189327264249401460746505424889737736284193423180217735951979900728254688720347965152410311566184629602458598151238036668350603807153732820583695796319911130168458352732649777317906970519460303619504115541828755090117738087023880834138109587940874859008838885259107523908094065009552338042434566417741904206186814982649626986194324461548722944913203304891212915698166056804109800238487299801211786764129695915168817609248028101131737252626004765898279791122274220302613880006235864254248035515506157761993253664691810187628906792380021777966634918519806880978757805113886946460482453475199068835909858708780942852488694059575564414518044287744575738758003567199395422856731551455101365070555552791824122114765650628263480327130730328175499164803181889356281281854172926864298593359422779362121345830781348077523301908494342969618291511983152494732295187101947394673171584614009198851859802501198025067016958993482350405436055187324297691664926037208927909898957097964356721314432311065121751232855642100823582343269146173792055447349513887718410353896228950054171719234397338400001501204750064953052069175699670559650189891125544565292337386278802624506506063532219930432494359623232181349260756156321457289002418707159638354157710408089070989684795513077947698959975687090187248777367086924402589696411510460906387171773382511011322432057609250633877485200921304651697693077137730858376478592693375769649532732183855134485860870604511596386244550875057531660785828788170690377165711999871046985358946693153327515178435873733305757146231508705781690768316718227878014457526368490384392568538392321150272901071676022889424685300728690710096728463363204657579375252388908020872372547804904533854359584150015557174382381563994844702727123946579581229383828129755170953003037572898979327215983964562973053199107782527930527755268428178900033864595555045098469035623823547538468584991925264005007868748248474432620205030877854002636140537330167786844591847037832954080881673531094564910827863455284888900231163197358293394811920693209160249369599429129634894218284046431517205199722302039882835624427551575606575442301240175232269718744395478809575378117603666126051061937077279402941622877283680611729034250087228172559718046824098381535463410278557295466828163731466963751850129640171113526906868884804833932706884937485347484417384706095943665732077641993717743250265400047473226435553181490959481023773667283385052624216191140163334928019745446607759319577074676000407505694087846085242024134050140254988658776084389265759877661505373139864304790036836703877170181617451295639704322674523596906456061643355839079753126971768661771946129979941890622143888380494535505517263544831256239275555966561312356532968942637660364924249481297812400871487575062585290680993900370468394630468463249843840997768880487416599487927985230059055199464531055488563183702579119082033327558329267278812750986509699610394676451957240719724628730076844350473015577185387499135058437259946970442429741217218818590013180351267607358943159905034291018066525698607700993887241756044419740994705673575337026745009572561063471234272584941984248140167348709635161447679025476940490514933255779795596731376744036814460452840217162457413818156807254881982877986208125924546456439623034051307616020120756024159239379936065135173889511211414461252302395236644541722425982594898992949833485966293130893549675533819976328788548354220632294328620260607859566448691416505279835106660883451823272839833713124085361272205782678463129517943541279330023451488427621125348219990248556005036560575044492227307069162781078176857244758093574618332757860339734363771879481829283581523769675032396733386567818049082661611328790339476579629431539405853508669467867423722391620051778992747867295625431096869013273792513943612145493036833470764111880184455299712509362163689190265254350909692959736340970780509190703278940637473444210441152852499848261878941618133330788142753893174040517851314674006560641649698669820779900352865172903721338051945085294531769998330973835719744452438488229100570001210540898379452472152307832550694685388057097653487415715914559174637878402231997111290644260823747553247894653122623552979876684999368817882891479009857329999480874035695776073113537737932826494545225982067182090316257249423176045353570473173752888589948082006113016458414094594773122256398836317216966292489269502686621752732190504228858357967683433511728249450384523033582755017989274870406884576954742018750378656539496249536089777076847003318663721315389494650330215556941697988713642958698453593958365409237165290795027717121980777541111056217694864625134728977055486278039598160703269666781982202831743777536343061106544414676539569085027592264442069471629913511135326964115643617922343037484383736222689009571730340868310050206652013684748912340987094805997184704924670709216887107698040748057437755592521294696993496285956816137828540426394392258923797409431445122242634688931589660609638295008967606303790419281172819407066065952421951408985081803749532265700266765993365564978855448052939209690234488883511459201345104547763673329459233747595088808896824976673444931621185228719632627912870881514233800864689334722686545078137211053130515272751053823664734420774670938164291552459359915677290314224549476396955018359514847201000957205367431916908130911001283001168379793773832473640673578651911073953563001166944758893708152043953893564489591240083316694426329854454822065858384184205090607224914241228325456322359599686583969409136095562532689922818673366449116867007690954790045417065438000973924509360475057644615387727156961314359621323347943581783328980998671458333870086952301519553319949885716756841450315183738948446782873932175358747453891665455698630070714348646798908943443831827851483652137981163431900695631117977253498568897080527867756583702482474140825094313641433599598634415306525499212362094782980825929072600990898799743494804520112102889844406905859979235482158938507709387779589863367150161083222551347729083882202939654132988240013876273715077698784908229532208768653984814953745818941458698212094772989261797853930526420141928908732837992238768593394928792266555471367414574212202983987923311287599711762311998465451977851766178427751613227163607648928460852377059266583539548363715085605425603745527602707562107069442120619558518905798185099869218836320038906240862167550524482948084079430243095637541507662679839810116950532772374182213964613295576499522974214659866225442720594172848243830946221678561414617804197575626684806590491831842178219205733231845788234370498003275736658058218719751662716555819443526620393422730769113309505931459526724668886205764267206280003124413246652346562105237009516141297892108649914133119682066505747688277594320760506979498698955337705623494495131596695751718048513223886611607865475567194302978101822810448627749840133677749287564475526149154932403541977191550724782452540731013807336412206436776390345081214271223671189431729693627233248932703101326299251023205854165501447768241391212782246081192558758357534678361229575160771903733101396496541511345328814315234331792069495549634591486686085768717116926875445841740685928030906221867153718582367595078920358969350146733178501856866274565006183610322052930784926995155590082851220940344246619724287559078539708853594015462806726352098746800463341839337339698540584827203074222354778797683898858139833463988713990297688297924440902427810465392185032947352743633784815167503581823237329630080631105301307814788844258281369500963259732045513236315052402423618389540313331138796774160724789468870414968763764170305663615457776590110967261016596035078542690242104998896823736457077563793263667537404772574957821040589168244239999611450022423697768990833519262460767663573428425677356165398839149796864805270523189788158246469165041462340201885247053826638088449260668469741181745768055358983591172579398840924409460937140083877679161379792452530575778082581218047522420717603173202336574631794367404237932802106141547077078755242950589846530264407086010083258503800180052423387698871061317357982408042172992705505039778545096945912683874167924990923976477078524992616240038253884800914675762131646348358797724015664472800308910474232160579357814889343415475498354268992168220649159125860569596273871729986385835677211200670747236409863691429364440841054936049119186880486959126663069829970961861885835993841561460642579973182852511295588262364165970273914399141990462856472508265419973954629152491923684298713438188425587885149837738160450519099680301981970048453049474787841078665833298854626464709851315221715414919620845384674951657470539977869808017253505442591696402426529808864747042252866359691757819580281484592987948406787033910759032940342609476106556770988273532299722366976437468363737510272423618397409457944665575595088953972892053343881448429147563913001683976706359890441667505535551240575289130498482637749649103199585872729089387537556128816762086913732646834216283314642951384361944875980243155221688101092370722716829209926537660784242135376815627920808924556881599468325007316372416317664288021366787272891994961345910558413882030215274048802073496229553601502419129337080510921450888844391925365126732269269412767052516982071755283859332614654086444182204345775573625732720613150051697209006627147501903878361817748790407618211489884969134789560462494326185585198247189251236968293984659052380692397242517570543341540419335058514732525214227033439776996580865004674502554041644130382414136188759461789506560003098650794611162121758877399474419042797347064734303368486632247628261878972104991177318497325874710786320430764201890958314774949595398991728037969089329651131758993183755454194916020205107691393225827406474023835644810297821341919512245279631908277192226218668294477930515300303401673561245297709102376760834845845632181045815225495871760277957601061804592050134237841673488957281735660584587274966045784452335872120716458442309049780177929242290324325431550645526470353788106919576214666897949799107129062589129121044874707854676707831270568722213552087792481714103850619461737545662027059098379855370914640273917604313394181258221836709363703302321434363977896507999931922412924866320338922236554081953264483979757594915185703477504454618577787610396329395555775038464680770579685086288737528204010971573178519076140416668546428176096013541443459560133471121032693872554325728353217582306594344256810623102897747724857346465805472630432144647021065666126347505364760448981467037771121473427103769856008867999915752913642769297695766111926328424851974985145221550753393265853436576219788901619366278438303287163845712993647899739608155852321190473817908419086966798524025836153699773424692091693025607810040389667154631636285845212581287037860057003491361994752501804020423472347650046883451348656170593358510980821758739584092606740073746078884777665364374202631878312390670161133909451425849154624433170248472378341042767902240503223404570209075823189295281762059208826350920873773274189907911860457691438805162155428026366975589898505288112466223115477631991221817403575210594983138644293123675529067723335598127970971610562291282990694721198541446749109525611061936162677952906169530004476916107633901577916123272184167856098701781288944307836479094391504538267474678889003877724630642512861917175138205405634506628555547569501754179795234311077326746278541817092121628781733028198119417092370759194059623673043479483083786081539654264243701347073121025735780203520885498953427736216583557151370560425427931180046487738105652032778542699334556103353788791089836162806136267862926278735298360402862805167689584737057111895330374827931562881428277789932473583947127726869412766779665004634490335716055333113619084796174919247621272423958735095698420986691078459613389764004219245988579524606916686928476728311986019024551160018661694273589963842163811874112491098238120052040290269050300599853845782035675674048132877115593345503110856552097006656766831334195128018621204283617214555907696974262608031741858485862343769722591233041435326530990176486470706969845983787844039496007893557130040162171255133632387835435654795031793920948049494635343255008177923846225484126933441635017174644299020409763107937123689618076579179099514922109520988422406742083882749419488203120104760172834567315488353093731444119531132199126217433711917507745719683873346955304590922603615018527846844740664874607757081071305917717107888432368057895946657910675447376204314902043411955499543762911149185185394618356609651263892060878890890981600376541053774819503213344488440668998593295815583046039531025000962079888457980868796591881986018428383377298901077094384569986751932673001830747040232882237240019970362141292127841049065577160162755678692898533623551734337694959738406271007286493366824436331462254742064702724280500271646406217078239244444856245404216300628973021693337113018551518060791775316778847872791893210234330979469887835793907154517641003380095798240362755679385138080397578698507244210423150408970664042960149206991265560107300800539949051810516250648887943271426548734240713197450798603982718893654068296826773693892612568925725597111340686165781350117886698959318268381865756946479481895487066553585395520610885073803139701957396294342698759707499357965152295291648154746494803541286881714532434955264753568759853238992632001193579183713673897278464237068531445697563471937975461293140116961907720247375767942359796324855725889818653212694521719017235850187323409696177285597691988370956964723931908880181967269144210855675958153788858703794214570182942003618107371356359825198947686855963285764797006305082868270084122756607126542107579384068829872346835250422551215653329117040016830033966899099148041997244352368595721403846236149354453360280768122456777658248208234083987728343804762405301557977306284799376320036524482289825320617181635670403404385153685342538480682048278507376724802971050602995260647834984795569599445178553727748358040796734120876231639805677162375619789342542937084093140146425977649645887699174362654356124814020190112767476716015393702841663005091440743364769427498356839658224246217204334144203353267415091612020026659924447247397722881416560038577962005101650418571823856069621685899060298594852880734174907912984325243571564308329312455641156494300636574802614958234078097166346999633676186182862932890934592766949974336965565711268771723329415294319977529104852873115683744109252176393257133400103559250763739221852061855166746297944189654265199834361154317358225455602188257327055998827970014167931188545704217433037315398016021739142887020198706787021966813587249882259965657645198012876399681637210327690152285373922906656487081892862988859520574821367683195195988970526572677367284314089913587669390815063864635212376394827695611778070590028503104215426674249614772724525169947644741541136883696564128935211745786822338091181724704988929836203635687744950616616532996650756387109816646482875676343197060137623366601840329995553749511743423291599765949783280739785989334558332875350205279841473014034417984285226685490862596824501774976638042354357568282251887867626168873109013043946117184224330468235044409167622298951566999130365711224749168945865491705251642948837874227791920401589069973248700271149376353465418407162750990398432615445755433667407119718854133456850826377269652486606893919901450193922296667543038703331428931448288007496462240083296964369446940457545224825732102161537274160288640045927761824450630122704899998110681566797760275575190213133114393818549771555319747705850125095071707130213014622806261431638377421061622967552891577598870469014176190794778251746826458543867258667198085794162776765645394030182006066890329284717725528121145359512413330861249689363428284789858549215364024263017135872367454271740389665546801350173089031814296034285075409941277365670909291762813050048611152308103616705914517951524636312805239085498639492150232622381205630299463526108202688617938327296669978298258765777313462331820197887969147938230898226079740234612130149742771493212520009132083084198474939805890963607596243520875563446224897139152513647508315400903285918368085118239609755584984220702160849970356834857573515159544208572795202228320922533651299335582993755898432057936226629572237800626004403327793817666256015965135563652933345887225138982932124798856713495739067867965299146435633407690620043338133051261468409128005955429860379601750136329844737990174741538513286167037262228157639994622206655880715155729372198516397983743993746006980677123202876530696550271670414355152703300943614500126949044263243475203392066083451134509978936396717458114064399181407576775841944100853054380376027368099783911716168233131233821773819609426493016393179961917156171419144694579051516135449884859009553092011492088672334739181812580640586819615570521565164429223037300328879769213122561834112917740137750740005325734553598586760160179628378043411575937254989473711911744868682366875421858873031676796056318398788860616457588162518880816228422600565175192647762398407287159758495743233043706533239934743200129070021591433824298586453241653265604247664873452535655863965856147784813942613941235236290306861496614177468000585426281677461152346721409730114200880213931227552975716676834527823351206294228105886219683445285665187613249853836307756867336352391248766846325142148201631919616293534332900671736293039989648871127970188629545950279174831432489845513165276684593376623342211054015701109481414807529698497452042083722252117822477264995748605175601294069199422893377784115943671127022513549583110079389823947133419849413471118456634828422053763982429014504594853887743125408334938816115941594277412984221461998984932019349063468381461806606252590918024695612384012892038824579440971651457603493655510887888015273041503325739179782188348811986402913650789261399556501787754312010444127161915871494378805053306179413036743441442043509730837417067183768651803727214229301855328506499955532349217222322135594715601843675663291675804486743253135427796978489112686897509701070486383384764537866370232354209372631714712564869109573184270971388346361150109480635314632030599839622460351337041721723060010621066447980091856416898015796981955527025609668443171963325420404870427617132250076505846848324410457353816996159157478894701941041278387175584700706533392971476252470298660019876047776088464137105262741010472485509192349402180771115325684087307455364320762617523165138205271000693480307920258407998431418851580241250722432326797663426803816312938885507026898515354876566537805680588910461498248154838234294273724166542343926274901277398982154965226072963413411521125801569770205268224978794415568595164519544018589423782165131282161320653865733468009239214475276601662689806808755554751054672753422403862762497026365364344770497760402721056245725954105927309937342862787591900216336287483278655359753201945200571706383930898717249717116616890239140224468894295509846713418888712250113103517061276236296900929865516124245354473741272476625479914909499550367930993407754352358069896486974289461739797170753639864751104959772858462587908332828924709981611282771104186699862144341276799578395014304762052057529880076629671540576172626267386225344302740600316606458629513599078169153566190020530953499541077877755806713144062943714447015633100586387230064790917460386341235547127926097939435114934262926074812176530148225533097416186874042370008807363867025907726015569873832931275692451104746371763160467585924858389506426116227819475265430737521381665688962709941805198199136627823826283850016045736103085379904431528856672349545317875082938912960067622352391128189199606642385920158803917013956532521220733062460698224152445649097658261659463115987979694506456459844379503242490471562804783146522983657761999669285586319302548220119615335650626946578257872467139188041569726220029640064948694901410736646784970395034707376668714538538642431377708605391277041385260685306025369251557621976722549201422269416881279056600701645447346425723804618395490079618064669648720208803111682723700795882423166561315891689476669056222634108540524766649641050301225753273171908977533603628985544143933993114820480638669160051125094796364830534677945156096956783469710023218215159429577805738503247876314444000338528370802884220211590472288208010552541651255450072033573132391272075264681075084476437384739038644111038875802509171026403737756244631525414470382531361209801974858537758387827114493109621154361164929494398988896877806109855264458012495430471522971522625473772829773319192396659368806808362639380852741866147988420411126850697017959819371359518303234684591601249886750032126412044404308720908967660717451144757092286167275241324977249855640752404494355792278635548974682843591863673338546730082767973672995899984840436460393919842309263125170460603690642867543506399651143300551447124206846441368771857005086437132941896277325981471823499422373620325806511676286686143172882185643974547161391291872934559644464098807435998613122917377994601373300751173719584237403716547861350999464681843600052867024329477769734648229300476833874571410386917747981487684121328154447159631189444803214833195368409952560381048439796930211670987068883837236971824397611308494599544625123479423045591865391443988875484838653975585332318474499884157310137586793055880569737042302207492509798587391619172043917408096003445008250084278331491947300556448013687063428543192286030986623779141984727973422367468004294552130159014486256492301519329333278539230719118241304258689876374430378388545321025171773737124534516000544695163586013672263623727745532776014275912579566569619432368907564946860530713249468702581858386272447680884123108961301250453921904104028234101653768692386228179272049223055758491774811905890071883838519735551490514190109687159797991786371976530574526281001608448473353696825671457914990943104636946912559333858467197051961769547576843146571487662670003844275398803546995859415647757396068636366913096075825150226834189012207013191229273254280036644200078662115498154334221504561844116898326596729897023782314236090375825324771258571565721989157496460789320349296961593314014308590530053399775782662536371731276494770931382830512812100963708850581442102561832106281336143504707297912756176125021645849886520923596393006835815552344931684400585019156882801419809396553939708899719241100185078810190906767370048783579008868521628589987673508281980288151921478088857493050486006902049024941221445318873373491498619805297701524627435200759549903465027826860301260406410444892522096623995106224059275588678600397306351429851655439598378288895379042869050889937507937078307722397075807570412636774708372168191650621756895674793081492940965540504335754055826762137916763831206042341207537247774330574622814819463205607775694782629778677422970084707296492800952593033715730299937082192264602957819657621263974538504467502151865909660970958406004592702309315240111448530567884878559357666759825123509977489525998298840541287950084153178435129591612658908493269408319795165026408417025249532195891635962382575975384509325773149966498926618138504661819908583567631639608703580708965233814839764896605936168220364612084301225786071874672987317865993795414003191497912330315945375781160636278490112489928236517771498037909450252617860280796555790412931069706509644729921545325725641802932446374339464544321832292013917089639028117253889707100521749052007620021853611747836077028704822135800389720614802600496504682525496164346120864413974248790717030901879526286815620302086961511748307814241650919914761461658133945198048561471259783108976955752323449898958446501386347938659179211671676759582936394060891457924609598441324051464858491683713577038279704750174287439350368153256238852240868867902232325341463276821195253057737034233918598914716950144460037263958545718196223026427373510708045650309699152822484857546538572256508715116067828879627615672946603924345112177314614442916034490896108600239902746742698275475856814860004702650631996640983504757816428382366882944066731250226444661681380964442198274402709490097854937322811835553973574735378339446335982388500389514824601413457778472775402347625960559901559649017164854153567704647501739988694802216653999793420924908195602616892158693141130028654805419308717900550618666080027387606584848866531937749267768040273977941588967805053146653003583078514314418889799757055158833463422651622986896910372175489977034025843072573416736632006298829436440474214161219063680519127283592318818780133766748077580888453639317709493061286052901749744814063199303990215980381883813610939061774399961403509949770605256187121846692215950816696529549672195843446748581572862459693540074323452835572653129032981231850983225501409173480400771730521239731230381903526027701805451998243123898788705328321273019101610410313915454747064950125889962180613945462009442630342203198849050953144623860828045445486794671722869140777463272658000860389685651293659645074382885273397867780203601744024913306677844972102934967342869861696364402376318452939920303667466808792775125643690818240668035079706687407113009871675596185444895764679415936767599859952526087565464128058059599014386528582263991696460679975123028247542187765440301799164956555851979067433627742214343933373229425853654838820439216067581817558784596323210540680225354403814728990780340244947779852983696926648889793348697310474448365126472458214348521889506833885220160095464700602146365145035375419030703640048940041722232673320809189083838291022183258519659625945004374032624609753750137358072614183272721786380348657005355175041844151755184897703318549656047735412600578433026302437520965817227482785327722603350904506759405530913147547562327996459143954228610167490212222220435191383822725708306881878726069303486002585406603368812215141030004623289126057251991333990997262683018730406698825562924832147359201351917286610323163464251416716585545697253929898417408429364348660743710081021504332079585217779801437293462093424198226992970399805077105853046575963023216339834182962175085482010038497871489023973001978188006695828315682003968471563836656359345694638450171052281303186475340193835993962035738456516370933773351827055071302617061070097797824840249603452694402866033383959449253561169844539841759882880008918894650600718498616345405818359054163125045745903755516161831529129292367599721249396144972886209458702439502077289009602617841168154716891121689207501774234862141763651824227322604855499772187821127481642840461456234549729963540932446113627542414420114066641464614045528935199079417274886159500196866588893347684195405587092111581068800680452245514042573155276715047697745526415522378863891016337417700485835407250568507507449694294061777369631195380169497046878782084256822300171517638704713946170889235106454576356918336238402644035015653455364188164923325206267042377427299407437908046455786953166710720525826663784072909033094309691881170213281827589744949106548950978665230143497813753906094694549153780213965293484638154631640490806046185360508830877374231325205102472309484522735999856662481392092559561856994957918606739255749897010043943331038154853217750204616973674082516134703663605480686878745865462056504299608280178042576814084217038096657557497242842422258771135897405601303060718088265584529169123059781377591509410252813684918970318365540604212945101985507024129136859131417591456883929528827312505705049693138478434279061317598623704634608387974528106564839986915796463823104236302644233653315121374989560085513421157382757807553181329618425564492453243083889471576418867196222290410767726827264087486152575314866701682327564335544184325216982906637535718139904634298227439846694867661698864236111291063833517465513172193446214815284555636432579405686779656998862078428737134704703934255258090390980329254881961365939418162608743976733512400821716140383869592998153100325492672899965077762144103841380527379216486614696792220919226240708261101496534033354407599074158688758775095347150345394085889001506211322053692192443167394780905465735177807274562717828261869751478890327185305466323833559291290624272000067759741391756035879565923145583944934995683783094958206808816150610939881763808671246482035788129377578367497992719929367467680485584934436003868531486316755290710591281539654890145557040812849581831473633194949882095028138168825661317083809185011251599990468874583154819940681538527105451739722121860110959573149919574097082764110787529876351261281673796458511549736579725871039065564849165212369358687318168518068111352710816447131101481660983759079446167699985036847193942658035997303723777709305456892855852767866577487290894282258797781138637441464512108216378526318177364924143453788566248181398656199324464249050012720840993238610383748497646967455003030167402188055699658560995373787325911062349309323292169777499373474363799709192845308285003620987224501546928975594859745424815086811581435748827098821776550163728347531254933348198714962405951529393186561715932917193511753979478884545929409042565076184141033613020230642808548134010198058635506114531510671661152960592677468139598661117814701466625254661918786525313936141568810189391290915227035867674460359517960260833942343492270039698248405432838074102879211207939491978422256707454783017460909700385195872632977971118526497297186345005726095047731546330625771646102123746978812122970436963369019848506756417774499818583950727339096688697056372673132217109422994001000623046535991305036427409212545473708718611580291175441753095129474052160943899067880843823267084388724347804665645152165599655687295600823380101847361087424099762196291410215277207329911144571350498542454443775969411983365384980061565297154174393268441313400944459644617379001414342312410337538038873496133271303282254985883037746405012608722532030240923564484887356113876511149935412226346775922930145416697478679905948335296173068839160798668361953818904341196985387009681494322198698434278304096958500432881416162890458289910267088320888407725158772100812119692402185749810674104065066939916549650912256422745197812171252306918619801593226473035382065497951292378369587971341062280670356326409561771030350516303458884220048041919735097576710518423497922573881286843933324760858303345506585498911056716094671569208334918285593893455296794767770746509053808080631917226559397367644145910634245915228473492383181896273235129890092827154294572336382102497332139796160149006772541772495312047437968728810247711296741394812993919566665038113398641327346079753186627819156708726034249271065021201036525461617708751437595622590516263366967474715129469394293542860073450232685836885126243212373117728228549817757314519433216989321918744227921383774208640424214319585110709023936757113037378474757993864364843156495230011279251636194698198176456291983374908097655813526063122662268196054226253266495973519078783117719912230994538233169260541691338209706845335874617053437454316122479266935499514540170098569056616042217936778987959540492048487214852140141448117909099340218026001248530428788023335053651678340195608086999643515921595282117590385142726375729908778221040355635258358886124654543951827946346468028710246310725211764061254657038951574670420204446054302976273921713541821628325898686174485561827276928824839689571404732814487543232056205279609049280756626855499558211837336239941967342948393798673133333050840123006599707648852370647433059523406610674616271982877179436348929961756935609127441794855868035680455594578163420665320303289157238582453584760188145763032939636352708563266652045872323032076407143230546747783922977123113141808976538273928824207754191161214236581831697557793653569412212496423677619194687625549214114014142719584057025697653280107913902178554056412399487483024538579722500209827323563265667128799816635241662831550815817823807023460513518691187627927672686792732756010577837415715520615034167735377078040968876870478746708163227653465339444847088047485870405256071034034827042931521771275732504262052876711795941632227515363600315163659688908369391295120484952928078753386999280709926748606262222973113421318771713942495676494978700540810744379160392367585237824542152247659727940842948387340033339344490806990218764632688495226325695441772054462977594064125181799572006216279887603553507807130694069721395051866346488626043486254132644957234256797726169441152075343291604837687148562489265688038846410998165294477945752891743545907928173705433034766016826678287290661731261984742758847863763614211476666734357366774850254682030592047187612344650747909144893608579337818779269910220990946813242043955187702384281067984859483044654779497598309573883712209924210858209939125931161816930555253451043940072784424852854117764157704456870471795677439130461497775772443826319519499755452864296984768761000628471761299165327967462073710005904579220161705458182072137928524559173067596249378618096166766603427507459613728970297970030713266961202709142202903746800075158278053820930143442948439733128684503447087721706000814098386402227533820676895128866254456713327941900854692533925458944363339715779190890805430650990180596789093114211838877510872142685266522835493397686514689679317890494958301337523341428098119464625272849861598943878853010483249070952372435368929137986293693681482894972475603943569496810819706099570584800623108846251444406318736376039416632484009812498520702045750685665992464594933251441712258825995129988828339446019206493291434492026431994880514453417658801391070111652882479746826054994326352068041483656630203336769816033245724080229392088634686470585125367811832303799924204730700499837578688928573874423607776469992405860835928528526079121709873544724028474029889179884753169725905848973483055165577121027099038212985635411471716920745753989610393327164730895883805611416419426482974762761513015991962644127849947674901937321750881594831315587323905385435297046731756797984939961916342933386023519831242894035477158456660606135325760010067035733299938444766058240906047305950650796405536319348969791922939169909596617964737488015937300656965830239214226581998516941893071366763863470333723230006969083940970688779204255671930837655683409747819838754283516369795921607642578932234648749171236357765238171840552541278795377240782570754438687854857424101761867166359703294637900314577419544962609810803461256099619362290949778926714030755413831234954181026862353868305370096323514974484397674376042392597603344331999715293796241798548567606219688842566616670715566061192138008434124402236693459967592601060146785243378515383947948612056215346095094796658173147136478788156942457861089010158582101056904168832531143746974850705197912996469992891694310819176538651878165955219600663710652207357001631780966992580408751516915496484388236989154068142781027314104468471410373779318362704706396894003847669002182506844493109805221672822415487502224947522194765800747073084499833294871273762433382188130770004441218124153364119417684049470707423197515547097303969905967420397251658767093729024468052369612900773507370112601492492783328423130143942583961817210367849885666723943311542675571022149687279169002648087998916714697131428775351141205150582273558006801634369283372733560305352750653284353057351246729124784828059895923999670982614612601710556789518194240015415399461018701458854694276870963678330747488456275234983863327789864762962984767615248571302979368363918387837519130083548918671623651101580616306450533053775449411252646122633395996130821735195335229244380449319123482246061018074368542573475776518756242690111456516006810004257953760570309618510236439678787376475440216573185982194564834649496013932720480920671425398423320072947115966997408371133708340794125060530298820499654874514886022973643987681427006911957011639695613764381423521953772437197784130758008405286441706423286178893843902006045162907873742781213888230475647573248123380037406129855015009510762792251111781706806702890583637878569983382040752641079229768607746955471486777584669302528851274737521919266689416706046772525038178244766573675122051464180474649211955870636016777636795414965068151190699009626325542967675287660652194217544368882293203810691005762611438878118878479236197720820059405114472985870847763655243588457013892630221759658747924161333168485610857065250911498485837799311090601159346804522420251124866420675829169769953569576386620409256962863105042003303316467678682464524405736011824259872148313941761831014437863444779763332496580583443273616272480052766661506064994109982385931358214513845397244351875659716897402998100127451907474422544574663767386684876824401873887209756274850637068974099017624206325360218520400263804605161224265749257267397999442255656766021668723056760303598091734126489305916117771279051351716372998747158039301063837938623971179509690679138160106607262465743486326148317195603396777318368117831354827389085915707688067839525247317663027722241239157476623693295371554508613071646541990513749445393804773285839621508254069780415279138873478933452121906887074685639977833596942682961347794797496601994626836931073699525218911626298624196926400580921389963962312140997938088741301115655785409567378392040873196569004420369613716644458466327389382983855029693763622615932802170773144568502831638337453372697557662283227262205846368012593874333000465202280774451110066207333765700590515412228826993336941276068054354358870705515740283298760291202965643916648715615675297662289895293400407995055105390989242573419438043846037689764163324582837151863260162601005025251997717318637497796803327881187075070029211487082985450902165560092818484793695660300788645153478952017517810104759476503735576378515824095573161877611741636107260258679764538580706014549522557134156198092848970720654223691666742027377899179481070266305955396912355660031535225548935652479181060311497526907488609688014176347167465628915051345493468357998936397347035747841275980525336060367019008456742361278041032591081603931479228843969788039976983326955060074516842570582428073435597210968933994063960632230712949774773472915098807601065577963484222769086990330197434189391956476314119472658133199637427753361482514518995460219728881327868841008956915881540149348964862129938750363605991803063298815387202143509848451471492569724725793200106629478202340558919511505065922887668586806063382255868733887261615948736413724606323432813191735377861689952797677198144865178388108486868893248662535601924969303934822656452069109723850175336566297363336063110721376307682424942324449374491167168711382436864309798620623365907212343853124234555139788028623315522517716375839227247315896203741993794634928508783326038810762292236818637712865529642237228239558058709508878877097257570539018976399325294608453405024486729902161358275327521787439676055625039548226190899176300694447469122605904551218322750727217247194568916453152463581750028859795386848462090559824602958303493960540472112627760803496788861616798549916227469039453061867057220601630125626889394161964125996010312461300118580729033778994885315926104629804348862045752717143619584302631836120820257243592743227764943828088708389037921568045049496364775075966766648772645620170941034902556900568662438638399584402321676460161995170280110875503596308839015963776472127180152118988656508335814601215628176179745141277130658072416123182951946214403728990447538073057154814941435707588837733771614396078230608956192144755536544921136536107991286628015917906268878615166222038967479726617349771527004818987387727955392103001774928886077259941284261486558865062007425675372059736721637944396235176938127025181184761454684821153728989280713289914750015488689625398920481913490872845784079310091921173858845032653562274467154033393405409119386359232888477533937364016829893766559814556360228081186487546777671814906068186096731708888928631365404541144871105513005328988168200512565632322682611509787307668358532801401446019214798306391025624485381081716329071027739686356846628698307772913119058369660528882052628336044028680101427894797084191439094611350324608661918838681055971969369132912464979592949470320537996002110446059289366511503630387663147691165395329016484178014068200327813849889329099832086660032874717073355988540149105143990408574043459223014707131566600417682689686068666796384197009893514971592276092338950640229799758301002558633618885915800369733282268555943599806477777382673524205000146131797970567871035279458902738357823198969793241909624341655995926954920708730610000321762674945535018433174815176662947808074069174733954871658697806116960225960685761512732371957542658579666209533041002451349504437806848761883829717075602395579645296437641404706553543683306424907520082694311292922329331755583294801811375454281457104387548087908119588254961958481179514155413676770301748905723815317473388321204712596209808635350690627768964733597716397700481258524004367876950330800433923256253142148330065776863089978681561487188531422655147882536412051867729141759069796531453264353594092747236860942878229094114262248921922415909733024645840346183758361223132209891721560926701645843293777997946651394425201259727954202411814873926129367036153930039734023294058117275167066146012829476874584439990122718520699988851828871613495259933545791789899816553966413368056249787653258613308949467027565478762773098434966748882209716705197115126207883472996828323498166975667273220495469732636597815513785525869030227376213934857610338811164633920108676304711318215606356928777099128998030445588363184979526834589808022928717732783850168832509319515871287705246584498646749719117019911729721489207179637874232896818333025397440842526118778153274665370061886998870542664337394077316488121862443117408862486879084577105218345928162119486874277944686440412251854419998371959260869031110099535902586002670902573769359084721443183866732786837801169675010529860050161547098755566289573751695084181686263030870286785302547615510295375553428154349038156155455701229033374371912763477217072953306251483960031802301278563858402130016602678441600959215746598226987228720580558742350778441131715528301699354471236689474235128454948372250149598844363326424006065571338087207290144819763507772113718788738491727544328698344363550862082598399870926313699279673091299691132621342220847143495003401515042889521156893766922056685539557953716952591129569064329136602716687334876499661010071995380308522122457351999192793535493823846340436607197627903336706384140077095026272432637421529820551467453158938879008684529653003071637599873789831094733973776070156659430058657036162366029132281045733111524070658979106792024013107213474001755110085302180265717341218894483567045048624250546938899297648453926515899602133274495932083015371088682687134518582433086532516953793779220346376988403097772080195202952735545124104964867474979254494478668066659038412504693661186103725979347037907490931389327664682956066933625630826810064156299094090166602937577747443996013673530500884367838641210726210909733816141256083564157886924682155670367842827656541236346721517823933649389405945333012734719408988152402772451384640595069979439127622780183531467844530586850518273673414500479223794959727465721508753339514185097212376666794342580682963763714087588017673088490503804620173333911207851416736568409013536701079850459018218946357166465127202091491314599604959610199206589904173934250692890775322476482008043194507418507649380783378355877045791128427152463309529869870222286640941090570217843713950873745634055651855648790584560604400303758671503805975078753710021496660408407016934057584912962623138254738199873026271930869412496197713004640680243343137605331941052477420432126010280307920614318539190330735249829357608272984277344158402020898670780140488779517791280706522401532578310565152714502774702659325482921486783550257185973483422622168973960728993901601651499517457125248876810348149475756456341501418222011879210366796988278695461160380535724383425550245652670108837945983306717114126130400452344635234690755333747161703564271317727880291499160578944265908315437849793683936650143539273864500701351861307409429320925912818662489202427715967771955397506524825495762488045221730100281391546117699070687890441148413604683814440666216494512427314680393660816221561291756935837932475966629838201033141540414709288785615784899661230149907526914904682972653064566547851363048114549710178931906305642822315721034712875710380387266025702330616244031885405382757654537759152089356026993483050899379558199881513626097562362131717343038166140199448817072010875633494950762098511006643735903511572176574208202768361329254266484172323565421207389458782147194008697333732295046188283798556403782163621341593695471017932493480748760761038113875006671437397733599090509293546000095811567604543683606054522478185668359104641593726455127335611203842292527754332872616354724919753831476363934117508318174083931247131482602910103799357865255945658789096246844077617964687959341050390830445375392342712772396171270953493447974308944086423526993157834527025835338269044885879868481281206580741246215799225299856223213022954879100628689870041649848767095287290662862798176785080877400863681489938116887350676823467481872241686288531422001730730748051607868164791005819425400577253928177236718073371907727330851446242135982624164281092452316608859586061422156168283396055382658164395131618470654694175984171258538520487252600955369524190760867548549306376720467711750052190224651876654598278985758626363971420646005544817076391783174140576574165253660043225488947137228720625895353067024549528621718447789406084208705827812300377498166110152788319829331960561646699658454930695397227126990229948106634986666771154144141764211005674225905597385948939995641687702740368684484387833116047560358633304481039536790843600925539818240595889373295578985064608579661535660207926508879922588247695116156332815131206015595875765223622961031404373765503903211005678557552102254426438432609578036416495123604276480618823616089082516075208394989017998188999699936178756049580698400792032116517370052087271139225298605753824478155043189260017911366170075689138666222908671643436506613868553914184886967004560364974546512157319122868555923839566055503464712950227297342927232482882056184324932261056645215566738075525401280721714447340323975367563780850967831261030728068127060012645642142549533986749654429499257373667505772034024220011188996939186272266247298572381152250807608390746885924706261843871305197927896622057361923623588441404037490337896741965142485060901973659344767443340888615782729119663731438760255682587264004036010812762648655473977175464775294592325128678375569399928127709379787214325672239309877575332087781470636622416799453245948960443927854771754649474052740175769030752381871277080240125801621361119069370092447769831198272067204030149563571936167356364604447073372546595479841387768825165340228355823111307604867414321550448524842599573392393650085277275767517179064167296839813036594237681267881958525877138870900670614714856436188305339619614893103789922482441366007916388420449206497761615330985313805763668807427342794723960272850530448587350704617249137607240161551229823658740753702936142336213558446952550809850641499824367689270326412239777778079736498276265176444275699866419114925003346703338390297502228157429028999608461059982020046185565825032557232208149264062415042068155681038560629297466761231490045443463116381601991178855503332788796196695631376532649946074100451559939322092187761968537433898257939252323238190627264441569879405634670019714730900606697574711089184137004077206501883864864895237872551682782509713720284345463584572074528871589350058652141606465727180275582947599437728441362240227825582329722471973120180804928521782069600795017856609749756393887990023379853988608326510397901952122417485735549984021194128822026839313066586669307849267783483751828165569358989315773560701710176569414211897313992142427415820879858667101399198221037301632119566061124832574552966863860328466725712254434011566204448406854492593873218495831766030955231894849644774520558231697595697502108460523285376742280884362908139593813705990899960225271168858052050806686106170576766306177289259551233187718216618743757990780360966291247775618072270190575617657261802378085410287436290985623391515358585209762434300712885296381896563982783688806611908625355664650257967271721597794158460692073132895769770751715016397084134027764605127359706138513757039537179330714803172132777210228155990348998416115736360360837455593238695489538397554737665088556683972030433624460988728659853558427392975418493582051952709089404659394222879067961206876592233079983196203209431594135769260671192943900178393110027027004007733082991245014909813305656104705264463370293063169091533307429952816729577499118582353368579772034387643725808409310987182786675678747216631287476510623610715350193716122352477155378552369963433182937255736310592275118770029842250256355971376460896236866298997650057416394723521221361938103201402136458671891446725280587970438966843134147068762238923583134035399840712540533706290153883335295296118725513338396655818912126974480002561458564229051240811424244754972401028490379138328717341948896885762479528531052835974010913697223783708685418808390949483504934324771926977745676546056330225713658536018996343108437515213664488352244094191358269302879916125483548288049718083026529426521890023936804750677780413199442795294199512208872501028629102223962097571972170158414390779695914064079927267740748687866086836344978719026897928813201738769903411523701990796195860286786603098399087803635928177498177146877407255455492794648153618749696068228463166779950598820659438281800276333769289021461986705607789976335275722325007804739405648778514221255055510292270855472819310651834608372080008644030646728007198872201975881230989300525726252610064340471507854024805486735287927810737413957129233738808135653268442667094037430325402036834610053938843929113271292124628595283608195484683387254759367264364895978943025561828744763161701593842082588842526016761948096236245166430830710695191223409501819019480783216571434562776709696673822917922540730448522350728613428761799932010315737324965707878752186636998847592623768810746098358301002785026588580849678498648149706517267058049603801870417833164198476589184900222168291218105130506089311730862848061434838744837748888773209224949834176368598203716049532161205627544859271160350074097643493469777260388158337633676586223076293109076409747755119276527073357895736699659602747680575793636375656854830059233761221602770027090369059654118704069015316652770796526505252687656506401664714153974633177012863379394542104337082266473524227763759092620661005040301336549233742431238670797332687123470280853915122324037847839814596381102030701863394858708746411060981010274900246657928632939229694483938789720678021961941605213433499658191138937260192227888575822539130172249200048563012535304717119312174477996176706452668618215649431697915994805353110415274291136660320463667143815201469698212404837337325829118467646679830425119076363117853178094711029214166702152408864494223796073622310975371848592890349049492867501108006381772684200422655206931208335400569915722763249293940201930353517695840668860573825335934520709251647121448766058410892949575209317928496280585816857673022908804368972824650482536726813994433358743976364745326997623900106358831725169524673943485107977031291137210512433446016186567172142271908897886474908754364053241678982583000988282446633608554600418866408153116659019816552425778415835441696172416932366418710358170933897118708433649839385121032513470738309820466284715675459098502867957564367472101785167982430664359157517405989822927693175335455974898473733939813992589730669609859748948885366514438596385831865175130692031550277314508853786929205073538717863598086805711302218125477250086625236877078047011124855659447849478125890923166149034037179072699026693333778881278350489979238950641665616405487944024533365115441100493748588289237793452748568072264660103348305524101791597571733285248190259659579464534659614425797787555591940428057680070765653881720637421856931980250356180652448348438807713351284865520487419327472965452634142610254089942731595117084183980392295503171387585219480092982527638857333238285625701993417136745578066410831068282526579424286688780336402934329117164092140498531913118289632278084360434532728896865840827200584224249373866827671309165537749407459237751123421783919491501371535402127006772807780813237390854809421137392500363409423272460402466142669997827095109755229929390295825332260639033540193336590040006998069814327857922237612552250778710207401122017483168438521028849630390276604802286925893528714933112375869624948163692530766349737232199284720389203097763262386794241098215085841483391410702822699048754534063227607371278448973405640115739738572786327131436889512502127289017807315252178534068303014761178409237948811740624618634414839789925329951095566016723694948237509487693321720485896970148514526220905941963145002710343754378050307324518558506738787911095426609979042315113059309187185082472310708205316687315708414608202358515001863620329142218832945843225274466539626902254083339420092073182122249267800910765483285372985953449592323742386194019381523108724420729741078207579918536286490258422206177073452880531736641760773816562479780377182689621345045916510082561420265866488267616931604536242694514224242660867614069194837385819652261639306793045219501902401312230145624914130534217048283627692749649290412859839389874611009925810515480801391078492525799180696875292143746846018693336064345370620426072829275220390394572712111755657503058393711742057298647125580931432509331325112436126271651911273874853166561268360681970948191699972932784633164328504267216090106233864282019382820564738409760917928282863349758701068492014352888918047894654218296832736931250352622651605502786549484970360057898935721739817699925259096617159609934622792065459934162981746800794593604351796952234055972859444233519719051242661647152747807779960397618607874258918935082989803484125198763299511337996846627694127081128324031263352692546185385893977193178898241819541317617779293301207304901566749731336190809129911409975532438704095090835572800573561359126736356571398649481088902827527843345037941657680995123858499125361386950233810288161703194766217940507439493835296283491295761219887110485552193166273817259963294678253817534198788427778874202081760089653141784527484826144923922294279497569038718755444935411840945411220358820755854774173268969416491105650091982180133890806498974868985096859265963466738344507240245152715378431760820154109842301999816383223639042949713053410363653015788727909651903868661474842509731950368793247272633756676683850761586782893103005889942278806502969131035359349417484000783162332083065478667507998770415387598275636100206093342500816869349370911899453443492720989796414478492647699697625033246205721123113770842228280949863281283276379768657583134161513710991375175753059642982675443954759959393013961491276382455505888088040165810757748718118269904048517193381415314851879609670055839692412978861178962379775563385113058033389361264325194824583864712587434517493994913891549259942160969302320164452437242553114601384236649748630549053558287901597794551953497551125674239353194396924571295642362988161498017701964851902549705017865482545252302478108243560643624526491794368326282840382896954475199110715453118846030558339750850626610057978443464688254224294629550716748013296326122830105332554090509308196674041792150318400773030390903339554409609177089119462375431458300693499019208776374422237734680073678792385588458987345666170337856582247943424939942614870165103371777930186846017489176103626498969442636145805099127651510025107126343952415369832482346107283096948058690510880126120013786343491799999545575480008717128535449875462344733160015802889931776358196796997519269463129519110712786203809185438032844552939481166690813724513513485749771330054744630801363011556312495393004426052594383024612110302245360080101814896963046128536637096914645290729574569177117229961015025061659230622978580336125176687899910339757166241309944984546945589007276561118329698161384557157406616577667440183271327568217346421822250039404243539064656687760273930381558485675512443132782174334110323626666482621670076889810624885057165624800741518913793073515925094630548755263975210113385081031227442114243953711920479349623639254972784091940802317194700934069412338884870380058442640801829437578966712348144263896832038814804638599726083855786127804035257960873648066832404987282328820775556840631337794216192222447325152339891068489584754145600741441750725416473458416815021969662816958469509083391455810633823727297812603146229951574179156231971833825622468108760427727013684173442887740935398712517879234762602463542072127285284872108967847752243348093784674628964126446204703591579059888734285209211264319778834908764869208227003920251565599556262416038765995083209456624322951222457488861624196356411701969217357695312317881443385666933904680351126156706386062988722140098394702562389761764982147648827721681835849683202697496860733758684539832718871633548505487008862301173059526458250625677583032198135957303691710948940835881976348008102050129202972599968696556104354046423233835343435412836318364290097326330874024990915980140072742934652289912778964831014822564031156991491483191394880884153947089151638419191786428675275224408283632594355441619080778814778414659987624926332773553064811456376929378817165592838224290051874231681651221883160951910040763941834792984105656280311936371367870231279832034517126501665545689645914299249895628844242326885778872190466502145685925081300414105110405559264712794066154525662320923736896203264355227644556331248580718163054007971622604205626111076286238299987313179669708543153698143744840158087235564268302653116826059089762051223720710438588844825898542264887981003864679140187566394054541083567823556862044360604998368924938636349993196078051989920957603864493740460333143897853156486825092763517827701058449892946001162787125837479578821339732344450502710588412617693534517921621907174560852922891970873454108808830343876957977136035876226148317609675878287464260733220069594268303988820095019396331933281830914294355177167753811365501868111181293324542693022090648077049385873145572695608313340821008875251309491996059708901594807705650921632820014095998289187251533966705492034446191959664957301210052918318198618188263334909403269658944435577283777075349837826431355080640798811317303225573736178882359504518708447893603344398309218426470846164447332039088155524482026020316954263182072857598902271501710410924803635644516352707633231973299886374954672665359954365122331643467917246918550428471645457809697644287180384263546741650905268501470789805322225138663700752438806565714703172452919448430875086185664294197082426442810701104907560979094996968839407057158669585258334257457383167647305528361462444793044567029374227998232851433934778202278359269078596461749063809560453482363926105230114862721018458615572926030344000938264637406696654545436422057317063631784840510825767404407465616965082395269112562709600131004399688695851389930918911664182931712110738604065527103533739976734281140552443248497368316858864031891804731518221317233773635156658315991854889759798783443719703300067396696145080521348233423138047002737562663463717212092027321355340444330306484407943191700338306616359593811171758947586895995092461924872106511830626405673417204192277025353093986554143455674898857206321840558229337613505001358151669095816072264183709553419272615050693090370941081831814033173810427996672442884411889954649981651767581663681284029395174340451098683866258511067749299267819050222329774430532815360165168169142429041473502941345095911715208976768357590497224313949378750401842990014676446470864107783477088050307157927617111818187660894281840907717780487304723861177521496062627090973302374392418044715673721757382705995987564615508616179913242186487098507584219857629486440577947474959641077049823047987017297240659254843514680038127181240642936190808639963304466531108137480374237753698908680708685679477442951621407952394777889110139520634781103303723729581548122300215580281371643202687771070063043505743710878710870895866681875707270480363749814234322714610898814067502262407647024522333512619133325381011490738601574154201296524537498358400182622235365878777730100313911901855904318025133628179875238897134875810255377383018569328340289538975382090625669949892556896484948268572138813438830547936738519563637856627119958414715244286952857643189951577464995409950896926994210631363197269896787565651417209756305197566710218416636729756066316215882186502917279792011834751977456756163849288802790046412817190285009420780660766338064879551492401280584009048423152681995002907145266776295309838284020209193140758719571684620800006950349484984943536301456978675326137214513555350347218745811272040452517455457430218466272434851872056760880509377981740492025538616785401684649243704849725248143806087511452824911427851109361748537358494759237559272868037383085391681948387577645871742145776825038922661982044432685767936016801477659721086381307396333982627566503103359158310837358065118362338452685266324022470262389210726311022579756244675088860182588374742076680914845834818321403648116198892883734342949687383184256735983920164814245272888055922640072087182053142621445895507264650532504611225758816008873977889149020499028749550396550000619998560183772040768856391432231378128595607659998922878360387410063473295997762906847233344639101582204129100887579600633669615703930120678933855670712197973985054264797227293625027804304269475383920698938990187572298722003613817348706442445409598024557185669527071253399162650415297455637465917007062678693410806409163747226369564339502367083172705443602341708258095266762015218422857453379785008396972990138587664742007627983269902158478054663577142769008075227527288140301789864690309972858378861980361209135843823607514745067489375155246159476041577236177249642739565200779990061047014576798992318882605615742543893418419304720513131816889038448179604481642694916642857871953142789470592436329109474692606644916959365616131163318980809581602100180029038573719253078378841558904801346569655896603165377668436660762937914997443821473383813620037341777240080036080541769936324596027551360253040817641928914743011926571895157290242510898009213644524554528717729667667104671705684372814497495570173915152463559793780695035301167411432187024847814355611140369616000186087327031113684906152070721238541542105918962070540136269562684057573962358980133711407012308183312367629305071124853706813785702848076120131762603901425996287485099625078240464443624741678970404085155178529874976019393063440625180947934041415955466178479445793624876218318431047171329080674161784582345952291101645939457609587140390688982536995040191065636425335710036233262429486820616925597406935907037106517538516139705279596174046861049202950286094484488730360227583484209225706487082415678310275408863221350648010170345759753984349294715956229459821829849859284080391327322894839235965544554028359788464238758887925632340993472224437400999276540708804491284312418948183949225426593743457893437167861299635509404224959921717229382515740859307961617738229203000116010277272793310961207809313495159336519015062149550874723861143780425134569961062453775164491363320688063249975925947450037798779299489568085440227051539442839629500391957095064540099832518621465304360118354025741539710076627065933128314225726507649914935602654450840685820963336608841640436380709403855080205448896333778067415547756216795413031457063075789984810116630640807339505609145648142487741391775026084374951169118500221838754054861868503960470365464355250413192377842470132580458355804166287880993911357811267757891874504205016305241320169532112513521064246741556008355029684789856447867390362402436091336931288225542679220511070835955238980048611522754772762304499912128885802322531168862905479206126073399652855788345388552725907153369345845495772232422484556852811990585375620092030164867283383624143498938698586059489179545111819608461789163403745288644323265062832580033401104988186499969136601578949010749057203376601378943307722080439046058135165324532668746122896437273833398292451579800846336572001181246963314065557374800487937124007540762520494754953489114456688688868778889748597650025146978478542207848102550753216132711872525621378379553474542159292942207109792096114876646278508642769177127022768279846961410958198188251573316302002118719354744910565265485547523215112565101450753621174398299230969875936802185513548991641833331166019877505489645358206329031104533417059149003779766912779740433867571006365764866599568434301289275148332325299939684749859212842912501048372445507545658981100700584744772310446478270458143056877056804383541063107642062994267773087896234260745715140597946256211777938394106571482586746086646760254059320170491524077807873082059742946863359511027742183689032444052045347362174494565425946711162358314775912180781559129391211403617621388597533493218562903994433387074714200174318863070059533178383636587310445338953146068264638070620284747316168586829669744723115787363786328402039385899807491865242369194185087890303693394578247554952375379385554809557466232299275146374735046146293789196157064523993954875656915794934176895123942562228513784692826643895311876146401456665525118358760838746564549970004827987590677709886511031312514851227868838970431738831568624114177730532134095517309190944769184190315504885804949185145365428948148007815100464814965679701978321952990751076210238431976550945648261931673364089175217210449329035086030599779686564915110841186499157468950909939808262916328366041359213628785272566239061026656582121880320263774257584450417065650675261806636727613580114042694028047837714266151894735559164687458120451305311134635667359312660170031191346976269047343073885677123294325416789145720410878144899932334490552038335842510149459940297437445268534818770607952118214534670231107299821529851531899940081545930038940854472815147215001325621994886661936079097390126137898981720327330607415084080136064851885610633333698880519891936160203599553566433275408415118531932130472213138027501131857863671070322338714475945389654194724324647402148137191866817929658499382826161655084381776992307211997817771175160704467289064240140694801026088896737797355906595163126994674653732988494189752943690423401378953011853290715757521152044533787847009719337412005631137698053609952595983630924425368984402660504710053127437187661143036324820910868419702828905721115695364974129642691777488174472527730663000936103916676688248253255900255628564359699769296687277829673785699561417799052668117700616769674130113174473776695116392974000828936219291169378880874338181573413860413305068928566865088466891938561553256539921726772780376148995514900335363876363235465617179891526337913149484772842371685009313060663822939017878574780825385506555340173933502099101222034382962812806335732300331190740863877430677432354438234781772312784588248592009460480568008244805086512215716487825929286014331054762404785239572293486954247525428197077749108973899319177630739928584786717521994409276425849397406624003142788440474486259606062664981260788125375558462436094147652619977699517748369274504873441703188705958425890467281257480579490717094382760759238015695305776236307337963583928301809179627009447198127138726472003948076673384411397162279987391794893689109345858551592804714121354140381268078737010354623713168229730505823010035224898288861746994881017523173572254800848529125716392247193072719427289126242410736710191468739816206336819424147524037628710294586638756968226561031642758984396509696818459340757370685922186004678020458235532667440882967032712859697181498140271033725574713002492352772169581368551592818791935712360771773787581657446898442031745507802606915280320101028650818756593451373750802144497553932511822226823868557764461282055254106911496724604898179700637826723627219777498980852331331148224146664156824248097183202737159810769255955094471560003566175142015338841670638568705809468270947970571427334199240587131406973329305202186625469561296641571445290663878935690709265184621029734349525081954289926193435320340225446215717538375786098465432342311017934917293683671991639916324901845579630577819114601414091120820024135855720850872372665802618445423913261127357731431366662546682741915622409717620625486257569943169961298964879178832385853284685295705765593931225544393925752037828078879123038117275002439198871766579341143069000385323217759307387255329775890649755106845202613076946986086112054275224235784329919240582172411911400247122159447875148380691064559921765766445907108906971095914874019348791753414412483939422405681013778845011670553324148210692685828913196079496745777709890455046044763324790631047876733748704266420818809243965383837838931247185984593860192574006552930688016298360330669865807913075999124410335833783996235469193726548062585971130808176859350559531775161870826714060420409964850588469129841498448208911548859779289682140194537227907012424132895465421075447537787193626731794558441786531202748240066472632219839231435190926630409750294120138488593686766574367929848528634080717759145138402299804150537958242874363109793810245778073278937466561937411334676152482958301641794100305145649338690201703771218981692882159219082697401314627137260201983893277940616178403058532083558833711977044563933643002827036486928807959897881564296992697694328196135171683527144220074458791486216412533903331665629993653929530152472251989564672726011260830276156947984047492375476840519262484210895255993507029063959720230950022266677713506081619257449959585946323392035378679855877733861255743381982178948044358532450042556467068045635560943469775390844727254733516678528149785867171537912712788249131116105638016113713171237632017662634592980812955105230013487425726829281443986557065861459133330053108226457376497577993566439407428311237509643308953569603271616739368939016094730981216617395107296674046836033458541771462596735009871900650043253419179120031156350170349305224619527679495130698193167531810057170944616647757067859602359697412203183419408504402958254325937522195304636961289294623164490943960247867091110762237741145669252792054888747308892306072441170264296536140149325239403432724540661823382622162081208823846662234789277863306132003395881348938317343956977239238026429935201104053494922735454828494780033553223691930001389417634245775704506154499708752905294282893891427705252649208658194422791287974997617816307703342304204899346732451299459758846239881589884204622929649777601138102857869274869604537001077719695641776339085753142927700510463377708740472070601704210255761341098723209238244329468700739335560657938188948499946829615016391112256410499267684292139339250232248944981466321956806836233173085097343202789849629315389161614455613155894176198320066014014474009458517886100414740521434923765920719977921795262489527975192966229537305004036253237632939658569572408753727910031026733473535025770476568112455112576011765830255163851087942649663752908463079793599867053238083170647801408078409510705809561602055554965918763726741145469044142767694754702636449184422694497143219823268133512570517664335325685233560249103842380723576641556813659977092131822186916839431114819921245063123825789382559414489715328863745027731893965147971781558220489762204923291224328479721141181600559384844364604038257874658449773710476158691786921767286009252338062286103904537984482128319780881348208199230239480034744446978139540073052525126601761476448143691615344134721435008218479941146699757127288030784681428605960969813774770271432485050245811457589115493514632396079133063486820627034664434987590099879316367566795968273637502753956771088870287444708221791822716626966043493653825075301019174214857843170048860722864699993886424623798575075254368922917631335497323607669424726581841777200826834744925603729953550435487021892257126726266566345826552031168551361419270343212492977361145854559928328923404215950294262819456300517118809158771568374446376572356728192558530831840624975488264761142772023190611833413258340447141985884493924929039264188916292269949244042295700715284112181642644256448977769223880124804332112966277543960066131918756634807680554194000508897342300382602988374554057436642701170655860834887292361234734943971575887818002453687276578959906469372277137744093784263298852936246861554544030924954758112683788671015017957242214702249566207727353419639912207858432824087984204551710832201847723368751114709277017805079903875505664186282443413838528945634874643286363887391229536910693511294951291814796820106330684079471536350871324206324838762188787787980297820790006604895269530520988411797863992035408053531877233226450408206072279297976357845025581731745623271905929153916113513805467386978051640679561359253399426855376658184496538651317362705717141208543501659394265343953820936767888165573693324618113810519001938087067127354259265973116758314466317393554058549194102605399363621886871079480300095267250342302005363003517754519803704758458730112638249145270322959256644270703531460638004266835910662163424440467310444429788111339736553821423930810129442531916329609415260069125771012100237495847721003391740185124833787608307861879623664138966188581422792119193425122414763892912064256500411618793027818806788634368944919594170738854597290565348098897776669232349540330186771180396450701284516845250607017191155359844393323321743558467937938349071179399450355181591286279268717316240157406184809692663453253172927505541080297201734618672411632007519247387512982066020690710759681569643307437737767801687495910239065798646934865258165798428690821564694962840919777458094056970325829888859579045040232342400579822833382281417166795816407309878043879226060258056860785702438096321713351769372110780821650583904401528205090607200956421560043531733131442665587913569694144959620137830671462908585966700426523301526062489389263297626272192343311972032015127494523536700747188355914240293274347178684340090735929706072972557709472679633737531004516014665591679488550507128330793474093930325405022425656012259050126792303188853547966015660839342913022756595494733285088162021089928691366893560587345895411663992531136393411576517247956904116718775085564744662860573336010816849222020781465076708381007630048337026912579112835205663451255621299419107116516335819359860100867946026272535500421318077264848845363271277252468892461005042461619058046402157980134531036732819334855486515356252048513343523532519759101924106744019951194643453718748787672387011357408094282878063808361253659617154044219577537736201579897408148274484470647268269498234411178500513717319395051601446063074676709169859474454117233393170170497907495323947417528899473457454046026242089878217120432167006269262216237438541956737406056869453980608828025961721226865175902461823563405283318490682792105735465828664375215917804866344257853765170959858589350475330232719674325117008744053016163822893626504661859336209970310309057996596291359086810101993807527896593374421536985350433232432223447310636295506623945391226108402366080807497212118417312217088834228090000946407264825431280196021140364666275632753916965921395836152941376525320659311011343647386776562714696488670578924608714673372456918424705939611109273520547147814688298888141424021957147983035419581355554338572112284595492615245695796070564036371180215457906955857851447969437444177046508521600171138714883485017976265985971148791696109978013225883507336976743358777245816254188092795467071924879974663317212829098271455524588524250411045070397144452617152564285204933226084417597262230489613670926790300395792722020756751403320646244039054462977593585777029176608910588633094728665450896950083050157414407007620870168916446155947947543140508616449258734044273381248866342266874895473070291575255373304490230241280140651730888203387425793456016776402314190112026017988756346850618935366323287548050913712820665660991950410028055013292210795939838880927329332139123242363390169894371238880122964879107244100417571112228493503966372776384095756481918887577090174969788987530166916317354427993000415539810227022641295041167555596283933400135458853842194209928378322875526696019368189683082096893854941404110498009817463544543265285568063622630174720360925284041743779993069830634188099179459043995654658061346680650702633290995415092398188712952204520268727563313145608889737926008108536579724338437832473497262231178194811427934125116096882926510038872098009100398132769545607116292907718330505392305996703925175061347624577119801108237555418480752883765245444178407433324210460068450631095294677007705402167906219684691681316117360475962081205947554193281432737737713396351783171725986925911189329753096730793328589627965651147846050717671849769818132864714524790508416302503044199489353813961965496400231863386911881415626670426690309099823004116568399695405364973458293995177848336812218887568925130946657111756272779839157486240066244089347183673844906077765554243302588845560476450354226001353150711933349229503613699609728319912551769407222820111605980725329089077014285978172139365146134459609971707006345143845833337606634699400376822359636156917104183163873597287689475966412462744103712605485983142728790720675028583173998496533776029020537955906707088182228688766370014305567375667845195251405874974377466614212751877003694310235730971484725139698302988008414765395550137804299509742539056495608862169965823316385663732938109998711807277464419254050109524288660652495588166547784246137293605948154335874141474209342244421373051435709439770041185433119651274791018227574564244468514173039476740944091123175217917596732237043723328515929682988348349775685498179582861186546579024457446807242193867028744055486310583481338290274538235067092001558376654576223511177424064658222867653122980135148278161236950888701106994501279579313383444612603727611967906392097136671327468266589592603219020153765047182415401017442805299369957884007386288470619586299151054179510751629113309139459062952687402610481896848117481442358402914427099177287654095404826795178711009162207624163890065173474168795221964661050275810391513653004855508921804001988317409328602250329900959782821300803193055099032259731733200219498050532361543901209731457986451874413828691363105087515992055323336145848884877026033186483828270326711230308972471991620037682952057996382903726297053915083740578729189659815824654529319225770326836605102627949562442877456300945953371058668544763079088574188273787807717054109826479898964444372042796518057088386320450752959591239136189010685745330283651979096938212227855642998721600843557443318328724136172503915605235486951086727350571162898186410325211595007473101768395896004595436652195737663575708225918252839239331410152240674437173743451584476229144364959914297302956502226760193170267444887184074467667169015472598345360627535436376990158599091693937283711619046860884917300827889747931164691416377180430604502198597859930550826125621022587623666360957140431980754073127059742162182965944020890434522668196952044484367769262491007152844495520589014000707010650019384272583354290883608395457791023191821646544342030066250300542901454484813884636435830413735412021663067153567289083152065544490193541903469923955635343013987980710832795605642903900605554684081141172379351077484839310855923384926057949033526107354036787775279161864270669450213868981772275547383873445874633104278822923115996735011933145712843410117293758455381183718152699186376131019194820585080207850337544742237793850701997961831302843800718656949513409081938290933359412704170736855978558765559724060306344724048603221442088047050308784842480800904563247757984921663693288186925071830897081979231168788651970254502125608998087673046908304508649455709808519431988723507504632214960287646525349152351979001794699246749745366839284609824688326266937366120806321601125776482814042264671713875054540408987555889921573662724331990036741471640644424333565743576646358049879808351034751808688696627887274605290645134779608938530440459094517930397486714137540985092604196745756390063446791161191733992507082166800883705297037619476372559403304025247774082232077393535770023731593802594591300689580970656577783993104166163465156829931474937238277375657664714579490985910262355761393018784059878545395163596615052806663471774176645832075478873080920299657331563237663577725776317772289093001218307197842987424633316159740313769284583910705118660171746364856900552451651774165207921321635706968409949360101919724216876817605167559196115321273247227842388413811486477874167270724525883272021220403612113111996893441925318625169468637509384253861948790326176698627014348633675818419045755322017820972817948160226134743809972282543806018306098870834755679451194092940180498483050860501152520783723636953336276771015977226939533694211207399977618430027169057089510340019059588084716554041975383941103382998858227992334458779624338773017061376669845518906790231713632771923117057582464244085422890343897587383161872364232125919001500706884936775371090191078191022406796958236196250761643614980858104838466969241844538857909241700553028196713842944684567059781460348256619344015444129904888946572619847214991272580905108540421212427361650753932473827141201000613210005485666476223349060617694468054595165512874037363944031425920803496717819777510425150658629497272411924034197929408862579005838635531325384613338703463953054146374693275167886372265930523329220735098294620032531238622408335264600177186285782918738814101477972179474883854746420929529342647460390697311327369093141661815462932940204507087364798262729436771850205711622543722597338097460613729499259013510826207172153384321369740306738593241733743922876207640418414720323640438218913615944371897362766988316324312858289352527231449725101805722271457326003393908960483012361282827139943094714038656036759883787807191303975175150351971112570187966701544279406332810741432949807105924109902740801642770133889330058195119054803665732665416453475457661993528806047924753130007891279395611376914369589688316892534013882949044007835755703493289849620046068285561360943034159030759895252843236107271830557404175082560812282878688094207925954846462617630312060491763215991626199481913127211902426376799249571336438365249814749667933352276290396407328850261698947689798181894284561468033941172677778533659835751577405554458192836845832539540175554003843993426905330386722851708754714708782678555624497430722911921009509914247126113272867305752168895041809737491468408210210307227146534107058879239946510419800739376402037874131721781977887986767800719422798067657543829938438699982961892934994031715042138678872324218725827359160595344797353303927283907662116592738085239639824932035535379753347932591754059939325256460601045262214651152584266108126501769902290515372063500417692369905135974405700453483405162783617555537013107375608599777039234383035273090304025330205016265959811980842918073159684495628470770698915337841500847651142733252265199611766232368072065536346914314657884623793848188135421971156981991298574785379353489791558544693376220430923908553173508623059253962862200685748993672847434298282119040136612397010043639690871405248454142894294895817479401242759843531725156970587562874932391597043910344803881588279230152903273350488039680162889629653753468763675025154032008224846471295825451149619827310308384521041466262701006217437188679905210374088388024520190234286515865640302718470901195478259753758430545259435303997433292559085501941652162075530503803997683760581753358536015795408913007438910233286066742169805689879276247310262106267641715403118358708413014826354692242984501995785728022264357575027222716367566648048548411723471978990159776397837179336869794876567082548291665027052919567176231125951279238556994521495076150991875624955861488868750282145759024555592587290308953119319832160728060497344681095498577930356932336692644307015190932063428118732503272311111522570374830446777309471391591862166930784499939415594078027811253981875197319913030146334069887051716861133713385196045696749552874738663550918467466068934888298095657007837089208696591387308678658243558071107958883426418976379501723061754851851174947862548867280101233381094735806141137066670279131858495958050731609257985933792566086705760289767181052826359151101919453303481327108939787443294672812850153403918174083833806472972194313184903631024758924915847440343226204439167220631699968897047339837995950762477761524178393475267390803257776514810130891312129965722331531563014892649428953099504097603513876452507424487624179180715810442376682852636459640409058886170881835124689982323544500429730692170205034732199488733198320848360142555245584610065452941886892442593298496933293454585242411270328738613317069408142428420909213794568119013491060263144761544954103321274265308332473562211150965980051481360531469450088754443787259385692524234304112340609428879562009962978030103278097062863113825978230282971150190464513281407992248629531650525333057998247776182698424314987512937196529792473078808136127487395235711193431229849420956733560419951027960627737944950600276389429306093441245294290225477831507755294279371922595344336496953206898134145532938989323503179153610472695317433108946080286917910629892478679284762756882044311901222123476673586611098683527780977973346483743475038088982017749117848634396718644390983882576525235245009349853941534480387543279722607936480510587971171081979012467524584863949493962587110020356684579120683033765710538674559498902801161803095308872305728271471059719592519552171997782346994728293966252971100453887019905951505046323814505852197433229875949377061143267075664569913386467414982593269080078837391260572841363828912405803818795842356794502701398046422917694730394580618040012093297550995884203387352713220449498724051893367884082647129696078053039115030545411930570397121956963284988750070468484583464194841346005048105296242476703723679462663541506725057867665589182596135224650766414079791293551464363636925333106886311539731283673370926085201696975768248316000617868372775225753777435826252736965754216548430541855678425923378381935959157522273264164725784016650328405400755763046165188772798747612561745225839905866594162750545317972351722753313694494856939295430458420313981734566132816325644310235744953926276839733429799718107269931383683939784312371510885657973575476572173604486414759518736825636721188560273830894632423329701135356717249551957524696429653621416423872022081577315973721653319827045498461610262533464772983769157058112668491163810975629685031803264062116262390260056010847951583068799452722022563824855599774819097911323522571790424314806849541000022612046337185069749613571831821183396106224339212436926557266879718231983786851798247083743739315526124995676113629643510997731470044381644348583729987676606050669922669754869971433082774497789454705202682212465772897989411509300047529058604223891834650274389149514242234753903939113541160551130811598902314593031338608220949867948302960581046309152919235443026074400499751649469406445612127727558615430114453078155806563846421462911225207612602780693376957533242698475567971168145391318023745837377170712228641668623951841091434877981452530915201371377100966458310887164696779208125990554255207403503802050988610133292299292701744044088953796487643187646771235323177388319577784763740915312390903633443791268438354430700027375138203964872249581448607868105124999072104251342367724395080838527582124574451263403098722963566784392922468535881203853378038273520137933784969244023920490428454547169309078354754612442714359381760365910738697920790127201054019001011762486402470272234184538847634824840084068089283962502419276767602177087962607969813419421296373088313159917640408277312236200512586112746220757349681678901059548160180104061084269033948948498331788993712920087173471474795199384373847456575163140589435485461246992083242362558333174930930230319167735279417298032983040682804964736436990169148768308550066617349306594399026099555703073083584708515670857952663512685218815794533067306659251529272774808813008412533006692770360387132937143584731797573657022607954405002600168567003683431462872450240029045600286894892637417015737240364631943289227496996954968877355608386630692446502803185538030139588430509109714350020233672192514600786259677176591409820369509546043890039064151765525664128543245685530552680572965501039667762857077994941799900761888033935840081092299197960514816758299579171315815893552527385614749124272951085436777420315980723739813473323599092430492929468850044103698579035435982022460639609433115361086631078919474918353521155180188821757301643189977426285878939066568725413992902626398287187086582887843628147072375474450362829211595542964095864159966808069608481011035015624532908502359759078592110144041537248590748156957152445291433505006721937375868180812727621627615474093712088359240905249467478734541716642481402393956194230751965348308845311207744075032930850581729598885801441280961755558141312462099142938076687034781340858657129886155420022832123147760049238570524448970453890104994816646686918993884636033105952506492181390283568302137454097346309443400980791767550315093535990184936256432164209086037076049257734467595341441713702265727604046152030037849456996203919442873514082435408168125122299641701627329163735393498546447179916657469158395261599746225037134535014026482477000814480513091432405355486354928556112440338532252917926468317004865916346269002079275589444670535293570471410035569293407194492548563014535989831608327816579928890332154901162135390440933602460970448651825724582089748130710904660053522659986805075920429261308369456566825696014048606675343725196249883731803686287671100203967458714674446853620134477945784148122836810659081065131939597511501065750204053843589663848606200109752559358897420396100911224649391173483425643705185709570507470507848877399706917868229488647844318469859881187487472893756494938916704511014757937320401714692961718997836001051021548118697674688740922215264895978674046428090284337254294296381751662487242672885740069990593953264796758266361464297530693519574362804090248500113649477756740671403994286041249100369295407671273370258639144570433980043234813040250220159683342719251386328121832846970610426598356146771059217139513745908685133295641433676781559968509040513868828875118441116469534466225416087036768297113464774277910037277191917688703514830655563582719329262172598625885252064642609428085718976057891270209310024310902982846631904116755535778472863851926614138269488916960590931345588942452196054674609738253844815529515711994017285044461667756698767797048708198961250494747860226033711226142637898397927771245957003278455634641460151487686228316536861499379769059005991044451198912175008667064726502053594300818172471468064731357208000018262101356946310532776396488488611916566242265388863411915745485865845018407754339875706676720469874608743604221553180341041639115629827284658738658815619031782824930362554551047659149474779976403474480092374944833436568804409299859396966546314660833182907580475543723276611932326589902132782192001094576140430813517024973293478364540529556375609449006180307391708890519980622127111750844613632618102394089209110178237732946678706412429923160495811835433099870506711895892235199678618002481943890396160965546388581899644916627132628161313181077591885898143103957689806486853919161712421488627564079781676865663524192640434860351063472562123120249755642763722610680610567337513896506938085318148689419201829374669260993691143108227970356374889609629996872820706311924197275230470642924219116686290876822134511395196639752207803673445058129187064253716114550961247045691233706640627299119978203364524668828006587764746966257888977484692224066721666641075016043558725883684623161963675756989271653019501250465979877955978433749933535991355263794198138365121710492588717738429864372588287379791692714161818250568606368881919049051207598298711785646632841593453795178750574700957172169446145807134438125849515233960317937418028739557633310094330075019841327106029104436201866251800079623650784975838651729717416687653574760867862080755831577819483044857251794027122553691865394954542521673846405593093195603218151742062088635672733556630450459785842053494086525992277894425757806376068365341568065394666868207907247024722350378990508418363015434774037724334541949988874867175994639072126655562164159164163361445037831343269635689541849741145558850922522504619695698983710949330911707139022597909023677705798359479640262123806412694521173720675409162146780614273515675220751321986562789987086895760880292011057245833011295924147746341405434367458070087280422833450882535660938934948184602631288186278077860758076046620356355538031563448106592899689176564066953958057438889531693773225714870052480384309725022610661475498751472901872242581108323401341603386742590754841698476455505184346904964988023057931998564618914411569962566707536370608392891974565289667319291828690930393114362738274769282586986855710907054978954955250704932762903722222490666577415311101024615219166380749273418976093070468304894444812626980616407515899988961741616364016237841267979910652136386905800199135180574680743931664841203985029969521596581379225697002980954457556240766207084220100451363891687817530030295449780615024685872750562842888697966966677379061770885915957250197135445563193321373551607063169993036548920964077047087817560555688711887214512266527350125242172910729834828558316968148194702835921481657060384173556991595838784781191518827299571104720066471459919537338437052438327543196506783123534597989521711399416788716619150862516306398793823980543372740914179793409549084103863998811044510463291380727157976001878517524052696076595459286393229033614020205190999812644149419846225009901458658904833656569951439079328109433432069725162959089073844373354012456041236180927447051638609244579851421010929376313494023149116581649138392334231626882235362316396250194605639119446851947225959658064693682011042481112071552926380141430809574269922894770975871517177832103868415509873359562561694580378489004567811151371273002086333181241622710126122481350745073268426641933697425487100325293465532850829701210023433762103602786130928481884793886477831764572044968809592430225444934422570055114097293016516453929068706287452655273002538312223144133351342915626155761344085677758212148522680584491045269031424799725941810880895636308071309462817176216940259744795864796031025726324285372089698706764128752964063130987135280808125729114826086886482056248562202634021088972187806362952411670840551361489267813136258345965661904329827326162656365683734954506442069876163859964681669681059540647664029092038745736652526184579564616997398672586921493688278509772871053886808799073540335630165835055759756125964877549335401110540639578293276756889120513653708197898521471434926294812938860904623562320109973235597967632658711351340076221211061402061609579326329652993370365688752894787783203472519952562735437640504939511431489205517628105221684633610321768165374662221899833763747369182478380376464360341986163943832445028341106159098956062402481924234822598931709900571151644244377267810847220694430737485938564404271526644883518185711097137637241766602858818541644779564762965500067777148456938324752772528368689325785584548054747077243514868193297479735122258977292829568750738415806187547669549532989059089644337301824833626009683871173674740765360167146398978078436969864093295184756293313512570390607758426689692274950725554920819566341576556097807806826980209975339075351376356687532061243909298335067442787285924191146899481874359841016826320761349415209875727597338410988692030626564942969040957335643455884319125341175457915719071114141539322510608251143366609888571572040712796300923722872745717767999592818159513899458466591694760646733160102621645558095038987734977128910056648140148127439526575045866825111078087015494212568977900667026374343327296969853341674124679685451145257785635131807709643688581910643044896263702329435286405386974277031451640066010853102395858781970077543379351641817093982035333214890750537165836814774807231409775271968933345540953291627476842941943105548974862093389592819810786017126387937150610446209159713115723279868651174161866974234546045204631975867012420795177383030680120475989518409546802312012360044478935994650943221998415618831472644272065227454892264862756428432484924056453700704127037773799244360762218031591520012287400961202343518221792148267962651404857881199491590226089522299706253164819486530276232041875317995292541904518913150387840064486980058660311508671619342977058240512581660190610161136749115175693987180252149133235174047016218643837567606845237963008563294241064777089574798134587366409092305115705804367469955565772517951409034101743905144852512757548935292916525234360122227454719478758983749554633169837144074645076385003197745020493366659032019133112818823206927129949114359846058749390729453331941117133514904662777056821513237298637663999425248570940409540879610559831101628151862518487567026246516404294714212595045830294941736806302928321292175957819559389790830216059487590718254086317744047592759030251893919609500144512321248775651024376788939719353597139070382929024047148052809376376165580917391486619475891987606751718452262819848435573710410646771064679223157328189364982740325230635211662927883364977278548203443306838017104544518634701456975216481625636997677489811096120081710660312690203743756548192448182515647851453734465561354154160772767961103803793468446132643048385628526991151501130167335757817380516087404033838370155711465872923438724616350712364032831668303521904188987342822661471816692007798917730358271745901490703628009137880830092347008693414969846889366079513212621217347536633054718672176550890363311271794202876046013742297516070640654726565397541438822290701001586282838531836827417192900312308717692106264499876101652538486428715755840057576453324763825455604311932005433352028626281335348544262554370307124270182242144410020439547543470699524031666542767869089463322589816282294610540260926551648572853847730243679918991081179727801722919875242888044378901931712776542146611229355421388084553525647937222552028760644988627289528706534479257922482651780682805472872799864961569151139365440680145189856099029477731155926395647061667663368398533212227692963634071348408766999553186199887099851043860259388844499792953620764460217485652412547956091664540345575958105478459776568660979414231200243790912692503494596509877047421680918894432494476053162389513521529525326899323235224772058489730386744701304687150488807749887520002690423810749423041443524754966129704677456197108145927044393296571495347269963262292015140051777144082842973380339506710912016883731420041502046449969621173221217459193655406910811704429459982885728341381413834648969659071010122181934062129801647020812103447391960084084325481283448771579320035164244328746835485644030222993568997355874529712275117442560084373623315958254069545212162240831547363242285887997936622531016810608219636331788633391096815480153608678313140887297484084672588971707542415201789892486857921234307147832022321587020723692916222675964650308246360127754736128257695958264522076702185209785936286025911284394014181895588831654638382657889450928724878006247195938915767157773761256632220394002094275398477969927172539869913544524768258366232019623654355562480719976846218066658769085360521931103881459185195362930506991284423535579344928835128032446986727193314592158938827563648790173715651233506564496151468113907922269348953227851804818681713190229954612476840742578149302137263562401176057565031399890153515203004215316500430526960977293459735006939440267957472172325616364360892244155665358739639225007584286667627771876997944647781809498885127457659291235051813017202963855137519025404435872566731356493950403954286441288247443643977764495484357525711215179414034400272204614181183676864207203157929774291708690001936593024216931047360227191244971563851417664935080101952754893882107171504627262812885070172956419604530859149116725010463640788673734398705239777529009192188679625656569369816658435192097986121541050914207933740681262445815501149599336646172495604634230817110762688600353301588407042879645559962253710265100989383856798615728723432569868348861257111368858578047222648499825161394705197967717569950894518436266874014165655436367720462366185810454245519494694083541455375470354260790754246605517320734666711795838957881176363892289788259772228006733799980597050497291622013072358307030846893534205205600791453478459151975982371624333250614580505894939296828850034898865854397717167229610845548931490385791429350944437811471586390049254442145641399916415030837908512667264619919240141391960984319881305345799570034404601649615127127726969220755217762198022149345518835167620887508235220313602425539330059287846060286215522383975430092448233042849544952503232789976549957344466813390079598451426535169119861756049230280884463960640576552917111123391397952378399318109017190097214592052903500238351206274824196761622771418988904584453771491183733770469752803841486104263694058057228480738717345572517463027372558440058426501671267426125357816650898670021836193922571706583631637229497230623107367762843379726865703095852828139656090899500732476471029016677756594818193649851214061023540316830845495301778718713869054759147940434820910289532181610661395075437860143888116560866564982325735101061098324028122209757163088063405352677996767060368325963668067764888028420415157645355412578319220567173587528664616118016426929754686069425858315246366530148202809480014196767911265581918446821583339367517220381837276672215919352535651120551393138411508613519717374780353344617125528671528043452345966000935405152575399933305988003904296846023567806192407564660305345045067107930404369487822700589728288365598878594593215392971590133638884342487891063363047266337508678094282476962160292453475436298262626692438836876001583945653222100555585393462215799261705947616666895602189169743976634359032789331102241194882562885813230400637303918226377761663602041502178940303490431881002819506574277208132344034415931967950842941422932316395967634549039122491676756167607082215197333605468253546351008298396581683384206940535049343591256807479241143013175162829598923180568179630816049545458896807645938278588516315116450859768427184228537709618341463040900391466365293577126748056700357525205381959642475464742447551529544667252303658011134333039763013994628773766670638963123667681364074751077990801760845899827363411108032957318086527984191177139106828100205091560733976892249417123829156046525457379003271152057268449503848008912992857685747533338671891233636366605515603996575651674685180637894066534688484650306420460010439669882862018650293093339019671652400508237751198066761146701797349497034872378653685597492400378404023990362434692398817590793497500783589476774781176523897975979535026653650333183935435318970872454453435094838097584764452755473784597297804820631271672030645335644076583598897096075910015362938394064355899112979953626993465743726419881048589740680988883270093694752382109202417119024644183740955074413950024459098753887028899346379339253957739896637831427716507153430226707751492454090613744750127254359237794974595089606517566661347510509009098759008415788515111642411037635738635075792611624139471543836191136666318082994530930327872127662744149906959307523734074442552826276945380575869473011075099822982905695298575275859574429419884049626938238207508542536181830096461489208628859654796742377644065781380363542780662943866411150502103316679640260942966231802196372911510178481611011159466791826878901300918824016038324459706984413918288237222417695306323871015894027960157515149189279960848125218473961254250914165806115508630664657883312183901662409015719868190857218769515217598302367306348873071695141260005907917771371590394590598584766564760373323925328912670518793979546406347240387395209137240974796034660169294207469674401805126509692063532058453896773267942117823779952966875352017570188875307277293006591864763446134888025110526420281864684607333616012549349779080855327228942644082314239119112488694952781763137134718131931414456811322074581071910796848643777209809475482812498979313581620544609868970639690267070912234209829239039807560013333777489024786668602722908198999001524865482427466140334370354459944780988798644262729373492910332353096989079359749459454861507909301261403085550015812636181821454465397849590941596170401355458100130726482357749127708594271903624328107279722528498567981619877528492001747942452245087996669741243434050611148531407704232977693814912844342019033414089730608514914214696250264077998687492945387031020259963042533279493867540663158798688837868916049942278387032175116792804646977272492019306310625759108966666680409519003942640271378466690306574576665702655351066092289122251697455193490851468177038936554704903908213650085490616241695209405702314820828198871748672760291438758512632144552908347680444504247171089060760624085751793544134548506287885509703810581105103358514338454825209772011880026578355351981507642846017033270196646803154725146760638132214097451197741601850474548823581455151044964764655356986133078916821925579756497138316400355253600405836361310583522727602011534838167788857542043434126268774086098049499104284536238664126568380096795715139115638040743462020954259704887021462335087059999332882220181036743199803768890469229700950997477339261272211776513426690943062111781980286545510859210775625418105503817760138985165859613159121480888259185827040164047895856691501093286935689413502905185568282604554403929504252380993693716517164339725160140068119534264442449465326854192340531251878441636416648419522172361262812264623026398760393460614607509301238020198213817557487293966575262611281743426591174650144701320704831165907480349507335757999699914499778359820551580436894535833032501199715612007758300249240978495355144945862821108065527300202465285700741135849707190975998562761512063421313405896834153182456335208843496471475367652385527414995075576750793384814260726601080628892935791677084281054477111792278363561919277997874422558432833239110913454137004266144437276532397294925767012746704949341300255407286999722893432646881660824920997769654912594924330320862959662316233516519553843833542870591940760978580769909336786911590841852281920709767243162942590970265344102818759842571258257592601318138952198969007293499644795186186259587666688850005958390817814880128698519627328499743913868272212407095474942045489334979798286321218223846706661863201735799971123891798567897514116582032855040074323898714938889958370227094784482884902697961237022304244109319986419206082768491673451636577426524818288796036738118248173679756587955840703225017906224683827609211994964790891136748522075310585828483661192763706567675522141850935484531691924572475028589204183542292072171785727227513296265463640111366172587340174468745143547216591230014117689042331868580020254646929852448355383121721128508243746136998953655146446435558192621356018361904653423741552824474390507124774452029711437912750165777616807462993522273763110759669984049523846367319946093035156321868723686804969083303986641934857552694102202826977343092995275770881482048724908478365994914031186424270694670559604191033518855137545835461472462527443700359295009299735953320524573593783413132697251982632102593844056129690803555727867060138890545202658311322636672400535051481191668511002407542405728349820554065425958663361818706210178289119770503411834119631378974202611618585849968955370412350684052563381546591541885085421621738465010992291530483248924988022118291821365359579635442200420299456377529590720271157318279675191829136578351627539535491620938169165366588516526231777712588222070911091411484478444840414661761214639796161629535888744401636777641472057443840993273334581877693183719548422236732515204923996673236915681236608720131956709513885035070440710265846827071401710900257844001512036927061577641429530631879985750594036110836300025108485807902353847158763418598492877249907013924416858344028744824476407042651208503839658723691353824997370004170901629552376297063813518816785461484459424271889302049539559363242700956149370190004806454604390429023466491275458230587561841218952424106569057738515653920256153472304376518062410290890432344260226662100514139702523541842860971452589095895006207469829565361015057112525719305450932424920239038660751853498000165547739845148427621713553323305440718863194639548230873222591854422448495704041958582098928676166720705676523518023560749150364778350078816662719746274938440626756620523826342247249493661645666411960309938503673956479777488308063466122531730110619682820894579947564698892372222246396192331456886849345484968898658778392567994881726491515814584868419092478606105634854468574300195953160375618280543091989700119891707562248609002777928289897569534254359650011486270387648967044597411666871721180459480657504952222811011063076623794518214319292569531146553500794056231737978156952837226121000278580873021543391747449979710787096004365669612590273671099891377259062204035414445340009678865949171771935563552134498737208549033303391866935294703947848134702623784237872700979927681562671636240746306093045197638390950263106678730071071803491682724735130849423671325158539348507072941414962313534356015396687630054625043914449773238130185870906742722959176976695223415958148864404038042422832359649971985555948642003280882676441388703104839890909548358058038911340957453546201557865642480373528380698442727939974532069448206544901568373709055065917648596026520585890695476867309836580202689986927252217697921466740489513040302687257126252397313318515767774234258102697291421519843774703864013045166389744743656613910522876533452917915755147597842765891278828238840956659648140274787000156997774802868833987979284099649762723530854256673211750645184981567175915443831794938205095194370587074661855276016334850173339249817135260981883693497240069266103012940443248470883000347081280828671721879757150429630493323104590347116832205758021396464367968435834993150371433743932876870652593750195324420837198522544748382610449046170509432670309233668210564709416732100331460356267696855984982917963492176796103156612512493676623167685257947227939810243871970462919293043488375125104383407288164405060042145300421950230378039407085850499861979232229180832217381372115446151636118505169549543525864405176214940361414936624303590978565439470571214807112215995413052110546308797656925786615354559712849174261778969629410290385752361193616974396596061432256979301724707064737891209308890668394010088655623520216024067355892732511625360805748580208777951477664364955915613593773660247450112641880048785807965554470473974377435181948753718517086623458324208841315043489854711539620770274714747025243763595453036120128905528231790524345863308332053001642698774033041099200299842654791880201960786744703042506702588689917217642047962085870019018590889907450906414164463072555071498016773714855034016855857252958159011139154233191493282429501592873915553476927921209754168546084544716291168448837821866519033266327856188474169397897446504667024820847306781985353786510361139503451912013709846617913568548969320561377822326320956151392065926232872236001587061597454567709226419651249185603228011129455473707045821269557729228797677392969831248595351909590048800127756961272105007217824278092421680085532245366496213654835930547661967782325559380518523470868552806581497909563406274443631131306380250095617476048033989533920817806012358962161507211016224535302767537914871403575336937435299607885123401571045656671845152066194891588555076337548891163425329281745798991070818921311899332807156350101588252742927525123736483133709055618624122304418723686211708884727462450401750109157424292260182784697755630598738966179962034380177642328350082811709566023744752850459405558857209612384951040577536156645934913601431501900475936180870860289284083166416791089696962308954623250166662263261323279328143332570848687008637172184855273683145653824929591539303801358495823936733622787051771043495507654198761091161358185486886385924065275919532354078250618935465843401776140879182707949729581005584842625492293346881149954834067195075125839711661346275254597527787038898555669255059318767225368381841117469984235287757657292570257413883097738529242106567564953182432077293266732235818515298837626008185610800002230454920917131317075598663124321686993745011969359346648336575343104482620148312002678005097133030273812333191499421577901229484875751556707605838498880746745624570781627733735326553428462841667303998885746618983933425677277942868753882476134953115478781464248577279022594306068420762025077246520030685810476087286665913509540732815294146181167502110627670033821480331355760811593726498218714436619087466853270022928914731899866146224019827610352112837937193406008153419248325242482290759934847773089679646394611901147869726511845941907828723273479257376039561447877761126862145326343200446169503535294923892562139995937681174810597734972037234361490683497933268504301948872121830521084722494949950371674563606538129648720121651841208889807893284756272826059407615171898957103188555038082086904322516557885780815823687646148480349391638396348063737562084155850893216293815555555725513453089403496991357711217698282845023084304031508091508656988690253281559060510828605011447496410699993158906687474493170815429639434870825550105927587404760650195017015965351316829752290041993899967772681995459147674622434028512046540365542023974423080027931208943040995800673579223284358593476856557911350926635607373953077013925961156815578852623512311617874913716533491312631891653708462613113448497817410341512372114030078409700776388147617807494032811497354885161172139933031434495342733731065900837633023236001709190874514865102200909576697890168284640392966485550901269295181788282929545206353511937812122772393457456054374205825165023264864792609634485419248780553340925227023906409217553022665535851761304494818933745921269787460446070564810054377650571071407041372413772505993776349891859838616622927687609313476802706566124282084224003613282594527187378879158585242333083945739442677558225298675761256604973864263406005345381830364338169637471013335139259830837308912740004765905269216987106822489142263707127670018131690114648710585501925863064009809714849184628574755188393806358530983882247613700805174074732061400623658080933197878360419526729786689893258002614821551205332558894196355245063358299868070153567856546427278815470301968065509348748514984011323745509221056886273798112916514305054364313889097711156832873279742627581288326010025530618497925915790068808175885240273470014152315176901256904811867473807487437164161778301863179731480942234277665989196038003788035380523062890784171413157708471631976016719837639161858569712237848505362560937400943109117533385843160280183730634648102734611270103128263967637122978814891741223115519414660582524108129654880423434372868143565108492325291269201407946408610188762106993155842504507005336623166383596137500266457049841446772017450691354430727420750267925703517351019221779949219530596445937946147464598626358044483308306652437382362980664523237146167485321424726792771012903776129686205007769085469679813827336762092890343499555462307782157071384810327997671969001919818534313069451528771260312923100265201891261801205574048989339512292004048097560489264367391066042089270677669132185457366690727836867577093297029969105673230835303520195120899235741963946508798264350062010812537966029940669099226657637390750494509549404815320672256254489031023080138075637149886201714397281904488992045584966614560632061262293640739538551001131342986318062054626911999731468718405743559989126123861102978304454382287281759998453594216272283406898599431565753151958199105137394252962273908443989755271050085746528342364908624911039649509212085984683900021470159032797488074947051015519026720354612086648538883311610210864734354458935654503042193667681403588297620872345086482081988291020100218560204654510697651282598243236650341109180895208081221426637318874590197344336631929290903439824827056283439476728332438735994014014522830726163515133267892670928704828128782029747367053563401692350002793334485271194275662717376141696975364912730178997493925988341223416369246440615174136561592015130994793302407091832751088500488536541054054350203605404044236101338489773090769489356744344122077026282847052397736933673995873311422077339824842003690675285959614498886609920590534909649341609106527744622473631830874988821861995618749870209194379556409639336008725493544055415012102096247097237831239332793462444073465907580970796249754553289612949740057577661759350798198238993865039210029227787691374647505859032141067973394514991403578900664224934396636743479614273123802850640512885963932561316193748842735824304008567846864454705089312047760565573776035442542187820442770511680364416281971003593479179575619894714398630771777165931485485116590986719643199544748211960758951249649603826758027844271948313891857121789353363497369673603686753280668695257356103044358315903562530037768316603213014447842829354979041793655835223303717896880867469920912544018904253172761682034077029134781400276279463807598539698120164683461045461394831239807302446780599929061217002640541786268842435023383998895695796271096458447527144990882767678492919189838812842991803339160677216384449409175233266655416926001028668974197228288201001177076392281188127957029917147104128736345121073061111190707464699548244410175135421647169655829037353016524598596319118114518786523056229613594572577126408806561878599049511090690660008019622566275306938844140900868141393773405406290846076871439155050004245710572441082035990090230686799693077167833128286635259540952940796813290907376925466051337900722113539603121959780300062416511927263504474713075980597772298538168877036341656301517073622116814269561614988624882023528764737773506546982790025988542138400836541622408432907568597570415566741941248540671784464872195723398159103860582104948963551970297813938225459148638235216153425884767044952466328762439997169259211942810089447456953693182112453666739589775643698171938138629365797625519403969430602618859331921800248466510452998205926557508224114570689062005668819099195019452486673546966578335677022639765785913021778713434491254586283861110331956568458975238206499571540061354905950076168790991019091531662077625035436582351982886080964889424232298220422919118972501010288650645227924393179413053188714727142151945127815442404876211967665927274322225425633566029097298343163118555884082989847681416601918029864897928907947735578590229359456810041480138990170324563092880942436760272054496801013015654481155649769197358152305096704055152552051993495232811505193490182131450125429834678799428418630086872734384081151150835116663445700861060161273843445680999459233514249247201248730234497269484123186832932883441532191908492593130674099419794955132394443733534426458162532848374721498763996218494265386852120963708495030036626933168309290103810360472870086723740546463206835123650837315050033633313304290602648040006647240929695253911480324567873453517119905728432104189160552027118203287627051959279390145233441141034749478919488335066228901540959029887043644915030629213886643311775335000981405643858564375923952524869862923307113106703301243324532626577294245269484934054076090897110175814777802597397903269734468720206019187735489795187154566803194881791781507776593909921774128859487487488729686366666252523450769494009704167256130121760759349934320937090328450541382327346707073868225305568803678285100687189902248417531812313457746946794538008563638114910071709868900496102692352907683675825276380250978403341473696173075398247264582896509270613193287840909316239904171220821711626211642872985301813406972434687846535620324619648768674036612001097444252905583510564297933947694270796019726345198458638158349077908544824846188583253853326342784744165454555572511493735396878159287730139738329007277733156771001712749211704404405302274137247341727988248313486555652057903239714098222606727969022603279954711638132264153728099764359084497552786429560494017125936087910715803659367236895596355548710034925287206538333354460320706433947444339096899329294741232105715318460180782184477852035375566746813949003472687278390847229453091404425102955307061524824203725588269864771040749788926717634565572792226428588010602157963910164587284472533695730586324741269423610899790363664657060667791888321460081962063646623645210365231528102083516802326874787866069890171035766621760233484245614275483739901747141785987528573048689326473200623066429364594171841009669561673245870911228598224905844379017004866027937492628176407969067938170805779477636690150323241340242496937293631952831655661406543755488024310820599149397147785558021803462765057915448939167840877170779715531218148179534642467006786594067109001366863620399816230318376212562606143005705643000188444634426448472598397155116604528068480684612523923409372957135115558216567790664707284132291521530460337091746557776764008784158939113179881368464757564166875184122261929543816548879990192462544324208661044891199551499432901798832214978135000138974082598892600614884127984377278320351786182757450180673374247701144858540529319255382913287990457063480450171421149046396646526288316804821268435868765439642221176346769642125490972775143894860291383123579050478959702011537728250247593488201762382467272550721772389122456172410372387261189257724394459583238098125820301531402501925786097751269698608500254394791755234398129472723077334442007091570870740493715731624820398981844910628559041478772477007364571658982785192200774605126671497066827406714109101813151809146087233882303845668585657214116089422694305552411848481107348827758484248801568380881016118388570056188884789016169481980092037422012054764289758375728592722156860975248982085883590656373180095337723612907759714099492948964303549302340488709884532522641707975150351535854887929838814117663234521972942589086628587973138483999346854254661885008319837238765890199711380433124315822983582068783110042640504154801472262755495742994741333718193639008327161563836881535515853008202760327101281325081390453970615567131421617382174425943787574791953391534553133831062261989428179306045060453020700515946372295622566487107413194177075077930668216584855685884281647408984439478461940783387102063384551525253224478743714339950171017395486878472128363621511808367303132125573589756067419598861488715452580105561759338363324370777435436373044993386245903777768981593081223676015917591553217120863478308021400491480791092421219035945144427127579496516346055865544504104977623133307714285192788160751736445522463094374804168115153086761589587530458073047026550509536082472169607906929513138705524059909633525436316204488371393898111296463764083585295718360564509461187171851469727310989272178725704076492543847549019633087688530179658197175836477731976302613693277272916753296973640793854124248465938852517712300284813227017948017091297907407716901797658822184333249986815774194753907777751186056155845394387549746016038768208921749069594374106238716836695946367039093529081255241383116826809893467197976130799885467531287982132675500540195367618168339511511627770533658630059356032811412829154299442731744385726123041874602109455427365672566754876258035188576761566430285822919858967761412091390841816159747703866335824261105420084457751308516403948925557385346992626924562531787668065580814402675497781633703434595774117707092320320769388023045112128511111172608372367290192632152887528754423059620229059561768478300835872382210959819461758622702542780637755240673450560311974838309796447919983855067252537105469745143912689204276828545345015828138611757971436601125112791065521790303131963633842627378008803938597391915892722495987447917475947631328708343518031143686731196580496131353656686163273729657119392850061659650305781879648362190237160513168263235990549575118724581323961591763177352507583281126099247905653757489589896867000150668796023304179107796344800456909679952428719251489543887388978686412894242276521390084266246743644255179111233889542835983507148016365874889253237416178511133694465386361487147017500316536715933014492586595447421471472902308027689105293410312680453904705365668289467667405919916939977487273153536410683896635276894440735380647897470420928688063672188886710917580728148856601529001392911222557301860647992281164047697630195117120487285870343245407084448100890536003552096692906502559061697445262118235635310474510396848273320703292035159821682661354109804523307694236233348070407306093985419636987823075369462003343218485612776579162052078061758056342358786486258354438091769166463907987905609056348486396413646530401803694262349218102522917765140777886218418989207335494852438054587474731637453285448441954229588981440868429874540626806400970297498206385587975202641565942794726973843008033386453442564046646937294191436647827762033711666003778160435852898650205558833888051398374573779502193145851247641290119258379685254790292096363023832093008164695839828471837100696158644197697607173727012493570278487336771154839362507281517556730319456912766380303248298419386692042322288628932332781903207791655383901902551717577151232286997067423125077113138381624918636137103948833102067113788243982724235144027819169651155770542756033892270534967533820988970792714982911280242571551979887053419409227519765770328428177944030106825324936155232337052650175628277686916856828701858464105480120807554794753999344588765226206834903453348216983894570125642456624591884964728427207351652367559852002921138632407102837417360139097012442842564211138609869130257907811240344543101766211534363908274473120566652898376372386349363299536427496899586272998498708611426122279840306876580912207924107698094820135604524642263072413209150904857855836041189187164134541763193150928102419861480715680092281872006394281398454757531125282736590626855945720575047262788524076155911385838540526038557781320667507232933561169664846644079988532678631615620145700052855149807952799174275215981603181059506216225255286866175061641249401705499857218281290647637041904072940793772921853853412448935341776472000922822791891934304345409950238612703326975330538865665888514306564182995782790729799985884344533287401994107811214687092504558303647453989040043459983922469707489120875608507234602017707597352180814409185368774961313039687747838884863790958809165694919605315765334801313214340935066014680676718285513638350727374755445715464269833470120382957514987753922120155764446943653449319330314969429978090121462341399769302428103923286360946363355188668042014999407897224727094314762981129774946523674170037287853247114093684599819401499145465399895817211684203011791250279825630686658054370671768572791468176622580217108745976052791672100885806246996121668362885601100099972339959773532865152022370562404697989249925392803927759243921942398433398438219680740206464923398824789520478478015612648991065885212760293584578627025893575076733015124926861181541722622662418053057226995827853384136442382640624366637971523049230545515812532504881005713144015433244848051936425252451874215441114079092182808852592428357338620742889840961317126195862695122859385033994218854336959407988872350209779232832355546304335265013343743652909273057457113321615608344748763068852456691173588783911824755986972394941386508222765354524059223339859555694703949669447451752982006074503366177319326979986240529627927307693380716583275549606653281589400177495564775596005472669297871043132075327400965267962507478487946415700846261328127990165583077224172589071418793150085416587713814599104248402968290457659787080081737417815391013358384222772322791129365030376977960408935087590915130354079154850569321223497471912515032737304802652728329632213182172179396186048807785835790669955863828962648254877267087334731429263645552487248610826833941411883987885012322864019517564195128562962551643396961843475244187821219457900850052060463814878265227161684408557925147531480953137025164532558842164042165200610567049158578238367744180413594896522165290098611929682458834638631484532709442130418914053865686913213306258968093871927671141862618155912256451830263186170033631922655546034564687853938475136494570862018845798804734583987667748214628962327803185952225144692093332760777388040297970473320467693147915920849661038024675434932687997513129236642943553178663740455321190663991600343658085472024719235552633709464555365438088030677743033480304526992001643093333141493314900262209991268379541826740732195491691501705335618795154299748697385363605212357941278219398739090308360392467303025027673150888773533386351854454639084266350718079871822368139225211289072883777417272240859972041347991209417893945836839508138495358757938419378247574900322311890314707515038343006113988435258437392745626408897871118513884522749345397027735875666252581619762086472116361064545782656631557695958717934170195058439776837733169939915596483335612258164174978165873359942472999267948282432339198264348313624869615776759239042106878699874528696403835603840561127322446353174990404911007665060394247172608970349516063125341073862333562000828906783584729155424477400424245547118666104481348302889996746340351609416891567450514157700104063068962331597226074808912180100292155768487755986979962159522650843368330794342121318500486168708181749884614307918755447161906134893417784364809170812423629122032906324930565007355040106716404560520679657089114644097305958725642830032229755914068986766565504154218107236966195981819868463841863677730372279972068197128558970334241349104606739948663132139551327662215919803616385561398881127608537410913298967152419581899182336959138440033059238689684452244609721948658489368847670061199954514507163029334550408909604947846007097357666815750496014709368751195867158203517485443038476496170665816348846720161331149404692263947950882871375586548045837309806995261021682890305202760814190477564995983853193917849363046828802682146575357433860985270287709708462896510869049050059228055810761174597536511144361495597914938171969765979222405533996606112037588072486747622093374733028935596198742812102419519170883972634139817538228797138864344497931733173188010881183445915244645179313475733875157138445206652366058775927640642668255980728839329451919956882841407292887812582558109723284875803484336625360122672455392019572489649356135456648173421089405535947677857779332755108082479048385323845383162602504254269342635413639168755908578126061562520154380703590716231571511423186000570089432391232257078672621813743493999013954696730714976704954628828125708752734326097198877393464521428117078020300215876647465368719660382467312555328852462403027317606907855892569979724280581958702640470991882846787113734295340429770988731393304832632059266453755862373035696255700719807405928252887169404177208068161008662023491875586810984639279767363562337848374703895667740302011208398313278622747199173247479665263731530538468193156658102959228455597562588076202309900066690105385131365341483405141252488620785354825247175683232549458232606842135945339403184160671169602308542466182126697930526444855651146671686833611014041605932964494311489795735813473140725649449054194168125544686601070599543097522212725393132857391030321665285119273285824025419231437753732214608996127074319857251832295398852911904234130254453451819276758427939916952996774983950132357433681931597577185709778618834772356826178666491674751583538988119262858762446087348166688140053653111822921518107848067255836566779139856152040734203488414433886036136740727532070348248249809811343601908369693630836738900566459886527213819387091754318005380345232924472636266091599509783820427978283468329334209285583280964535230863471312943674362397575107310053786988347778251726052427544002094398569704695609930271663462655671199717129299517870447631031598645249656073764895590191523105240842099894312719161122282632510825360543523704112357132693031245414612263808597842496870424223903824988615137622462509635333668520958142679222179727089094960323220753791017977169701601994034653688143379652629697479881739371161699121728855866341532964631574173724249510294484648325050802699141246804348615282933589006562825462204246965592806106392122456512432335018638448036141595182328236629287933124948614849341873164023158365869435512682098383849049879779646058729566442563915075741329935876969600806303546497871145970233091659067763625848369014170687230589119003236935096906623221529556663644069248730331444044403218968006439728036916898586314505157653328560893924861046796146295207965650395669222839938445318009811276759336674179621148272723458507786318764379833973645822664626765526044005133985290616939526866619888974946948620754444072596061545523692602462438926334085755808529491544459895575398057800202165701586989960467093723365597517583778997150776996781358903348974551858659088041169122177697565615229108489641392056981524247083581451460804179314157900639764494007625405318493102119971769803257168593557216042376671283317002861320558698411395317022442661124630097833543531992895770258892928315324799188981630023235470180496301106088442804971913725832996667672407827603620157483042346535348742821388251341275861732640909584970440914760183155090341696577617053327564017145995897187627825849368119989693226503455607019307286139056663773520373173781929975810322923429557426443862330339025596197022060110376620090879621882495432651996133653222458993337633351888038101408682423428812092907107813219303181197643626856059662419572263701850852385387726818517923030132422434226015590674678837744026530852498490593305481214925525746645682957655577053153287898745501044467323896049616560829103093019738517688473894035000817794793198409793160860214847719318194207358662238252853568230074450219444557841023727302312800397706495936861760037414996040767569813236533484467027435561468469161671884802631589077247318607991179692603284902785472170865391445796304938495573678880456649098385159570934061247217083827291384875211870994544464699468268045258861282566260935493270301859730765711522146547212318706233852239363577711176816257980390387773234685230893175755233244594605201542351202884931492666730326078303385580483846976939732663219144716444506762299693906268960770382797665439368998593322109135929132544464121450757012884199180580381620498876576789975406345036967797372852201815906292228929268205273349155005662971422624923847489257720508111433378727880264518403199331542426696086976601439480877846284446306862066549872006144652652982179463142324962330459303590970733766241031153360347159542945010994026614462217274040242662462967348952665537314966629695850541698411449570285679684624573058829155879490166188366018294360304451359552507885820349841914810886388371243373090385490157948078034473482370584993198750068671005010011658975394428982159681263074107987221524191391347589662599228964385041685186689643085651697482003386741590993875628849592960676203691061762479586980558559639040875400477608353162088364033017640748891168135987011154960302243799307178667969553303954171995494945354823963913788271383225770260573902109709002699430254557948453234385165511757048493815386129025982426189825402633603576589717469895468029847084465373637834663362538032285135075212626761343203217026106283549861185264821268784770181519781375739489000883925996351237081519043055436388816263022997152431665559474301417259715514798338374404472292723618564244175044960571437666224350123907865325796509894663628102831160771758462029172177637311388554475193845699711696281383233644731463042888931639037623404134147194648975897830306354584651777688715201806711829274883099619265555118977262337027495524014261311764736409872499674492671115241899949368146495069844642089158674547012645657615946190104758248971043122705850362298129379175421517116428073426482408029885783048924674724068836023020006063338453924749291819066880794533734785426838237033778337299385616384817495175391859241305682927297525839494974793158014920216607845310086776918100454685255002105931367796712011171379793268356623025149241946689261361369905113604423892464344032423381112358812201635032102916006870447237761365195146817109335388902372484990172133986942274757086546051849134268679143596723977575985611946145637941559783422315663237961118928173376691375586006859263859191359191679641177682327115341289307999218419569555086701621273923062042442792550946166644696608934720066700218553302885606040449968102170014643465795375266974398582435619651095737421373317749720086991423694446800923767076425633006508338272916625226246003751372500874986648354249127838958645020059539467626989871152968197855491177231965288916184592889403724384679192898655690744096450673596541606614866943795166496767581567247345498283889006522044210174074122756891261790168131287168095541423488985820758422543049866034806307397826112164440483284546026455448717236866732946864873110695770248126742735311498796607392436487844530782115049947628051777284448670021697873083540753048776939916756907797542579800455179586760517438282179423346765207170150457927512847348035790260703966780744720129327381958388483381236548652930688568973331677609702491104072633011999708851257853286555518327905719491269095087185144964202446530857932774503423591445407743572715908802512126121831727035482160035379599834181482426853511416941462211551370088175096797405375533808522837909120636350628372305222489360286925847062695425884066301360069003258480109944593700905852002895296778538825376294876518505973389032699529520311516998624614904553873371098598840878561595698572515949679913899695989300981575559532325713159898891682955812756932177982838557361569190604859371390359116786348584728588801617540639146416528011333538041341551503263252462516500641940467167551449922979805651660341498683825253232431175194140835448248456868468606160979729299633801259619841924334745092405448042515744412008784834176271875711332591414494052906351256452867628624968319176218045450570855137630734258430315450986511634795550266546688632851816832900081689716632384677555974634544059604659647886594717446744916365789535452206851029747069425372669088754393276219733642252429604670885674997497825335105483606305663201543483314495272388139111436999155227033163586753676499660542489951767833616336683002713380419636348699242057915930768215833346707458174419180566497047073551694921297997760239378907245555563291060647236947490203332457320576688200188726694789956003277412502515076013501892500784408791961956409097447116352382577857384934962948163104757497472588378278749664203845541381519339977389393592931726984923379681988824260789711998303239885268280162223408468956434551956675244101511057060198521344608745621262191605076001065524240974737037455825475131515400367516470331558064143274989446399869132809242736387046491143972023308368142781270119099562958708678851484002270510224507207221716150266895170956961368608031686781725005296432282545816297855758946428946832171817051454151261038683082151197732471531143492470121438098092974446639217637911183687729816995093698335891467251317428238170572146157516661493510205261887383854551514033890022616974187682215190608258360945276974756533974582896775600265767663423162115428030214090854413710113374601390483115661819310770849678764362875854680232288546750603889651427600141680103788590878527819871619491920268800842665901524157154631239916162216009458428975212723977321491174192863316796606099770163023526200183481419996851058117002398185629941616342560791970184559530390934017370484199851550252722761851212425753595223293730747389755068290079335778828838804581840027473771569773323870690856839880185249780679848487130503422349860413768970016172020189756827832100815809659920550660543130029580052865674333758201721301450300218708888572520509279939134447783738280722924037650411833649116011178032669422461066813460348352947303200871348654654408638521974207644819003735615354212969243274768370973221135321078294263408013723231324811394028129151909049576590605295478833606467133932907641912682672688791011490270588094648678649889842265344368963665115087047903894265777685891495162265576285600528824468106738582617058100997129155948419199791913046482721311986162731646766093367295757548732366996469283041719269384951457368123659315223386267136874504507268924258206149152777970422529210251599351067746775967758693215235482125834426725593779341867101238350673214704861777732753864984441925268617898993293863723160823806496467083134316362148911892156081698003829759436255434099238443047587620023291740568397835817093259151508611173199099734095494543472999339576546882888461959541978770210453411343563150506255116769110008826475385484313628194205285594272008908646231530423905367704145209896784424165878286805612531096882282505958880222687907226906358789292832148839091896544758887018386278821456083788509182941456571921908104164180999964812547028754402144119410418174895731470803873496507735952809473269564198680542320443642119922182673578074522754912577410654331533827300069561454114399648631293193537984344521003844697733973682673351889914180696966060770659364147845239843300183472966667308554925828193373912696482760405026828789479245586000558472250063404712035262746583079283400980960219751782111164843139424643179409249624498095085808859232012113686844943446717057570958559734118751993503023421298071997509642676386941756302930297522063260716042400597854259895269717452675295509643434937186578795914206549613724374130836702047488135924689160814106255951759680112607695132412009568509563687186937677554873652235151063335948515196978217408872834830226130664900975396436850749016600186735533841972540693117319107291181514584214185470920016881812292037449386999975174168207974311342686210119889946524059700007711571957211254882462677362802447148726051508330225193230183566668442108242773799611080181710780892861808674401007310347551784828837250583750379869360256757715514900238282053511450532412981188203850335662195655190224827032362220481294526872579704167619147386985727442368413559606331793124051135809398540050590842943308917669507316875593617379470687748686027275568770480012324026327389287911828392820179185189746572448827329861212896227830774607117566892045562327901321216463735679918657143194817281350591688541894443259347834585432019468863968577337582553640267551842654707721830502033042184876438898713502344899342783560701696497008168426669586823207662354294583126825521606180423989969978081943712885386583077078994586304360326803513549071662175711307390651085444609287299492875002857419236351813768362613435454985127184255798359909590888832022635466503449057083998601267693003089193568544393858159857144086549511279810068842773869559386901048590125527501692661126096525802327896742583030595123095251861674340237680726629609728693298774840005103315245369365126590377251984332031857615419398212987097290577483993512465686485885012767110777982146065084440021563068068787508038530286095295531839380539356959376332534321647859656229806979282840141291339502958838494508734823401582338705866399383612466941623350298672173435786878601112226911714485949550382947209657249613425567491561160886694822577188833195204352053393802435169764273321319388445691599218767881321154910778682348032345144950317712557016992093067927460706806917075743219588275133542795210085811347301981262100508481827069334328916820637913808420516554407571235567074741547505114069656764359543989065533079319111932014933351553954178541830812923104644663210850701449213295246768426636227236919082025055159629164073260171867722303953329566854290757132547632046394888754084655264434587954572653157425221576660491519546574112658189204014309182015152998249254816871405820007525398422805572727073797383374796327493886026767138561398315874195514478421979523280514699514089747153257758115122431160834264400049356194585686352962918492509730857913914836031832403124886979892356999681214466864361086514790174459393130981809497729237171853970004313327892001669856431691193166426530251496480120120541250155141164137652778189667620647148218200660721568167514274758747828847886638720372738684133967731456212198627250993222345105066076383859956928955483288879944926504102419264964782703107831755060556878630648855758214927363195686506607654261360780531732536412151424453616817048070088991074269666967646121727437705596218750629701578879932590445786243252081539459243499340440957191427349730182984124274345176911724755347106241140946418519672016087789705591191291708323238000686395584225969544926310883351154964962990192079208143737626783544533070295014461434606734208022959048675265864841916268093223172709655923934473238052804661531435771620039049812413468045190280986942220229892755786856303427914806346720061033580338998484421417875815089031835829517588297587911901378876174152361593121233356744061283175281441953961876511969923072611377113654209701207550295612194671233536023381692772127823941875968814136106202008060043821714298451111995713410843651943040889734669830156086894263834200488168060692220866660058311679817184684706527684269460349914398970084828175675391691034850411489096973305071646349181736742742800308291399956673280677395907409909781053984296339794066018264718313818336200631028000489202301229732828150148763311648663588848669834642809003778972603632949897649502344198301462148196939659667921695385162590924459499607899335269502216624403283288425986759713730645707147428645795769938822124576100536792207058716755512113384828508117434454546111399002144485668371334868910669903522231667885925428649405269639977877884689510873242612804728662959924060903220822414882036611418671153935871085715053437869065330956617293468641740847311368940245171520640565542248139139785830548592260326971075170553594956519889730839985274238700546085943829317631624268257163974416332770733253265528752622912879649598133485560519729183210291518384934053800623781506140531259299708962429953937057273092001360554219976641673063995927208674244941027546882735496266164831657536763291203520850439747652372452201064782886683790241315762711625254563306170672753140493924326678401486313714309281496964752465259061562994119872574595666546785036316218821783743582150239597186422576702446136681613290122845259405987805408878045780809886355808744135707768321026221763498306904573151031568345950058449639184659780624732119280333903057832691072938744294092421445374320232493469219896668606589137522212368707165294117870675740766934028041811021401158898428881354231674744388904659860286981304753332447273827763788841581882965596102966088683102048506150911829532764861297804332488857360690419986310687504670897886503214083291154198681409557234713455121472914570674366521468774527133922065904124006624741971301309749856896246851443967522303597946314524148609744120251119693443101390602018541045163860224202168499050669633087187163518567299642249370433278018770544350235195908310607664755811899840348282527797044116941869038131752897905654021037851653286718791430608288309002341181604285246260967896587291642503933157369022290127664138317790015420789616730402411398543169712822877930189461580273938707320883701614135779369780430872969899352270904457666033392242308415874677837975725438594039070899783543107814868034080283169331946577577837472730228692163803729711654230938453158403010936849703317183005304184590474370242154475113351906853833520319850704095906578472713186447608713201139770807047642785712008444136506175981644651905361335169418881220529655334286285802956455710175956179814945160473976500712763637087695965056133340184422842201715971469502292632938169441557036388641988491408960831183648014284628799521330458838043298131372998466957080677837163897454578469798019225888690196124250709010360715043709810779907219964852667950133794006386019757475627244387913037766682854449138219425690487272351850940805986255164001776830540538967559673253207856817806845227516409045263108233652819041146575914140199592021860402854784270182350568067485282077714581186086478624520356639336005545221888785555711395921376144652082764652679171576144211908303545665011122134285900761731074424746291322462400212976166301070354803899638057080517906693375570109207745348271648796959021871110710503620301054832672292967176589543980202825171452703852508564243187067401917568341374865626634455867094227436611411650238182858451048855710396304346095639820623065710460466992662617889465942791672558512705976976187010549956746515304088124645864508732045292106155964733260454647656014611426271388784099900337974543684459465848174154412479381492850942762602087798159528783391816371098803024231986545681873879612289493124127823517551845776914368287513637251887982167464250078200880564289637873109626080436027471754311796857507807398750257898365593771688606953338291403971386920521201557846010421078277749264067480487722639993690088339962303763571421971612030687911120791058503378653903258644491365631342054537258430491971807754278757397347046696573234043309874856386454920871598791465985774675147607312722576320699100642889907517289401018547506794766809164367852003059725347236691855651074357733830894361947823034563279438859390328278181746318718409714862996644882011493491362129344157692546237146387273884992328424088850519232319000372282510701596733049422285434138069215185017353958560384970492024248809719329648480237212878815674827097636453965888649922647526945398848012743115498234751045259790095126126789391398038959797798263452472574743824228432860004567647037280278628416444029177651205668339527869171075586240931011756720253475160936527966323772253373381496908179969880210756150186975983083234295899806978024269589485880133823334776175263174648110121179849192908794420390519425509000137296020789418904440605991144595873614696352054956390144266001187559362675476535183988719485139340236073454284676853248560815569387082218438353937817013807463660177509963509669120788852736837063403264446297351750066903502083567592412882530801411292498155687529557790895573510524421007592090089486639605213864070860245821597715224376558934746336182022145941881435500074350837512448039465113132138988927345348142628249703740232029724340055148764164848444130593134888799640335863636816737802390606971106735960797064593246807355426268526523716720871819297543896082085522578766699265428571822150966955114919272731521420850733689541422715088802892426617872825655762639740506850700298914613040514257669341595928184599466601090913864895847746557381663551931665627782973124510236001179915748350850999685352386215943498614362190569120062692738327367391256052682221985808283680774963047330130171075418521889380968324140923264933257766062666766997138529182824520284234447839009174571457053947182567225989414315163552092249502511275311687090994111671796589129453239766222249671349079830042057133257734718724299474438515329676322365532487037898029417197115999740658226887556980740926259517346042051798146185057521255143798247703484948516193008870053966853441575300054942390134263278158951395859110235294782509760834674993860462652622300334092965004702649733555076616046250355615492634376981535518070848121640812859398257454565704487744559337051938722471919504469515626236893257075027711567942687021309567203157692879756166424346675774014947757790913514406200072142683504977615407156832319094522231087894119309521995247896698668344585448199164313426561097547416488859252275368525252933604498201946075372326247639434775790918308100750392953049619046225101339494138952447969783031471103932190747914910182421098925852476892061870097570965792773402459477915702989108361460349875790271973539462724397380764997425951086890615212555638715461894675699461065867231334454477591419375221072725252297964198221351259729358266332552115193371011372960756210466922918049216135206607468451730679734107694156792111888805671983700790262967655118967108004275097483643697690887758118169394354058442286382672935348300404702542344181681317704688323544085339030074525014935142464137708851202773371351178523027603149557570898092978485720715423994973264286571690870558607389119889955901515530014721192138278293677707067274000902729352222307655438359550752703176442899169229868181668247227020963109234831831484519335923827062376884247657132859500983372933095752511655146110405648434432896696162340292952036671831869078926315021842778277550004116630288005362847199788469383633490978892703733782358307208477780083722476071185489211773661894935921005058038204987273034208411802534671002235881559834944757996076805142175795280230055824191462723342440539239233253809291111498847118596686080169274635714331583114202375370134856163039651273873801538642607469473983093366596338740998168546384082754415656889005889078626904598907085395501269828882569046832097446118863933738993879432141793139687208863510687835681326514498863970888377779543037942492318663580533731891079431930370739015443013709497147889352951267287756132005986513932613817915714226890669414581038296930751656425711940969113092466833721178973849177811943408269473970219011286625965740020130528042527270036044944672309958117701893196643147665738722528459676577804766458345108958919143909772879014893577331203634133544429221163839768771679178910666129053697647193373447034936887302030684198868441652629187055619902626340830927661841389770303806051587639347609220295321118331846562019894121018655346540820499429376169890577028156708415166731386024031948920831348894747166217313487293504291600228459501383852833406490963540819662849028083950468811519936357226641513635567817093482417906760528132720440172650291589357810037547563156031705830933897388500931818167766281665508953641853880471653739601655411598315460599130458642229515683303726291957862252772182447191872137235355047442422701009784473836428781086013795319712585055588545049001214978440054747844720866743917047872895014327713457683157583496658241385939172044975818367415486979373953889116585135298050106950078645804129986728563442313034652295820680046843449100721985558086373989778270642106867749093522331361352591958259160005276593559647839293642627172623436994994784225496666475322354075293573238053088241345556089897687375151912257162642384091859020183504056012706585986752931640260077957821140060236842399447812395371193036214552669871325619831530166709201428503457486598821004067211690681738958893488532704544136260324764737942977493664627902290382116815336865185209100662523906722215308037435927052506176262074041045015198979365080434236503314385185197509800152590022776424189222573945259983882072276704677086354976638533401259854186106362594285443394701421211753883028388904092546583759014846757549479468585237870005464997630387351057339665616588457626456387404398246293772364885090398224435170251150401276132182823492402884445890449218198783690054745317137052633093063760920551788667983739984122363438410278783234533093335396760327956405033815435121110335692772323491148226137845640115123261009840117558890360751761217141951737377517742376692040447450653871066088582066989620759392748290396800857507801373531191893472159614502420606821250837459754577800378806032354656467657849550863595267133963486889187704557335793792022995667688516280975148137887853005550065477276692593854940557759895557759546246488910255393416269934643415193655777967386973076298028272036274069720293527739509261630299253646093568169805646553903879774657295372542062710185247463939078320347132131494410429093410949244841623922297892828642780813113889662338226866873858358066799393225043616915672224086133141781060052106677014504694253729029193562285979612459225876306665588947789294619258375916751895413571715913084255796541917077166022458822622353090785724864348978035791144789222969657521555666686103527666640806216119500169303860502663632520274288859633173856351427271109715913640083345502762344389315320009249573341071006326624702450740267408960829245601704240235117284174924316088805479197985264509307544928714627102810682033768352682461791395318776850285026995136626277597812677457200815564713221283314568720636351543040967116395053083375371946052321048660191001075901722285617027383507689009238200752126414695225632675655112022097585469605781094566205862911069472536937906598342713645199457971007458136626789371730197735784054375685033019861893953369228432558527630807280799726663314247167415026742646560052301803839870784050858957767461968585616111609370178653466716304240008973874950852610371928524734611199472885199703167198004706497949354877808121623761960987842266531920118867106063319038022197999949740634654971446198644405925102017325344391175846724480138732779546679642111072075329865465207224498988514617683827140757284703253458252790258856650759855850886779454534256707150598084942257601352494354682447686306037580186026262573924278477909834755120953845879725786228215875128547078785292676150635470365590610071698401584829753306616867951160409385309557102307538531678536681029910925948036416408195576662933403294403028813109735636450211500553306280676837228339170208132626934058153809689195992763184065766433063205927668667606081196316539503509554883721816243233232137274244532098311979898106560090383933734479451522852096681928369123833866342465612065959546076814741292713985843756941972421772968349057396689385412666081697784424305868109401451222872155307130915161972571496556579115830094394521279095059431416504945116185479683749068422211316572684500835961393183922905122685837280918432732443298557680828859551971059716608803903907922109584903623130048381895287442944936812790433942421705607943867959772651610252093710320076156952174535334774918669840291453588192946496931856639721081413369290778069742102922504740012009293720122520113765801392677929485869369865596738744903278915880698624495252101143933823052760535931580400092528832391824769474137020380451154839103531168394930876259650183729695688004362984351474128100212062818804758806470415436154508554577521599604650087847596627260746138177028125674942236700358547497996861587271580132289204764537575231500380243958799610099895478421627980934725870538609000621602622158840493379013974676805912904554085725830657557893260447760588589114656824308892325417783781939585794154455390765752291016338751974965402125175410184321749063975115441469331616469502920823454817771745672069986144201822907582960097769082986921585829664255385455241232651978507137781402629152445666581852070528055728906023638913939294766804734446400841589952548471150474456559873269841779290863052574025116960298388645022616928517560497534687337117587377802815048280435300352960464513564408533229747290040687616009898389252372191557388428399197250681010819855300346562815527778272591576647029725251082241287129784852896069484548811683372559765736063174902111564685422373554127176546113671605153721689259953075053980023085275590895305998692817168409347689359305276813743137364735535091336765071379252196750387223780791661650046250008128120077205602952601918306942264146878430123879699908828812797887015363873754632357216704658155080651608730953182176800516790656221374078342846340066535572069794356319263995297088905030405496668390413442636305879343972176739189034412478817347485951752537852987439217030080122755853783197562379302302643358246441711927780991522634264989510625460836870354119055561359472212785217797430678989521643881174468332676760031329354336564971874103381315943374877244514178449013839722806588676503387104880298484217972140418913227883338460607861486517865944183257385074762740189051819593113963797652326439408819082569769129906305159105746461843993548413307426248984973152674019838497409411057995723596154318256749619553321671722529711848581486465896952914961850463054884500607337744951683677100967851360750278343823724449394600837308215462651825589202724767084064489034534967713800933390342787424273459431248774044230650328432389581971900331258429166122965309215314843294893603388867823422101663062964074265315934489776518252989921133229670057042843617972566802379297555418513317710512621775445259275473280960407643100212694022806884173412422413086963047386082784525617903418203181976564674880622474877032825228631248478835521508185948526259200675870942647018828036382254655973027779888345393436710031781977751931635729475719679903824775580420460297101084252192274693790613608471056372518148505174425407958808224930116443082033407171127346227645473072886214343929116664312598883360391874195299600003192158564270377959797411637987935811649770006257210256307778036912976188792695908649757077226648514369287466749946632369830048031154930728381436304407031873240903858016371902740792403764586875460165548267777856293267967240433486959459084171567247702722215463996669259455344730021935559462152166720949940064257868986551280282371589537434206985382410638145898702201096274902377286136606143634846608511906323500476120520055444279281088699394511015492078279772806883548266714442352448923799305826005197367101990588524368925082394953473587080524526111074268869929856193417134622922440265517011807698333391553171881133514105096231517751153038653706322913880617447342534884894107737933764175698837767946531715931579831778002996654934382128738458692349324131739189089415900901176617715439100217397634346734058219940622086815933110768126593450617576028666638628351539305578678200327595881474416434055475522606913044691509249118844114182904422929753870602461889578258938023802217680522446096405284508427970885047366024965865750865046609709083455939539104681849316977452908735234572108708815760696100592366685623964251798874932742444767396724453974494844890236153009884950368920677366057028778828195291584838065471348843176198746188656164104124766097314857010902338568785213588603102427317438559751173847943674012946429179261121433807042831943014239434672773833995815406462996392538422191336726551386505997000088139918822647552644762737736640736383673811095221552098414919734504896011626381001493425416731365139639409917932826026700820365266890547694941305723530922117054879410680744891846846031230941844663474210636682729105306763961066870921024416841286010109526961699888667657981311441526177043267915900473367008362205999887450975113957520160777753723650789996328115146691321030606888600097328286757729216713041052452359316973982271193437712760275084077858641507486045625600156465498063875990564499393849228561622584316069694941487206653776179512611332088980170214011536457325890426824319769603556525184854540305023272449609742607119859602843213746694195132969634682826190766413285666567807104801363019523882415394744374199459506712284486182442039003855471633449948920891781011849630714008029451349580588735563475499836736625459333316365361849086781057702999892586576582281810191587332169285579057069169391239712051133892769855959328766609585171904807439544911957366482342171180718492053764033278368295863796310825107742614786111825444231772754575507691671860726680230517094277697368053219416951965594085748474996458409027228596586586527271809810280687538435894774120034054063235437403981530117508944472205646946852164731100010643941089721379413794037674273861113922340901155139947249629835306989029688148655859615312233492938165401052465959798487459443464102214934759481082861013513422965650358175203908595938619570181303456374602884827637131482958634207879230662983865280401781883632216377044501143840916122813779732941305507989522335365533402013496396564178491316620280109839572619670898806482674573181431271787465120848819028997616885775807668362827030104823619356446713830148378152562515260178698300830874745981792777944324873033923942930927255783322152700442984796168297535595633468338337900467799333217778510373320462071200359405313916074868387192909634561595917185262855803214836409191359366375184766229657469200230051388913222994168788458930891866787425256961199813272049269630371326099524279498064611205537358088497277574733683359452382307805011920466829999618742158682939638332468668737282963964569471781065407944653536885059720490813517023739822022783049559048149243516914526113633924747973693420009157913934210493157744781216430124335649807792302111218603695673021628282817941307224595755073372646592286315219385880432260852556985827266088168647598104372697679583395079099475992575560269073142484375156507075207222497833908207382910753712251891053228041128496107123560326836282238251579325085766899332160751130488764052321106211413480420778897415983781960823264695755334846065088965323438119620775528471713350746597720791972943313920486501933045558163023048982500837114379189047570098187433074772819420998516789426826880349346351807237448671279280850247152827303241192123834021288681565842877270801153173691428253399165596889092834678388283975675904994758670388196201746763770589155288618122320154773082195155890880911344738810073048734258098848832758300345824593480774866890213825800744467762834820624322021219363505447844550365259737908848568331156802468465400260046258690677538381961009192431073076017701755991133775826738659118621345415154836944100913181973097642732475370951562679369910950667587027356386260843265062683909478431987373930105878176664816094461222628271037676031526332886173292085703199018433388885772782158973815508139754391103992624816329969370757420673008168374706927107886633748122040946526458208784105324017010954582241220898469778829787679754353136350605524071264129516562693827240704926132107109107242866246717276079744111495626326932881126829347565360744854131832251290130151657887514816028240686035217977486835419865603457425387543800244302351259505917337876653067242321223548039096668862828683976954467244655299367588459038071207747784019532027799678628361406809844631712720932369754384779566301705050046914436030783386184751850410639580545858355526714662240031131431476339466876891598313984584965806471036580416173618835434867343459309860752619390906283904920199786914407809143612115897014053312769988769031800474611647669321210859886940917425240141461838327749957007300917631290822958913413590790545684381929686690130472664001515765497293597108740819566985206635106204773014509714211249515071166406495958258298216790239853539619757587963485463672985092054929055916832829502289763369211499977329803353212358382353429740997689397075213868806725041097480874133416271532406169599403269204381271600885829585565990166804133604988063335773707171517584789663541314605398575352854812219231990682702110225427206623968426611719059360734879907160334862775266162181801054099658127120285546779043707838478602578904786824341054853174528266889485808619233718983692690812366820539008734930732495343649935744634494923568216073317096143567125501576038615014057501072254970893956155240216357182654423303048633260028796820731803103616469988634608583822153066543259211005932370302035903437680536492893372479291279239289115421219302841157738921993314387534194752900095407568079648379407709541205077640548424563385285438186077069300859754635210337003409116085888740754059178095327834310216583446240719069353983620959804269638096666737395504725251689935013298462620746120868850637600358781823913969734021706217890853394471182321752269424845432906815290128099853004988973407027976094644334818273179345749747186564434364424712143455475009797905225784088035621321744897349870883480404406436026557307249914601485244773435145569449457787463594781150993730030609555581014068009410297698910880429746168404487346636673047486436806663503219978858170168830338038388535888874046212975483243573751879237226913064284522333989751773594264282277083512518602511813513125239735359946997478447399273492251050318757819256210971516944345236539131761390779644948708486762854574980029468556277081771612370226682272468205505909716933043171413896530928725451038108314264370395447838545996734993035311406279782959774124195924365527288472696768038587540537372717414501248287920901363808309324061728799983119759902267636346375200839076293231281599791696468518476333518795005417592921841269203442755404407678843820777917886702895521543908776720809005228059742432462875229519402735726256086595785798329228849095962674454075311082442950016385661172289729263142429569818680062009650202929729416573898063933804153006044050723660032949613545282347603408777330022255973005977716618902902377522955264537991469549512342326814619862573933749350291338368168209775525325940993495915130564581812500432594063472726615422752908231643517033238675173236587777735670570283291982567312085769657750039463761900568033757908893484955438785989526431699163791954928975495717915082534514976271949169160718635947518467910520751263792352282754686571151473247761357243383413180436878855182901139703221296587010944776811659877497511375126796157643216016940666869488425126987377387611834165955307547551121379820153082516863696655636903694462731555107032826048417710694761163779661292013023029723000222377894024943519705478591893222854201323510244123963907267806500865668745009397470595548554723970070102984687236499273372282050921966863089010012351388959712757948832770223642348323685967519094303250317752973753372128403145861384622563936064944589761761123803762162278956533192481738695287787166237834947775138868917743134157911976897004236360800936956015756015326453619604987998713396584325300857497557117681342130231983801655511859891946271656253514712502985627247377447414298713981890992405749010148282371528959930610454730708639583206968748116699777904961618915796625148031626613993291433678403557395941439644368204112853599666567113435269564109463676637291355059857227994471164721718510152016407716066501451978095841197722650250371069365737078350264372063814806350348981802405546066329435176887427891357236791200307156657558870777202906134850379815621562703318350865010745443306663443965364687243126581135271110652729646691444821041105013357279020293044571457155085962676736997254508269611395417899261702502620368306652187679137384705304979162480885714113912386881458139219133252975850431171853346603799027404238585838356403685203809360474422051868543852889260693668775795516784717566001994936291054971278509420079114884914339285540527928384021707555868135228846389146284559098563740443791786021245461985004452380047684132020727450554071267596962027690604232584206796473351481765239745736209298506686136222300496994030770976890775429185844247890182737380189069263404462384947421955627099569298031811260209940947906494273316198137348671715351396859572447779248189675826096123794643616042123948150054183155605636125197076484612747697275371337923405648367389417070101808046172363309550901359376426241055725241006774688884070275948845146463201422200097195529805968178743310697712788265475030632227168583434066641824288665667515802426375626705614828102676537852280075966759210468665687018330128541262430185648183575860567644670196232513455868682187418824256756471362563055177135721599598825914873868572868943104282099635092573295703590612579126842598510668557628869285191740747778195077370630168261721441085441133147045120163131844505046311415763566617197728307132053058540663850931731063308873130054553730565323286691824075571491276049040570556389251108501344790851434451344273486051927332482258176083543410145253182689870096040913627455873038246782742968252430296963036980872314608688959314885632231030874429520150326620398000401100788925800470059793106458169458083665561518631498310990178681897748897317588417547105371099776016434002976561710889324711151659126147930833244164142076725076783216866717598353046458491339104928085832025793173595964453789644781266991436846067417663608008948541977192062730593073213850247716208355099144876927861273715556129785552818071512553720571567474497912215416527863920480492892910285016191778511135854359361221534372645695459250080379761834473922785179540393580643323908113526762197321754721856995422526598544479116173429368928461895706541204838266465886525033482549217602854228662972776662523104512493232787277442290022090726721135701546358666530220735896744939127025108889203010880965280690687560006068106570971715258271356734960649625674150326780221291057799832703410143747486967603220322646100158225257183550944704915722483842340940860609400586053344273974461522565849328193679755206385331262255408286718718736868969888143771840426495447992074978705907811101176745049816109315286011572963569344094580771800024938599472400423298309247536842901130124299684722966165732228161358585747749669561645697864152646322070243685181919734619286914927870727306884966929480927405913130068543197524935730047632277389606971477307006748065300257693967032573343944060451479069596435849511830860512640392110021350507940871917683230995880177598343677091623528640505599124680402431249080740850802976393420760910410376213472895149511818843053794754534360351384677164418836975520728499756446642203054094062156190525539336477313307394248745477714363193917831094257114246801209641872269607912636948880755842232558445676054205330138092748386955532067132792238415860315665096037726452680379944039037682027449086061764802280817792152189030847839151712432071789544461329652512229968668517390303020749055587063919990099767282290181343705782164303526984056498174220060393270046602360402859467230464475240072553181004426646957693931691117432415206540181890369356460598470416478953829443004728726796175121326834225098327877251630163172549212612479025660435156602401406399069666331034468999146016754802676421348012802789378303915057332391218604321617158145965005585614426060913244272168030004470883381244204861652874077723105628102651514272020812137061318961814964164439401695455302135906639031673297176287280185743010212572742253900606653841265556273542271689878590881360423659916834678013100348573541452429856327445450539483070186596189483770210467072405316049194710554131387421382735569111545794945269613507046372770624883389046124031266393906036360561896643335666297226271723693744299482340218108509632256159091592870150888641502250336184398816393848045964259826603011905392170148356719335732437239288871063556397136148537147797376287771734210066732366872809588070445886338326770794096232893849967307848059098851899492631659896961838130432604475304792315694279662173604742005592672032788636645115712621361733102043254375716031397613492407077994306314220190015518319379693907056046592222359945022895522318402992923581703448673186953937190198773359882552096539492543439663373694049093986825196225387148767840111813356430087204023624573238913611718404369675888902239802919906963563866866611279372587223219853504121487073515051691544711123948930883978472198156722651664383365284126114289856639159661286238392727798960657444329352655672042610238045342433048197132530714215290913648724577394824203642033061130412326051572416248176262568805226310765665440844234929667223168526409304728884451675183236994581691519769031301620656471645617112504063583496646629422936709672612486906605872530638915209573094701826929810235660808652232741328424680895308414689740598945829423279756826892242157509816682627214308871294960286030392983504698247608024329736360087492251964437613738268729488565780632078331165108555412485387888202900424514353012742488482701683881846487708519073229927571523566491451202214886923570458723872432292674032749009214959989439581059084804632824414188283104907983387764083656657160866804487913738427194400721485313910869164935122357794156123724904684203484396476270156430256546342275544801995507599720718281452516653205656200077210093041084427860641740009170027349424815866122792461749643731530682793129499097451780085120294286726490463710838091135083504331881027834226836609544024693640402294520445356571971367448447715134745191632558344101765451920133042691463736935670965246457730548730110183569550597691785034013963746731116397481583423533064020434950469592750180034862648543760973936726278092613630924866106018235877037693339197500784602214119536791204813587372789698455913624027593690333648390590495944873862095681213039112441090430225623003558726491813178318674467605716802257567951926958755142565813515877593838369306319156463049664463266481758629493261191936720326076372109998500062142584930996988337026078324830170549606285634174315636542045840527154204610962850950195260728966347965826445513871065593869105947080750049627077195763383217135931129421430220662565451607158554784042017508993766905770476442204709692901596085869266597494087366851414384515139414138620593382125152175606027297185621698834777717763179817955004409983131358669322258703263814660615433448056906004395964649647516879569987064223711063871020531992938152125070240896993652458302951180525740623404231698839104518217648309618652836381065659715635631745810026146721668079345179198391984929490092697594251705624397168292880665198046621424135707062758492861281078578604952629947837734864751166034091541683116657708744787617806207488008291411773640299103516223909174483310709612672864475517621371452134862468633307768581809777860740110013009743708919128150572732786431746839815271334603494859001108780342504706333448237261351695992555789946692927232323708591044304304357981885098205680755067484458102107209232006805225003189261405496265535608409154801826620315170488376016533212696745760626102876783719180499957409252606508609982735891313459259058668229574288562888001579217275998296889929333518431468090798538890077091987334479188295832998217910271704560856116238493935547583984793216039176971179213036729274818719885793872504222243723841903290157577599127459307134937323365936754533956775266009824099644510064503536085894701794596485173589322444346067490018371944287070461910334540675031783570577257308562419512324512696338149708315989478150330081288186241016187571946266599253614160596623287874326230924161943303360605434094934581241287546328762502734426922389384790687231292395112839144206846075978504247745241149380192743231979917056531100217623337333386142461861972418150630298797391221960613355521965028118888168405594828927699779096540344459724086542156673385044499347767286147833240796789917647542117118427541117153760788288828654826991990177130349650160915383652549647195558426582019703393467568048574188720811872198153733494294573456943699448243744190989451242353550105521693396559443766763629833005482523607800970585156333369373891326914834916810191812000704936154476124431527785847440789247754370257500091478336532475862463545999817495066057614434674011602365532686069137680458339240647877039030307230675851231776536509313042694019877178303910704673487622446892496655887161068884640558296582857946505448743716978505777865156460405881905163700591037847917675027143630393817840688696902925407130714853355111258306154810881420699568507546298756964837555399228540153677206707729894862387335704789472966382216397699420531542188795920375846371503371656752539898592190442639464542192186647845329225937076030644656422968348464387920349123781406868491902606053011324573572172477490752379371970647260066474594861681107671735013316642465882584782101623739299275418045425703724984054631907427486431125095359100710663809842560850076153410709365660868519930443743012159351274584111290445932873648539516292472695837277072084358618905363175455314001641982226531602496086127425687904027572471955553636008538112734227049453492031626917419428462457758450183773239359895019837144530681804151156556544269474475524946475136312836726806388262969006416327688373623134206023367787277390143047057888293884381537656232232391132124024077797618158145126315574706348784728878392260524487324259030634308754954380204806743262508381646884727823759274595145479447515382934480009838787871699002960826254903424587416919234123238043330229371025868120042911212652446709968258015802602553205910650390363832667959998279326363903211343683439990876189432939616981994475477260151832078069070116096789318116425318620215479438801820753558247657697724518427448001120611038839710678576619378193741280208257819761706180474119336467229418869864315244927923920035561918401848549973431468587097096909714604600686217633294734535250034855959125459872855809300680588632303053060789412871453243510654207205010043130130839249656922231225288377954149607028383168182045265572436857432867982448298255990532480929844074521598262445866205742844363126211444808401813631064413313275829290128715541664449581736715812291225470270990960094055668059288551967242408144970871864343127862426343230849093145239536365820444854104386683643332014611262533007618342668378544592602198445249917816631243420610249802223638248306374734548246644149970033277709103521004365129806220989814590238483210426042279051635463698264588439201742364619328594199244755469537540214897265468715406539837741025858736597775150758782452175006006220569849555911397863586628183019553677133593161319782441665339598173807007705945660611334632568493752410717751834557911097997161687646214770400718085009712670143206346057664235183182830070735389501483525963093693687865797404815501991569104409231077463913743326132496959911217818526413805623810108690654490274412959696920167500616569769212639594914422981936658954825699789774260298656412106199042659417149753764253078996006198246873004779164021674506921802375795130550866531018883294189534769752251886455386240613772077794406446701193557014877716453958911843515195165703992646520133785072299089112357197801684007432244686685709680499683916161684370581370452315170904962152951957904085751782623281910379676460584932587344322823351028307286311039394683396173799196230232464269069376221185147170326601288644286081523751012489415137358871065417309079930254010812913829768392355746340094105899985706934618589422880977313841111101065739708283999415028508991545056872070095399872860402606034416884373386990381413299608094453411161348306529555015906331780935186204705093523874930888965050777048217983958798469366973897512737926034598310786157036884364025220573245467787663776155770163478390812683107491804968006061760075934059971505099900432010123415250470141614203158149175556853295969976969231780010521425612420630724099767309469163396511890339189727770090506204269542011147546242497342645268390190646099064154569453706656823076928256735674986022433430129131192785989129103195751260529503369538611795615654810393911489134729012272108704735296542516774421584285999331348619145605778783152168168356310540541665504353120962909300427155873021713262114838157412308969205779682318055924510418673973699385445304282729096831862048174077057709166969850963809146969858899719036611213630411881516699564498489854966913575734093166469613478142230636488592365680526196030386696392990456574162724523732790578742604186079619717903663561619780225241876279334082969157294473417222610220762399251751186147392353398835841565300286716157953113370783405219786967848897095367267842619706270242618651147222091960479133632760140669354959355059524558744298033825634872681157651554038737765694533450558997039782226160899817946942806666111585036242342833172608365644963634771473557306810432493503031694501483292216363674515508060624528465583959776114209495200562189687277664802921910601338474103009421776278064055802623887949022176973855341672556452818561777745985330296504968463846812660390122903143986057603164964166284696448615782962498176882561103647075439167718145227451080921421164440261558522535964617691487931580167952017291537908392524214645814364162923327741528939323942377413368573428167460475353959478289061803969437512333157212911995977357729578949620466785733536647140793549769193229787489693685655031340134904149462644872674653559342053583283973076254552506311170536038111051934735869352106142529608598987360615362675078598669735313398429829409875878317472084701486444515938242019419335193560407344177618653889877011436050556300626257842880341145684221758953613806794270130832668904284940412197871802281309120162919634281995046781985415108503450818389387048724884761309129008769928328264359282851291092011127276081280985438207866095875046769933386243809721344210142652399915111530456997876055427454786599913216711186096826857464693876885499490688636557430906995128303606975303464084709133873541709872693669838124554797357289269485446050587000688399598765520587209926536074540209823619864926209388668244241765798886821723663206417494439995498443578151632297028232442978351900855714274978366487144737439261133211706265661642047751041609578553445505669997343361228458978505936361133862572999631900838701272530287652713690858210508985329137536761887701982362644490164916381563772096130835624382753249039013252750252491863662504579860824966669085927029083445817897354329969015680692007179737850354132222028064707743925722287828751092837904782426106781736583247696434841948240521217758158923586560100396197788141432793547751181414126778775109455808347115670303037071418701368306043640361775495879407814734436783749679113601353330607474216640200453046524033199130243965891572826930203619644478969512259802253496663455887127112935688678369725584763382361131737559091200888873261243203643049783368966039198451832879040977033731741772865099726644576288228880096123256171247253642770056148300579455206907409287999353397467856244318252137749105126652773487790085192036798826584121505826715377033797774768430992195829898574244500853054670184202153400386449818707781051241204177485195372071858504333783672169093298043999761682984885707738040621156181059213918906659059691762669911845373962435347445586781346787466504299691878402798762668135238277020579474047247092805770727428925926917200144434634177494137531333710446772621750962328298574131845403978468448938187335611300569867633515646881921900212334891950502417761843197470834645482958513470403585006331622599221288922705134413363298347903748499723483223745354227376359189688737878422356398863081894614583839702367022344387052675164900320410960745850569072845894065609143951894139893290059586168221483165467622857142976183263439937241782134876729366445612400022983598287951073271111357084029049058946734504069907215340235925131415437291053270556334531420721300135081197947007609295373874603393260069748640655837381521651810566762556050149301225669994749924449902024227477699206260302185440675339405526850468440105690137447381543917288435765333916178228448804501923731342905654125294707376385820378937885628770814792139274150172231962883184091017660615270395243263802627057801027420228910817879824389252029354224708094350998946734340263212879443948605844427510157515886308506636959489624780969905000372935706213862896714592216622335226922074431932146386126911561386472283166872420719941355325809393233312329219549045307587505327290452585914706208303099394277946725186202594170742428447399169849479034039706689308168206911063864858407163343723285664938309273855944349437025372146710456430528293540208575312804958554779084056862020101651354299246699355480830506693945691811732353997151794560858361870728680698791434913362010850219091927318193926624414744113590070065826303125712258039444661671062139103727992617668569130902864499496406106173431527175985736185500556730836917707609277750660311748194236229681484304221624915219012542306369952361738140572813782946490696725571284325499142448267785752462450748441994471343502986099206417798378608445100194301885131958326087942801355223018462861155224540005205750303278639783544291744657409700882943720735678406121560683744708942432239463086889999198947908032344302549143381001320001999284670098975071563321916406953444412333265881975371491686919043672973524630949926897445677708885996335265559970509154485109114251242871279991022369541502875013244057773391684349197772505736765763422729726617656525528145035426216517058192134869632844164140588677690412177299093438238690608520407880559858228282227472933749577866723126855886777450747283917017645093368701524440610709083629575022071543566572667904580437153443596613798734560466406955989738844357874464493762478062951335644249421665517909993424849294112799988642877424100120055477241937398541872138300182537158884021169815385832457925697692192834221897377139906830543310846164931610884248309450028097769290340021285418256808248282885561988967525674193749791628853765183182727897632851232228291890679613099729070322309118437479169593959537203777847850516141315731948993855605429721794583457848251154486270681972210723240807339102510230733563231490884549792776381422606179456863050411943845525304397834352603272489301865653958568568925305246127986715099666383615387287027666199393160533001710782662553562268216958895585253038153388316829919603715163080417997900837215676443334459838106198821160213519213642753719472150312957301209369963841472785019664621626093979811646095589677209147099049904624046882341323896810204429109466768386412282391671029481153155743997685253459377849694718523677928967714274273737237015657563946577991459883784240208335142756060247299037229885329349595255202265661066746717928492811569175820533065709038128494855199954693814609124380683762763617995220651134294135762857442545596527127096947485718502401338652892936412840064700557083805760472128383843644272887955240242335097845905758491847353639505961933076395120269571525151469521979291291574127429228345479676875058115403174906570645163407692142692426867915004790968364900270923618087974728229636651279119948688617750225654765501988762031686426274177641406834844356861850645921713515693558945538585973756539443092119478142477127484002231465860227738340075606595166610205435194074945637490014031814871841409497166851971999915734283095860861178312271825894513621522111381994295197514316202723133290418956990985216005494011447746578042820281196020250917738247955131859557746972717335693655341636873154337895625205390031935065787761315886305720051228772638017348703786029562459644313802922442799077245495453355377707599654079556369686963117036721557862148893949284812092188839855204551379081306434687454950520918542418595137714888061808742560371785830019940923826057875688029392113737888583613780311936208328555865749712475421358801782028667821903727738785550077716270635116217126839952295351466350970686407587156101138862761425891290338363640500431832863793136888220617767535210345776937225573646588986396149328879276528108925125048573845439384823957276156031425384136919187843863278304955270181410114555224359114891483651188619128939548952724632180544147396939403805383041496132808986190639229048783524218403970524295949963632329651222945891070788343417562724369731305349646785778414211254453039405862671204944007752591358674790598523794874417444112836233287055043204008445942202880675386297722137265751224785470831027179531306797153224041993666369434864283309952949494439039725539681390220110792029372594713981463070484272301234881480419012609223170672628051214054331454910153449988194170635674362882777329554305535822433984431685841228168272902769927464275638041734172367054904905340414729076276824611854418146486911754795145214799085436669401509987719915865791535042549744451818622036305448458254236272748072023580649728462143727897628836051866242191042871807135624282660209727967066600745492087696232410964373643142028939210610881491491149336210052040835919236828101489864528485766921250300180434280373202409518449798702413355152005779609310106149657292337901148229613962541736940435512964637413710152796771247971163646587052127880861489500218190138391657875186871923581768277127180156033782382352061984700779259056886156069456937596785232977516248123069400210422680911948447876469891390139492134317266705414982930597395028579572412816355538860288467335485324463371060691248277439347463532434963429093778500539298460175680867882244619979280183885701690498719345341925406057598114908766304684443487203973630624415957771684536536406152021129991583465725601883777165071452869235703119714737777822050171621251951046048764808033284599354838196062445662184255516046438941231255072408257234583255326344266416227255481292990921495245131425920148123439614037018264977924144352772661505216673989741638482813405660715237511520008133411774761126720616761958880597051533719755050048727115390430801035026138811153516744611742296356558337636432104990725488065825843892477587027752992462107259916297399835011671559740194593347550400503786983502214993723171744424940101678899694048844002080814077263425808657543211878452694021566512427288526597580185629729344837232629648589998616528371825938614291158286118100581150187157676688603078776986902938318554067732594130822929908928424246942477124108934225806573467932183573406224958131810662720470670139439562397517816968087581757224576147914560752502091499655393482488180636246149180590777357003806562311388435991108569998643967882871188770554150798288582028140016019440125525389257025633494414847318555181312921771312000260410914481937612675357902220217367572807990540850298617311755461389136678880705455717265104082697597406459610947323498333297075905782340255639347103388110701678678200176925439422223085369340358344374942296522417823765395002319877022836309240300214166803185337627743116983184566838088747078998841938524212215293603392739391777400224924350170637848823223027668231003728967206161906459146507350422027747131019062873448915038125239671400232459313916430622620068947934598849152632216688052451001552142582360498968721793122108973390332623413438325372394668170939216441621156194575065795768728448797787996306037646454416787526535497261495852910414337596848318986536643812315449275350695198836848568658731473175917519754564272059256832549866389799121494483377077577024949860264428770816119482632228391905657646491483024957028373953931629349151539782223198515715345486559645152075230643796747036878251077443328594914434982973070413660957217982276125551716185042866695472776317603257243475093802019522068936278209854528244176908917383277527119497292677869243853814143052340744050425563356403265543466183452262673015426237637371110924342365580648830830846234679134234794188214529685942603743399737081335888805289428025293457529783759624176084177811449149811389648154225651430322809056415234312950920688855902578202027589596888249632768771215452590961773067036120895389426309700540024827513106063039335781372846969664746552293854480353841552543915931478040115520963094095465861235112746202508521251783301822892966665600280377202919567417517364499745343942489194537246472361486966668311078419377702729460595915214309540344410330751263829796732229312991730179144823942534170367156816312161657358454902283835615329742459218877009866824502737753985954829143855607162602811426725959954445660454883893191967303071764862875296064370714501393671699699730109553380990217697577386157095668130853730449383037760604287429379108437287769599171557291314122978347947999824246447306945992303231701030504510372726081278228956851276507007148469706151017823739652044391537275176377697830108491356749955009480923229813367812835999307153694115336503831979430797896674520478181681403494856391809181469510882800124349012339350600705272232634755724672833286937156682508154805555813286289013864362153599038840902522948258801617769530349055965721359399889235331254575029973303657554298187430972865852231142682965041475203738593029284156899863310285905116877355659438457312808961471681043418647360466596702340047057732304796823726261065112548426078677776057050164663370104167919656780436210535495942062338876782499361230316565595586605953873391889635665443842121971399692425015858665838596765640846574544815388606679126098060714933264736839302500628826806236360974058999798147272820896310727192751259452131570717354266488886304564434394184637714287038695927239970951718660667925803498749066411238945092028916930055144802314571500060509461816634250797932678228216395339658435972790235375303622536910945088607336155369762146245014332580399707169193794719909358678653350434140894949658653838200681136176832882605940620002736049000900173125774610781785401809706203010032687530648378108025807494127579104294852902520003045772526221121243825698385805530879951121964238033642764946869155387438926919649659263707895332721900056356178098076291201793368640204296026092836241254051324462418149096186680345585174711022305655028634823229507262764288709105908405338790757855715217132161612320019048207902826514125857669862906369352624328455818739250278919090597074260365949073641152836790221870746549271789902323687500572561720085852961620630282362120764579211291398363042570399237276633524810224547774910932326439857139983452948225596204373785632958212497132376773178655876060680710016144479647617817243979263435353442555620609525383903349461196066732076068073281380488319810822765292069704400008736549310824272856923182771743970209883172144074841851462327461167143699631470170876544357333864882912791368528943496613081648264229754055796714377372221070778861458690853262780413126846911658640355559599917602377132220553551443015852355732834670642650377633275941545226076037143985488843151533662157827818509123131166690639235737445580168829401513884303032050038988008164902587253756669476372456828620785627594290484238283912398805629113890084424855337144045375661501220853692045572840519385843071766005557339146763008722756651564170234347891379201492046155674128492760619458013512284610002845556462216106321158704074434109812039542641191924614292818006638572670879464536443277833914634834011243835804961578439501675527618703193071090558213473975209467945422486034825068105672062490303716690951264196036109827122603592238516863497388570561035638251200420041746759163408968462143189437075945079429507228502582307048331902849679556288890786920951898318931088568228108191097163287814905219137513797581156943242331240049314913851094028484267070626505895270383725900811686161395104923921203926215130489014520047607559656760905874776828939244634853501898823351014891785618662659131680274005109989215515835036803444363451594840964691804092821614426790157623792038532450575477016847678298548706758024721812771517452184075536118148754207463440557518106792816984646084460047924489611403689440772116693106671607598354072596539899129671960154958633467327619036867713603428497003593583698404266441602311546721828447610549101886665412304887666193166844259435085156232780040284208377817062494314836946670992404579792877671472087045918716742283947910933395315229364877496147076019749753354302437989157074472625492102713118101002209228168370752151709756366720633147666438961344567136322545327366876822855412609380163610122336131043760577614931320620222074664330868910209610643352598198471983193727631426772473219093258968065724257830359050593850019016425010672934198938239409304617667713806162647232674048154652597614894016591148920816552298297772070132789869397194487242068222718963755171284491142233502836257313428418711174820992746975254586739721930867403488832950700148234083508659495119674594204574755764238522596625413689130187332213008611986845251728986372926497420689967317651249303490716395995107954921565950889694581075244658277096005660101751149952847462664923833313383462070858247342878136040763947440132768814254256767725611373056881268238197202351579300989293103293420322868606795493200990212430431869927774079529709232354368342396760517318670216516973445220943906895927196386879893658855409138932558435299474370318084824252181058262129616383898240297054393821523751048407824268848300453912680847687817640646431836007581185671215494779218243794629823645073910222434745094445196146970564112966440342768008695791637202961130038444281766071004678452974381506826494653807816679215895877939453243581111142959797940105360888889301767633469200496121482744863299047906768995958878063861163391917488196090231029621760423997686819221330445091255614997737406316795408242554271316438699752642352113102411126780202343443835550856348567008043719322125859136302549861234270018183338078802266782476750109110262739783199935487017149115201715765499506925878884637005628820869445909093848429768489966449555654825857763612553472621924713626216463084425088727547833677703287618901382944385904580321636601472455794336215390695875946242667923150125463146237584667144726057892717526912368124621352100962254210575632356686890340061805165862085656233191593294469415166277749030674830645422657680115388081833888948625932198821810594681528378594944176992989913620446915606688198482861527399691373513465108986306195738835526326404651313478475678885244952980876444611780615958921548183430495375952257812911017619975916157376539068857447300134161554511905805155990245156008794076331110545178828345230864829635980656941268819118449555264048184447527959088852971776693490646076011687517871344811260939849244248968358644161108110526641310045951251134394553137424631191665536786066160151772696320626218027941531602726331165245065862400309188493470897101812157252821656898779474185912183471554840005807654850027178562191082934152347122393507356376807734402552166635702850779747076274185995222202635664860583297328670050399472892472327954204763804100258404104823924041622995376806680343619095172227751802875673044827355312685659349423448039902195870446336161113572276027943149684484354144765657678389490493028308720104845458103866784706388581525390603063706838610279855026381952805741281886315771584808028585130320725320948089494012579653222006610153989901434559399419487244295371011644725857650720321467351946988967820032764152998448718306502572941572760079105124812424424942441958881376234961231175027842953461348370727290235128269618164065864369956753368355855828281606545596537097516997226323529703035913207304182903337531915340881822276844069853614799700068184862780840222891509509219052886931539736385032571163814794935256549955278712511037797380118177909992719443439504964874114923061966252314467337593325431366656987289419493848980429577077978585838063219691115106794019415354856287498004347657957913002557246994258354425465685102030298068206864030426740909008202309766412028704480463423178371550662948359982304114308092158892540253308352291531063596731527719578282188656795654850679328699526096695967044173413363766593776532996094565379285358364504715437679399955516959688075331705946593328180934245730748030717221202087685651031420542431152359792728399235020439423258750651540207816600290092847539849232357474272687102464107342288577120123291955968543796106377829817976749115366917492071928432561534387940051630877595051896974056676780880783887184274453841854578622841728230061073600548353938313468160155598753142374522470421175858889141037106791658477395537270893561688222671214987479130022753177965385121392795270699740534099314598073774108151981050782886764321000475144428590743609020691925995259001351443924296593811969359622483522524298615948805787486095396444606437903712469951814386575463391838508960096278364286807109844777642602753703587022455568372041547108308331020310647946900516709970805082019910870278684847430450844959752725747254118892401944140612147549115047921114998900854589951411691295256136990318255729140651860850305354693437942650295227011197470750743793299010282867197027453080465968954678559578119628529785942896834626140627917252420656557574903769480362571759825541432373509709857876371924255891746655089219223522716809564036703694471576871044893159535331001497902958568274122433698049869344420690999580849440307891900151448587998467766722507395743937620203855945480185040987097905542813994652016272217060645786667109855892184451436284219132696100540107929932179352913049807543141259098859098021597242576153453327397900452601658047582988456050546063985913305467345168872327828696404206334821749773467557093956032967623144819450839560978733905935939288756622458959594705945300671879797746218057385773053207791570857038003088987554668211524965190083421679728391651134237542520946676909066875926150338582453135638578555009156625578888763108797177420973729345868966897051458161426291189012185771994075269376168565181121711307743645806662684236966805556372322126564439741403006211581555848370838171613522473250410782544476776740423195168043942290436475886144092073281272818364312932115520809899120800112362876756907533667620912841470694289582217342159505658271320577288729553045232524514124043906772041690431834641320234090037383411666557296369993131666206022905098297741188112671499182740906679315230509596345257326762200336125667463487000540854160403437466989297251685965029432549772724706347794720211527481408740893369302027070270164996895153450450058699766529869186308205693980746526314386006753265681829907301306544746783068757082664569594724926111603022812137546273079851748356466791635878703940950265269596474436782742052686012586112240224889135170869620536046849406894449917975964130466676159328138910245849784352145689575246475530901096287575315211740260853682062174641230058386302356488413595784801282204109923385967289442971208896775879330228805695806979615790113722069116543605335355579056132285599762602889701390006489880154332995520036473627579214763540823695039529783440488332445246305382297442274293372416675613604053518370162631869399943561579181977384889743876641159246809013301389989285456072403646481841100899937804663184684656737554216121016281594767229774071590643328902603534903090558702186686189187292878375831021393556057732195391388102927226129651188758562844611709646128155080334355263646001040662160069541300482845055206330727399275595095357652102211296314030362518906773338929236915362414656340877284155221188922380384468510788609498180365905588122202118621095489903406885286847559717832306754160196363684045450801814374084039199867534413910891859954507687778047712784194584217565686027233003231579782724771174481666395198015857171818831090732793827724044425465783506163779452593229921882883472929511939004173195336578683402905974801499677793848165711710883920463677953418631190862479524156474308104575099993592665840746804951430019319543507488116919723506028523983386427966460197243124817316992561284532035767470953371001690885470412049234172126189745571484352154231055146811105090123963987088618976143080313661717024020651018127208018376514035701555669037878484162837001749170558075453798459253528987400329853154687574226005407469111936059897365109428629721074554106246180608649148900168688368200550199002430409364860338544512487837051043873357031527246050901192813298666889875119405910377877267238824375092162921121805224287159817334577440526449259032540145249377308057382559450492512576021598378884042169004195826239285909763655747715013930467598098449055679901272250970817892269469337686090248230881277338407374369378203631242681072599941967857897125980487962759094698462662977902613972509171224719153398394480221453873669781273876109127550881325379738040041097965636383563546040785301223746745155904494482686277662262063301594110134611648530427754079946965167611784939520205602915487482359546330438121263703510489793875673615437549615347633244147484424367805454520449517647124463538269872866357677567583321299795938128140723848675544559704794803278012548539124818836285334871931288235667491357457163989262821148683237064900168620433762591752412562346398207953160102826620985576871611397047150348495251318562883554526325692961560882396577302218799763114324125813543334926826001788519310655392430908264342326298403824355695476549883510580426672961610768775499743633818410739289158721468363770833892505525408849579325687524802025019353527842315390691196391613773007631203355683971547043324614097566010147732609905065290993334209894072820791226989803191546060987475658217344831452167965700116854974645735391556559368072881203866476291599541305752499917763562255400555200279290231885854504835962045776928377191389066781872894046935589166171984156564977735023714005447848484911480471803328065702363825993484722253775933917680134491939782657809530119242790053853486385598745127739647369858613901992183390495360933394897313380157388577026186752408586431084392466070946422694926664378883027440846533338006810469362881471495352421500356786367406153948016785478981328720362384855830126772381417011828990437417233408838331019046004782561170242582985335326561200869430230344738074813295123799851346376003503260413666321846747230488661916839225215221586930083933121691971387113953048988853421506452805447264081712169617579318661318223728943763065457570663737363378369568071656339046354682108989779188496737653375285387790433967345696482604241898855186401514158398962071355600724736706629676954013689269020513456148679963073921966861617653337093591125537880646914947012318608295936290365920799841096290085963012702108759270878296982643489466414813056440177104140205172370995308467302345784993653942127212453149480747202317998792225997300493763023219901204157676268864404543242867676129214587331454718007761011534700113980615278047625870008760498557434371516332320822408211955751659382878999052655481050980094100795972986390972892602953434494440806962181042106659759052341817145965482661230418272801227509142850489533985714105699967978776314085238154044534824385542522272830265748484867228777587010829156708411241729525905185757954836913777236621595529814231261152808665428847221394671370246616161418830495116293285357611328975904493713968274053367303570834417318421344693058839224954851229479006970848852737638118718748313351172149623866968398397868813921951978302622216808624579885518251268270668970252057249305277508432160381359606550955261086971829185957027535544370945092071734620296943833758389039503744199150211608549100701647523789262419017258365989947130415681723010273677328601116706412794272639200735378538826463020277584824721624177563861686276786401421708150115967698934763640273640437213939930491475942545907673469008592680050174795022611968789351091516613186164859699575796686241607196571538684334542473231242946810483810659390036286150072013114128124396946422091200530798016674883062906202825045050771633003311671834377112885748829774240770855295461564480512169193514850031290156990785033634860173692476734840798316929512587480156118978888368829281432898474223884859266409020738805991962985737950026274861809723089464791130081016106489987370740870185817082026902022813039956774005813012653893997164379713682381908884644613279506825186678685403686915269747101062502004642277853427666536989416042954738482922042367266540049918451668111522803917683874264964880958842221074185987833597366415130413204449146524829706964946973574089059832423205592880633593295790355976084824828338291698507147708088728206701159779858204428470161968385570247949014001259088193221628905297082868217973729141197613524612933544296886570083216872647719518561409297181343967157307889917092482633887948086262704834527804332193389079427956835180430753940386255608752933122372061414041360073951349030584779283455964722536760373788050459177747077833001885487174547300092148376467390297049024751506931496283442064499303107362242944541438394926553076738691898409438473929715343640051489095227780181702892966010109367571819327127293041852406182698994849360579753189431821433520949612845337594051732500239744959242154736954539184829736221773889723630499152651838001881566420208063335206057554481457994934070537146941799145647834316692869922328364671360952367311468652308003422563791227871344955338077147924250382319130962082267369980538682256862238901686199068401232342556072208994970325782252027783776160267654730668289311057414698874739711613502948882442442727811230422852813558179365347487306339886583533508127444278029686515278477639610839918101813848257912432288820098670579658810367150399985526253642356766313928417569354306049823514290582241149005396248634121920007108717968332743907848472646401813723974278670059061043358254835889704073486213970680236224047810958132521109470477183521905214738889411031278749293722683391517959793478623941186077571842167908727332070249084265945255070833283522366266429722638114935590062521952052242353442913841888439113835745211776472247369374322363654060515378225103381249077044282395091592721625813080780582322515508429153974052050256216558500122822664567994379626725676916323908149289718567234304785530692935116812383393664632487894633687933947247750773073859820293543864573255419160449412918256750599548035483072513080826123875656545767631455300347359581873842872023325280211480854243732452411939514800356428271742389664685556566946803216651770758162439543246989823085506038070725499951312206464493119294817295012355596627710461436219912485807562517705956222661904444442968741793233474779729198319254104583166071524570640999454641960187369065895735849370095988812132808750703750086296543579329992722558021880764589484920853101678960465333568907834961202902607301126514460051957444275255170826528173482625509878422388238863847219660941418135135623537436085072777438308460361040998563420999933894672077046233900978288838734676179635259320054527806247090827501520562895032619320797666318136523075746983647433345636969760399711576776506287485824659231887414503265160887183252862561103594390762620697183870349835992135135714945760000214600281850531437746694887967588322191829628655348146670776523509900707230257591909178985150364816747012479509341176813217942506790743635489108430167981084337281704982284403683491115362629486995832143138234552685455001697023461364309457497860109891823330131768268815901175185380453448822856302625840112615715122097618023729873232149187367130250822192284469661052177842221979024274230109729012837595195469544428529656924275153149157718751453334981214236161312077026790853640956713376638084781635529705583835084544020992395023755946192722526821309970498964957138311378759751540523901375630503928435542316475275164147551477404017693497508422929476640552748356997310261711566778554544040217369037750970974184235553244301746789112641045417497312224326677123558688888553077431518233257879209924778724993690255717691691494678144469227076311547550498092244231842804351013460747568097357506453819694252498317703210911723714241078538952733790467717460205895407091355036995088776103517901258497011948929633383544451185994210789103890979742794880569471722643167389372603839304804935659605739096630411379280708293964264853277912337337622607546324597378979338203561910476438320460247522104004167886838917758094214500430350154119537612979708855645159694987605931651722620294776535334038477853341830475030757573038886212550556680821294635311587381273474369971643595910075116256194196217014547929885039488289538687879536702567414900844513635006349985004576143402262299122968420423292935689845763393936361537452817651094286112372615132581367526748809101561604734952241670204157558583426716043627284078275584394968892077837051184342030267624062801194909838972418407263269337970881260113544917593953287878701175014619799894637653737464933360079867374521620713137184995299075859550293405327956369241901633909409876858653140750064187238464529510840413626130521568812404644491549564830288733656622877573705922973408492316859935010938575658140901280910474102325757639814737394291680505572839648752194424475225730884644404487251523252397625809134419589785211272849776852580060440193513834454497796274113049248364467480071627253829937568889500360423996630314017956573362172280638830552056423697988238648560509472488608880176676087395702336303607114501147407796538543252848812271089162479135431934906059689422840240776969853881546762052348760133118331702566512771735269827607534386613984363837633172083244834029874838169707510378690454200387110539232401829124470644080535824947463830540903515381148005100180000529407523979140943046138890859857113372439258278543610394844191176369025873386881781492195294103605540970682776629354709754120960550812281490436628437542410918259247178495438283404708776701059954116871765338825632422937428172245413414751058638206409536797019630881650316044358484099971820909165041516252445026704216062461561462751157326755582411963582900048091353907859350158701296442970010541107996789076081951887179039634683975834266521805986625457366813402196071615901328440774711252235949111057390712661139948298243465063333071214203204268464441418174542100963423042481693992520488686273332888145350481370628510427164474316200196027895629725163496215679193532952482575158103503505504582144736911808267974335659614912446538994682438722265806384300480694507163508911350389845077849297618691914228971117005197833749133880249089940680418520216951346927451993598925397140839483785831476325999159703422543317623071640909530070482981319556625834343412363497403902608333211210567158724595220009250519681889734951537388677820993393285892035801849629713152769085223810352845936743452581827244857749374690623867326134948062205439539413640841834230961437162675102348682176698531235572023991130024776234756985102343356998669085777615933306737169390651727298128968518921994004626828710654447994000142605812004990069060658471402757691612013003534593795239544103465387905518325579568881500330416447742328509692058927261149361540284516344728252485782664422250428346086515814734381427485349923752638884286034657302683918234043816694733349968116642351468165581186566492497352390373665038006766953482494383805283560056779086228315416751488126014286105111361615897041065028142835013443041228797723001772401358797597652337203855335872128972444420706381241734351181207621607093004146237355324220036140696149754123111549979369699419724501238297840048286773142324236306551822382349427905216112313304777233125025958641436112772241739006158438204716512069670115136616157477823631260065339624396421649484920061859083209493377258097440641356960476664002606039516251159180254766577223765940554027963609845807253602190819265308594369824228200649506426791515993132848162880027286170762631535594448481307470212207991674110680485957903344074889655659027788375962385957876440103095579876684195119173851897165504128255933841457990450744631425013907749266584171771890719662882568851272272087534804830127299593405182773989154261086121344563310206823822587530735055950048503607576478061301650846197290758459383986947370377362944377998263830565230826561772244124822387495471880927847279205984291018414163036434449344205068406756986461354906100049102053519331984202528816177306740943674644917000156959889052560007404109694314329635256108297971833204848116202135305307026435778035158672282849343880518942594840593942322750655458625084391468292348386794317086717679743282706074685597781247420158283103290986196867570236346237574817013918612438100707466063791333826843060881766753346753081701555865044064443427370701073337528784558122602176623970551163010469587551893828405701565838736581871659744328489983941414184421594684831004791147484729006490615099424335753638611929888106448553558594140945937041684191606938469655125577030252247835499675556897991574120600010459313965297366388060866801109336866986545586162401365578580313063413004206556548645975421566915207839197775173080181059115129480618734533067274363668334751692494893368857506131805408665433238379583640616474036653037526792483319088624966213913618923758921498718525871205346957915556847661041347523589285637574533324033134589610423161252829384934312528710825894256978717632529465840090701401009869264708955183073539792580404307859427527399926019400536073061447717130021571987534028334437914869933263942770293807238417680129025550938665296519528834830271965661331634702934246905480238684090455514686454435344296921100293546928733558059425316233050413534544124373067935629095159448652741144100176202615074953977952345085006714019532670068737268334230495180748371365135854967186667509901382935172830920063864248598434201422869548270543093213458356584934630717669611464552740868539630953177980983933946756259748372715001511031872510411504473740965640409469356517894916470273681922775937969479907772837081373864359242372364343256899941427767114948273765669597283751017012073102120285308528958558026283900903858990963341132946308827878746104257706892285089819153779178594697099151095169157119625107187105964100416666057256719708565805907485936951015151323913470104675398895613095278157387327726839743903613067122626627431581715514998336925523261183502070202533438032802844780931798782691229048210230772888169909102723821762482381414116694260903541785699758404331682374411663092380396501667056113017984203070861949690601587014145265825860500559919826033382001298756779524334282850336763747611708928292514621700258952297647538052189709046765068950762069582008859509330059385937537447948440421375407937026177310817487672726950039792874639319812551511799359715341091389486946326264607051424760256334523854669083370741880018154007027869175895076017355540724428057259679363951765743704092698871798877957897540327389841574139754376379988400568810329504502286324959520250245722334871138946987983256088026093694594293028619189641951344160468575380525705568113564597287740949420069061189646260939232749982714447511462103752668760622094058518597676729942229732684774783977400001773260766055027620218536030689217447517341406800853284264107381604743425209608889300117487862015488462369893442273452723737378344600142638526477776923945851466310854836883530011762699131582118671212609168892426079430271290683633857039672527562843721450296601074517189055097640301714610780969275339913717584249572610180245770002826877053349755725961791304708058869560319778054259801500129633895477308594489750128291348569864414847768040067942966196337945917986764760956484530228052412108096902434921861407816601316031840611588343080095939167703585509881909013080499516069920707526282895797435346487786343204844678332517628418495071546429997524893253643469049973022392499481659146247076435733771545380975566992257186411346700226520638282261412221436698712340706475747132192152721898195883216704327408655759089792053654361739024148411162547372583321533650496383994141204271747010195920679743708184832091153462437899280016684626642077299486145078427356242185265525823697114373105550792923161513325626824083314905179565392662224786153077087053009467308729697725127365382952637006111001787927886209545650318824520489091609437851209688028462463199433606068583530835785806644745082203734900608267692788813735655173634832921145953092245034328759787932309787294322801674070007116367467245662684479222962229395083369984151389006323540275036341013206443204761401674957602957811707614352126398422416756595854928812108111136238751863780939860908948594019035269054955139776430715151054781448219733219105316247208173775356957472070296219956980405636780875348141155540354970032283183967987951961689609596379914478220088515677790093157525870916252607031757193277303799289794315884943649744484358058519607794520589851367591712962859366746238952564936015530792558947431876957350343531345513572924322546017123435903813498917551633049932090073537821289106368438761663318800250640599132079399413674565663635525469557619028361110900135866000048025495256200418893641006048044161220885336976873668747040990958934178443928080612391881548336107035773085986525552580148211781025117836460750545015626584907333886797779878161411198978328077632295270412901197855450035783791004756024440336211754806166152141474002489056389087798238530074915385096699662381966813497149982755133908452551357233272220399793500719917061977996271080745551014430453750550402916354303878247562434203340594752911886562585939474189902707394046178131222341459479161695015858709091797852581159928862455295509332918728677888682620556260224201977995497760397549108136445878497373080228675768102535284781313681119884253961918404791523652342257354506256509457331536056847444152822158477214598068419053993962117595673737693561635782277128294992023576342378317966450270885750201687090164360276893106651024986950068125358617059476111791636173956576821622428986163839273028293407692067009965092934250973512692361997145472518697795617816659365897049883651852591597520451194302055301929741751425946946936461605239995821834197585734269468628654114532092712088341965943999804986614939599566093742109164424499278054901246976314211433670353533390176887849049917122215954581015149140632241268166921965752664678028019790987031594215961244079551979242628200114050091625949019126905287512303470388770165508715841261876510898649571303855101357631105183848715703607806643001819490544371272152375112184519980744939516541401340882620168653155244364490779177739208902344203350630991715537570026542729167498189546374566213152345858362311725436426487435352235272088682268055882512885670079854505266945376226598686423099657853862330369085737785515974219106610629531679050492174949207311232889541326968368519470393076411496920757836272453844127756291758695542114879683793951414515460205967659769181871511444709740548460576348294578248039803987374272439835967804858419544250720494824537389991780130410121894152213712352047706976241883422626950312949277582173052971714546676385945319884010213510279925804566617808347688247081521443945651400413035439710131459784184118902436452438478893567677725228286831184112551896098865123315184079238996241378084117855733080962874100166941838517303583748204050911912221792989113144513318479526848617700734889573599810683331430561635210349366428562691179999573306464866302910214063998344435087492595992928173772144880226218286593531862883451927716562769365233500287942510344301260002749516505065183710556458338710546168202819900977607686284527005119285733322729633912584402080097363071992322383816843337836256939512924532873546021852454621250225434189437977126816806775078807918099310081239917633927809291573543818322702432317991851441778026984403151343941344043028998620059199545072062285030032734585773245168305345607095777116634271741002343293009181372141671431231923288120782705095369913395755028098329041477077357293251470621779512716892201193561389385950469562978184927733183917587939505657996475316058566241020451557275325532622817477710277595631665029687543263722263452218276167811821067527314925603575915835652454566494865218958519801011881140879925303310095922894545146672240738514788376477025639585519921197400527541397137886535805305531771925259568041217614484600160741319732254407948408158090508663925090574529721814447561198482551416792600535911681337653850568904632972244972442205958416649241470186340707721716237660621060042170122676313929847191089077546753667712690528855171657212750220328865273235008882950064158440316581475351896880016056369923135460605166205386971603099857015358819462905761006596954057396586825975009486758286621144084486108192113826535855592405013414670384738412430189462470034662282006338734911080495018001890281408458349140825978779633878335867193861180874488573920837267500985953979725265314937851614637356606718482626244425268905109919886867033243231522254429917364760663836937759003898735129110966253972302581888881537825411358056897948108976320041073420996672450612807088174080400191592244783615483641028460797361492216273914063462144131086303857380570122722737662819237213218033906838997261694911635248448372785534748966065797107170053896257883927209164925020101863132493808839001507080975310407700948481284764017493687851971014657516889854090938947310282883547125882032412772775068253619043201972461080668138284282021925271897754900962450277607639302505125955565622659836043925564796053288969306125944360198060714042658353865383474419834698661201612912102565811246223789322129209237516234044101436115069605712667171824946025777189603937031961522183876697750262628772373878269085677267186877219254338936867058714585053417251040564865959155382674203920887597451096935258992903802864926049582245379906125974469451656531686262803307820048096838595431040815875388788555014082326686580020947993995104914062324468915081169567317038641027526168035878946215295038056200006259227992122765263919727557203819557010194297447115557433628496297340883600535532032658440635368239886522272751731417150513472878515216593069690822524080719862617505043949799310573330858031142988498544559140653444943478229353020072064448304013989369848755516522234039034034913423161838072644591945181647830772462113404784762023457451413568305295630018129855098568123694447484314673502841600453495619494679120912361757672799822680142862102431820573918969641105082364069644854498576503802263252559842255966147346256030415929834479816400412703612046554073359743416568553200936750755035831726557485441543944798157052483975821899850260750984951326042102373809455826100110002892609265147954922504564683501535152154265295899411577091958582131948270162416676516980973740316421409128194300425801374887950782232095006263639356931692789893206727447229467791866907581977033740686685472304558539727119672470125517427275276616146268889885019086984993176247032641735030551135783010372067527654874653015000901942561956254748740956340294624701217525084478588473007400043184939099147165213876394042426142404882293086599445460326124929154056889728092875281730918494248392582812078940735449925952199897246784464469640690200048792676115630332805585996930165249567402796988456374399163553563624105908232309047016272375497346850900165734569055040224512072684975416783639417607896317710853682848894787238713005355914870628795634012072225339548612743642733021585126295461806696516201091056604132725157065228917372452289725437966565392167418107035207593497651056495393570535557723644526191356212959064244789723520286419034393903304016297376475781826387064010786586844550367962261098076786760250721667274529859506580561610614347182888287018849739653153308168692112521521751721941173973997529408041486161639975120569865227305492236745687012288882697542315786962967913234445216576670488958914447428891577702549050432376933695538274477121461615021135710424820886440419043079494710306214361241578981480595507671449055179457603149449655929370305211072159522637067996551326260153270501876504482278039435802668993747234482353305779790686460460486645178649659002176855227151419235361922817797053460986149066018175561535474216716868917922672685555858303158771321120926626522988746167606672975087965888324513519883881558538496920618778689021045006707190065173554483946268079168654950659971798274730624018181069818732210347253816165842168762205028420746951075450509794501662579532979388767471635991895126456712064010543629753547082170483258116175173798632224579262480151738982574084460824432747387569269196715813345941049753920339774242503097913421142134273719945988301224914265496148917244381090032616072608764872338266405769666720664394208296266711805345627119127414097206143434749049249419458215104836084079723352861673078078419694561841043953703653115553496916322451987907272498504818843121669754048460465067429743961599770117974156006692746159184242993914052305788710249229928374862529826105045181218841511942370222279353125253701576172350217521750918690277891892125186688369420851925513542687376613319860304131908732466816797145265114014076604495564159934186536623404498552023149811873122155708733715567373788985203289210617035552217158505492086981735488949522606572181563331094039871692237907129359886138773718528440696888193664369471433460326478440988754089997571430990864076839628253899648819562148162416649967552938904946808252278949520324748989455892557825390251593871942099418935094646406624586544940078655603008999495996071237306216749304287688828746597878201584388591098008924724437972363111646027229279209455949950434894453114655671246955187241949247171930641956636512013506195137407982108067349348738145249347164817016698746992965674728923573946724689701885159845601081798142679720196599983944862980970313280913751147325080870812701983694597397790243181445292227642191221826112076256795419189788051862738164522442848764398556598018442488040712634380384562411917988045024886752147348711369052578954100248509525264092910029663517915803945007426894660271540421241665059178801916788791742378726015123450214745081448290538500071019311372356640960609197681800239709769069653042083776681339311484838316125664768996935808485438374431811538940450632454187880504595408521199221380924527207303039385653024233978921255958501384577428383550592629432792534569892153430785020962130680575781595845677568883164738110097519947791384053777173804376948330743552347074864954202751664028328820069541271780611294607653325382351280047028869484106515374175554625752811888589006517219633498210618772515269775698019469015642124673775514304252216569141580177157889168902256169394377587358221459201644577425931411786519278334077932153159682115724171982301429034917361391731218708156996181594908657305186243069399176758960467706509164361788898941933097920444154158675617913720466039087988885042527348791669334327110594179498225033445999255047617528706454663942743949918990165057175463713457093412665711416552415226183540771060114564886980520989342556760874268574967074695139591920582336956481996162090058555548943455579513752582368327322100499720420985093806022952792616242257142412218417635397340671870058148084309342034787879866961064592855901703438273710511960302384858310163140759512579135418219021507641255651559250853136035717021713912247972899195269133835010974313595843480616564146666153080517426142633435066699570844838330303648058848261065668500651573650447280436638557186377763047939400594960473919777012689926532441603327224327510103619974677509328365396497619767600861303235092042777687906444971722724160154461464066332037194612022356648985202193875272819796868931721547357141870186141873952627285700390919212495185521031588518357291153972014810570088572288958686033024010054389949543100826216559240238368236769824001251312033035218769297909046258832516912549494379571245539487535255592525617931991640090160073045117506886671330960118796762126736050551834034110616817192092251551858902870392331093865130350560447004400219566738126423761732580728738564668859919201212348939063027244078724895463962341582207595552568986434285451985412779074509410269121520076717841504778692230873124945930753826113592738138866343774862519651362688900916865344376974775781210248432827688922154182975192289910419861150752466799951421665500563020955088171321340637394453117349373877085132694991306810157684003546155192745078182345012165753791377691546446983167210719034234227632083704592578629768505136129984054322752270678471894269591226803567271488827069773802781410029566055080622395065496607970240555649100618537976123469298942657081420244191469374636269353929515768308911344870184362861284094889868805173722006261807999591138460783319457629317987103322888937664845732503766397281168735339401384684901506707834849642125140219239995142001114066861074877752963597991663602552946632013726834519522040110281542338073813750751518032021160567258601721728996907331526498801617249978767031358200733018382558414198891550184321547367690776126131473530069480235964822385178202114790816530407016838210755485919113840276864241384658817494874589706242981738882324715844322443338688249688056349876564199770961607047943430462172461263415490684660492299421049533298919613504421274454160212003783406998190241738087417932851590155718458752892635612251470978571751216258600951050733490030761659421089266781401143597512825015688400660499883320087213459377527223035273355144556444620496084429852971845558841523762722238565538812912791837919433649422594677132398600580228861714570455957376869969610382113706927529738577568168909987906884528113749758224484562253328923436876560548850733339719283405986699086851918751060112407591429091083623018997026542126249433876726606184789044582599909484118554306046640382019663892708373166565034177151008070510321714281928022967161021469138979626122225380873704351069757188809301194542003336839936008965702328570215255057757539453965811414038171478777901587237742672027307345332050858215935405124625241987918257446961567882400401349936894824644690230339650630093805408592055871959452128537486416784430241953276320205675316613564577894455187765916996913427669064491521532372766879446955390049599961813572130109030404862353071535221389462292558525617205810496366497409814866612841857870108037491091169788084139759447095783307434150507303567675643628152732486583308800112814302122831368177695969759664907546277708825913264345803135276670308108084844854201816671764790370099921431734046478893998072832097710518938684424604099696854697445889350951026977022329413192565610157277975950167954023618438873511771350279876951594765106146678761640141265746076520924829928606226631178678074910102454880610096498352827839773633356348344185567612164648254000988458032962942158872996865748650227615933864774366183522045029815899252075649579371887430194271287139925495133364485907224631730253993190751485050586933864975823244438649923848892125665493283719811542110224610308291440322624908763715502497021695399227774287707861094772083884894754824857508468634990453659003512712170277450316522781034193834418298363579788805844008268834589943005246509249844343592866098872681611969979193802855932209919932495485210277139942691707672473338714067669793924589555045197302951062840344681213902654698844799591843479342243119063604111294423375772419549518010550788791158980057068675580409956917777101262857925345230319869259520466889765603698827452409230399457487758426196768743910234720271909405930488107133714447155323894633820491293173430590239269476153309431270452114609048734711564116998218711856129871789678254105148582266152678913578058861440803037837153082096117809952693132963371884805448819089458498310531319659632757454424062342619897740082004330903092183658418596415288073453587255425762375842544417194377840195596134864787447250884911929635233668501850519011950506848115308242089717929774185010509049822389785737493154294355523850470206749112188236204219434190054528919469300135086762916136092910582972929701602457908098618213024057240226726873686885230987196202093981187494039306291374535420787687523824455662599660159229629637213568702442076271679897940807812823104396937771487739305650979511330887978054191647495117384365616192584162345813520605137935172797409558204667235576877575583784047050856389999885672251067359562553894359675785987609808824330850774036996108414919315767093678089983885608317989348817950907576918613113640268477999481825199857549675472659442237687390471873885754560713671980671918439795719734398870571015123321476811876630213794419470539667008459591328421496883113168920381853552577638993447758303694138593263015394919199236388338456044142531365982344567904298090107474869185652555231488955859645963601996742414572719875911487387960349657389399477137144161398344535038818831679660243629393252595442154380989447895221769308317791021996443090633412963780753010208664262118282732473089297446661375293945130511741050948907604133826794040493139265072783705313248150717973312311083253483536314772151053332727338237909894534226332729451685213067039122943166350866270989241314818331612786889395611800611494724567195632298809515684905970441488890882374092223667659338746785848997181477746263748832129672496616762121082881922017364607742996134055089168446220643050876317626223744272259026817113464409460765179202917795934773240712079991097562456131204720557392075483789410213815956422094017722060822481124343874432128030944900854345884124983071592075462601888492181502695043147953394950645752555905404574546515156760114824175467021316330049145613188066167152801858222366513057806195631169855187012953000134545979886904839818727117869388817841810716241153909294842952363422093937664826077227003211955199183140487116623063465847832718032607603152864536159253070918479150012945277766339986572906245528754123388254287454570890058766043863540938832263542530270542392157995342907152406406019438131993190221966073839333223581337092807301430438072263505181642491172348697873980352735880878690087681453575000566757026909305524777263554567479788017683029616470667054641005952754561529281795750897663253206468198690889244671312340132820303093345318654691986323050912792064839537490769784477758832909962862976412092376268232668386741160428729171447379565542613422256220149842461063694899614169591458052026147637554034882131006816309862514407414119181456224932780489456208860269837536551151052640606048744371633502325075516103872472594390450963904848015286545965718317345515946151905708767593340311314839644381507426850062222973059666791731481806420629989666331323199785629131273989542385602969941587958377729430374301507461892471935053461373806294757348594553239406737857185002505975070885064330625093787289701185417546024554428890962029039416294055874242327142305310833599230265124962581174575181601658275932498263586090283827352819592371067958403030358797921899098826695333356809291551832555452698192201600837202538746137055856507432744193854640991291093898916093337407857249128882080477397315308070869760337747220691660394968114821420888842708663098786256483349568380674798771449681963143266887286819679212824645655910933451371050666638902481127600804694654358699367658417594093063501984917841587931147289730227170825493484821434957127061001284016353292819438383073011011073398129015734639486054481378306420264854151976956648974630249462422601207524882675819752219439960139709830897709117289375513336130031094691223179438665061631611971043258983426846519947201485680849495713072690094561395218437129743938268923084506630640375598973681818892522457287654236266650612542514906033825335114507878437381206400504504785308576761062150296593951933775889697101071699332957934478777994958538921208499253341076330061258180678460708668288786880843425081649884022251823414201445088170320682929394833652000867642366288351984030874757862979020291006795929386961752960526446531814373457769075784380912332652652707524806606640659498314135904116312977224788289027981098949328220022614794406381375287615387996047251873759132672696449119148756457530903282687499898257622471397911475947363723670839358594571134659434486622740248090156698526835588112787670163476671960318339040317685981726131222312572490369780777490225201081196749261197387974254652847257762020256734378885289728793357720479032936804184479305939273974625804553271255137564190215188609490783781164505224965596581640842056975228876741298918489913486572414065101875151675986757161804009504950137790830540448028397520903111396682885874741445413648254617469067097028336540155782125480019020357847925952394479712188237828568297141213552948539603030914832882070744886376719400673764855051506185651856568597509963237556913608559911932634824258695938128219980614916414428529290143484340771630122338313863246786958288718849173142663397629056481491929776355633863040944234123646856200313615640570556794788062587744602723479628865383444403494943315570834878401015124550000194141738724122976102368660004450283540405608522393150111006376925284059886812155729109322002620049493269609448786417463608004130021064608429435880518246074228708582257793320070334712542596597449087608085178774277971504629416701340542621785977936126085049837593174902027492091288247092175503952881888037617897130847839596017185573240718375845408166130588899337192249877714236563468220061006047765817134950494754069583877090632537464790491019988767681559253311582675723952612885975024507145322613374094702927863307521131664615649288892989859532902069943747665515346344419757063230112099405515804302983702097382625450626531176413783360597940442183328884876373353180950519925915164991281040049870604182703852493795772249802992529903785908822258861256022110824801368759958056532331554170783034028694641727669629812616357950937457028460829407639126364807027033703974642311945216614852236748411363058694570175430795152830118123903338633380162324754165747114698435319168725970684308985328062417724507685959081871530414946797288229613253403287303177891133680403219339201242561009367477746056188869614110116294153830210677150851401567177597100275203953146777815839512535048123329157045842671114286215375170950797568493316338026826753666629083016516350243714469121286391426422834372642554251412931532364745327707549375579559079296645508058024582035331497379011217733275498427186664050522547516721587151521942198810460562157248063033269956311408393963546430191184950633071453411982487686425790084727317568612219153208485275242441742259703138801500253665764635241302974321697027947259569342138162174839476809715685548598600735013284691201858441787538936762853794010108484806495001512930045443052791306158848242449153445128378392913996768944398696799303706438925171074625567021114925510670509082457756932801304430403386919312745384428528288191361105119956672230787726228987504962541383390756968243903481729248638493077530151445791953718769662594798564956062675740327442284772228507507328860214391121992952224774826455015041957286939074547153378925031738771610029747803237284377026684598140893834646565030867892020938356499624075298710215236386285407157148138616901600536804864680513455056631602204539517475524477084326867457284496176753041996307633743214462920779538002662864043306059299167735910710482978148416010922517725287382218036925252854450202262977885264365627531966078130809877060024232866042489903122472593307454192095745579727949744013654911504492763941763945478304000207943709294828685508207913891545882145426503834952275836579381752370658686957689273574808856617066467793492788428075570724338415626471444474102450381845788458145586034861619168858155651151278045177885829706905509642238709266087473856777761675353248876513002306482351032838524324813893930956005826322054926860483876535220292027893585311333179509525633343868201057467158232137425786024948660490169091015904278972160969581088625298126025410190828952685022801702239017745141448572735387943830802384831830980570434602924679032575767763869995088109302446476480680140756890279711247236295572559846949089107138455260436712748514308548365998802610946306933907392570597412060281605512223506034320925546697994653096019650091534771201759618817639984606084128894693508808590689089145488356642020393052555925992198095554975577786442043949144134033510243079038307217259018869360280578550402966125012697099778544451912270756853578977671965252381132129523875603493797650767637916717220452124075687672501861667111963264474123614992200257914041499460996451907795198321027579200948993031062659559393199740772999808585135636610930835826357823439809064288159800579651124831759627955585725369934724661794416416984395524052832774931082155193657171004605345687905404674862886924910888601273827959174515671613181017771687487476343675870653260757180333245670826243067283338003778248767615735811475823946094885115230837402269186279182398907179454300333312906406784107741392743529417708892067448836609953095653958205138618879610723475243535530607391827861707623264865716056417317989496340327907420504624436686520995148760319458928464762366139568406563882947859889139034048837582081825697162054868159807139892391363414342443120751236678127927801710068569645071658240235465394184192648524234759199267339857644331531674146913182979486679093319938625640247695753797703644148226278653964528807598041728164434724398070504968284011816240249107586784606140149522369770194842241534640647893851031595039547052804586294799139542936479302926726683355326964557488883110263825086400937351404183650603933279870070261741194173388558944062856515607729551933889891836006327462317566017239238615871073551038222078544583468408232088326021201387573195328833234684410879291030916653118009844431187841473852680807255850957379827862366882262756744566877715241527218982033947929165550373812120653130423344029749353469140991374900704329117715044610727432698260983737148199197826138449817843619295907774503376221468391225817472403257769750844492860212091101442803930852813620028873399074279545066810525827246709901592019771065854967384036260237074651701201461824621600029680215788889778974961176718829911883492891634018347643904665702124103728906787596224568186254305423299561080785668481043697005850634539705157231430461482544028464127980612545663647383108325826176234959908596256026850937417146065071829680158310905108302408713681942255177283916212247258327754623874373837226279995997698614764636968029524216723805458734460865055119489153086118707376614864214823894989624329853694612284799296953709222772582507265539473807885383256411824848440570563484523895104657440825718927458815999626299683305800203019707270052020298550534115957793031044573150190963976415255229779846851114174223674185812527367548032374934251247316613963268383630427893886917898428594067259429367912705315467382446626036718434510576245142725597072471741520004543146513709341567794861074365256136926439591924767291361295442249325717227134614114863324484862688043968731746587038715895081408424444863345044482618322988705506891649933861490424480273305250054261384333149900069527563763003951902991294933569548279178522575765304707729754322752890076808693105770595645302672756634164459388991659405456781018263465766985570956348855883416816286063671007508406089376578549335712726858594158387850410796580025455357177317219725464140319346960133031354051937603761061018754915731763304501210699318021637354718301345943985941224013908556236573710327610586652187410683603811563139773653939184337760532160084909726852225287022836949740046399383693528851436602427707657267528691389468100230342956722182732726246806178675738933330241056704688006268816472264877342696411539072541663945679538911364477656378439270731704706098387493983445959616640965019071383303134719859516452938780151230437027115172212749004585121760126110215879829345576445656447979687094326880315133819698107724066371531067089774401581063993576869451519104358167774452851465587369465890670191852296455935916003231141342451312225407306934610226749168913666053988026932562917296262902674039444591119415099630069360578456251989126558856317346732037034574648884637608099102217333370445036384360920548590419767090081854972974555611526356966816396053183158124058167935543141726909568904378443201400698678561867878993699928676419641776216832718459796316771816783936818276670535536113048891739368759585338547690387325884299404866068415691678871523163351942946645102141594298576740907230196069062374945237535518467453052842407442697729833811982594974013352325425158607832032047266542945022687999723946593411093800345676230363336188742040645916131894844347882450561837981124487630775677861167406492927848924066175310789349362213226224586337712135840714646761249717355116646240822254911354972075351639489475214780829738699095996585812302779855117493555874472010943983139073853565548888249993861216870397059413670654145238628736048827698499344668426926102332204055721275020086597547768367445217896625124352970734533648989678768314521932646817365456270362862411091555807297694165751679997717288093700244564636718693567472135680903958802955408472537096405606413357209363716280591812398031657517536445611515987749088801734571487353079887293173906421041413458442314443347120844231366920021085824022538684186569752136940138576434338676199785779626109085605154937608206924573941067921945513633969153755857887579462083267482315458552133886376421277424415511847357037307846395051823035031502030860887656224371188046106390210576494951650101705742106293261374150612000348005832693608118364656786862932650755817258494944009998428560603934606774376697838156167507735570599686930824175557121374233549270548042556766555104577493620055629154435329531399139429319903085395557605366253288207135717846666224322342653943131214967795857479096872029802629826234244456530455184688222703819213004304009586104500857567324631552018395232416306858170599151889089388388604737334188442808849974143032847677552450618457910560330137028461975722246484493609233709720733317917142824222908180445407243767631094455196241302076338865520683657070380394587949042756788865656007346645815396619911332184705979074293750902753537845363519846779280665675869948339980834842934762717317712713706669029571192172957673639656388485755038915154150167361554648833073821043003605106804182910762320794435929583261216526118246682252097304845024050863696977175910000732633628688509426057465027969643175290428506370836913719826124053154912213800107451680917817247775576208978172096784147135437811333710606163799223526268329666024512453257391798802021874505137105926447385964690562088919660121361564885902045437255765875577183174688201129048366979246865044691194068622932652306774190483234340901377699818321826284669620715171016822618868747500580976501788875937780881729611410011674397402748728092785459476479354986319034876098899151266985335691515383638489051348479175962194531327390122880791765936329317608304472414039064366614272241033423474651240609447122215172342892883289448138868849018886994595139803159749118386245209636203862620513009620614282693641575147161745487275083099829204657522174110868803514262938968199282359411611587326323199402706793220315787069426316337798624676179829366862028042295770803584945086480778513359138025240379316174542606814680256703690444072424186557648532442732714313939285634033285864650559092049873883057402926722574207668593183113350701371816831412094423614661465461484495978473199867899116297600615290347535839547943166518947656761744403471100845633023099071500624169955307734398727002415332384469366739188519621236351740916615672404657432218009272112790692057891943078846243346310761032568500834112878162699022955593329715210850210560365195323308713677060060776785646949085062421102077476894497787049515972474637621998295622446553762795169428586399192838224759663091157001261520372929386604427319114257308529726803705022143027290754483170481554903205065315157812802428140929869839732944051020887238298043929943460301738298553197485034028549590712389674855114177380877079972849912903672588562134037113256799836255906413004125760721196625883435593051936199984113610904220529415249784547511148176481630834221617946546561411320445506573991893436707505025642345829642190549776725122090269883615240026681661977252708395619485063045206952469540655977762383139806982329241898187252119197776222491606491572986789610574800431149836913627213218588020797850012349730660846143405737655817743044576914142873901701639943650178438369228376303083024923520670572882246018954479576777175968291219202043847364416952007486265203828246158003437243313421668933417563472067482461935147178316335855241446310279605240984451405570295201879684497623230634099915937544253248231038195362739387341991337928487514894754067224492422683131991391725721031838230735871105183075273451950929784005763095993693903938121494032537760884633752716192562252881317714546241239435966371216889066622662334253660386809120611992263151823005738112564411860790022583359738356608137260687314230978230724714895058695812997753839324513404134727473873414910459555931442675870167002737558043229982940368543512238192827379715816142831833123024769904422110477386982073413249199403688891607582254240360483792842176184628633574199537998189802827430114303726921532634664918095014861299566329898517848455553927156445169807760228283749890776697013310377963425753729446066592157926839421360555205438194647440331624375885282247077326873546220560255272798228286875647168129327471449900957983966967499702546447470110849632411295201467595909701808155587284225878666904916466948700045465839616316244770855514048102849181331705529372536185041342769376003384035103809156919520010726473173225266739080070169797662146942873198139456247045469643798345875334169330873819533797647009928628752255746984459562077417114834134709044907726419099238442450839359704252370659070080163581348795544608214668245198381125451904410827107818951054591940078315860516902719029134755965772272623084288087794945022193951502415642409948190650272477293907986838777443649901168784041755578880891176957395377547485184706435977839349617634626518695325651339106492048191436787760295378588589549493443758577838871169905537640312815445178650552177775353457957997190583528500966448844214113182889716718377234248676833556009032608662542942895113549409236169506438058342941388170926079080045469540707487636838245244205980921328056040563102956314257690996679298028145978872256236248449213663451074477448020554108745212142556307254603856217179626314545264251004936272097195476812050370396028410888228156381714492334928909056568902706482391735686339009113654957648001197625106604369337679932723463357753684165809745436817794143027816263057438371418947308715877628745266009717372298830361283137539073864947478197382114951761486308342035302846676040280507652345066086053913562517025133900029475266105979021041835896451913004950905163490982638284953910064849835825510816550935768273121814309373848252720185286725763845899906059240959987410695218179417617075149450400283550687916973643492649790522085759171386007795680112011417138367074114008779799176240174635288261076211945645958806714742956860605749520173305188766768926337966776866664158397839333375003027885620229730856921678413408099813943896931513330952537464892449947898821761560023658513426785446512375816426491393267063515665760301190429286629186252140580802805725424056548743667308679465970669305865689343680211646132935775781639218679272776663433068488765211206552042930192943905361492306548082094633361056138692033863963011796060950525418662882697319750339096173105592495925941816523639645320252248112424449610229469326562239973888148526848368842215895981970433311931112924289219416903567334365716049669549641117574811282231204328872658356690429954362285384694278235694180150798730943907714624933431893767227919185314187865302231635725269348890754764238089999895639799463356614188784468661209191151114795444315231641015203723759244733465561025129887816305937108640819385011970997030658983744872125077767993945864389277417254883615078928120232433817400757376016893122858598238299382479424102018955949105722270902634579049141457478336512489421657257783136153841313177041145625821789172827395671613606330659121909896130104214650689622158031179837047277758561754208790290211834686654193884842985798746364944118470521937976584013733312053206617547118337021437331013397237385221756414727287292696656241873092109643889958530080406066501815538348663604802587376314578698824762086276329913797803506408433962133155826250195647132730553512864051553970140363799049349542911951893490030123270750780583337878521089625280497151920081250295796859535627509020416221619902215964243529084863446803661612967398210322977551707341586014602513237929219098373352862460270337713437368015315120893692272193522598500996165996590012623647765024656416154878836076750036166072686524653447525645220820066249091567893937660365816556647672208347754478158439456345429372172542217446148923549409186480172904585821187930255842944617633975216667568099091056228249406614680817324350856869060399525392398059771970037724296264456319835706954316116294883028669068529033688995610275178702331713861953237523999392678990724071275995999273988407380578870960702117921457541510722311609336419809471069804963838148444819452613001341510081123260546221331618244461203783072975066469154093452133590457487682329142235623027300314692427888356710349060819253601122733414497514140239182122217136881774562100744773460090673061957056910861963585468833005045264222036013745354398870924349648734979103843805212935906513814042276520086462530866350744806424518841554291492626683541924930961432730573770392943628909067810807373698599616894938106292771378522452635369084082167819523833428879337600739586107602273589190037871455486657283036890575269220533094118249323895578171090725263963363868142550156009497897805899624846238075268186491644589120459534653036212064899788145492442921344210185994294277421313973311054166562015448184808640702882844678337764127323254252877403324044106380360461210283638758954619606287059320977783319333054359061910509396198204256610538849896101945421447930027220120644271891184908302756204835890792829946669598247727941620933699582599863585747276878835144444575249074521411057321306677254104697077011165380554419179602985231693759737397956978271373150281012061585937170755904235239723086972372908265561365944823630755266075608695748379991717738205555372090662505431888195597125636143486867465195660612191935271685330436277368944052652704684288281651524222787072579798505028657636383309068233947953761841129182350837655418579261493944580155094784633637301843167340823390683945118718487735084686025057632834212932771177929957175091301635437798155191673613481387658496903818471370708806217540894599127928486505148256706327048725542109302412352488956176320882610141445531866351668030306032787369684122422289529740392100218781318297345898866054028523449807607106241615985554523375163350885595750436795939250141824054403695577711848888809918353070398309288732647444258375403689062686026713114597371340406808226153310472863565882866013102366963600685344054578290280492814366858118143242654378356398850617614074676709087393296693980808149121075463165666717845773001940644184734492607903580394417271288429570661337180601408848346339695310998606450607485000986232468090214086351607638016798480651499387813828197860021233237723264628682546262559322102101151000326909995252508027812709667851637065558102903564860241654690152399615155289851024682644266442607286679189920725977911865338501917519057136483531483511199545011040449767863381841789314527646538321027799322199546476092863932605078303994239478268507467347615310738139889638399951443045352861318868746668524129619914851422631533904435110073530036710699285239510038657017964748217366781209698696468035651929181433897014239368914147139679136576515497337486698365523777842620689478828525847008938991399761071322496568005089599285648175238879796466292511518357944862488944418166903360453715246044591171361842898460646781007533767597759260707261569233852657978554725929925289420605866951911871389740750514370400648998312214938748241784020732834556531408793125022362309473317855214065328452325424239108355273975064575231637158452228078205138026508868890211813037650424323195803497855025165295907007973552670685265735457421038276553902830753549288705063113383333991153904389865513843384798089166338200029726626606690469226963036086933612795366774965246564418804059701987136570984248027217589244049569227645868185070496124908868021274083648269057228591038870899869985701691927524363821612886366462225556758137741601905170498321196751295603310338367041172842693381063566641369758299122937029188792861361777470372500590735281524099010334770988352625330723416770258288235699031346889190197640293730890324977715311408374018236741351724260723982914985858918474891411657592107109067775469583326843417795326874740691739036248802222733187175763159200074882962398768956540017156538159263044790791663669793643171779138775846809999487748763225537298598953862382636208680586406428173133232408781776434811338875615825927700429441547181955323935688925456296398759149000217951290212932513596659894878055429270715527288326597207823440089042598826766666112616109669263045507620757377602210770100315376016483853480202497783488602687796178861682239081879456081553891426921196823774209957275907324236746279677584169225937689757831898465518089182698669837266720146986427339000170089330170553442047326223071376378418784590336419734961250432262741394848301847347309076479184687575200610069808292945335362336055064455800153847150145730545361407026525224013484935712844040579770502171227624538536023926615233822403223662106888480077385744613695190031305702396032069795867837529951374602453861686883435842212539941197801566476990508385508419584309157401878061234116585118208083462565850043629053841517491022078966431191069081461650532067856050160811963054121812693312464771789042401268749108621207445389458637938969091155802941274357340352451560397441649807800178644769485204076302523132597273481824689724568430428949202473829222039732232214337051242966387636754340482916641552957282606274684421586302872092513385535148145359647897302001711461653007219819476915112840830757668232208734382595449195013779097759381716710038495138331322454195463175142551296926621124964791275813521322307914204831466910133779081949120364819266234768854222877560081453167840260890411746528851585520559416237929321696076549921906263853475908816679987411791211783855591802125623613784841160193100967413697891358792797616769405713833943381043958991734809932236626801432421921392457644387395660465316144320531544255898852714242852035976009136463428599117619778358712403001959995915953259459669128763038088188381406218519409873411669197662324691119236009248375464230966343358521819520235303126047193451178499830234465151530814107770044121858764119461916147038407046655313459030552764898855228621484658806106001954023483363337574849524405406162526231754904324435591823581661780905487750211378201549563860118354541631420685194431917342892251040599381813056330124518129295412874009471233435826762798601950152714504632327037916240333973558316682577492169450290668828523393251514394072423150174516241140212649109671854122844686825118553093879757356217992850284260769166427219826453827716916698568102858429413830525951593151522681053130012221228850215612045012069848717272099215061269492279616359831747467705922115907879825461408439814420995253388556980158499832130923707342060889232260040042535355246764529977942044272354378643899973898422966261025043133408839177370461015655523341923542457151168020576588132011168032290688988177144203896755045182110463084072256509907817004123470156405820189687650862188804329062623474144604644785071214722879827184721693835695556173657456847847593234319653462639486010314038325172625147857295726539233987695950054677570406752129918713393078425545397880272921300723516415139371232110526143929363034553233595463084863069065920114343234475397117206205268868895129230651410542029737095482550597510600049632264624857567848509567924848532317042409550719355080599187634138294771470260899358172087067775653226164943468373110401343349607179247800804692610172469975912601602321903969722610272882870303648882174108563551840780351172708929012184690615091974659699306816613704812781488270069147804892223248761870146950890472735085563632530627853891891607290361907436812049105936727568784384707386142122304613619573443942775214945419051194148119766794881803268041033172933184882354969015707940932584584621415329157411528354709240206088527821425210099027751730813382913300668494769459195520819142832358370897874198123672695261514608376303429838051261091006430143012899829511071095991269542623955901861347426044895198109727523194739980053620087839685308414075212266654201691078216173065393190425757941094846982785033958380190252013319774724831331057358518737942722506848587123601872179658693616864495616257197720046348672464113399749853599239400639852771341041572422385966714155433345206184650878200838234758662566576849207431887538449045762177896026932208827313330424598312736178936429446628794091533664785290040718430283942938774477258104198031438617398763643776366723893041718856238307189724419789159282995558790024635698229206890162809148322468827773243040930139887705102600007775251569207545510606154377195528469099854373018289174772992151715529551888548069569801888399575334381264843819221090901607426373305488904009052283969413377525947161015839324427151554950106309540251769908175646359416328892208709129282354685718484778750076989724454643690137308104596450017398794767030624191792565155247997270851644783786486604437033659647160976018094648837750156364615655460204474931179166983831087977122891874230444554096790514335099111215565391831558527260685322677433224228859867184354618907360608833183835048931540692693549031506364133100552921308144260794564526789661089148835739413955619910961170922684702045865168771237871884828387110080764620879639249046921486497706262025986030952314402116920617081274469786511097129778425543747622026413521045603326989864959203723190930542249563938439410055243858950925885486780380849162465568427904932294131371904310814987237219491770538571543862632421116558366402766188799821402042772513185010400610016807238714298820071546684216344364982837892022462269657519602061378816342033502921470707933934711268628162295719611870081957477377381082937176531062915352782715752570901142539450948712227178768730569534911092130860058169994055838911888071577730789016088958543014234903921382561411599980705509753087067863638521201345562883842233333969016683770823880557834920108886366485380076829660548493694923279491759754480262070617009389908715702096111475140209839933661986793820665660183430050749196222112422249712008214444033225877660219099599069869707068531872102540153004815690640280221435213226365914363429830056816475685358692347632828515784990307603778270534872847480180596278728802763488040399698226165279929886051503357413944827515806691915062848386098866619393616244814929033743843618428910815953964765079644971558109304062345244111631481467862923657041163935768694016887987816642338063990329431779321467801523851137538778648512877541021244001429959112891111378227558245728683950815129855259061752654074772268728150897846387916342875695848498144838274522447635184644768278463720423586587851259692013471672547964450910917505295215501243978196876718796449888951377431148250908177016440489327133573768862790732455741364314654258293718215183490205287653189649948459856133093186053438918410070140459342538354251948682007782162260554015821189667701091620108169531585022267401232494421582924197361682612563231526825109954965547673845727415035244476173260827629956129722487659899291893233390180012526290430770440646525779976407017829680562080826891836499563719946122318088427731040620494750444000176287312787644341885667343001263620913611075176396437937542670287998451695998138065843881222638770910980150814473967121729799071434027691371770764661313450071579567980808590877085388422096202948786337261794094846360205768547018868650228775275191007842404232632819338007720913664956448728983050328243954323827240203537768563417939891758436303793097679126314588941937296169247378918040550940233186507127742791607082670238407871381156786751384838162018961369265267556405081750063362153323390059394485813380401919541267169979660886258747640766308550103810325228215584047899233720429349741304813733507664944366936753302758799882078042469521029547480834810529118161831184116658599706927226352060105855579877533043819355937472185632013633782864565084670951227989397734699928701303411196650986765954392184972018447227206663441465649132720979910203953903291533938146243002112408128466811638903608085024117612672385895878004230990338131973485177884370246284896027343247883269804350043287537369271001903381043609020128859659222884751983708905011405357884147524055910507056997365575737977926996530350493095191192874247323995653656310223989100997700339731852145825999432579808594731627540592094544425632544744439968259389440669403187143999473013446945962458002143013948612322565178453483043226763659947778922891643452476727405909588579117599586474314110050676366306969227901434892263540941773332310589340741276134366981235516351030536751702023649425716221755648792986683053386351340391185225704531398236719538733408188838611840997134456562748612440702454511340781388995751461320591546927040734745757770519944609639655284985831787487014578102786472296148195224731435630206859532356421401486403948130140959694498672132255148730417337071965045920717134609429872594287339933119933096656089778681175950250983969323120306699476097475034543791938797994786145621439689837865772104022488244392708529023426261840580783785594880881470707035923436918923148693616136458225387099223374739947305507401452217777576207108406338669710192412808696394560856664344240979860925444635512582928450378140103610421085257753241465661078890690981107597784378642784776796556425657007842192775988277931230955921618485511492598353065873480371239997521919534050765764619954420139910104268742816207739063752260041357549110539634228791108011035673037349596229991137303727897228428489639374756152043225876460140103679265741950629476265189585339172715869454721476227906310394203873614318930544646618351107858782338901477405107256380066628876223592953364530748075163142394618358083134929049597258516028796263538780196471325191094708094392805758400355630071259134765376264752960652592873704082966968184728585844236593512993331595913698388117778752098512956179027530583204050345677910467142966343240697097837034009416297575230875069285834582528541778140194408003141806476056029930479099883671600685466061594407694688442160111434240062107170442767313430378310406882001248905842144665259331907587391840657352363996487244380094897883697651507772495390684812584986289023086369137766457358170031500269687306202102977604285259700596735965505358214450581271886503960914935841346565179144043183035701833812423941930100940637432057800729042526765018889081485428827036867491478900968419747264826489137973171844333307473875228615549957542376622339924249169357661736401746764792576610606420382419428954445761307846737581362130121998920053052363229926951924030091826438261869204216774159697916586967174853308318909724823123072442134171194038673462264930489883994581115265009039039622446716750006298860680493813304348505439336864140665586711308015668568132864667353619963438071915575872926981352824205200985584717852947561125564917730882903041080039131762129276185052313672520129649466740641510187774341558466216134337137698084575336845794415889520904737121479595186066952840550672448926243231219854202874265875190800596098714775679555746382307259431781403181325714578240589706145039739309849788316537500654849365183044179334065698041928997769852841354027045289330981077099864772595086039456669525673929591125278703970211820971047846541087274392007081526894639785396118243774786702529241858447911525454015071674665736464768641655002656875694741839925233008954324375392219137428959144577514718211525071983378888582162858092836953468579259286987491593584641723398402296962412536959997967701713348335991563973984935362103989914655573137234304643847770218968438195033486305476759296520156880072738438972866332892254105044905219718514681209292808412253388721467411495132395771130761593324474172517172530371163697159956791802497612986771111666037015721486225238670461510807227200504469008699031324624892743537899735294637323350747489087968562758586647331321687735826073988420290794615813704457141988135262066064015839012302374370587219690581576990795554920293873688924365421837494039875281245275141355054315611445332882307733528484866714471937764035625631935657308543859976325827353781156645122633497463531962318734702577082494571464357326807981199740422856108892345906446907105588616486487090367803871587057897428487465500769845283624716533841100491506053517098387496518025866941985698947181472702391361955139555145605578226515693836409451595885953380489294223590297693719175836266473583405884441609101988387425510324129941148826037654016973999850730320143854735330631039922888290954183665631418830481405766388049234010222236178878633655438136963680740278701046435711031535338472366790053480241534522713445420738713122580335927273853099452682829780677286892961000366318521158066427786505576355885527603727012638778164210414224790453782221930898364587420764173845701250258582765291404043709092668847136201609303202037577384335930811844645051997557666496301178107889794864811409101974210583580529686251963191729985291415428843558767792033431292803737583801736807155721368430905715679222571546303885659905133526330867287067256438134787976673564620961274688377137519178625159197997757965304882520333762731447884077710001450388528428768942872186931795202053225969347412794899611722098554587869535136543322159694258137196148550429162989371593832785616684055270676849394839231867416341685912724453529442676167471770791168871353470037863207060091216510367486345981683783454475152255375695008493472341121327978587603479489901229908895167171022478607582280380399831910166406638610711673785289856773278293015763292775454982168072978427535887145838828005019040224528965946054094096252322245795246495165844768244819430036219663619796212239914810611358202159107807546563362623531850800082102420299837092007826631293989495611859989085895867086013845163007699840541580284778275146924484510273808849778871679155890889141212222582551990959810930723655089173611319993426181299033360101245138407419335964397816635122745770476419358533244947687769978172379837680644320469216345176256317887444053134594102175944914023913004400833616659698189425327664981013608156675648090842074899837946608882524462195635373119785527512750065230172473231738669562560105045626378599956983287711664295530701614381193090554181616540764924917140486062173168858103036356949173308078517486525488285818753196025325552983120524879436410851579202647125116839376861784384827579909793326149839698712853352838936039361011893832222167588007488331065143495461479127000995551106007841803068826631206042997979711801875089869630797638712219115796221096301431750079443376338792596847250394104031942622309825760797253044313730547078840263103012603021357526830233862896575067504634106113872927664080023806901280256389782691839636434687115133560136619936578365029535053484071225298726583047842235996846645121033338134737759997968517510233610770581930364533699087848885264663581219046225355679527917363754804607452939861829907248984391658792283881377565129164178151284407904016971689659848973755447870591595202311953520622039144232142739236427446717084345293544479829361517518779771107019655082743811910982860005309801230073384375165213359046868311327337000158921177140709056283700251673933709233942144282737940080464883908398521506913659006440577930272733609405403404373625391490104193339098708578296365298603764643180914021751660705530622931488664038545283901939235538532434700844316721937447019959090452266109501611693695577639717882316039042926566985763827796288962558390549889979014435650558058011002061745262407846809094412110120349763748711574967904750223753151739006632562545587921715372406377174845215094906170323381225609936196995630504096020007414684900930164207084068105378189079496419661146764382894475483076379108309905195590112127574394467850079571438614545582497482599220605205626988725186935061086431647608663312835716087692188323281843069219904104772508868839383292087619230569622816608711018967150659892913471673676546187925770257238345386685994758365458332077685633200307821596104569061985558074222600674768797329311444828471859069157989899670102593338868666714215018940725486745544433126850573278590456613781677722531835111425966940924142041020791939744414740875678942278499203858475905909639521373957631921666916056423491343108463867682453498735636588350656062366166782079653113485285651670540999755560765003046840318835862381276034612841629115874178666365785984695961335234451946398333605556067626879727662707464891458383688648311045354170966073382396236180747794591807672997698532536811692340001834908379821888332381816794627149710533398362831659297676282235534146914281559995844794449785159207965661026773170153659063167823222692249921338456348809382202740152195171935673487462817356750431977381110264630920137819395304183236156095951285593407713222568394058964201432161505516662290466427750115810357538415953690858633029733140032930993921473737911540284940386431352921010787246407353401309834765874650063641029979208611617247938978959082242161476391629727162779700250456844173927679500622468533302629425370626847515884342577196359741445341618059029757794321624959956896135736086312386567993089540045404410670760417177590708630954600697191557603226171665492692725162402073300077002320865161917154368384483165017688634691294612950913799250274906199456779504570778726790826340563672929163742971670832242504633867312226511232972427502104018374956177695879135265869796382482008741058153129033622309503126258840920855858118402284004078952043065989341966220677235221306255139605027424840072516102765657657510391384621984507175683126951670758650365112204672591189640809076892765509350972978930967338346198928697141124946440912656678715351401532537225521541430879095005745565611266354422529009691388703966682332085695312839998966573577646576012894744715191015402530186808911999329255779389617379179810137163256676245979569720556373808457929086193762064151909651101402400449809608374153545329024515557820853178330795328984005191569042218061790380741988222764903332144954720788983977770517983331350740009366126551759073981709226722921239668215257770240167692847405068652467775836185891673310676578459093193367293097836488824001972599716573363314110285448845032220173938875762109169972921974974297073407989711028700638995418988814465242040888282526336078871009045721524146227189301711002721403624246388506925474552796290944608610751726426214421766517850064090316709394369533053695258249090667554460384997482242384839735875828475698427908937180298884975575506044417772733427747749020494027839996500923907284783330698269142301858016263099230797931368476357768308973258863280623425740419375003912493654287332105589339669133947729652164649724974884897951883650420998845453726493807806805917543841073836482175669592828353735115842077358966348612500314521205627233469710917728472885139683671522252735257395319695366369959693212659701875534425066670338243099167661869342397975457279647774680729344847675636056912279735919361064527149432673894270290244255479311801170727009827177135843916377505716164768906911761793492141818846168932222514093737439597774295211398887221844375569981283922453882180211089985258489509075265925266689389218452732743773946023208838144567389430080359043733352165680759289828019229319698854054751444763910295791683694045772588341043852616879351505301721580743939751141364262862918113424839588682331520250160140329719249333901153621550235134005677749155637539951722895661366337584566082009012032057776000715209030903526406080935347009073206320705783758662300912503749515030638830816693975778379770389559034224307658736899446816225572891916545354556607518589516961331011968177940367301390429040061937616738503182807653385481070983126942498922179464281026114120961347297446704153718416075364926508205569920217731949145541447311535301930192023544773210515722942765821057094071388171740727773211818705673338424975536977163938894687181199508655647343549393842432154389537752964398987332118379864608634780089657368210104425934943957578158047883550633538794578763278832354111525160457009077876254852017207447404083952431397820386604830160594135397023599164379498081368680851587155656377300423746884399724928855547074252931347809736256062648482256593211250208939394393862860414207868788187263341823367096671055615736721441572237860753530663324417435612353864999611128892571014530909326974391293826298788166339713422521948670761089826510621587810219386747553616028439683596111342863172953951564907333496283142057807163160325297209985828146260534772627966906994953589410797267524279203458619759879200910539901359760317969730108290932947289970584265249233696955216857470229172537865061622027604992452468873758990249821259293809194894406340967917619627647392917359678498419754571956718917473726017298513662691836908948553864312754420269386492883353995574880688119477718958356603125864014872956623363381103264308175645706059830073545209838735177348761326162247636954060777315686379907493550937100081961790721014367571431202655958455191395618924172373649949289656765013823021297600273569454198079328691202173793093433891555723740199874804107049634504034227861923455621250422940371787529829688061465534844335422026713759838719824238355148333316121298168663743939464104894812008043008360140620184501531169260807201088280053918319405500462475765410033254404294171017085879695235167649501230063424776514156719598204044873966159238339202765088610778038407300854215338480945675921717914020359362924407690374353294577674618707776525331473769486697269114039237738159998698687857004630324562903437398482986902858543690783585452338304059805458001442699098935041899046477470745229686126556133451024317465144562848484403222899122782205940831415138018347149529257185242384239870359340865976827239327159967964660067407601704623384980666080906790293889927091735213228639994601173921378185743789105336844022274460128577467177716721809901471301684385712130970151121281674924037743510933075064526814728587877896263325304184613232584578270714974788426450550555234202130312791499552627217090949940860596616849218715038201910911919380985891529383947552133138644341222763385436275876197728113665170758758565325584278310012105277366980615208622925319864900744691075793534898187150811245886274782822905837705728082254901512143909305449164323815440553347710126578852927435515420813851941860004209962205457448319847765448017724232491471116683862412821128939730349076534556503518732071954684597648972864530373208524665093461381793418944890769025199485107376773181332563309324550386841328244525427549300860425326973244506478213714225965707919010903650599473973408054700112603041959827777726973726820507497930880891666132810565109064627746393858375141270284959525271780641187405444225884602587067631626535034748944533934223255935015444408300887614985840313131277797066490926621599680690813482377350283746274106159884016344189783325844243635591057049161395362629089369707669328504124098270742472353989892445734374463098849637299242197759793860017349679274008507365301578533495691094194202745263494539183087918322432935051984055874836560291192400695371364422306283639302788570920492447641808570491860066553243580622343073364450472288583507166362957806853810016607343321011676700375984562758147519601916817058717331830680246681241818955978837334115100907277606006005486837953250457358590451423978092011452985522352195783021832270130769594248016091242535805063714004196085527672788435515604335282492976263897880223378732288814076035666948616297054444686605740212641499875023930650084432677682332199582052551501315245603100184124279508627384504460600901577187231608940111103904121596112435936733005006861812861638238255106858046827814186303570029686780887026226317170160694609929536087276493145120379747681671691420871830372558456341589777222902263898838065134642494620695563223323295607076474955714361482684932297588893807223343079655449257133549785562215126541672458546320628872915508361105010821691710770159455349063012636514461221556758038039503392365925773912850630377224420458861007031875501538342327967533495080285827443814641943743435307574390162306425552479662860429178945908164450445138652833191443795070843842103356104494847256254676104574978998300520185520158823267866510882255567901600312074689082127208180662114848516733117575545383761324887028109586178444888278892249664043787429867915119033677831672189665509945431493313112620026593368429798526247032805437331195563396801910956914815644040048967186832490156070507053442277768713584691884231641279831583083924413337944670209116856415702408741586808148355093123648078548934803460612256116302042159664592754982797818884642356950539663350010624460894778677246022916327469626552068674711383500881812367748180254947015437243480486860978540626389670154068407360033859069575250509188243070772217966050221034017747905788331645552766837349423807741929343213614260213960809750129783906838130381976100249645035199522103578534531143380633740412446959573135217011039361488818139899198318511892404986254667880016932118149267153544436541742245473878857503099505370322690466199696360434844585023570638697851813105246937912643316231828735077013627633420814106573974982326420304766392701675301996766317155620582254523656648000232997075570721898674046465455588660080718838194921996299187192460324855610265627481604270149131935469818143797361798285565909401553486846679370221981344942927254391852354112140125604600941418747595519306716373900190844742353114703823325705086576871886394438225889640973789105946078962401735331055288248716180972825704748310051276613366982637532005644114511036061280816719598235925477619837832601393294315075580471706115630167791031384932245637046729207597499664922904495585329273527214621261353843735160428327758394183003706484784335317143108472828512862528303544176911428196383373737911119607416381021751770334863340182611012547517212294413854721865201752148803045370853367585779566914433933239008090627261686007704829187896733454874297874659962291286014851590625300261010651999198814507683768222117530847643087366026216551454619381335494032872352285542630392476792358190128839014577045618570333302338145065324898610418645661816485253958192453962626999930918835262525445275504871724615935500938952130262646869038634479282619649325358776180048593217318111144072238575357021297376977619006703724928587735640406380326949640068137489819628348134766096986168566370634369529335216826315470793037115900843455993390818108351102139768388747626190158279023728216892240540671154530755397242173642362175757499658599281843599849125432106710984525140954040968679231669774479397085305387207386736669595925462731005982950181552087304569775019837405464474134828716278095102638817813943644902492630680328392632491081531636913636820001597456409571950488588295859996742768299496106336245246586630804707321131651424443566850171944181196990030713740220466394524264367528726027437071303188877777588976336460765190525169528063003077477227653132744310457009355098893895018498350764344292840632280792644665027526247864189053374826972697059942634052129344666683720303350810977665691652960506676426683135054953038043101985922836622479033985510369218371231440912985634896528714433044130581856318578871552358898611196901130475772890029880649333267574039160222942246194182977405568777342516089842439002784483871636389718637375187631713992804141055863401825844788667734278858679588993253123154958691712351292796350266185801368523636668321046628262684235543327768584861805856941686267402770826571826267642167246236107751588416695434142306238108473869200253959368263899140775683030840651113884823637853592195201653077358711948950145659299612028668247094945648738995069324573277839112782290669927734811905003824321159737205512684852588912736400487241643091592377123254562779528828558071968708547041047643096018715684739632362397827230401017137270770233759528382700158065509980578897040238925464873225151175343278149204884127774411136733544504260424194014948670066017298758031586105676790587674128967974938136532387230238732694069693111064672889446414109201226118223629950168714205507074088939429739155329261453608162068657512779408523606712012398427649851043783024271720286065341355836545858939391751492797368903449404938046351220018358908422500052589265085796815545857028350028398988966770756281832956034375448109433475614735498655635784300389505059883351485066899940961308967055917566076092975425982912045840523060886285746860240650823468814254059283441005749581810671957674094232281926201729348542273207715386477791602295617782421401488346384226632075934915148958459261264922343369356882808961958452480012238116680967396105864609844574122401060081009167370660703056814068156132521587842429784451579971755556429718683336528348725537319067850673374295806017132123136949621676964864226078605987617810063660328958306804959892154154907515248876941721440199176068523213074569303635809179459764099895827089229895777905489834994057661061307024857121953331656106608409362222447891824494122838718904503068712410939782896470586072380141850655777164966700296210251445796793329939383949304793553134299548760001688484147971344805690312940476223488267686158231756384999673496701596436349460110926155404103257266517221272867090264665778438310234068501858048209340061973584580241848263707540192524491752658594530727468477581562524390469122724845568492638600119269198646948930104437572857717989238953048356859708108437453969332865129853961488648787471224116655783931779383567173726999380401571874981370632888022271303238064864505734199376092227446134581673920732403269854685115318267675459324669344683589934416820100625286740380501277680355462039172921881426368935583852465073287027256427634527709126584706538378126978473761163113616837066029947540430127324977904644886792292038809328572949852281863256375921713992342863988470474699484102237812009128891342105840494880028139792259061629922721842725884785564798481182323766023830655910338778811264996277193787152355443416879033613460223548182903591155489257432082194789883745487074859417113951201717872143271017090802030071613536265361423660888070021191155620922769134594685351744299567075499778795903230808959555284528589855450244476098653040191928803703121964992077186226392336896381069612280151536238289874093295048604677442222162590466462617181156586667677065407060721315112696935363985545704875294362852579107232653638468246141558836082083500610789988030356460848290485178049192123778299216026298191703259417236499449679230105538743550873332246054264821221960573555481726746166944954824954411994416129145714140246580616900019960746956970350756520278357393360197985338767916516923764885958353847168106155099385285921195922826246246736498509584362728101622910004310940195775756225760150522930249027437403597607549077023782277758675002179801384420998040860373662606715881591775540395092679250358737150234769651956897712207635448660732001645698259782545432585256949703090918762865069097469377412526856818002112143768318703307226650821043072819090512540878471288227702438805743358755287087794603017437577057873514907977255945639500872924610275344390209091329205147872801103525343435399218677620515340702853280288111691317603595723371143857007012787679105310762057275575572291800772684385426320354174638780664981117590725065246085972804815009488089865244662706909127603766813415242412367522866872612910554550727266386644241061620544048355276496703903991153525805235176269924573322095761759706432758229161781825274652354581312276139352406251910524756583503021097977535245015557550974293694604031615249332730050994347025550869251622125005890262498068929612635540124236204726820022534485335711089009544777855681527070909663626432191488272483422698274769316371122820057187234353255939211013662913170302682486581020483131442997738868330374983095363729354631197733832171863788112118522683656425831006659472013618846871334841169623941080518790156443553353657929718230105119439625861071228616130343880104259953211593707186199304102061111492999692975765628046656466550873590289333032960796502279669928258803087957436034732790047926443364505390220456179561959513094753109871379940168921874152697881473492053190886940263188229315525073206127567095696430604771767072789304479199746960615645385586283878612736084478800183314863426404972547045758769414856398926890105039104769723738925232772622897151468579168994707111072365471026826387705272382049961005562741380042435455073603085011214045981691863813185017670466263041759319510222599413651701137343967447807562783993501340527251227153054058557798720208583589704648448359790759488099327958916459439041560910956345762876458708487843776553792763333433091293638619169441715654559882964582379305833914368253090777821949827609646701726606729598072733471913674901511787435678528407343086231737760859872234837156983989679836365056319679420258313383174321993785103222639620279690625919632487660510458738993097803733512424446009613456354824829674982410972611136871945801729886615341402279880104317642066569907071857445012605628054524547771770225168778096654187750503152926781557239213906894613069841961839437179263638141469975543149383312953300609052802386160812620550181589279907561322025584211347980934749406499836451397900025529026878936241585359016181380843816985683045746651998547537790904033716350453077663351389082719278024374356274434481125620830097271616005924771511129425727263365424014349363207894777430953055066801378405793497440138780430227833631726735684046592040165365529441497696076616850291015403121218816481935963539697925135204294295828953363794173065405141027457618420431655958067974017696458084980719161522106981455981765759265796414265197836121899840766440348703256592083638100615893056603844116891825180100417811169988799093813572414744003780988430483558408410558887553800586331969738045301552953605732495182171537206931806922229805730691845025498843230010194028385462558884667846979792481591764857773864141106351392957146515695606775090494238017244410805362170865637512363942966482317315374293744257433487241666139329106239663933266743094644538051576378689201683297532153357657770274457899482336452844107257524905899115062688337794264605128994108912489007100511368916008498688219311095726194855970317115717796714327115494292121046364790826905406561817420437064882440647107829023748186201591649151966681364886321000571909248948368567702272947500579947243368882066040437105518546224900384419788569154260742027077990529562876157792047250654162025146542790777441070715128948637068078487235335051534748088947092725667853536175406963657028287823292026788969610592142677900135870163444474877417655644790178038367782229840242618618920119520943276168774941259669914571352023035462995499351658946857480840020833003540301886025339294138233316303719220218232950827415054459082264606148916493104444412864449216914487502511554297984782086901753678144640762763129244370524584642320906928003700263276619713435565793222642259155133032520888869638488020686414256989778121883946147097605064316454927407606476054962948632533367717335257096612343416754084066784365787919294032117742001702394756080836118562330583565136185793489162741629168398145938728824885849205960543358629547063284545322208860321878911886024033391986807696588332165199412809041255169959888260175737379204519729660435108459135163366736057959744015168480426631657629972519688208940730133034923322652125327965274061083754674577496579769248900130218287574278864366245205389569022209096697209356218720633429572784761229901580375370555763621867616294794021156617098956595719405941708919613812495141501429856707200536714275731954895557841096323015785931694636906630142416800790253641197272529933668430343269749775757503385072921889470223804539188452595395881299649606672557087903047600362106165796319897221486405462728261651473416506971633931268683874288742767705437625956739535085117490673034010002023041164521935280451909697385637022946384885483747090079174486223182755128232987123204284359692051890661663017298401460677846061257904120873225666939606147972353700217383088878024071299514668329886928761796365767612039724121314515586023061503630640362846523228264569007812515909085041218679953880681202820364883779628375642626038984745693534702425284978008665864311438272356717035808919185783083682561164575261571350390186419028231188342064862739423529115592361262837296311022650183870990752497083667863908071089282954373269955239409335513068887853618504626069274306735601131570450655821309600638799855608340525101535794340822366702431096676821235394870093267688007593364594537303421075027242343646207689853965236849895653847142468287606440678673946626884535981515803115270681026453161963112266139703400991694031352122466798406812815020482662816348757654869384848787869507520483935368325762634427685506877135768079824407611561775233199640589280672563516648312356322244318949233831067905234528228540577242191493271130157579928267403736563372589854303998342189403871002650140672227529162821008309660993605240221055407173648428034762046092893021523347590418784316887338551234517083851307424097020039720296287261661959151637632622362345674569554531459424148532301813329883995987416151654647450728337915519400497363781606886137605826427296001801353966847780265398815757009925672565409145403922517848939211971677680749385931304574664343791687654036729291817041485467675978496023153160511815346900044103339894310987706403370716758110248274653302445824837207583073366513797122841263407535293392256645093906579072901405622149613713684398657636910969289333495784155707477395938721204483904692505039453738134208223244475425292312904926115986605386849525664029635842700223436387875970969473574886005527039429502307846192739026275570687940605088525520183243054259279720652670913463445488279913253382096197953093573253295324944307666844833658412965734561021964805009261134307384575250315847943020558307483565146252608903471122141408094575295206505331061936152206306056148364727619699619094318876963785125995479571621533212617687820922870893439712699039465989095627863074358192019863172657369052800376169679762418377303320190244931310964812813280340251152837981585219735658670234799460215910834862221013381197390644588157109907182572136953147962202208570336708207363661783733486816268786329189409246841338106993288266580995652867924680822416990653019272066533397748658312401838717936933144975675150325448575554294350431569837589135929392456085174389560469570013672968608494975687048915488551973729798354729466193903375035230531331039799330951106612544572222526033135539060965175820404942617840976700972495720143540233602779076752454670370540297018350116477703912927686673623384437522471667264242445554664155553394342534399644637761767850283233611473222440131604690366619801895647288909269903550159793499191728090811189268858375610060157886633855878780328044105747030430149557201366757187017730942079301646798379781637382615593354084629634009266196402949974117042004831280042654643102054688069349316995246889984752987259928951452994747765046537997217462599547179654639481321339513727144680273372173281434409087202994455114484962322682922797060593040713053662599038434357909133130894399421427192429052595742337956445069426910992781274526219191007883843479431678761424825817992171978646757344315598440226130170569606267031460711737745150296261268864549110003905109893871273467723202289100690691077859287612515892552946248243314908079000425278220638517186218136352048817620044757595121395066801578810823358241354095755983228081633851893739295077761956284256092615056573957151182254510018305126707777492088081396814703755425131392746771303975450343308142944151595061767979654861201089332125890383041604426516857739070372138712835861295250304959025142932783778829360931299401563218029652317544185445540529007919108292515825120107562647671172878193509276564139641232392478702444347026818247680679016487432303662245129457331972204088835070381453652846355360123916289300844097307999372997770648602002010025562960609227729756144779133443658425262582312091782208390813209285629105154245743520640507569781307570059484108182789792338639994306636562489960055633641969666285914639796066648205111263445991565324202520132934647014518708923292911732540404835525468946501589260995893739111554584199288934556420800848732525859039638107127558638866684674159085692106063783185823289899203938957408942140005173704693550749929594833723242822883073233854083522464947045113557756627840395691533119000159890887933780070280767377318271401366195407103633181328365952938913299256310404811516859291821136400803551377806256158469455918136456998155619676683284567435493360620047128887581234451717673064363739913737454383448565999071965869720179255150987291604018313671059878695755869966177240207577776882442498015758005609329274177939305523313179522063988435330628785937941807639282758605985713745547410512959843435701891232475206192900131659891126368323921192434994150254913038792899156433099304521896032348595290993293886299051394719576887872307503898889972234734414692996072796496452357614618635432901717632754817406522303826173924320117889689037846759353634602046675383371307566861571082949203836280390632502409915853420128460333105930782554116345883660892686587558232410414954305811817880991173187086563068195071135629310373086883101474761897634486200074462365557555075253926671582260133240100023170331898953924882883284453340616915663641620012064614166480818677017625168373815575328359219938157637553763263220167450945003295334910890987939112787274638725321414498096827594364399493811492341054319003693422802228491636083574340271176937236703811540022273746401633003417878376968591150072226168636748678955669380988138854757710128833074244485874831543630748245805724641944079739264566205234710402311178643047425231367184120316709834341826575411388172668964174985642154971973662649751724867097773542786850883649807647394197417288879446464265736314267767260839724922686528470966784198146238739053612373547201259543723935680491379845735375214434617824213324409750268267695014125589966361527624343938255684781460793250916739835618150050522587128349651415031468658127991115917856206554113338294363363732550744995714588824840239830023636538016462997996314195709147993212367052158605470281223649712170569185124634612617037131591524875805713386233092924922675326387758451468391895952708202858394911974317579097808087353380819825050564719620318110038052745369543188174139742838594458213661071078228423598042896990323120414590907500901061960352008888991978698698636930796040716388955343235594592730061492991175287384459295848493368359723460184762936529884996324108750858822142439953942990557214037071770740811435744187666048151481511049128542286250973614222774225749216855507539636521775282066035527460356600999421547636592300152320888142608299435388870320799694257206098571104719312893352887665897354295321686625490652443920183147736016214533666511053198213269243039276817653442481041397872245015749171630467794360142476261102315545879211806872346879546528300235196774339083785589470547443568729528520989459268507309150471951627500991502993163003708725088061188420805407506449053843916909960923490345317532944534276059124164489022996438539260987155843234846114779288861950747406506137088371540992152778945809716989535521988053894208323721912537847353123022794363319779207856524845401762126144776507756776453479481012980906698317493014450369851823329702496140916849023301353795214362134480930018149324952119676014834073591205630605280700107431488553926978705041611259583959010813299269585496175435285198082380264208691740328577342707365575071638674956115927732315220149183089588793462060208626863277593365510457798116064111618400326325074120463642920968078185721144348955616948921104980332514825097716530660185989268684226999028131748714800413599814486222553628020347122430157649447226929281514852094302116878094370952403069525125856826015464784088429576308763237046834449209942842085204179320887187570798302197226295987818436376114561691108774622545388572610606648294151525012732224172765855878253976809031519936260236312027619940171206403297697734605846021927100311740947528309260649349602004429420248612626890690850408853931308099729453427746925053948354807005719426091397239960143279387356916615619001705730993039789288629382279575622466753428900808403742948594949184894223610630577905046001617879063053287651274078623929240351652834175781710442484712836823470118082466209468894331425855767624243251591380703743064780750363305241448838282134016264838135344615591647075571482060088938682940749349396387279353172388303484605834838925522725979841621261859076421858153651034363371883236849789689390349090061631658972738949152601713674333976191642614664045579939778916474736013333268896038251576612960990626162394663166121727568595842708167582630750099395226380616856874063218692094036867420522511986126199881033585967852195524427829644496447741362225503293468349421597791102320193800453353292835833854219400418717473067417493549015420337985528331913518553143694344718661273081337956598567642850356263119891234169220297372390343547835497706694061779331318033258175452334400312859601020923396519893515648774415434948647903807696315557985134009108243928421188137322741177233437861698005290991187059548835085567142810817382880572090679046247864847032171869638546204284351522257985411904086785797260379889486700617705684509064505896122210486282820663920538831051356908088389993680850798984905323736645856798504065582946816923402724795567732947574393859845199871534154286836099026441333123046889280692869050262869626157580660563347932176078976369119708699001734832586993068674051867825847120101387540295597379486197578235989636734893217839832596915212860220423980295891152638685613514746405557595807798939421901633316443037949621104326175188515620541245397866085922507747421909398283902115153443589206987501790236288860179522703002268784357610681824194180295138554358643145265726672649149561367311241251540709527447105023288951568229491977138382215300963369124431492353523688735781814147414942168529188605719213952245533794500785457880271403785711045583189228399728739812730255699290103593679564796466322522437320061269603733020867251158652459461474183272303950081632157850616186171724249808661108359679809990475946911709117052145198310104280035192009015538444207536477960890615273090093379208522429525340476837674197540203951855305154565179801024155587030932266558554392873062449374287873111281564377172747158273747683175332393107935237578594796314042509028452939221806376140396898205707928975736542979432506674151246195339568285427601012832924996856214946131019660155372363151805025412326524553238377771806876527137179863137187808744501055365257846375022756672909431374526955103668316601780847191546195411318144288874105611267863756631483373259654539706877748321386450500401377660980024405322865338908405829367869692308009890257102350160213934405198388566751006850106852035875514696682564265808862953987962971819371943400275281023478214609004353491309303442784088729189986239724943559200225845433522384764300615591634933775816711608880642177575576304936687791192633557224669043413494084506411420345206250408548026254382621920089622974706930187508922323278413846811456493814224910804244380727891916288976984194364817599500959716631038205216611660114200333110419226442377513065783611809590126290119656318008487629283722626338000575844654283236803008699991917034341710046072177706614031715783868462487901683914632197046150626444314977625419931341842121835451615311447427081693900612447932548538522239240439790348619737079650846007637603772377988767367253121273593271632932681395819059472910156452466758018415509596278781527010969543447376320483394760191918269391142411318232022543415806074043886417037870657952179115735021223322698408966092084348860820984955365879123529649790141767653367522350861936797314145862527422628936624450152098673092914880984037716016613085757757057680132861129565466975822286806375660646505319835288476046760875730316784972568033978440653962678940375379729405507290729158106311843000786940886017464513807571915932977369202034067420979986047127805591854332901294427858436308296176150067208763500828320917394575492757858387914964056837433435404523120302054124324985233663931069721645120658668700747509456642975325976720946079821867981454159431104015218969412277057315446151570380217683814124802067276154873547765625433615161647057497072772177307996913660687597788375019495033196318357363522435914656218160594229522230407552828255520390612169564339827681493390202308846666200148559517979150188962441483004288083284616535502731404323519917037009922532545960334663248024836164359628686435141784066754548736694135421707772321980043405892352782488889761672685783470058048841272791171065981890322232570933269858191291421189379635307409534663886449421540177352909803731889718303105136366994953244544852588074376403210409226599262129570417569423508976254819549947140540401225322642274543524748916553977948060916414712959086397838390341602751760636271703426552807707278730541412300253244805385324241327122623129428932964045390800812097529508709163241404998479418045723636328684315588396099016717768661225319100391335178025385320426556856801218492315753738724478590690895557107772321516992603538129152157197686033797713514999664644820589552574242598602860119556084219659428334956076718370909162361465046613935738725207792488412638162610139238238198635563760671546367032960814348236097091284250172141444028122126955650123110005384446354415626735359014148428627187718230266860426577372774191123800822264320235130081318022357875158279696440662814031433512107091067627091295098146305953212718363713702396763924286538139087111738885615361944087010136459363892071210998687144212401376367477901006584511739945221812696656848419054376635609850730586385535080595768853069002650812933188294385642109956200803698472736257859246610063863710888475186696952602952739603156988955093192405658131466550033312299582606651496648821741752530034134657933941587658308656900359019925635092165525069540096357367574289041744421842763974815388232404969734328587331952768989018861766106811039627674347715103129115170098880042331714162389019982518555778418005586735454808872384585367171011729214297309294533774304457759503155484729671987880436390970640613772794395754583994531699252956343820348057728490238621385978821577024526585643177169783551042909991285011602117587597258481208552874226192810459444555650062226325648857796325346983540006625752059483379507039546257629772633599801551867504883764882000477480918469160261700071235346422001171299589624329175861888859337344029504296815545326421437587319199285222473779182079609506695933149996657113821681574611052401473481824963539363452489013650826852460428743259699150361103607098846866750799115825252446289873574696915747058427364997595074544344151578583675256667153070830367718475356332281258138624039384364632910765309265156582179670064015079419477365283003004393200766317879615290960506343954222593336878417987211874375530796017446190511246582928578636725052710550508663593577346128507489950526140876880555040141382722078372060329627938499655413894773626836839957851642252200801857194939232543325701740711713793729938672293953189641649382939114002364037906273622625354348051866540294401829879848502611567836677849130023312214821427067784049276625080654981338969259684698253157743816599111668418037574584772468811800754647246719270369541742193778423948486171821671223829731423598940317110250027449229135787580346514424620059089309536211867694813164221988342442966506730762680628997903139555908858518552760335222552405134330480873288532452839663279286779742147399080825524752658553151152165584136976932636070535225502831580313826768889745804178620929776438393067874750982665451524750190246955355531213239947491951114951041498303975091170590680914486450296929521523960032789767895325595839976572785932116818065452403381368539904486259188024660515713288848483366142068566133361538086761139112472162458412686092049874615957576291846187303189376605954779131673490541382818074894437293553650133357912410243447824972277069661679642531701471293828410823934530443435621185622498665902399682981925724143087910781030448042850939494247987046790047395370148621051814866935396410352293923662245792495474446715812334921709621455056065621741931756203890273152917956730636879986038716753953330098807930392255025905781387013907398239667242821987367498276352892468140680338125827444267369766677080334193922280823005363406045069826301824803372228096940438362883115205171581429933474973352611986230671667652599870191086650923829632836169599699175351336629957744619109494371372149348488392878349816406549972073499653921875481426063422143462800360968496453226375176906327538798360824350916457433685406362361688903119791237258310602642089918786470597532535253655586066170057038137738734695284124079481955032488287856784023183536604943492142231110268596631178234781856536006467795895271983447070003497622875480391937069047738618984638489651237412664600351682736536316099149260446094157077769523734555787327656990468176210952665443131773058340901660918525180574299835877684295397134010103626571280103214339138180409529109112709655417716901637657470907582064944176928285078787063033026894734148451277341198647583991915482903749457270721431828326182283335780119025146393172131749827945315177354120199865221514942156645709139751508056287311322331831412828486148294963975023242717491115051713348142246545268002062393658918423279015411075160156355113304369616271362913912885962302756546358317989650229917892841895771211881018614944154702549324859118905877642096417731512287130981227084080713029640503343675255391949385855895622772913794215281996911388686757657975289848201818333821763233228760408021291404084332492563572929772842764478372680674475393484920978805712972219823218485737230419058631376846246704214836262864187892405868025614061720393447650269828433984383612586891454628057656860926290463032352332178612947901979093526437281741783259121423145402253993436352672682888428547858953552356523462999055993042841784596737989727338714406757054044211354193903443594259454926007264227234392268892692523582527566478353928847216614353548458631784213583279683920457843320358562182207258700920021545750023633630508574293171556418348663820851481363134469390410474712570520707320269537648654069339630216389262618937354883372762358240551853728990630318239756610409054827028158159569551405619071693913009878051960369019969961564150875429673671584013064006158238878459300189170817519165646572203365273669058381848479017326587735122104637583425748009521280402561153356866463336216757689202794962304580571349586517611096065238171779923890175619925191447835403476059776775531619356209916624305033142997646758079530425889602993147625358894297101346005267455241369825781839367676904860697705971405471635345807796359329521028629230394944359472854761347963339758569375556270601720629949238215685035158114441153604256044022651852855291422704679190155441648389905471178866811727251138307637227935566278218936274493176300511613023387401555413765804812749006014098941769411322948342450252828114057223719746853184212278593334316533068757431933771314557035052347054492092321784283245529201489531739845962175004715044995237970187928032809787848822337073093538239975815203652832586751719113810954398453395889908723402318209276869792786447862323846882138947036738284966576153176069482435679414549660932582884106969930178509963675072100400531099760236638413458496746882469561630620140084413646297218182629392210726286071225261180504712920867518322883387056138756871531100446276131983189705631854228197935282656427392787322275870087794274425119814118332203060945585479730587430222584093576636872524235902363595377358957518317002209785755942042558637262640688177978836416009001438886477094327497503825975871446893263415667851937172536387652739614226420882729889688824966101673450127566553370009305747882580141684899269319943025327289421120565087001737762492475112950753034311089795214523564939252940354482994056384420174232400823035805381828171659075764958449126968024177035413087471985985177644714958417487265578997223081225843366956342334168204786747545353234218015467968289118183912204097973031767874236086732041432841512038818944633138664482060060916210355477480069394591405267903954365823663870276950616253503784302264694280968752218167631821153101660761250562870709040330007799119514044713352148290232141074908792257795885971607196599256747642523971427003442071312625909316991349107984712502154768638152420472936642257385856600568715338114969666489988213859081640036113224378775613369627071764136684231895301111313767703730872053125633655034381204756728267488047185983157918956151271566447556979758566591670751768970610586746632388123969708368079680210391947729233341144369315872039793747937772337426646061771048058258364596880222509768107364389284586080380181675439298760132509814970453990795308772926403905722711123801012135896456020525896466481731912532762940840391724032497882761521894488722792960143485159144882109240643926223055119589825803962664549700628990024871895381483095488044335023525997965108459751449781079178549691868265769428667116880643763687797109071416048340092172125249928919960406514834910629646684577114736217448552007830530175064877063115621245892420573223275775787322776374134315389961357332201553520308009182183614209512148062844817168781132276145994367669896889344494432529616903368497959377555932690338665159309315507699142783880096436139681938748840359884882719711491707276471617806470456159813956267087331619806983605689162954909043608911329024597403799592997859311578640398899927457761874308342890597420042475991125829724680364107175159575165783213721942726072523921969228884600287913710701471119929515295685198112280788464240631158860278173073605485627466011756236314631666256957353149443852283832568186171446103657509272211322853088801727758384182075819715775327820765501932598697440482748823135734614617058370300887640388561356648220493656458690935803459330221804193955717866097622220111789578019930168662139297005049559732364228484068623307279836359243851350641347606848317311050963900253084144436360521636530656206109590087333243321014696994032684241342892702925888686930817455638572641736357769101984897881294034788475123119089293001551604798120628669339443107299979509596360113982347547530106213913708304884025723520027236786914573250017122228670747533725589125348727515834246000802755959194767851176080557686606595989379855511950898868566716037406455437942934050122208199122404685555800987462688819633717879051444477256893006231286095091192245486461682518272229743243145998613574192640347485922776139887730961497272227983271031757943597484393114321305488048212914155502065162428885427058693267791352985971127157685603248469250132996692385866422093366922981620778916982240965875589744445035323910318856114637986156171171537209831584497168194129418218915732067508663166438072127768464339725960537543011457487713177046544405857581557604628902041104746385967148543841452700531631978666474315632917435813733430284360194912208275989100715808975268559925951223033073251439507807537142893528004346797699933677795231746074603842777280243140319523601342959472733872894970009259452485033710549944834778852905574029675180239173726826351843838520158437045283000051258727843441970911403726404140892355636178290423299370381535060211719440682098189271883390607892140784386212095099268780026421121087375629766201538669531986232312816731948541295854267884603697345293848490158232602545592204335597565084999212610326379754274307320240736747458735803351240055728212708357111670337072209391469602653080843540395080932247891840377364232158656161362293675642660440508702637328269943123087612444457910692201030737279266445143660444773745548325876623440543045426423619233955586594754752750416916447849349761278441959194733581688537144320627946903042207486658295279599971439619274956298834579265967659133287408326447210584416550723387154394320667788613067412867614024201798679525225482009844578994764086224684678346895105417816475223519841177018849094976975241112413360697906475369691488871286520792316053074419758890292994982066575745409951529456403820222476159775688753915063795015082124444173933887779751952694079723263151143703091544872591298186240772471489207203790605656975074695479596295750773213866847269626873422946293877214484469895932256096440360593366109165345545188298373678146719776289588843601731112981211995781784229113952354002782758306420542380890700387019672414133660916236665498947075093532352799369514308765193455392254876652945282056487774621686980089811817651027689511458842543583779539658843273576423360087508138120979534348212707627887708631862785667092745023815887679496087981698497661921907950686758475718499476717666513685757861412595773840366748010517470901830984503730433222372565208482991010338713795848876094369712078847593375197090085029185534953399209395432527547610308484417795152841591942716942559113290846217646527338589392401459998033667502896320874548600282307721779207289048913863443342702731686404495531551062880376142906804937230053838699985395288382727324014129848538255564662655842290004778359057416329620425592835161823106831235522655726212677836684619044867079011396613243143006398088176206407796484171982115776573405694931075002791827543205811167496087290118144508177010298689223040395102489331888616278036295076108899296589535897990911377855784403446349179416599629025570229028916993560616853617687620683984569947704730815319901951734486224112071896135307722115879298683357442974342636623388375830777512857913107751110133036998382794632239111599150022242661034012027473354594071881325518250318227493199236562366737394087098398000376249071180076124756988854940199379568939888540086423921673211513032451798751912918272649953374158138204735163111188669312596401365550972840058446818606984701269824504356637974957924867451499686736541198083710958834714457370220885751208348825049984243847362802541429736991792618239658052375242382748511871422294201378822600332317222900764664257615337540256841867181512637308347610509167005716640063254344607497162848557337277892007042191639491351892080799392613835655125100188339184511135211891188491294404353809322062481833222931815628454370744817372700494938528339297942580780513290397671032708412079300411395299911211813328966948857620605298544790297111413739089224916271834256022851760231151189126086341729040788832002406673655652251043539761721603359838259176203713586528115354220878406697349711930561104682508712146320122928464203014152940448441019494326960442636803753253991166947495823922080087255211560654908052461534709955761640394677501815442461248030778994611427670933551356576593088598435896253725203244898522165675575598496936629675388901236101823585347177769170640415937620116124698348926071023283668688930299641987128471036651560649131663863319893110853113455298460334764315560888795222737450388561179526047882320182066292487753657935398068902193239742987276183324739841202520481379090934057174323611062481826541907759114335084298868581918834407907494030841066172999258899960121873768638731360399425354644437693482160535568844122204632498268311867001574274740709121280839770519884036515661444643927667051300476178416866743104770769537588413769828229221877647098764289960572090699242426704301139602872842734454346121577667041954071886478227623505468802119790451379256290153765011282296419934553085084649508119547683136262395555964123013105473746671152756866445745527179826792758877479317222173603412991974451095295178792730003073442201839562569167269841471451813009797505718467772345096091478183295105948479968744182696323155934257999287144029443953823758898657219007185561121741231848546891546001144900111465555577763333486667657294668316244517385987284760410077340065895849432489224333570105416988335817424686552316994645268586007117062024458455806573275275984111833231954946365572725632692327346052240407732887361080771034791305387972106957032470284330395940431721594943023220575270299224544533462842836541863408588071523426576280295311095194908622406191324246263528676657190459729505337733610554291650905478902402329874374924894933918198750000157872702691208992814082004354033456790529275746326217283211316742109266361158463079686279599120637775158457079200944241903558092558057119928004302470492693947553941728478648061203430501190707621376632606339427045168835150290008590828333966333549174264746432870260044822715477039825427567757026306032053979821761959956405032889285231265699169721846066430442595636444172880772781308170977581273352564633628564024113908238623421284580242780653043127019319610325972233356871472715609095929699528681752464966658879901010381241691594758855540502100681086792419587320171689007828429490216282495001025877116473773688926016936845374351411993919544070091663513430874821831472142617040691908603268264195265058868584202183662920636763581575633498730030106099777854201568422659015874708612813823530583376731046140815796296081163423097514269243865869725055346735304477503859900642460803203971108490726165366842518334183983921935455548461426628921797167170048383990848055381731781395707311697905116350372236196363506071828272480705886399794500821693595801022787311249771219789097807120532082384820523362134916724833839643642613672120445259427075632204941620303598079794648625670741111364793932769608473204642398688775874244209156164156182413460219300746424977437481813984135500459135157870333684790895865781362723635621724512488919753836216847294487668780256338877836447209467345058256673290123667472265898968005627076729762033797989759129946221037982600278171942273010180784713780937284646743444294275636545121948375142610390163716763627554776206555702424270382996116813883548554079785069077101957175243432529219097013369986352798801640132489080478393728372035797459248275760813960129952506651173151972299953851255601555006003863990378076568446931396040099620322660845426690528346937467199998522768457287915755716321693505334257169205103224268669199220124260289370322915540919124925309317353201945593785064163292656709657838034958264696426995308901647709085301966247020483612785287052268059717978875586641077081151394569446847210505086444076580429001326634065852585825453061013178900840392637039109177266008110836753959013147589979274401523448661934428002980150317616813139379581273528746090470030153092972409745493259776761330150854712859678765465226894971552394164378855084895850362388098404283495688643397203096813953296024029583030846906876119872652326380096179754267794469526259647640676216144650233360846897415818984782177911149199270339523654204464273548348757224543618149084957829973010458712392339605920928990470447801609206622522066947981306427112210155607859732658197497034397198431253267043764042796774843826867113127541113201109738079963492894185540481734955450159651586125705075177571093074202279237215916790204074768518972190357712728618411020252324523856906944445774185947217828751118530658669566169657436631586614511697152666884726687287861390039195089727108068926274501586846379774097809774365103766069075085772585934115735028334431640634162095715751566012954005449037833064582273894643903027977412451168484818228914791382362508613527110632708041560901805846591147741207405684012778658011714753906938807564774805189711048058177986094955382044923979193940621076474805148114533389034140764272547602993383319622109966351437102786727844580331672981705083852621064556698177344777643672698820302965121530747711456740742554409432914937635570882551853578403282111606242556301768940334973732001880096354673345709358286384642669927035339317092553160798379248842825653966015536957691388602220313981482944392441992252031944819542614690995637688351903690160496506870455226992644100298618068273908877539347799247311244447360707104978712113931149171293187644021218295929994479244092136725241087038824932181020664364351949906457454476206599231704277064412220229584642913634740060334642508782782171885061935484135084317438711311504969084958511512147518631927147672434485327982611469716169048087544163683812223702704275046218349584270144656235521629465743027090106623695434584239209103458649186450587742624350987737388366743378662662460689042491726526183594397232109730465439295593118785529252457060754337321035468927696797159106845445149794335000027898999354942476193644628204067506456693001744634949396346719010035405726931388912565989084351269397616813449355639148572203456172548078201201461746391556230514914427836321079971676033737113556643544313909648887785266543643399467118712848115570504500983248003192083860799598194120351581431673189210856047639063289251680562587659635572044965762368175914402204908329128635534931642990657722945673600268693453865956194459197896660050842487832532912261224747251737453413726968627083519672310570723886468732726561288876711106204777017168105344843095351612981212394046497466571454018732201838330241938270692201419755654097240397686086589431061583130258167937526204707871605756577026220512661693817716736156271121097843876005373879963325275938422347851906368684194234199836833343329184163453731154561154896387751437107300514769771514420915792713665025602469071428198325854848644562135587344946000901007680542741599480731614826631140581352262898888917094700989384127961153734274648660597699493587367664061379201718398666354849281268104941219330005950285793671141100320736169057208877098493900211407312509421257688030518292318757218030878417586848124985261654431121763731314704558826618108347564789121396815366293599406609457485354416523022458680454792667725576565856199569805809919734900206392147373494445351347821741329066851933382253789590647499693649902975904792045706658117718008879881748947360821872978356421118297469384564202624290620574476259990204807193449093728716510594761717925562877084920552057563028417166929352691091542060086150233025889135966858492756360650591903988336131225482759284055006945857863448428968201422353687138212625392047820596878768667155194531852716368463027788729111679211060955790867996075799052658840017348608737696999428490259473214721578207626810225008535932450712348272314840428989187675254336771513619216037309860131795897622042307186655696006520828186885329790564746755939290600234946719322387721814953437596844094571087023027387527827963558600255124976092723284109335808875579402136825983581212201367825555522288080591914864413374265414359035165678125417888890886586732733212428868067534956093769198437649293427443595748541506038368948543830650226512122469890052827895039646343216026534132216692223396635807801507286032026310259804413773999966348607472569471771098942897191662853437555507338257557426242164321076270737916750965016995216594472636118182991320463568095798545375800570194661374276444157030619444225755923137120055125612796707202612444944826949476334012681622241910394266175882663234713257366773599553466529167808992518218815673778071081397619334409890114703566965501936395199560436477510676627903707106001867078348827172493509612762792856004099819751399111432052517017101423742258142106740046893342330177692875023170271910056035453640694370584602282932062802622863968577412180745552513035788629393518389271087473965202331269951273025282496516601318255215282460833938979439137654926835163094826377257625510885769272998618036393598814876774844557784771186965665614504840870108829632014397676244671968833945303460893863799288792572118996412976003865406257219038007309501305204954207446091494762733912948335086761757697690878096476560365826497533450286700273899259986135563834465140458111316689737041978788762268786032138179132671991250587664129678571033755384764065704048880493344364712253976791579975429464877350832829059889588932808620478519788653353330352785816131631738950360455802155231414962772985733557925612450295438848821352698396771742115069384079621294211944312142086025891463603453336246511784430086632752848711021428507350872061436723090868853672050250159247408827869727478095052297610425706930698590056455708672483539077635859512965756734939571331419380057192617845706619276731559661267992800336246553655299616043526378172646689610498042987022575726436385188761200362885765326784535736663568141052171208406516888800397081660886570219341176433310469336402002649943126806675274794571942192894124152422807381038556370651600405816905056465121393428949906164554161326083308939212915838336152570637173740449642236318350079948310418916873060317990214096065087443048119752667643754188996361374503120698573118550885661050956892213128747088697590847521151169264852540360314847870983543864311052838360410666253470722307148123837131925609130651727381460850050959399345840544983326010116010703738469184954359449030584403043054145303341232952913662870128503116692367408690481176845987519390925930944665549524921976147571194970184806873897276389382486964075211112207870301543214186966945161560838667430625727372622188771693622531825114343410913281681997410003130727223239523968032281244004601629011424319102929081262457240182483385272536849513729130880976203327216540579195153907838629097201711091684863128089230799529900951049155600881524590558733339524350803244725387991972122753687675955459224533527732677110644175881259005840921238401641758963194839919665825329257194987809046724525002163330055783035193950546126082491991450006381536889291267585163259418509275485648677505031533926933988717855168105484713778920960860497616261918447117826638144754228707228512234557118235800762150390249599754349859578573536675310997132615606236373832868061881802487742594093506483311084874310349028815694691064848977140997587606864436887185916559303494688195199466919483292013937264343842536118036795003069643827968089729074028676072256060963875447265553941304855428832478208821173002541009647719772118432862661017088763973227212537170737137714658251399800521607868466047916357316859972858995345668616009810542468521909641636451186529281660508324417612805935022941852872876752510961286101309740578222258853563996425589697844770457386761668092349037993852965948987111885098290158999384438144093462489279484014053531316405520983965447124548071349714480119616892927005032809610915125944417295706164680880371948329335152545872756771401681071038522182488183864226105194751588410286693844128883933514548179890540296837217279506295266573502381913865632937616364602505650090702262038998912147423002832766267004977912861065769460451391490591335316582999554343680893066438820804332614158986056983241967010746223937152736290419878656081372407407978765677242472649593159014289117879039321706968335973543159720428432485968926159527089130154064266854275059641649604608746401859218882707108839240328452535861900557752271579003449763033823882812513545587468618572123781471277498004704602481789598921996573461646978668749913048533132859668433311389336166273100314096114889352490634045718489419369617018273483151361900129760535960503501651256689700937336156532374311336457145716514219471690725891645478462225874474690389617377150650287844557848947401600953338429647016395297440484154407802756911909040240803645330936576654148337966823611169068007292218526593918503391623106863376595382774786304800902677398307984524786670418781600619422436054008072360862689022492927367379759599527254278117070145320432803181031960387676889213778500786343880582857488683664032303173795720773308850182900157316607675012820789934717130495261237102296852060624981130686403998307079009427379469422268246657526549816559905641808804123526416430162231491382888523461672465569418119893263818016835648892846137584977129963262578124643360942011704175439295173598057377256083916945924450374299726434793337475647870442728732002064577297581917254898274352798797487132063924677947614519827162877322909984110957425672991292788186871263563501622601957549854669401526691005812233155975783224165195027187749645005920914567129482880955509162220081634363725388181141552745129504867888027076960586104721055788707268352105768303521793056212842551562855958260936467689994690459786211121648760957994084173762581188759397416410610155858675485221700496541211285192475937366017185644857005365317862898689141711054574079591224119160700863062990548133315762560673650222962295527787406527306835137418208002157827402968660054153661306991671664947249614761067117084812527417735546331150883220158221463638095060009551766496178081274981614966579644648746989554230430268614224252450237629641242187080751049641599321850813486857221509547846970883774232837353164866234464960653404123688475785921105300016758731888908391712188363015199103418189314317911683684580527576641547861337424053378742062345524547045580781904511333287551352573249079671584990933531853327309727830608673368722707588809240571542117564257882586335945689483000126225433154798076064775405759644644156036992149718724683812881758159016539188189547053235787810548938214137305397409150187067479697882755331153990774015838041315644159998596355602596359933529006618130758827941046627056524013075374258398885511086359452266537325930940097261975103141232784604548311100892741405722381207674186413295617940450326060894987709721959613642234754153160167261155198838852554130679205421891201533783594787266100500638088897726096846331972381311019904945840938549078146475792028526719947887704035279776635038383366433674883953350642394032750102477052775508013125609451277022664129307378587113249902746670460251850828481500773157915277396331526597724786119590968081061432021571011269534512656223991855960259852516343614504720069961513716823300204389563132973419842086329559649416276435485643432865309197486906105904496797603949367064266135916909463489708762669328566310613386850977085590371368264587922450429842960674113914685906066621115435052201852551279550552907153741047191891966142362217549120937446460143555048382994132224319792604622311974852356133132661717804258207087065923073408639504669283446765962043278595226657326824725293986499959285446457380590498071777807863879600853107101657275681407347318272954694981969539115297171031789008179426793666918091061553643920707148729008875819241512221142792416927701191799154310610621883612135970658540230580921115250940648343777136106305238065211337323805090796467300863001732956319540165824054511530257147091916124705944031046866152902432090377211298353040440634883777694233745526964086100367383772921214126883486748590934743849595512260957293606198019333162461182584823563067565885934976557323409338387170917201144170095733103082365764112203989353725504852906443756721091221013511966942575784695116590902648429345776051482005841955064660322454042307458279950865936423685552555570110765530131470136283120745115631326473306624254529239633845745711530305934190949437850370719320660202396932988870056725088935826785341224014196497948751119519111450497403520020757769138322874059813738540597060655795575087131827033378012886938084580406320417242512942147903811708150734647548427917513596459195170874046130540296922784494462721948492006511397048232615407205394616905961553834592942545124076649225733470477489282898277083428476203448198560981453349199569273329399410910272684413488359261421663481949964192369984620132415763621724018242192059203204495951692727530105775791312177838218027859116925400077040793421799780787268792662272374247570573125564728804342867903041527096341137903351642863854015841023530203684242010217775258486485534580026802084299138519288881501480612511730722148268580634233288801461673071774241827075216013338711998986187493469526357626386610416853848085732531240994415818549352008394204907313632516629825521288575884463193542593526204692899434130659910357258821123588348227737792578975685685206955822232745754605880613873919039591939157602282541598186422588245145307018102818504609639553949939575712253572044323358653006897593368445564628431202507583259432909603164830586383646317762631422913440425501234346030371249925358349697157578552711054591578064987716675953383073382753705789727596641930774447041171383186070287182492779703772980339967710456466577933556469126478867403960819010110577578104140788705330337440689514757000347732980872466265077097394709892013193848680187322238201984645089588887320976078755106588005160404289988624286943791121395226035052098527938510136220036087874627529559579746695959554243075713897356520725359806948492211843227705366919781784523314701584489927646272317365805298860839262683761835017107467292384602579061139593946486085193048000604084321005638229819621489695437928554335185956865226951783011641616992407662511191437775324981670271629383585709641894401435609809170877332110337602803352600891460790833777657948020404463442173356308158963389820997956855043761111079632893133489326661856679613327560888837961902222523039165350295788394497785373115838849982246334589818872947758434778506762473669948892575554513368903396117463011316734706414251996715515205943772571023749820302553726241278133347063295298535311236188564602957056183591429411226066914373431566047975221078760512110003437286523719399811044739944003304277097506416861834283386012518202860475046582402400915353938205470623471294329572056806400308212091868281639308819134303952955454721090155615354891950067306468511921644638545689196296125858335641346831854234232828580057518518778933785825000122091634318727650861270689163256433812094905816274406349143851818281111446440937785970838723315057952298686612774371281090371784911417772870950918761026467706297603336522792641616671409446272787635847163456501918241728251259364139779853357666043326694863519034280105442937301305803084515707792792673854214697723651507934328533425910885683223906826303434575262986674098034432743803052025003444579589582381303347759699293927623884789164122846675269162985565863678429471115323145358769490993382853426391716721327448780421770913753726937204374442911367656085862159378728556166231272936740028110786789275899090860529844060469944205788435812377500425914104152920891528656133697351308522283814461372468278506419166497595510935312056897335199554939944596098001822581966578912824160072794675210966152230952300978678592196537647904450798748349169145412497580704691963586315693665835452356877213380602880506061217330132558733178316025434878321052231609394359561749455518483671624291863982492475808320638932178671653482041870087865359491027107931349887629009094273418995811647223942646365619080145984504805781039389433209272866392994085525026700706382565202894125560829015630036609360922250926322025550350167686336858103418802155254783877111643843525994256650133936521164882437137786856104143215199962601412557251841044586546371818264719045717187808053784634763571598501392790156050989393172903373024352289117216694630039608562758956140556242901392242978628606496267097072139610873746844775140206331458320532351384234599823378195745603734666122456484109418832139605105228022216837800244128513511186927326861886239167611190189427925805851340934177792620479412133538687027136458938053208699163735478767058142214862287570841744032246340313096220739586575075919833184694535079469505813494420466412381269944042693788192825490033595953070776534285779272377635803983067681788206783747167025806149199744367427601780516793872097622551671981837078646321371845185585237240241998774555832264875070470958011094305585716681832052451956455300220102147678385021159274657229699084681713262262425485175119760241947291470965044551465046360844380170014155592038055900727481521227854605728751705074344213962146552305042802278676794931613949297079323647487560318268325696955972259067594244438426915565301002901329689185305353475479750353440566988522230341397638668031233390274580500496287020789139800097570833755229130541010507827134817609829744917909914558783971193802308021270402707197937554921907220277097683769982149711063737707383420837695361799510793147369274841083159659158827141805512317169500664193946635940324117207868081564298805636432377125703863989054187034719794184434903133222902299745880881291235690861975132622643505061675144657347106179748585840007544881293883964914852766158741818824151957844063270692156212500546906670140261451191244234874203738007506535562574815529340139132417028892898225157618583398324381739788021736041500544779961196542409801319760003833699137621216446990075606441570845000439210730017145775489882575811946724185125865509264651477396224890497082069520861427015014048154755935599825060239536325427900836008080961474092301595465865699826799413625798231548152918519482380649458504861243957089054670229516987035836671830862344818742437241385590938491084645281581272306603098987657246077471167723385814584752594689579533195318908891920560201204164304235340848234582173153482398348138472988550986555303754481848768443373774906010000281475872321120512493408817779104037586405893412476519916273004236019865988936264777277880764033118291921000398828467932345230661100257906708225258503102998525494247375596239311185883088952488076168255486540566169837684448121277642367417146229829458079106412685310205718197340455534025360430114148797247172808364773115976636073768086510722548398417474492844698194929379384822717858274735065945374590963888084249464694472921224548948283183468896938138933205428179009972340321051776270725091747095504818959905027511693705598269834609527561495011361207878342651145065464692604618724109298523135414045796122630409515378859529484787237652833185326332510824770097345121826664558499882167098506100635629669369080785803577348084786764141072543265948355999084010816528008645772317960503652410638488284280386317673556967129845603782677287009284678941409975950716122912784358887607176447527457123581212201396788240416792690176976084670276205122053595983464289964430798857734725962856604744263949675447973036586442011897834673490494291993428053376439541604074536725915766281248714178035351169789395472161463003924436566556183775944870010083293470371861087189569876562569437841800573662726803279954714589308492827511892732980629064165312181601106376559242348000790054025659461802884234944307339565945152278889978150542224515097030049011591575664074587473836004076273069349505325079848873687390040702025254110329891486015803724584393509183767282153362462117035986604529077083314293323268354422418094758025367762199913421969811579990884559539991407513627256433539169428447107052093680828576019723936207332482027905664708765344388090900282901821558534706976619480124236039888331652084280124655758311082027245209559212429614432299660707309768315319522572694295823049352709370490630396452154499406168812030863970088627579368060425793608848051910381696789105129180713750823180536537444936936775682319746801922021938333840740143307984105725578369214390254092692743627713872587310908448823353465969903139714788320430471500189965768866223803361282992880574892025127970687397840490689952486430188810076395400537292652923260102401985365291486001888486000700767657536094241153058035179984815058525994584166042880056436472421275960019385425905911215621145025201152855335698105948342386770423077359479034131150767651452506142946905568930101482296343216115635403482680286514282603865792675017036897182948291269640459775848041871357020758474693180418193539092929600838171760332351438584619561027215998225795127097604946761266948359540672126373792309641501179763377838491968604011382596024518149720983041990285288653347120371842906128834730577486230946848070822318167772697536283686893926563904946339513029092899631564304357056295244772018869781784735372164826630058661638905197998036949951619086943383138682337458437819019323786372344609815479135818812216689532627761606514578503746887763308782458919821956674588898423553983871146344796505988116152019143259751513959804742483721429128359904369339273783143227586539971011884927939863439394820350743720930270474041109431747101810513123622015794325720405879782312190563953401621193964055733953909739889410303399287094292774893537131479286256437152087102993326729539512962475483910411290822835655587091852520013893963932155499136253334320102146794168523061053273621034398263410845857850111807966499993381850409552912071778829174574779281745529174210772341933303557480761283980959945824396901201072426341870457332024927970617644342142364321666764369318273600797727370051707739155247882127755562080117442993108187633509613082063934071883860674945153257877855470147636886513940359822605244082212456308273757493174262017755532501865798615055513071027484422555356616438144636863934791424086725733317571030861568521108438865289431712938265781200613249479077300480356639577040649414934806483577498341986950196494779329167243755281547797589824001706440746744397080163708084848567662832055851643573527630624962469202948972639119288111199006308254536842437915178798327004917155217320005911961110077685217477892258272192993710383444892944103845489727448903346477609900917137175927995384356905423599374334923667200301935055097760591290166293580135217804858071114184185244186129232487715581934491180415692773377580982464901706335180815358331909344134907136722140185529397710735852940573416445077347398376056016618613791930028005407168691859160799098647141452364946037196127426015243604190667890992987173325722655578000839737570153705368092169906385337901312488914438797075499597918986579523384842286373198829512957210998141642558940854739267578200817609558441684094738485774143758374213670934919810297608759264172668172698822940485615559519796390826772542613587949787497197927279269101404672671771409574679645417463688848180968392864394709477556855150633257319566923675368126012258440368992525854725714844771672324508847367817727060787570210574331456329155180615172199433082784783656767067789313119180900549427349921572812956931712157865880854695141619796171567580416039686427459871944523415330366726830332953520203248350595113475072947615781789863869868320616194411393703548736182401010934142851560748268222757026845251452123718740909697337671051258438489821032984467699204680121970567624615719477139242662095731311783906251433906145088940862807839760377783429614942532137384982830629013198096120546387590776599441700734899490504354489375441655346460758670075210206402645232901222125537524852742060918782121005321840985030561427317499858685678024907270057541628824326514732962022591171901330070802738612211427522004585691061408313839386316458827012033906634667091390397565522905695818168249718578251840743906757975151007651721561867962657663934360607675800024782232699007063589800403095752416993902386842103168875815574960306179967073709930718474463228871579960401994180754860937646369531945419656117324699184375506778627249219034816313284012099849032968874100600108922563015765563746443634661386652719765943399455118096993606280185099517435227038100900569608776506912089040097873992850172120557697185888709343912811968131174380308222477480722973178714486498100207474303124383411904289259796004112152958698984851009118077702518316931840487178640823570183086492702997132317521823093250585884496112746596947562581941950355223566621592115530887255144837503878471550117450814027826595975950138173966676863913718048803222191466577652140182778945708018900473798873743343513235737061843630824247732935135626159276685981488375944653258245407063278355781652113578445515584705366264896152804851199583582890339504537139468171618145461228350123538259888016178617894874281713129365440379049871987142796243512387258191253727072527943146759571124764806990955639958266215369148198375000100078572474926016389750504571622101981089650433764024254397191628692809244195236842540577145181871628506321163453435648767054594337887856141834428787526933422753754443286394851504661086504384388063831944191257548817067734490008924787059186489830682489136229130421000773335620472432432498392127382131329571596101167130077475497921532967706793658810578485718720501890219620328081778901527772423964745046282581554150804027192624631984055136087912258545552422143691938205005573421507040655335866686794376302841466617369163418570207737020945381128129152568881717769305842675876416457031679562411100280191868361497535205927199933005135839017716447502567823688325814100514076245923537648076415808962803383526834961910734289182241975867382683658749563136198471197939542786422288631478434454021101082532057842925640923401660509075157029449687726922592201697477902468830693597735744686911550784184318432937436879750516218843291868713897426262409011461151346089226288115735684318213954795563477111604117428448269026638457188531457228390896330912694157319038125234537384706846493210508557127767245178737767072993205593035950931702068261773287591123046308390324050884161418576950085401637972278840355164360599931781463597739745169224294644841830805694520988651577160564412899469993270828826451529372865961917751037067257370658722161822213452529434966369153320444202660930386291573359484027945853859051002209261368173878430452805770977949543841085684884561588303822362243082487487329184141014243529362197711120804145109076122418609095135911984411596341439003965502254823634379125126177157085521127875840359156282723455459281803625222740060248203182843715964141111439009218614836338674742038279624512622590029953326636070976734184363684021202973012480789027635368180844417130154355529138222528170032396837813316800379706773705073652306332910458885032331432633162796560494154152157074059625244068542581031032482825376501459028346352027601777132948391783258320779718670126592343976575487459243259675892567415944993541650628206596124625202230014813922456205337915410618689737095815603129676998110049068109879392364651468544292187510830194429227428408919028306751533834593708208939197698351079800743437321979536083265829754614186025010329494352854481969990332397354007586243977994612081600988932623916293027119082284060302554263800855808160343877136926144478206466036769743660110476390834080209126766413009538465806414053217543469237905435606683144479793108910529435879959454095418566400034994450514656468972883528615520271107920856788500444588068287551237298110696755742530435620683567875590292853895927753534311072775437604274128509937805290861046254220313824718910029309493894073286523429331298897620500404885559381269468038072084489567182915728749864025516156208081385469479537790217031969481592196261083520053618698674809837293387476063408686791833899326902122474606601148691292138411664243177600234905602492692191990148530164829566061372618521739789515047448550368031983812813529115682164618594965046439669702098607594385117733424447160518567005625488236493126794961735395487801794293847275963082459931424356101599352231711083954998811390619778083989227116050800836189191684197125431302605889581973304352654208545099031387606061746635658427372388646364946938807486072769957817311281665328195398055171255866361514760712546261214342414806515675185616558545638088899800996325169114035907781204553625513529621451160353539581351867827702797204370679810418687608674415555938624872778308790587418586397119897712730911273734933964664351559201091572792948741963330153009279457361451609465954819554970986058079751499628080788652383832491010024745272468696328981652442079089210970100169208397192694981151660175727709571874982765792336725758718042409707584003904855832490989650100092663858207631022466233896831205837685964720632386971767322470459832464849782215946912852502734031559497572705531855495084567552267563891351981362014310026648204629573129377746710019207715535084126184129200558585006955634477264938923745175632899185947157502131341698325657876731960829044778361213109380157361081963383936846858662848265259499418510482292849541549401687483533537170915282940950052953004997174139914442569102376966137908769521216030456768455849111083994969678178325098179216028466323195277223605849380623787617867844424727540165272699705032651968143340026938584393013299145998625548382806383429512344958647702353523810069928668725572159197866633308131708618690262643115439804094827943626285384401982381626985376475128335786407477622130191361640059829194349128735589197750431635589490842503548897355194598732765654331848266791103046469888192220614370021693873755060445158338840715864639390551793928438700534532940822202539139459386185791313556408941772592552098845741933045966675356030088621965726131482469854739764791947172361561545576168825010059127226368168556737791270374044855735829821629009262202779645505189017133690622478569125727557471470218492240380728801090099857749674278569624037651567621843607728290585896078830937016592559695594852939048696521469773806778400926519660604312816068575300454173118494732853269887337062192216974196242194757099515596771172870552455976372320756426486075596548587400818890702582518263571166008337792701365830918726068069218580240035465075299138758467206700054577697355403248516881982536643418508413105372896327048065672883137182558086975877067242036135052793174502690057722253980047852784736420200783438883375986463839760778064468540820312875188928685799760853209995734487473818992758493369016843419548626370768885477550500977162862439942476239939347312504428568226014005436281438314871831198620283106813663943617700240577036371455947077955214988159924727497001206086287091998448736131889065748680166728018033238786562729721449468928375615762307535764341332130257661197659492521812753865360416037358913344191655494945699363082705661351893026230602074937203496322691231683959855103162149870305424354988026214120809617865892666446919313491829666039896479863490921078339505945427886202686472840756666356649672336452409834000680458202293665666671705391975949412889944580239712791313658117514945997235084484810114065097159587829787701913576399777683739086943029850361237808134725852353769921703005236101213326877519045918393404899860233506594015620977359065721116758013500906049433771681012070127124657426939964874850777527585354684997377562081523238040712817596363369976213857219942926271434142945835668344044689153848364506207197500188468917822955460743373075311045120462647764274122824297918365759950342126748309631732185141759176028053506870921827625101875686448899953721903094335418179414052529812400522946536884764299439440972696098621175890307344245175550858947921802447695995887442011004339269796657559841954615548157738079763779224443538962024917376870913518513361072469262111200897753103246983262922772358537763608413867329588374157211207587478612100406354002299796344052791711938139566839665152166047986491288466092849268365670835320807352970141788289731339853264348141243676844482893375210477429812177763871163149203493376750440723165075462026173862831108599930966717544653805045119568934727441360454249584687492785009213917737714548006743117011090985474667963150020626911208296886813710743445730018788981024506729870967884434479121332616021557347799016762553656834685060860000492714994804504493346018743848629822980512181506970360797918233170696076877831368881970682930695479003726847733995818470702859321253277167883601774705311186144379981357614359311054121568649462158600360335299274460635743601840485421764393258703015101124303549687948668526281470157382029012110099529095258200910947904701833757867551591273956029125550695729209656139710663582498290335947091725856669477035782897503307710531789642396399760032012630253887495116569014822533019196787983863870135375191620491809877335648412154954983851396220171350733474741437204756708187603407179389217579000302383875273135881404260014749417130534902785010061036200888654329830795248130387700614522599094560953291030682393719048907442528175712723675998974614722204891438333292572661934726146913350158635231747169223184386220046959487035197752419961170081714727869605905307575876218622187577708594256931707557163960117460517319340913211249095451362170493222079005268252418652763993551601849508642982985603178229291084239979233834308149163697536209465758161768362131618042218751897233949484543104270902501948708088144150016217667593840987171052126128321322307654715699067408884944326537964649560561009845546561390683644002704830022728002207317553475730871075260224636490349530233113370536267100364557744383861168241223775708054005254253687309796946666837520839142520983254905586131678932835708632650211039099378386519655447083991971507193571713521452483757967121287570535760899480752907701560406390376318208756772788793215458712553762307354955009688569637697691516145962951313817454031919479650860049735010432942735666505181768442254287011154058603538107021708944521672820883547643488200825893023034004758999473697862573082932531858931818132424123220443297559018711496513642843617758356951570246462999411305026556326150622960089564162504201798878799399916329190379772290629242518498192199539120898063244434058955949346716935193911775193461471578273978964267932494622344558961785631824917136344403773739042270467059815533211533024018607554328660948410330656238398503069082242985958147884806054053330826837023263448419760613106796395195537905202138560275693040565497804947291017498388696153544634749027620846631661059789449627585923664006690356688817513603860671954244108685622629919032960614394597098275054005634622302029628484890510531931018692201769770011906875932353713305892417475334537003194199034955638037704283081364366213405106287211321148823036287018669429825998682829741873747370209569271262707579146631915922950210097357751577179681386217434082791797734627061960852470578542599318367416993326721716145394951294187150700720041166438817798428109561974600499175402421759222260598506959588171020289347711561615946151062878560685557814599840254364035690601484219479766111538943471241972132264512479186863854389377635518375132533032146106524351809175508410033197205566282715132980483539173414326153676620825164874701518664526207780211825843235941209203449089672296758025621365083994264673980659589408229881123707718240068245083825663791102342752896046835978159755722067882186159613535165593457573853759605092385053467034068209013815161584235979430190309857553294662717227868325173008099961478805022425993713949096811011435450890023547600590558558674599352239756292529572096344569182629276454147439487238133617555705895084488032172807980042504653580553890939841814746011042756270313717925428833895974628367825417764620159183068678934656062020739362712163357803894677851817135981289523233068924666263040640127795161027795714329956045378556231015819304914783640979729038184353627564702750929226596930920679494848791121149040021884119387064596772179366876160858923972935925703481439627040325263176888837694230203986230486435054547391883246590253647677794401596051131918514225220461477651824216062676869323815560221158098597811357863167626173271850118803872318543479866357586045445772233654196257958366245313708976557154867141984217462510368812133776699201376950924107937395900507026458469765197935638704022345690884732912953040286598674680115056821190206953896745181142639917824123712757408844721791046644665101626223562010627618810651595797368053750679454456877811807841152540694004393195686823699253155974522018857125009086974671947622339769348838178228355753180923381916180790659235773161825719383801951009389174311722189448525704330155175720830457800228225574316130783206686499933096087733857405674762539671809709179115416750168386276767558395289737755949619427959222191129231701209605888368924191703351436821984362889958881952067792922347113461543024550190738870233420332328723125779656756851145331342296679572124346946401865008630297602149455446278609754700462232888634176004876549494137875007890189566850684431849456735722515406557638290149066952692687212736118261168674809514978365746715323357965000377485199637088784751036471989070208313580670296307146843748792999746112330376971775179234458141937323730439504323568095429114231717078892013440355226693244367064008225003396365523414568174298636982888128190749516496991635269465470165357586768499337212502587116121677576079423487310549621399740883414573389102562551588029036623027643346722781047081957571989259354955556191617396891710722501616201202742563424528407141854098975106217510346506533357625383895195265342553241786503924104114830795688655273192914105702098745619510061159862653286385273943727090581868649743867760262745790324013027942372008215233717535491869232934696262477499634621451653845889787746771603940387026415550488082841858858495528128905029685612043982874551725069235608493514918821255902075799277511491036851797933785817102063565086634732715527726133036335076783471144144934140041275178079504740103137867837249327398239538101309003126851311193598382336036907051589266798606148439490993623604951000941383798939900607335793923163612069658814160916055344759159538119326515794103271434028913923334904568780640250137641179686279591664160910659390380382800154926184219558058775866696095239840110706965615639614158263289205617328935502611411690600263038656314253054448514357587623181791034379831906070392694581920242053641259124779708847319532890206803939227983188238740669158709661640935074400736399833768230965375399378822038697955057589954017303032403207781959039394274769598149160937362352309134205693609720798287297805997417452518614094978139514985935490667299371689359200074493713187379683775265453087643940169735712749041228529620819013101208351563191354155047224113677571272910490956545563680670857542812301942930059642403659909969016308918354962672764694528734313361781235148018244374272600138849404750633954634510731414685029055930368134582138441502991886438187740305531479693293259967721842338374096573557193937397001739422115809655659230005139035329344788322870484890404099310836965272335816481499965748813295887151468211338412735942408760160921912523076925217698803086565298371910275346553107481988107169158132848202154969113342490413763979269841529764082553243762483882207115039561487019267081190948661101993868818689253308681672819864906807442972805934952188630397962890749416035213749258203354717986277767216264543570985544736294034798973529376886706150581285593289395744041407025270253038249403836769851816486115940046839689122233871639452424573172669066601253270973888152534081162227430608946955292019039036108226583769143754346928266062921693663443181228545757804690624020763369982382866368663961915910389821982310299739828279853823083557840312902317642060384407397793717584168772098318084743262710302783162603387106117950690884903817966623985413296269851052608938698851257337899623086995163204665789930445172967120703629644662052336269153593059864496417388926916449702112933587597398612764393510341571037812817587881349566514435970334416053497883557744378611124300997758275912146092166943744460143776276707998987116537308854399176680317732565739981814710280873973041657923152970274958687957514621915740488290590993759945801897417048402525385376796575765537547443278841202824241214385482230331177019497197425348140704558630738225750932169672149273726817183504392475644479777292925267571608797090181841282854913407557661651459759535345877715543111115980434509912267493357315554222881276264881204232135544038223976718183009762875572184961556889116803203777888796138844773252615956550748651731847705065965177191242858572857385668762403501480475371801246128860474771409497690863873463008416198800576491458614643845947042739054626027031226339346151614561661246717564907869935378753680658544380892974931265091181103995320331369898776145098299752305756333995684845970204866976383953681390102229545689228031507325554099316949474787849757401969756700179643081998258693159082764309037130442873011764567337344342899207423425913963226797932103404495882364331310715303111634563368019946996836649349912966698259880129315790482231532251318583381400639371719572825891834399078295780622052841014015149838113431019265148933653437221659412913112685480170262027461375236803504993225299287429951674177011801008406103413826960264509328779177381408119836313023644836240940617860939984625444614332997911370225435957379442826277069720023347013037103378181482307861832161509177568620845261200533801475282677385756421201214872545661109106334055058639342248491074388729215905957966597537345363470455149971850838723291679777593933932579132492602312582158267311114046049817220106508814289151265972593180630147392614094081627669347075244215803451681336758875360413204580840129310062347230008818463315573076101404689090461429408473206392067549560502921827724603399407243798847416995342691560550123147274615290039845545242444706134434515531062756330323367882232844630777693852762304499824333080810674801953819099065547122888897240076706980807977800903731133781149926891057562681873957119586517198103282936244193221417030000496345926572812606227719024123647057324088840513669326871988304310684642359166414144800092337265043299832132107887270797757956597383119756982252164780137969878364544322929919008274806915711336740431700902955168926773197000436204062048670765068000408760073505381447908003805209109371747681549210832475029606500319596160086142031695126627628434686537314488127875294805232753482150866782453304599759600501310963687880974733473770740810624694530874003964033654814820975206334741500429292980911425119484243254965972493858674472315161914497711804691601161249152035409615687610482734302356647170248224814745363107700822604133702487602711944688396554298861655447130430554295230422950980516133559748860105493351158214077201383896691115436025400465432729405478215908545055128664754915760807483256411949687105955083625687460835740697751255420965634264048623027906760954933844285968948846492123307987193825467915086043117583705920280810452799634915584739465780463247422720753896281507074985692834052550910235979193796473908785576653239257420413050178008496288548776442053864949666760886978623056235960261065469183415515761278934021338209267577089084608787768257422598158983779706531539414850111763222133085966732039631267145570074731241528904742345396872779077398121801680018632517707637454300484763095463261562651118074991747789800870851421887361012386713605576497572771436135027735070173611280944018653230329157587373561420571521192611155802200732192098385475657500637917741155786174169438353043444317050381725100675911098765719456175434808315487569872297624136129236564070943881952585529427892961550537301709165095532969342261460011944427919158944793673410758327378281512469137906084981645057137298747818405619019591486503623247435672954360375686162786891264808163737365595379144332262032882797181123618244667322743594354463813633080469688057154839498049664079330073163930007255490174516966840251567943201644606533833206028354641319029263424720402969147852917011290241841254013649597859615326871854470040064763759672715507993546217192115884593749522396814957431626243350503346466948280825576294813415568243742881815522160126249457711701410322488474674992935896497564268890953443251069506630881531522476000612564402299144785604806396676732464996235674270013707572537384671661806360828014938413326732245996712506549082019737963510366552048175474522652258817335431390811420211402134986569244021427844810558044007533208691118413981253373175033758341655240316060623181163319669927853896914638801133058428867868608422539766171300144091368303269084891607106304775953018803964343507421684624157993654935349211697446082292356559635017139115888672226492063653366895308940034096511527904084737422333304469906503497900137265229032617948900860391016686234694834427067113433616341603772871199591449062338827299001351274924724785561508431491634554161736403932680184702988521289826068040291316557794423540717219751495699686237933318087597564720761227729908612632705204595998042734316691594699080779151390558462832514401050123712648677288950886434631454293983643591208400746009070874577257849928897650295647087509151503962697677171528614865400981094476848514025858806861113837088373664336942944919218643353727713580345645437717823372808434969876706995526597740740080700713989541526766815101094399899434146825439064526994261597755233300724928739730543825515931993121380242189888751880831213041810030841639522913383395460620728904502540220198859908994718657740137957295653694627124822981507022135188774645019663451774311681102322062228004780180525173914265338671771623533649944888547259788180762962526450483163941450346151828252760527700226255814704998298537122041359683332565529321504611549890738974365303836595685602259922416972562212857737408810205192893054553093661492676007851078076956444337689746485419095265473911334454748726592613747129450013856680767399317029981122181632376422712031367389769869358229895879885908881669832992017410249995838631332978948664481969061054288077553548871849262254248881528687303946978545410624544388006652938505751606708857685788473321017158992421062251948489049926643177366211786661130816095739519579705223421581810451774605337381497787835213468477071563159382780657831023298709966299159046379970026691050552885764397299200130770209235383914569133220473157877940682720304582767524551077503905463437228266281116616904793472299289380206014696060717019707913263790515668107572181168852011192727649342856625188860974359136838334647790875663266440757779279396930636847029596405787730026163530532495615368943308916061115440773223326269353642845631955159572894891274742611756391735529924490959137771980831715792117829228990299852352033691879747150207409126234957615482102115463416049043414132425367787753000462506730537730656042865712673832429099749427931243120173008511482973529495427458026994292810892532485031389009372405699282547389502294026543585801487479902070609313103505484937038892837232244118622227019689739135145962351865721434589144170367900384789111898475746915045832803727179032094611934787283096146655561656460101643787041580204816351114894217464939869199876299768969552941387219614437767056323012376091328380572633246447963200082711978736168708800621678025001567797466640543501618104100413818423125695592959722385725321204831709088581792459844969979386200837411003866325114287118912086436023889188850884625270101978447687012831440971303725464494135311351103307437654212409094963256532115660255578159858620871388527808619306986226778983045250900067867537034014752884152384856177288173891439940729236546017080748239713270987249495976004472962261799702720353640909226246308091561809131948271054983001886894945858438300721597078294323569066169886416260715451462568876413316030359926199610340982571153523892224334277123796644194057695611187514162957897275602446100419150141556727985845791116417676883335154743634133014754230927392875666999557953431831547703311040787925283142138947979753959699505296233617624022483813578304076740601273152632583210885891816451561422965160958922603654840039654560089332674838088217355449356313106165860478215375933116617173707653522311227646009251276013890058788647687178742841811322180011590458255458402967130619563289024029529060556184654691455830994580901696140130604610803145863695525576554768175779822116529388259922555387099189744964122387523994855218307550993530040335838545277382456241344128488670804002435042006560967067437073241287804687545760014269064171231161264420459950058578263787756252152775567357055880003691882644102722679368569797603627298887740975713890044574766395867429034368874772247305766688786054924980382057974090537340495090987292055252447140530024940348373817508558065917835326845099200888247528232911946626642960857424708401561465614883464052322827862366108213595859025258492446832390967264731922740515365198669217129671834988239983323050308112087093468202187864935764746001568152270695486240313340636445021256125442296533521592278201569468154314470446545136310433392158396078255885015458963553695029954962049137765952975281255597753709746507693503251191534758633442190393158552806322329375705154070929056668812757260477741926198762720315895589907266069146392120223763309514829150760650319163263023500137142534715544435507533800745939140361739723038681713842804915923079757593998382566710509500490593527114692970260435689996845611584137440770178277658612918832431108693693133059941786728794015083890872075551798321374049679064938254114659947141487598991920121254083994175120293947676565815230814355525699295285260075208620484768979676173295248507322455351872195115109822505182417553808983613148921156439878527196658651594654996837955756475290808339899274397341839861874792965673643829971537314595402696558827169887108569462540402697583592608543613182272678291389511400549509033348221688270186053168421299653239354633828905950396185677225507377461210232010003312177828781736221538063486856115912302496696481091511008304845805350114783355046890746858160520278917484984533819854929134936131205754091740514024686960447209331817981142858118557160497850135973222670009977960305094550679755116159322223261798333288647183266401300253320702998310263456930275797976855072508244742336474478226473853024549690017876265064791040540691629347451950488695781531491672559768031111812990047670312791464533886603155783284360443379271619859775737432138218464566701425743800222237444304265003151204927183959964366309711364378567461448834465428109755655828668529571402353863904151860796807217425137311032648311177376214059312033485471984665747122827833435577694892270898659815561138976507447037466505417361839810624626009438544336223611562503160588757317677970870864617802549364908039845122857170640631595449269475796127430880861076005275267922223796182788552187187162705624736445056710375877732255673271380919496796076643932493507698774085690998290424288228737649453739024331568126891724003598168088181828082099417135686901319241757178553552255748717534739336009297140538354443786013424356348457628835105982473780639610701080290275842856444330555918164526594529229199397659529771987725414825505502397311752587847986424289574065136643908274221972694359514190086179355402116991433051648780790230493717340631319344641173088626689595222415587843302069179527677370670034122627897890098212732639215078785618261640297024879477426139269560367890626681003366692006683207196040403614126614924658941660827418401575532425921782615226794219493105485577944594130422731436051735155741348394769640378550918160279450360789354178166810080864999066962546198562953909082763612680921197528244130342019653529699486793411838516445100045865877682759807883870124217539914461899199807033506121581053751200244370923531396915300944782015882930694763528282245002563355111544293790414900360330115807950286138989203636852711171903156819452836838986490643445735850617079223946683292586038847511248917964585022528087581756350297568496702076198331123772100890123361231249175286736891605813538257261015047713647589208156444474222240892978857283605549756304771592863997793424873911125455625066580043680241060314465783080355443426966328682012848618635730804612227056918636141051733906281228077241181202625259755672267092349663951676994053807772295357872386473897084705429103081039830644022646067382001978547654592355397618062692753499491016567816278631457302172745117124670451648695210437953134534811550283261761044886254589933345869425938611827860118875835103707881481075311514858852568988402573376876490231856781967978035891441316059190580870991886786034068038066614008666587642664975393630353395659191606489571678183660220882583194055864885667781990521924728257116578612320983503061821288115245373951892104686004623162578127422078516397954548258154018213553679732777339306541092461385983103461032641828151821713859146962097617979598900914362578770011222788020656876850169144606095904003758221669455722677714282587037964998416157545455220590320794603092242023480392945233676944094622312136254680997691835513924954424697100547185156418643714022307248901779763748185706471702637738482816016802955926077493893122727887276570532620179300555816513928236218155910787303052518099275923109511296279570920660698218112274570823905526369879869052918759647804478167007194012982082086438960062124394342547366027859665883936162648350958036045503424422986170514380019097404449366003547369600503940456794148444225291055210956437420768734231087237002116634959078867450760793399727136206332194940201859319785349501493437841187994768314575456747342405158451465155857594779764347807295750956807133617744976368082774623038647564017339318121875907393528841385817839335888710547044346055717816775437155834333078117484904585910571067799353394634205022688191106307911524327708987939526018226138651896181764657958827465768766966893569105443394498468773603947424132093170054118406137199821461385554697644029089349917691448540085946372757459120575692089499341908481198390103409012569146819187141680442968525489270651541075964768041804663165983990507953521810835499175982980272159622481562930560907249037815478112824659269881756450508014500546812664386244797043518975934706781001288514644664924679082902151093007366331360651172526740813936563868403579995747910377137658946077207513211026442644326478173843338413105982413210379549350701399328091770557376458258040978058909336255320786987286705366243060208236990552297078282324649351926527989436842826530797823706807658531913321330673826495617547778585817372534227901250039441505091684221540450077585017879760435547123443006919986854448586722878254716771864941223221197946518009354812918122977387940747836577742529934302674771214704835750588073536665836488822566626031042460974166364007860582409882471316021694288082431277568275985546035954248390911309391089586886881743025204755855804166452505656589671557062560581425666441225610349352256478763066414487220158722981116991628631119623275128153284662421080159376024008867151362642626224440940926299527865879445744781411750827572604799957916855285949180925111521794993371925353078557852100429340822641369864359504749507291186562019783645766045923576861724911209184785059922739631651791805001608257077879226849461043192094218846336177368492599872106126518707622925509918421661341223549980885257400519177104635626374553122769176945848107816809531218145413571393222884680942076307374625437381167972213937116418501082546569664802244578599007676768820144079950333918329835367103467543781215868883400184597745808911466980603903226742520087898587150263942677478868640710204200491487017199352824799878570627944205202539077993196644272969842452911431497785906286356846847204277674593442952293366905086111996268170825180895058830959200094372518553636843796035925913152804472206958840986481405798656705896818348555016984221169736479811691554295009899662115134589344135946721427666244863448529440453292143584908079265459717691875030932271308957584957329308010242753561772437692196343931337728511445691686984322824503654695236066736986844472833074545031322250536831091184590730900911646073207547152096195743909325504727493163851163959065514965840879868690177552568426427379356238164416252838202065859022214778547214606004954381398508965434948010299543706246867655112176622572099660522201788304529197107320523984078938309365611769882313231208208755057766183101815956427094433497858619621400364323742952766706440163669072591596309289221811428765226758799082758643891859673321000258791539766886653261979480935366226743831375972862747916978919593708927120008948311785875653320872479362275531194778682986158990767494848000671358639375944446227916647182191723557282246462095847713546796248092983584485366512382838040555012211777759499893051437855258823228728816794609659447961454073370383278636834466219078313309664898529099597221623790471758237296381085892187486469256971391984224553330764880583636561808306814840387985275866448562016766228331535758567181009676793284260664864842544607787209291102462498571118602756039261635569171439380661011469511849887400712121269117436178211944496038124927371173637430582520378350931624768861054098852425854136196353142923416625491963572447764033684375362011177285267531657812006995012107376343247572439412119454222246204807887380085961689183584740684285873152318803781480507715416067718325140246138139019761776308233561952759152078018292275967775942253759514974120385578573146102479451761950697846847962159032885560962978377002229433158598762048365402097837458280333809890120617595974844805681795790153481598787210973279958162840817873015261852963280965982656804431571587857703108770604695956852571446419263454156497363993380569331501360954033005195182197381221934897267854775061250680893059649846984197996834668402306766315816499016031469134978039604323371690507559219095915744302501071773088808607558319284104343919892033635731098153169163984322833081767282428988374616872621839016690237248739888798223799514616855587558867630134579442038566998221614667165895030428433034266887257507458196765389870045759508904816438279388823662346155658581173108706083661912228986475773285779874037445022446108806982100352349071382610422768086613340319780755372905632315229027042201767749322833530351595450006764021757395783662279734859815214844507988682076242542593564463329239564350942698710626742470049276710619958943180622279081416067211504244142803816423842684123931308744071767892338262120027033920584268522257908984228847080342162283951092585694059065015934838736946918359513132041588053496438973546654891189361674720014885539035083486048799577465037442481475464929144913367377246870019884352584107138051953169751657583431682871482970842626502662430351560778159112999420026235309286822242703340070635532085533566733353391185225496440742977874439898333009330630324429471734979517515517107350575940706811740225145657676724633286634575727658324511534999401555073992574588739111759882718127090796027729042381135394597460233234655835931210315711895525962940365430490338163305163357316312500477313511817654332126537089510934444964399095786211553564725303199058473419412772399777132577962771058667959999496853956895421825481545509738840166435595137251276331128973146114371920792328865608790522238466630934289154290580985944948203062335520465399384925055229172537190395324199943471089548898693540317910366999348622139096345916650143824719344055217497966163122368975031104829774198081792238530179576474098149462115695941475660833905047689639472150659653166417856385007410525180282655430838703884216657335918975032388246656746239728761001200776555444148695913672987598460426227683773203562676358247456696210934044188372735648555434078719393452383695669962594814616975524294743306930168115306994600559900289283855565517452584910261799875144716026290570954727496984729122438568581514566534586517253682497925014468638585022848788372488402653220194060678173353487278154330304046573615869715431097835068674153088251154796086977224701421599013028356081257486572822563933381163093371716128089922449240373255001017561346533654431902357034425539891283553305184598977823996752531353285819660044609582089539642727027717242732568524205771450878097870992746148658191623888428752095858925433839818575929971696889154715354113557220834532082957975152295186990401506996989049813258069483951134004703091055937566567211994345887468204275902171196149762016834171127455266985812230116948533772595817844258191800255732373055053246356061908608060191239292446514798525549349612605744091978133641081460364128566880959599572170972082656796543114241782457142706795304567536385406809593757451577191320642993283832490195698531346722744996119756685934476630932788548723948190732143618223644961916602429033951711341662667879373776824782602189793231255607835633370462133498724921955835515091427276473088397538906031518949076315722226095402668402023458952194686720536310470725478961260309966266036036219534200441815397684518049565898995602374575811690193553288057322599166004587915937969764627146995008199086427786482496403469583388692983014944406219642981568240320300590895863763571668995412604790271600921852648364555252663220352588186811476941770811389187288927160388982113868300071712313794148162488698204343506687883359608669204124511948575173289157592872092525222232331656802437809333162236351968220662959254920361123759049079053080946302950891034980427854376405328342611469209904433699357347275143820866458205772896106347673173271653421028988976959203727706076681496760617896884257839915219199638799963263310707359228448619056369632956645738781530709553600044360230204694681896123191663169656801749831161098115844190016277827390263513008365991267939479900177773912393010736612828727687448179799609198862677745356887485926267781775966355046977765488359249079525155138054522327815098242039906567036780926534312714567670445829570244848389459409227307458043415863475829105375439165543997898075962229299438676434429549034831864672213251261618840779816016912821791137380801091177802829720649695523858929417401943898022713079605909482265038461590537920768482418335637176721661870399179640810755567090308798679989634441538756465587295110880157324404465517223261750305114223338282757169511691950340425734499838815756352659578526751897486934333647358538263896012223175276277414211412948142363025363574376869460065027242701154651887313938034307552967560747040205467554684478803000294607525503073344164920342747456023173659731697278063661673419544907656636822820878903275681333378997165114257447856660702344038993870809803400808315339643082872393823153335691878484524222584550267097798918683113330773901719807081925819914799917160326433339493940411140063549537325126124506100108451088833746177088330009307148037318615046473770355437618297223771008715160064819192756426724118068584480762295179574942387703787482173883638246514052376724820542025158824908296200249799651340258922480397599351633866431318289213295544060913349771238270548103109511767669591257968207749870682887127633291176104503619948522619762776472684999851038076828648589964111746836638803865645077988455730874657203601293134034853604829360859704459851689655457678678513859047513473507239998852384658759294762372047566001505198825615991673450586072501946146257105273349897609817647978871742842213578158959703624270425530241463429603672768596526271367927283925079495545202567118217285716135666495003202462294399292912080459492894947564137226877383697533352986101390839723138729486267451604326597246142883728920570822092424592914363577687444091054428384624647410811876817089672485289080699251060944539376411915156554872015066807201421797853016467243107607666122558634309642945448183584960934282071912065794051830332002342813525630292446757163313353382589726325414739242737451252948011755675253106667052071887462382273650659920539346785012919742227571086848894838668375523436734443827638263533960518791398372691993178010472849973337997505690506043584717250734764061170736525448275128873165135282842114656599539041656790904212699793473882575068273656324474994377235104502715089666713762824132184199696032840310872686799158215690934072988394036955223779871365700965232396651111232268024173665298836581129388612972121987637736585860301446572755495153929860232671764301705190069976485679030717367769577351032336764396910583892523854430072484099781273018610044507548848296788487662702921395859822759968481657691912607803519459423639112194712189999317831880188044019580205613811141981862905132008301828050812832215469734784346935965133268605421646478831550143186977924659669514487794901073464288765692743588006388685695855932885396737754691184507180364682141679982956992035836634814047803566174269050447778695541642342522158548078702817532871350807442814127554591940068829953972986737170795217020050874115917085833482955152441188479955357735457210732985604783379960662744604923025829168230217034583381439938207028809567483433567760396093772432281270875645901518231576750544819703734975015076614830652828181403261694002329897465896109936215508604411592215946076919206933309265059654546985369262894074049285058104697973683115117232611833845766370465210108208906973016173297927323157767963653581635334437127420553866492149448346921607573824415169542459284093292966931249920560094583854094122827180387573732571190209123372072774521097332159875393347272389680523281768565044528013060827370241148899716152115985568089555974466434483461297285167823783843410268459617061066065246657922594621218300300713310362188305092443791585730937328901913240188338013526450958568925944007124832440202293988598015239439311630453017644740339674557690716175075016554815320545075542399646040705671275174177634440479705219213381511902770371387350107264341829609990382469300422306359978927714302136931226460308448792174846324621861160594230874694971642710615130703708690173829636152084680506858981926246620888489359294542837805890363890721641261560730096667656717859277804434604420725333725258301528238297278474808090026369884536433198747511478831538500280316378276224316225300204321588227279207489381219590530231915051814500520595805853564944349040069442952604204191066292660952974790970022017521178792224331954355726246007733873801389265307249776090477361026720394560067022713233358586430736275998501175082501490339675955903523758553338421623917279014928271528420827500493754800276311043308848013758350111041740368348641551025864840277101305419846444878816373888371454124930532023614324255102125490476176073127815122427479356368876346835796462554018810216090425064611026764583918012146590734726252576443303846905544949880597310260758629583636657668235876566727841971081804293484412199228857129983290274205475006925505458013476428673517065996477556208406499183395041445057386764531819172526850810265714455738446486864661564564564472322064902167497207867478641463323400744953696154828607351012468020852700279542743819477675692823640068626178938302737823405276272898549237531366785495066678981562019980977338964656201485187005890204056093603365363555582841202808769830451827463928928352016908762224495503350362451205379931000801379222178546179554287493007447339118393520314790165798149726871700219293336790010066635834562647097678239267832476850437211001473101805803315080790438469306239322772860145284681591579724171818401394020529211459134422270761947302188257829651013355873579386218981695943667621411579037453764302021973540497978887545121866336659825761854291796674386839407101717033240134937540238817994133453312198813379702858985180687706377128801501107449390591432643566367158748169563252391082206895627341835442452847265303713843660659320373328719372003859103239190685873164217699460325721917201456224800554793567822591739252113056108870182829110912170759609165480046179907379446074898060532058648587825826594269638448438045977806254189051042999075031615138954517157531835339541885912566025124166124338567109288518914297334859767080071092071296482921067245169351019856908131844386426150812012180254620872789463643295958288342807166013893970545747430364944526294946690225321934270537376441287725698213241552470388169964491957653771290596064817038673007118621392291155080656469044182789402257612319259318049896789297329849724422287547300820782446234035509479473736558366335897443278149801202074042192192637787861907385413956102710660257786439582590749580519069720422607452199981396866863578482525756408203897622978558901963233928809460344301688875560992647871532862540219016377931264275195677182666803631747876308033305854014694136689821756126810403321731848655827564314887120952233671631799206588538288223912462164456388356926542576976326657974905900208251886666418203046175414520086583123357870633204169221561560705544550635945464241187348797960545405858314410103057052263794252492697390753735263021137575660742501944616327716131155362831516360841388964277250655379733252632803849268255051493543393424417915424761679759303682609751867688957251386634066773341688728330977437376640210818857347942565700839192823119060136140500020926126656957495012017012145658715952293295393305525052295404449802102618744665956283524001696816116161903208048682842054967421351288415634512189242410077198637420924881909535270837108353583287822574582305274922943551147066177354908945083054607552912315590255348605422864048155536750574246231756205513234888083015761314287060647041097866479137285657796015883603804602784387667508265834714939910833236159062647758971960329399840155779664276720792474295518065956074088009467473168702956962779671619996670173191774622155871241718535440403140086841213761063589880575041912774432713243063987248910647602119952752990459258683950370114531962098821150466723546134610341516640486807480990347886724591199524444984999985810551747785150223569712463500747180965521303343022341137465940493959445738446407097602911478641920942212785837387218418614503020148965554459720336892261425671207298560482565664396970966968483008216229668935640558690273662059474434625599336620005351791709915908015419296868680973134796769320675837576951665377967202523187842227063471188250048274384983564225981276636604329154060956656834727685932650057712382886812785969641438136550134510047953202566856532431216385347953207113378119458612520647972596029399914552848156770573265271112848281840987450669910274142019977353988746690288660827999130452948557505373594470399753144849185610339302506652767536770820951236317904690330028657869045569314067349089527219132818100677496584094074634886821543825454461019363227590024842200516781578889127857891667474410846884418428083206956042150013865668497947523084984023644383225078941831595665639764321422233555934697457799195279688651841016154771222637310334901498374122437175572418698049049409377713715045761977220329012475402812745297422491975264353573399722329218708188441486276013392499650063532908491025295580433775390469104276621158045346540810954031502656327811346857553841695058333621451965562348708369921410235013114848846439261928319642968774223494776061047144188337810453385430567483078110003775349859315422651082619131489100051941932589951503466737606933463736255316632331842019861237701153588397866421554076484203887431555555702071796443754483933097060241562227456292639795254455867598759856227582553501600413677846717997757117914296228458125573550882530146948475813309389579167438243027658204141072143498669096311918233661345528732350130737943987370132147746587656859274134015260075665609119665028120733825617302067022450787271201322155462047139167529164399458452466341123027857850634797195628468818075688326013907867053604867775999423310109934119601219295301554233257207330267634030135741811993314195383562736598414603707159872884082484928924696005609858781718129189047908539720567354606250445261439102956816826076628820950872807470109906171106115094088918605662869583957167807725309529280354726975632796575577096302247431976185090027801541414022199930575957114023801780272495430281473509153278968338061557928919239730916186867928084797404917617515630979098761423813910717010018739000984074549633052586517688990553925915272614990983703597925980434518583695466370608184622540951477184607624899712274865416725175794009093702098854647236778857253597027576148362631272074185192751468033873077514505593815375573813448021924995343892894644744397725268475460172961090383783812841718761040920049414324260640698402332302305158148223548496735614697760054959222416488444389474815992003406023984195515786515153061931348920974525200936828225714353008220500614588391863505607925808047117936693878624385738089092537615167061843713337078115089129104433650839606892778753807663246132032225935363691328266515274525659851688417669662844188461944384907358100509826408914535114211740408377487892429570752762263994991407249060557947987442453714670324307629516752073338821862694794200663935679204947046665926627650046824988464365484763055670000781831118251164924872268744737927921073544719862418207375398974855823841709758153419461772868310243689845022508122974178542151440961637972906828304844936520216506170259418920894891717393591399052584310065590171662600003854618235788055403429515697961109492940192067132085509508497755099422881111498332071337276799486776959528167282006984409829287936567595224750711857355883437487690799173770943432170958750632468491143082686449449691827261039504372836312734378962173467725080490615219563749781945547886719309884379679956777534973618378567520190439514048172368619094960334470493029028740218748670104832074767621368749798939470045386100975233568637622129405246130878447736466327348401376267951710474614624697736192561471810640713574353435436850757853655929434901149150051025253778412602269066818968824783768126282335276076839127764899137249370097509901471040522940898342280114371471057248569260692247095394797118737947224055714822067697837427261581667910797625452445634334487426364318081475470368165468884166274772471060842734998725475323987040737990257944288894167532210702792455120211783707632944970094965327750262930283842871084399500538441625789799664572935795951855962312641302776554144743414848278817543093459728136688161012732271593177748654188330402228120722383391178137849901889521971723553407388231552676103252113886034239797279377454528956971865198319825993661952341113973389656954574801534569387035632719680866818994655167746544842410790892746290490393784377340823043881101301863233657166155891247102583271721157537309419455633429312891626701874889626704576111289656635432293799384530355967474898883274659634996779243777140239900699142283294123424728358183378011656845570257589243403614275694030254906819504887818303529566597356119045845274197223993383954584948791607765280022556680897223557472257376425419145471078025914352046355125379010213186823317247747910088417327976646764506782332472631540716055283248535839711772087431755381590064905608381397687687934947931326966276721365202434535532571996104546202493751769346646051729946659634882784982145895077140252764044581313292743630535022883288438734235874330665519694599255759580599460472157048694754542556258520153067345440644709126176806711711251455806334365602770942181316921903789357878162454709825509466833092483078421138063304193101491483759239299191065143251470470151229599737936966413654944008127325412385202310066092294376601529354167022140147469122628091314552426525443311895485953121254603358374881895918803573195691431548782620343918327285096432655655307098061053044939736141919423143326954825835171656148146935979662323164993697282462783023525521512289003590864424096378034049513990569505535937274391860478137710553156580556540613161975953165804100949496056096289393951274444024120389060848933593163994917266756011315713999156086286897315516728041799562056642214236505300926277974824684540916864340171426177552115898068634228135482815343408406892307667818075886754148267403195762270873708359462767136260310181531674803315288835680148110675497783541797970198614915360049717839330435822541749058587350303320690877027450596288694606318718114128601636783831886466981498759717892042010526975073534540090523658431439052204630400696700163520438963488576265323706644373715137373546118075514030498486797915503980195288567159722483525817832601299342074405565374773291494418063433714366780635949828678274011065798916827698774866480887655073646944098179470165822184275906613049862219043974202038542558885598263641124092307478801580859734452558927340917014493028158035316731051287162528334902668469982362575001814195622170046154334265950632526741271497755720830720109869545583672069023489165669315216270953779857125018788539728374856811289929229549399480461851466033128787602452085342480556947775835879472586363648142433067228201934327722983278181420520375534657814569299670406118745679486247899587149056601455781176911937799737617844903703039316578093958891960836864750455401977303901897958181521976180819850371157193280995099646267242810034796170396468994976432767130163917984130421314381243870454825745349101024864945731274936608646625284034106176127175567143015051996471083876702617347172450200441641536219327044700759077047613136674345633725693384325055394241895514261258251005099445673411536786355905858417042661423871091256764731547499312450509813061815398012729338367268661110082216871910772558195152435102884383486294555368553410160739520055056798612892778444004685780876599786283956367124263523124627242080373338641270595486320878888295181118458006819098859114860629446196345681428929134728509222932008267109267384966742316355146127744414503536905023528161223048282876368573674542456484616392219627006034004912612577246772121227694055180959284078752379526674820898578113346845594865099568190440545838942110482773993611269028861590331205907656120830854329955205815876263909153048094702061252356443191784262811782205211113716516871886053635960133369008563517035018132769288441702312677491561302342894929486809357265603023167027117695699490517810697075223367527438218866298097247610233951266779054089626377085298728102597210396915367947681778928554634655561262524864447074060652630997913220598828357964562253244092469205220296448535795929654441444549186532964107025568297295629797282088569102064406518574712890068199081062386839190329801919921159799299270818837993403749541666587016167621541031555768247132746555284356687135455316208862070444243020357674990490562039266808661776758174714907127639384411201110478011835646037266521849828689413058445581101610254332044848560778036435870582069824983060830094447037072062525319654322975668063597171281916652610444483453859407789818654260900267465908855159446223781424015542004639851810300821525827693787349300376338712401349627301322885383090090441422507641958574924614455815857082136673190444182191679431695447473000374624884886877174191979100596005452468636572987646907085735947609359626561196716729022028395867680170389000248368322900564196342612134099760107527375649193464961005349385016724121709079821012583824523926189536638963742044491783158228729887248861947034902183027967440283070810010691937301128911173161179265212414754043837193488396224130862578436233446132781793979559835436460185035364925345920488929216049054194114618012186281022563103208351620698057149686970865553119534647497891588886889206490458737009867488114255868361740411892612590003987403254878003367676860988241700732525511981301298311302838126579985780518181185857337958849116394870800454302554756595602810758655372696602725141217441059550531725103702469744260320763446386312736930500966375465234391609996087932408899410422743834864610952449233112936445548406910729415833372851698585811409219512791816411462404382599197826300668001702457364192152695057364619064541381370492217513697612727966053245211061718227110236038881506280570497979696781461561932667405784395331670454211999924306146464253447916023659151870281526556627759812188487719831639943655585086545404613368177109566691498855133841300382879567859130645795398306798766320897861797864061915990772117839717879200931315820175749070742001519883544930821750413876607638154565178889108766050879704947540707555600806159844047921768420995571121239421802332100256259410737828142392696961900737907757922543607990207315129124012954940086412563728349581711064676918685301407693322583777148803430389147375686950856912296458493685258378584010495962636739249706584921577307105409415909488295454970848630388884815493881169937666739684767328484564819608533216750101279068176751486843263209601448008634007227812121173571773931445771890379111586722062770672147735215633491995491422636860586717298072224881195429638075580331953109762398037884663546334820430440547160378855379509983971023541803684520166578885334791147138945705970001322413492614289869155555801542349879955987438734941519900549065329772391691411902416085306215240387881741931240040575078352235590853167510058083401461912709393102893072475411594942008265259199509480324176000730529435283494213557472101019516066924362517164523269191586383908333398997441066579166098013267213646610913203830960956217114830024671764044280196954464965595332479035163366784862817457451314323031110309464258913860833858548561212293304832599710930717151499535841933523849031560485794137443319960658722749618937789010248310208780370723293841532645885703549470718883328571244275308395730714373054819117548637202950831240520143241220272076412781121859430003658076887195415919749896006276244086904228407983288264323871252997813427332367291070451296564675247957851755035388868436160526041005487382630343293786882335537919182359258282726257069434465403527510034946321394861766502133238705471918753986570481702336428398850956663937996777879263835819833851773346183217219557080494652393464848252939289248229114507016656004565522837006776689011202064734160504504692403994274370790824070484679827953730330465181660066336066028918343730650445279493208724601859145902594215962122928469959391154697430601952971411724216222975889091155284131943881729874802716958333225614843749693486532955094666562342519142740255312382137384941572401896803967572485579134990530896751997093003624661967518946866988446886610662767742297345594921808683532376650765230876021901618230898875271579606686866172153675892616907302115195105552994849103567100256478361753141859538353898821273623144252043945926458189278226435787451066123186724366510820677687298645155179322113274701010003827924233932643358148366226506972158910015167698270266409794412279177003999324794055854969114234449774543007034770874513243454299823568407346639237290448386127047941197560305761372024539569102109559213952572078417664536406077129414194901631796124297180704781934555441827796318550865247127219375652709920038247206311921245925685647032629827058278084061510754364193002722678971698185269947951053805151537388923737676887962781936978917348109365706727630195970624049909878875570501646055373355186769850135669336995068086222030396939797736010706201212648892903349321158470205840514414819450173769570329832243392595345756463975995375809630828416266818359195159196972381760027874946314716044819390787508330527391721605265142572488714027162510853064026207389131327384289422086605185987887858234520792069985165197040763381093496142247885643950937503624393708933545576835762781575240909948843154694504072892470721669501682232403557260483928738185571102432528523967171701513674251509489236216488255170125499178832211266851873580107849929048059673801380312332083044660254033703182981779879586796684032821348504731417230893068959773824512560867650098241476484885418332447158941276199802764995337270581385116918328564604177461450829335298813393388536526921566546594798672114870227662976962423979411451296043432758532499446899559190499112397304872306018965107085833345062830330384172258740385218232276336893703606708559783214542400522764153354998989333096306902837786620980540100656692607873476586630207134751551406707102805336416431434609379579869130780837979069078239295949433505843706040549424367304115995249678736776435231354295777193521887261803662723290749467527408123145790051696678218360698355539726096041798923880138796901009153968294674811181917613366169549951795553600030104727304475805639759361704731511782696852371071538028336383807548767368203615099479603438990400263626421265800792173310726196192028717335664498546902393473685787627740060678197655808660666928675992251135867232435132511081907812770682551314309882788449471174647488978066490037460492545460320705231167759666275846497081218858803813790159650916919654029004678414648642419131027527769576837044136970984845803904715646097448819353317980378707297961282634063051461899780736917899323549516364053931696018095378153454548894718340792113234956675249611434526672572681700290013747187528384440024570731272257289260799209671107404123930584498644621567920165124320574350504482085266071371003450497699208971921874447013664449586452354611986572034118607464708848267152879325028307961690259181308689281623156135244763291254169216638475608396080366738154345938925234962045601595273266186613755684644122171278423728812862127670791181213833505313455206212568040305863375626123197666538217489620496710096523133283491617117066260714883252405084052015274944185061061733486266173279233729485156421687255131712444618218528815307543037264274107176123648368911718073004558199532015442298945462960535730097886640855400369164554126536634680146285156017627969059592827992961807125286013711847850011977018398722317347164779320551522530587467075716460346066329132821553563619375196420288796067418185923854892200138519754511669263610059660383861770619601475817438812623599681190564160306971501647637700949618120076093376740055333322493856150729957772035047929612620453972212936179731285077577828554712864142677685478817417745728037533092564028318290256037193333060443577678680668362146563061158717261636650661762306410228349071579040901790993638712780537086997217091280202611480705794480796461002324936391045106873241721511812817189673982784569498784715975109099497672555874054574084191112642107797555131847138628436132770229517157135272592183678581282747012759935797448014405543225747917133514125587753053811468151360595777507557270031056661165304675961761408079340058676041867031032065252281900409927797567402919426971034880667371229268184495381076146992163176899015636636170084442094969039524083564655979036425201468981421686272524962645411682142828573030545911885183703926192056364002074864080599220559239893380748503290994992650431815415706610856228396501690601293856592009140223327474402709565660013943492379554595183061400274363068866860317839461633925011333032000289954221353402623286034893804894472558198464421998932158634278520149413333204455815512936991691232257607395184982076431956018775043941653394965265576509469445222508406661828897546377503385765041642695409913199834499863112795515828628530481887822280053672782987098021796203790526395834233125967933107196948693308427459279338566810138365381654344083366874768863642169230259370868273874624043806621589603140478366551738439819877036329086564933614058872037308365152124521602113683659766425562453461598419023135616429771050656022655461988510500661165104545649858398870157074513621853088797136125990898865826184495988221211089394068435375050329994260893371713533905670686072865434079455072091836275027249583004237817089431380690933754657031777934159629664294483106005210522484296499512959534274052807477338543025338634611019494020699858725891124076761323588479632008574400242875266200172498141676213622924036450591698115377696325531511292138587104697032908063462580184078757165679261041270815728425432407609125772895850259540944226958791509576459458047517314942514351915153346243470926949828793988114716600633309461876416117399771782237375825810002824030112497965151988767675700057848291186581810858817770472254520427201022549395954226153525206196544627307356441461693697376405301125682806979364717499484958748441566929256631457603259326967145985253748701441899908543373330350434821028780131215110629373923012386823829850747638267585681858248406968274070234857038692959702674867735134626471135012725649812288177380745285088672196466170188683439364981785731589162038389667320752332231685213294960716268259271596661433988652833711416328069332009743698724351991560022013369943972051186127041598535247826176131956391358366105391588943777810832190899512208913642056838074611045840363764891283986029531975734215363215260848314688504131680482653831337425104148293832951925272310790737648042770727044771083449978404947377508681894722962382440345369499971156820082716406094700991654441807593651778734768429814145553606965587216166476260072088834928968503884002601900132808148368289335498687708313442428699137634289797829640239638292098053383536334840946955963670651655553019413340938636223426147427691616489425879179233656972050887371000351678916807531607703098466101841785596123457484778496007149117968170518123475114523338994155496763551851776658580751581311314703558097366651535678113854123769734502377781576601971145522620444216557343216830883279429563931671019478531340886649918870793377099873566712089503460598342583587513163015852740950838466732008618370827544410903269883397143013464366201261934435240187592408037275058472528187703310551103926311825750881906477455376014557632906374351481971592334687309174309364777122617473387746931778070253346674182454222589621007790319375738312841843270559347322964604472050265600735503433241197306807233946602657250992233112964744629286671959893508234716586400283929975101992455745769030289531584049802006546890497783680876933481187692624679586697894136960228460851983720037109213201984428474224906315095600017395570165689483765521295940671246115329733719331008185981423262587122024325818098692717091847291166785318480518383018554209706651248523684772610705614047418801933266495552954054378003321069169675216637839616769619455117316923365813034469364159373849285994600891804032459727752370841750634189225234273201071676216563816362470354990621289557153278105440123208631538256087590453858682048600602426894991360492539038988656295784270418528540351106309185952649988990214169297259730652032498810896782558532457792338103325579161094399611807530605628823909234546146226637164544482808513608888744821246704694040894350626154035386406814976445308290186027943495051687205106897274538666761170166635606931790909355357411310441047373677236581103202603777048694604995512271790007681051505325362352288022183572286966568480916747372085950705455710625496017542627577304411049383185093229558346737061069774701030174940992205847468697812211973134318097476973679533209113840685332178727363127630361566134608594758174883809132114233799383584828529967095306684767044175009183964010505865106112585205205728183518528736808239340740588501723926569012906873789883804398012603238705676078247906969839732908757178330177873784426744691019644248733498318189145826599316883449742796175430571034393661503523226599760923217810958290049954505475629403579187782373534276870313526824998685411629216275030456286212042837128229615418596161783529423334749474028943809736014572418975003550717703569289466327846701471232657103651968595371114065996730448548606466863855812019521340798950697842866855335055194932648396636426198156064734878328978977834979177803906560731284185138515235316943080121501036215272983754548537689648457513395886310126673574761699554471062433493444186539674401730160989878347156700683892700795488336703222073649868011909794998890994975878812295818312733190553438084168406281216076692226262990250517096351533049344921269668222959845915294686295343886255057808960986757442043324872292848208583681062888546090006610812227818235930666317868077950412774537138061015507849512071264306704484410305705066371838572421176928854612331179204965728043640131876046068066038603850878437879379496838424994251073639793560817084592720265844990552383571641905410985806137099146739971848264152251889971939419792906553898010465877323979820756585869272478533321977678982154293869773377479401288387170017937217493517896211279800238103657570188549956036772976385705125628944820808288024506105402750465368746114857861467991257213491442492954611089544097243721322214387838880716146060280429382737315700403167794406963647203533425662491062134810148871192193287331603824792751213950874236580696937730479157624758765685322812007647320068309335305906178615054044724126011335483631410772411611492916677190051226712023294968934685438492159687639196264496432305718570375892402774132854682085039154489443118366767281114388945456487608000067442685579943124651671449953021285566268004202108510705540816176543731057818657703898474369515498006096020045214602021936352237332254220453191916924860427420629016554253878679095802755980510991970928294011380472217006050232409598191306796105020155465991694276792109691023843004210990239347482664869746138842035886484002839644892699295766106303884014635251533280188532915199918444524326163330750468910761144901732312640179277786349845107661954280413854535605668398472055299122960918310183957466184970266585305836166961385612022235382724885976670535347737719147540845309816065573778134701657802698901304880441606927037446135100798296590285662149256885420457518025039464886482194598702367140433179620254379523422820922744564367993121624446510450803117009562841016669890730947811542824317722873306619335758202980549108996116409840419875846563790930008154239176267785436187496605186150206491510545633013079330683070619250250716591186889532193469950423055339854485748392997740804728176389456871929507822784299097811527760113234036660956297453076445956089172911598994046077691191269863865606184022584764854810613688836707085598343083391554504507667790373277427104890503927028239281792620195868971894440097047451158649045822447210047313187027394152478383404845239527917132420107112010506670198030433287810231488802537927488117671198416608270473546016657593234130878702390424904404361870074883790420725890422659861022939952240797515445974181718467533413396896898847582703499566349060142628809462155710908237918319323890337606576984633826322008530780950868089583229914085900059258974512491349305126984531281637146551867815046871651853217163384508171246155703976011427929671201543733752577838108199109668750647453344667724729369616649018554034487759248995969956374104792118929450082309313536286778683948703194425866493708177559364979277319773124925938807916191006206079340682741237144187990992969060774661371503940954732425140130301551131307035755941517789225526756862545744306738965020500809488667112445652247210519184478065441925065490483919697209625744314972097515310539110673377464002079694444048693577123061668145690004015476218121809781348878941367808971829952529427569122631906371619248804856578839396885621077569888643997610868042612309653637055371762779810651160733823649607101684007180708418967605110357319253277943640547888294866990947821825806514231922858988701051462321521726734580399491056918057097693173025282226739578938687870068138855647177648415624276672780949615190185060560454503740438317323969940181549298138051877339639565902448312850249716787218485961054913189830630286513788808402173951499487570110684066557549196751384132156187040115372028372329499664245871637651974626897542376276856140925705641075547942517974570460941425513114544144892700935711226136324402142305788327268336115741454970539599159584755211644981942237763500387481556337197541306770868607642383367358041076786789270374266076223686819902323786182959726442288731466101312814917293265661879080374431227038721473884982509219121797013262468134290512962761570775612199345309698171625902653661137910821250068659953084184425605854757152249434066327128297984138799822578102802790830396720526237639180926947628341397684864820154801177132551756117693647908277882305915765717242394062882832312414751908320989001152380671122990684342887732407864180848009401446692006902896568488550488222705956152064116510759232665344066327396332527720292657944876748584582116065017744272707487987984890146584158566090418745599907539406505739203504998178740196336683263924510526092804461094949975173531473108765341883942140031507441258282529371429869713627502305665115467730730964781928474797456230942708489771503670120707085976881780701916656663420657232297779087274770704455438854620198039740069506223486188746576009859331734884237826142511005169469122086341646472423013937420871218445724267519275828563528812938059921971340937302192548271594326747022787246046564858342801082890187934479164803711245235673768812572763710656427947306569870394040360652188065911789401447178947036376524545733847271217926201067559193071437278742715503721667717067208645093446750876881291042473099894082633688537909941105198087666976421375404004191765921383562885958675776210920274423257675256233223635417715039142116633860649437343059450381746839467946470377216563904143001068185753208653655366372585821197548126976365924765789989429692360371754128230125648087102208613198295999540800434247683789567904959466958148211575309669023960258287794872879983090918702036553002113613991817603295627049828594312221281075288163278246561740335605479817959166438688880665288966996799571072050522852162443509550226827646305772161326118188329847765622757681424740050933232589952410916357434233691417003177016490761742614343507613228148915075632064224836373577222790541628811539807638658038570151048453499061519915771393788198315333727824264427626538455545754145725349931511256926456762721945897168141154859844595882744015494604524480913683147925546934410564272443719254911291038260590853195380292539547532383608338254547781672980365561663655648217269179157734359949919332619802602359385867956639468929121513759960009233047254382915865789731397829503860008900466855422741223547445798162821084826817621209308439670454385019403875339958711963703970975401489558939241912928315839834629430503827802052446173738432495045205069952790474217582873227936718582147286207399704760360894771287653203510385852515506007368592230218783340726393090042148903478593940950741255111407974254922218746163423794487656668892859132359628725976991420942628530428314286778074751281798965096523893255075091221818882044008186939855550744107795401034193835823571313847210784992434689211901638440291763162716648545181738158259855981621369236698342492802625878892922118890350831716958281158389160718713486202858528264898975542389372504197767078696407639194946153475828061833798268909382053461952152364803327457398541042271400997935372415790179140588486919239874006853368785185935913275133724907407871503456545740045575239346599091136491579609599948892588477435362068986490150817040711921566099332416560064301516508009741857493039482044668167175573665561146973349481622234823575863469196095785140499860060876686507202447400570484562504619092777831515495416155608363042069205151442476769265773382542074338106334537816690262901325977110977523475947992243394929385323516126485868595419110509845768243839619473230459461830539536422860139774442685957920805583598550830957027151247832882576833177755110162084956374027207571517967338146055908673397110772228532919415882569391593069637804024328322038742260063896404495023316368751498689632099160864671209735011335087408511522200863090739194023460976533657523203084402198210701372183473816190370988536804795737283651106364080358555472028723400465802054839475898616512225955319355979774765492118177451407959740297132181128493775193376867696983650747911957211629068045608641609072988359082943140497000240484221888411180086520472901214625383535121594604597408827155201396069557155412618034665036609755987173710006208918963169757459797113908226751009898579526678537122900059727632682225985096585718171930580094149767572965632551787789374056151222047860062080823913400907798513140643669246298261370967579518656168107930443621614674659743684545522618665794758493413914141869427357907999280641369829517967580689187825227299844847915217320842938981047576233991924778561656363521097490180664961021046580736216396767878181869566926314533933225428284109724282260066570685539296818216310412292397153771804411419732259106463013313747007295021452183596742005691788396660382221432037136978029242688475507491295130234791619304772729993412344578651113253513878286478632110694573128434406062141017592034402406619905253077581499267374223106432982759805596560340649709974498556668922137332147211124056300320999235659626116866631725931639129522255393608538704701408552977043841247200016486583435946975075805464726505301069285495671329308163629826169108016143784249008537311844111837455309260923528518663890300116892205468770521494990227012841408422714057213937040620674656438576098421950758683684206302401195276386852889230122721378167602248755798359020365876870736126120555191265302754013063406865940952043516067578012862084397183148267587665119616701895294559566218550356088931382123851350750390750239961325138913721856648228155676402887740279164065443876803446262952629812635880517664979994848770730514166373341254576341550660263488566625737896302847034492401308457326386590836957552016269677711294991136766289282825604013373877436272275822727872500640723343554282345309117361137830606229627847958091610851944541783241430282339050550330323006587619289000947702403333332905117740607094728431280360342584966359889188265559897058016476148318078948743780967424304939644212538730475156666615796056335988150501110170792055335453250922791115201763298999463498059005811547396558771515745655223761045633174435703374092378803233420927993446419235908678729719909134951876320410875205630259068514250990653986339416202401721412745801684758705541072270254966872351822336685555875628988029949066902993873559394398629449480679317281898079663448933486043755793547499261677960782502541410888954219419017529652337216140705463236136813757367900616383620099811891347631245974768623921028676335389259646336627423545407398360660881340994427005289074905898317738651341394032705715056133804241609839102199779999819932955140855004757496852505240083344885616662909651737736353894460716268328167869528450814261300553981004590578420729859763713994258015828167538559250480270198737469016393558668459773958078167111633480627116502244778818277432892662656049728246078912455878913623149107307177340085371305843756016851856246956919977036576638246140749470279031203296232196518949637939534579412116787172145154068689134198973310543496329757789924079719735225114540408336721568283334760043974957206997793094364823009701988964692749800634896362993067232459201320596011551849260770890160458742217361058380177015332702958667419249790508667661013479539627289533444938213757367435558373812190304716086436908916256142809743733332963284179190343900912558164503735138861694861919616814711173803769417315783330654569123390601183560609055888044238784470719642218250521105358245751293211656437749467376163283015831958109770078134358967575851814171957968214727632740762953953519375526869120348750262818847787308646656949030303138111582194941070902250386410966226967762430904264827612923181886634749172261303500287466158750667776883172811482114715249630177743221632121434981943754566573161666196505055322703706847847180205633139754907572314313689597924413774164056873307839077083649880907649267677377942706382596660880733931861292452790000782112741354332244254995645054767545839361807445428684871132836491744296651599547720121238353966027354005182750601304823462550453710677203789406444567045214539963897465223878298484436355022857808114025019884164875779082368906300796127836994972717082018465182313824525455406506018960116233305106570470713429068492044403693246423826110874397298515036253539663804223993564910763908390004729528025026341826655530972083764044539297369251380696446011326259215372792416566179015864838324895500944292471570846534790700862702807652123180344970789921265890024981963406611692044064924237353660076053563823741146363377530654700977695950773482715048143377776176274577152794829894043336743865061975229666032473599997519008390702051764007869112352712133223689927162876273736907541631196293993142650739224496334622156895584345661310726203718874790789404165030495717851687050581564826074614682707992631068958314381210000321727618212376494633037409129305341247424895934863523326074173117984454884986017418616222260365387125533251885723656364565850207068569762581605467122256825356393748635987836544092059143183667367475485712109255412490344852842054172219645619246994812979602193194056845599003637113719749858142920955515608586226059910316854240716737881911854810974992572061163234726340477498915962743096444627081986988220026458216312692037182244335523995531348737478049064629024224740275978339616591120512413329859339385618862088097008627163624214303217040943460795738772971686677243962011533355850859387039919137274974445899172966734383514775546211160092724727848190797369522989343245574458785771867380102081892400890716483190443902051724431293087530621384798688491635091351930090308756616648791582118108174399801385355808890608461608076831615304356714786232705428495587674824907638150949286776157008302322135151862854117461182008219969423886711189599860482177408681441077696528826130694857745460806225812563324681094904332207446675560395239463696064039664640656121911075215972690722237017101500540096249788051149528660072634435900384019322582678748585610719045695106550394213127395007051018271127959514760588727050817661776508014375335033083556588135755482369079797457248488033630077738802261652125932889732864144338182957955886046623851845010924946239155370022726705678510397329520904315731415006384960875220569492469036739384703667040486466874473749388454497093326140327665320890570967910262748771809364521302779397010049383232642885689413353118071521377035447538199607988382892492872832150161696644608689687655988356430102639969498798208338970393705415819458721231694028917436864574955423778613411335253079130250966119210355145923479385448377143799953037770436531204335726968771853828639099258229457811773075714670764174030789451094723979392103626777373312223874733116003595989682824441201690275250755458780359840213717723046326917462195748832238557592842362711498161154203121592742317752775876525328942382101706674531947463586344765704261987259948752512393521591471114711768608589587685257427582595753775413994036396436273887805308644088852279815828473683533566235918333799658177528102955400772182860099508121160189335621531551348352206166921681716367286019394155957860914665847554973520786683779287101523902385529493585400808644034005362412214826985897598039545816604782056621233765956720209836880186664176057763445963840289894888785931460696138259697003986056257424576845937921768802618798898123535898478906925908059589922421888504459831196503907856951718701037620993952156085238107073331694518783525757524770502501868272030181882507439637947932031111722659124131308666001036238416922997087349595270639477813565715484910675252103168287139442340958197442273965273667543119149837872708914931701267424538851212413697581596997144379140746633156475590358513268510262537560838234280326461851047341378683296726721345086126878151623716136346025830280915405925411435557144261445257700251776217568769139360492564193408609847475429827979427556167228063744515932256720455433284811666069598007149960095626883019041751197613985828728877375262360880728663251451101221496934383617293818702094573409465883768632461194721877873092932295163036989428368730190367826023434293868921370549289885348142694141164414097921423689888203104420605150836626779288584755894229122203629252324374931813253947748445446602679304482111910576908121660366331511818510297886092333765519816998854946581064427428678644991763047201785280799204674501087636640340735795222944131870357692864367064419545729086450261154287119775180813090591095239557438456675431842198903729410124930788325854277725632019387038171241960379416388671468454438679650941937387672242535842194183688325932399291454428036188520418819736514994861616088311390308110303156384609084258715299672918944751891286705533720073415979009386036880220139787258760273410591850023785005089023674153212625401141981197254313678737797401492318948444155898474980746014894680696089186309259634336149872495320512612432562556152630405706684123887488692667636345937763677850296934397030076614769952878046606826763904468214960581916308176487112111003101586779661687731464173157623601540245140277477323598304004136338363803303722822521753452096314934667797101311200703169644155858603283040114322693540922672088226032046580398397338933688649591667665801794553530355730567381505729084130072753689500923388184855630620999098560551859812782741368556901684273046440637900439790333006094091745458949555160838061643483952839588586397592574811279167682878459473334314010589738455695670956684545640798442484444124050715987901107068083384198141539328092868572515504901774898680957096338866782243967298390299198301197935260843220244135094115479529220298695300099856021757488581526782341029667597504123911991984550693400313939686365889858547718864379995562820430786646669051729290168126965903527965857454251099817093440515059797114897957403600997201044417645293416856732346906175559665933127795482214602421098853436748199350996825029018105592725789019270836704916059773435235161464984760522877492718276440501947684989684990032230629861252627654955279192198916348498190733218864826851056626838310093147998661260233138062760038219896774145937472159685452770326774335815951662813141298386531342766933895894540093720499411375791841031650800123006152112222089791732224071142264194782716764104242498446909975997763104509390720938194313945739432550399966262604048828681022531454119587329650855038958742519623990485427394884560111964218563059688811641423277665695833718373862287419733267349787522224351881191332712987908066877161085284367801274547735485822608587215642762660286142719028669157947540076306251355583710870930515379260086683108237076149289678283210867270929257143690950881018124261525575556511406577356619148693848887571347531427893060105715639108970744675301309139132515502045820045820272172753121800005493638639043912269670393225354094020245129663870030034536253878476999324539855933394699450955788557854991729372167680505074004248439610841982806476472377486862162181201107829714305294081812060311556092865120815839004016982873058648738521090074462913066894304817222566092689012067072235580571159777046391206685220730156653105447008978481835197326087680796050642374455958098904759652188643022961272903876876860384352700921191303583470503756547088997375439494385657087179485324862085361921052043035860066337851971646714531945562166686034484894004354780627878665497004148979271875398526343413600446721721899030747866003507228444882678227134459473061452031927433226001310949221846075927393574333297580091891824846833795955913618098413389111344765774688217289578134111801540326504134047134629946488304389655437096610994279605045154054458128112197944311898825066744259305272872144833758899835697431549703815304767962363010662693571626927706220176352898945889661071395117551398153635970210615272685647019213772421098207138623417483622180593788217184350158307202887914350827014742714663174813041796434918332563432035704747736543058476847812177728786868075103729810391580477474918323107914821619953447316216460740521849806619244116688755196989612197364856415637309894260102955367005382567136830082855323367272451565135258442799274819722216841336517820575304265235835008786156018456570235603274488696379718304164115022133040338458259324077370744899072916570404691719654025769646394311841422387413245045622085836677509907782199058166091907599094735351543346035975486658679448080113759329288407678046307189724080419583385905501662863678644899074525513435832822799456321628295177455930032701125779550888019473947994932753223365000849571323123656545017326646588012498691521367186480973068763111104070514497477680772171192436084227571234806733599331105587829725055306454999039978101216314898690587588190417801690537177565320899239523425782219436786689604213263174917892893492559870811203321742828224213009539024729352227068473884563110687373287081786515429076232843724633671158299901322173500410812337125035873447353176247502061067763537975595448992433604766614900840311078063881979051967489114035260623358600127288331022704878982086547169889895293585798671117763054964894729528795657070506591354102948687194191889560856571648625931667780774915972156058469642380613078225780256095045880369495517851387034843711708592089910467727019005883879406511406359189780885800284632317959337958794591401286807219351946023121860396357496351199524101741491803162021278998807195753549566109697262076303864918828828813627796923009129592884578177314872243055879660258280987634363142398871163643754814981320586413169416528178722352692436336596373636532970784384301094298049430185979499471094569172963160669798410221098917714350524691250262286709468667279147615048822537508442852211981405855027835276423129539403655697090112048540004672015211715013889367782475416084627816584794423936138096716813532732693520106949332181794093158638631681093086669937554036176178115726058206433600959844607482526490745810377351470618646965356323546230163508466577895564503166225543284360985299673797425839205256310220448864507463081749776047011550098808904107489225114868248452810018482165309420181949798812427239208592070477774620044178786879590259221930426210065013455497161029982585221634722674504413098628020101037495551960382823039965985554310872223944461472841901640210267705335597513451704035857555048706253748057770798680628898990010723989771105691881124283734977555687563532821422424732587230526935997962259603511528394555288993110979002775442248660031333606047670873371839749152144387937174637362944806151069465028227178805745755701530147258269704793620455982853186106607657380480212463158863378061120497460477640692582937112350622092114789049892913871606008907994804862379825439369656913278195340477120345773678076964605808289270211499921491570341749158866532303209126065622175823508683062818904993801821579637007540324437335718922452895679845239616410384413858701770918072949864828952298381028811990070120721259242992407571967444115816177180601747109190743280722747109660691972446256364719856756057989892375597433278123550197793554633308683776806342958287387624853682892756927703606051347523094913677094308057146079844735541979348793706386138437793120483278687750948867065484905219913117789452965115219987257869173743641231339905856617860796602979482943616592645041477258897243826512994411666250418619967004862237019097448131208935120968027023315445331241314337964731551686354553859639855240721249899117334847321369280506646212929006461388928469173789469623500800441513720781190815812243420974744738002312501034101303493843989113694481405352775357970725161639119911862601035921728689889940696024062337654273682643020809408982884092324819937299282006561888540864166279067111694245555647391409846889871830516836076321133681067878747638627166495983295319631775593473194942131891428481756455723337839273406932468600743216702075702997391696870651197526864404198598868668518886471216453951217961045266657184326270773276889970803250733681896065692749907650526732501993834697456666827932230391606846800288437915134386386723941838720154757687327942521939065859671677811699400859023337599483674457177570845966628860391749041864758724235905254009543064458478606984189739131133634057393491544671734464146531693628919076736912811978116454654626734284909053090003990755664726618327496671503629979196082604250819982499548770862585904423073488888912663680986948074698045583704900021641302922198740407847176469422924827637112768361648096608611701575886533972468873307359940446280789392653384081797410463807550459981252482841100015087469675217887030597620737684395661594788008320065884687219206585807285374115619727195858506281881591276122874131253986623613159095758170924119611061767943210379676462946147315987732340551248929128041606061285058351562216761402841804587558476804482525634652944594425318411867248467143975954400637509006113126243739232667087430434006685285697370393569570003622954405451637105906736665288001512013354617286751235682669410041210040887445933809794079169514149554679698357533020277956619787806913611498162215894477951611740236616844183871676895735352798663525132473671087958983239896765680261354129506034817588720985454329128045806453924606677904362304588972506024021863409342877683844089434990046402503361127084968354794024064586580215818909877620310613419732906213372158916024985626832733659647799691057828134173565074121070951544139295594401871167712933933912030128126866156665159600677070918818343656856456742169336289494454120504784509210663272031702094602322863019617678021882443657840861606871366290297669768139816782052616028446444822610682519087500023534470070756254402296803345576714655437367433057745454189419310155414997415495701958664569665846688236779813955755144926829318354599475940204162833738418359448995756571031264755741489340840634245017631381340823029081891511341955537033321668285084937270711284560566217547090076313847847100695182154740759289205298289476208679557296223058938816084988746037201857329929461521044654083111748145796409860133568326020448208685534284203354305602917413473529226855378812609044487985162553954380103821298723527354501515991914717764978778165060624073782304118588690356450461261771625240055713359251856847637066803993125212704042156148447045402659986617782137978967121538810252248424864229752310600242709862399094279150743656486765758944146585069518410902575263485060728960859443266068968530016917754359375479505388731093533906024083911480505579148105850442697370040774786382155107276948985258963078054237469428971184288704899789496097121723858740940610078153432554661057114472006942504638819849574759962699758575387803301517742866786572456478084230588790051003513995733294902649352476877135338229747814558880813119828544901188752483728473498567598714492219711778420591493488209719395292416579377533632566129794724736068171581014624241472183467667280615183553912514506408496411309908221532687613092555747708451002498786556513391785592800417568962479751233767779930727205105164683625355074218551022175340630627566998871134857440279244531785854033211853739459332948834054679234074756993501923408510851402392298772915396560602283990981727936502025790861535383394189322121870097117313916202263205164497857220726268864302883948906078361308863892552662303200819299733605164813124801064110310560605470327952626532670814265013887620282787470597826632086054277121110233721344542978228611949096076674396769932690623187374536078061954598309407827676652662399986971190904667020061498013190512916225840964448850514930937121690728749614277512912132862265886012968887626283095129703176100128041869857109094689278163203473278864840337803794829985045837826060867519334024856073622493563090992780986356423995705416848618932394712198538862907203051219785984016401475701656501603819179546123805975689794135248541718607052427021577037686267740844518571555681553569127754084034500656978679987530674654712492324987564748158855596949058691658448657034268011569352253552466981394465517550758759350593817378766136785530570883832106219533184050296905409208790439053678356494731515804480021779722880044286085237128680230813431389547911204043506319263130016326164230450352481298654223267999715435906723887604561187791475108644862138467188049438602774524824084912257986916262239003210339709357799516147490261947229453503362609729515111799220207516636538961993804505063535604163036365172977358323564500350799110755336839655338659779057143488844486062588661054641957821021328102179357326033853580627540877892358286124637786292200105142796426568986129901395559779948534404362453517670018775770051554362528958374274650579382880926310931352715099437411247174590748707115233536043281629057612409303726064837056320686769267085195854147124338667490063642928160355632219040621297826554932803144151565180502230286147570779162923386695018607268589272169514225345293894163725016073609813423075999194768818521108629313873720628417601219043951549662663802664374643960585398944461226980376925826794227092899477689881891996885628051301564907743349978244146580950741651415057993735876273409831827328718809176395746301930866364757776966224974984475471228547243466591375068855854221290306155551063717394394843595192630350736166392413590802280066105045880652898584938250257136316414494035277001021221519895449323758964935199298661007277230483545809111049466528034925944119258838634387910180937672793230548374230136322473076912654587762849396134306393436429589421173196228407421305603171921394993956117915582330170718517245412009285642449549841198800400845821271621099654451987313151881389351197346091128462832883450575224551392179222498497277983548827048124588001918737844095461952112407175895930965009993037865343611503603199205162258233067538503592907165182938968384934817348726304953103912885098456625996067594037799536003505877918519056944257781563602764109860806009725205690219457715900533446259157022511385112208174363839252391272184173902865204522641130848368580281640685978094194779140280065402985916024159207149880453112099683701905213719586453805071577534350940654528817924781711912203305795518089486877125937552951096064680061674388626464168002577656322812860578150343349635143459378174748693045076229027032245692324836661653210015678141677781121168692979126780208451756412480602833297358839910276751143869377281410185526242698020807655069523187946419355655381088166422103942163871661502614242429348255202131602855285108990931728877562115508474935205243950297380701025142911399736206386119864815607909238365583780165860060029355576837000527287846818177290542458918466262195359429771739511418017867134099332547183161220918709392321437534944766242075961286877889335401030202874858135784566878008389341090503251200356296604150135626521784898359148467546284987005271309719443463766675341520535913104122251506489369383311287183777057834482297570097426932060048966824430080267639091282411300626708418465120233944648564412449243394898000288167860849972942126119794009496531329746478968277345986647352922102229097863034275224139750442163784694066174752461196299845775559029219919965653825673125239072437631280315581736572048711519281422618674541296954843124421216409903415019664851656017923116564147588661591715399355112816883610411701269585447803647855086542818385251192467767786043537580617331066720942673274896889230162922672740021706955128222554531979391941222692462347633614872689250468068894696364726264612422216717148558837573315736802595220253166747630716284999008018473726013461421790759694756236686578468491739948326863648837266098211564593577380375810648547300673739354050233046424584653970151584572052270423692689416244734432322794889382242181306888316545009306839132695624398561166762180493341082179004434452763544941876994149432602316461940367735821045424829924035160357777762396717146537228687553491565357265074819996681000539033204070869318546760316128403870403180063146532376137802132151232061240086303614124313725126634989920626886052218284185713121541709490940417026523668848497560142204483974244327579931439968054224699344644814488035502497889006968496829229359352617452423483243035178055414742085176119963474929580923569064425092257208109521324009980295745788952208312490506529934245412881692959806682649475094390287286887826524903018726280542743070724949953001743627306768940863939342323400681798697936682704831946288204860736517412169964279648686363320298289285711909570321594562145290864269017626485231398217043633961983163215455998049125494560028806480587629479107058146672858216021801268876394530955558311974807509451038842160457429293636385820347745892215740658975185510597551840264401351585218729445737805431888276029102618424313943464427042230108780839267852332321751581029735230447872668633748895045940559829382204392695515212028454688731791721116766160895496290384175178617613666884417604848834969528325710623021650840691581917809373568077650901397563725559159079932651536789611241119984131937614894046081166705705773464638201484787305091083221659707867339735403945390589649745203608618464429250191296992384836481053878738259613502283699673501912372935068885719343907977738877308107280094081051855492915485631735921942742619988767512849598003719551750885013670183744419021908352434601137133304975402233383574949487682693543848068553890462229289877600816167097973594096298157111246176275080871541549880935815924255258926345191757328201898732452001171631359700989523731610347029568359663305609960235996260043864541278054271063978588413488163213452321327807132267372320062090535005422664332337547769926771701600970565139438801689216223712389908546420368479050367419394826030245163833275549975376114526499868958427523404734497618271472902536245337940066185067669558222714822063556622534378248437474832767518411071152233751901974369165033741364719483351904472874699954363565027151190126663881576119110490489449441068345906623092242898497415240158563204768272048166650028219740579548780208988483332569108869351923659202006959146991794978511074084959716137559433260535879236825842523513512244737343266855548583290979350116105130272995384451762431556340564448771179721182153503943585241820706798355435288469542585518116747069640367611927687379923956627393328380545121514470435571974139497891678179203881100524204074350339180985112997155072580275553582756855109530728898455908774038772706527519651196170336561519349276974744150891104492633200054219581941845621853129641546775078031439312318289206276870401777776845742565552915516228676835847416173033767073131810733441037298389420595209960849721588321374463953201122204325109102949038625823128470605034205145297862605689463736446585158493101575033671259889449879660483063897172007095633953123604792053357063508099482891613640681499485039692116281645578923738797405231380835873053138848035720329165997767699421867944559736055969644604648802686937500945073093293621969623239596457746602018811226413864035240413490618209876906848781861441183356456615447909836127583547840386918076951712305734241763817909625756097796057994927054258308404901376075495751789268899022027971496119191915018852273591550206790089075289413199061326188394889489450863194756536796669966146706237036504356330956630696666368462734909734768165315619602500049613521049749038756977324339891675434823065691100766193026815456352966965213044734035296941805216638799928546865634142483711117245965996258287339068413363144946431700985578752909755307295870453917765948016877954111616038419196297783515584355691418560170503442651961705274194666228326999105784973146826184949979367971455137834374042699565415106408850127979692945715811476258545828811142744884553286091614743569703852351929102052419683926526668179941344559647589881220800593118610219077657897658635428349274140570030270789998966335947119101364142998841296367359581905361576106660560917575937455233143165619064797830729884746944079724122406933815888874694318523972364777519730231337767458981161797858255943703415040035001390398568547091759825758177539418529371326812597997462101417345118007874669251895352744395008079971565353258316379976910584925554054976582955471817418741127575770833338959544854516318391247176946446657842439091428384075658123023239156566285246435952362903769775039389961918164245832645816479693215449747166558482284429120717735754058917242287869655850070752470725445097251655459343874362410823625175250086475657524190212530771897988872577952528246009565857643814390711612386593968199664188831978406067574047224805821835709287752065801602194838354216744466054983572924527268183722726845254763861936656027923089072550840950797487214885725157451264980899858857095718682002902133692014514157580590977795052884907617950908024862309320757198852181910125215669854144672902846625267790200412231203596810284244388482700603429146354551930116814227259337852355587098748434385639948527001455498215952212626341210229786272577321145265819382711420857429557008278078032175599997684042563254233032064072601312789502318734553440710021297311532116632909042776750789211903742988059324940097469749385234301920805513432733115901803309101499051000801848489364048194247658988656230782484726051885808193933997415827246546285227351502101533347110242399920582821649162345036965249318883771688231624206544157019470218464884386922809521600920322354256670695597154048803882492156499316585797833855641404635791943600406582141362346710600849726304031274472529171765625396676370634590520478168478069570910210969783176640875745504772503916908488758101993018116909650251593638300541125558448683277749612848007626181019837931835550465908907599907124632767510369681382130899361774277438913850948744539768571509511054411509404922629918951770288391680863464966135434241965395750404225685301140585296548119252463588137720105631121603568548602736344216755785635597824383713348180916005260794597174934244103715122599324717820851187951956584986474034563379757697170009023970333041294705554858419465109225847308087832995161038042452081868751849737726915527016889762246342417670535128033572888454173772949498152046351108397402924456175080298736536571435649408998807882901437334225537545959922485653966628048391732831560318972635078533567009318867318445422313462640160949564221874229331905670037773122369355538412495475179822734222194318866308056147239210760359728482402641033504936024814615784906292221248110067129204022802112357809128296316699254057902587788091014832164887005268003257998645496291823306022244617389555143939577944091916076654923581906710118163563882692750822724744334254544396143332914596764651722918663261250562898019219421892043833427520191915998267796312828892636623269563719119469063571756782403829992850932686994817320449580929712786316504415990182716744767765497141421250930133361126250116317592321727843367466194009378973286873389137566838196554551380531464502980401018798556457445752502944622649412861522618915926205207736827307638814112189181838232269241150757795222498433984061760353446163778866290417129954699410021417039310604279518254223071839915065844829238419229984781356250263596303563892518864907165962367307704807989231643394255176950939481846565879254050193625613998709768952432627140671446093223978889785794958442731781022318346325046566262038472687763200172480081649497105106806951452893453259021876677746848677024177275759024781651829713198812092121120092416793129194316682652997901150249826939140357828017218646125544810531366749482824673539964675498222711663690843204162252827904194777332839959548055868742300845488816054862545398367986131668353107237686546902756716838645102510499695946920321688496776956605675770858120795297676534877746987247768974654147578840531072643558648450160710370850274109621192213511949693469294429218186670172710455079156241244396559008742383147267506457259202273145742315087853588596880774232257283187385232339555708255155955110172306913789541003119912136441536199586238301318543966266434634639653779533556990906798193850114251502192882205576638483365567471461029620608724058068929679265194122538250100815346280991076097183370189700180719327679498976044629339500026365121860029869883773799159018998854025326184267163427461456643138477042064061947010329810417817871257904749283775438711199567859814583216966887476217477106056044144690802264971173573845626129467870970567404429348314639344092045871369692529685218981942925924852561641323697733644191662621861279515697180590222159362907587422982828908221508837156267588601942656870954815281605530749996350914845990544270132890943325971017804293390215951585460667739416722764353253068900621765568616521144234242112334464069741553931881401848445718318251341443170600693779875483726934693479109345634060306618583040944046749927247661318163541466970846413660315122626146823883902829106722234295143139024791187294370320082495048626438285922593253527904102394212070906670346569619676510215866862176138107536440655851024421507991319403875181245770219610090559598973535782352839157725842103166543161488558878290589710499996722100262938874482741421964741473779249818680111780311677758433903760274377712072763337105942764652909470432749707081414782410255833563248860369287691942615464730082473296403182320938592806510739460182032410964185402457674828666882760434373168282871567396997812732021769499227079530829238487543812362197331952389602337435304330194731852631052176787127254019064173161341282222613057866218757306339061897741152903505790871698735462934965961515935443209573264102975891006210499017491397765521285385388033530119179391037392337566125118545839614705058514612737171289369782323768570942114080702686235581505008396018550937370697543881163791982203910426249135727562624991658870842701988037923878879787757543741206733610272560436359432943441910777536722962959522016801491002721956474069078823408174866116117731662608904546463554011256587034451873894187357293421628021208873671569796766443078563982124215465609017307861791614619932691002419753463511975425950753720572148950149270984244069959597847601580076206508722731206337841312701726490790822978612693593959328760757661955013446782417115560474444923532225854174327334030730141729935548717229397767318720043306214686063415505752603980662255616264763846001724041452906163708242623507598696568095153926978663994524415784899574437829205909264622615026913816959407441557604131891499706403747838207833442673824961867683845606370079314739114897860381566947899585801515621507458152720656604871648354747039909272657947701306163544260736311373062286961520146167405566642787180827306303185267143610126540024436596491072001283771718841156405084545184198694699126584284354977321730853278408895056244776919641599475933413947303108307756045445383556824568789679570501277894691929967438664134426978523662926382584898669132079403943036581893266737318469334426105193445653142515626476556702707520756255318810962607585155158913726230226121497423575031027088831317769567616207069188781390795212391668850832923640209725899940898262320506633880843324440156591169929598791878823359689898775450552756678848874537672208373142085201566496420318833031638994384060333689744622803086169224932988811368551664413249982596802085012793577929975164799509799508974510864060174890150774222264491679720183195195040281242591933878391710426110983665512937702472909787488018378550317013984101140616661904539649680013256224786774451672374336717104025430404917888643265027469811093711605177248227633137967864767871221365778732777445107984445877029525179569411868196910151854050916470097596529390918115100119514731638165343187423477456441755249760004383147363583001959586893222281897879434006417601160652297057195145740174577693847535075761662563991256227525289128835105412532268885315942226853001600606501271035815516182899684743759841200298332269777008409526285391689230695825279159350937901651573117775442308532246983372309686944954596099573579850496639686963721576745851971908831965436483842400568726610152443290973733012892571327865274943814004810730056610338052833955917995587887587140720488966279297078729217272609905243269138112270967576221499815190475291180108932187045909899015338004407769076138555948221063446771947499584255182530458352701438690844895168742842281194919231183501167104918471491871899291573547185003409156754138476401673227578166483071052025304902918181840964936988880814719074252231925635677573685608440537757978357579746721098470805359851305559984157447586369984713861725245199871255184492206378830762943712752740810134092190126722412184710750927249117795317225355835653590016362472060637351268934235165043161214143244364834293302499987819693150904332298224898133388249883803475309509732518567845719871740981331114881943688407683291885035634801833070264852586542966568448470337613584717458527525684106500190605695935900827206122892908307659665570733501164692753339609548037147839015212579793883996281475058686512275534542847239401282348224697796299246990221753415636509612110376757282875588277979066515309738070083815438522558397283157647126631402546524607945408137944969017138473540539059588608724113235964095028383074627049137762657643514106298678193364051095111718350452167325607099299398976727381490831566743500471184773265365827174275962809401263438190940038821133332064026593062346259677898923547206317166256153088008328118798359358905558020175362884781136063271750752710691244635750791639397545689676695036855841025018261484280840307319706981314666379237660364975548764407117775847479319732158365990110110209099488301298589915232137612794646548277493908607464032817195511142542212161009693942862996667832478687837763118786989539072399004614372527346925293825017201130788251956774368191277773822826479937728997269042548271800637107455989558946066411649300073668762582418005999267961760234063658719873522144022868864715253731921294846624557021684415737562708543362858516468856348495372641523870034690146271895061651186112452982118149119393585057413358623733820389310232025293866943764569158256449976572788535993617284940847973389058397716682264323557926872830756129612435980370979362079606465810768790949100348812900928395370301028541624407981928734786940717486801965499466700642336034602591137501484540055691592644189580372801295068914184853165681374856875895410856946300974075956838398378853546490136112219552965869408658392830557032583760493621229341063810016263059587138128503763534175153064382346201025809560097797691845864833296754304639796458285433930759694526622943994666825785154013947311741092215060376877136161446399280061221677391284789429156411810282983021977244626113086173840918968637575866259256375203668772364631446238891141284304229671715264532419088156143570979610589005621910075066636086370336274841659248725177657433203104403551397153829977850971731296336011801407713520615158517076417051472111841659976167845457580527051126808948071112437871884285845797741411760372581346953789080648882224031723411195752845197455471021533336756817995361060507542040818122594035796317050215461927711118097740214778617780692813349509475850757159456702175630135290860677775205949443793213226268524468876546756418642997412739978966463307243737722317059968315399233691765075341106914065731568296208143171803684577997280238480517843549800935630283005177270477481541724643206300150906055834377223328186067926665895667469110046418202175768521190341639464573107878846756659999737445856257907515391128234474640056503126251742989831519159413654666444684057540758197003387673618494687688392595252423060938309118223723326414635999945011598343095879681012583717743158842345332086553019854767139245069956825806351943614424267396929208666199426913131595612666190590386044391947638457977944560305002052685140446764393936115184104627726675156017810100799844337037678597542323878769152595142652618576564768391814383155950688030739340956611405995801221336538803878178949051340297751580909339039571607250783024818327346829311371897762829565938570335675873616095770596177490630707700054811256759039313015433870684950851860146311872884944886087354386666190184552127236794782732326879986279406005100327508975793248151692187285288267632586696674762857749422185620574730075724176548646890075281326592337317134236177562841595316770644116406675890213688965362693843554326733667984192341187807421150656655968705538537882242909955014025094266627963200393600982742161014921059895247062492367771990196015810773985533038188512135961286774198134966274240224178593074393905004097551832285070972201500983759956427102167758053052069561882717815658960527684708250656819782100200133830787542754014547190876320739834356839615227336509899019385048881530248198588638949716997754348777399348049512860682136046664878631098919425505722599574190201865094658331612186934311289227524610721425249997623898772118509702147794381681244686291981258237338768706318607760570947527902493238913145802959165927674806655439054106390692413939133360692353895717817971164816112546560649406462126321566873902320913477184244724604831710355731682549070839005733311335091149186190796644742355674774456600913038879017343988772905037653908640060699928540145274739762246671390894993064770601333405208410931393652220092385637796282579639931833726284783215304255677911831101990761563281310152749235365991495932134266737621514237629470477282251489318702889432602719456682251752984117837549342476428768719742654699656629905077023223811840641219015740866249790373726987413144130570911295389010504849114629311941895726582317802860505923346683546244882251475837880356855487031204669903991212539964874451356842150141608331988223632010135891835492500569104899959757114455647749194640419048565265496961082898308471226326379272736897983708416047052113437147061359546864713215064914749670829712726223638567847847138132354678839090786020622022220858666775011491200809585568475784018058045043241464422992075562050197294886683044365468369728479001369641725099208285103959419218092497221215773825801639648518576285320646102860578569882597087279035824577438915065886610480634072271249598794652838550219873803443010051828961300055200654073791209789082627809615654132753827222960428647211477845143585750755703697493951219085287429844135777853678843219137167690560334619436753915047629401663144232652843896278104520804073334391724192156426571588263479269149279105695166332914761326507417917230865954650292570634557959087099171351209612124635082893603811921508597941908192243984188799342944243402188194428778316108761740454349714570695900298912394306970258225197011016286976205573495284856381479560542401347290939306090313726318588127649872076097405366393401047891383502206916530465030355922478145036299132149384880789071643527933778142490902296068544046579707767352104337097958712224158021304464015724603759443050191922238075080643788102662684704461702136454391119296931384321530544821912561587259680905373753619654522751874425952363065161174047878569645465516431143883938703559635627608411974778592036313621063301246718246914105306070487009077886283791923640688621266617200884385945727279053520567592481677495704259729790457408942891438065317707845691018794366134261159593270242448258691066804046824091546953015346605513928927924700725991489788230031474091625370030597171543007918709315477746452282943911015291904092627895762626591384605219754396526211478946589189180660070157823666156620381822280829747291122872568214944943256301432631913530651315189732375188357120346004233748568527487425287778982484945804252812816188107356648498352086682316212932454710701877555806362696126017730190722611419042306165365118681793464724401128096319588434401027283245801371787066443775637085269479350049614209985005739713587473139791585488589071498609806063698515864600508124072567096785549253056548078445775848917308627061790521863539930380283985095857369746929311854819364160015122789874497964802066067907361808155056204619093389141968816479483480938825810144040583682965676813634413360986575344187640391970650388803569247397377872767387315541965151283339347498864870317471764329162402228579010309085921205573982183746348987610902581522381678212709570570543432733971025282587342660514382339763978566843134176807529996951897990509018789638943287705962650740783735886546730715196280150857720530500011991041754862063146447898563195135491035973809021462014241049277751695172414310798752880578079449674093905726996878239872434144103176565344106753784960424472334127982432890647459109364770830938883205913714792963013511928412678446292439308432283352491234599936882837419426940517454634839651194679405920337219170545067700426211427660688906989371771952339142417625155347790210514404705988230725565231212022251153129825168207932186636065069433913880600567573592698188767355791477870187687022635919098419696133963292054423574859062368888475640583633915481955752963786666208442632170282790218464333551848915121733723966553106006432978563537002041274711662210467095120025039570947900321889917634631366772057804774966953532309271576208430628755754474963079568984972847170556211346164243734604079221466276219288118359612175648993801816259812887090117125238148340706836032695760556737893157724214544406703729789484013652873755072303487606861584182827295676990306588242600963412142746718837653549197187514202408916150537804850773145290468535988102897101611115143044186860476889729920045615624081358476691245136993180058189007243009414305768033012371538697450560618628644517879506171969947984912372751182979615862786363669728486549212610366042383306665109906595812500724783415863086630985581684593129467761335018317210056412843927632503250800393396502032083340663118832744353253886218895783908616881192703955366970140345339702735509744903170919123288081735718289687232751898821445849852931254983215068884209137608473220753320410134384827822267552628692036940998254469242692022275370543226354276088450824405304972827159992824152372846411881124323296016331324543353534847551102619880896622581419981710295030667656145394232666102374903329611477835907250896676317890466428466875630605844305616384773330239983090230832318475356785704589472402457916005355283572972582343016915982682900128162604160116228244896734483158443025859388057285709491080943006505584834634657455242356470982834624874885798418706555841475389945197409274793528570783825827350506742209045466652106656107902810162892810368162377225389415010583478876663294329553040483958543682690919935237912660852259477643020071535004970900626408509507935491963027711298284689123673514698861977502295756014187205229270283976228600361222585853775035328520296188005195079328503429697940415672437656664822615808304431704572189250263151384346481759228610715571240808945739490750448470816416165358931444441961757973698857068152661345703424747499407816230275451334057157646390544712199001445579320138579890251112478251628331444666582650275619058489258879320530724816822578020681734830686928742957375614324949794054846239708325987952502287855655141890058578667541344003733090730860671114796388398524961387041923959327406565475036929497216035343177627333916710181143158401526453476109124695283829643139825597955284505210620137958461383249233240557582297635502286370017265882805229626902588868661715913730846474073988595581089877548777251461702990798361200704868375322627849939458196948248503031305074668787140642433793575497980861062629550086636408562101830004771944294514932530967328742794794572022192006294197165982311423221946480997490345698912949047749342279543642340263113405554319535916787965488480246972522194717747215285039448304335245701625176180936604413996417175571873572821305748086533871027822596338163234709659404714600040102343171616475958552180685657515337804279863064067433103211338601805175512916540356284157785867440086446497859819683621772217717739416370128777496695290257500633719134849385021049828456432620491934202569342055443750611096623139003249675520579822825422002251729554491437785242901280080582925179170600329256585388549596863755184214264051934185551110893155668026137228091583948487690090754220506142966541385777558037366687153518146772581330567107765673117475920909095396732459703599378566735177276077090473526073479240381817150913085577086523075045363052924983146229491766061882296442678809092622940110027478184859653419252213558140095431298571948461207989676421851741932035982155083181526802955362751640893670230068342760310480263822242409778887817292215274162962993907989423081109610625412108201460404700395983324527745320179597176942327490391336758050160340529530488083823821813587124038444081651057190225616871724409461658924947354105157937457842231707103281923640223421205873776239991918095007194634572973252708511939173451510057611452820929585729832068455063874128130692634494223627974453021990849488064319686634291957252087905304743677190976645119347750617260615160322838713054474804792431256438014932417706319880458602420485468316799788255674283870895490790354312653528225515910651230426945356430643102678910958918098010033837733622947459108143292533478352141761810447655728672898160896737266497066826862196679422071458660940508162098912347084664398741847533743100011564720411445947629641729695522465572634220804409542273374725831323334773654919721748760018840671252853810685529401810388360104838088922036560581839682439909894696792742070239828189396610335028026969390420790636245860767154902635344617712088525366480005485310486229688257532051083215899089853891471731253235988969911655014759851941071895450289167039641478802057616344688218563178907247874052606613720842354043176158444666333437565219364989465737769030830855463553925253858216445013250414872582809978973442908116160375462265060683434275921743976970365929929281521175898050321874458977719411491685965083545434254934354724519953650713882007981633435196625674442857440963226482708636313935961998677680694031117056923748236464669195022210596303467765788320923255801377730911984022195004945825531818218361710149520397559322836026454173062144146545503228670045306527829902744561024804871484493726322808759899582075829642072906924812977545429814482137403634215109245692901729779702236468890362408980594455407853861995474184174468926533892179789117128490140021487477903049847311381183431370895060641509609747634842118790992710766451849886770040537604873336924986169536176902883301949653691577957096870010277099590482949591207147997745417047519089403834851880477387779025316512321839394714106112921299452034062443289166271265074031262247619942574515406753210099964901933849183634674502735498897369884225818630207609749262744847839525492345060479899369231750821401839403430623128313025829521144224298849526571355700512153397330611265608231625636282583206488626298614262655011651362286670300823424318515173457805892031379231792046070308176484057634403494909675794315283505846434370006151821043033655544296749983928701479567388181088498907902092298943826102366090337463770303900587466742866628344006561846252617457521126058779670142584872550252342595232668769029994428968246735189131252325713333477609217231633389536801943675502045366855229504428992017242690692412758724535097311803443762284848832783166342175369495643735208603755194568910805581323454165593642252893468679418725143405238906423111388479077329927558172381368426899903261725168873179731092536871076831653609967573114202571532564734624914492812111686204542107662180502018562978522725356330137560580323939580985050722790120473158549568947445817338511066529710378432785959827674719383305727684366852219186453072747075504381248620243683454062865012810941843438041227850780051271448316612413324601382952961383479144171196699328490359710998731090811919490696971761062290704454044023524992324593593937765015286021431761633908434203679932797606015143992806259772361191215903850541439514531124128369363201715636768314191599354805407553918521523470314857135702758368142170671962516937141745715884108692828758576321572163879517221559609250287832742063612665219784601337724296336178428500516438433355307849546055777332896169412967589004761626522197718900326921017931654556104577613213005971185811480234557520973810708611499171721791185613144840808241667586579031612854783810444485960370410843454553729821699961474571806247656381929113212861339588808122288423774673963932377378560992722259925590857614257591647494993269852998272587564931683041089397670030601522721073028174751187063087774390362633744273964879577135096203827154783820757116727132724259749862085102598921012687976550482834983265385736905166258600321586931555894411990216030389373050884860841811017296760618165180959910758320216337641194299935283639756782135479498046933290380667809848914331069043972542586138112508149314164275174171423950583852025712816418728685804406156321814048385486567345338631254387116719587527614651662366539615254092198347916414924591372733748126154124137657046321208113916046686909863293006511466475466221654397775709699955193343796902680811702115787742766406094529137285945646584241293982362625035543242866551752513217978026274914588459195123361684684177656943487472582896844762591673379975197644761354531322715170892185319211208286792330613355275774163311705035210614302656729262909541408584246230548679515133134198002001979930477148420953560469722332247349108806235638574483421581815602387749661837277963905802926580113747606989264576256757439161771209222136871682690923581175016627277673623219335866075192422635902816039431948823992675109073208564406361350961736757345738914461060569277471794315657217486991018599452879793076310908663990402747667025722367825412020039454653474667508931017893668763926133587087125755039471655076923879117696330711696854379079249091591248364160120373423094142876021355338590352364084176646824657985273672783270696285783333846685576707711849883112744802266646770355083554668260969169502578107488113454371680290906677871693167429760911704148769263157618415672130748567678609056471012918288911519257728977507927897570238119827216714860757145089420628418982152064089406892697028330089959789711204826261239970776766257798350070543625767788921108863523089203842089090070362232999064043232514317129710307565380044567338255617330674088148686478776753356237095160343896213533442624426200995986637203368580344330822551369856989984007933678368578537971696768973458934015436027316012892586277847129749320581443143612117821473573120511517183878085054783482863554264893347048318606936151527644813877630859425582623031176712895973029770196135120427435604213514491026034077579746485917941242923921338414272126420454684620561668779714117558016775862130801134273861510749814789605746939174323745292126724684254443982706453501989207205083792368620041485831487679130811968844109697676096378539116068226493577834873957708679544823662802187805448452803038630665108710661432941412032829323605188221674214134037495932132110051481345668205733185208033559770676275530582615446981069462930289357461645076319143168411904807299956591375634179556079264834283181251117904457922784837163008392240255132206838768066961408039661852773054791418820395924885120558332347998104532875698517708380929204687880361904876388172954390133385069729430511751813402238017996793882305230815822856747155870172009665919435222633323352052080815039219950338938046840848830647108641767479963682575519291163984068704783115979438995985993597876581381695800122547941722565911653678787691409757643257854130583480553533253319333006555925964904091763260009813884202354307024399184314178530797475811962898645361805337979824236826055699250341105410976997919164380258931141869606036792868151031304439841981467498227966315847682262176863759690792318709494713146561818352859025829460757710206682030931584638566641740909797359172224194788415811946514241774190706917529300512346054839686887717890514490774636887918598684234785842621472679824116542608305396995524938303217725936683611368164552068123904127235350731385985347471777590362209173151476032240206726554379817469360380113564959356476614305659009411743712911406334356300737031951518594784753171762480146298357156365380771172765732922792412000716947425179390955550989601565655340278857686785185267639988529796516968291959648014035232847834729076388716761515911327606035313156860555706381381189057276127697827954035818276769568207474793252747510203891258535471290357252854951122415690408394096474633347354761363150529028363951786517641432514712609273842931925700041142442800744888077934110776629131630661360253953186594656717424599929613436805457346348677877982946382602593361750028404604993905922895738318306374010366418803973176295179476612412549014741550358657531574716153219350326175602499910508606083346076825026591189811517311063555142011746516148892581582565244114692422109541461366584742864218644352769918254084896503834096460332329955341325286102786816514650876752885532265498158508009939830410861357271027318697459209537717448916566201995270120699833414837661736274370476871971584548276937666470706732090281615886504051291440209168662735135668632446404444127856181002084606312553655310503175023935352767491778698152978459933729394394145421546247716542900668554975658444917274679250275944020672955634713327733421014666987877403767122187300713917788293423525344759290532507039193817087340433562282267210717329805988189553388859203850344421087744193414802804431745060591282007931714358204845730097586020485911191778450366997944858343716501098090016768961292300058281296491519122774546554879036167145594919641797592986087914910448436933291760757340546539757936453132194130941452476798340512354293434899487462668818280313168549053212607822860938145079329863682955511061325127635905016494209934452979942346874817524530026655234930689303375530267949590891911477139877101411861989572078600229529507629949637703705962392757185350895872940061384288304266974969208300880792409869206535763566350173612690119073001947163257915112786324349729503442954322802221912824165824081203882337011889658343573624368261072593336930988673288303250865476501609723138291205051429566285905409888160733553661948806703864253490035632381313883596557796530396840769917167545537257444750728586287951667652186128289691431426454785518312308940150526829582958395174189251180076104706379422028957094238425143082767846193233247666661002770902164965337058734981699337580152042019654224526327472069480918158858007569583025155713959498288980639573401665194316444735887044283176027040472532220549545699043689863006979199455367754303977099167142607601632173138673645532930065125184005923854466821849172363050661263303393725948193563446412085530639214185928746574391489904325709691479160339227778446298534041792464389498760619499916465185979778674587577420696385985943737924067589689106933165877678156127389647959283678029150962553970315753684617968957064511002025903655120940266557289224777189898307130168784505739077165901704075909425211670274164890222616008969666658237639977300786052364163788199911255803102279312060831174023482778683818102118124024527419827957980211155274336680700973906003368991342239593087099204474016622051730661279707889891304849842978552516376378744296063009086202844518431749837064717317311403041101383819790279016300798980509151894327063908206131169705964821336999296504189303897009560157609774454097546191736867426679721728514783054353926178986529027813756392639634940851208999971107620602611044729456070824809554664634127587709089106697514725170281987091054495741275321730597373079447967891041786243912875723467682939845760142826078072755384878746748938447918223692379709306597125212087800314566555728267934623174320765010499258844197992719973577160922310654538077635941684233870391121671432536968104628831286089081332010618028314921753481864835579876607321558486870103264027137907807540988407073776620829570990721197400171206363402591425174247482676785690175550389979628229919008079507279693663466267756432484831397307953894213916171397020515349830022703466605123305594072217332706812258975798671407453050685601582663188637468622244452174641566068112266971804147830356087516995025909919289419476545944314543274879300714394104583255971485598659497701563659497549732722602948311638288239159953110608355398302823588515987765492805546526090384666561821389172002708410162984576521575459771811089374240867367970026805467545988183791102576608543104947818521565712654207946320340239296162685011402856611778079795412667389052366879408862479335098406209508798180440807823449019351531788046798478498632759137012566022941765641623576341419130565544566493214408749793799486737341720490866319231064756079889369467769335799507268420840992222208864115698156302180973766273289483900441542044523523487128948153901916469435101301666078973104241701581243961921851257683317842365195838267248204246294610249809348051400075905388445544966574138552516128833742723147858157023945101445654367264230435701455542290960923957207897779498422267274274387213845584570137444712535058221798048010663941955243225709554393920554697358002229028295048440060822210828268934110479949187512855255194486590187250871587141027186744360306744891067208966765400768040898582528687973725310784900501351904073636615014364661757049773122804812915905781657872173618952780529789021574673194664429712220955264733269376251980604572775450491082080337127419064473653006536436711751271812636605556082514597326815640846306158259307150908934783145516336524368863238030078595139718860300221348340969626581867289468582453162152693337284892199855766212887498915235840922503382112796012895067661305302694638161493504628934074388274144313526848214788134539801434773063568432913367179533894213073278494378630957417981216310749616046698517651218464759987057254732395300107718529892345380817555867158581664138979461121024609532427573131252966331091504116955985537922309892668726030023213736109702198137444744240998462665112795203708431274563213242139231676417405157526605353915182824787617825368452637430088773118798901311620358412444238601602720105670493287179827656665955822644578078135056499418435426207682636061558909097684991819420652856944936739402661662082466090889095960047585408353228557370459169015086174083329005620490803058050931409694568610895645720012519302929216148034204540696515730716541463911680444013718611843747235361335015437059106510601007678664934598252451970611119454065909416920868683743491891329978408586336145634274128584129195893263992290963845654255567387766327627930948618760071062089404623670624854531826199521897992617376467087741250928140027580280929204632635861856010796296434905763606035859527953370503026350894386649052004043908433237158562086726066867872627860490284848403628730112443948201502982457471687462455748497688867617837260597058312717833805677836775335049271869386140464864339260932884121686638043644853029881799079774193919582141851336032050154099514066677201749933686641617108944075375594311004402695008418762100515340560217960497256227689524688285785104293181037276804284763364271928625385849418063278820434291430583857040375144884164809790877452644718266661757689734937120285103834962477322213264588597731360750983793871886612434825544451633044402699997484010822133314201387685358818725760355660861268776148990630883188147592626017429059330588960308435620126141379450759551146547267666170038860603809482823110374207248670835801152820405043051213449508385958363499085399023422641528209130055585380771462733891286283443756617740227460458809918028524951829296130737868135027770687940009698396462494984196494719724617380696209225502740109163139056686532384533077411074604985672754300913032509137849134065934806165291460685228216975089429916959684813091447234681863072818134183293296804276845821147845701044336417056533811523431959103928130949107578453168464867356703508250516231142512945580484547875913374833435760618242217074590821182964874117184379623028377771619094513106287257827410275874580392058422658101338621596593216132354749986174461964987664779279201778362421137284135007293164467397541360849831711396292266304074684483029641096334604329999607838277360772103368247114451038543565551051178723875921781645356362074347164819129015858837798629264705589583067816654740966460171687025821219523791129405949084066574475218963844230766764666102936961440163913709102589728579623031861727863325056487955478882145545879732589915562672852665759283657814687285761834480347224021919680719258393345438385973507142516798350326386469934942935658382055811400325815564785242936593320159590540182779839526968109532778816869515979574574241924599608715612747657136793865358881707532084673092535071212010535129392949999211638049831815313839882257927838874441281562059513856557372992138037896061026184954404002614274096714066196402218398555988084238297917071848221923981263672254089037002265067206268951423657950382475143492168105371956482820876412345684944745649716339858291076160373067130920284358952173535565329636106892938415498136837104436362849162933658989390504117786918660573821823969171570845778640167928404412619233886520979346950624164648510746031133136228270909649474726838894419753910107098944655744593727461600032341723317825921153883530626907786166471719763777205704290043607746838480761569459270393558017872813967731897042154039971037726863835904065694981960657275804433294535849193701035571988188684699935987830109884988664303754525496769939392921233002956484745887989096686460226327812679992415346160321871154646312530799236628108569574940879741262853548603577283450217689215250237724229213399589280128201493894581242328338744861163063417105840856710172685830384832361928471628226170001188591222616885374912178385251126050699273148003603721131805570598406859310936440711460612050657389415688061005802099054127106256518855094407691741692893560379635034107315354857202171472483176248249791731673850692181465063888503203182068176546930835056687286424509992616745514705200718102669233151992003812446881437199542790293675309424713555464807335072575586917930582410663579826512098062286273959388224894830520731945173406801961662718874243086014521217573115581360876343933234346049842657207943117455794031603544993684021485836801560434819137529474634336943403451790849548732102992682291520100051457638497212130124382198390783294571511559852346030003497546196357735592307929123590810544511813696525044438514536094231806180551018420200424375813250284920645910862243871422296789781639262531081738141724786992956771045378001982371889638590449633000583914383023354928798591706160546965958859889079991516829214601682167811739590421563792772352619816369586757299171790375132179609443336652428842998150212060775499858488004176878278984938432951554096828675890508360010947516179137076394188112919950035555344358380345580614145799290697540539703691615279104174281290889510136176391198646030285568826555782048111415245407319632244023592876034865979196953605042494685349154821943420159239402328461291148372938252146134785870866550368301036871951010741093276869316094103083811996347098767927112989598977218318797556383141518360332102774186452226339227164457214491092021896425060579807982515539906654767005861376278809165806099388727784143917373902702597491786330425581056811621894992311232216584085389069948436794396234480373561113322747932621450950729057603287386870789912794960415902177522771341945353549485576085739809413889009015133432396274767950871660306362364249029590304583356076334403040039773273677213023870332714308815706135553305991066879505516341946268021384674615498482682460023512728079568462817898903084329277484067730308989012968093659010065877485081879203188295599140955327052828274974483426467843971258253943041595644257465597967258431791909703064136132333929286657529181220688817205744959427106211768007604550078229088303731947748002815700434861682390679240836861277376570802101170401516210651634988994750088427432116539663171968372039741639742693373927590186623397083889465500807316536541674268058911655153359468308741969134726714963048756376062337379637018419434927009044510785490420867270426069761531166252858107538884650862802960845099506192893991357297056240616767093727521129993780483236702224894087302766314633086218632236294785917675014696196118038706475005004410899916036281639701311052491273906053950731067115300710136596134048562639648796849809441441986524204233669790678901271184597664949843932179538232929507749613306218774390133972089933131766054544586587314554042098317614225086583269171287207121453548967493356384363365162963390797259382893917371349210668289524902600576518217058504645208061282332697706376320193912265965367562918618181158616075321658929148309554601059139139791314027919599631204046530670671818326626868883401018286692783247046139420164938750968552737644704951605824234732683918448508710936658271669102062662041920605143936729989061505804779639804956590912211979227945560156266100707338452610398751134080678477402447639798754570964225534938366441243776705357158775083274576319671671218227804382029131564443919958043148042269060748772636067038530695780855971020837192723188869527449399937242642356475533721932868702759970693519549272455229178263972270277463317128995337644192493442128476979505480684141161347652446080190171397103255968373354383699263637135860558691160741377367517985658933370050776012073818223117880871934077684450458658154837872888027228491711304450166748875660039992539790838805098622347148847376209719207356867280869963336300909729324182966198033883474846929139402879531241846053976541429557261338046161348780645922753046248778136224920700048069758082470730468176123625656088699640886402563774727537416732926472574956402687041750104160377308107950105359352729789673511877041818917965039981146404776453751294844242500215013240031610838324211336855615775424072944337161647950691809780661979702833184240884453068220620515062650611425647184579484666281703745922338425361867481514965344794631539014836475516413621273341830260161278191028570318098100366266068077672928124700924506642244570151850007321969969816835350256831333438652996611037246187672417927476477412334055750569581473252939656685111889959893639614268245160147398666497567638357418495445736134479228767580195510706389053200085898340937445907336071629484384665886397878235738703692349815263905600569371311495311887018850532335161728495674655109751031522480820025573884428437741437648276054268132666924818774275984377673616646902210174153934961858867337093222707013369234901892842804519364670340721455538574170017563355465807446554988271564300992172991051109343126518770177358171456465035882747740533669690857223622113524185853672840285439343226548970035397002687283386485093594530091845662096235354969100737885976737129141939413686710233472770616698979553003960189175211755074322452874192087529926344359402718848643348313314246150352332605618297103565887136864311733428010590413354493408270594729788258467307922779518812620907966238012759658037312511131016757418374868103876821841934994988400526102553225776753310066267356007415232790935355673924867275753936920294724008722731990882738861466463527518589903472507558875918230667704839267979024650178512679169870588808889490361915079213407603012577392646673620722087412317560329088069396804914430750237054955009259703043108338818833052204055912601447452357318889368782222245488133366328029165687722370771299954078373636470589250990594698119908605219196401551584285587067405112494603083531242497419777387394857629111345341487391228424354756556655066359384929537135748976331774597086237086833477301346374796182285313166243880132391020979910687167280422479153022742809788988227311359897947041328378279371295150900566117410777812146854461800287348482212378491854412508773246589995650794798513360269603764503759179526492042748926387742885401022980334270088532442534281144640136880748423304150979740811700070069926166688805160309597403752627916392886237738064887264898480647095889925447178362448514997582943483495883724634831455642854422776249129419351881891871529326348233988179513044051243237279214751038483505470523053832991403647234523444999541688444599475670239484648505376219888290532898969998683945343157911155355052365005522545767506478386366449786681159778222489152411623137231097007290674552918291207647192637260920216317854727957335370331278152758761638398101327423621442825358188240047317910001099482286588303139089000750969727366282817897620676446522509920518434352140217295943213855100171550357715916090614011963417186921690832960813424447011156936796169292530093873433142947294690232189641240183721347334347331233718886797687493097389016934035658301754301924098859413815276192308095047159345190106723987070133810988003739616583785286704744728201325276899634956099065102767195357612534442449605397945086723943802921331926462946643372000538374351007013473050047428688321646054512597851071717111171605036634367483017394775579164573430240646629216891553695319290089804851808275157822422776706654609329615485279009453744893201388488076063141590514351147284770872849534676127336801881202040765295412763258343229497140464457379395415324163004648393335985405907069582072038991755973839872215067968756051936204102008197475707220564764282093927716945816527645830789103455255135774736879250010730596137929997298366718893341752993876263613103596339851303728251157508609995033820959960712956810827060926303784316180661892318787839992835880337016295239837480257397039849396530495286148269509464873835898138769973739284310820026242469578214445070412738629288685404873990324594479843109635139299031121713498472156642242685637154430841502707203350113364308732116657982136005889137724157145185151848295505584544664080134979004313494880865709660436539400781029388356707863130619825294390175494341467091694501068327232812022753768071624020934123183770241952189634390496548830097604337303738393033291518543160439364737203626810545436827470159743837190865266774114617780777047873502215081388786691763849618767321659815533339205944318357499408967025456970747456250034106499684648904741314379902612499476985865244318597549624702453882825493576210447073559138021610607575504666167651658204893641740110673278813358146156031970636773729415230739229943471365498432504512091074107585116451171150247383414641133910131294177580808207062620763301183536893894436387432245270244535629357596794203314589622899537345145510196321038011091055746753472475245532425004654110660352081892011778052579586047291067062677408650429718756494170525132072831245673086548973853615488954804101288984502403364396353327612598227016983343381937997118786129574315164669155789245451377228466246815540321890093440838667156488467003344767960139133664078644398516158198458090871850613596410066159776668794242631140619276342899557336627404106570355827540423501238346566358923432356100827340443941704205377146030580418166197499550504021370271415224855214779273781490626137257454977942192939929868171848673745424686796231307171951494643333046707602872993379172100372748256912200716070900442548666172488777395963335965767423035081135028734254280509260569968739965184333234871990147074134588567338003809265694806735450359446124605409452203392235805116835602266115706304239215525810777218297149247127647279433011824965576448523056547084921104501599631848424667783785387779681561590393570184615638640384340646350661422188800327896275849556938168429706967310701487010759393099061424778031575299589989910263463026212331013361877438473602915241149313977642390419368475779669642494278749685444384693859530810381585847764930527360505102153385964223672773518658627715640767098083162385603720482545855367490230625898611599117203878341968925455528200705537228388568170103808227943024594122122404366994451671412416278984552388045712553904401539189381077875896009786266586730291187665089606129362617588868505257559146814491784547924858117672482976634344744555107241674726526606808874945596058466006419441406864049364189686603007448404802679298190238558125634072234331600448830677741497388133498374347931966976962109129766192042650961766784232912312057455253874989082583647729574284774313747180883369298786958795953016425845654976056045770875230453538720217848686350522350731826219784067370430806106090217687515365424631497702031447700651363364832506229044657331804675327231893831215364857350232973851353526524801018191044621885065406573350078635853801668078752675814665376298639302933566294494322353546111848634288540564159635982661573391233869130717733783964655459618845193809477791762729961071512763192499498790919954024994516379202461589611349282125058198616254394858580420682549472907627115804453102940860974866453718233209765872640762490437497414017453020369972802636031583576174700032322472814900244253176353621272215445446180930799496304946975876225216867603121047845280132214365029654580186033833869396293350746713542191513808348906819727607261656828749345924061744356251133507537002342616942423431599883435662400581969346717444896455116213986815997986603339182809749319232157339329856252518445531402691079459417849106947999190920972944432990311341896584782341212108674284422594733534268282526668543780548660711826965735715575496050653192496206692450618203173998294774602332058235486563066885167536272017268673634240306072483947453667655499440853790964803936538742252040305662144577159455361367208884159247117037438388618396365581539002547610056859089354119448728848569634378156430793855499796034118552546390788566490672551184201308742141248007220400649515439633882433724350431656575958627292318989206739065050361471619809349351929160640826236762512237925995499451647143935549225936174215142447228781712786234869900125003607523980680930660796829331882745647503476464837809176912350554230967665123391885437632373279875228653808424435688492143125884375245031630904742663171012921140185935418708030440579096756511585233058544782279082122335710019283033492783671620985989601668231703590595359516569745204868302431154954375799242181273359700549670816749459897500187051294097117442601943138835245809876460422913757670334429799980660359103507088109865102612763899719403134665024473009305011214749159521300013743156006382550148641885541797479006656280665561154312915682596606729325420287186196042401531820757093767600354191175685675553051737291686837638976534761445976856372794703539351771851022500026947432191520654211710082080672296154509334691865568449839771456872968604167696972074910031858740444918833615608682234431727705801429348154123699039433741479444885140223822217002687629232274752853066330726524142102806705106282011671244839121283671098157146151194641333380310478239865027419102012273495661995857344247414182700296712126924399551210297297446876149567989755909460140395568749629238916549839733739237583797725067643536579191759578304896773919002883008158097582639441147582095586217544684476752515003756132756835475035387568550357292483412772331031162927183914943950470230942773590936200171701989806073813963772697423416183908567228457066232043158993962983688660386150870622765063158126312684208045126076244443784107941711716126793363649297749550308030926887951211531567591908273688452791640312624946931852077814973228636608471544548074676104518464889583639699797935494251577494438651688526877281686349170960713153621397123574551763117251313338436274612280675300323936989271716497182293139400617759215399120230449471794412362850503736205892071758846310202438320173247804834680072076224147960051663936458303508897396958593705438797726193686299173235079305761228271129876143133047538624023171910793433996914839885438626550974066372874431274035691787407632711304498677567740023292938553140119782175724716548542430923698035586441447306856403955101590186906250817562964940135697980978729202327537773991631503216026841548453590929819886682998937807978855627607947517981181421900541592654857362898716019944518370180458717209942046296742040269943986479253577963656324866921678494813135894347333688317583532532054700876800697229395044212920586213207576421864063729826823076780362449634166870277468195676977645188660283899937651696606155445557929147445667666548558833822591233510638018782892658023747747403532318554143346278983117035347976130200471156093718766535130071694193553881042754838981549956969869580617073993227508318089227696005710456818022933318080776624004298484019213342478012941841372832900115716485598307123948762973064705610869102278804951695624267447711194300942472399791217654470676036390215141277973255796341730854457255033830912659415602355848480228125891351323390799874236478836216033728431823487286189561196762191587957791768082850198018998131838892784529833365830996555405157339490029131510917605546365952773961841967715761315318091231926950941874225594258532397396530172269334837202761625563319127556098310129330163444459546426196017535582676880818473997277780988760761716360153943590977346894012844259398785306113767731184704474065376685246543432686566063512173940707830738484084483395531277241253840554037991753093241117466885373493753537813386504203504443762297581985148990364586326073282739112861836829511058018640607880328464623225811161194719543969181730147105993943860106192841393482062633102357031357683109036610537178573989126801561011858128119351278534308586003812008563058925751965384631080424129594369026282227377909196070018968846702298639643858794472797290076350152560099412676422784233788640845425447951415357982202830278023541832275037898163914452022587648859624744754480322133991342750892241380552208391192061347467189376550450672353698523179714593773313740476590485397343876641732979182928798049866680271436669495575197738631179255412794776447853343154207331870189638101336430907416924032304302626941588680441498673612211644584738396271974761441142584000767291187662201119059838089764962305681653634876433196912295138750844857954537563243165306432569313376123294130636818438821847858656200790676357471020204046703284186512931400620043806644397918295944252372084712792598818906752395464715864934608523786686298772940275124905502189261937619713386229453364686831281058881953619001672460958943703855783406867801481910356809874497061889207674820226462545850917058925491020923000692007826469370835106994168136144309829070617269491415285080527016367881163281245544539866374377603734981431440805039944858897575268726656450298351960064308085630009311496982991960908982294707961205801590034237849169155607918529493907032447515106045391937309851753039417302819154780236063041061127135099747265144102758481852845177371684574981693813514055574512581157677269856199848781071631654605877017585034872177030926512233690829869126246100099515557154806978845087276892009793453455371043916062564838079439035837542769503705571497141415408061036105417146925306596393212417964319514625918645853276475248914857448554397177713053244011759441253225112404415316304398266742153801796319841498576820996932231442438333464852684115222867660577238165896769136335687220063261429529758466076191234142887306999948633591094085957767905527994798982466417152982251252980574968392282177961294697686123145777662274397966804263988143684651886793511154314277327577990477444979399546063895417732600448984136715296030272407528168079622592698976873218415513425782937770064786031223392681429010306637803521823249745128875866259785182425159228128324958439596649645421243367469528811891098235405194870187429020242092076035747725826811146505241911182326146706330466402858514256941292173717086944736311878644724130753714005746968716370781168460299559655691939571983723334156769397974396291010447215693339924649890049295615886787507381295664072488072054935031190576106054856117931194745041487776365606015236462501135277652104788867152926555299832587159702720141184139858422413109067458083612482267512419206255101215403446702093956455566678959788069095074860012809101085064612966510367331993358667450390098651129050454899715526912485620518206735922989865651158589224973462686246456220337767831107404757135064300344258130997680420279313207785644822419567506635508969969861704649478656010577873789510271573916698665484801344670439981674275976337677080814953180290725934495420135493145198956659042817632778045822260457256006452381272663356411406114039741229805905147359013176086798644707116332488709360414039371829018698817197559254319323671645241236410429882618802758896362434006964150374986372346234691245824080488223879135085974601154365815651496593285730499794865960171973285900237658335875781491234071395278561524358018483358206603512338698729920393369752749979641604322088734500189463447115797966392898791820358203001819898954529439160890491843428901806181423510176592171812926278183030935187704954817197657363801148822825248603653278050767400818704301121069121851523703868520562745163677072095985337699459421016537213715205221894611081128582056133784238324383119817834483397017690777309682372977238445772407549385876595273815116886568594553508284694708744653894179153348925094844587012971877380515904759603982367989771698911738669411116691690140010588947312864926133952131443741065941417611317681492239524947838856534994024729911696578623660462821391665771407075509985878199628043344930693610127922094138367948277235751760924928914635656786174502767971197477156059972709801135680557028587892348864815254998851141072886574415344207431777887887378706403283260817739618232518175813214232148044104047685868430729886208241802692192152489026328905228236179873635472184738886176247863604631115305918565008691643309892792568456953250324511361131831865554199998863922696257120717674885203732874550865593179364405847962365831302988576593797287935138757620927301209738505339935825261583191888358796813708944907406424298049411874113097786228891021002089836923301585738023085288480817276737900396332291831520463060022297468449849624684511050247497692221969514461716171540874500170571702373397943316199548318411921856105697837157467877347028899353051292981423308784531852071724463217271296806896864118900666707209555847312878457383526938570831416181631064538523631538085211936083948923319879120276721580820948156457493545278435834452194740398920319942008802631820403715926257306761921923143736400462754831675836297764314143758069393586008665929483253957029242014113052638701157629095522673952482697584276807456492760909030583779936675329780193734512364496961554245116181136378433656310475244186009109302638821039661901821533697800208830132966592838309303223051335872565690965924825827083047816906028572642887082625333904180254509156954054411230137359215730330577756813238769266985482583638719390735788289205360366587214397609431334909455974151931109986398658489344467396028426684728904684296797484928912734103611116398950856923294700798093309558587472337976870943142379107461878270900183920535143164989861959619387797802819000558440506367873019438273343073275028336937073108203848875257445222063313658329902871876831967436454001160590355203096654691423761002472106595399642779766854623701038222352570079899354382313030427884756969880167177058818449658188559399130789921439569891045141251604740378985425398206006524819690749854794631975017935504390636028700857572410223461226310170853013697978006844990711745494630876188955682192522509984670017880684216890812362460022207777504745971201712629306716781668071054977835191919916553282594877793762511589168981146963327725204028714100640587185344598577747953678034307090409861000734054661674398422410160626938904769792098791086242357949874248483985924239019661462367349595483773419946718270052254798406275020322441515213485267046047842052528702064311661376589341835627334299417531015981257993596657139637249691827276247052270794772872966648312622186811707290585162598187388165683962218807875117489730448696003775690573140901518437850954946684096341698551598718602421215037907835566388804940347640516911312840559574122877426557247424132608621342072808630275000270045010082311169032450070792616283310756746245806335300784843791549701910679192570006799378179239954445417030038214225766062322667567032583767296758208884701762534467391724490675898469473190372215972431550114629133055561400110537274376815138378682594083502918593268407581061342903088787462325320766965500596782865139381014414043207043862997248239777252562428308266891573405215898267790351355744813848372176564954089817543167870823844461197578442968117852679903647345348013050706247590985798692995586649634796674473066671009166576412258033705236025127348003439702593013490435522687471733707927412302130722650404535115480306677471719652296320452789105593493905430129526304008916780155067826274958020469781886432638482634398106702396507375078710171778682097578249854688635976645742483555929394133194410025240876162490928273103689952967771623018879876153027884804755493456259901046259300551475969503640046294877062625931143648341289716758483486201773968174421216405120425577663768461872648736720985226607608790434967226540424011067943003565954598481363922778615683745346572061351362818205662503033590249324491645605882381862073030390494836886894465995572231554351291742346323537243636458255785232871812362517730303437793297781322693969152789884826725877691952882837266307021201506304646317177688493709615577931024744787101618368405624287221072943025934121571909403579762227501849410349326247637390125723481903632476102219126743384537467753446803581106244649190866113068054198767030126129564622320541805801004072629101143741386991184495533959704990883182772801742192609779794385648646831496802528357426170333983820558428116635484564501843878107905230380715596976377434748806659872973068342781083238232451768837123351845683402302597157918139600571925888272318748548476499586406662376753538816235519215868144605111225749755012905627861496513344134987412228723854000787708524543654965116466431409682353840035747474517687203744347877769320634210015099272289609469967817792285526816368017615250101467871988177001200791860708258850730420829477584035984431654421062847515407100085462408303477774507475284652331177069722332186643627061057160276234506427540568496979699280256932026016556140883671244856113858097704677950383582534338924845393180563441681978779650163530928050738348567595663406480716710072558721658491415984717449888135471593702549421507367436079125498334266440677996172089801280780603669833077315821647211250703488908362794051193292336772910565566036628116569160348737578540033966215669154551973671261580136173379651500170066082232868274312048474720752902340826875457144200667085874736924915589647639341056263748080863385538946489010903232926284140080489125750275049070101103621858980958679908505260795361952329208934214149441018919181878767379071369008894015143525474847786263532651642541346931465583153067357146537932409741538127112598685082387868489035633046849493086240763840377042192240906399359350633143132793716877591939953002884458938415369695449829647340261203134321937512523382340312130366733660187117516627589707170244125685333413251097038241597019825315467656762511184611178867603921804095177212642820173275627297225124207721938192403826867001530936932293987079399632508568667771713798709266580112100044750722324138772865262802286041688845283883161908191240322606308915022629894354843282678270705653747458951396105411722367925668551364890939662975073298410398780719288560434389577627009967789971569750831706378896709600126848573231674243569765550643152623358050382434686875846700794342532759082070943816993868509825856243879646890843539046070897147661665932867527342024728929023270391062195088053761489791213645024161391556328393892071143699182786424766769752271948518097531970871429638580008326648869699354113594473468562261932079478923325769180415206519382935947073436210460094845116145966548054204898643386935961828975998265805032316518626841890783183803598036235068905572929411547461405836196171253919193148748838946883688087647861911398200501176345104745565543537463272184718780604018895273272309394574689829729448947009152758742476470022111356405239034761661626506432639401566367548604861097600407803972126561500340601423239345597166395812472802317566692523786905679993596603038308686181435382975712166610996290894223439578599704928206463911912502810537088109161696208207153516779144197843765290649887141207345735787954846285095778600630003286532630339538401326145949998501616429624176925020338828153917770864827612163458169150548679183803271142754044718592049796746413666079906274039359798059925204205785229596069097462175309749046855941847001147112944615404651296655518449965421631341525923852924630695374015097051846596349392658821936856355488046986760309125051480570500584104937921119628045321698978178464767737919554627059901589811659037303369993583893841335272865287305966084692172764869116195073609286920740685646889478799767551094384939435249111207753075120385173091710891435854003287299636881299913643041648851301730345083571578971642831051497196998628644499724253507488716045472678837243364220437816775147375797910368646390043229214762050377723210643675797908151135200010181490895443322537308353026695561248207872662617121863366944070564125454749735391421352229122046310747991338244583007737069947278123588192920847759794109202500012236687293048069236805546669975453721877746437195344498376136673750169524676226602192389570398906562666583210449678578562302576599735355334363327088424617635248982544964956355898392382249768051762166683479696379468391152659425225586901418094800317612597343357275667005205574700682895213204141248337569766129831382347430402911351263565876672939242825568905463876909426078162229589469191746991966133159604147666361768948069624666856616485021028480850416640502850227036111214592812082519030278493247968164765968424341265515472715679346486746380693603344117968312534580561646313490235807386068792083164060907051296126977552957782137364567999885200961492969234378575546436324407327819367887868216847199002515225388568461136243238282392570579003923035249264941427441160409063970711480204229934592169307414934934847494430240516338381972552363618171871499185715450712817951440519266375452720474824365046917362129731666272245412440744259191371349164784133133902796358605763264492607859178717815705784028280245665771776887130581811460940796641326841698234593551061674715123587042719507634573888748899310251661991105764485393929302120612965173651947660818080608509985454018329069955579706386151383065118666433764298557182860858187561821987107335665209368074495533718381510650833342556700830497614916067922702480704646112801519353390829777987186467390838648392894415356799500908859071761550947053839070799933155454076425066576722672646859737327853605395673594128371622574326699009697012839853695877206695342980055391139800919858063697493500716130563071719480495889768678762894910055697744033490130496781952168259546301574165944281392916188037194231076736446653322926559386770927831450923904353846171016099138961640463079712604293425466995299627789585883591929766724482363841761908415273087807973432489207218157749627391497057984424330137458995214409063950426555325446056147091744184755134983256303799657323134858973019068985701907167872914712113353959645490993304533577204848683885606697722548203426121951264217691050249679895728246353790594346177532897594802236540577637964895482134464815501023232442938638202839351176211139200105988122664270632388802733694375938328148940969710041290253945072953458296671881772022454899007907314546787886554028042815172917951735259563608972924770260327495274189824854270495746604515592208093789772631845623685633798562494722926055108904940659089195054976780726491202413907507433805061133839253901808285633601530385288874300297959570095125863309124916741248810741673953423926552859187986679380057353793811604506255168979320447255089776671230958363787320353178926484788996357501110778529108783719767058903927894655226340830556535507386546743330717046641859495063777704432308630916019515498509866603533266914710415120663630755403208525938670363629811542664057444281031702493357952402609184075482952291430687463972996353544323178932681977306966578465189811635402128584957519341729739877796550949827625296512459099851299314198242992892900505733109829610525415123113999500113456970116846909008193095476335702663407380546957136047026718154423047980084516203415716851529288115372344967192956775601785191097634329690320604835822672891402343165783695341399405784614886782053398040037776685222769410001338657559459234851215098924663431850375627919594881573697738100177456111596940749193213234688861771761194573703321052199186182856830590322562913607316641971445663084411035429363730891830554847158599640193493323970940999590515871857948084236681992674410713042654411105704765572320080898026062167670185752754433243789844307435929957030609361019637412275743623588229465071338186819802915618227060477533015210634239297070130441375962728771442043374739546262507762810139098699158067980184547144265836451547265115666202480746960195842244654585914373220580911666766614001690665993487622051303773270062942712490712296697548967444254091679568534864134532499446095812173714001850736484149963762475471323674923789778319282069404274466209201951223575249963236099307009066997367872287732203009561552871170053990592833598292760628943310663753816253816311207320114747174484792247246328325802782725413703058960943202117487896289486852322504376834944202144263926850599264264548646235763896554251140087950783389737408079936967432695956459560891820996260954753699643099103058760819122940597819536116938697874846707951864840706338998914373725749710104825817449419872341571434735493608776399669343421471578445699108827261166151932990932290651378542395127522815219950718031467010832678404199043924053423528541370912961659669935189501832173503971010415476551137209520061432954571002527592238689205615090995264926019429665093451379402001737665783780432908166628749050522488415017222984136152206470690672150394425269379806163405545143653635019108827704350504841146827262784563690998896692667551008607696252632691730552542420364701089961863889658767170127193679853387647076477527880316321462116791421117101600113799483822010522041213131379450988057277960497254513396550674265164976046641589899951316121735956207975537609785784244972931336372706681520521943757650812635316647988474927042694851122666681880305615243849885790104327138315638142650715143532449212554174060449908252306563134990427940187543879429678793357639984583532132808310807122600945099062662801508017690218002757041459900831008029793042450846631883239055805303939232202811698651384961710666599864480447475801302447322982765763696929883969602215748186711578327866994612901534435692576134937965386885095170215904803485575550613650132743122898005650733497968166606724027503419161246727233412929310271672746231495656132782638647065006032781784984324295694415499170327968709085975665767911971695430035040638512625646487201749462682400503982137603154997556643126930920548411137055672326766502855021292852534439604719385995850043727155586955807192956154393326393028915858026638497309672301858621213589255699020106739818800758278333741599517140341828539467534172840682779991724404963289592723165382404627071869355048266420667641484580000062957329235958814499462258082066279930221590035374411831775626691424598750457611674966280075633315698312557355924853658153924745629413833033834791394636284305109769205223423483072754381154573682257814122427066911428271202145915727759484788209245233577439688144864838807357536830645965830443463557740565820191634736094318231459358324682265580439992488493961513566506487091685513468897475529281518966436651840154773436157970531525941910788256367483670200092750563877943735530799006572951486998921774655668936613649859663981013349982707239806326502542531103555412652542978595221623581061299097246198607460939072025130128546094723678272466602092103108560766811919925264939982414243365430670253725869241034141786005009523747505567631765230861517856177443032038199665878831162741909251644949988408052479827128791036725204383296773081718661444187405891923362156021296104932715079654823677086004514065416283561703272589571679376376587919499882353875152324359483598192384700892478722234152620259985688592575394894546446621498213944953705908408947443794297841440628546099184680692901789636167174643556980068760793711427088904574057292786285762108154872582974680439620420677208148016588715785920668474031419863933440734448543421564045885575865232411453409237544410263289160832567985440553105944549467443041989073612999668711499989058758464258043208170453053596151854105292814153103356727792459152082292242991239915668446636972591469862963663370349638474025381854882628289715452375717201147035642255360690079050897295482257575424088315346744009889026276166785167930972800810809348090936735586962182686688328503858037193712300010641979171377039710399847990078817197136132738196511446777048492059693324537216117388915328787158137301480156803207686700124803950752613039484006799221340220026600183508953253873985290134582094572481426327234883867004721643036922294748249328044537482111409309328052523198657195034004204893235236325744673269505555210738722597910645850109912256748711938399126238478900329238516873277743433735539865854406175626705625308055612574146112343645572772570487948096498645949493853265162721258806097383210235639442276631367785085727160263976923417517895198399441923513313686579499768998868503006410659997238337767070498665086873622418383944759724696570157490456734018496193465060434314233231838520655887517833929557579467539593197500330249642606311567176722050405791548361619259988450998923494882531520526564813109170868945174377259589923719980984241492208128660737188886062305844770945041054718989329593647674599309721953260359206139050416416173968126934783605717931973372580100196197497547813502957415294522151492451001512597015635239833343264905510883519687597628394314270248850518321097920398392432959722421471043076150502499746418036490878670930914232824865241463597371576019255887334294866650767019683497229800996911960612671571278939020926900862572367674781074227385452042816666981138233928851853576342713878815620505417221285500227670076457687640167474985603797284326770428247812599294104630309871878969848129500224727126276475594053148149707842902647122951266073074337852061900996344333015312861165370274326136566378949580677392892103617903765476626749172373010904500773318478755107136160962363282750546887597235146842647362496688048591537674228606544055419080934547570228877973450113885116957428674075792969847425522290387748004023886256595474511242640648228771830958404107190294635027289432374241376820693298909222903618225277072497894560258750511746905380865167999639706563115569970685678164107301019743510751042427289114533773341611014570051981901863671536724219914482197379943246464394743181607344152664264986331667433317845627957991007572301997942138464833257715674347715446166160609998152317269140120383513692395196386603156794293995292305881210161718426739586548501924823999698882161124674295098431747884154587840883199666297642093659752052900128595039883837667722762397120419603658599703978271606052768951968508780526998229428915460690184576119485992096105522718736582136056212398490981015881101886353379717797434047433050651110454464418559125356979609182794591569107436078168952847302158186597569065976220478294078867559437939127804881566547993088912975123319232911454246008630315375807692946228698573731384718858153477523861137077550117948061685170374346583089468381455779962541822622424721673241545930681788902049170537753126094630545377591728725311071764198099226408726085096393942871341820712943147581710350546494104902804717504666784603571294432520529810977784623013764910640054218679582774500864530744331173715539800064292065854583532522163819319211113499482333467685190578473634010987444615678903880001663315125458808147317075262081125108419386316187859525607310589384831067266518835162857795676698542304953043132216824159979088126423664161891716315397082831064805956547101351492510430829790413035062287104723330952789438499661592343125220210173544599523446076743981660780394648354849812184102014078983152435557984024827513141309818870109623882979425098765165784111176841773451052549017591888520927596014072525405319587786722016366475098717492005759335168557587414762367400808403700617512791318563611420451368586281732895657141799957479017426358914673918154563135906809047990581880223926776170871622770538475607549105061401686760857049693621633014119767825483457287198825946200355254662851093475151213863629410624164376100300855208270734742975043849401847255445050420650529199822710646055013889567120250777410999898086968558242080961024998178164775199720157047062052138855918192000785730827473578358854959471924053438088262219432269081072772994239037501204339541431759810407254017515335092560173317110258830490477974270596114291286259476295628058772921660297257299142530867104936317374272143573256784425983872287299812861978627835770952633020411527166750062833545788908750978647489526151345030475918990000041055402200754227309405550910230656846631209897520304417048300225097552211790196821035622613879660198203129071643204054975624460484159117335893821134101072287078549643866246011607168879974647377538319355772562891345075111051414718124076844196084825041298488198882204838862922875086468888517126719907749338863166313407854546171663806819173939695246431521667224255844619654962875520907948595206979333500628994279460096561265406786789682429833592478721078778493281630256641678853348605871318604691199137602552788289770541829761576619668535422840106671423248874848045221615665421440948407505119557748069078610959676990900465355643216721307514774364363665012668064637606287364017776712946796396029644184724224017902343181935243946670476034479078068921642481418840391224075342994390558134838397590741214082929401131087078399001808814381101818294551426349506555923112780096608086505505522746793736354584308842836339676223984181440951276313514174541007512288949741129832025684063308922114766120093994068106818684257768154203077782757395950693072491969020206857722385918292851954307034464469679658952905950940879209951140488361977425419923648049328303021581783196334669781399365423255528391027258781094258878107489613262753229508241030243370297574510815476748407723932636364335631735958147395926882305521637335216928456952205938994288373085972323919445432348740496333937442726766950467561567529754286656973621554758084245308270813772460941595479880268286009700864604329727450234739081098049073041497995313950198017678874739803736467774479788336287914062866198261905073038444452182567830384344271059013839097629159255522131147047002939986177851790096545596886041752344469858911920702277459639377166274868795389153093586066483549334666101783477528726007492011419207800239950027651868261615255936503097376293145543602200622939137837928508526278470963039947984188170631651440526619032112131813317143871516189241143179324165173213822017281315734458415570964677825540611997923069021628953674385444346973539828206847239973401812834777208265449346563602254213152943402705790199505378095886611022888938138250688811876355780249418038257196079054165316083370446503683400212148928945849021497976075609710407614709471166846523535455478771545434851803490226471340687518747581888918921645848305266039706374968058976983089498714232680960848864936696220876883977294344663438665566870077085373591173683457407150869424898762047545651729758594018582783337269729146264062479605998957170884676642442153965077634469604352922452691518537533268892982996971042293585291781759070405605141660930284895379540557614094063772311589897117699524402911660166989890082147704403094809412489663705222505654945173747623947894690297354754637557107864331858439876197425937831398496532444350916424246424639447569632248692035788867162775841478799220581156255671351584020637726678916642415661296724944497149896054472948529205430346692126001437924536084766789942894235071258194721071040018442389383767471757810976259046884855630887666922677088371405292490451661770573908921817120821862290192284828710306244270053412980686707079008509565776353055167896743197582424867740877304850399603664588062617586687572338089537070174313915709073584091830998834918393823124924576190452878940805377168012126306871488960017025820358707802143612050501275520495920153063146963520889424726307821160854932729875485776677918470797238063652416932642943213527180670118580106728524693969932258264126342939576833725872199133299529679218366323363852272916658381227588275474095873736674992062303049598663268147267446286040439851288427261075563532951011473506860610753631447751405132332621128224099130273957200472899328616967194307417046104814264237213502148259594070316950610480981472904316916363846302155844564341495688399961808146177470828590730102940246050316838033480365517259592304954868099485412734489299456089524271313117010272934188430628364589609234365224414214432952463391565644640547501234778199272409965469215461499257768358453209998892113198500603711320107513785024340729658454530265420264392572829406020060321980786421376902378055104547767642533931265415797352906463208016614240803747126723843913479204301635870631754594279187626279664625276738756223901416924057077020199253299349964762324683390096763024828853103754780880944783478766264258467566803735434791216268397632721965023440480836850114211999718183697431848965089157925974440213786596459373462539104135950069794626294436026748208080460724523982112038465522935532046099769091401256495063902896180669953829449603367305720297176036087233307692100214342090142897369156864588372936714172299186048864722195195384336945466576269902557074159773792665921840150644237718684858625682674647419680315869764448295123276180283635591199312793407346943287297063073467048391217029973325833217888469394637394736781792134367329913787831805269870512724637280297415373407132539773817751089739221963052165236908228065166622832511836192417902641148687282118798993105977805077284788094913326538887220156190012122438552718072157711338861688044714399511254565696896968942101241383154357026338326740594006728940322191545719532530166848331091764894185156360294622548388666765330633064048384467473246373273637770680097244811826131548839901803140204276570013040505838858243894336419622319205839035955164536264085267787784593041060857872985813805925442823995835374420501292821388513069719540499182212083967145168249783567283274699629366268187419628528514626980199165961377786537178359919391606096951023725046723675008847675858872707522501003529340411349150460280274351308699839553422677957088032185689998665795259850332149633542149018982871843521566789688313773547923770757737671886063710224557744340038901565558562335156428948930568375847267642631733042118543912541459989205551374269259937651750591347463059868003788203924249512619399599856132006999981446623949283321959055985713243945324276210783867514505194444491247054726465649959180025245507476633828664957250291166902347435353805557204130190993770636249965290446822562950624254953007663519567103473969397652002269185335355345160345989313211909586803837575319627581349045692356717154065864184863382551584216476958199531828682009950563371038262436518763125017842145263784115536723931918656522395705714518605526558023891741017448636744617254655087353648223191213541619205616616701816806287634706181675597433462938312885557430261300274051859645667100329064477968871968637937918856241448451923787809236580990468373436003127367160853601502577090607781828005271677990137034183037048446486831872848853866248301958802116134483337694591492214930950967390988849755407055840279867031819576906591787768075019641895733007808374108568827757061974411372766065342189307899723543416853945727156287234705840487708650943622514688815882805027512257272013874658847170923128722529290687687338613684554953646505803681143249266854228400299395271210815269115029825049218561753074236540491130285463945646578072677310497050496212378419263729769946757122126543219425097331083998491844929680960684675137619483332524841957911721110776332387137874302053244318706443254275043154474981943666502879853949082765711963865163102997410206160757752926930152040807233712520064721107771824047776371050867078902052560032556750613511644344754394689369142092913188258750823118622349846400924257261566809665333063913216334824615868703853320004076986179910771503916025255728490066314068634642942572743420674459667798664020499465525725219941449397725513056164724018771879114202526861198710448872022229559666586984768987454404415472914908950278707377127109096881176434990695299583429658735866625445297361205567728254662676656904736829288738553503357689084565246150270133525058310077161083316941313775970681167489540336833768522658715145023592990764149684948773789777922614106443561503262893491647195998229563433462367780099182729907271122860395423052759883407059925042395217323176409890161337928732590179174349800568330927379456573067592976917278351457972614307940126156359646409484143570992821282003328414218910624800317488320414848250904838549548895143838219213053227121554291117173023315159673758176698589260197555808977330818323221092677797146324866047044652896438265532452735789834853973342650370207887508051032020563516126551740271849788036581895333234945084859516711048700008945203437409555172758922951303465710325313104488724571037541473738905164887997847060767474162188708660932684128330537682310228715959628019757538594226542752355744468039773848354532756419549794362111423154855924476392102465982430159310220801785221317949087005880378428900801434073764562248897722751391050883841054001969735899925963436852721149011996310745772771331202939235263870433359241315898784795823867438288892297592436846270207822088816226089261473976470987609792833319263788963068628085275159764136305142670445586417054154974620593912664397559067763060974198974879177074307747472511366455297374596767585113844041489473669091642148169423764039570384720299043660658283077024188562694999320702543108595348204335742119117570306220753345462338091855031453938784704410714929229814439650871425000150110775647043023396540186083507581758665209728097630005219312269136831632607266214935147949788264278251584114255300984966990789784315366977800797407732445513379722242393949131719535823658662934152768763770663226023497878125756000609230542306373266653558738740699287154112191936746340564777886180793770500446370095959718141822902059741827437739120038144020972604743913787632823490270033264926585928649147806686784603680703100761562796233601129241070501130723940991075974508951326313363203039407170199501616232967257632292764294235453846817107165287663201996340837566483275521251312130247164008471655977995570666482389322626197098462403808153387091746473929631281400668704883038812578184893030414169616737062530253970209756842335836182812387336949118152420402987221642421000394068984646222614939608533777501017930884805256154760762241451655988387658894163538501037278582677616823466540138632738775272179237714457213117092168580055277167287420752286410223076267134071300706033335610542769121326830204349045269673546888706402998008056002362943972064372004205291555743935730879829080459088601743392436110466992779346508114535923700191494789124691368577701098840617818564614188038731838562697503411657098095926583473054719281760398110457695900089771292753104657656022407953136720233848523906735200718670325316830497913231750377856237491351292267504527642422744276952869537880868519469224126067504797731193696280238680381020486352522634592041154772585392001234166635053969019551441943653486155589821089960302324347900762962803256148324687084144506047282957910775838320680148682047431498319724875251901790441422608971873246180321578587792145088592627884813370295894945762901495251222240093768128658413961973576108154063233356732274869292866499374510298772228791910874156065125066159485294987052398080870048557573438887865970920164590765193759450913216806409992258491657526628754405381290230124430588921828131968888267856607625424084555066416171171271173246672344526451215211526743076037588882978447428103779040383219743277628808331767934201652362097453649128791714646865893795715141503454159995392900882248368874507633622641319433695484420074323774635034957776025968737899711386726753529242055930861830268784805003222657756100483273922525775928259289233206336591260752125380601933231400797612648912828202219196485999382533076723906244148261205881337245188542248003176747674011065854134282989900249406966606427293088976625272326870737251826520420543225115869771402101665196416536096971355552500136707951148367774338369191790632582988107783460639771171094000280508619266730125853958843818988599998730994411415923284374072272386620682475472221286264752995130380891372122712089763712168348520814356057845473179544345269446080694817161020626298914948589551723438036557108466837072013623537746366649495125837095937774198182473001887692335422487172978711361489481933910512831934029914811065433936117464321882416300363941419132097081395109962662570095513095558090451819020465794993337273578180042148287179972230106434253549688598651935704170739908558950342558860804246058807769962564585528056705719717996126752826352832816060936087438421263253412578998198211821018347685152137484260529075079000078437554599890939156718809577729622501508806988974612713012158091498778836259736244875619142735052262133771493113037992813630440621721460510541693253990520431934133169373140880664252342158085196339495918244909142255859766477729394694891868402436954560069988259464824605565640977992979265960869081244087174600847904533032050261039267639160119308081158013206121180500071758992298018141129211529242973374167762996023775123455935458438389724240208901859509395161930829432093486084258581233204748382828311358311460781640369736093823597228238723432462278707255540372909298442326242065089070611168126126105230928121733894534469041627466844568649190750950242987213509139486505417532991830394914564620182348327022907483513852486300213625662052165599198349008526886410522342459248138458385598455008591710303123695782173934255475211170092345069506477058140025814234853205327933558701480684723920391859623914539278449698299284999947674497332144632203689697528825999334650236631290066264963225965235978061585631031337571346886586682010622467791843836586317454427803479086383490313881598477904563348580070143308191845633189879295251015408804737919974780580099027464764551301227831834886155035990559828837116985987772598999707494895287032059524925255112950602297665345007418331488637107346368671426392461371441882127996598297741826678705820742453196285279048798141332969167450514696236049443355205872255503670417257043450810199643456736419780832146789043964979648982568366305101860387323420325286659877120369774011407384298655285965279522274891482776514752062382180288366993311888402459070901804960699811833353405772753519192341282627832299258845865563915390165981670610594462237797851410281998996742677641676459973933203862341970269074771424970781271366773637621004511400672214527489419429648359624541301738889882535878096955584375157170222066305991465983288437707255494163975869633953323839426921637345446021066901867816597360284509239608716653451690869304904684431133815676793927156559585024044290970980663859897609794769151235400345165244113753410690130438246949750695880613948206389268229379842501876813428088911034762220826590428579855360773217904115447974237554660283368336488151391438732456732771195958633838383706424853924620367194850290597615721223041188542357424143674266546131377661557541801208701790982601343573880294854871531868446182411092113120247482119390397783051238588063347812768866480069590848749402026085470888056534068037413345966184042033097474450680833042489037911302207276698790174771622161302328339271731596293702354809377163805607180663950504803550554946321484942427706964492038281172528524179059703991866198182976865377745819614428311629332215909598934831672049263350139233316647644154593325502853306119313427948888324226587728927313869458744451604146979489767032415070449769342562975563918598987858085594082747089199048608262491324513050384090276987616480251490088748247917001857008111257145277633235902545452376527685496019577317290839828598678625925973603231450195528913066508169892906230458622069753925748336148915311477600292016963786815268248505640203341469791038735357160269131088757319010246598866009782593823073222264260522709396007746519550352182719041045612386130755598098715432452239260782831885251380684105728212709318125255234978448326119794417492653559990168360347494666008786409745262401486639667589257848908260040940604309771371243777936085524579117361771418449462024410433943607710219217637363094370105800257516934194904293172912569648408727448563306030859938955257767787961049468317825535352327251598386700105647054795852724808766595407304863432290935282136194979078109255447440253891946589258096557210016133552306819291400383957351018096751272139685367734527189530205192600639775368669771258987306186337500973561573079779156646574459476848491857445384809850963728983938413830569430748441591013275085920530070474554367522850856052327330040864447534987476562310285779097410410443571929613857854086721956982195619444804869627992418162019571994996595827212264014540444510119680993751138572903801225126219465298439008652280133633788086514901778310395379070574687803843250400936346298726173390892846271888064999401014182390527670056793554782911673412093600332615426448359012176135416573425628172235113075678131825329231511058654527410877779051382894506599781300211252157703747941247234683902232997471977928852064810136005586831117556637864755694785011714322024020367782768345973451215065707443052269171109315447159537488243170780501023888624362667045440333060917725603951993389642238208827630425952225366619245177515827726116361416385409064353306894957220180725871339071534118147169032858734293016557558344869650790556270496941461492623354366055995956682057122298352251947122481134255217312296997100137657561224978479688321224773865448100365229620735342729992547772011677053482561350428710191571311496244610451803007003712242896490993025129601232077678877463645771469532866948232705322172378412961823980036474949177858942781960090760927226536302221207227039458829095081155920490174142367508339871093499840799564964418454005040214049110235549674293011732728227927633299034498714149535216250049608943518646839285514081947180718958577156787239208187101388592131438961271454645804757113341525498042597777985233616115608843574587156338712177440109771069905840939579064455419347056662351282299978661317805294750555857796934768556447458769336956867241356860213680120731169708315977593177903248201678507884734918639500019604299786972406891557541470425116900331193559887954157565409723265074727808263093263913915470216326357634199596380326903417751116348107098679316334348403298267186312588298537954379364941019720402918589753105039624202377855849359254990046792323772662533065816909471380375626760642365103385897631823974530295303141058528535870124549475323190663579948310911770707193097233822715187969935512831035901771365298377938277970979354599601203220607270441035187721956600869391525946934324975254169851465967611669556240551726734900152965135973247727158830975509524896026771615442238126292163165937141023240702780113532091550567212055079072429304144262690913414141068427965836250076528291871615003340765701721114762065932123824953122254229759498919755098571798778164710917167319715641096641558919669965628175172338437545295400889152850595134017480687990961758231241819757682024306147900431619162986250298983023725881693329674218423925523357669033889523594223435100938665538342741527684887917516493768985626549544184543290350836998092238752994202785268666961843000936295516147384977258618853496828626722604951892927431328709219435235456915735160914101195269104231246412859884103938182632262074549334624871061795532300564194103985963690219166406540057033679276074582080086439750411387714929859086193436255624652650668825618541251490307043515188422071674519452504501200456752989495168591927303155119540302210058166359936955646990420461290072453845215705994352807605278358615025751517092674544988264371379093105465918641683470084506135548163483016388399649858261441859678960618231954461499116908961238653575661490324926014620673163041183190249027419179820569461919242115527083589950059595497798048082628369442836307311378190305601421860360553742345647512634253492562396499064908349154572541486041647180645409995745085318839565008589228815211045676127810900514954061561129935043626086573384860754890883315513392834682078685071151788183536473907511505416057849019736972555546583930408216805643950993058384249344255180685686031242713539513164172896059281481682861067998338979921482489896040034094899320174902794941326765781150234999091000019536796292964347575280665288406249721661647292564582056471080604497206977640714472256962815014248830898623888947431756372996517286603424643252964463459556570408382048804978735672243783659116461895436772825865734321519727825674706416412095241797566972260133757223776928323778995377697554113176913229762030671590100108693635819495906933761254461864873608733771370596385318963855274272109931951839173475828221410249259546069487087477575459922203624645554288105192104127911270502386748264296153415121579559405882172560421375146008279841012748637433857391322302732454376000703505702550092463795228152591245520555934478315387458813117904801887204104926080443615059790498714841049210731563407758363732178761331975232046918198970147469896532515028835416849936634123453148806280835389380122852324907037303307781145072165116435256220559241924422556095224615708792663269364071402607721176767405395153631626433433623070286009675271990464624752178753389885143006891792829806779938660591937976605843055954290266447661759369964260538054117668185715307781950008185144648107963272633569069573980482931537403476524098001052237450862460662031787209432219197837332248947595934732575702381040542317807016768842740413840695308780629217268273102025305065959327262000857565093354544904248293810230047221306220914690191228066068060367167246000105265021077870880242837626223016513489676380317677075623310253849151553419163537791121683403304454423804891319290150154525884150442692656202226959438497667359135877847150829492947651119523639690431994150665527152594047076398553814320759912589945151486000183510498084330533281747174161459090374609073779024488775826443089323814681155593674281112651193570293167015610097236332167555177537616268517954969530603226104168886912607436541970624225484579593158552468669327875213034603193047940428939121333906441766317248001673409294385410811170287024694833152110944195977986771450391996693423432864259134750437275370248409623667961348496899818917702357237819363137396934423616742317762077105606234834785286824217111177064274819581735554690702873165943381020339949043396373371418102325381220579428307827131029403686874797559729129892712254567342134239748197694154064639446137772392292387086371061757531299015110256479238489487904089734249496639047930320935084140064932894414163195278474383539553029604370671052045015502462407528562450856161878892680418702308501163503695278231951483763876497208979469322245071497380238945293535716595834435573527434560422462038736674625183477781109234019509551919157865546432379723750377599990983511204567451412337760334946055565950883426927332016576241708090812592269625384048189992804959472932112009671868019145879698573916841077172716419745008952068892927992639898006901814638668628708561504629283675980950732892735260853902112920365133283654532208429617147524155347088082002866909816562364327937504246407946109602508760253932440003410157057142194460987613678466895210810165089840615622856767501082073875469125072012034380337461517604807617614562365570309616968651166765186472750336048044067740743099692774117516348497909960423371326275106469872481488314144204383363663494554795930878370538291795879312832178036950562232127465970023405967605078166877177580640599363910632294204356633620541017282017938259619533073006504177017048826701016294364256522066732421955440952461816574069483889583995046429846280227463404531948029999051771060659447020829171306273565374649929116565071034988153734419638959905778730042216274911646458910749725083752758883841152318396276035119860483069292245208704168117180500472716391806093542736088297290244402216269103663299006606949957464481570900966123288403010181250484156786381227390961783275745389041459155611749004500356658574780021238580322622052747059612186999302758892335957565886768921450095444043730093450258484373232028759515569898360982040838200745536587285223717871301742684318004022260052847436268756736790262297652010352146619032252962941316253005790203271531924386873745400043012269100702643318686746488346616778715367517995323775639403314203132705735519187667491320956784172954357339360387012531745245385383908067923743984500253539086260094583948136537190442739862646416424523041431385072028097056179253955557917025553840420462088898296625763906349811657223486562192724783949458500011579518187878345068161434040746361958746810098036349015581234737583535732795908565597568363993497209656830700850250269083227488260937172782827181845673437477620842533608010582603772200672586648273184186096393414449414279925526830434475767356217710768318543802538823498597298046898257973099876257923772010248007136012574192134699654840036161798556454638881977155660786438529572543332134064964827368486787157276955419484023416605693326967429947613418254209105179552237087282295704949015826048896832589845797225892010462371799576275501883615575020540134565869127884155152715850566540323385378877378269374568708588456726031985578759349712408763424710291949157198855376452531259640588208999696087539385032493234031550738946894957417197725215974495773936889450864319347233685198540981156254887743363630354847760487001676077451741635932244790610337197503724705888257954606104822581537439448498128125307534488500581470990456232398117682426686829635518013874388161459209404709705341805402616125395894189231343568638605294549257219151466753954917949856472636043332711783501917066917829991898679792779642818100642913389024674755046739612328620808166768029329385315092189597860663196888079957494187987900093893655849105908971226435900167138862135662477031442951406413647523234069693287252913561149150313111080888080851204543671313294105909384466346915261739930511316797765316983827549831462206552653374985429633690700120563144276966179848364853481440315932255161095530358712132599934197337632642626325420960893790741639215166757241727226339157889742347613133616830218652844504294610486292178464415914724860589012436965696885166109571591630275462132280142385205033189032734500287961179788958463744550705137403176042885924629874367428096009962146858814084845764839026733992580165293549121423938135894114026870650559330095397964463633980136285397541007147083064421463350865181795946248046977485915971040677527486580793396354421328273680295704647088113880917630676652422130329570368070070892641069371766324020476974912584197974443134814269636160596562597346753786518211011403304722131622041813484751775274508703808650350984518236643578458690523381971823796985022947656373416269103235455664753171932964358991866928192105184949648991671189888985220331122760705079035720935952771848756337965709097294480246387230181354534947663932056381573513685893870947434379427671148903478844195050298975047885663335261534573846695989083283470223467907115998902923124086693747764481285124077307270609679539776373342570390980243394199916682376023825799190193747833687613280979059688931638665311585156801711171344680500757946485744766248845205188670969214499445294554584821350643646640726688710454380182024515128473677940952181476012993168397394948723760599841974396780531906785465044078206932397098355701009486473846407760542229493295020656402800999079733399102841587640345254956275341828478193422737680393696373473774108202255413115516239395812121787091073755995525798271446980578636745266618912784997366094544539067486429230986544048093596073963658745325913315961711681136195233327839067794602286232259903983495174972855800513313849908924873982194704827405671478135677154863249036011265639298744289965174918616472493825396764511832424552278495388818428425088515300989890508779110434302015450598711583403405424708442401222992093065726157012767863115885549029896533511781217629362435816659707134091832656519257069908925845789674304899637872656978928247296362053861802761872618589561534004887563916402818736337200670981642027418503107439645052456675385565257587455809863028622607875931479226492888692478685198449287939780910920447403560499533349825464852399895605064852084137268849464039254921299204754432257569666218438635316088010074694847674799529079894333734925503663392830616437327241679592911950907447280745359066351761944769609874208078712137019335253465966669018567187493462361987496221677978340052688903561351694028382758359420510297478606672272564812185701102623895745970765449224413292025321681016707457514277660643760773998503231681828450401160040309339065757015950181544949454646406178847481212251424146636325657228622508558929822680828229943311695794363049271878059081449329721555708236965699143577771847931357928152796578786548618407599177022947703425944970961489498537746681828786084243660519624604855179431642676115489072094291854012567861258417774658751868667363603810822741265266557263903855065679285325761168091330552327839212130665564848801539249223667702651501615452129066686514943786923651672640232792695498646049111974490459061991550399364535208480272803066568571195818704984602381661925411587818626263164208700204381070132298290920032075156742141383482533912290862576207793463105556543880604700300142486923238899422640118073950158416122543480313749893827515972268382423404281320818190270500810288621406013750181907370339801306026122424037706049965074954941616838498394280435186920913970848925161615784366927699730302016029129261727831822128104120820315198103301037060909031665639229687510236700196867746978834614216658742305397213483252091691741099920235710261381168654593514706442951975736699855239388442226028669813044365254864445578827604394827519800946697882249254163143659434867171857404986113219954130365065278215745698730037994867781272537969813854952969839808874102789253910824045355150038334780566982630705504984538140044222915197064691235836297582547002131748308132772310818672735771859861434226306358664792515799771486527475481609574695497641306513470420145536378137864766133656048514607246465470071985567630773322217646366463586883974789179630837209988174086790757869479542317520796457181720903666667106063382906461685564155372815488667092583141664527599926956871429054177528543391938851100785584859667478033696962292317225805268815811311799737632648856299716923327786262998786132346684266462314267613100311491757229600337388965296577392656241224944220350499016958212069394574094440617984914968801083013854133263848273391891645784128603636138532371127742073287350936349963391903229285492464183903123893740334078928554849478716231561348983568569753198144401270106487392356807217216284755894412359626011975620068038976375426327873452948383927529185463945314848624231705412498263634502753452958449838857457433776632069157533622770926981633878900024920262072158571620613107120891380413240652685343197409333914177565816792597958133850553846479974153465743883716272311179049064154793988828315235672420708748821071178637122032047657668940885456819158860186686506214746293007609915871961233807318360120638345434190711560220952260398692246036865329124643690820990958240081152056906571634726516294201841192962808495299107044622345543771011240903745003941521793435947125472792959929354408576686456202536857768969429095845437543558927496376772167564399070498007577520043796851428742559171927727317302837430421241263169375688156796475279496636465334767810263311365909275953132859333829254014349573514952518730002985459549150739449921601448979352624656785871606209802590171080864702757026708719952579047693644561725329221750049173342876979762244330570733765571341000364291804716916157299231006121583260405625055835768049789960812757002563315003110620413582815115945370519842601528643432911085887929168697684935396685617562650877513764370823213537307501607410428174917676511923799606298397929895565844447251512583658380936631171969628005091778641731593106003849788014573395565098794822342902768187396849656665027985878231150847730816441823388814630709756984548028103876985191138702080737577415218770272687978793986494093306469177082532018169954815270925245115143905906098283655833080261587567068382748897853620376456665131982955880546041753447516526355151656402923494472646782146284213365809737145971932839493972537713443525197851697198880479061271057560247390321758170236829121782821295895010249438710775856338710892993390812907544798588762958471248271709476012692441111229852769227347253589248957553300693853417082609533927614739625921683372577657372157889498269269830044418367408419924241890932688370564090347036844324786024786671252790000825871615638941270879948748432842328772086453098006926403689924470851842364989447218327785929185708713107820195138489542972073360236846537118244176659751443556424053245645231039081410073093099779371352217142681252805938069134097992755709596068123185530174234400883141067900026148246503755275860477976538002297831612298711671331873730734423011139022580762947733163842828388802627351411304903441626328761979108174896164492072128809383586442366951830561983800753499102214728869922757581666696288254787023235227652590704735393341706867085715167787623170987490960709360229962487542280181659402284814055304569574513635110806281961610599881715072469259227360062527436247415661810350351028735346975683038502215099870399309482499227057954379038295050300971472723081656691859817654410534950881428438162133567169688185125235902620921287697291007907272857914120827596066332682191154292074041466003106329237880829514039543844880335003994649678815465775753120513416610368220567846908394155720163248275885459835609817112325982891267281140681527859471252956809408467593209112057657457507627194525212584580499448867899767872858054689579819555213404670786928018804734467009511084078322053586314256514585590408988928635950673010975734587417008199284954558944025748084877016373632438838131090505561707259639359281461022266091184314457659595551770562456006043924113919000933349755151946567077197982695737087690350759829565015210829823731827460880811783816999873360826057975009320864585148934680821929366510172256297199086582466398070435552478898659029689230353512575901784724514197180374158546594584070341422869393253079675055643076878669968575816127252591550683184189358651155686708437455845068079691719922444079256926834485214245354816344188794503507100954514372143144306735628218611788429511822233411761190257491352980506582929170666192910303697396990930507667918171343213440667241053884101585921420399019815663139492440314983162186037199289547713360529710922445066752119432680421849338152668478637721219581408248255115476072352167871081138925120343338392785634761587165584992747685827324586795863723635751598961108810170908290992691394064380155669481569344203608881811501069270773343478237466371488309877926480210638469417189475686901772321068979070825198022371964489385013850181773383633200964879619258112836061528967626618833665301548092269223624969565034327171485493801115906253364539622064679017401761593724828687899757969489987062006948735200477518347960310592801203586394742842523092680255378485562138935380526609437474421172364363550402680946119085501921543524635739202359742879504634839066933662108604131467021660443703768347005867025065480452931406958457599390609869434306098861386537210823504579275405797363640163086615439648150439094822698078085185475374680241934797114404743387368137934373452752563745180850025520303758502745893140889256861073036863631410947077185973142332778511337033462971928496188078708570822616875187781741512393191020721156003086214176086105251563075293233585944417220607005462337415355036433605794581929387122229812680320081174718609261054053818368782399725320181836689608167591470303810542627383663795527882546995392082410979509282026336288389305930847975470673540610654610898740966827610449910803279829721374209203379687575420194891243347789817863182117244555735872372868098837151685019609161749937367662563696589244877003879556358390598636557337181298982562559915830818444527508954462161331895704467334278970649094849796319466292578905315148711736793352915331275623485612161744524576320403277508103658881855494210551780967156983697299529160324320862530297167468168994270450437927989901142267412041571680086412495757310195044016340983930148027569612418760199798576837581859950729909007431036379481311289400244239774602573412343923482234928247180267412609615796895234100486697395463552922079961869366799753110711087764529977663656447940043220039310901170365797813713134718253154742575303852690990929073814563213566825746176562682244911745645950926765589615743127315613119788097877741598675168721769326233472097778208758980509929250309469737159709612671316168859501890653801892206298684134941917407009868453693672254414344812790263360651185020111415149522389716069805431562652579092113625233825830142207393011270762934101424412432063949500977302316503934344817905520564660293263417052914398582829813055484907365679191410499916651540652745455595671950664660205352302374603760339597310664254010723369657162525339452132255291202167124470686507685014404931798070139470156008784320741968811098879723003951978590202958673365316426544720037689807526955628127968808681844682955724405815307532470237593185856915357004265029799178606326466468118240724693859468812484019653809382370580195487579995129737203480620821586680332286844069522734298558074875509538509269166514377001127759998220833200160866102990773351885603008425088189951257802464334274216394992161018094423947514038727113220232592586881284457764825412931538513088978379814324149875600754972377816294992294225961577962130567958067921891471318614702957956084685405114382907397958689442410758832692445779452472882945768311325827176867463555656571762525495931913441560829956985214166445400680281540383119932029104710817056222623984342198046886938487378804036933977773986004470902861423767471675120949996331220359991367504476377487590688383904560756667883252952273191158251075816822038671486196771886913971413429949595447068093092083930312614754403779003974366522860051692657468261544308332962642566347912149582724347070112276299480781250858213245057363179592650414498361340281988120869542333602013076299606086681679255412884999477721998072520726934162880419368875194364268203676106790505589898245642032585647032212472393152623486784532808578997180996948620733338166920026359183205210246340994905424251986066695976657422358563035314228495829152896915537718182092568544025477500546542549731564282283633039486835833749489917517446301379985104165313211510764206778904940759188016351523164975119523974157650052765558865909228593594791049532693829078576892653649167985661996163870440145322616782792334429947463736801427262227422183338047585142605469263644766950856176899533749792723955802767302972999963419965311714622977069392222130398126065002216957979982045854676458745704068689758423130859398411629834784903033170915811684651208665991468237158202638229884293338336328969237131674144249830892416711895430612617082231578424629389161167956453908972405246015717680374442233797393544589636964688581602709966936957288286901959733453184501735370411445108825125327000608018439061164947768016154879037145931345366069554240647415197520866339698644920275483560783611521470655460497333414299014898484770346031232907126975173808472719036575192475418613403906749453113870966906938822291332514364811651533327069955836974046272403132665075880241460118989724129356174878470205070769091561983796845892629170622354822530129540962539304761033399070395074576810298999281839266224767372288832879487430862394628856868797563161249537491393833568299375664807172806542178446833469080779530571847909521565901925597452657496019595677392164258746327733415552900187050464510060519802466266636848987160182860548080403251833917821166842740545308303498520691382179039673857115128353097572997511280488142068930472111419924651043128175670809260487998070980335363984741317701433888273671076525957352335445117436315831824986251641443504290478039767821052037216041758940909207609965667673185543685799459097479955185745729300999603729500124400698436512987269336273823597747450452260118151252569363306020463346426467244594264150996355836470058627439478309250695588567813729391422674517627881462417385642870921887296266021058209032099461911963497640660243016145917037783983387474383371969523912354381517890200803924859869439380518273382236694546074675005184337712222317299232162985041376977617753890662977660864977652403581952182844960885694205430367524254346382037522296996618332157600697031586232071099743380638266837695527207375592504374308185708437982478224510587877243262994322750631151775079956212506828232962760187042767569896021399268355599019005304275371624004732261294213819618009817309622961607074128424751039331179190575627013324131752429951367461642487482733949006846778535299458287759120312014901054703161189772515516593043375549391117349167620984648658222404499778438582675626904502006927829800897032989169154123427221003614566102655522862184871822974492669692690515665749942237705621913496391460915015633931841627530531588598501695002601154440037387864537267846898606771706463853750728897584322740955426048432495675762155702643222436132475451701425750697536168445299363921136342117374126085250264403533525890803184398884693188152904856032639018385798537196026482705389837876478136036818614994774884697460373603820277581563438472945549153987920790423443110641964191780937332653548381514592202239881049328166323068462924103211266343559408106998352843839199032197656543607973628799642866246061561451701772781308289976706287793470272536747942320029148858393885488837651901509413401614488290217399760290073677087871177705647472957093753372091417170427121614640343050922986228158508836797961691663339236112356346047815542548929033426768234776125562998065424902717356476626072434299058987729231914142193702381718295278982944186209559857957560497822963203754489725987546977617037421819630427258726738682994141331518395922219928103765001748500950258991072831173947651222702301197748899607196614512594768051147547872259286553207289001092322221075400489231500046790735198914471322637202041175326987366585463810402395648140561513773940303992131438845336874282164725248996387434406405698020952513695975066736255581655302540222757693418661073958386849080894847600198405148793413965465439024766384545966176639938869346094182683818593342281752637460789530822871429598438438224683321543757493915875881144920481514812893721558436806124930545536412148155624035133066139364815974097109321642602344691383265393477387287555143554745874081966160253079492755428683764596198554886696116842088528205130580027451492164054918278633441108358644783345591090270524344190110175768715675940025318578601790627360603029198963556796352026599657061667240930414228519906957786875542520515059502518835681921999049326314701314963326252514300755289457859928750885549327133055331829338559921089328180786672580466944245009043231880228555323679790638278323986945585148419168090857997800523643913558541167002736093428498060275899565105596776411828190871852309113977744171607406213203272066456558229834495892924332245303107124519606439971505669318447969967949607831978856757718370267022454325330937020774982080780729244414766629065915959364301878474506514546132591354727924833339514720288347383749319727935257891380999364174000033025993263055958190014759692084951289385280098724118524555460914659941525617748394036082294803649543078216910484505754303996249545305787982807301544647341461785479273792249665087496700289355485051165811974529767253282562987988398196050255044134851210340740545286776415633112450129780808628544132510863148115097429690171104917316276663048847075243730119245191928514213965810907623512050955066572135927501071493778345152870024271680565148563698200923220148750991302183084482488519768953542182490599118692721789865436805830748546473600514487278553747777698772280711236793961340112958896417072817928925432156746956685249333595968950980498162314382785259077019855757472996441647004505357084674163180346781858559580132724063494577459464175466734819650275822451615265035860379101500457412117377279699478800763811616811685557025487893513743366871989218107348277727827360198045615722563638122647116240593593884349189637595520201838565331268660516440704737366150993804262417621841471997135101764484487968374397273890201857477050556030865995205741164227762170863201455632704969483656901739669818291961121937223137946532776218746385035896728605478346169233437690038402043548333611524534851516374801735914854164674737307745141302121236038315420214667937178829358451940380545336824995666261568426363663708996613611857691707885888078971464260111129810712783287190877735188744890794262415840954966754421990694477648020063310926923722164552176965377148586298979023693921906756800089812510915400729810833546210631705893925112408354851152278834222448096154687977667520679964211997896596122254003309258522425084440707748572605050265170600018315594662535873733551571871151389138937161253604527013201403872711256867860459627848369409731166961416522162920053174074208818919882825780233393097190522693145129544775974048862249831967373423065240164682191251166694704023678146178013200121554146815880952336188759148129978529234260671571711226228073952462322557031789346515102634246903228655374888347699116746166571834631513718197563447122096449747150945917566702987357024830158236056389937872474169108453958771438939448444139530202757399976544157613321158065176007882882648868539732496086545357185280654071004353038459874408827349889033579890093425173333230488641877972669906249575446018788548851715958796152662112586927667868207071022042874032219102495941266105872886690825141208680788716944818994244461140568297898965641939357325775259596846985435678986858046589129628666910664612646417153022775325620374913579746747925279032143728541736932923728486178387680305965368695728892445044262135831887019652786699967138016704675033244082441202465388167625356308866352425981011644203455430430682365461383153281824862670529909484886545849917708126473190122439033394245224256021855597701031461339652919710879860655513086712769631405857636673168779053679027769345558457976177562647678710395858640596965083053332795072542129146759384337070991280756260741962585873747029416072069741891873183178042034424329232653631449379529072185563808552164605734756889248723847034709028420323587963444462451885090599100431751977921791772092311246393545020942645328266441150869829186107333461247929739137251961955463234259352717466499813009927014213589766329872122986171059474255617872154709071568097304470110640614173125813785778002843444259168401962528771947752317768335841703347642129328184749891084906556845570906468046061605314532509711796463598182134588091625285518282170203602064699441391509296156559043863036837003730828755622622776648243601215442486398722006910091752200487726702264230049776802233569678103372254935750509449154003018519969941834673558770085434154336952036894086131746785504476579287696229451321972055127763156610447199432934164335325955545354181255833757224196952511583377682320479504812822877587131000093775972665363490390316057101559140171048625815519636240832481358981058752162191263287897102833658630739610560730746402546790292619049914037472352043856079905593718960104375011767148231040424744021674547761630545268838160861661691503043605242984307081619155650999618839842491210656947382594884532209072274520182535921103383375976485475884439091819095800383229809818989619905378916710567114597982222049720053202832410861967435637533358023800060033749603503241734128726559581444100177422526558241021583856965176638585711928898512563267367176235911171582003733417957897974941672124498660692142623376915310595076617252538881075912083953053518440750543655108647026740975169941457196265831857553700097824353317151891826972586514690072182667022399085861148118465301444630540634478240640019682705094907865239358285077740500919597289697504126699936789188190463930903142441557177222190161907822167031617536439306123946493240043447797521320265673641986129546080283133828949153940846073612261672741216101788370181420657997107047504170504770362984245092825705671413398873480937495634150559823591556736186733165746114291971886985766461333375895887654894906731555876120329739859982495435945456068370074470352296251660327011838829246350578942415386141924272850516556450619385696431390216387343286689596944099240056372712786060451898077812693199390534761059312772518395335565120853179935977759560010293796358996745186724671100212768543514283634538357437865900227657011304789687053159397897964686257177675171878816687783559000477464742478957809801272469684050449069696119867345524934141158409357475609534148389647024435053741607268169699029395604634184850626185425093871025769884524689986810818566267396450802150755956689001971789438612818219205506533336528800686507559190137141527170184958069024697087755030294945943806768466083344591366292192214654340284405366836863307903997731942322745123750696979791951190646946493299308032735318393316744604981107956711533862367720159643223838328749454348251151642445309738121587251258812095108853448754905763740195696034492585529164926452250105189920133274249517500637303611393901667853146228882167681516530342384126995730780346064059750251820482895609196461268407744152820169716062764640990918003290326659905553598070308088031824327578751702629406935011562108667101787943089247242054722710593109991407205837317176163717417810542813112228273082533932880330962698483395329757477862149359256776052496822555875021849110092567059542483003402458232888456214747561872067687452419034200686951969948259052074638038978061236564140467187085774063147354358939807042088988192045908636522744069949090351690137010502419646485136980391580326498163260748686021439748180961628654894412251255530215601544928345510287237370983910997868304330858908700355480209842856813769638982630910520977386265999194819481680761093410553311768751214697754845522044179860523893178155272799720939662351291226055516217534176365417287073509460322097472112471886018047673640944074815309049090133903515063100491285160073128755653294271094860715813027012849427143565501348850744423453621065700298134794777750654881779888772963640383833371677780893565501374721380352473118898509081930892881345969352900347238576404821203901806477242399841381265355335373635698336929219353270520987222660282955788644007702076386453580085904811263602969693844866828774311576696783791107074257957641887883290392194381179342164715852719486921071289777081555876541558873791827564914211737346974171247391241600030279753113936871459142152370711476766262157820238131067948559875405907652812580217714391999448830021177022883844911883167802670373963775398655289101517519298782323417758379877993264695832798224821966576978537093232100562632741916394701046028392932516999397629946777971746771382314899412454918128348528479806849317019847370821300582162617390069490996632527144951712313757520891760166755129054591920615322108943830845736117204369569975762639815597297550847478738954589226263325622917927977884326352536559806131883434767160746238280737861920497548400605583060263654652487910370176086828160465234822879615800189446877923047691141958042872756376785420372620275997454360616306959643185194601511473834486951396249720397851266229872272925784093085273772706145450843449414896687777390195642423642614657495529787170628649047130735314529715430642233604574931885852018376259650031958462377656091735857955989251489148434771949035242209438485183499066725500408071596310036979850578863535941782834706864552583900904198415203491835154191017592760341146916950983004072578450232789687742311385928972259082241707253296551970156297011059911721322917086173226430348975460813106895665196799618818158298162865277559284915641027092399441577880848240487798598109017869282468557504781199288881815335996997445902681641316030902341181918480277593632099598281831528780466445481614837011630669616896473962023872703751285475922544738473094703191264726839046410066325190767301030313709170579658474053864774794628808057080309329537577848200546021641275215481767546352971428909326926039854517129418074141348103587342606166726583753885796126623537164616555578918775953908566054671303143812944080270808052746064224900965564667654630428571591285987248625998915723903343095071630843989966025435521629993152625664967657430454247610184949809847269961416851362446248440695264413644515095344777190101017302179918560931699329323552164110467176975280154444594030935563602437146076036653418258395015892860655640660670204708470656485205515085292798110890539733338468702050892523743569503545371728276522791987194012164895782167693164051080399024339118815586771645928987024025421280516690845662539688899934087323863862163121922779359633515007496901514005741845598959270176917365328077855262343340117655473364154664913507040857389213869755964026430484326088327587525053930719491228442288716189257666993164009361255646352294523220248862523939435840744178393628128476337116294545145307228139013717778716920125117813683304741157470897454086035123825785385784681194058890615903507499118545889526915711564957506196996828387335457352439128453306191800407873193548438512525655429545272652187744426889706830710592451038359289238488914952977590108898527297496568953091516269027150258815377061653223365082193328562397219984505545462854669228341786587774091216318991293193793405778230389664703644146057683136406765284093519946426846653633027096633332640441918279429385507605060286126081639493365872567832696279477585088446691738699289391787492449923306122724986378642112299924759313742831540155623221169136448468718861132154022626899302602837227986046763233054887259863368058236129956178627941984014329375185941543466424057959480088027260989817405134233575929308528208403354674130669475393822950792056982584961140850925211462442366000994971478725531976859522883789837385086955420429825996617547071901452200472925914922793673745615045406242581233426187096304560375714567217119158115086121112559965711702044125098164000234064182732456560427131181907299360429661866180189630199085482318090067608371490338788785635346427246267009203627470708550353311888693141913670847590353112020650886840999476482911889469873022287120481531067497217280189502991239934586348377788050968404900789538550896832269811352683646752032828036288572358034451627287425320622753360224701994451233345055311780919554914832521063246080674977380335114363181902755279708582438152907381361004113471424796364730988936973459472070980318708413793329729507354302375128936615466150546709394756332645292543143073064437724137617129960182919904489193926407318590001747126661333338008870007464064555751878808425823554834306031040754882063979288266371518480462348750238185811908768049751729664821002890281347622094390728752640498501620480846109442635380379685017260098871413454211398587621882831702962295628173636545115056706389994426516474731593683115844784171709002954433372159515427513359847897957515239654209323647787476767003881659376147049751646201705514490509652545694957951185570829495803734189858696924030758313426549541888811133182927842125234748460472656557779437627653957049849627824160763261148590731879769634545177665063348193459903146903661367683626193088567846654025407518699199600905077939358782564802836505267597165629531300615478739608781521077668730853591263098915827323416642163050591590681936658829128768944680633785983334735844254611695927592895969504522151008442058713856771397040918500731513267248424272679042944036249808062817730890597788505880621599699663034887097324142536078490419859180347347196183124804815202079943082445898614965748161877651112898359486939370589750117563323349961356982524460035147204081931661453400292623625388250274818047522898852617535922829503578298058947994104465435128856486727475729883589418290465343093475605849323377242472414799272675799120072628829448535282022100754059459635185305591608550253627747357230785347217814515137230897192657066402853744891273822634680486992575729985231143888242249459376826420828946387592587320636223416329214144866509537595107108860135969199186161967796408489457690618377109964374713904377616331922849904926487546379013035792676459110335491959848140344348369307748641016613416091173834261270403816998382923827192933404814454790959648552817423096921117167464869181410263953325828492876671938837519681472602955324551446847581051073799254614570373892207512025540184258069975395503476158201694394635904959585900836689029887399571725688040458109846714348927339778562931352326719051186618550484414512383457327786709019852517362009000706936650703611850432489904755181604841759931726624689337810229378669093965722121759198120581588050777030446679839304761674632943578179575997919992419470194827834795605012817562775339904202738782143976903319019686070859480568772500091848563998098605102695910245646385261722504365856539059612823637088461040916687930050476945311215294329926535326056410263162903668666798004151144542915084128520018646857943023767106026655042237430891905473847661489475684845921552389573162977780794099580135609225788110752821810763724482170337037422064291076305988400935294298567089358004361916460247683507817931062731725955521022178604899794062717273050500102087422112403126679095118486452935206090728054974152261400223081530346142939433982135879897824032468305225953097368207174113640831267164450035541901698961522761954318654940636699746867774327453656006167340195100218636682038261010215607360223888260130624224568907722996723149189748992919358994064148167720123365996331010970610394337226376697202963301140605340627850019238780713991873277527002513746519145217225836319912863060523575662955220300096326501219693631710288011176065515485614553839485355265370206491591804424396453562609369432411508011021496927846468874847694220281859826619082355113991994891782112478277556864868937529865893782794232973936990753356436963859623574628926377235882874357562548875728756096781614604425857365447036873728611546824601873453554110876397402394590244247535556470047928630215763259657768441018962334755138809520827939901340786792896976470141473872063042959235840628286129049827031313942626847060528231209238063703087395820610369805808718516269279438216150169615882542047871427017373327665465657864640212028181927158772547347724210690642827718735956655098775064790001869312154714887210899814835297196093161280286254815239304761268045946911326220909828924998616722237530934443354070108895553776731318095007580167278279764557638988915078980640468580873953252694208228113069238491478002637622805907205411224932563604250339832380595857148770032691276951186677391740766828462279861511582700103592671682121877283464084350597144855975097121304917758911059455765423468348454969486361369721805371111544221277517485525556444605098116904025471425568222796947513627717248579568949429800485138984568591654991862743356391371365198459834370869050520203975139994830358523842014448348726134329383620018365947777127454502032250586272898551162451833696597754696659201522861339503128899718264281736322687965250679984926852069815210860131688677790654459811802809614102974142049837215346385439748634950085141914341349585818562796221179908357944251544481273377660136792152947145554074948893681439140640025862859065226858947831428434970588435703951519300172748884888582483387771958342604223756294979022291459783791595513321464862990284476426459175994377355852928749445557932453133726873364728854740350607031235921072370606900059870653645024735638772923313194915945883796058903270340785499915648592760730921312895495939692427004224278878880946891277881767005311464928613799601422882197384505917554661684096986378399985347566437679562946519024059142969344921593149712140395381498691518097269593870329717841531707840011351697698081627799949086036721461172453170534957899945857626116276975647044015820930952095218143649308226550422129411616014419277829252582169465407309606455081144382984928065205725669356584302720785970574420731234473967682638347204560340838939845623079259002635688298089042708260474919343067966203411636637061608214010497761181661990488878385849918140142996778837457100773283468653534880378332896401003172584392119984780191118428571470065822458653875322015815026252919673654335639588529643159364341292199706472949304412641721184985883743703965398240186877328759081689489982032993726441608525674981303598436305542777196921753429475814599568303855697632939187565098184209346551704868778078288275261997621849270122538920545136134103124500639413868436862612530414144521933247626095193549530542605151003425602853514279235219396323565552007992922726884831004015618251144806389417598874758012124973629689681145579327131665873572409607100787724671309537944514522368157121936033318315691549298526887965717656915109244088820011347659900055621188624680131457061948373497907607927377097751967807990806919752787033050816030384245510207207427740917681408484971152462630898781210374299501019636328870561213155711605522407260851465143939723434846317253458200181946161191712802187063899048901612470838757819278112134304211063770933355412282535162789182762898454275948643639775868008649157437729744884224097370995226762625037309981356725248021963765334765776161617531232406304022950218675049454470777519806126102061708515437258095736830808754895918570927488152575032203120155464369235870347708235500357689120674694865053766672013932866017459500422764277799942900005805057046924991885805990532588037103943781854524462278422894631720226241719457862158814874468552796878286768556649515876389296117172449770200502852866443913764857660974993445622082476984994755253358439608211875458546016646446490832394707895732139353390992947068782611792307291935832553378937133460348036560744621891585495319326665645122761308960582198181227379689807126791892962551374129472527141640618383656525821835270695709275913704801748697266636454429849640331921662326748735170020361087416453304516649815274387885115822704966961784060483601290270922830554993984423932872526485481560231873252210375498739514644464152175621480737023676749629574839605204676532208401198538801519965370231932281180204673542740237775677952511623984394081953927659133264366697029190208657583146371528150330546758331962116988474604237381522824928243457532730796262509362310542662567128173072786147344867480117534318902594342072121993303691639601102026040945442398593662013132907882376925385332972550921212378020930480265485415249118866959782424070269991712876861334509714526605555863554489434470368167176786670983028918929069278988123739468250700244698059566510972392218818783972311309809453971393408051647202270432721878287741605061356603757323002472293013358648695024413469083995400854006574926285004251389698716846956037239558203874150255784416351836900640360822619250578835309894694474396745023011116947864362552932089191546188805387461974886599018817575422606094065360132035457703983215865445365190787115656284274913154136979044417813049334728023087349015806441236451679260261201853652736828800374471301759119288151160601920807827013692640660210424284743480339452594933740260182465294303452206975130272738197203447625064155971466082314497593702413166282381642932932088169401341486415692105525173866380336519680267519316363615720048002909186823027004542697370269049221603682749126279704959199976620139192702768402799230304731428474777965990103388925547303481845497474119065370058707285711317024477539285338732099033243794562643333935032951693375920226714403991793617723179412423297765615813951092518104676246156328448023216777929615273068092052128684032264267879639396668502324444968017662091395428504968711176360607268803797780413181467220117628353728387685179594769686522329578823698805773617002670291073512770287638182284753884326860538773952362610491511070250506762902029360989450319382925793480323070637668839462211508299297379207848967080783720417085845513979058253283624759647294853096556553643173024737075824450581574877245394392174909591146503582964415077457210095329748107998101281298902686032452278207882254401644356325718141068660580459206378522608362311078771156520856281309939635590227756338292007116488556738531025869598088762545539766557464247945510734110239503747371095266779648992117076880347805823674757422074207122896211538487853103847442140231985549840627576468671686137251891154845133447244026387157847302991644898814618386807675497123099920218854816686573100544697054235562324780345956393208613398383717677176860121495530193892186347379937713369003234284132113199477776859444141068580335801378053380483645056987305221570363720974248116107474593791364422152827769464856467605729910603183482589951555413091996663154621971695881932592200430420349719452411521030063225483534146539901224356828249094055303832780797550720657947036591733447249649909684668035983386754963372017592539749585512797460636848543377967606092962937096063344401195350684677963390444672605505696465071665475246432958326401962527584254721923152571143202950964091770424326956898825137052008839475929682190109803830163492775303365565505552087061300340204520480570542597254895344396033301774503802791650561460968815822052337184689060925643540444259379728867749366319680021233293100802334381440018787741561987600201453668666349876507918325210683881128927478620457387272126040916907947610501669829408334437250185697133238957076638860921104389412529245677300024303021877550233070301879971023911372050513544235623367271139530353777858346129289089110728490342145457126881604932623809961604705038926290780050272925049085245296233127321869840099130553880756289651306888339117020877318928129949500426299580599910466278610338802521350644280222383011530850622028558606577011831271161968978059072852442176980948995873008604723869999309346864962136878854650083414057160772387526049881071706953847406838567541235385632866400154903746313756684841493109154714051151366148374961836699818941234349519860716348844764427245105378563789314737445297773886397748047336476951734644686141264383029098705554649506797514502654010824503459294232975375665087986086869655328276682421592658089323851535397487581048237846912829226485366528394953020640968152612451313924355506318668301238978818684869592043568520818081617211103234126243956612883019392461082035689653851665240342879079945661851104445806669079537646077521756470220949311462170236022379241025909382599484042766069271006659848126195634365980594197269134530697341795473703096571877281840813192461808034690811941532823195412923681943187765272372195802835214244763359461564363419367347588833180633157894208681757288357909559892021394207658211207733817593636656568580669706983906121021912959769027293497872383749512613225979886120240969208510626027717593445260407685719206798468493168192206100706543887773329501140445914043463139741291819121839090959007950887105707349645493730577571320237574409420562919095607405539237064181981389391407138970568338724772402395584918976371043398350992476650244816701678248050545767148626279373893297577002272715227615871610464692746050445042265479202996303718771051159768249525748291716315122623144818787725530102407657773139699355528947089840017702637543034799997883111290977036435416233608496769128604433563184922130055258595545477549071577569854919359369220411019357841125312384204427871129922805085910901000453776568528831880326461094512159223603423737206203546406369427978791207035446196078566729671880811582075358649797791332042050220016318840778763757604700149106693844762353934423284275964492765990538090970401941635330939683055913851725825172274659395877122178437604515980160472629223521486188403208820092764065279906398047549553845318253962013890498934840207505862642663609082535938699593273052621323874011379831024038211922763007646993557562848745565347706492067055822027399025344387555747754289127588465182316860274974878594399185439493637857740260703284832435576807880846957491570422018712232304890151496367386572469086330779900508050432030707371910521594273303122840364574337716464066873236476462936463277202840776964649886975596420988284486824281824040986031627522750619601059812621556195386439626330233346164153780095735930438180936290241897858560855569037269901287174157598063657710463445427030483561380234122474835337246805043533126056209591332200381876724959624251085148611786616326391549369899640621228038206982434696750224065709434687689653970727172683370571232043095677518439865980354310067064444034288060683056005091544762615998570302481644597996913916615707566273941525136978618775228113521794561588887454805845144097658121499247668809711815634933371935587285003142465913450840995860055887684420918696400907780192312029166606487411997937086817398813814146791843099532571376185149273499217674932224320839784861851063558162598011076621311725951141523879022965193584432997137157776895892227328746805506347375527020090637208155901524508230264487613696670910672323974131676202900713745638927139139189636239030474617453712967828602547466700357899730285828421767565372485672700647029592447012288945307029875608809080822263092319076981993053780835701780952101153235189913452964990981941954362677386956836263785654308149392852622923355279020955916020787298283890533806049489205009830721714871780077049110230385680196234280988820650151633458618144314293623433503612304790129094288313048248933057777005543593048750869982755344856689819214391932502675085001698350468671252992053533547601761502031370877263536509667568845205214678956081608524906284281348977249485685362420753138407137013279303133391124418694345283003854094367671859626236412469279906624606185882237750464875817140230001594187392423320782745315159102122540388045010964732556211663757609532323682099391298776708077597455212753685175339991509517634950159159444502170592400181716423716727878809619718278609312926423764489121316139647855268716051349925677904353316537566165391338328349963332446448855496706313012416441541451143521486557879778970150700580510474413159960043884485676659369924523789286702507476846087207550124147760509889417615890939458394748193356613093390498826813549960851606689485410126595070697629963164088692137892874256963296141943253527305388645117555424234475746197013827391938157560027381622452509030117922754305843052793167255327481687497078622549369664475337610077573626707812925234253512942576033259012075337219725947901343683796605655468074337221853889427455220417462329932580561703136714306273523395464546328397145455269966733255047636362863763034530079652105487133985007182249018709078176661621321344088418689162919864760160672386562150232637072811817955499361658682344977763533969902032415475881564300735257048925299923077264962419773609977547169656138417197757427023833234360818136953711813563918472243716414373885656038354069167052307265232303299682655555682772035301006571591831835318137781182328063885764983442494265266930034761532803081425860359525083819753182958398325534627277168167256593417213769590213338920570980125157342470273888215964101799889782835572177231145194749239356801774639038884205121551674118023146635879006176264117999615883174919288760489394025200387391801258597500424443817054150532654344491871589005851105375093361417353691736666318525058006342476735083784150358291877260954802282111370907355621008792337662849510267589413290332427350517765225077651949893958458493946091859957984022721414141750970900439076700656309402414620924925276421135688870734707155578623553759268770962553377261326053549643350213780473487455955941863242054565485013390627886169297458547440423163906374342470377994262903093989845189262197064650997565934123744278156502124066933221777952905300737436779697966116923045352630286549005983832480074763793863676921017722047512771574280168118789362986933253352820661600635992890991770759634648217485945528428515416238925797046054985753387418235851965674583151204325700133749839823934740871344223869712082935826629879170904220993187099759983491364813367390993830904568862059235942703847963916688793502963536723732443869536129798869818677421513575677636417274514737647388748576955691697009095878392431260029519988392056022054098975240348122651095531343407706552574913954045215861737065481901899043827772723635959182673390062512363475920772556154918930412285439533375980948369400208237963254410397440844441453140569775945326071273819858558762148300819013052745756340917841355280380823134516572920624260140491556187777022737384960608885613083636861575925270005183504785774413892260594204218562875214481416769373921043953870578435262365022608238905930077856105815187715950844966786170466141926683842605187715003137085812234076316063309658558930681384293536184743620653485899479534606954304721445762396468716773402333514324556295107302419134843915325258766571472682268270300387953876750853274875232536425291359242221357272847828671259195624916231866507002847605732103094048352509715529045017923325123239945740015741886990181788848794134092517478168211422280917054176080138048693446782484095226967677990280102367441268228172078754761304032353874912630264466557816185850878339033257786277634822623491836567925821565368023312273720902709297415846843783126484132188228542124846052869234445933926283073689910312736568331336000390097055014128371655754114764215416205300308766240329381914648600211739249669372717410302490547290720338139861955012149615513138761583417370128890146880506651470056662204139623107809412579855575597934289476532676041260423283016472037542671388026618931232592698152130181571191707064709045547559518327784023400706316274295316390843514157709215579220442558229039151212925595859149517366843774292812900760957190479189461027096652118677337174068370850186480395975592041907092240886434823513599322602214215954502390559415358466210090955331645047448143356223111300772901723544046845216273056496659059229197179079086308765018998493164829115024895932233096109476520590530154718406767109910699646021737032226042847438316784388205548825746650983744433510881034444629956072232535519319198841636756307720746542990918383176454891008429654417570371787788860760810320882236727436287543788891992989279469658189697232711025445861536420692639265670648095330146950111012199822349005831585961833286666410297455732910492160220893970918534131372958302810767603373182281284328633520370533312268463814015197520707458547467170322892565146388777159170031154129402822316175603894643456614556616753850163106697032027999731533639127564476296752326613286178228118831598422993455502845407797311782997284796049561620944543513974935930148587668432182354402593470961186174921534895844591563163401654740045042226354237709394699269833969108690138233614194232213214389717296615838041159817803703880493396000752859552135525577095068631850886954766296056181939685136629858670681086940647328584490384417300959310918437241682946918222826523834864948769339371896577874736787300150965961830509542664612173051929462992180273658784892744633612752421848437439890764125490026315236575398507857318470427397347560997286195256904251476300312167833792511416562217230306534103238229595812081288957343605768412880429289320324600664089237005651359171799753157395955257806913267789842427446960740693749991364036779407635173871703297350500667955168753486976889298558210630891448329144489309829481216730528510350527355908263476617003806602385504472707742554279416794818354575349793183340982697216959908211277609819794107173089756753842764831631556122496388686809121017158342799122027575162324658416211528351110866533033172978766782530177668127167387556547202565880959104340959267227868728063159240836209756157878704838495276346382911272411683882761954011132156488957855842655907459777450568744389469348040304399977322433546235359057035345987734346071468484562510426680476917848569278757803702513151843997678500970143371602715283699871844778686271614125317660869934370058472145792571322655968777515059050288666792322893318706177093426846227435421395821568925546662769023876942160019389659277271941429917832261246153693935408575335440382206718087440767927629350965335586050710689278392830364732267324367218350815566821543605943449929553877296005947945984289697402024449493949933544648747826580920710766656347495536719328973144146151647371892329601780137346505110017113570875569622254119621688953965610058426049026363678605077704542006704337633736907206344937045354645013165904709775160262632579842743042464556337951836912572930368736839664057580262130984834800117147391454276327049234429571999187706721260060176901370814041566546013745932883004789233651919241575083956367369632603065251385565574886508780874460330805945927039401128212779397326549100855971599504566052271319854621989678940300064424965372075804753373928176574712254967088695374903872677221232963026651940585928676814007992682668812435668411273255573282545865000179186838220798920223996037182685641475034015443127837946156432600736920019024937123350676256514914646440957112911536828658601968209892406409747126383136197790770518321789087202998562625597436018627470560723679752699028559608381334304727174298711367142668258916051712939571653691229568232795860436284468749834320278431863778475926001027389886068323843887109411752211156011045748629430206461330909075979892717627187726097438875537592032778236195516324746198568972523400496493356665305667932484880361839909946017263345919086974687720323316775706116942229376783652712739014352546239238534976202266139276789032022590675730308864284296260724328040044557349685901748444104928605226276664220570714087423632927030819755100651037918522742916962272801771940033367878902668154271003611555617455973060648720930840102755823450250936490633296800248490341341840581698542730508669560429670167401012598902247896642151306680268055812544092887952627766998939767539202258317088686425437779947011695694268326914351015392346411122194879681657742632316948182526965759169597882800769863215979462286117525208302177855937083236431995015587066902024595182017140388753769173292935702553942652048248137681812242255494581011599698613299785962916834495474202223469643055222680549713224953039828263441429727329989249250171592682650949681966184882050653822470872993949516040821453564584517093689576155250162634331359302998949887246954793878579063215181489089806296648266827448984656175897146353879877841596037627701251905150327887892951654302277387697706304610410133669401901587594627717737908460359144676603874414022167546281912005625904176533247282660966250434728278633517507847029867689129852718824052237610149135856883627919416476671039223220843091571366016970006121580212982281126568785736431950718054557165033162892553999092021972959860533118732979009225204623456275939765593686932553373105487148754131844274379676517706961548564161054189290751565596583845768287346959952624744105995027406539596107492042158606195865288213871897103312547669505137329302846735258859492513250882697494034202285575895872614783988328612883434154484273108482274004119980110069029180605142214085882430403895723987260230746990321088754268340603959986977115798793399663003311971013410340190999000884510010905071047977409697167437982013743996614265633688534626810805696199228388310555341068137177895309249013373478157433035572261098178246909832316479233055517750262252129056405662393875302638527559670075266454975111986441302691768575959092613465968615857012408771659716738979223432108377938312661278027994278041811338731344039404300139204158503618323282087117862202282274148244491779190479219434987461476871830775701861469739742231972173312894865509031949726329929106559104876932298486387657785141026482043003189362084073386173076160704039922302099354153513255484768044213931142203062399523495624753844160502730548823610821629973076151980239311781074897544983852360719817924926753695453002541307579382275054820315764241859848868335360309380071896400869779502550029165886944672724423657335081533999942307263615321936173425870121521160086703632846707012250768351736424899692359223994305906957336798916363309605759979518400014429186422459985449908595569256277324238106466420705011116349660756166145090706580842372824370179411002147782828558525431190289049577585250247841635135761584397368870053458380545993719378757333545237459414432511101941102890413995128512582636784054034920995803479913906237662271296218824014342814398477479714418712830507000261208449683963104115823700106630425878187987612980866499757705696942104878695045659066547613841460310542751544055555318161379132528036138421865513578263165054175993131167338887886637635741042499647842458914550793082510302478725588441811588266595706791469621119343520445513328856893852212431782049694927824227689643031793719811911101830233548758062585580082022842469159068246487940881824461364348056682955172610635542200137205119301798309046524584997923715168528893939620277977922340524761027018658757265991941545802355334031158559017457403845568766875815830156239648340124439762587205713451556351310753829602375580934774325712164109583872290483758517615696269645114253863006966840447134618841241615638228704928883325799555194317853784068279331423440772304842628084217497538346409396278126774904358038179566321371902247423666831556767723933961812156269470847315718064237590082075772859953108372221975446143466643419648313252133072890786559759332430507540491013670759013569095923031288653866759313009902313426818344494942315636937429778012436109668054496319835005487128639292590458599043293167698747192172957833192492720131274339206637225333784462895109965587359343170125007808720823214344086958063758323240600246354000219257982598528166250038073676943861560064011137668177950909449880008387556116588836117053080130421866585870174012164987348454367883692406434500043728389472540886208047064640065085667678762891119040193555825023018749306698895136774966265411633905690965919569387183098762435955445139081712691977481216844370883373038661266335336584409772631442098916751937660478723189188970791047790368665246613404213479715605012475718457967818405997621105921744696382775988301750460013411665098181574576241659477105822009894306731083651309059762167466787196666288329487122451723942436278518360809970255902812629236394265246686907407490740450291458073793618616968632803014601418111767495646868173694742879204755761438211234921170787346679699624703939965575251764126692533301951006775560788750652285665647037998283171950837732985553988426137790785091597434866639052002425294601005354735964679108927084255395431496169174683838896289856383514013682618352415485506648698401785623983462041974139291770013615310927479984466519983685941188670682703381091360769337446891063561611443685868124304873014183039941178061355066898776335650408687107974739517416044908945348064821794649636257185143916251937423436914572913163271984472475036296168094421467228346622442729081287606300833069833315710334059464772927602035171987276888054702413006474370359824978424498627960324860451687676169884395157954860411845813410607858407794843729369342663925403559217940973885464378338338243666135721539148978240997199960044130854017047587739494869381000604971427054631852525638062677268546210543051579898070458118894416343594035590722110016955586244392398379577066434920169559723463303075789611770600279140900728038413784435432973674029593912908357022421059917456734101101061376524257538269093441047607553091211440022684889593180505104321471412727859508934896682242609600006782073109218447021339764096610076927189681752744856344995230346661103847320055135508842248199267669823346050653276494316357113852899789831715165978807527526707355389996986320598044252035475033197390426015971846798636295830373699146976955397278925445278562582275760734730970510016135950765572785575706221094516075828468535808150681457772892990170224025737310997277114984704287085690468424563653442356836745517036637972068897691563189904621681084549040461220168683677171643956760688149697106003765870168931016691083932487168809254100608109722885607252330395435967123857376406151920523311832459560207641538427897196853662610101746043457900172316692073740931690816167457324218050364800937084241001886788673308066899016830446174589762023684167760545735826703344038322603302089084858620851472563868168137749385869253264117830455300403597612238962048505805989512936696183267369713898034120566366890708134153009451430282648567579708370870580651707300368780832978596787588812306036590213406873824774565060343007880332997189863639385467867678768447830598198523218485270312958127683016416310384526975961088751993274047671400341912075407264402600413543384436629070201565773516120031776305122882683942796059817022048545306988803740876344786159132870585303638672931008960363823228742844422917242603206658244492783245345658626489408101783318293873957416802174484568172412174719950785712357960999651294233275648615965258286787993238128649705464624973105304768299689008529730461764697053283099684668782536798616237464754592548043653808871950936150032895811241303309730125185186532347100417269403366734300881577096340886180186398787947977396438091293027055230307169625666672085646792742441758328830171145839413882411345522781041175637294729972700247156612606677251935279861529199733873879418136120203204861176674720523458980248095764570834433126093471859584879068018466372583514625333931473313828267562811800667970256206223679514734887040133109763652659444005469910218097860440549756960251883780743411671522299223643795684513964058357989641928206429710823479111328001226802907500616670323602889200860183985020229066342784155171225097975041287291327174742228870422683965519749313037788973728529552092100220991768340081536803747368827641733022009322060409520795172590592550417282705624657867710414971421615340448639405136153331396035290405575049752661289651841057370386302812613234216081530228313149304630464521214910729351298870676590760662069343332316805415306771201094857820936673526213351784020401366032190452321839630609923654019202068884769541883708395241836760375179570902442471108376468039472073967223015608039417357694379316176429819813373885797769167484615027268043854805692766814993385316641518042464042446597679959537296626199425178240347875439408981617112622076748757231354297859666501923963908852360509006240523367317348654348725189983222153136783414587545713598214231864132662302240655886763448188682274799879910513360372671426943076254046409610447839723917659281549793765699800786485239923358966921838701582559646325177914273177079996959499680780573683555917870289679269300216730437565361064390889102881012648433588628941430379326464291047139083964374105093819162135300130976744949398948663790826303622302411389710823411253776910997319781880010471770022642508761859279667461486452640746910498412339686225318043784489305586274530672606515044234636344557164791902469565105351822236936671437536604983881730321564289090875257321831997643392003366611125843250141455197154500261265911449368494725005174169769089131798309977978916783679040886018195055579333822513454968978653187699060386382263444895617276781574778901386871343069818766211786011790027443209118026119184757090455907865611482494726969343485296676099391999597219870797573820660725754734203778067181652944672313509272249335803540362293769642510010411735698447060630447195670469251524764205260962085825389539240071923094842964377479054527873413601795072155089478473507656075588266620617268069916085761445975028112339719556536379816097852649688378159916466714689551672851312202769987784054981827822508900061999549725577445249758281479201540074150735426819890026505183369692847258774522806947676502776758719043893438222096862815840799417740222933139897931149326648237986373500558857680938302701785394946329153201517031044385148421780409409097903458546726292768740546958755251906623794944513976910405903192385794874135252968560576529915448472782076349637632569130897420195169719548768624682608760961910582219139427678537317792593693681452152519199945249907725593603622763649222964570534639126833151829566122700910518835113278258224229455106104878220880239460036158712761079761241132261027913537264103262305288042660799064814000191738097703450412615432169084667718969551978576739466572735872657693771581356696678407099194707234036227804464085699265489499120571405560571967403684901402512406466395928985919629453985481199057758263693642779785191083154116924434808138847349770258887299672282222482992603335052877093382551777658048817311777283158064233063352371947663394117285050981631679822900313375668435733519458662029837687002339184148706539801216209064788836710335486181193406774676987457657635602010110906323912996880855323528187754562593146128206609796099708767937931187928368571854496549781808269127778350572953506027260836122199316957289310949761571708742792817849538915467943486815716861505410621818982932917569466132155325204700117856459212820924243501581956684697933172861860624440612734660737283686905116349206326877818728378438681468386708156286594244441952562253034756667606190434483488326261406983459444474849910533895703816538008222213454693774383419722255298135230135388113206254170633451306648091535577411968399702698305349756175245788343427447203827940869736287474682642377686485475812922901667317746621193362959061443826617290124195230158441128054919409720217537390958401487364480099795828828935909814809552378991129346411269389723452888372270999417784456449575242238421805656169746298652469950727944009585799669881262819529221376838403883691818084767117276987856089542261434565209875397436029402768582016638278985226756927176163587259024793215344558782912328264726766177464460006195547336996913479747467632627540333414810456331797698970938630250685664660529759551510188711146871749683990554692685943207182548808958577703800102286293146099848755770625098701936312941581884496054910753645102780430817156403963856904392887940593191488549704708655649667077967746293004840429366289845473438631622108859065234123017533108458982634777548846287730337005544720038695938804716808343571013605730610827834087129575076400667532921942704637694774050311344236529166136729597430153718513538143523379548510354450689066788064263727316253482604419373061819305508429223920143339319141372384321756833271828698102839799042770463875634448949989197681432377362270558009517517473919964091904517109412472021769273144630622626214902735013698584395710114821469732193356800837883128972317735152374219854960880185433414649285643857122993465214410861809261750375234059175491643608553302150062689948718488289655426746145930281121862310755680089011263234445348483191318387644745442002123115869127585735705045236242175853817626542803142273980462008897910031205605649280543654964888887273807851569431573037464628330369772746476035267391940742948072841578009666481270966963840452189941820964764027584899226018264803274495408893545999558967785421954664222768460879424060381878399914017602902344380497407637919630747146186243431625495901556863795877554029600904998904148321586109490275310781870266010843391937249509419951633714095937815568006819524055169193953576497503194358021519290616038666933767059525097151012412848927845246834180248205296057522681819179108479260764583532404374488928410982126317206385639628741708843400479679194506508570847127473589156868877521036569929318243458359395464681179752044817255423757331121200598755476162870137277072569042248118614272265862012088163690756492188526653692353026941621526700318142589211234988923909711613430407734400308886127367308669317958060409106140280431562894494490354194115330723890806472786427243190621385695451984737851067814489378952623566628539123364334195172614801686379780765799686508428994590716831017070062013331722293018129769315087544353283778854734364379279639344247968417772209298499879364578778002808715707531154331791103919738284518574930322568487704105072032919026845885510182034881103933171735596071429665622377352014744466033637796180328901600172699297591813270122068667568959785796438937944240803025435693430148544490209082108293381567442351620350109967259464822330441973832841724360722014598304083402117730927994538879738663226526428033424355573507946972297308448905890856559591009992928256369836857664132032419472757773098378772278018553625180311416977270968231670505216741569295509299162742077648137385305508662270879522440417754731938932226860639293637163980547234614368101977460934186865772927396167242317092163632366916612064391604231554735636908743100439173637507138852742006744055785995049950532814449023864894138107650092173755708407359308939088599075808436163191273520318587678085032179463855736742040891530114851265550642903754767898394090772168700814745877317661228774735397687269570724927049550200038388947307922689164743446015207573966935432810561990569599398814221296987507408493530093327508255390279575316297741129721815563555906261369458043492491598966757914136111074954098466573941807982422300191739869602947772987552854648925925826216604449588307472763958017633097659292336938696456322537347894254558276858820915368172085813952745691274953572856217317028997918419531620258104323819350245634339461536171304282431892510735283507559069752210328374200044266355969510784199410426781934999764226213386350799732901759808781287420697446174048283700109374144035869940943351395422354321224905935778658933221778873444372504241299797195563810716149837407049863239316890280207164235416084931139742820945861574628548035245159981765315263480454401038729637429810396299213521449549306700115522210804816018113829396924987432725430988902738965545930513868203231195303388167139558240093349561250112808591210397852239672799544751164997532003540048521806184641141302586619743718628402291739231459434219917432029537485311677917928940790476538994778766085105319072499628116509694285089632498891406361030410894734682071019216174985700131793449482100310665096335201784743199443502433583071581293079179150782910012941414240171993563754319331788849160340317438295946572034591149723308909583040682707526482007956542233258605099708435509182227123546328258704288148238626483271237458731870446058606397986491964874849031011263965565423702449497154715853511011333270709058687695137034099390693863052019556303864245437915326781894478822824261235989135889166492739112413149223201688256507544949371849412301931512301295445373313100255466702039438469829895370517392931509429487466175874135015850383296080041326438858756471869641280621449231329875991797801920068092221497542138842202273543943305937086278561005694740545633340717176376548937192881061812491055823639244856875655720451558653357483121053713867631595917987445656338837909507339262971074119741486991653819439871209712232094555278643875861559299664235843182016971332672074800427912566007254055901716520322107450408407442081426967011284407014706285329547150572359713778182837745095790856776837286190937197312925463963942745127144523779161951282147270790992618905363048412581065448622463963758755208692970652788304643435316454863441455005835955548619409472508035608524296752543125743653091669124113821360210329252056487585461536469841063674113555031748647085329672591482556426430264782345617301503908578703211638963250108605688426500550522554836326564930433206798311124055637789479641514495005395213926071150839307003494494946328297963555226330253187640085330487867193553866822105217581515146525069562741884604679243620424746662517763740370838037037100143976406683056676149464007991808866468701397213340106147494727893279980941808988481712278831503426294979648516034252223126014492060122818152158119824102539889814814609216834155391419263674825454702359183601186894220628588929999207026115005262187582023153821340235281049888068857825481860118418147090085690614796954579571354898396293241652597326728084400317463200110986158192904201456854599537138229127886713577770827490014435115284312743430560623828199378190066474375031216805143683563508579029246667535812648862205253850879063322348515935883125294741119218006702406595870743304071362037674850983200034583676684172298937011590115290394037503285369996989857956910998481824531237361606351737514533873232888832961983962580798726203185232011532711239297116768409638544649453594230990384074850909024675774619304405586067560911366144951606369775399050410109815165325874809521298506100495108149815234546550843391738535451857635526321967806264952269314479072124995276446210831494183955789071086890025473483757288595652364771516547340544493311188683509336894899561013734631259824951907582603047923771950545069872253152242687816787177363617934958815896276447033685438085584239603548552640665035136239988867174554854086683040295588646464902941352085227364095364538707273542092602381456687098204131260290365856143971230919334804129810014473659691374409466259331765144791904078015873546872098928293653598865979305537648431629769806558420196659789531280060264488295121108901213484930953342286500785951335244727120831136656113314567141298771311060685549062829959658544626407645443292820049518151177718593639737432182160667213809086535928801230442308833212026576295833829190741120361254858099067102309798463708210592033177105129889699748480953592115506860080561607161817170215770966150933127107649317652770977120695510852282033214451071702392119834304477071317651178230103707569853245144985334631370487467548467728728470208365156868829772143679664255373901409368876423882893269822568462826740373000989780939412075184877638694615748420455967185567628294487471641592855319794144546665590819063702013059537525516349528544130098358618777856749111170191405056280319073346466170996794372027005871187435894301113320769353228575032677008881782143146754243876645030325392612003510060155793669188953459130728308480033699013784589202942021787176010625377500122473224193255891584628524113446763576389227947432284069778903519190305245255185656818378303608854154430648283573137149994751740255593276710630101779225828709751810758254407385753564285144943962479659294304231759079332380488800744596499319136431541495392758783303721915378863376097836915052289061416056523552665067152269028873680068758625954660372849963533271862430225137319227062665541991192187650346940761353249185287439254947220396352626374266549997052412497393653599871126221685305248089607910640322248255657611180410156668753609753196451708734260664001894106070027800598393810059388565587104711888008338854785709816864084920498755881896397564652832322079113591117785732317822018302163284338165702533230793000551468866120515221716099882373105460670821749064534651517217358097079558935757232576772502076385488494864475918660739433303634323185373815635730480895606928838187006281337328347946602671174951669112865885338796771682388811342772071637185975085410265631631392837641606951619889758928147455541695593242015567968629800934804026374958666895942737288308253327860599163473260810988206548653959756209510073914238790804927044804349529436162705722956846882649594668689084184579714929239281995291401899225189069099756165938074131654772835200859049969538811379884386920733010260186656498677193361121286158070226155606977799974615823482163025470305651459499081848296866507224104897733202880120968757240103389517043012466388642229933737653849180232905207200131899392999919105184788478103211025427316852139257522509358688691835218281986231137240165276525085644576377183178402082656716787693661866992864781531455383084790979202285551620667569653345590047243302201921064628357222932378591942733126883948408012176601100748812950449941567736313845745471331161935473837500369774318025507053353475533016080259860090317565297961105711135161188556839295920655565177806729546929258428190480029710716528977529163125529573713284142163575836141341000137140707360425313571111114227802624248354716441555248536916718583069764190429194732250234145706097601034862719436807445624029642294617482183936113128724253894118026036625164000398856519776508016829704896636084019920336322744581386616578392490763674313671758692193708507884920537615220745598591659493053071110401672133619031005281990173359070016717450838628577610081042191824901628171931748270598194672971677704962537323351988915878587537643251444744202690178134027448170129904115936422624280619765342937470391924568400249943544383161896614239115860921744559576673282567959883659148927619212535595931775611895500546578256379908037116389541111881248736050138381687115512817353764596023464065483975295762490509650220650061199433447673159042631927896122883731710132389645523225438585391804327105666397482421270478090533038738778098526994519780902765705911166734979719059104482620632947299962217026412793585585637821299615519312781607418980738139069383087940637037616393787126563347342794123876112923425150494307264542293942629122305660224676697549684175621438566710662462467768690952582360192324479480771773072871633257607953549971107658716325063765026323265407664211541133492959218687584390159974564637367790998573469590684106851630532439260910515016367117788453748016928497216436836253224995579402217533490145119696646604641149527508704440702782064040919632145187195581410111379822820398329828055314970998486494807900474973130168445192944643640901190478334466679262661465349054217086785645091720181546891764699462756808198746629983458684883624088414164709606178439975668691199984731167228430147104842158856357726555625736479181959168044132623258631567945466801658716921547359388178217841498549472234202276952678381426632258494760123628962227052466495024498048844521387240691237163818424667601709239094130432604605430794074234378019327530514309235197188364592729527661309297030148485146076830172413175794130394070817703883389644808152695709184248104583232209608819759076389163423567912268924752735185919711844761034110571720775751853247843033308796577307663290002918544611751089670171696585548108140342628573870084873474868530358121765836788007810208414051911704270942655502748129479367328261768746831122135190528791989126992491489923500141772971890042049281091349997670752635504756094119090817208430663174176425466333122247568093871702710200555444400452442774726374408122169608622195764401738598500643717777509059818492351043597801560144576154370053917062225640496304695653339804530773277308965067189759819230392787907933302284936464936477011396583107086990806148686249924318804493366506829682527320214382003498095298381026507172041595897352268377031322514921858268378814027065897925870321679243033711752600876183137994295543170482484701616392667268899373506028173043645982465243025771365403403122400088164681500718367312351006096553080759973572784799319578350116512876494925130338647350622927086529992807156405070330113595261142526034476999962202786575081861778141621336758185248544547819174243280062559341759909989422617166029942164409582888711249813663001722026073723893800311741877964304004519121979775589907940349952508145332427598410775287255028468406595944980522729779277175272363120743519281229135982626560256500274578840057003086161068184962081043551863808097383925668328643425565064187537620386671864949954464424777689884610697860314297433274843438273436834170041592412317315361420168190235247825243824805518851904742293739790996938861431196332698376793084447165712126152049493727792774433848767223559216558017300065190936316435784403550613976593225114155558875221508661051840716182880923893546274855037554533882782222340103832524587993941008368927074666231699066350543076034187426858608507879323930440707093491705452533939204872784930660913811854559494528728221725037970520877996117637111941415170254710064839079993548007163107756441135067969943798854108010053205798824326238630668419072095630784264192180816603066619121969718922051294756523564568590513949556627577924785810455363233116007261746407912206792934254949602852024271704978848561215661123982045463730537400918821358188679263914809103336099307957816855465110089664074364478494440805943725320235112708122272581251625721146099220230552678820345268137316130663547613888016978998486444049840194565510930452419604070224840680508606944385490302639983786943079379710060089933240601283457357009323749755282238928097540474570619741731080432714269923674217418863565161011227109167891121169671555439933610382179364335164657219929565970777706242216905555408507818273199483953678056863843225575768892918750124019491190781246604783876185746318259693971638338363875103857085947568237073223926102768332895093352521219688468686700540334145323686872935525948519275054863758238064634901829005590457949954428084370142228345709980790704352314849800370022034948777805035887377876704744436136244399858506438644979865067521944170590766423839659961751867978723200524575191233263447674759434017406117807773591902222909031876510984188463359099115847266872084450107010472822984702768164839045678442182796291891580473787487035725784439039834887319816370671619522641280694341188778533942504852596370348612916367919138282652147257463514018136427019745644780014897050217555728539369370456064909544362227357186804629277789579018150857736177796968292629807936597488308281233656390040305880216392461106261971655230874027152592465976106133749633456327456740143870462161605490398975791173459410274157983288099060077431152190258181170340708017517664437214151369922816510464879003122140102661161998872068792793840584160128234653840453006339668378405730930988363170862797353537853619694799915659585918451993504191164796056641845467350373626341634749872878615650931718545688626758078550285392889770133873051471326448350866692552546570934761122649992147280226415184548968666004257407110245274538483147107765962708848346682039666767173988058439270428142300863428141752306844841185777608270239863149550026611117122467572692355835456419139977845680094558759278802281779607980122231141305897050851759300104557884054282040004995112098206251640902775529041840862313139256343994493971246137900357632531241883606778235863483856135878037395448491902032562712058718468439554430771291126844118068042495160150099784977368427677160867609084876996906550668186414679815172426385248807925346505823839655334726024980978294973450183837288442978805991121302443423118653761948978990233580569459477408719468669488082185765357452553392395915315145842158602625685028011751595258050738633997270060033394722748431568796132596275875354494926944659774094010409332318803809390864481134851252798323590514482401332797895973338830390436226308530267531172324240722642821930369724675320036189143091993403714167313795323338328972048571027869616262771237277492464730160821298647876087062500567264831199450333322747265966693727858038019321922702576991451344990145892701301493950580604387568036045500839495644302550090670028688149995711956474152123896120642069096710231663003356840423100440555162290318695801680256983047533909604726893534008053634781256245167664919563354924977400868983293503831618617273944581846598648384131844752771192596808673196538854290489165527707220178066517617706738989201116362168022044517055722371758965569744817742808903152522334353961081852373819920589721822012153806396390721443090909330622498738001983341975503883586954693432393953105411253408982453050121739039067770790249549685551070177154264662924425554357773125985875031228072764163475583094326629312587324530831126287602161604771557995118673715953468618036500476383891855256315948666939593582777167245357343619812580904881133764373559448975586115687489529573659635824459510184618323335207374642517532619934202252672101885609196390440955769656249046317302029042711713817951296558533332028842467420847395720153860708620436992466763042853297789863450242871212859159771354744595431402213849690289609967955302397228674069566804054069520702704640581915508549855843552907087043682098868333821291283286249983241805766338134227117571193950924631885523397660220174861184550483242019306569136511340701521748847571535300606533871981440399185612936678679148420291856386117716496263588158658391099839830363506771021288158527470770756868889627761534461135061366696889411523573981713112489471326136611896156716088971213346553391452840538403931004560716280670810185501403029922023064757516918113410078351620303803571660196464085706539138865354102030844420927482979118056082626816254065197244132400200104937295328101324959627117327804644057674031323496691694668695055394069409608815133141403866485615086661857288281126068453728005284679400330555574354172126279446836873638542970472442811167298262364912467250779685495518703428037132964932516378762809985864681189438043340655476678912056912328784754439109544416626499166894532319429682761412143573854848143283806287801760092161761099071428514125065373929084799067696520922674891884714874090353678990224150700482436506802990044709850974998921028978192976400847664461846844741074255744623902371749700254177016292750399394977392537369603623921277497638026696809190203256783074303725323624281559175027538484574196195417048501206719596732610845292645983586235130148953846344190413156791614388580487397174672174188366404453241530810988312307192087762032021961808674057434711780901834816360228498435349369954248123992239706708522994832416566299481925086469555350537646239742815825894810433975701503887725095714511093122688050925211243206453776218738913575192178181813097388014230978526341233035484704278549231341765575641514575214294542605096604567040351452515569530884121525130652779849314531491702217348310608944758417318326700493670669496446182337699240753288792751596055166487209375296869546298319327854665632642823736127437152166143166554791776302563917014545892623261168436920068387702589216799559178694747497542067251591408011662933374856125088879031662975012988513650664387845038163194466682756087119549662969209746572221558777133413708426421842764516798096345687957099393652468488797843964041279732866961738145398597402974523631653981905025959933121431926281917299250225516353649978423283822722361734181203575775624449970447337679343875184267270700541985998906524327532534505756529866102489155157149856751166234570265274421428822999556857173020405670791665680424152152870448816609543313230451155012715095789535180627222532101456634365739049064756692852674106735592396485069385475648811447910760496197808793995100949092444793600530266188572354214995732203536410344663654849844391096360561031601838712288508890740358792664206786214439955647481266788290362694467302322198370722085255802806453525494891769358480231428542199761943091721341164784681753220899984808893064302311763714808229739530896453758122589959167911175893315779813374702905385974557592930940019078044020400488253785254818384474392227708502998709906578202390655640381536357850815186275338742663244177944467684832117694649073486937325215196168575076554816553138047468075819672335806875276299060614722749850228795103566963850541086725887238678090134246845615884028447918687951209757379590877649466980515802870283873723588787802267070878668204569386348911999273556918855749154064321325948035309901615299561355674477682919874498284538131556579442450164594584393521368717411232296128207376799008675428327130663353289407329240434169932911758250362196043935340131003622451585964165458766015160696906147089864198811722310940508772894332330361572789927183526023120091180814691815613952865882434729845436547413982608429366284045132662220826198860995048265846584906102032842605959927143503564937812845173878646323864830381028297600295678789993864449714536525969638675326122139510935133843717116473531726791149990041086370498767447359458138782766781794888379255605521037069397811598427972421173425496038359982529772060225418740801026685513451863625648988461097330048684682924322543606308019532778655084035561287679957386130042625453065234218350350905159115680348042570328133662889307941289952764106661924951454468473461368449143565339478539062756399817240015812337419855694588353077522081326339189741796918470031572207156904670936119146682481980790737226559597799056952640472844652721180522233456966564033345500126386442232110786849566573010327867440484661715353924907010889151711406417989896316340041758323619675453786629403231748107709512724728541626734363643360864831800630944376108131670414500936125668777762346495449733986842062248921964929779543355500777148785513877640216743707152970674287742400505507817531637945591992924466541095753164078063676934157704297035245781642035807941192859544243347022044342365299202647619701537506724492702699900762804024602872864881067586886614070892211510620505688344904661625124259447022228265454129349930802650413199485549841609050556837758886605096791381278718130704265431475312196972100880657045114831824618663995661752542362386220668275745383783490906824536206670861629455159551199651312008837443610292252683588091470833719187150157522028954207060656821035046300436852538235386445129167711658479718959134856910946431651774042133837282980673131935462734788761092542870108444987432340557981381727445347646314746405840315668540213978099779638840281391346786599801743740903329724676579216648194200085986111248531432979970516120967692118146540879102173651158371329135618194748227386430714348205539238062833675151162866587449331341547357463318855137919917479703119446581405898872926056543818755355927457220513957515081784010396005722741704057506294206229366914540236129138859227433139526493155965733008438989397357925560462028593116275119348785297317413214889128120989472577530437766916720603182411285328466015037044036311814581203659475660025801977726197089974722942277279467470862931092294014967175184609180991987827445312838570228652758560755295949927307161872516387015011586918983895036820877885129285239660022932821878833399344430432976102899353031913113593100172222185701899330853335882611968413290889860813589835938155735611752861208878757373611926818441273294687119774187111143817874623546531989623531983453080208538095884980573542592287238430625933390764283694079857319899389232237134359344512759943655518142517246973057098057469966196936712029086458138587341543864419081558808945050801894984753954378355038999352394095804556282007237094678887759774476834341795038108365836707365658210067362686847928894020159408802999633079967210302468791700693228595678455749114134375906755617397965255163061080525278365652199000006841411373225679514874718596722098457934602002725327705042679332322381716523257560355672137155003112905359785019540350002691151462678944778707205713646652193552938004635793877801490180475003090335168298622987444769530952355002552232700614861481523670676751737618937916670660705803141929596493880907682523538659417587435482835354652785349716239689493068114789236152221744306980741639196789977299804504441578596714109351786796327893673408461337108316790272060141113630033124311939261451730702309913530321462498998927468934441967719555952635801183930639957312230258776963315757274832642579990066886707408762078151883748419673935599716782448541647079345032882945896161285241970360763244280987654951370245413279931274139848329700592362198042362759772823214134235543015972912557571499846761094385361709305995933848299199401049464014004480668775072048243989149782749972257347373447626045500233667970541001296174139599647242861297310255801901778368076165231316652422180706977649631770071198707573114409620168584101553071460705531873903533288713534536050717355733553647751221955309601484354690670935112167584706507462726888561149669162929702250082692059247997619027136913617364844903942413793228840454877266147293927649918602962294389047732117458100556197722877934285330854022600742634899624684242082397866838977151006816736425504436426559465839914126674320151180015664222727208741705792511572369281556670282843251827946061216991333335426744937553635497540526272433447992656367047896922995935015862912659742746269159083975945879851684722721967235396480541282701848070488208647063964925905806532463680534884397193511562270770032749446320093553657315183087500450096420967171194723998064196229949049437774301900162109873571003928326647122666878658452342095034842418875946774077990967615726249248680649658753532165827414833854586307045537986935469461187394835735416174065609675558813384294211233313841633621754816284044078969937784165932408671344012070659099001775444902092830828676173675370507760645878048703335276386754752138803130315344114920784524568293944808438641447219252923931624212197247286858985559357846585345037010324609946372485230149383787610276847591698262078214462195293037629772019588017443301643096817776544758825505191682146984944793967730007194595494653027009273689817261492330460133054601310608529674776224430823688593444943728764572250312844671929507791373771736653242165713809469591934533878306395544073255454836907949251718974675930203803443332363593641895740364908844888860987513224724931305759648686905539127560935734578780137062662328658811174628943105284795227466129461900777767446480432069056692130448243218590964597188373113451746318287890265100886062155971527795693440814979921453010517788024178082191184141632963861542076634432973271146865488133856613942548398844829244224325538169432133979819430080954474633432100804934326264834862482603519912543036033346851121976746238323079060471355738705414661650818486521669053873173746651721583300161350670314366576087242918817200685117720101611365267819082369469586693534090593738432291564287078777656433228494007512262059366775922795047832380930484666006155127297249383371820767867844007963376549937823255305462269192001223779526344418389291374903313617481489468863809010234026336619505048275865722734025573669720020536237237113343653835020173978067742287275554587625648449668181459990657477496306748118111781510101812755970011508074009611805026404779530029432581420915856031023306340063099605774578136019437599854424931476785405938035772184000704678407358891152941771086902878367954208190964940853540905642527785492096396990900208122153963575386295355465406066028673984770895583179846465586753945869135331446611765285808957464248892726601327735145313727515274641927857164020104011447467382853956339798306255990998764817494883135947150252102358710175150675923469410942833096911405527327246543949412029382904593220066045426533901961913882612415703300543714186058252144294808063902215769257146792038789209727300001022412639694752193552007178466803676952473619711970107706214538666014425664755861850555026013899478094273324594309173798791015033648648955607999216184311003907754891396224316489493933891321556160840185021974332104616599076333799211817183513420166455009110200318853653081056858415856046896031916758474831944368185233682045786574715531405755335165841540842495941336560248805177025188307505239997999156891388788258766646063701698643317298152254958945172900075941014439747485220548275006037918283113883666182727413654982934611746739951253007038118870910708630588605502954043636538932731087386868516184122451887002453346030483205238475601859231107563330453609652393331688732104701742009855171668416652291494259323755318117567261256080738920141556807462342338657127712205581063069268270408882109115381370182190959366475881740137875388062872059172591839532240769508881489087707464065364691269117576244338913929472654959716910394066630479872190259189197431529243160026168265749817825113693320281955342488090342283734804878090223210420305310074082124942996524677320977176061424572113555833817144320780698441791423885929779648233046644670200103755503582516357567608279101641600508906554102105246018752023330919308039996781321784923193491103465055224115674614681137658910098607111266844321462852974080740228092575565393464412857717632621474926562137438528450170365311252809067517854420333920449154448295788200576429768618266072445650362314548479806660797696993402672529779565944592064139616904959436090688302141360528376054072166727583973742723339048508906231821981063236269443980220019824889556230885763431129868179420373512149740167826716598181646465890261640613591073386724589360630024233605159614221958496657708541997128767532054061286873317756750904603925287333775440785196236556668221201314078429775848960173716384090680449482374869505344921404114080777667638178772111020650933331040236459311221721071213662849172287589913663656567009558205651425823606682583649171469153557969392962190596988819557512291528478095578028755651033205464089637307543509862200206026169133669081264468050899691400294915141680564234974709224408150371873489576785086521278271209390743179534261962958331950946548830932740702930441901607957411102365819166473396059616195427083170305707683243219463199717770517509135165357654300106780952233655187753200064127108855006898200559425674357257415848414064064469245883674761043483156074798206699277131296482810443059975201364888225691979460754564093924791937936377344209299043527007007782864867987186353353851433313381310396325452595783941895622778733431969236191232458998665183132503725570939875913139703877226755484470399290316951473817751255210670132661504217023775438332932906564715487737720547367235314822976773093586406849764494315914422451486042735098627619806993326992077863477517853832437966508817687085133003063141164820006962311134186813249549242180781845898352890545600598412812504883706723548392847558291578330249955150373314360636220321094020149041062626776332661161926414654951602454309668198626511075936006699518986076336238829962091280256292114194487269761104984313789396809850521511496616400428994658586330960308874616625345087314788197681936268376104542571028755705299957396347412442963588376975782030972027100665372022119919402576756487936696413051151304742572614600298460623877091949247042787747187808707478867440994563842494437186814906449928285284672954473204357105506878928697624985219745368624122844826024431825511251559301825459676474742352182535148905692817053802500126601015133880826712418029062618192971001950204960852506817136679799109465311454653503357647547550179405997846366941613789936655888362373503863974631062503141520663515727594272589668156992547136108687677645409393238168668705461634505419710417541877055688553942721839267128360035080203425941736087302562852528779630148939225159157172132230047737333900577206140472313030864542627697098005968515635989447660311518954178613186814965276227636822570911284885448697592391970725233515706180862982355358436989448507415196962316594238817685720582693760509761560665888240488097034765674283720689473748114750088834334671436295283842817705983706215468736716590676085372023351072566846886985291332616850666173746684358080082649559244454921977207184921643601387859731996264207542825251806052727190006596084994323708597864231209675575612441047866505218061921778519956519417986375398734460634065236835433924264443728038853209943723963808856872371559802023233535093564493259963091741245768794317834972972693454275422995501268725087594906340753795959366600508330192462405438367605498000381699357011141710414169855152737231020219010779212660873749176398851389148221661789271089669363949702474483377478776304935443297625099947983479943735104736947503505361358860642392994091873400563009897306932019758316835190931723705784356580990781328432750795621134603178120343699693607211774940997126009588116756053884500961448778727865990795753668346221599654810728359104529481981267736350373132577757556277798906025277582500875805628107104134586487793821352582145205810222147011464474358620303165197615909585148764547128459817791424533980896537133193941495189650120044852662399524654126970125462211729875869473753360646695152811619394039563192151050041089474569044563603295778716096373712353188782757424067920257892476906901250174353019489954873894360777400534136530761665501489104296353910742850557477578945999243906113418756645229244772948288012550252834186348277671944771598581023249324193209932599762944244621368435064343189357595550456374357095978144421599536946921433849841127835826177331492656858444054769905555426648950748093391135824275247583462194738927321678196265060352415009522624504363885535756074434171021169704330659591820148891660168460573061136274019384406234299483592922381866218064703572117723729100174235626689665094804438325249458720917834321143643217918632543695008362430234495639778862199863090432184301739938412256366060164932577258055092119087623755301387137763761766023852450055011190680156494598996999193935522998701187418296735017866519596901570163593608768169863156266086096867215433057677649972463790129121449681185692510700676584521214294301204991161648117287410343178006880874769371605166075273403175559530904625015123526599898055846033121231264320513563605227920459230405505218072086612498930369486732071193952106383851102929327484378556264701209360616296666831125399342151797213061971448235056960605464187936215208612514152760659219991350849245311872449794759799228777042435554407794699438794903072278885724393040739998000279857906155160712882387179049843061267860172187824696543451011077780545942549333529030257653224443669102735235765722649392104161122138985781414175937519746764657135377763202494351706021048716520492644132276904566234303296030886529687584720395696839555754620853150062360957148881592481225815871552588809634043812172065134013099632985404466070983321225201177227752408872705980362680285737179991120660267777886024558171050068580828766397241683186890674495289309870680539784200541401655019474396919641495349578359028312342553385421951103270035056524922777230996986065676417136380493032597673055436737089052159633846468957659133696792725730967718635048613181178415377781982792864646882589273938294265229807193705523733753929263745174497532975026882264813075763444307157587865983827846741922856961253586952414230232221144528461121564754986490867358171240960073224766670418245378633128550970577911636508135122493767557748389608825469330741859141164791741568541670133323789597727626966694237146466070016320073964009438351095614136832118523715108925639332081578189404876652219775946311988549130436202156446757926835817755348987352850569869196425410603869458773041054247024722706084708574355905627680658190358936507632328966842122609513776741370729402662844752182729679619666927042072126497667644083069832636435319553030157503231809988933206234859389650974135785907358659135165958699391160183305958959311581847226176729623465016727761998629397014576138440450378368736303645575287999882762791385839705655248097431100462824940737596027254150430573697589185611840643714922297684998383160150529060343380167091303522314154996446511120622185999444150937313641020378609384324278510169729332651388347282846776190204514807620044839252101997731560227682213814284660755750792130040309851502159132829157352884212241530761825913565770977403914903880045795335141161966351229595893456869493203168246162870185335765465286754981916705235203817467345023383962563412641305825414359921027647084693912073166233251018359507486441578982492026678545319285369709330435766871466754407182206293279425802079509464570207786864276815696242057524891182581985043575067034614111629354470897027100195013384467099976564629705389228784531243071166908252368512559221962602658185551409853260515403283592753177565243231496908379727090581528259265104786179880103108713789778375707665298291552089420777322219492718539911986756622474661891643207616694553774175661649131095007158075279563338337880372150130873343312606159870875975593002204765953763619193263293187324869683195368617345202051540804940124491824848129446774644774796005511369176388888659020521167970040711888395914288444997763235004169779667925229349881543807098947979865000793661393673797216520109164998751063774327475311918824203998823361229955091418505941954162448042758938447175063501089855968412528112611892891994211022244413346457547915512136754334420747748116770275179940009929247800870402310279610506956083160377036184707161623670341599080580780588464816591055596120177664439680450838865430383867997940246283942751027666001064532661961097747830779236020870380850153373508805987336303921645896213387623958257101322300037344709987452531117291989316747300280417129490844144761168053689922102031375201244038742859137983469794625671524524880301837995476087408175433105200036617053705147438862472207340923246755197298562113019969385194887738553161155424463383672141394206594553326383682032365402342721874941619691471963590278575161381054639990060343060851199557651675081643171760133321499519559013316026145238096435972493527461703213493466881301211903094113279998369536940877174737628325045062814562284754583797267613349572837743441474862675527062911036814958376859493946838150582062233831747033336640674870352606335124667024742399248130108711713744041939903423235001662025563872436218605289042547004026744486085901643176925325041990515032556607838428721725987434646533541189601532600638567096616727599131686885154365386171650420096849774407597210187514659968620070261573556162461443241871404937516818240803161435582182263004364053151304648860405098394593174349142451760807445900482476133032331283149704257031275813890924314253105469742488693344186554611639664721237242532291272361296300558351586139314944020585955687893944814675333005866591025305249476294070827308038755612054530251250799828219280429183081078569723619645549543898932090680553441857594007305627004888081670356101458735937684532032704021892371072616686339795419825992430853273914278785306546337526011194412077567988183054715560831484729266948861394952377581353260202534514036528513912570432349804977786836257971659822862167511537692736989846425336975999366824636483311897094790419029409345330699950455741742509207917050660708454893907533997755394056005973429141925473418178707256019058753309132315191692452443638074271039148154730725802439561846839399464250394152326701414518172373288255087016878937860167676913062798245403209882339423729133615914162770711173947238392532582765166257511202874370507026736975324184107317382816565316546025051676248484545656499465974865730029981475688279008160703188230518619839880585692485724221189079293179481122810623059425151959051808318797657649783929932630373895946571725866096794767758734312421506467775118782528169743229668643980253480891188387957235606610306942076407232523839043281530280824455788509539252182538208090870650532938138689748421690146620583147701932376006451569584739127878457008927366031870208325429756986217506280373811963382045673029425551110502861478070637890544825017947362852845149156680159571436661366927493758000626651842381438708051174029086026119982818726045268976291484253472738577671096640995624357075373380466631522726555801131833046179468916287181988906098520736632251235032040601602283308837299617540651518072583150563529480439476455741167548751727211133071024031857860987125661405837969719542537640598625013191720237105810835192436605364803897388785869355287081869676822234622324553313370656980076652305507834129117074899796514742710457895928486106979464841749332543778810871963143598867059895774955072358615967442536769828249100783223022611828933789789094217519625273321492441757167942916732576478078032679599501801177314589672608981127751267416730515509277093835480747438465630143739002441952216900082184897798391614846568908965716591776153619153836403137689241825515748720681146762736991741593079874516139298282400359450220510179653978894932540938992897578453949241105601926814849605916172046123087934014537454669317244246336132876203742070217688955963947755803140552768885436495862300633269292894148035111379782750607438574048990281107309157450037262021687281566862466523110603455319116765656933958659605795141268252987781285220483849334715821840474862928360260465978735641622615680163830974454760086727291063552749133996038550144141710069055574086051594970220179888236983653549145077051533787350433557891783613427422905743845613781799592046975234275909412149792447377251371058761566131102938227387471916165258886254890940689497581636010065643715986511714579656887454868653455375184150296908555515034027869463809124264608358550068825623729006595719743695891395034354630670230832532696665241264740621993667325106438377044175928203842090387201550354599150119417669177265329178309489850023594397799086510019582286323129614529263954218181717947461230505966660793477984718921110771998293061161090441725143163787153458271787635283938847384748700273197341590612605110489509192201293592367391175173716610562591517604314112542835492207550871103581459730665340844324461127979131482978461012644977616830071035335682916318045240616130715527527426225992030424837667234147662549010987907504163417837612674555417665758564884679792881670204305934384572038230055627713722468452956241972830906033898792679630627156439499755592668610396725555871359821096359891619534741947249719036554027249857443566056147189711048333731227060347788840322417993639290402359890072067333135359421937062537415269768101256983049537506894645622714110365813557843259896065580229924092478678600968804729844915164748392809824054607385651792369770067672506425218103534691502982953929894366056810009356721842816922343508452403712560172133919615618084489068213609068515060015468973885946683747988393287074750504114025307863826829276345178074898517742059374249777551140261179697159752167287324770219144590763354082234082928813604462115992183845545590375822407785986773564467761579989887474667509495683984357698329160017051049254196234144737150600143593496287006379442942048605027348491101950275650807787150817065842706732113527311901142615668087032417657377836604170273663825711068479580297822110489654428281631294558607158062353676113519263477180734741566233359136969919500665802233452889213821426366981026652927197128326440869788808917722667776893015332663850389065430569323797736405739209404791548542589128878168637597764790965801679428848103254647175173196807609912928033305873614366338777440759272621702633609688578642083408009991228862053273609251038077989277815332062646427782132574893975939610369971721688453923891527763853715778122351151160986626113936071327980315445425422176350112529317293905113520149961395639013550887543635621882092689206426152715204297535239046084704561225748362842109942378399395121495686810949306156833549387892911388190184236464760137538736099106800220587845803468709366053693804520276436624281050163132746939585787955807756310597234220008564883609841922684327465888364272465011793933015044619898085473635426163454925894501741402027376010176785313250742636462228052275914919413505196315675123268251047202183898305525693461191629720596883375074929403361435662694416133276022258461205415566375853829002973494422045002107874189698038021253984995611986560541725238375276191236689171123371163109981486802876185594638277820660489116503969759211006992512722005499366254387149957786643184003911475586342032818271890589832042754235963712636604625974038507249432994138232120145852644510656130889641350608802572220163328285471713946912103561530024157543855676689493703806425960337025434899887147062613676304831115753343585762813378120099251637356178967188297324220956858716026234015102044446144241518946542278801518330074825047065995061041527027022538249625382278824925704315988535852023869309182829419931162952362482078602258223453403488324697106976675120054057647023698256205839381768559636088617157002982036121577210748591485608703976430042854637343684468698508251822403883325777394676326614224423394155376806206051188681814622000850722527695263520017991908891890695229361857656895525797631645627585686503074003723182080155565077690528146439516168930941534730592652298602166737331781024447696015880008984413234580232545134062734483101585738431332993742821077505758304218811131275616978558758620882915326471326748306316342788442294303630013619607642766969777067742710871247350100446861129083190627684558638032474886193630880326797417023317724863056336892157495567160604957838568435034149688889777222417722310936709637902357827539661516234324161893778994552506317003284982728414518499342380620698466084125391796705618767904890627790453444391458657304005320130689369820513486448420207612216655395162461545246398820648985196904353250286226560295316772660349769629711882272047865223064409602530277544710492583236696185757756511107615295202702928317971308769094120657694065401726926864783816940482855059860684555630468314912385970253741199458034039031042416490409722404928777474531256599983260371077278958577050552888301612303153890931028604881400858633417999308096921016473627634350285033582863473030688562186409321560900634697440238440069512588760582031418335297349030228803938534595464789081040579787036922413648588674237583639063919857851161460152754386849952095276661913352609602951056553248717090668013446150380170552022905158685022086807328453923668092156556657918813539744640852374385927606610336243436812309858597181315586135176507714653929837910248267380493818507763819713550918092252041488013237367656565426719378016551478743234180679530210663739225363095432123615609623350581640698645466257939902290680035956052226886729575288896689881391461385091848313428653308928974053050069721817193336485730799153634330076936669147384265340158373899037024164671397922787804219505429168120307653184356896020386970258325453646338286550519208642421949821570002725473514030064592360527715957367254270912064848276272117984385861742805743246357487300185790488814175556270529534627621028956381927655241325362804595484613704196943970803174965576286040036971278405136682928406403821155178413452093461876979808955931559205083958612066907680497285058130385090180672070720248239126567155396411148227876107699876261523350662987045168673472779183760019376005692617128372188584800173649198391483684987038566197910509346133539402964260615384573695498900108240804346916884907485213057877882294222929556094426354764749647148144875240283323007010307110065804316853733745262166116965469288858350621413157990027463874119971556492754007892089063507652125833575668750669093905721149597670801528174127006546721285319483473460784865402114834799280129086311332433985193267567466348193111289455794926719424555232403222341224523374980266467896231390899795416002434030181497658461975771425068207198744720470704135189968507113540348747134601709135503163921586588367079214542226785078783221461294031776099686605166478896979932849810554121835809575133552519723173489821114472154684011812583403391610951673507337031987776144166403095217835513455959381811350788803648547424775920480851789831196513638224912712166202799955525302087076472259350509746982364507308580280445303260112277594148026535620211944731659304687239542219397201760119793365672722089040150635941547338003959736158819363929464393663131228802188304766606250539138743293952578668325278736017339670403242867818200423936011622090207570952551448671494826893401175586005802336314636659290753283393596442042035868617632274600300545559233894410384835098264685638190954511972527944801065463050619189927666214064450745392354984506510398705463443655917043934509848646188642325550390096067614573294246491015762500338100758199715110637627092516245826677119240108453012141145445697139446768466504726209677003005160607463568416661250941410406598218902877239269044151966631437261617534962704945572484240440170249838312561456569384358070827204949321603139452046928066067133507121861662425266938002866402621793170388901622962382994273367126604925769017988927963076353409984567697469318436838117645023607599368529139067556577910021096316677432221660321672459804704332591832177454024298817339492512974852380106262073719346445210829613083810762612439237070585442703115665478416589401804383082757500613766761484768006972087439706581556908328492394964918054003304524229262070606777797863085461852764484538308677012682296987604619879185706424685612337180066335949854442507146765468354743237951136268532676467141265573099812971521353291538747239553768083897572351957515107305685177332635118039000237915660782499951466024253803301711394363717265654830757698427985144664734933974309869259752392488005718810773619711465334545084688812165545188128347068595483751575685311176433331370170272289411882119030121938280964975617581183563035869356425100601748464066287257367467740921549036664381353506208557588656939530434590008154661951560977939747831325413605691875499485109709181419365365696523825874397090573091655175503844031286417753768504167254103023760391533197038907330736579932982693134728659336518361631604627613010897857743655942652499425906826613715983808798571345232991624063865172737684673246293666108519730616182326680311775897902034488336297657837951689201274960957778062143233597802045102755171014735506844487393242558580740751826015733271580413716998329483706876649403684101277242530715192077479583128824384386330961808278119112971597328249193767645118017634881466159327097952855824291373077392030835808321377981970070852474990036113019780786819160608336406197006825317166655831048004703393241274065388654175552233587117770801328997934131305075829511542235308380798833313341664320351798174397623008999689373711235359432489386776146596836406051829999322974834110902238629761680212349851545087479929484493184379203860611166702733685356169219268830468473257218100821470178646225636839272496156291308514285333827119658718472771203983113980485028870895938074045956677324261478893797391486060810057857434723768190562834760427423088685211867667655242836127485913315826508633639990293013048296590687627988020233763977238741266401132175362223051144420262825013315492756110367283362570138043573349410980407549709191814962984575647346472829203589330159266249602554572231151327361746570068274871828032539310412313140398089737396675587645538091556465984550258668091696490308036535951795496984816466072372964008851540345985641135434675331717222347146153322317680908810643616684527577054267515117457148923235821579029265675676067911654105821764402424956881558247634951899899540011101140464367875526642178779738259951292829694286115963738528430466488190356727527387657845942712116274719774704203605855091719734902852832209006661135364826975402134208439262581379059575429817174675897309616956706312999468801494261954706131166215567925912654956932073466453946449435907532613032760095091031583245264641351415678224517235431548053601005350889641099378431385282669180101902197818324318869916885443960267641863024224458755865548381403279903908779351596346433983552634625947882840490633707254557785841311242638771241887102251039645444393010451538439389906704377519521255268393646999778282526306432741742099278755798122180833542032790747511883409644786163732217190499451623758460074257411830066712053128121919648895525257088019619493688475392801704504935317644448580784788245092912542895375148377623656775420410595955026337358902281575260063365005542379013980359477348983335213124801065018750559163036654108354218744521887573388731582891214122578236563072676935882913467861584996048426370968799381863476984559244022597366371800516393211708138999495867999351507783686701478660318187373490307810018379206232170138028232933674769598211145870662848053599706056535650877878831767415317759531721199126474123222762869649342175578880383165868532711205546609959240165446304695516532317199263816191875811493910263677311769222200513151455322271270258221632291491739624485486729269550199324953694884655106374852153363961505996214884396052796119409516457353661593370628873799372649878813273527465154821792007961403092502308652191024292848735600468626881022774685637784030782410441267410016374035490868886654709001847805946977430573154043879885507101000094713080112660393121604251340394537784210802230417852962660869562506282449028487544775165187730387048754676885425275579125829030926226512301289196086539758874388354602687138024132495221214991610896467630334669332213397817628547255308535480815047142894098577203096948649146970127301590977429424044457622864855280557797379912433469467573323447828701877025374019599671820535013457380856786763668308631208798515693212220290426519000061578245565046301336178220588113416890657835761420199013837085158879482430479649290408508580168647436160451546796742895299180695450108853191591920964048757271448156365061671190325201689059932443501432099305752543566285106420307128954145885330886249720775754466333971186645277758536299629142695006182439347650190502632421315573323162037615366928215286561961005051456927263488419060212105407535921570840765434890988519235476046341441069270983602600820935830350989831938994768244668395236454226503085681429355993383535244798865213026046972680349929501105669842937677447581144029982311492825296968862439747903242145733221129459925595197075511995688695121453864453527692988417588068982284642488906644461970712714852375688295046090845463130515851976167272210434389243995277191074167967008941703940002747185355372995947697508274614870300679961976875590785086330479701593258025383559581746022420378154290783187449613214901823518107963997810510523032856431707170919806500052449097117307048636787457649773995192346149379058564374982987014010593498833067329859983521014283321942333081326987524832106847791151753598219237191396202860823996482259383694840820088877638866428680534717527309354604977836431383726500404198022207738436660830290397458048767626417555717713812445909249240701240347267818417050131114732368347468317068670966772187091579736995727607810166981585677111702778597015837114963752729303736737465967944088059577076567030512380616775848658145186167261133183210223462099373311282441058632584568376426731671404567304256615984719999070210638018771484403961760516199747278139952792855481373569438233877620999814804802639050417660404541329469250527295949545342869339409588076323451163223169723444191415689593815726800216175598067522969280967710889349350502804489749300381623427635818248650053957961243188614070703714292787099011633121994598351718013411357481927314705792520510733511142342976303536819892808002177811661026849522648390234091338214428823961830054521553058968097015208504306579633991265441424998901974958307763055096140184675400474929758445093072191594199444814423597167811268825908566811791380691012436604406984757611888026018455653270663924411225772195162688813437178747259900199518538778410682813235115640999192206331265845477568445218025246051436616487497118166300400998804514138302615742805379028048273473894602972555254240108619157707925046279545783949360656948503765990953598831142348794883402079517898534033191963809902457467227414018804477032854723818653270094783163472856327720441489095243497456228073705493167533245752719717912251594445848801169079719899162466083976078559732746232144729745010552362525622127892774102991212913326064877092492950363858197528740314090183880356529089049578232599383341197181908802913300356469930541609466263468246031456818574071757745240710321441482298827458265867428567814204320958451363928688978663536612597277165536556405096662070237519622123058902872669133957709562061585287592150751432057843460140271432157623200186229161489457177343341639658546080949821525777793386510056603744976243416686265675428408398622481833231520532749760287807546588575646253824989983042950129714971337736584786799354114487193047327966148345834042519356420841557517757735493437483461718206145754537459838881884529363503926133724329090334064331339724269789997398163070831454313932201438642540639207080889941876557956920491348908239524699513301778119371173909616413046636178685501113012689999440173012773659694939631197819141092494546387877964963949473104243436973958172124617874464938558328501615903451981710922777995971186488433157515786819286355705942681120515923714290425314790582468832718093920516065868277869208201180954269490936846547553940910680621561077517593927107715404578331575504561372221743898541789462380564228165656272774829141709373820230065972222805043561212940931359542771289809404036335306568200872372948289840396548474787196751884017583812586421458913369105732598929796333832686915108681089042309364083062910519676006618878627394232087089194086952034085648742485957190147135097721710308454738295815271607218343569453708517247215893241749916137423537748854888388868278596054821314451538138865246162245619281283631382476933480239007578391923951680527840918244192639333811790558587858342776266317156971661426065097351493037967125079737706956781133601058947060145679070318424017474725736435805948084545662087568442443106101458768700994783319179469270109085792907225892454098719315595733829120339423969639385586427057441990855300248570985152942254580709501896466979150516134839177107969543429565524313368120773675557609171722875305944362660983516465087190364964805953963275155481830366693863105643983298731392537101327447493679891782239629883350700126691609388383568091055653594086815989108451981905925335767564241459280751594893410296553327692952940199493279528269279821965071882732940876810507066960285884246986962639844986861346275774676580072781362615003311204160517099103625195778448722418794346344378276277392492786423595622426277654575617698759012274499790002284940223704790111378948855809034380099169209721237893106625538899730404544308582895166426173742028843470322575216282545075395554223319482760168276064167323277413291623254338808485731081245618466860760352935688237781387533324664223354521027982006793909438448935217552000373667319124081843766641711192163527978255033596580262839907304591422456833838153738081499260571119360570146008156760743981144412202098815490221628180490030304651864098620190306106210269670383784144536440557831716270117685874782452179474603520519092699741998114500594658866269517676006603760575254081260580469321324490862160318629752196532544440743218368261285465878110039963803272228408126326471340955003091290557277216269282853968027730380224923369648970627320450560550992903565806797948989451344738345487270453910122269595642132567278229609604379855259958167521939888566748254656232719700203875844701300144794000027397025289561127488019929106137958444295555484323303628559968380707718211083867330893183418566623146008057716323868949011785357324121616510340833269270174984081570770507351585718502490734250676247239142619136120972372908225045683138471696782627803238365575330696864443265849819886525348916219675403390287496350422145012691862294390373759349626838158986819629140637998989878937557198904682604540709909101589352018337386137764068607225760718887361921174751817744462069036844704340839371469844423118267320675925238009312779584976772362942726917935968807326756428748292533522120265767100616802002976957181492570038891751337647220965217886227977926890486600072113350729094719106603550828840377951917699232027921887696600876127457552287492003057977191103282605194301286454221653774489720891627060492345103010659567063699465849438957061514570562632092484433478234058968310243196955391205389941946172279539776191232972472587396444066740105738103953224984735080957059860317078974053834517513394646941417000985715221158834293263949416570393183367181957204259001171301786591167568946220760402763395502216653089267045648385122374730449015151494686712904234654700136314082288277097638908205728102569472524720747346781603657845902693143040290252408439657390942511265608016188432191437551649488713423639704455380361483998212170335460898495071402201794416880723616458690247385306110042211455576196563475939981289716360076446915706015561337205346154530904599891837379185392449704150979917166165281342490482019952269566041515479701255318616350346545226475395667371976957795737427324927832600286806768058296925015468429413721078200178220029416254111105311257921324507431671453445589400133845050955465933137743244569557533797787382522274665526658464524143819806858255833016748080176899524675634167239388366018788901067743993694264489516530155293000446885859143880216518508533721317042411470951845302403870184258733532877056447857230900808315382715421888560145951118803094449128846123490571096564512869309439583111382378473346173301119502466315520944742701044730354775270849329521379830126784253519146921993294154682376219128116974012799038165168980832826761867895778105435539875920452085256596297208760988905392557632048877871819078627906802867047521550834673423371368790986484835209367554023429606152295850723696065533974336613012618115516702395147162694627149155281069017790535648048921785369332964216751902996950976630609415611681473767889678784921928860425601126786117847179729122998749921134208753394311628444883571997069403199340994332076679639973707626660701897518423267516060041852040312676741853944572591417846182633000852706073470973973604574727512996991982007419760597832306648475645284756362536711916091476824141184601278579551435317609119161117108068249502921777383652799876152341050986473690709082969235391814799877739595407116933163924960017423540981483835261941060777275902356148454125141963898123815453066055653594567291457047577257165522434291500582800744100148131188116999485208453457460015782695537522787955330820930226566137483205678406627684468337066642698405897235937249463916026905414052571686893041341574621650414211475618276796582071224289152467328211347997245523682835573120279265118268723975424839147238501659852434246212894454729280449248119379058833363387989860122546933462765256463698149929867065252732747437751185916743105055566020442022258076547425574010194632588202295198823848757307243221068279981669581353716449804114779505511623296803442040394792701456602133582460863969564516361650810056439792768127843322981167318994871478556947209230467111766702973972441771549400435618668228955057619851011232026528425639081665695916587116482876488755540371253495104153861634025526536685481211221199056661940205395090959035485271456584671151324812143074116072643163307231610838700000116565021033437764964829562775574646602212654788462947292037525997749962843348515795666288425499337598188554452861302417088791608825712434103557634240644307517596791488830683073318609610494745117757720588994556273159195373570972986092896318657162050692001877194258082109943211117066189698194375454394541421898351008634974192452443415931492944379364134293501883745077381171982926521850177076315166079321300878858562794448717842866963450864992602763702620247575191725911837433718432263431452449449739398800967573572157720805824918954590916297464390739742781798561149415751325838272380998139915996517045008576384324508058783321289813049610347760335162023888689182175625789024562496979887324154672626839098983570331588331492623825801141888293020419349451090734837602191882085003764420119963341104719015298730470132037651632666275694617639259112962001695343254363377402703300584711717184367056431587009512568737767902198838356574477315846983789220552587134184253701218523308755041226545228847530567763148095342624822175017143394172794557278631705784983924921795877423142498934063860611893741783386243280546069610388262718734697791731700296284947974111525115931944756804494945760841529340649433203150471797014183102257691336189447586617919336334750088229130495365541722763327945319261551634023164701517144700936912423037434635319926129553334249463980376577633160045195073613898460177290198969932114064623502885339089719353286340681487543749741796405103211026228062513312448014273699488987930172135428460232420452783746206535672224241163045520142351308457786406077302098788974582108365443307262692627419497853078168060462819545726013526176845050706261142198800008578537249523698946220384856693676345817762965558256626574655159467893870423154446768751276616845764558953148959947282809282532082522294220351057412597872087523599264304676065875473244562506535503188064875235188956319942544645848434227175699428640895182188382690571954704538800837346837702779840802428575214228617270320312683415276796765537393798362317940006224133675154724308249973501359300014316676915902433708829645275108239868301739769384852980394690628522235392477098094338250532871036892756371810670485567511823783843688238269107364951242476179027714624178284595364692197621816309047630102840997708330763857396953983974167866317994740942003497673023979874571553946020993046899737430180261435225706995704941144520310377217162395700345257440327305269062314660189840805576928172349347999062979683414675114820488610251462549340805294373598352072691966496458800468761481870358348723236415080301360622461489208891075909102037805991216589579924159558268001629007983548231976873126013851552348602103078006915299233830180864793101587061344645199099872414845168619357593059972548615139597110089551449735064234454096656171531346683498159519902769703510060290084247795089081480846903252248656988253500570617531568441190559541868122732754719323520919266230192038657730042124389216670007299552386679741836485842090718711031013998533018899299429549358888103093431747289774919082777303794780272022131141053442523951628531216010940000685636288259839896942988480521188712676569163642653586715958136301120864583119777798470181565383885852842997482848291760019952785260834183583946448354552721203346696467287727712814568566804193229709407108670216543854788723323741565125815919061897984011002155685566839848013631566624742325206799757679143035191222218590605092240917255264491655380960839399331964341041819581343675392356658438040931376864783641968248030656485579759545737746383528322382853595902907289603747074535107295301958379527700288980055117195468970541356838739277521177557508307332060172306119948542250848316314505320256907915335679122458788781015524690339703448110110191041773647816315505265635958278313620588307391388410113736869492642759132787931185739511404255214009323056059366012394977904573140803990845165441159333390487725075272147309985561627277460887508364561316773301378075632961449984699568482505261488078149948803129490966805624622406145709548524140232586898388218781418789383540696559453526970540130532814172343399675279639055467581684817789793598069645555969097620126758563061395116878336264724802505910757581699301865875108724089959161394185714382910412844626247003054687087454356620312273359172489025602038964201768362867372778460951635006259666136119561380301823038932684750428679772602342661454668888738030051040650862493202579196100012692817341860524416771212979836837850881970194535822394155246501291303327024828469146590769546504932468129089085156458389038610288675369962827680435242719833657284182279414127919206405541727037351975402131771695239393103589423719452420847059401843114769253203583392648123800029167483646957870213146328256768616704270269497865407610334401217079931050173827485231467891996156196625825285934376696230396457851028093897295365847493537463537016685812986447927045691164079664607137379851444576694626022549192910686914014021882064050601650320880664671218658774692585496800950855366134206299951274399179139642932068841780069418686902360711276681455457563803630394985369731888826103676871598501671989385492060915163698591572546206424412982296889491604377283828939466735091942151934686830924925174241528518341439753370682481019508956760542808779979358171239199617658901786092686644922415243074007281447369411125846711356984006154221947243748387092949152514009147315458377422421901870930793053491471478620929963400279434381668604826829097446230760592969011015680264781331839520357788880444719616740232483157312870103782070604010653907354022955330598224405538605564729278991862861367984229083174999752545116017334947435981190077562196996624092055504627406036893661825936739122861422446272759131070114143242487302088250860838546110998283637019011390636676220745743080278473178214999504321823547791076388080177469833291270828243273627326002408610733717454460906818014668968197925872770669370372568183752599871494363520472088564568359615261777314379834040949300052367724575922737388277095074469170389432805869008647136970765542856592675862944538300249353044343250369343197054186617191636023120707984634694754366981099014918581124596638550838872901894124744336405232314912407234937746785408489563365109390950202659889308237097216930147966847698394034992023210478377768879202857772715583710551303342434204098962743649535924959361251723468534123104370227360240054058387478772502911465821463178125506824655844749416896572964127786431003801307745396246232106000594138222910835002132558224753784592678252075128202541796632334070872829530618851377924540736376092733911661118811972939219232847630284235906668033704198846224607248831430363066326799802864288646828339190621564830291938022223020376274461298177171545360307880022386655918966252770361240247014233526256877700829180626776928452620592720847392057820490169164412038995751977151165827407176189333463397416300533435837782412567622569459480035131972341411166218465196330960101614941846924800067700676054882066739451276818648179390420461975464400657403122324206343106525954366336955427221783681601406289046433034661824565971513560273329308904762447130080587221177067038532446938945619661648320168526651975446002789435607605793867105274007292004542067207830418445441084120150215987813991496761126681111520037253950587780468741840526093074347636932145947222180797513339715409670071290109372931454581886351760877151860512791040388974088619895093469473093498575835303264783313078806704903028831965709418482984384400344893936292707785520030002183546630411450981143802350175794997401917730845251591166412437966718687355325871139897601822118820126985109126561618451537587261650330487794828867881852387765923666088162543101887216315281030094906828051955109268760380690694625649394037830751809842960355978609025359896813553820533132853733916888370162556570357066897236351094769883646410834595850564272264948584642714115269410964054909387665574534655999588519902547866775038489385261201685479882502293968731894050074685922165610199226965939565253889325939140868241157534623049187237152425261365399993267043763607895126676883340196970149061243978722602774383407814632253231980720694456377696673859397915672330920418632822403242762606462218629227730938619212376517153743827343141941561304281053579069911021032620731554040602210119956815583963510800894226304448418691518550375965127228657342709009118407616270853486405679269667958722816892462311711340564620074658851744403537509987653306016328867237010203808618162430565760959996771725954151212863963404407004594988347117887137282096060510279890597807259400465370926335103203150478614899424628379825373167526545311106738043483868347888458166088787606388404130575555362103988214074636947933464785194640790056055464465573534102695589570742096611482156917420851395120716314410197781712081903477352361837599257124625523854802959882006677810160630736135660394646547670827996310620169330552471038317999892229771112854840501178227406469990077833160406005825223059030125359469839536370601566527337977046658662775636051711799343246577285467417251630051606533465767652328785711643147648148546661416223113413748764825936668155331489983105019546644575328874952161104872088354529481482776721266876332643577916061894646568598139646858818741678099860876227011228093248835229402904487783526757823447501351151718106332023854483938080096055428080100365943143727169488660564008476982038369834571360804478212954318820242186304761093370020125788950100060934336137651186206970753266291463886713913063441959498942853800801211181191774433874950939342352107280578635603273483826587252042168165031899753685119055263467890094171151163965257560149226131240871639648428734075419317676919362867401280108744883633945945340092664412828857858975757665501924081887379858560444340649669652972523764363434301869944840644476457800101264241762317155684287182582280337658135301527277034762739050770685775969925038980394778213580343731563707295737487479318539525913204224210027359142438551139181309210575873306288832048369519032738727208698197679181553464311570054709857869128773134878464327827723222006487669024994358219353939253719020590488843725846142725525017454972010653128620599033328307294868245770685686774200199526470116226621883538289766193107678932788677717294461584993082274843796690234186881183806553530432437451287158342515524607342165216786578493490236423613793821088093816176383858701977852309055071243841647338643506729969310152323637901905034227928951947440217529961282674515751486883967221194038402666265577125682458871215500081652386275369571558889087919674376579160839286905060153917589245792695130784651041121190014596409642125684172571773653670172609334388114007379509492085923003021689203160610877875770150567700255013430297943028021342291962543806202199661272048671983887506245380920480569501034959741664869894936953070634548875562283200880625320591730508324586387016407952728483737846562815471726447786052791142444147897904176135919549577432592002292273850751988104742154947701636400374884692100214432747658000100075073400806905579475123205194569437304260530297248636973233166717914031586779464720392938993280843470498744222089577791895952030374983514820333667545213789510058178284205349877079200338943519210691116836892612505481492241041206238433845820030939045134486945888924545164098336657487354271487788473182813843003846261875931638915440783243608601991021518031732319012958098012243893645448700635565764820507487708867587499605788434763590406542643634127226375147167691686539943027120615860905218603649841663625120103773076447700256310318913834072886624525612610528049053057608771291322681685132660838083715464111283753064041618126330489129476497991198188755363299604729838973124937284898891180352427372167429088908883028557761123026209190996266529539580235029214381166468679103880211402891243632925589843552629776550642411691772114925514682982223953256769545979822559414887959020433618473294333361047335985876960165519528714728538906213792747707539045234188282307742082198156177853354933167070965930889612159436232812370496929779018660083286200747596832241280934711927673229967582503744890850018040807709116622286798500196940526137847582200563908977551974272170856348546590009386706240969819677442959509902633962451302532399602982969053218157707384295542617878661922457523714065299632652645299636971076600636087969540402157565176019893688374235749620475193830725519070005497153028353366546604465704971161579161550528127518559422728260923503134036467023764475945672035126548550569192455426188511272618502626999350157564440602435076987969785855688134043248589609853542172605890701697831374332915808578357599014471714609336036490341886256296201978299280397872745808828840268126107986836629571722238634464255299996976650066595015189507083875485501354759770616871817473745227518556739869458112365863038599625841433071084442126516009859339322090156209494492165237516145250366676031765175832858126790740501120427338577986609500523179166385090496884644800546963000757658535463376954297074309291460987086706583648891755294204653264521994440908093515395955504459723062732509275333249462837587653727534609966193483017700640276095352394842291171470018525988489296647015269789948871397509133856503563455717846065071978262436781961626329689228278576109020758356950493928078496115172282829723475594914742362528085277823106944426152485455766109168316649165375445618434080975627517396500090668383254690990607639466234038342220004538312451661362244216030274912037364800782204893430467507054429143746548001847233372122854962737273825351073950189457867357446425405720682071984255486743481096587790370731830035690738516271012857453683448398322460307346675927902753208824893277353166289731193500941980322841596331558257982754644949692295685272518277432674153866512917163269131835967633166295942120543178071842153620755554758696225033401932357616513921714712147607475918015745908819057000937864329327718915083001472820902988151147185385997009357839810943030096255502735777249045150693282763356456373749876938499587216306615261992998732012483953857253011663508385134742674113023600313049312766861963186289003314150910108619816668562727703397364946293677950740993450786816695783493165596495978545801806241108793422909011255704574225222677031643682882348788029430868324719479713626298313526923206467799451068857614816572590549608638359505389282071922143266917344724830956869639383481865422500611797825539542458094493928490483853965098300327326889663992842081064111616036095330243118224034524103650999276497755368549845419658373873682996534867025560430603526416222016332041058997961639314092005166106956168157388339426787470467221984724528729748049578879123998673499094704181864925124312231421584689382292254580114379962854745633075260299855024977664591694806267084147298503011596720565824905302863134821977793557077867230781343567677041821271882383814883930108884725671191951666308276717800297234511276996260128008087636792681769404651625138810164488636555888535399596421435918667297675984767583577298951290698273033564655973237845201343066988197073658872712707852435412352313571143463694975097525377454270551469014899159199807485371475507378256910552637599087186455364596371965329296876119593419352826896288624231115333578118805574538990893719903036065878252637759977364478876383619371300255027070026341751171510962819061666408712498914097275027641413725516578020900579803023750137994495137254801578336817936868152780106585292798324859144669690342217004568623840478069930560076211305905481526615384863674408404828378344367393537569859796542658421099836971336540738234879633819397998546099032305930254761808147817471263363107242965492040887500380930668176704053186602366400351017971254387695030274256671712193555478551216672133823399224806812588210645577124460838670391550958060524489246095258455699270962341944978190290994702363508215895643754738730246471838251169012109257666985956549801307007745206599151672252345475697803425934838383310520345464990672826875608968988083773537135652586551431899685413008536242423390566461323103569263554702275791766096451471401862938914180023045707617214171265980087291509074667574234454513362301514836426324511991368738077604595170820620223166199466175295127165227007942464832021025203372816996373503491005947446605231445711149793271802397632816763573529932954832268474831184052133570221264463382991289091151340304759203608668065804932307322201026085078171222883734760468305336484228390957475783077809800285899904182419174383343937382516200276374579765746619399662995638288799345823169503753010992295005800236913660902960952002807208396483716103026321179209353790128332346227776694878866178894086840342908481567817910822939702799434625930133861097479718533183911504832861441758907043581637994590880042165738595538924348394975901252259001672317087916366377779431025677270940397468424072308263509425846303116634738375671390209622412149323007734149226714188032522727713785892258274339741856614670961090522108232832244492245550772655009032422039224821215954107117077748182811138441432543995046403040278532650170873980799174360874145059101150636652977431301649193005510540644048435803284123349200661066233635502191202510259524314082820346902163940297169752060923975820977244780707434139691992736576485218233642078755364808323258943245440004920675375431605704819964101243792516029428353643754189157928281479100847251365548770279561535622241259320721991897726238429735064702260804627299968770995131277473185737714715803637077578627083561460786829841428305121077595208987346394366176963826652281453648017441023706224206625783969775344487373197791026521863192612030826177018851546456663869897169724442280656372249331242471568539466498116012557381952465940274014638108657986954822872895654466291335188484946156774630007146470393781642597402919833101937745162016163437373623896667075135638082514624684065394102960087790860774702011903546934417022880661738946343176103969480119080531493303475535212566981211995508665906997321941436447791594932719805520149763651908559421668776740921882096550948145004619457896078548559941731291324773806533693496017349800898548610912001751014074120054634377836428783516932912177584423493989854984080125940813937425123817390280753804790277435600563312639338850045155327872562649703707819109278321806379482378805041322920215538023778333840035207659590985509822655658509580741865267632244202971826604141584432106148892243202123973916065050588880692471004008994843194156546479617839493680596517313733676351852892051948498057296318894503552845733475435584302802371594802746663845860248438001275763455222551222279090203416680069343176580008124390104821458556511540388594487015122759066363393529268883674881665839172418633482737818836513924656022438348230863075947945798978592860978607791155649630000705387530649316922565838324141714173861984796228182972203261065704318001636792542956341084605602443777587298462718120086015438552848076005592624330786219137537656440059802409157879626515407731694529541120656364748723471833584503459866281976467258797007912604871224282166885614787391569150569562686221968478377984534483977329016939757133543453104953626708306327883481313487871528637693612389515364364906935521029470424009611264705393653891979671634014277659143983516061598304365446356162398374541801559992035032889088362159355123606388545361997456406576857984125120710723796113917376122253272104252150424986832295009833579116206992701419443316971362171306928278287076594449790857698191261401373304294512352117669015612773752928788899215648371134056813197015896300768007727891615663610535341408962592768212546325045459714948242048470145987799780444295504111054445529188740723374647261653259725675602000356264902111029466652538851349550726169369181297099368435934497054715559319029105496739055897589804225246791155559634610843330210569257967430723081924696354927957293901106026061369148785847125304902636793123489604267704281802291887462078653306487004490761886171762257388671158195076791140832022918471343891626616554908947457763474051527946875899504364147891661712653455759600428122991288867100182301346377041786759297623845621926394159501957082440557841618973515100543894181797531743598209549356996045711706933025377046849006243373998504830252380536698894045400653906902048760206143920567715143265189538673442908240302701462080450279391355796005310989539181528620117614022665658949011709789778106271118156168466870870999546723736163574113900746042302924070505043134078656971042128270854506623091569003842642336021158718032299997577161151064997011985279697768629249444558107964951749412548411968890893868029552767377618173846624292874348347878364613921303989941392796149510192799003812264195782527561786603490800089291482997055529329621396145882647170283670780280128308438932782640926644790103576523462163656345359450050300793360390108604380514514487122862444714763997332284165533897707378382036845027958674336134478583399666465255348254874687535767452521623897786928705047390986827288389271654247568973687594227297271706424988326920425587384454407422466956545343571966130168463579078812279213843640700315559741904449997834817302506740802503276655156248090095031976419281587436478852980534870816235165525683912556502215260663773502645315876410910065745422410224632858260791318726072605322922321967851641876733467599771100952911353515738400591645137356695822427255531856009212150747123147994471695018667151259341476949912628442711312536505334241597149656810451396737592242599651614892422740169039719126251528726428155732101128845868197016329178745024597147671665600541525928915755108328908950424743651696384597467351190610556605328565015964137817942584889800862933685328795920489802533426596729532582080601568965757836274452698027684111589844002970828933402912070390948522389287946196315722334302481913168973384834878003372239734748911233908207916019248562799349331648226620557234392331560102034245800084113360278339954109370832939233509900298236430635207431844552512696606875162641492583187163862901599634561572078593362149780849049318589530546706948261020375065941069167671728656159619247136387066278301651876772063083311839148963161081029777773781967638325266156977993623082430020519983647419626157950399829637815185760434017093555839195089610931426593559349699031882974567676333233507216100816898219219318924757461608980667654630154026109807648451674696171137537208429893480303506984542153498016347673326053626920763512079663713656948623333032676368338322932303791221702691619589255203304519029052709704842226004152247318238282616176124055381430014419816652364364986412551911370558310909733760879951183904061830111214612678379308333316435804863618221974029420551617063098813114362119465203912510262271528654478621988490464987057051481814076162900970334031874969887528280350510304125412479160180115481297703322513895027482579105632324975859317138391369381447327653948774663135365813993003547591813004500266889400631558643586637878819077375261059377430102238052086577826938072506136734084129616007566797575890156667217083684030399264985011185199843981247556449367331145050062494037729511213253993716128563537505893502103891380408867550952738817234439896259400474890230353157866488185425581963950194870283385767695224627121144051212209629165564617141806112548575359683043090690711753041462129064959675716752414585986430569290206909606893807202426947630478919823371591904254784318691761233020877284126670121554715638142392665263226409323451147690333377504816323084540249951038571074100488791609879824493188522229446934016111867864876486292712690475416749961528867068254207698191773404059584946965404498378757569632613789053544029272379053696478864366716149614192081882651009961985189917461692641386253439076052515491851077610811044612996702578796339573082421293666532499963130319039344396615930618841251342746655696503799537036224517667638251392591883793957841088445378608494696885025255678523275357411213337042444767381412115199879856225935408990747314323472946072355220656069918163095401121778035523107661986607984777547471517829423084408673057654664057109112815208910222491177070704235184079691467843580102401530375446559593834920421201824008899307027979738801367103835719520611281645886377064982538484256907336978076705749454498895898738868679096548967281854666608886970642973514437465517097986867885632842677521134089579065807652200255059670215479345271544032985378432279257002769257712513441648045357566534434379368730546391815193382671518146508483950844046698598307911340573402247594570512110445810495266402517964855580855916957966134216814626069266038882801455320153346048041405993094375313770745887993759559872585860317221947855727762180547514656154296394506915093844347666941952320239582193792264121505413166134511491855012007975782163085785331594147758367264734475921301369018176572269979444693318348126613017669842383665438889515528048807955886704067479778170740192151919369648687065080783741058398487839124053989979423648604059986839264134846457742165185569579345617118763287287481341681308319510010274638420969426608744918797160243453905414071374829401544620303952591800216440906967800062464040478223554159670254286216494771082731317081894614047756462226418690339756505050696584514059508493959636841667410818278147840377812164973058420989510908910770363162710012988177499932910367242851745827325178075914437723156918865672373309270230142455900644224136675444401678248248395387210232745159968753269738939462244393946138936771238479397876761510694402590636597025899913841850607192597501795219879449932934197712431804705793906580436259941878744418881487983547784602140611221943203386573859072489653373719899182723857403016051767194524938841276531459530750694333634979328107980697996368866649185528853394141485811268797800738940926642999552697688654757456925453327169508554905010750728201815096981997148057978889051076086741469297032006602947729171154081630460134724887569014880861680605976264851908698010573326178584784930914623095787403102679830005824701205423907632645398041888661202953745822063914215169403927014115566914755949615201142436072287133878186543270415639494388843009187271273316527492924104105457631182610718859751595992256028314847110040322012632201522852849820191744215294623653042421864987861480636881586791032450684683548882004597824267300790683946235253791019798798428722025112857773410862398387008412817848522100648984033779419171934103358670124664192944382735770932326199374515615351432292195615059075170483141008358791096077368278494953743589859740871878221519864957621536917286255170638114074300112439636413387773201255281798589860462698148334144417316918427506937262319795590405049882642581121447083825017962761301587358095756413754669523745622410603393554298729719898224300362802684685585944301735038999695356909111038523471189447071243435170375811480409879412479776473516694605009905612615656584137142652612686485215871242221355336887089069464357290959195436351519473086882443659098133090473309122589873608319065648526212819342165045842496877429287487114283767343330130531882869309649671101860233397095870071316529995515426693006471502117122613565979188870004079467946742413091756939816016827369186741621085558941308006424610927903291793135672058947206466249326786295584925529171260907383992271216218542722962574518960107541966627598642544768767469180831248276275198367812917713981974281803981190161561308265148662043600290207758302657040193247095993769802856157776193111288307471674729293151633675941868457401502818427333021607091520906216682761855061822102940853245643058506022250971335678617553710481162645757613508104219639525930462292749029148939031685404988514851962371441529545430998149087644918119050260232919993335858861769513525035493994739113480880938863526764535546377311999143242960319886355476980918793622250371543542040886332205131475679422473513538815218572483731240683776722400001961141745110620959753616218334667688963812874690249553966631021857580846125793040908857026346302960267388936877829805526230233670749967131976457103077029494050220869125946044391610415693540984431817190407143247308140432729056584698853882473149815376753053826809806937607059814314661920361151962187302984677656121390669898471464968144357357690331059965619047012504853015944947024473238053964439830527820364521444866963866404198332610108410937363136392652071387155462556472710851020425890127085734092749084536438536096696588783769733680961330163113077120056467358425860665266723236818936758530297712765941484990554697824504656391597953108592085978268246173934161869178647590273291749969450791465255899238282923012337260942897283323960571399962311141448415808345467510517443173474285879307228141627864330264403172360525582959561841255659534634705300842868400114104391043666390350951118092985222602225531959469582692347259082430389148771044756720883910064838110063568957487635859275401244214351717910933139525609982730730707116527764796898510583110080819635034445862396911110234470816415740914612765979322173874954260410475566037248395123631365115314834664611447412076269637980496748077120913171268743325887285816589953961673607689260026887168265280911816765084460252513155104532321151784567239718373691890916777523609184261543499020173074582586920349350994100343698033569600994776608450569481371361682964318824278222341548201460132806123579198146863579827360909561032476320886929807812560349714474982546015396212208569779739320029842487523915024049855633663510997786818517291844806995781890697902050306409759479025873199242195249526037661941847284816585392172126491167029281388612753071626521658784046080130817304141958580467824261098927285385163298457733357439720511866111890821450487417192738138589729154065239026257301091089284416298435286671750311541195268461107748736103913737269340248166199181974185913778157303208208121591469940391311155163712535451066121902947667426081756526232489794917037801025763547702116067842216898167668182767798037481701182072737420335971328532294464518824277950496311830444886697376419131872886701217339472866371051974789093596171593049929305288959410517589754687094074020772745186312512539527810282525130046828402777668550653087790111329621367237335174158724554296484674740600305749411654973873501535652220950979048044076475569425952605373803136408547242498835203933066026871712859571659327442631441710709313057093001504493993987129433830611530362269692812934700437447761627316734501162036430346953679093210488279043867916279625686357312037089234183779826020433665556809394545778848984985018430791290490205649882113648630561079006752737759425909481463036687838894187707599676911064864380360284264919716914928478086082810630469083650498201661514698323641442996969752320702545252812257406561577089314246035475178330596004054705160158681495839523584685540021492817430627748784594597000747280902603776402538332487675560581138571875232980761906423917161065750395409780329304500035812562187375580038708534662003643250397831207423362946757831029043040403119007252780009041533895042436288433938014668035356308567407664289918366324837417634512617579707941427179914199697128346507961022643160190442341294911508794526468264862004766253095135421116995184963070601634845641399036685704557272497612681037120952267640285681888724403759497004114205391968227675702225157367591813402371915108547677656960119300792510198927310849125140457395783074754103371991572445530794534172429204541393405818729215684128168254486794910607989044336096729192221082790539965568552167097232175905848500397397125496746456042722841554444586602770170203876518480155854471511686906867637767033583752183807438696023287736684682956783730466006989300951779172215699327808481599374058023345598940932412753864580580098241802916443928514675148484819970272091966506034072532375044715051863205355700451311722384292503061169355588952030383870371144468138286249325480933029374917897564330278806832221982590352741201623310006745759536097121533589123764685999531324597125284850993528455071685450030338459609188794795125228997458001498042483174149431952002857644140432354343111963327490849357747563493211985718534985832334845464558310535495066025090205972227377932868249156603304494253307915006830690737098504326841568907429129818981616683306704923309820110975615059607449428278582348123353409598532209612435394040013118337201746703378511815637793685301458015139185781253918023671271019102210188574091304611901391847110297793761274533441861542139573346939939861605305677346151120880736236050915490807077276433232009082547174562733438615993730704848607146448533849551802845867930526170891668003907345504037367462777766507496161835050157386289899820802480517192427412264419524749050663732184690533100703301991347466687472592286460166842500368624508280083073374058701017794594018577786431831219480751350489852973458146351128469514873279604199375400847679576699436136476013191649440760719634076930656463256268697551459876246193407241041150515071975403949816062915890155835264572623559286856382854826692002255092934052948471042963588945484345850256836713585025391718016971591106545504726100973878645093286426310749359892042719969822510293088421069937784223989247523984611864127978659233722903331065619202889722038462584943569348737388207374089966803399038148025614248198852256283962737517484268751789355893282438595447121141154933223746872427983103615241143197770264967813896476855709417104219820000977392024429154118200734989361522707935688952536178364117330485622677916338628500010198225542885683053261309207501870257787009745436661690164430903060736839990799822554720246318612003133478736382577907361312423262536565967021350662930554094117652352880784875151903555657913673806270498669704758021113698749392837001826773410854914801098608517516913649538137940690335503289827419350441305885237333733672646885183488972146470761648449237880125737596681116651554461055963635499377407787575705534994188603188104673823418367251092561402418776827652648799445037265932395990745082530059999849420111148605410038679583819716890271003609631413525298489788431611679897871998859020482665551480093922054689286659397020348764293165396046756083846733495599078099532069877007165486081458628464390703576082946935326350144404001647967330174320769344171634852227718284091506534573023931470335040762334574945884199699964069418581210210855957638750950314511101861590898525793075868409502020014001578726237003680700772136167039122981801967233709065010323665483472103579208427593343999566117353956230014683969255783181381184613436131700760019683804707042672713576703792705640995937814671528624608319859961069302927566448532313107498231668522669305992152485616249083610140457183992697955300909429873852754212230447928431406469424621343467687792487787782813554194461968619232349344036167480442267637298605183767304476309351659136489876538751370991886674555561101614621740704102486274844504561957129751456457959116435637166906545262894830820476197230680953213617494534160699439225367473414615700572806343165972485754435839245745703854725454476620036052163064885511978832745587312335092687694628058631202940129862841851070222001353060491205742072224159579079054648608665224955360455449128627438564928437551229506169723325086980498066206470921133006267882092442240206398649631440021737754773012401075375994062359622958690608034879819266810172877862109326002373074953616078257720886958960523145061463993091688630372295872939516789552243778998536154831493379860780332084205106918037279066599984254842793834678337952368857167392437746691698025360484484433474953844122414640513913041063967549028730121264241121127066698465713562469917110411925651013802047228487759282799634882702193739869461541426191631165424888012683228448111082737581105274770986792624182217201298079669796282910966341927581270208702987717058615407045970210572326055644558751169446319228404311667715231716799868469340671640572595907582170101095795198978557421974368292941227100867278288584974609024079533926355482823536950106727688338185097406974045493016654715818821127529246272082285166511142679924914674908719657389964875357321666472818904477579574792204055059391492376023243547236651922385965285273305261643829563455360733881110047292969349741636232079695222816397565601192655822258320674361713212712721025115513101404056705497191033659184917365721050084933530303321129645904315765323304235357571777773048419041775626471956926284739858102192985425749560252988185617389196897805462690266405053692086543578104344973633546561337018004151955989231267516559460708341540913929994128799635430264178152380756626746631765279726741688717921309444681094126743331414446419155146091480528715138364654590048071951287739577802642044317877982702792781199566120514195261979015281500913293378981524192074974180555538926199402430833146127042103291261693579694564145573136805928702320010453973559139288335063753204343977040655728895235330189313990484529725383052675116076248819615090817156769781506724423753600542144690511630215381452646196156805700064479975255183620572390730512886018917078222963540456563251860588218112404917862541539947370056385631292022343867739724983437848312450996965855032685430789899133035536206171600483827177197555034602996314878531476730853948262776331020767638297042012626095070768934183094390986552429384125013701930685831170742744194647994455540203480920325957300192104320512742323270021891569864277077095232362902030606254362749729226390164735533506008509994531635526506654530882486189479830972232574208038263980530143156394439142068439185054958306498186427595638993896949591679212898969606191628062479995466784314531106602554918038256540740446566339647156210868276245030261024158087849993533130416915487547604690039166171731063924552764360413467174429825024488059839623149350257727763903545104314738203755646054574958255502128490461689412493679745744820110297673091336197878743439243428365919307631860376364572310141244601492044402858508032821085084387238999332217476248737295323959757183566102839325123902276136302152295952369267998837531176337697224692536006678668779397113767097872303131971567770985796725849429459952646095190697615062933439932836464386300921663675615547751686312038597543070205064997064497264916646440090332691940117139024749792292720773471092018175835894875410338285452970217427540359177203388901952991676253943971635387810379429346628114560611719898139727496010725020646295127598188084243467657083466407846140054654934877364186082120370431808643091584449977047277922146847176580545821817833794290029115859581414119669259419377073985363467507452636382714785283879136907081536516524089705192391808102185128239444651425726123790955742559217299750989908075968023026792446825906887651012198496683231275488395445172805842883232960809924496936101688140197056346932287294599209998473010156322846523110273245117594346906994844283076376285805724587555906961838936096260451597384866629080201398612410626017010750972360724826745540179752849527088388889151538821786670239960143171305511335629718810661875412957828789889398728382780962480575781483880875160226620741633425370401695216467376108200505447863013119565031404619847427480259069164106114859813186788459441416260685326127439787932080025750619254448070543304242420996725648078629492409963293218751685517257261443460533622992162730523428192467778229270252117509272841835898762117428819067020278507935204672524735075596047561990614466957130628661566518434703103928913857387013159518852947456112776668421688559394583772873617101317023342530921620877869837661677777908623175198451170248826553893118869977066277884962288217770355325272821229250044965156388824594590765971378070362936635837967484274563496276287799897620666094910866420625093953908686022271989719499438298078004048964098808764696490547256632888640862657684713629723261806049044441338239778093214928371167182958548853506741833982517317829765357964953290974168822500675143627877193659353124278392937259138835081925390808583239431860533682989951346709964280019436373116384861506295528134380883663993355236035569836834300730075689164457318880747776774032481916406985347528993434713161372390535127394733822403666618588021894989839035346916970166986793275030656486812602965410991976552933035601587397499082717919820156545125779563978437857562802206386874337997214814908220409105652378137106436819718770986328414209529204520327826496317235838713071344046232809999383129241810249977236090584582689688737934038823317823675661215641252321390825747337224704891506955913866867619106062372440207813825415198469172414752226241292975564304694440899322547251861193900397901437501123819347425066387849480819293185152211493569414661993817608164314077899404541461682516341122975985029804116805391793548177131658471507916088960436246714195749886409039102951320023248394000438338670613951770150448335238718768530549730568476074071445565713302219294563533410671789468829312509082148680085697749496022194129652700312153820637149250803562958034855909712167440685568715429614478568825440577696402402833003255955995282660926316974916960138986601281860267374642342108429408220121113166741583281270679681529044037574915014192085406838633676515571654366304081625537718035057705624230009810608922876938759736429591870670842028990017932619252719455888723007242870989790276524744863809668447764935346781752596601268029246523930236700810530486457839930646322805182827157995391186717614580963963088465741502245115157242073624956935202819576412348217079390658502010155347494073706703442611306974316399037350545668743248363622970566943891407405921424611078173929558113196590569560218181300106658829818114676265428791925656330166810069431961352960930931987562963640201914944780048131101566566908063887977227100170623180212821154256402097383902927910311993092901820240873651470168012569337213081007345490716107028557864957469111714109896921990110373240258699512450973466780306542660315801062236455472499886382412228204361770472831247450022098329517799434746380630269011650313292051326076292811196186897945883572597319036021401280338962357579649866038104990538725024955507845625844635491667646760365726192881974189277831485757259194439766872352124736670058018585459873793893466192132103952779138685053938869722584570484658182260448396903898496648605220306641005524563718712821360475012036289935640075174197308893836590024770558819735129554765245531498822407133977296711201909844293487177731834871942968383007851018385155657536180508036818965917888878990766195250470059389727259474314223472173346210474964115155869875659016717241069441314744430460890360703636558423470248195080481224163963183132284586337438988990080534759893640628519238602669195135367419204206508160400600166877882041862819824166267883149874895356110392487789515778368272069573325849680264432683253187780591382845983631373742820106633444854681187514156756536309403047239576360168175896013074494350223030134320948680976536878095732114549274033218469028218802446584299509459999379497267568073481080621177009895038751039580480523464495775882354989355298880556633199573174954577881703409653523757513065332964319821199860231552974713982543521171376384827814942843511806459352955966563722022165378500310992274277204573427883225235939381405741131827227574359684130716029420475003317668954770687631454289011500180393701667716439166804266408758034894238944286464942815644682157287544176191133348604486462495456092091465465433394859441609917377242853531517205007818085507076627877580610528976737519558430882389084620333970701622635333143803471979244665729364595567804585256526704138673260779589433816261543210968086551001315231059323099225238402815360189924169269579519217185588270684266148417462796033201623226845258354448793827246544121629147196999919669093091013726257824082918965611865933495192782363776477248746621363829613847032363657113304187315433851681784951863209891697261619192660889023825095869199506343023475895415594231665164055948557301093761341775352715152602199744358418870703396320647129439095218205544073823215655666039827309788126559533066969749388725747252474942292488090861057824776335650011397218480597423215382716728582510473293374219229040857025391748847049924715705326878146514340091277440556394277088009927127007923142182910401283797008590395726490972903001491752509491864351761243681578696313993636457214504731400607212144031164949840093692788237967421229370123090644361368518997879763168865200302378880485576826078630679715732729814783655363929398975322653571151982598084821589344923876479379322093898251816015974383494259067682143665963171129798632477132577977842055454742121552575335755816764737811928060341430551054569331536427430886823870157693760261425655718685357804498227390871912605297216592466411577991347132601398767208618468143176806897851471660804680859288476433378316296158731652339119119407441908670536178459215458808431710608826789606068227902649399394736920063988478053245288049960100605265745892731479341472420135917672192019273549480627735336352107071276692152466560260587080800027687572795767864405500766778971406479823869046312800279519704743590766734896703575183670760365906351623283428028950421736410318674395836365259586492018758893140798742991491624860082594032944310120523693053226583179263151444072091296839252309801698868626995427127920658168809037312657543362276221996293688620754624730278375954260408467456045654675024746523004385485660255607827899000373380136391514916141564594159664445317019305638210258843842895313781929910513342697574114727458669785924816611021500542877177471544848198606776364156034094676931609142646470658397762431088230424179210780400156705515410220274397278266149189691557091295425561349399965959739130120160562912646987241092530660803078563557620746705013828946913812824101022755919373533318405721884790888850692861486208076883856224450856220996592428934878915454909675584833581872327572422432243424981177080837515881764548894250250941394150265006907335591505373172746850339915231790788595702950315921727876825557033865814841509266312186923855750910812745635275421841610656172673198549670686753965069449775167865507501949318777937307232364040194671265732722742884320680791106772192509046320992863354420839292252605784975393745979027192516161088363625037805017725983614251020208183980484113141486105291117716839710885953250612077014499516721059443078797884465587722346412371325757024705734122459967456262730881226293278800254314401224057893997223202199039867059019535018709873355765247030776459925376049177262046355288685586406996298232414766684137534052280937047139037770851971656556048493143822429343794771086478641552510516822190297351378677293922358353966687649770499332523183294462659726912892313342224352571517893137439456346872182914663351361254558682873673378529306435032375406597747601894680604686260424003560405732048412507773759493337852835947285760993089054639300617482790347433559746606718391588079332273685313389663292712697998564056029221934446043456970976633123446894685599913024662994913993861090066209989602103827222242842381295813926037547482552139917101299357534954400083937944655485506497856990062273292959796734749067343153580413173554811045136694973928154079561553227763252536992608211854727716731743235365478903026953458148973313211811114883813583257898053679067120693559307565386726266882399855952255577380031501536804038189193275133417459568088279740695742693763482430988354120897150766103875514747123577030583311295597672391063830525839697994394279281176549815643848780529932480994755253616403122011110222063159044456454021368119918850909639428182308418341714460567941547211154666862969030778392957529014703392387414169637641374751620756963969633009767787424355832925572460783032663775108324301977231886061067956491881240139500523436228910352183834064164032929080344782977518984673880424808710789530549015268681133794966297758082889717623020158536189172560698142111277822949581548265453375618795168002774632200292076133495324006558065550809131894629243480121106954265537945402889469379121422007829560071404016907125340666894574378943536005769902330974101543735046103754993673184632899942073046919207873273877927426780878727900586823247498946122425066856691920284966110556681421504621687138894767979280769118621033304902672483583435792958608621368759069082616127125217210704476884188487440566572825983084832016212784263091640410720038336629473011513400563809988783367979000575555404470591340432396300555283075611797670613780069502107364121948970617303054393371189826972254863270004825401121659987552826335131862584130828322078942385534742477685136396925813475386645344269621418930460164794130685903877184390688587197749605896319490560990876948908888282082117751005786337370538071660146604461014408165135565223599568696270780034351249961338330551216583658367333251433023018827190038867420197245553317589086832838284176475106359600183952343559322094423931449551476152663755437289906490943052175218015672119500534767993121838894758614538331780136766502591817147535881175262639100151954775490927339666626114684446533090520544613221939891912082588354996163540660485664328564951838119270321985693124282734599641323494124407412994306553332272884947488186649024584407160147866595494437735496376395490848402742732330517698612569374444666710207029512088515315433868427757131317914002750076691557348974494370492980313644044450636656048863953796296021637815666022065252058208786221964788725561602856189769290767760034888031628602420159735330109062365987325045340567537630003465559211993716357362302691870899455558309803653863753377033733500962794369120405566942173233014464141445720658638920150361291792503462171650834678643962962428530634884509722554573365802878972232507953746914423051025944070462037240373202657368930403166868751850819947464820747627726676691391680537500703522054963549061779752162634299862340828328246116343342012395021917059500924061032547099653626606366681058885697978674839613812907658933434036327797638476990733019074563852384726920250471235663143331810992817442440480308539312570799679540745780619747236127181460952912314119410676658673418257192531495984438084683921648100578185587419697234039397198054422578864923371312855122745162985394201682629866035932220618862380900222349615419040734201678362874592623078631544812255287498724341737292299158550967425604689305050664698183988252394132848027866868930490288409310879401584177938702157831766973634608889165278389978002179369708164855088367022760487464004326007775825916004248257385194981532676172382961591092300524165069520579806521195701525650937492250773481865626143637604580814855144640244573822671898630429457895544522884056080500879194037316235711363596131155866513717946829114720491529994326124797326148347366967783441877298191623499633740309986143622469165066203360236710239664920469544507612262558307525318253943959785464579314744265305213957268141681351869351382750522173298034532228697803205571262416945227796189922475805290073114374303709359149433211164894076584348280119512055331105299416200625022497380597081478851303043348572248929848839213696267254846655002175693535900315325798122831170816016734354207583657369203090883926414847486374710455699770383217262041457729516685144609082162988561748520630903152674696302256452268493521265583533157260619959086103154192964023343944469133934434531705995778470299033165256081086083547934401971852283066709513381726470530532574850318909355419611331724581793684295428209010906234561636650718588037865334481163149493124819614129553066347712546725539278738841939423336521766073717140320459885117801968578318077743975539320993313347948528297862526264927650730952930781368582409439666621096205388036819048966147514762971518793585099506459483162574072909771053489255803111883975313980470097740759522268446378470028933340489343808905406865584617565829193302465667348951280080477536112792398938033464535245372930558934726675163846582819044458533659085661128132897515517212297023675495331188797932577785895206786015085087997589549465083155669184593354257307038151326449241109870426040352434351362600710524508797805216972328565709695624265637583744634824047369020451183034305537097269616130239191182328738312099419405968964180358239013469617249943093655332137802720709155502918618670012452045856926071367129261598802452552629337760765478826607684855979458347962028559768372650336356724958516871450228186406046376122156665185542098277063778551711647721833763654416206473193049592072292924229214053772160712540053176138292318030799660921932008728657372430458748714949106402828219296214205594246831786783794060829417207853613194816389773851127303086015827614925908281362112876651865350435595965720646835724792316086895869666512783813081768443183887187437994493060983546799902832871906922834959767933501915986618500003945092979754484236078227589123496156717714528656835542035794988969881058314931379953916028466558267775970439019889811747239968838555266793155708575230954506596050749252286902146817346590797898424920693637955001292616487314736941314750127977186109801612428325869981099772390746909080300213996955941266709761940501786943040007673038610331945518948090935932927608740242575032198471455443520464778190306365435362494841510859170539231405726525238514315434953464897773260224626725742226272754364350208061275392075582699081160881797578072631012027104557952931008075245374632121917622001264368258833854343286768953649584507189362634044865538438648007121877200403814963822592945660361681637130605555952941604022238318945890703684149956564094540391532309526520974413229384422041954975946897348656282410240376099419969589834719745270596424217784720236801514989968284857429371699835413356062728456194411411785383906253152132991684486217776478102506105870473557058706537065195454991188778038790579680967112997155008189865754490203788294358941703410404907768171756873422590880822035065653752917136353271043584002807726908379094530010478386350542168863408196426126742115023647077761558592758055289936557447329304574705915362110634791115885927088273134492606265983639091123899506191973045211712018438921992898503447008604939008028193407056195877396016258707274226439404735830494349757572189953671090602842791945563721244776986205583906752053913992832178562875157569672300630345812659995549025468242950350325296208903238634133461159107966258753708756994624499663608711090425981344964776836820004509885972982368248535830120045193632613159575058128048456436668814493135833173525689833985520387752710096574291677606340637134695998217134704936473520889887784372597906191939083254575056278507946329046251994498273423071375198018197296810527226700303918682175175781168050515006624188875992216835409246185432143787627302969469520335858282939195609125251567983153108348194710700436742117005686237342389900924963202656214357113025322323456491033770276967898070189465740097036635418884076122633644049844860353419929622388617776193601400697791458982361851306084555948156964933203896990099171150802836869470009314929436396017562804205741105455407190181439413151360105428204421925719969259932580527517293500535897526819376649551969665273930555229370863492601679803428498929641448959559251582976209148445817274354281291707782624580804239280564594466809906586697519099902065318944184694791317194490822932288853302411699116576232908396151277875567888954422400718764636100884793021919528195854954642255443751014485756288771038765379003668826870895232184943627186668398016696633242659328994421014711338997499408198194354653532175368028588593492843722977511700036117809471168256128182055446814557869072102520999470642463174508984650130256645428227491679677880215936424924772735070692113151491396249539906595900025033190177693898213234395742629499797616234820923972803794154973417013374609994910264788863138955324741954267050199204983982687267093562787557662175841478111432409881633480579604859680007021833932711788109607444622374245343643943954934025214951133934003616643400282896924793827316820117465398168932964893553513967433504093667437065953533168568935434511037781537998814064627528471159056026979411590297213905571435380825842510775648618895567511236435811920113264860259348334683856822883461213908776425181719397394953323575835631622941080679429283044328436651353217060421703181844288736896143617206018882552844728206588115400296340165030494408266127699567740576992706297849673300318490721911922088765557101084719600031315234332983481946525364545038817169476796755725209499136768942801577508814898193568549208564273122040159323372717974856227571487161072446803686599113106645585708100331672773883121018711471082905402371164458310553870909875724592383707154013308256429132053212907169070849348696564124079589086093909264820859920371422527233761798397354480819085272072935449755845477175427740292890766916861087303662306196930573998120040322427819096513461768455954577086018202022266956367693729291718026237256535874880780457775131201540978678513173065065608684081597413097380982293307978962758767529268060990030836178345207604962008893287778551082280055677471037461453632980308306975472936296330513060399218897530308356968133042669414690309237845203287784770970199648603601369708791392883219680444794589141970746041314281760169241725757314054514112537939736186900062487102581487034147279376640912451862266534591091085075178331372755378774913917911615857503887158328611732341939149274997333829542057188398526928004515939706379700872473599070428336473871075798028811377972386904972032029151697255576802561213431560548908661824944632525821246871649071002040212717476303741039140644731520195676362998514514383275693619885089707690189027483420415467299351522383935480260917538832589424865976441148944307932807021615194155667084439619447140093136256406795755852818531449185280555080944404101414526731631177531636774764623880849806880218721828101243329349560119862000022689832843553615422834221696606044887297302016996963297525935101920671132198230029965824051657154564950274972047477004781142969974720308988459328522948548870456183526116405817352878101183608142999046022016350125575028182645243276145236171017744495622794859527022446169340030514773063877559067599461114909549564209803273077954912448332571397564612471121678697568678548890716896462026803030724369361841837919008363028719612931514102121266312329565698524686391057680637016602063665734177687783712990365350894098074583225853284874528982154647737484372450882900782132203300856539159678221887536344487705889898653718461056258327245147471935964646923131864819867944731661041193646874212587767272055294316437121900505102323807666727248248223266395667570943072427771152863028737624902908795655917357030310028301228283313636815303572067843115103000626016301382077272675850550805694415135445019288529126655425580764788392589510186243440786247583745993003293261359770079782193632739368606878276671576964409647670860547891896626821496412026860858582669385414182319661300034256424218700146370977337121321544043518608862203003889672656820775504112196699836864873089151480442243476136841452689854818837284200307654292191104692875772402420873684884254646320460630530406962009344132151109332503359579960281246392763703428856371792480534358822911594511058965388446300362000583750770306997153043902538463385106871002187584239547406871976664006322816351996751939319468883304207297471386754591578481815733662664306396676361722384088999325394587004143899238127381876173596251118705519590625083596538195816579404649402766330945419031859953798935469174397442549455586411061877157906736870197917360352803280425095550733189267039412402135886708294899648933541184867460095850363501637691851601011769281157589538306417658838097496494715414841676729996678390307822031962485130461088596585909104886649758367495324935897727940500268200661678018489554720770081244236419416688554694346120928501741243831526569807758207966253653641309215919189396982588561552902224637751050793404435310323019563495922207326307956177232610695527280620907710047988292888120214791528992133758920317224186714146762745747371386940956814540541157194491608857255432225330301203659935220357074241213755388493528323477666617201368425866401296811981315101465932114851525012642376865454505025216049888339683801364544760440727135188304830089238527420438655452999917305111088758574122834745485697655846637415840865797806490811070670587246940753459835626704696970968107308187876598816304194809163408474987814646667699134349611661101961883005488081452567169750945881287527264283539759823676363135694303878739363892572114724414659142964046979320028657609543228490746796899723694385844992901983351464702946263883986420115031996908156680846042693133249875248994791237431524977078696828903104641484551457605316025029894779030454460743567943587864595862255118840516528782672359580654910617394603711912993317430670833184303791226972200328354489877734385220064776966979007001005030966316804668153945595195339412157788525175757814331962870330408449907826362404277993475714417113095354520089292190072453570222924297193265435285849783774350456319077209930379567575142733457572055178889398832544072719773881519160815853865384252916705213243358804995904743866975819592265185048845222488683009870660207526341628311313889409170034767620330087341473679751867540863852535849278498953234640711333756101431615741155474146504526505132696672020425777335094208894082496631481361977497234637258144765030221574128402615297225791067631690647874531475762708380930846528190178612577808223031302636208191678438185088017202621913621647706367655136575155112244637609120559175061899853743090077416631349139765977132662725930996120745468257596191330563763992901398084569216923434923974851285697489180973481389054273607356134011492278741262596425200096626012515242320391642978960136229901897394456071335503583808258699072812880343043830390645343071945767898281919260059059294616392157604608226255123198238872623789336755949749827102326487353532251439603534222547403032087893946612152171642363307677587535265368256268215916461503350626747957993996780999475746590374976748646325997322220906348332890362672486486340715016431950705855467517530371830070035388510640056807378930297713821309672388685898334501765076596087125976583539158045515065815092267971380220751557366466483810414960021213805390183102712581862160984348902921760781878585406426811426118199787639606791264948355292647660069929188987756925198479279348220012187022155904695552963757414901061242705557663443126125002306427084653798836169614783959200472204750757774281461140183063050319833322581235270674117055888451754216171626316196902699388143788804082627335875629370152931969482375239093365880567133055121890955871358198136077368810624695331772613866553025319166656756508103867802667620588344942565441873224432036842225804259631062628981575683698537294593544188548855079516134106160036182443838214331363889889549213540675821886696990823715531258344689295651796750646727101365123920785099135530189458487995019449786805684201192033202486186718580679715419323203564235634455252148493299213876211814179087201687350118780230571033266445145031394572083027233353161199762423382582197195526065331792582741514441235180388524608490917508599785315963475482947576010407378892420653140664746159793052421636008860876263479919998599862615765324653852907256553786554774700546898383486055720216174802931656192592649663222733260578962296569053342516054123890397303552307827085780461233206882289444980307063226843127737773103043242729283120439671890630988884377556730995201937365706941937738520702206023515419178674959713864665572140505437901668687214247076843303577282959515944457526549564864178085918789015012124297384893651643672030421645064982423298005579940752949419135632728077485191995808362705517286835665203854224158227561046481212685021219252189342058071568089256830452306186609300821015284932281437847916382259049598143664368094753215492209196810835798601127410605365662697343137602004745300338561425650971508449200103983217241088903562389339104428599942655290540627032413958821985481620315655301687318950188448561430615215405319009120138336664883437241914461710781693783233430477682747849275316040699514966648340282517532197901540740807943401204953455940509385165459629498517687168739456906576509971673580226793879556250841076676991458473913456521612630130961603328056463513765764091928139452071587097043957757865827240519219504886165963067144976782119666413647026577788345541312442342667547358158795789290201613919771916728969372619136033718057630895629833787792879566418074858338999336186861285430402999294744757469316106689676348659957869647598885489974410878407392744871689980096881141038866351168560717069748409100001142691841403956727766425542475431055146721306274163518577868297454292410315223550994824799989599972115872588722328047303758807090802607839144953645086775626070051320405389974550586043365650360175698771157711605356542739583361436235193297585697031057175475981323854994887584139248855376718117752170374771787682568519152625172588501116060267301560759319548346337022225437172918350287697314448608190438604187968190921983098140627263205077888222892458547543022813081736627678520273415034473570387580352084392296822311854246297826850533911314229293248907595484078630357871867574323528562011788201220277534520566768033184977246269107248767244070478152914782727783541910947533932266469568709904301196473477990293742636595018992661561781480181755193093258733392174741000120720816531342888264268228995335715488204623634887513343999572373640049572969796321759554795232454571253148471260805316730733055431802998855597657785534013642543468178569283519569323674504070653415087623775974487691030363943096016942147221743962580351158975891178116042058230038850443266708323412498427274904323132486823624954577778157384708421243330488755870639062469898961957276124777250225556468368043234101087985751974934653685119142347449707581171059863208961988332952017617248855130431878960706500621221300784026457375252093894391449852957403018925992707660962349867634307758983819216491607496222183205630899338376705691147747092389467395370839597856522726276268263690295983776264416774014571532103819273095310912792173161635498087404635829659831734850924123955653636116601940474585555107240709454080967940094627832498941376566796715549111723052041328582127688427424130246081826240555440704305263691009898892720669197159297374918305557057663930594813793807932734519079285134009554245839261030539703526842365951088753727996270529266282648262491887347339347816375124357110659264448544254989851853520516097184283354246868291586337941823950368533298306049766929891913166282456113312504401688715060049821455774637337531623644135598801194429077992310485917623668970584989030838936406064586052872974867164357816894103330763798368495285152298707684913216800669136685342050626619408268379853850463636597390544263858927726728035532577507877749673078657914316357093033430696612054903409659322306661873814300544733232621431033233610524533157051202147833424514787531803630003372371513897930934884669150581741710240332379192789605766822081084891561310894698397087941958753004895453335398962956061602809523615974448873378030586465985333396872971253908637133930656107993654719272926342138930472723862826773015719061899704832962689089336172594180004722969197165987269384300637020430668872146483001431033508434228857312976532064447376966014708311580880669689062319275803929140998485173429776371000755264526297491801471502730606056268259707789607471760069402019318921445268607083964959624564763387623962764564952947199737076571246849230618042027556243657076171496686228289700608124993345684463144322025593761004569783395495066565609862881917612190402442740158956767025613509701719784196808193532810568875315811169681443870602048715991473531095940688282300356795484160387478904808095760266279018856457592757388688218010177549196703489643301083315817397831204149442187907571924699020309984952881523187657093103178322207436839273950896192623510599261092642737425718516264143853048831479801128338353570657357470889129761338366341502315936384483130005397505696794129327494455276938467392562403408021983879947940947775828754110166437050835287634038279658245267257226372258546118454946704883550259080040213275884820690731256796960085921335611400402733089042548740066866044012239392071019861752057906902773253292948625391560061274107823230380447837796951203765941839953496179298658799821059293179775918075737296143690631024336495725024553509569624450589379825439899575948846868104435355032358227799337189769435508231981259299490925741720362733248070762195718021879795456381650941094993693781970595959251876581732061394976188957828123827500404575462166345146858659184538656143078770875986394735423951207864947735176408402835014370232372096953959182100426181884495742963475680974235507550870438164294244024082109329306529972283354896066213536299058463922917806937519682333862711107219261162287220253411551794539095674677133209310221289445245117182019792553123979942126693617701041026264928455339074700888149279698146006441032036540052843475165146903337518565008651285509082337181540010351297521919270984994723203868025648410303015205845295447193214440155578043646460991718338620513104164967003386288862260591140453719801954900435700102040924656769070753634699180384019593419978018613564182262483320771862911307029995678392237974364100925600068370369530137458614393842002114551204281062164327128181752910779819497294145957161656439363437689040182913981688317924943744915314830988292961788237078060035669991442826998953946825366057533183597309961488525800341787864745593580843864153954713284689071169351193051213974292472631164097276319793952626761683745245553179713939001817673038247151401729633012915683703519373278444147159658467804586333300740651695176789850830425409132515032705523579796271864193547787887816786602507339141685336763999831055024320343892753120437880550587861301251714939959981267122717693103847914152648111930261920146408221331272019877075256588351197673782125959800860685144373721993283420510192915468126818941847830252595500056967167252123470630945222171396500997315487634015168310997540547330583835639446723486081902036577695648226919846540152428023774902827204219065068339851810727960268838566486829181945108672327879692335310187825643873988810140075778611815199478062283471156368306662189035614708639512649899406503209234354116205403915977874510617901921340817945388121090383519273438056531754482377106624982848388297992196305880264840301567222342221158579225478581682145990429944119391116585640021571443612748288402423206707870329139292273422213967890772116019882086631660131159698359720171517059302883362662804712936009970193967565959373223971455074275752009732634649822191633335464460836835232306098787045458424392909681532475618701834839971050795468864944089128646146482071542549276570474745796819794464284462639537173735716005018919862587612140648040556084186007326845859523235528733757110440477835678532662864048219511328400558893929907762048857723808068443666623967786396388214838159402042694054279044540984829620228641405236835111077629048402789701269851856508914654808354061153071299068031530070571265051727836320123694186221992415278489327472839965645326555739525634106576526015751167516590033871375046929624088620217998148232736485866728114142649740613880097483326218113521887751338155596037661798164424600574548221777942344036240820513824913607660543359830045647855736629330677846784273583701904841504314884138377897447500704757261413442101585127246199747367269520548013659151074140604972255882174582406605581889185714810564879410377655625812827172653882996146812778773796001714075789239004402114798728215928911444525762650923547927905251788866404673188867001307319575456567855279671956020598170866572649250187300234126130039348795770367073241369799051416284728327803868779838353399510253858538152099303830149289999356432151235862925697007730547692417066163681963002631301271699137946299199038727760422853449177092358727154655442108862557032314377373094030170206570040704576230468737835752302305963719216757346417768890905748475663437348842584622442063847952121710924760849562204287157836776630761569645622226707256044408523285739378528137276391640168322753349997526736958280709031665838393819320477873535899940457851124945621800137646718323875558873623438113488724490479543060740242309026789770179375983486961970901276830630242585389028272376737878464956141253594405925245925269678789836883910002601145676679876417045098864164018974502600726069219563734645532094434529458716524529628860225496940638957550723835291813106689926904459223750766940741841344917560774012173898383772035662270984538030437366923046085971420821356568234148930888663545057959367144145543393489205215001122239458642072643156796572836765289894393613999569599693535077370804894494242596425789477307110666854529294652479876902775201150618641144832442034741445098419201751213236979966961271982847048224637078903327211913082819443696964162909671887911219559453455178408432773130688438096915504781098090302905186721645687827541093437933301545668951165210025291375943882325464274347509069688023384932852093442186265280289732132236768489013320082097984184048525492025659600443257099678077297508111994920350539737447847611184538349972375815790178353742920611952722837293040131156605061624917548134865949065606896453635901405740518276379448970486978365921955447300302131806312087537216103347524857372282661970974060679863399871004078900090265050193611384550188746485396834907021855241742725551251995093890783058055934070462482699540127690730125949743656594235676586598052612892447692411675721140471851653041993167752249832398213819076822517288042102818708269525262187016777412921953597819251347421905237758732513530826149360866740449161154409982123123407724687917211391150883951453399275111461514717216562228084542756838055403229698028116362506885867367334115930247889373756737747418259181321081224805695983847501849130100612274847970190163984976808757114544805101599052353961194298715450209196942962112732040224397098337090631418372183137363089390954742334653764672739319884373872012419456968459214588268949786779698889587308385085552228030078792456963943374266314587938701790965068079110228052285389397016048448669453033414164668584566600732985266498225310206221085941425319509474197737893639141080341435874839387974808593201025858616455934170094999235763908116419809028457940480787973995622558922018605181995992023212388549539381372126711856679150185298248810480598077766891018640511701715988048585112999722087436951240862852544647334735042894028433555812166198541895124655251569871569161267941934593235070211457659337515018902162555311494794642523478817849659683400836837527998688315144297562463854165025377655979840705585289752767079786963672374363246051579693241967409919248582995836631716157769589041265463694518907955125477721745926070434697220835009638716234344038701951947668497844481391228383393601358117304144642942207768249201623681753799896671693607318269931977344692523306856527171284535092469064722586070437079768628159988409126577920997781615339712233474626463284699364910423425935338318437942097051421155508618672989200479596996041110765187036485107127872318718747708482355940791568951481598489283012681138628063258399048130107111277813490297247853438460083752998560542831193040478723666951271606193918452271331160121346082778825683355214629718425627154637112811269371934910540315642083388319752126334271662198425083796998184540416315142124335161199159656741559673723267813759689480388311307810972259134270994503916470158995137501727623710549813667734080498999241357486724400417824749132284172644229878339988039391125014177721301912614953205680195564931639187829024004921985092723597095215097409089657914390511178823435893177455861837988445841547418618638456079009339413605558647457185015465163653528702670948372709940463456438450361013843182162984999050230662336336041306476212215259071278862827451391700841891154131988835094155276112434295375517488670589965070717651488941726108227430185452164199648763038962986781057161168492809656944565808125002959217485047830310783861978828833359662278806265670305575092563763142549304051585076813019664043982538921737105984083102098140288537124354363830773762928153160967251722263382532666443307349440813050081969928939507052188187125331064848487641681959327578680238995970002342312409681966170697810271014546393232589942620514075505350779987901834418682955953128933219965945928835172774372669485732463493077897018934646408830105365503950384700542329710763855713262219268473451984378739115419809977987505130855732216846262890065943345464237518131224913467049299704112552606125301287936882206305200360657352580513818715464370328478752224766458814092600619968420327076595911860297160999199732450622354356337577375153256585779177632945324033364113758699658250691510684408444454552481600043553653432222387064743803452924169796944382655105763397090161354576236114472713170718780032455060222171880589953535410473734867444848111732536586450006267841406249813769124806307220234147918176509659294184166315955902907023222966641554176896904001508563082902922718590173454978640020944944434156299026811385776025012396418109419501859246271148010461476173636117367613131227552804116487978109058852553394909779879419856894392981408221671516827750898788094987072520574693289406936844889518618854525662567349875003125494553218732266713237465466315967525386534456322198216584303214819564509018531608547079572828015164007482609800219052734895211742101901421379709832982593217959116171151270041366088351508495459935453495687212209966416078995548930358872944621950927188184484831710570563544342120890641642639643767312320564841897388288277126348092131582611033101272318953941482135648092949423129745966484535408973380875632602748020212734155431608610293617939081283498894138353279297144704425628851566665901237719687729761987494871186336590545536298312234468287072958109331069561853979198553508961964276459588012122842494311286118372455016886393009580885518961893441549943348064649813551324685196541419279300284080150724358468109944358293724168748736560965587010678807422743710440735076939441094767553713483897141832276110214031572324604240191737618272594296672631980040425913705902960695327651140778389518923598319239278805084247337054864698429557961259073075706167721321252404375915168542353772070450003976655859649393028420482648426220786449696276935917014721501761821090054532945367275855131396984758183485794333070758003783591619139677389888569220022673076559681586604998768831276347406420129521164771938297680916266798578472298664196960833845114769890089519461369210045201961121369860679442519340961971549950748345504858554367618653833974641538297105098089535901537328128958591278799466469164687421687807551248893541078739352077785737013070213014876865766276089901485302845647100082083278720616369308612387448247752051383670973298149110953579008351338626627282928249697297765026997819393517062792495649163881625438560539081587266999120426676166062450513097087394185733769285347666292590718046059874966748092682414283597936968103413272691856304248623112628429407837167183541588907103505113823944936635286622008131031880306073030582878008110732276346835465154024023240026297985811630562274909986328464434742994440971254215491251161668090441435341534689850068800479320290886316817068007986052149427685457433462261860814749371397271657495400684021946807505679578341149582879591282241139170112216737478784199000807016882844328660824024798156001433995315672038512566102598454676030217912662516833104146558370213241705094954910332210397835394000894175881469360861757018711806512031365371144160883342218264794647265962829385317461180767958847092759655619684933417571221062385047176665853339784566717622712525328843399418760337021570940369339475882106782566913314368193681007740906587351069976634819624932173065513556318041503106185514338574094784620242366615604751932331331393223446609228402610220095038598368602457079035754557988986203008119165840636452381066727048738616789911033981807414872141303552143034826939908996057127321270363112597477604301451940999869821415214879480804682241523532767343469876547006842199679690120224528471094505355936548801600023259099685459430184488136333044323106192696182435455884185503312675119302439457508900655827791544353318616637134931201680717366003225768657747074540264091259216879941899385629603032497663803453594617091261821665744742084319743281113082410873077503156307667055891699428872662728538408042892063377017755145166589032680728009627935510403944147504112483496848081814823982614992802043597392145602145632019006347656974226630631489496910586531678849156174403640346289999669115314390319228014677826942769742740465576266674759418836826427018851110386301153996268301470977938492097564791627991572707025847489278176495092445107701565868626995127469306001526423079474938423975465176698853557155551151151406207848392620728041000248604845077488470327800615730335456392584378564782542236446788396441202925108475002923148262474911983445817886929373065448234578206250504773942004513451474419146965138797152749958128373548453239445890338617934431382824211213220077465072730063545235005164063387190676000894774427195435202756907612872677588712906792542120327591314550910873456244758909676096417931239799081052937432014285043741114001512420744992407137119926304546348138649027668177312989413812970501174452267389575114009088632095641196139740070960051691684841742640045563784032898458100018315382696996000873609958996215757766646290149100383767451306448282138088442907557686474503879127839041553729820960367448432733318482201700179646562706803401732090382534672593618748813005986948886291596438991101356766325286306090009020930117270248019030943926694870962510827454087897230727829115821869186161694271787130165357543868907039956239061372013491118349452219001211345071909690898219504561343177967697170975841734181908403198288133699696893879315690142303465999134514142304304610096945504615957932489353387013678470977924935669881352616596527237420789079755596331852734273099441218271240168737973536062190641423895443078613973071385551817650651817935186915346870812934768792059014078246490736098236852875306273909344239171287678570268048258181337735417013680289230897661996885489721237567980385760455338106841791269931326067076446494821671721930150493452314780545152954354984605012199799384581623859285444522347513749185888374795154901888412700882786834518422669696093455258730907943955625095250485771351831412725125327621812837915853975462238370784951471241054178654664349310021549615748226546161621461992386222683879761442290466008435777520493918110976923865287204853331993402549274942978525789547641037340948043427070223333406426775390777679845347741444131196825761530489070499233466261558693761037722062521492831796653766835979090245472790072167258259868014024415729171311776060329371588027355681596165293303844644249923943314846109982546338959192453569637045845048031755138655493589054555828001053472853816067712981806410352972065158131645727054369728736030727563435407220325683172380137015000099708229622997080910245777735735194118932428437336756927961590371770383991613703099915912227194117830910169450985770275665148303573677338363823053049407643436131368288652179942687573440920314878822947000119370290569775923499945438039062315728405066955696573632832664768153169634995152685450993406360541162965123779712630119666035570633706759798050648809890926246460659701254597631483294853369527040952246977736957214313814003844794085670561175983301265401153239332164671064957261470827071010983060968561819637296342088851447782130111839405196661344000113375049695047483632255160319957605355214426352720431610904029257194850372870340174063224579853562857032931504600878955866016249131974078168008521626660277329621106697837044291997015079001079480839270820809420955382796184451020350339828514038879514624758885957868825949331438914774522680739128020276644618015727897283574192900492844615521591200499621744587496062017875958966144846469319281405212829460140883069245150571411948448660069876195001465715913642612077302924219063109938396804319175531122714585258267738021550003586851147143049859584242050956097237928960807565468559670519349433996599085806288765166310518726600115108492436120238389927562541696117646854693355015251411127931428655355228779489211627072542907502756921963143454397437771388087232556629745691695218130620356001989489640416925953867918298826898450876235089402436736906989691084598217129238326850881819473837576256694734297823261138197220206880092298610019222745401974089571412717410588356520340027808655036136293395342403129491917518643111270923405267025674469562791492463415659450487724856424831811192519659423928190074804511972104266991763054676171242222139450658810228742981611520302384551820381024731961364798301936190792868902995741222696839641143598680045852256359174509937657193422310978713233707701647344423225097224653898702583887057878678494049984415552613682776038984719288541745446783382764797541710421760158765622694830459991191918668451293936858933006056254259496116564141714534992143807849542192342340387352340736473672156604092919651353822672864657100916659980580310634728519882523834374348738895864388321845440135872734225044125155438889128092650768885840753307853227394721213648875136434489453964829136830987404305747440281920374940152298938923021758603315896647332756603322256198461941000178461836340580691288954569809391645424958130915579705538378757539251486985581574060093050032184526244513230484199157414410470948941137665015780415603736577922847513918597043630687733564010963873366159250000971391661996093187652229520351449236352560938557994547422723437369618777486564489705237308083163185390390426268475928381660865898852484860158063151185632558989182376252646318173941269266401913891767223073192149061115041270590565842873946106564407507898643931021482247151779109874649301660351705458916099716524372406925624447873831480202519445348938719159384573390264471005726759615469805604820671531872779213908815066281446352626882240583168642914575392222610749545702191126523561740110885061257106764462631990173889870069798924406510797301559611149283754166972178702869265770201213951887395933557415168025930143149907876283224732037875601541036164489484942933239336391403172136532855553259978433560560405619575648075706034364208869828609232002203784052953051829885753896716364566135186952676724262214139125240144654860657528329038664707731814913218707372846161184466537223830418127777579568411795674006261417758088605949207600901136678215586998857766289722622078321798390383283707766341723652154199052643648230693722082115890589579513120053914552095325330030809131089927046089223148429687049673255112579939763560923411461996326403884980781001402333177647441192556510303787758706026039115686435472270208927212631336104679873608945311350410298910297151547026978281118270363676463869468940558973608457713180621584982918326604107403483102340154959677377798521891843564907666633063070959764356167118041234378018424668689359545252024901497330377672727158127772160760410721628935353673892054238149506445792448115720141405421484372662413437639314564150781941051726855137739272340255326273747852619941608404246015630869382470975650198033067531918117802399729247268185427598752053763291972848496732281837598824301642522264047998609787656429433366097600048715094180417060636174350079912550671966365671966218409455125192582746077059061385630507863065326836617195160027054774652334798441332442648168798676437101129546040901563704416011628578662533742034729432446013012742420861713474059824017738281471422267311223394100273939276915367713217845383981718583010199112717689621656305913964737799955257452482227735339152504417853837550253289098419350189526517328615691532016907880984227528514726859175637354330961995536243774520810346626046290008421758667200180652409908969547860794045202447800586105682400872918748477958594332144962927262688426365782492484463942412202948295723086416022328258585824557318641027104446750338114358755834321280334680487587115964436173477435833061662371618765300046020073918438675917469118017111579018335819539026573277943011546929332049132055676044251345209388613479389619316244795637749781985657040307748588940919908307464448497213322594806084363669227706226547264490171994539982904342263276372676162276421827326688428686153297506066677844939192255398944517473557580520122754355604739289352155292912349763974796866744382731137303749338436188932237239778947170877888171352184016229091337043054924629041059912210905331311139858524594250797898237451190271162129396841724524556267248884197361549669007651936340300832291559645456382687252662812501866278436215550382691733530353075108570391282710845762540733808784346444108233454644154270480188340897365165361610853238942700637305263534578217058856379439775024757627065278055305616737933196977898105290201221088496931941171141555123339654791244628126056578667705020368906744245471491471157144295432690103650477963990337090755760752371792911395119221209097218620654198124882210510047654657000756294679689152882852131502728034256143245846060904874019875680801860064285623488977264897413190124539639993855139713317831924248268275957357534448756309197219641027149124812895075822572355320873857958826587074021998866922452782235258689812205451306772810228808088809314689975037894195762332780848441285272863777984234973370486856263563718986164105292856005239292233277990029514294030728051949473241917088908466755909933731173942341615421165031748121649137920062469536238837891000573512763648474314752488366195359955014529594986002962159796304114734511387074752013666474487406410712269121762886014112163298133416938159685839984843589644631170105686236503158582583811440670463535424345155063797421158690432783174988445413907704371541698818525297423021373941181131061252300554663336014513698699016746623214987717076262533314355769794230812074103770397934125598287078246400332157373585743307283486141392957812161649212839787929945793891254662467537757698640197918114532621076857311760693348790218742113379166045927292535068639805417801670342246063570912106020914908095321993997708708861152927343241852660074698957640833807905710570358889673459356291598809045237261080327999568932952650788974568676108177156058148475633451270748393011456199897844532312089725847866222128976369063324922565315924756741923335872601238443729182521568661835694309589329453031892409099014487178719400595473666702608721752390724893389895754558115069805704746961700024571432949852250974924958829105162607064719285941238596084162649374183514060446897511121449875657422771105462777447094465641743627049166871962832106624215557630801890226363165001647837635256037628083162243301533170326023309330564651663793701358732651458906158978914872121348083067980175708833823787240371362376376890719545792757976589879467431518194656136155048739755847674197357328985556473063392720470734185670284834716664414380698521639388272008100536654690657954349410063003022022469358911274571534767722301571453793433603241595591540691094656696185542412750414674967401100027209909353530968528682617363036583248773656106328720726506402538759287801199193536410771870297152819010345418278500481653227927958939174460532699447162977958743183353390672721171464069766533911480409721865134416517900724941069972792109096280214131668196278562668344376173655995626113121003576918858536218295293259796475878697737459517458772379726675850896418701646239253958078397176842823097920070626694209712134462964123564440150559487929490501617969550720369421641642779988676376794100449099656007801867965830737174328861664728735055960431438809830559829204128577822155971465123680101817713199474154480469394269890199944689053960584412126862720496792895530449238132312168352552799197581741243662495362268585114179264802469983122169692839873689211171090800871595103013479998276947130258493074946198734967470426800807887090018617545378416554563854048532406161403916934142975843429450515699481771707407954217107360161766492240343553159130310679092098375154828762855730341410028972501653207326183309576276670515759295525376202125922942271812178334075104452962773495875100152732693052617278362535427941015622168267003039471756677607282715001621275709403695485872591378282525476779798300513441657211917356054642496639150434895195812710024662474592462892479581752877932087646762501041199478574561399784460596214064693160482521391287492941266513967558990886569508824947731168274836376839396459295151230411320863881789893228709625030562525482362518487187993091280488494246412120823733020562923636813824927755280974555131455886942966728170457320108187555583337520278497159004541167546995436152288536861554158338824625080823692139080130995365688718583477213711722661046551272870720405223769988298462098347864279090939561921044739636358100160226926691155607251075081411395278567016311390836190465522430739474237103605865432243954853491625317247856125906202084224445818824024674126375170721262906509554571130881743326336117243782613639958475408768912275894540323368156626683851197339984136227037523029888618371911187248185475147748447406052074959420641589362922240896950281944422935608220986922021310446598119598092556663869002103206303824705940119325106748609671019340928112439770514122335086885619932024095150609145611964814197180006060296494839463475493809948878215648715613866610400040240283494116141702679553118787331519395221954811580379640459315643759265615435182912685790769350483404056948825124285302081937272422365588673657629890312829619451129701648499878220197279710124347648404516540609691386698895724488554583799376360202358227556625390850091813138245248892898761089601921496990307834044644159971765703361530630677562063470250759165212592570546732213901028024984780143619336698100420466241670095420125965176161575734942123427703147206294441223095107454156271866910997278017436351533373159874238075298365660504029624273654382917699706763143948231203583546169054773028120678988830675380675822724653031415682491505243313734902246770003280498007534221322567970812663354028607035137001440728249963867939696871051903320434172158290211198173747922533343337145278154198476229816743344920279702899752026125583273571990935441282972758232383039758550046132687921196547285363895311677267304026992402668903914258671751149508568405901342995779407575450937246511865745053236471340263710579421851524080214046455154969475592729221531518632168227402037370068813418093229822726734138472110218981896103888517683394089454435314607439257929325042667047174139557855107902276940212666335225531139705050969998410047281462299981655354237766764439485464502656020662179471196410694015751393764661570886265861699992053491122356663514112073566234869343652868614917356244168430708079601125283337169890656573928582744537052551607073904818263020082393447489153494224253919588285420814448892743241079010487469151516977246943035329230590306955608367514054517253816835813359450294843135360793350299622972540532949259096191576337169405954434028816652351170231002784774611372158510946519124572589740205692833220807232968051969063498673296763510297864927975442209498515759566014323897415022894162426465998499644556031261799807008998358853330153538506523892661864365950273404855576784896630810362502774088562821281803958578352040796003640842143267243911641522127256421462003238537257381175873519711648864287781686549630184412178332995048774620571497021395154943953544482709926450466867762766125329426443933888236386484979257823843836283448848771004600186279117057129266368656811638449292130651632834842847006839359207613944537167551722752918736207696931733411526591168479180897726070210839622512202691125731155708264496269068871390228026253572490932088010579244750445340250165784396300343882854716689210795911589394398803285264750158094670465848085173429746896919422161021380374832458228553025639271031737085821115240551402080386483553682785860592985676468930971858181357449595978543745656119036709238030760718211312992759963376107560532716666741081525023435681665212697677224702131708447698440442578904105341443577242607030658377481944207763314015884406983169700773016591345133510230662128103634771948552099509267336653284227775713850679778885660916459441814172189424639797872063067025610944253641341150309785126289608154450041055322062449329477447536573136518021913702632106221089671972303945389793526131307183132870557708499249449094983649372898465552520574608800208930189563376913999759850388854313291776129284030125139111448221324018951946865625124392432586553222874265490475900567532552090819525485774277246797429740512918126556014557262680282041027837063757930417990346422955487265098721953202462016106114419252333919202954953002298414481295489584858801116581758819340607142279655853463155888201558557623805408570593859943257105440223872500184085374567195371250847410065165840217748140172584528493429484622611806833942412182260985090531389752263083325524252489047126367907707739498582247254642799060579102499389316175313020433800681573467443383665055071644026519732934938614743200209514492369918722104947186206220153106352137130792024239114121847484770585023342202661536888555692694255143998421706795493874734929518209218623854726444068729178868875436082430061806771081800325757064435780737049759235044785140520137617884439047471340755186812505405580078094893997675110787700572788096081572251561992838817681296666892030035107388616449920029845756262733580740196409436543177700018151598730383415761227277513676473387235484235758745589941164955785877954537641449924559998381618284841641091797367519080019341268563757978056805915835656225936954051494463548514515511759078079787787792862974358554149087841199944137547946141748602005145708873883161396695387618281129933909632690230115296704101563782453581765944796768075381523562494091975861031240974839711664659643402821823356803150787000714484860403947015132594791047509867868528425497571343117654952973289198064437047160067552744553416436756047706818610813277498223993624184054165570203678856586024830938821998699804663649266978578850470468942397975807855075889743224862028452550013904301432293885095595973543786953793285299531799645811869418567441237272756965106020068141628160050368089093641456190685727855367214706801508310167200687377439014952522494190950436311278729267718435484867759346729004610912484793507385988578123714242562151722681788467351449852509719080580877328006596326080301509643400143684949965957642452988154961765942655742711863388167681000803126249995961549510225088420779085688557561115313672796311010363542339224493742898690269710706546971111401439329778379184482702461424522821208049970932609135943070016104965759929507552085929265578839799684658530519087173680841625434287196594218129743212387821228928770999348343174508769871517608308418735651462831222909566079210649360611590101903242043592119903545297521938366564309894686626087088774734609168117764418014528747899280312221906635147756621105056847540466287171401022840472062504882102967281547290478581258439532810721075402300337908314753091362512813375471185801017222660038798049787414619242090278471418144369171130538025406057069039992727907500016577458150434823005395967770664990776435280891325797170688413415349265617056270867365600894667843089268125762015997609966970677168274958759507271756839948085659533400827724273016530335818011319089438013150681647191699390414306721935148457554565671629799852843278187742980900176954832560772424594567988544897157681040989677122039657141234513658009714174729710658374359625513803556010179295395037606462986065466833992060936406114914707739039119212403885282723312399438431575131783584664238319066686963176084581158640375358656439745754943977160522369766805646572290804862612579693519022403999541993349016352185806325736652802319430758336068002659161142471801478813343091357667560959489519772412762684334723648898562135660334973147104989392940950071102765390955135588570544548803799740709476367125043193016931698367554142633121772258639008623771143747571781968462472759006426175037940696396423415385268618633374811983170113607667309398617083458518796782218549878872888980438367909059970105600700082379139610979800028416093803313936859844043230738310883969768520135251557268479240310988511099599953932959043692896471009554883343946493261797063955562007651550638477463685231751108418383471757173639782119111679618106344180627838077431745667799289422119061122566474274859702406766267164089978837913894757115691954945285254019112867234973146294966863451567037305766590619599335557248184506053543234014056324456113305496462153417173846558747405730632444130601912218703449266127490930335533347499544713609796083701476184177131906397284370083738840257303393390774924606075839835147907370662713031666891415383803411689474495540369120624716984353978314709722912261312140359357853132304672666380924369786530334849924411344321844482612699519656511832036833090952989769230716384778463093195534640482905805531963799192218073240819804502604828549044947939750953639337729055472825413930041737487688942794628992771659448248270734322501361870991012290734202350517220623089673210557792153563614144723477294084259002215907135423772097378309741964058924461883197910353942288092081546773781695803852563616157615380594746446827528010626613523004255644399985775433992742344282130860847506490124466559534366417031569537802310103687770573467539052490743862340026941564300062690824770530413175960390730592300351802445990606930444298940762606411208938200601201808965113051727288447792379908962418545694314098519040239538224584103812750028263376105308680587379232373537834151083981714027102687034686712775201899219886838522921436369198307012060577126984819950263706424936908874423551502780165664015924131298498169191601584821192491209585982887141705511703945470962156044333582266137708066562152499808146205149178491359461808071402537606495982558182359775546435358506708075155022360898422432873003784188673132766383401087716423174901797134034651762513307851248861782854522483607977756609296853437328832185013692415434352293999346737042545967128092824319216427188783230911718983418723519836023015747431326235473999584314532344656655438579309389064787370451117523117755539949172687587720910330662472232576615997733265008919427782606777154214360837215725529779414114398736000224508552058935610893328551799758491594647192298201012508697558526524328406375375326601939088447369750859624952513208413312400070500535822091833216994732876534284531352490639677308639598040605007128051381957883687361925545761526951934090205418488351006626187972627225419796548892636428735370612321435972861511704835780295349816651656688539818169193190723404295954696761216236545407326248928119428046146558275547055144018301381648537524812996406661947766539592964818542985631335609408445436800997070734359892957163411181775209984630283451144969650515774526219638784630937225591338460958350208200621969183910416207291635311755996489648019315524133085068435742809419313543976401620598676914156995815538696107907117476686468201974821164447137350429253665011392687597469525902576981738603290448296264267694639695136676427107427780247281106329899620033641798299213240882009623712059623283208241418166321091121060713320689622725305095141616277466277369353168822795902795945509009698581483272557715277382530514207437024286573348593760080421206594240877594590401211237820040527137004730181085500716723171839242839283624204746875160050337650073273411249866306343802970203342380493262045749809205596574204441495335622692931936637976200460396656617065299118165059263203750864475402384450433468793097896975366333615158546627759431162383153102730638872239813588071744506859783570018636729952774005603607737248447604705665993878975522774212581860775187304661472806710399735755355269160761589719340725039835816104311961196246095572009456948405745284810473439220634957658471695705948010162960624961985251479282643406902935959516445241116733271222010929249950153711456965084015355665363922050650124997826885109214948339297141939897425681776620422492279451466487298618307608278580298543802015570908752301936642038468984477519011890645301585345314730014632282304498270828380551156480236006778746605852755365746582349949587330799265449330394391002158414621765662714373813109784111792830341463712526983727871711525287776497801044460328871336507715859020032949105107347896986960117692114144752087016422793594578507364704780744120489101066451679715046320995024453560224340788705742235786725172086611728951611138447793880224357270851100766868866419106417571926512725912236438685415623411413265320528122545637226258290409227889561423179903762849098448907548069263199572425389104758258319784750107504586169966798939882065989203681757684602175787119229077757088756245458115045931057649572006262298354191444104889621392000913133083907511854471455482274658413281710630156733988550829802255148881264459789453808412931843806103926335426464741464172749872578408749298519027467479741804252646716490103790258653163333841377302455765438039820128167570676544508561671115923081092040609242322783439649087297152479963007295630417635936344198000625425133496231795790801497704764204007948090785045381665159642788740950765511294485776634954140184317994294464294260516546397352586389050669426634002871883639630497741142710548490693781459203975551118781109773496512790713700264471063245555742350443977803943467520781076109237103062200663067588368281031924423781130434399965723188628535055079642066494643423533145091834226300659787614939659540613525408577532500140434866875623126048736157937374725297004496149343462344977149857922318924134959249838948778675615548904995140419705149762697393571812305238550368392554103219789002745203062389091563384417943492299603323968966004081052815802480841298248905702401881652951657408887292057495800826069378528255741670370499792420849110608217308370943127542044243003295886271360629363956070564173781722618305595864119254138393454215271546431773978451154852296516595118257523466110575380972587588679660515922315469486040887506049615223714829007086570124192840210283302278227571351368724072176753869816496590278817192487541860804167729019273103878020087278391997293180996889152225645462792082346681580063605996301913926473061877388077416742397093026241895017353031990161460127368778294988361134617613913336096237100741972202607613004226997181397592624651465382672105748393306061710302518739836034422398276295582334159241616279409021568708038694011364946526535356068753054700290921750375616484762391155896006312523879008765841948622117925255442065870962420471833369997525510546647754475003620506980318869336990468049032928488181192527005206784958288332063845752422037080220969974467770879465868751532312800245499880368848229591134304275861642844253970348274561628727028120875739929091799785836590572085179316357547872727249158253623035842170715444287183093324061337522638786362302102941757315748142981966119885731667342205178592060102458884806038256823277119220245477890945565820338147556439754003177500271795893592574379182668537409964881123454059090407851885529137791845982063814522164117939646158336934920873900856160587064210606609137562104199806014249958834411744567721115043493367445754394863428259510351781388272511891966730755262655404333731078984216493007111806994296449796623831610506742776654762392154278848633064786638382098012188351726142554383651935695826920492087733506873328733452744815538111702054535195405910016315958530281652439778210787556015783801844251286818836881676634143074153397055425391824657516591208903914843528004765669708776918927602585100911075047026903766972750771392107236912192999612199521579585920558044193681219139059168447599056183341176492052095500900054857098569360377233930233262296871738674193964353611845276768616018331456558926437523163999510542505951505892083621520281597936155722888517027306357276495566649549250785647498120847484580461720168761560019380841350902914308320423083270231069986159533928556899204266207915233592223668732436885180704162424799725457839316125336593112504745163184406308739025551186979025669556995107215070362775258311002699250360641731199761169128207433216156189774577430967298722161507339994637263258315485952142155019955637770947508991488499128812334024906495085519742770947283566780408410756692569811369248765999798889027729203546140625109235911858368030180104084585067544739084953818733113526355116367119540450418421129629568099832646553788921593671250001983791080752966758699310782916828090945672195425631105176933785970444148122451842415789227064391550831538933622437666184180816545256593452363723545653428536981568379772052722194271738898368119288014108412233041727804538284906429484900150233632032458275572071294351644363349135180294598308986644314483265993834930929677111101323467714467749357224215454168692985371120790273791806506030910634560100099389554458714580402569333496384556254951313790514618789534446454240230053212537528177732343099243381174559678573072572456598003326829701776164823318659278580445626290147994104311822214468951265701324347562402712403358266768993705979306852594296143558289577692993768881111369271459050497587793596649997958732828610729175742986474103351337481814426081355670391423047087397332079937450114151970520507521058369104711439755672190174137942267308274633101810261004399100381914079153770219135557654169997888619984941257324203951001815053014767618248236245230672593963505227377211255972408751683072221011879792041077544019476566692418579721219542548815162156108784087353476270271686712686929230488082875245796078233241608390687457799741914587016912941283323073109621621623490628318711911073733068394990760280116387222932703201697401433931041876564731711571798229044354462899842583429684028456822503609792270049491639523490231944815694184182696019702819116213810832386325245627138140015675146391419195429420383878226100478203393827360059549251875178821076928832647222485751251467895518137702581600040883172437999234376361510954123679150131433936950444572997931180550057672188796679517316125331165981386242851451693604871482890710963429281980516336247406334168017709010940517566628772455838647735728641983351843025726698215568014799252031009151527864958567485878341576353968155064502649064303442183901054014094778312276723050091509367188042679911641548061145457944612317340950254475221784016915923971732495476981603491329851423497438306703677907987891290190762995116366619295033151558690132286594141777965691054933643669180937657882579905981817807168612653569970116100593125969811123336827690560932176234459132713656436634598761358767674073254012699476109098371686262488133002853903529805785003542924233066568919546916536539070303230344862850937378494723817137592160857809582866342718589820599421709682818079606820217089366291519991753826522574261146174651681557664068343982587057735358986812090032745438200186531734656196477295923282177292917747333753055512886105792747631710751158802648285971002580006887507657806306122787987923939604821182034459515542592588408572283611900634824152004919906045163765680793890858231436396583256101226664530220558205581138005923027366443538092713126525176305150361932900306302985647559414717110379912725670419655943986862499769703094130654008288205026724363915615461677066168561527626860063938883001147676391338065089585340198178601101058788478025287750207118655635796945291357636716749065620361128342742491022908942975072482308616687828657016624395516777627569725106207959128385482744045631227512629043082177550785648694023107029690942317472151202161819071696008161422535769194731509782485037282455003321454692508605410044172576220376902884981396290465459304643978538585966018385421810128542395699430532116784315081318014550381709285500379123184701012063004906717960016717059206450783223989876109436266384605597289937825497284451643532904226354072284262149358275701882382573057839742957176203470854879696902371264331137172314983747494217460912960256781274780861156303748188954716820478612770364132897347857711867406355607321139636725600377328763965354190230205512917551482443617215143952046543238887265593869075207973196705229894329317259733709355245404622828579641300256699248739993582348467441054539632940137295223643022513844081311566177531124007938320298139989646919227739166183999194739629666315872197437830579405566219662704479064778049447629870702744252497911158182425185264516892760919357931176513941754111117080892896552973102166636619531255085073596230383881308384296008713862889556457035840950069555316557095286564651482446629479193137401304651764617116512226082660733856324202048210641394124534247872655359352430890252382453920809198397082788446228053928450780473385041244370486576761878113059109439020066233235023599289500426822197898403818302663547252661525746286564993353147298054820143160869543093651188352815995674104715107840756442310511640883992314708079488896686947440367820228345572082083251885256238680786466065239667879751332272676729805012435129531864424920436388268270297287810400053530384202808299555067072781387769453849853941116359208024780357944748199912176149272115136405393195253641058713884313211125425937871126532534151124049706236560388084291910121247586886230338571889518471522052867211064470261918729104769678872198357318868471281009592169167866789382489155203187799257630748179774422106450628606700052293448223634308471830576723935753977085888238112074898944677283480398481017315231740278858469826348786121590273481022500462045926698608579480352246284879801392998259207056803306853506774501162759190689279395687485119355387000094189190798947851766598158162711371809952231026108881504152465993514241590122835746968023848965984281707302023380444524468455687938393019755900633765577015131655538149983730428270842955630248145605195155609544484732425062324300295140499623974513721053941398519559981373947733135284526443356154465116818713922439693699101018504166810909686860999760392447064956237399223108107984064890024557509299534261571894024706314016678009118653141061076323051261971183837871364685507743792568792821831889872453991256248929184867954848806460680523409423442290555725929368742061695348524504814872265074814673488887984205939679778694935792285010233731479152082425352942976219567345473638446772049221099784978887480328383537174241419378777770424500165650510466886004967260857465094425540857537246162965208750874688771582229998758254155761630339123906289598945205678967501465174363727522087571309688311899215211503614608050782508864931351069254313162817303765264885424728896178367904168686666834868231783215946222260120277783128665521751687415464505508170889221634703296105055193803908864716992042345342724345550381820735574408689830374581196165853725950175584366873497322723944299376641871698440390685017308984468107846455729029224315427803319752040907740511926617357242311408383942320596497413659220194092130408437933924249637201700905049131815207818732049929908315812483544184939546693628882328177418261677130414687741789820564510770885917737667577703003897518531837657264672608707131257194342888239688926813910959790381467550084425778255505282449866269988428758454768117175757061022317835641226018901287450048243346323547100629243388734171694854113553494594161929297783715002527115567039470000286155196535182387122723250341346032617499213584565040436501729863462695969073810191126872397234906961831125889014000350930289357238955137832499623805175309370227393696757271766270051309797365137610868770282938919689241135722077996860417408107233278109070789262582664637502463324265468688900476087495158225410520583863832754831631471035736053010881105727318770839652250981818585406617669876275287002677584345329815435629221669983815958179339877690605995833187155198608845713182553030909192942122215122774838780248625482163499028185662006197113591810258522844078880706910841588399184688951017644714373745783215774407048132402565459102470118118892031244568411682668890086350409042767364955332946503203791804757010097756970309157395045026689607082655600834743776476340680832679523365780829787814490927463900220950195897748023030590722414146508750382295293860686839582523954447697334994076260800727791021723298561640091630067463992766830142741086262593776816874588039624971731252975940131144220694928206194138562361505169897356818881378789632625437736366696935374215123681041724164273653988259987910596563232881327220060415702999568738888253639008128461517948609441552014144396487179694086751658253337767925867859388720524249837920652821317145762238738494892209736031132961232069458798842993888009736187899076947874203443692844345120569037176470863754540363517064564245066057805768323393804637850628167424768321833354854967680566632532691930141677809269692317276919849072419202436331085744893538630758265610961431468391100185686065221872147983308111587798642390707041936515947548888723130058409870997160212305980990919390832742857173845993168224795625368390798645141067720827456932587978461409264717702835303292200950580743744654562473156231786631452638431983617582167860960285780562764116746733627820553454780238923028492374680494236996992829816729092349280240451831518052071968232530212312576861393991402163870462336152343335994615364695438975110024267648598106003596536427811045756782804012139413468900451524166884441555219544143037091885299969212756008930712319239710957334298528002914502309848858244199134464959154941175427315883238260914121291997862061004403462815860540512660862790571157290052491709837711686561084907168007998634602569432560095490717310607959516003230029880401133165660380704499603567261847223084416129256018343450934251627518783782816401628562625627670701795964828451342289878020307134709755268447218451064520697952252482742487921240679131045222386088717751548264883274104935866227493822984561501695767787290756654879077090611476880183036086137275623212176478669483226798069498440348391603404213216739208802530138270472568254164023256226234951253374137693125027236720619502171553547829372719321838095588509072747139687539909412312985197484279981551853900705921757521201492663578633621243828768577818699126311810129370034982672303880617170167685187041603472285433305443572925238642750729213973752250773584034221064653850878570940031415816302546725088297375270081497837103518539503181767236524276661578725915626275595342249658089866316661294759204563350454877144630646302958866746465247176430609681842367445175580881671540403868376667406824427295151576797195128598287713881913300135468776454305581160617789714004137391395727931291949134959247599377223258570611429628881660784427244762262159340834844883040172522633596457196718665349468898496668478766367861303078413339434308651284439597075900518104183153085985064532611566852427692674408997456445289156680031078996766350705911639571854718680413481211098279155615150987243453318364232418077140271332253670224081939935104088771804950751961076746896265660784553308414926839283756541972154877037761221402339209676730497855028019190437976580844763650597955942225446770444244511433730004449609053962262179053886312919506249803368021388821623630098599970828819004508073525601956371554882354446726529500406969001383042798624325548543239030455817744516492695152569109638430169087526064512028968460093485538528367604420609990918869491714628549170717129121892213200748677883188915426313156962427203946895203429031017156404676176815715749350082022938144627547696774305797378728382562863170752725275361498046985165636056949523355462245784889562391318893520933442347901268217720964675059383113630118492037963001772906575820336912571048422028415698961567290402727507747388888164765265138230892699695169884841140144078714112148916622917743503928767896117626022549132231352017822078141676516364601217423997293316643077133094456873780734974869837584352539008250131376311783922381817373642747967413368188484632191874100009147516454706829441318086331697947698938632527468633531821087423496439151960317595382774833928759824439579914183490426413425239532458773991459064852217984153464238689517808425452019649167596605762421203784078161851451223270588737494474641325323526659086860554173286442383068318656565829526575276429950540990418281887046712530586472537695101814202635471588464233247818824573891297314501978764056225457803849374742896708316917319917805158851650559858444860880053266816215195248211248016492299965257072959078687404495818953971936626353967107885338161901680304037961084246118687853446522757061967830651397682393628618213637326626728427312639423112390032410613367626211984548355253260785928217132330492245603945231011279633322892639976859459816441846254213324030667437347608510013917781418649919375894272797338495770725493917962176565806683840062235987283716716511902751480971604056998804325034825263928241589581017058702394665953111564942076129355087708304581326954117035840800685706729650007632481498461455654651563938348983098669575936743650274048394039114155556983800554081342293576081965962283779825099981380678193765571836737210409946176055714607894470857657268733360389199518396934728523336539670218885417185515727214035111168451758903932990850213547050629393580296848726536321459250091383812220621616513322055643777494566613858718190720844670095429656339653936678704782480987467375894207620186513217751800254523818803837241694113486935645225367187802557960956060354952959451015945058223788183704775139758458667730953088338888972418188518196406203956324305147997108023852725649323844897839036593071478311157443196225448134289255678822681940673938040574801466886712041489806477784772671397320090717343248253068872507534987910197471382058092968344392898482736566635769288361926221950943416277813107447495535917647710445154281967413885201020531713022982877110460875814987033703766342441780260817624839023805434561615142977181552821443558477821786856467281969527012246996268634585265525576063334797843212618301036769541540872325832691642828536821297519174911868409311036785101812200269147482683201361386934997151242663100303686357724627308661229265827706939452663878361092888287064147392719850397067299613863011025221216269918330200765946002146523863996529736414459516711184220610284905761271747482698617480074177860516459116378803725511544656703827208491304278466042680872745478975648811057543633565429079632028966245434672213657871630045485364879009524703957737724364690539009515781162593166620121811357639846930019749216055866161376276175843040704704469391680347616361390584406761382371500066955290057197725547457909001427995958253332686404295378705232925932853435345562231583950866339088096134918584229672692451213812407772766623860059111295601957295791573817788970011993493553006158401333089958102306582623321146004469625452645260104566448627819571652113342178700268048321547315423660270906966761154614971804309764849671793103976100883790746282263864245988634457882240327073462736817790992432694883137605802936426565185307159532252567171852329381228963343597665351117033595096373927484958609217466810532701236551385673125606936406975295614730015984880198822410382471873565189675404818935570175857930779493181545416653188778680787387874027686226714087972036942724331737807501160654508177476548668904414728463620384210772038472148974750923584434026179344793871530900995158940150571967665903593768921399184792068827859691899322748527953234617253326479559492577071612126046505162939228775237223461039011238120620130846924585401957557523635157001770581149738183899295217142617618062621558322024072655594759453114155495351823627779691443880887963804545143334581249742879458143326983642201838217422623152655864056928650550563902907532320065609029617194785546464440745300499690432820547966824250190201387529819579227400306226016830888925251554819966725048855244612606391691420568798671925262339981509755544585411127671169346228484444389786759422335381019996178705239947835067816902741895173723944677875294184492534868917317178678705478519686574056964502461571052754518399147079451647967953971961492913489348197991984373411804296458033167363846470455167812668772521736477224623737571478309210656587434710646689881260673699280729526021842352357030570792075905642381795217129856193476276461819735157360985980679051064287518558157557132215903575187642234089131283092746917650047906821061978566606645717116131040845698747705910944559621175242122817876033527915712621165648178545975416473050292976797767916266034615474128897489705875204754176956957535663048906169300683613100485954605212902180996364895694202132036365942903707972218844120034485794932595196188513734422099906985117366032336143559702161455469881196901092238738987772892255829514022376665838383236993449330339125182399367249532157546273137331914176253262386446632886823209701154331320077995549880647962400756770788832344219196738402757658069184140101783654995770862594034371916284104951834673990015918213933602532231260901466306386288811860763074020588866914969685166973416532831575366716438495243094015448408812664979463578168414942166294374772881453547712200800509304433620270613588650610818031783600191286900955712677014902869292841440578975875607776833983354245551495521496386520827044952392149465260387057894602131029383425142216807026151950620406409085836344283289237164108943057176867470605863524141185723459591367303519008145717219959119751818879999829479144478037699978055847174881613322717458694565162341936588318791579083716846652851222182079568711105562857911168519556871696099319803264160375847126298729211608666203413452953935770660713416544453716622150239312044333627318172030732392481203541995631383097568303748602380834900308680380398896978989048004353018636156218760813766841462223199864267511263757610003243830987655740586232646945984960425237637564879145599391936079066501459000591380175833246910192541071608682607642633996801644837837720703846621064033842397187556056304266345745883597607134365123461223147289746943138482123144787514490680267816058520771566712946118235973048795443801846280261562670404011128305849752224381190122265282121866848473929008353914836161087357367711882241461305059443274139240098313610059572789518474011602477062246521037320062013024875534104868037856065657555554453430001475855819518995960866153542630003845690680937325880361433028344131595760443233810508395039127937348611454796117253340864551186794647731596506433167171535831495581494000275663058482120023758708604344632905243272579396922835321853323114236899779039828220135602431770434632852865027443392484270677639444222293412870724032437821364158302896697223574689475988886164934894640612476331793736716408814576536780574641723868716312498338440213778812315709837635173819635883958410755585207301315725140010007445775529254370148316424131428328959139171697676186432089992869361682657446340467147288975673064681507712906972652937165911510531648043602204523790755511124305682807314379439562239061413446838869275381425174520846119858099243667644923350250435400573337893241927920212772805719545192504078536090668964802805919994613524237793998996136227921997460567479698757480348725753172011777710616312187770117351572555635569704321820765584265458593618135840319234939039274569276922651010516863297591957085008982102537750630185783888437272308624343847044238123488354847756542854893087104629762937613871938062462591758074275579810849224079990230964268584141999263000119270400897136110134934393324976084913426599691842357421881422819414758948138377646619118509223325524593878007565931974277870879034107937436455814854368052400701805880224772575468588289122132831625267060695994244437949686068181128124291843035620880442304085947627215758777609517116063483999861077891113922003530077550518626683971366534262589456678865836089792190713714386569705070265548766892327288849942114986751481215687897344872431895345147474243783879844724354349647245510697558575005237099590464919054504230248713484148704773751173565314371248996883272141850709971785934932331346927580651846469390259557606220102413760879568791696397507638904112768535964076087149833029960084728903628277195914515238903829314018694682131925177668789222599273535243456720168075678862838730687747469050947656988326725893547469486659147305114976913598573326842014828794062328861659137062752885823191149539276411338271412959056085921921348072347445250227325341267812483323816748461640519008929832157999324518210504331586370022450883559875264705030151018206428133942156515049097762806206648504823589044046069638637710013863691936007504163270509925492028360525513766306547109576660302365803893929968993710537518057753094753170028832256247187302622664966529408207270862158403764152309846442320552610081396412657061836744592660469633096613001274443083525752067318089387864816565940019081706770968753952699574220248607664168367947678144367747662201307169452882969321767140701811945319987623747149928809340714832731891510485018246426620019580080142666382498481485923543017996818454698739878568278201212813337937306613901200512733681525061410537562454867366430714357581528523249777397689899035272701748342858153247504120155091351568904817531742683171937848732137722156306796447876537895119522862050379664184785356803882604450638029470457464403038894586079957711257688040533738946042459558183041267070455661435475899043991585468476776064200358734953836859370663281473066347190471389431640470102694107988734863811114794992874969889914155980111224584911210245811830835089506014010518670401538200410840632224651045253715475598874873055151311623684304041294760866812968735249566791730034803960434149762798227231252002600706384184721396563460429888835488363751871383691554936700068272189807218420352019635494200874388020906725766342081207453758942206799446209904767716644966292470495556696527915500917143841657754585471087256588113190279768019175084240120723329332829635944102840369496262407835411081297975559218784698169864706316283457628623682945658969679900928856164154091543852682269771339257091003448951416611203538030618908367339780602275431416619256974836743181551029191677201241454088156015843017292568884018281720244658545063350018769738084263931246777622361370581115536143401467523273533835017058143745447975758462661705266853444805284783029088508061071921592280770606461284778659797485002495803567769552670533773588210859218999665239369152986333303508155997438214629020226202694634993380951579145194577652647838944773825611419409719515932518545408580601982170970417696615746268194376039851541030567293303606985229969419034000039963102112327838532251389105059813380969591500128225692676330583149204373041581022267274038911652628482871126694056923763190808485376354187146568051282453301197873771223447114214688577575200200646299759827787608065523071002991251270724283838333988675450011652932553324471013936059389049826449746134847183697084682384168580297938390127545433092966832831148752461104907180501229586225559438141562046673616296707360174241646656658870428713739157520578051504638419646149396002385708648881764401766635278916687721008429869890245216848433604460083347906559208802533911380824471798050026087857158147899463483703414773177032575081222551645703601419196305433863119790629126553887259309190163155604279725933012710768185858916930335417045080257125635106202551236927909756017451989164554653383895744086716983579923544680048658470259822644758205250723600116562973195132117247647251611114041598562094056480035477692795324456200364892980002259698396351034070506911866160174250264568075769924096254191429718137042215700763510837255993571048934518602569375282818031427826879966053204931238487800682834700662162347083804278076624663051526791294573827102020673702905303208201752635720833429704693576146223220654393829299709497737778079599595068705860587973516613854746738368678163793343310054238561070237029452455708023644091718853980160630395528852582064869181004077626067208569305064793767340449478439266992413816470365103788774130717551602416508298821459396032495842194131528866392420904544014004440318889454773691220876294729045912809136319672769200045189806368450962155864050768906121537426900780325510854551257978220215925139675482767925093225383174005980543068598209128820305740814535073358244436280514692691096568620224049240104758114067581280286602520340635233977485603374886537830173720792644093630618636400061254521986082162436194645680845589842833175194536562661263302845600890472289085549523310629845221417879435854412185087963101127518412080653794062423186891699918704446090544492910596605045033423600306024367483299784684358216487816876016420743365229586999514619539806789440212908395367392866365345031752753280944404029215753645573266227039997984476717937382222862413799473009315348106823019520288422232862734230728788549324740106979798016798670855629862465128309420085795638410438150842177403698098523153259188311736364119853308029864191753452714869333545236354986087066069132446789992327684162637286810984938647868432505806353418558187893141728766899997656205623609296663774328395945595233022475710879208614676596375729185688038892214086211274133787157560693165054354483216725538086312462495243188149700596096689566617619793856190716286887061920020531931361988744749117870810898286328154239206545219513527768349807735795024887832665308402616180747138407892627980355875045041499468726774647873708800457129816242891326845429883368478187420039212653191525696043190536462599888081229885529811559872332397454536590101448966150542229804767868358678950181293987867226345881343547334858013563054647788136624424098047604873541631069910645462641375972207104402465968643930939159512896349796596135713824039176200881009140907873646765812943308910743425763114609054717808996912068247465020061351598033835711801071216633522196272028468097988404591644843238226824988585132754520831672074288026492369227086029614371214343268087126875900337618776177708400082354219040457008365490121528434184634333811892225231304643596060445516169591145941569981407451442199508787486101324013703759677860268848102706434814493582314553298409310313609776045391536782895496216417038150316602303599780498105816814824314508634525064375682644260442467979950699763359155452081990309647328816393000671999664994550373495847376473369175994271939774871888307444057206389637008208328824791663376439318873998558253211186528066279150699857034249914255735663899426149579927679328130645607674043019883893670306839523338604198147081872298152097241198486720545775317463178377825353892541188812627132722728033780590343417058604867061629290723761739660973646262241997382788803508390213463773756365124406042087567916781177215883356362802177249072542063310703312056278269185093983031776872665976873393406703406380306398978824592240010179037121126513520061671103893669083771235046248494398642312207408941091928848668684183650782288097554279652410810515910381819147367858058118735787109911925976919901316428268539169393202472244011871124792013404862087611955283481771739080143935865721664229674414711120137002195697823844689084999762579637793283103145247387883459458326609905134364713637937729404531561375557297832748970865524520220955505843045918866992199238308681365731392651954402224826988275816648090246334208991247089483934235115131882435076326545173638048582062596157790347285502172522296484607607103472034512410858358777030798641182379850370351137345950248645988239686595234183111026269519747734409867386053582127572289060576929194322247841798924371392172051069608213914300069436169556421638786819607152293373355467137658232966881345124946299052326927555723246844952112089356136076803471492171572488669388285661122010508879485107461712852065275646849782743644975204378606317111492081240184195212288028157563110398140135158645883927513531090915527929894659282878733801887541338582211937449300234535901727406647864908186054481827749268052941246006820905277054615879920235611290497952330722903237451869328915547580471981500420108479160527341321866000029374080245141198392871247133131962083501803876411904312029451002580058499083098422786499384191939025164725967065270972665444168311615984233865112890144039153122088887953750657909127260985308440549927275315610339830579680139266906591462672878618232850992294195972569731598715269560112237144445928880044385191071555718977325123058455276504653381234990844264371690296950918209136162328172355692233419379459197840314711455370492298893533539089892781687139713929098396202114923852351422314926708066308627277806709005424587623712384666484006492653763632074713089466744063396357579874429633527857851367598277102928734581593919692620962163392196203243032783476429125882840371122864252757755047964591322346415974594488959525251040998063667531450386769216603389661772600287535069200341078254153181766143441980531174177857706855075771451651836312620361272357629279359641257139107178626709118498005629636553199268249098269834857177653543830560080038143453064881885776848396623021025472547637439093028624077167195164420701060386074055799504516640372267390883767284481277168887175787180251163746888093346659308539941981534688464989650271710116402900276726376263532904620432828809321593148021404809971633370512534533185409812380068515744176987491058404555068972571263543950594659117772093788740649738570792926648883390457097984177705664060613382288580122673226447223481031957535726038569302375575198107467997323051598563129671838163378553421981357274038120970345097187094127184384552806893373563562671282876205005425183594126534228872902156469521080468240612668600589696873209647279397109868052367935766691051043833607008929532931312455950475434727742249338733442504863036804084929950652563959780754610008783751138428137054968032901482435459690070944172849980353897433823061472161492587762751357828610574571668700608488897575621096621242404864947623844720251404567198051313035159344233510718605977852445129039004025915836147206276684383003533652349823638615209326434596478571903907690365354215139217936641310913301960361795722293490249719988911096105327200021147070241972655632849106422647073858516371729871523812464516037662360240087135033261927955133200333235049154071084565710630454961784773882247786174190616531157414020553171776450424220629563428264045411467893310353003977034794527536403202324049024786152916135717692180916939943870595965922511136419857479728774670730591351017401498815145202034934268050576520907265131703844021405619400353328196957038206141630714758633434421181177004937042481947647970497646377273780338570223174448058012531272489257483345655798667497738478080681974170877933605392543901720288560238530978920338251980992967085194754646887893661820795843961121067429217921377193319597469677886731159881987152050097053259997528982826007205805801030610068820019967077926085150380605214108839036696535883443531668021134681212945510853131611276328683875563480935732939174065711532230332451246354972874771766871452745179382828998814765170219739520008746676426909992244029483078284021894516826410109484497654097264096303904306418653745053112989272192208788069223928242632393320232929050816887543662633370961615477304764284000511973400061692832884133853839850695478690398193170146061021431802428958652678252226770928315067087416634884272458355865630845811718379388963387705405727936648094630171778394439568384841090351786637912241784968898224828961405132270316637962748668749108778899344631999761831099592229011234747408956041688313375870603441304030925518285845645848616496844572052206538729009846205144723378822208454687642528200859052601424320928894117633035331925225279071482048345309305167016447904586908579439326260655838483604869902666453955153156576121811980510507417703934531157073501118849176903905424042344516311153883051619755541931051520283133965818317296673272145360656028901642758396499502533341268441594489498819205865909505484463039115481202733232977708794429106951844973483845808206448697969104341142275796920790075841325527090715679313629807157143038256087316929339753236536504495530521719450703191324590998677095193143154514118015656169937958129742071813236940659589322351200294692061216226461914990922706717992371848517280746038215461673362884223190175135484013227453714956668181053924115928718189908100729511213060177909375017824715908789709971295409372694918159702134431739361436183655761493017777658386974916952621286848589238622489813086249838646910909103176741070137825795163829989540941443513435189542048912427374880017998826220708085312287010095757426391766281198079873221321862636994102296152317531935749016083734696846268157154267538540312256446649289662858669444956703486037298531888570507487032293765843715442031147252530512323411414460617014418550261091376290650427852881386615450422967127530993872393837445682262108111559547457248826644098061278077945670047665787425542467431561180086279205004674492852974881844010423321677879756895692080792156146581308533061441401866361086812957037802693653800409272547898765854711412672761758949283325767864682924134701480625327429136710809228955843523504332176683433792673283074898255680100881908871201185322811035881341501590057767902361792018085933077011259635712238991972000425966405228207320659117172928068826534767483420255419936377978708223636533072055089979286295922684737138108610952317858356753560058819701314038534979497952194359576792265087793117339761325379168918102296101333580027380171241984415671262729241605820255027622168611682796472582147114541749911768640605984227934426658309064268406906950339575270848553289753608943748542622764989256896362461289082831903897102210695585338671834452558823724299619922602912558041857210266755413215298546072967689739000571224451982867594798692728420366140876574429402266988062418895201267757911992741050274360225959247733363527544705824190026041175642757217391157350966951904971198285616706792315785444028541641649648341457598639582315535712463574542499695051887261817142515814391608544133337559790350147446909934146205664016634305823108506999768067752269760794785278717026440072758574074479689177920837853549238388621332781502286728021998300872507119843692558416966006510358953719377809841328799992804406716711212251878586582410512037069712217982818624296915276021248591820446655132024143732496330346185197426995282944790888207735660990163041451391092859474247925747832690571796131862568524332659873749825363729732046995816787965932487875480575285773750572668615226588022525033518126730032225037636266502949104548910040900743074204505082465552309638526207112358026659161381163319241252478198962441307706565619422955005146751795348707897072578476997912238665342628639854263913093483318071340875774731354445533442106471983894581113074210708680852583829114496880622914855393417834019957268023086123342988970241596687906880205726047081949237114957989705220647196741508309273135924007388189495260202852123495252117967582849899423608526584208021990181599794251592757101963427680303667930010999922469548648314324080620297754625106394060958714019906523014438739753160522541289848989033115917770469061691612098804373606798499325929266120807553439327447830818939444820411895409587447694516050017854343510904099209762481954758065881896493076621624834878134533377705081247577281883518757260666956693386431420280356598942297851249015387069621356819860833714840449472933798449946315935620616623313827245823834843019683735746449547415249198307871952792679173096664367379831226458405455531203643693012388818176592266654522436582077838833727847517110179248440400122737110941327337933197422820467174716853503786242774905637252239436828167292968152044481081596195093681753703438671575375721736376840947463844958141915328037570194601467345169355245399531422819523868202145740739802609210814163448256401953688511054798477660920524393289773079391899427584510763002212703685725833291525823917024640704623923053270630607012204973320949095733922999863036527551266182689412344987998881193785396877349519172515064636506659142602285098190621257288700363491377608664463878096350006490672081177542889544706247128263818542001084627840205106151194513011392508959106686540865695369268601901912616982376296732494817395526505539396495766872342716779354004181798878251037178491441771805416257224097527785696046742351566298176832131900012295600331983260272655377708675678524598216723346667269871950439332561887920378642341197833707306883927848106188343367038734146745229503904272826452303767818100312976500603705952866350616613290078249168934991010405168636991661806731305064418588187019373002745558904720254302836806286456970095337194392529894782235591341047930847659710996011123752601603229863433260794460673434474695162757294723258497593999764522604428371141982325590028418278531190852465179967269183267080885479880955340932694771764968214487803850532297966625679830158934104306703055715323243470610969876589205602042177924323268490789990469888467810209966295144868280407231761973207889727953862019259259298921460529026475031886814327739204243424220242457067553075700692255761745831535873516340636562935748394576659435885391265077763749550602473141742316615046340100723049509509056726115793775328441107353263654191899463113296935872734808147427458850156989522899737373954811645765430893956324570457848532652189127998254458530130651411366306335848696103784193254423148237409745133055978416124048682475012018896354350500793225208204198197676315649783398631425605587647662832250034409964812537792472194232416046496334883181930235369699108032053428949494740040661576065571948976208726282797386633145221795033128429679753371261595275568713994980627694713887960633661439381678440202944341541824660581369636828544271119135985090073268611210117924805584390552093097811490625257942356573272809652501818931180563250141365244203755664752615827774900836002864286309659062641810521790573575382612023589017801962315676754941334998210721077817602628820651002987945275633476275473549450179267840198725719782303527567489549550367444120764819656890289632525228283645521987714447802493051425084521146047304198398182421086700547244617205925685856570533838717824090588945922181833257306049523897881034853979130261396429437346487123717936013694375890873109395430533171834137812823286488226213301135272183956070593744860985666008114070810610941646060066555915579081923045075704855939410597961985388190634733867047540129056287681816667901186563732482269285994904732147904972358050415305530978686950046501281027524609560662067451543825920398696606813919197378658758925396045967493646939852178787429189956661101770237091092995899349734483594178055112350424730221972640445475375193259202140572161990560779796175884879406027096885269129388843750898210549069252245688617572311872943987915275603870881441550208135762831151910662395377656724801667073329151293516356068023277455142946725211410770709889520043411082110808850580729265700094385743597714438697238023764217415907826062380088251843521923821629204894628861829392318727036433647237142534356015203536854440346341282342385351771658279392030094143867786102783999810055127899431051401961937394935092748017922179584557921778218174752153046144209569834595975490640746308060671586905470989116633132446316880278520361222993173803187425843329272740275569380009706386518069380793121953977152929677065585660303907083327721909164466101977650282538954855757832268088439572904760066298134665305114153364159496682466991414590949733495706168507091573243460352453893267552794772155753936489356099134029875787901633246679944820068723366126261192715894711895410509481356787308164548841523504929021225395937548714738268983265222076713657045836132741573103675986899390621616462599710514359048586993209969252635758366395789902489452248368417144161852655907003315105442183786476807391692126144739261426559643713736361716234042561385326553449423013590715246554931347183215597319110437330518857259662260870212653370698150059850927970747423487945265853421817910660205975326771318995704568578548890402224399276253090672710179218247091160179978953881408030289659222027008419103433011528577460759409213216329112530188344716247166718094699385860902896789553681230802895347692720355408455591693263219572282402957941154296175365604574489331006329971867969779987189299193936726214374876872632764659946883639156539777869911222470232987320872078887100780398579224350723853984462486361140716986343198194614587432992736668841949532508329479512039078133793328167105183841618008281868140119614582557777095574001179476268791113177197975237023267285642559027609133032658341325326263600413315555065519570581870380000982872130732740193473804118107604227330426943999623291892689287168827171446030726462514909971525254880764751007215329728659028197022624684745649451512975298552347387416195580693728255583995684193608865213598961684384116073390151841049551426044144265711788213056796886195764669815349916294549533761868242685337591384402061190709464614563850246929896747637131816191468725115160735389738757613268911264821033704393575632037612841608668047831689392387179802558806571168224237974089957262411931749871576667351081188625686932223892803529146303809357236479540741148521578483154706897496691132229626143413857142047560111071522875994743308921384472073066601734584561013807905656946604608492148279603305971877645879720794818484468303503629954905004403413831611506984082958365602474649041950783780006446679676458826457886635594840510198729574271112749866487965070547853266793959104280933031451910305842581781323950439499480061401966198130466685046446315767529019194540687839762148332463044305463895234248288379093479771543698558006769425840945041477433004180399111399986836929026723684422451504962603715453588350106823164181204106162601488737358220897071253215478794903393094203235464978668478190311900110619689292512622868376470729011491379240435814266877632098766910882240316704778676499858411800345020375693165941781669051393533687469432343926941130187970346602166661157174305655177635920227497671161526602753416959743616217209991052191361527429198409115937597110132149844708404562855751707343907099057010545294030806443793940195938465029863537383096824001216875376060955091916754683240854983901282638641490890300630844147210628767234932309950320946292509181067793046009805746786080773644015154249580620859754960591644852652833613834862392535371129047558205288660086039689249407444431348046368071383656817536425530868993173861905811953521536362459665735780950384160967893299309977539043535086281711181462573290861594272173763776252618649994607138979159612280220586799345458636241157845542006423050253877682882619753194235402184030537439169424141382060148085302423229982616477549400015045035672290620156788376462345480352546245396296129817518415975503887610950281752631860157392135115145574515685284333928040356630358210014672615607983968680064932072195071750318099203007565963645362765346407026712999643278877206477329190798581399942109089348001442874157095284370994467970524750879864618449878772949643026293395027569454045605077451799996418853732182029182227034261694160427431414595093863712374444120163576162985705363175368988822993031533135730692800409135945447321038915276311255190472026799021057044697223565057382051643716945800582071816227350187611791646498925280563464244224609316488853561520373756869572269233993324422969690598690183277847577139547667629961007374910144156383503896974893756653171317502426243765426721777306282706500300701887237228656929189535383304840157139292517773030200230312732856997978025821919372478069885025210174820227183059244096506039066253605943446884744270622289488374023671835830974463727035442697367426957057675471302173995389775018999678325573949511469842002254093910856623687754229873559354042914762606952649452264430295760863267985362254329683120175801833766740936304125084042208397820638297305349443952447339332013661531887484528638031068520393479304514967352827208137487362270658436306732951284675721494026225516984693821302351614552212337189572492868039652987374486620717544754196334627755977671867892143191617405451905020701562882716831469928037164449763993511725639138684456272230441113458301271458479143749358558603988896366767409947414386111674086724976483269637050092201411311575554432877842635132521381178398300601473686799592772258197365033074900533913286361821835143520709951856049380211762077491574813620635998092309283033773721079222859499891250088612657245331610130639123970866575537109177797549950964936594795180245163475429716395218494983721760799485929311961883124342882006883726736385893717183402995368594511285556643839165815655995069031005077615229760397992988553609592661920558037043128070965824467023510326040205089128529590741809337160869838553103052288574197042739624849710351091445644773648421624019685954761353250734446482454154231908523163552161791513796468418464730416823205324617085823816101984315205520143440822428703846793872327144097496346300193451084564200013807938469623582984020306591032636319157390386448473699434730321443864228318566303826833317472635962528108811016068338950469383934226867225037891312095063458898519577586299455745971254386470561363984753459419418279375355944000359300766342444435458810554678707933821469880232461809763767324989496265479839615065571608365522567668073993236943008964429678236383041042717738774790748783118113056340484786532718517095382796035010650820891107547033136636547078312995992632522668386379550623753866950807178030577384019262734432912038403928560809218277256087352511212559305800913682846869950318702676292287209994094807987279480428797582354673842005349354612468551162393749951111763665226965497608872629436453222684894597136394001170101123858628216438779868412097059400428334298565275140102374373996817414329695740883771273025931113461665304119174629521527902090544501797337568059691927040136354447395430172390047544237126784404922728444597612865595020594024030283399202098132162295230378565239329144786586890251510177925444135325289515715643438407390187039084410902150620692229235932456387214941096407248262914512035926683580991503138320110662255210033140342794313748181558787760903795176770638624375222967943913404668270189606579730271859879332895968577355411347779521694085724106635494881363443977572332812469168851879033502944341931817438664730923897744729391082066793522759955653512745483612530716265178428495418656173066731471324674591286948540600941792457317602593128259144852680952958866528429850770053941891813053464319760119350468538214916330753722601175389471047400070587130073760211482929711839706379969449842077359570331651363448381839878188594913884047424668207515392241956997674652754836127854218671086673548526074640908182157984946515111773137492513413170542696440456688124284765136722153509617754926536467850848689683242822495474797563007247843556510695029719120011906734414952159483459835699242974472566921551835451150717822902792629883956306575047430081082731526355507485361898549530693175550686815871715209838771457578989392854984686356535125006080047502765211730255514147225267023338330307941754596419449143540662501831587687727073886309675462297902868853574376834159797767300645471181372811027561584322932364422089431902955849757310949745289831603872350455287409777857987433805233085873138947971432056899672303135942519875918771405863902735543022590684467824139915968968141058835213082714412533174778057516764571280019832747819287772625025241558848063228321520495887930361462955597196535538253460674412355086981627225567927011971421335909619720305316447254254137624641236421556673146202324351802406336035459578631768064347081473957975360584215208211933733740239454186202149672584083358387498291808735088836201954418073569899047609792107400577731213062419162274398456337995678146358793641972547986967431905601059697069186184992216035302840937270556159018286991404600071717365525846214343386281958428911582645578521547000247310002546551885325363246121678412109273545984640601902483312697575054146462586717574050123333876972010416780198317942855617746574102570082845775139079820307109009403723622049363656049738468466476502276824293695540278039440375364413218507101577555914355960826542310585924522821098822351283773057377692454983599884225140462818306376927904996711042589679621837890530149356117766217353282289951830508822360410421819141968186193856237871337594182834642290212550611091758216507420894254407439848517636148572257798767167679118974491048779193461353680860743421596443279406212104722347413858029608815359248265871861959612166677343477271324805541550304812527792831593426885362254905880042389971295672468027449917862972481106902327131490221241082844479046314212729462762966530491695135236121162250883174579792464071916983320285626455149481054189353318854201732008344563162078040623686260137779246423520133291857416830353313551479236208324407643705230855515924306921599376105909497497491203289072797112137469297398215652097672754823459178552650630262488408150429688904949595825780056186958783933574665599746872376038993052310916363826472419963258700969276818895944063062972598603481599049844461328885645819361012810704622246876417304876388415009688688181207602067772842754883589198119218614976236033870390858761529422713134333382687498959255260962798877075826617977063643849954551898537254224152952956669161337111169131901668806016607533661987633161530160021947634095746060159420153639188466954918129096086293898337029699706276738723483739024778817320017999694186838193679976720499830112711488351201572378404607414538370796446519940093913746592389944833228771748088478381348026629680942764752725124250221964365511869185303392279862546239979814580308437620904938603204096446366572151784817874955966205363000866003980367965795378729066073142483147138621978609473833975429161237032240301504276361751257472583169930679626513900291438172766104049788272494303946294267002896678281278145741414992513663911471855697164581000086337529410879574826844463085692072546739861407358128160483479169906329107749483290857322956659425128019463618968242286350487604612593545942727739118509851591932675056691292212943903335083723034132923699008186468237167257386381679619324535036733301925548450736135313382328929547322777105461573910235294477925505082409350412364630386484981664063001742046697711710873380209295207952067436152818624490907364114871934224771280947759369153396051773281696539073329054753338279973422490479983870475494290330816695740174033305276861671353097855023840250699289228460490210595749583709248683475483144119010285538665207288204996927775477675762016728282181374525023764029771837744379086245325679302943675036456470098806413034828261270375185025937599209542188083305501651714381825253622883643045193853366967663793000926249858257798121056745166995203087079628806701124768354233709812262694944514563008234879072490957171539819187710053858737788674939026927152373145569573117255300249226413595478235591591101643694738082887065797781594057031950421058336701925984836199453514856786445934012808272647832083398597242264823644607371027750918460929940692485315804389544308598628655908158483867187097445066477545542257714895567954528264904332685767693982341316604513305376051356422145854859782638856469156905440730804675333747136550699010740316102364830580266768118212190900134183245451766616811640210279669180398810991259067319367302502930810930517166833321082447158327389129817797077188248950130881181267894637843579219415979779342966197985907464581200349148044948592778783916216614973636196738065573686823555664383029410954712119349837402634321614801391832062556322744536674939286458389205933819048454708411754334233938582241679428323836365746875249476370986850725171358409324840512008847733230239920002196973166640646786552737460538187053235031903555464173764112786949707267426859951491109025766386001981721742183909002311279687836310997110314763175335996651403317333187427924432356936904515140948232659438625878653693339242249197085948958626395717611098243819921847391628433766907284023866128354026794653566642934803584084180935972231328052264087939048572583368385066983812306332469850407104218333048454503949978919259607294656572708445031451206716740072836794172483204706911123509843659621376195882663272356632143382677598964065895084153533324064634450803375289413478893189100950276792116983712571768199420953570727784077372311516004298093927029030111246404232406907854971774531262171403626046066965001137261549001306160470123507028001881000947702853999807847660954998580126673200612419997669464014556153177947316795059735608202193305828537592119237504791085044575111946348772070001731026770021287869881483873437279729095636517730440528654783275548185648966173959516750314667869680015417878861469955363927360248647513522569687530345892975134576044472323149386904054852732394364436142630958731411694254650685230692299378621022444080087820650218081821301723918885099456520015711872809114129671107277842616057069951492085676699445524674430040306294787003438110823994816527944457061149375476903265855374320222046667151715733609856103226843758084589427366845940844912553196920868478812194649817438791031130207663150346360000545582858770418209477718849457515820230236783887968580756155647823917592192053425803845202171328346271960206719748599890359839684061098313681525594604054077048545664740146783438081380629930087097241552133595070610893561296876956182257086607134004877369953526117888228627932717476326895077412830082524432096588554871276018280597776988850583108748234973044771985743976175749760377665735921433539200779701227313286518786208651516207898889684207250038731468111378525733523222330851189408566100621628894326709175082666401380411199619197685676962161446204356151662311353049905356872011015254356285590529513290004789113215892506694407054421456321859729890037802838648415069224307394823927228421089932669001029509899402853176706965612698142520510471866678348125350328552823519255197657744613521234493899633386228621791803341012996012879547636678545108623476882136875839540059174892096921157893155507477038173776970804005375245376775198711518175218013165465557382884201451801176967100182719122602994451353247739606965314087750586821067124844562025030650686716680545029925087150024396027884658709342062159771445670803193455520062596621585257831848672386797665391185481186515246377363751663231591386953824221272020815669581870360256385537275981396627951406369019924480686230996783214698816629146797316120886428538867699787327984069966077720809330428611885260336821879578204931621195892806077140682672400822950856164088691895803863540035343965733964112954336157071033862928724365518895648438081976239181826884932960663487666030303523018830055627820494621351793720379728105775860798990114598128050580462600308222508520207638178141329061994544010810387681997061195208868857418298801401687443500364693821899138717771724771074497645592928079208140965932335758785282367274621112772452726232156922427921913160803498814884603856412670255038523734583545186551655951206091348026282187602729618115650869290425204810165028434628484591014046929488900735462915227354078786297777433833825404101888844150751009507065010298720900633206683133170601273056307598425561137866886152624767681563127263519272061762593005626597774948733000761375263267667326019180381300182787720267429522234886168093262233817219742966362096206984514894844849375673367070037146317597667909460851716756022404954073938908307256949760529259832434127503319745811545696986109816515568867643201055798394960954835354087496127120278624808933394675446912254597897180575847177185923642156730328221502548070762355608738019904668166083960749193465085857618601835714833625545987896580391421695598226218686121441033303591179452900503217098256459015370728457621514765771735117484116170663160470624917274681065173391241926428296127435251371004807574123699338063940940228714424562450078538281387864012067226464680671873526344909788638278714615829968585319320684877490027710941323614470015539791232966536716783459462603424248883435565014741160582687074290346744450851996752950467030135050250719832246561503010706427082658408016595590858651580357511418129794499805734155686263873494190137645329059263356935312923048843492303988933374077032214396607003177359560510561856868324911892679680406399135743503725229473491016942973644549750255583099189199747471525579981371878572283884177579364088802815075738453019328546381898636564837324275965220133882240537661782989683750697950390167494532072258782148155707132287655549675615778196589561248189755883878521319938583634151498176196692875557475707135416312494421498531764441853365336161763163199008987857762973562252564656710082761093355750747090630089934430780205828620811800383569882554506040348311733416281130348237542046139682963445932588721783442908114681967114365988306595379804539440834581375586267364812033182645925565127413740707847679438889631203125991446370747493857005644483809984756542755362449163024565325695367815232930031918922174328485283535005952406557072806430684603493651462295419199761665766666067795989355636841262870996833955629659639648588451576131123517043678015581828768200797301817086579307997438255935365795831117051256928280797524852622035266051557116011587896830276262675523592370357276748302399032106690014553029129100141469797309765626518322900399812390323186878274277084246399048916259088682472535661821073511638832009212755416545708178474087933735872712121039582112713416467800756575472697140604821754011006191362769053151569347610462425243247426708186319101355562087632777333548576397085143161814818330326230553025675654337575129633953929589842241418413639494901085732249862205650117570180473151249671495930499285119287247447132857325861932056160874077000819875904629733301895857869972412688146309575637738828771781692629767210728765823320529728392302918039069090579547349645933128268832436492761632424518064439717462183076442540275981729648358580403533584708872790068002070171225317236583092266505605946137436540539176826997393770756266518365762927508611807092255291706106491688123817835721896624952439250246601962967177508622271175740802885049249579839509206002927505114111975417338962441916876334160793244668671040980040256284062397124773307027072381905218343833958565600706944411063083422726776728917231689122812271295523718909721655231203970470234177101071118992234703496529692887128530696876532018456762102005388577332354341963016101934744719458443847040724248458257340005101635493015057925897486955874843770959792981882140297440625274211968768599550726491077249108783905087483849635450963814885842871850004657041955848078620105345780509926979422920284569134263649713833999351885531441438781701318003193393063535232580935607155229482199837014099441493465217015324726406614459730959829784955197151266856268587214261313951958489234773273885170581369343405739619309650741777179062399640951093017990436434709239172560997320802130219678336308647689925016661335774388332297657906395203032730957021844156480708791934209981504387181734827365824875459025779858392421242531223123914213505476168866858415610862460849193509036815787371306084328077876380555728828784565743156518893200244024048991174582491401159310851208868573288940317690674882659501440739693574033642614712477516315948241768755924117765131961379838623483667331437242222771170207802570972429921548689465797170209450079686292071159726409154733806532307337320174432932184379135561808669187410827891375822723631056758869125645384652434127657381389244059499868301475321957160029732903124422036278855497168284534688572345855350894324897054661320851891541022455743016010366653284049148032139346572834318967316323757485016846134207277538055451004404561764554363650937597203074602947908719826803462261341739859025118451806098181967280894204666424272055844922575683121772686603731582829701942858417798957137180358624273829401258785475202522228935128987765103289380471139290711243697469416961138486685855774721162992050476693776685646870523838538350358677989819099300770926618414122694759931500987177295421305134068397513170998633096749342917010924183042803139643342016634381661988669875104552608181263317632302206349053226306006884536311793071478687189944255350412369081609047182556624183919729151922609685364685221805187138061388204127729991413399574247422546814208711010774518099467857689323496701031103579712816083817244108492825212958107972239864482146568741020564655513610490575545943794450092749991937361462907799797878776619949510576729485940308739859331423004768726494658541316052427936726074203656140975012207222752744919068702895866878534059202374318378115072649245482099510818325654874902100700030531188593081310905198531900714900302223502968493919731322104159172655654997199220416936852238246513733531345745059378638733780305645332479892371023516342739100388866521391067099319277513261450140216053769264359472333023120047059142202702286132486876832689420018138498426552640794538426057344217827196492734695990045312996817824906085024616396983659290175895527521330723773633039042773895506550882578720049200042158041296178365884324511734227265912101004893873410628055849101579546583791807262234764481516836966126673694276578531148351501654433882753439258610460345752607110736028629147696242750372449864847471374044190138495498656889415794073149263765574009216789609054086451371366762365982390574793233528110817094828248086481419760518641904103458836808722900163467413147790675170999877673316715091091445746419492589311639669021769128417271888566430126269307624028666951703083810704702368343049897041656726241012817980031078393779608325040484562302221425697584763092910183839543397272143938169890256624821121594747362446773884780914369378073019522571476259398250811605565693293503509193340075816481358833790131652435768373459589613510311935752257505505862102550480922962834781139053008694284219771875888571906260824557367551717873487644880353147314663906969351396332797636241379159378263350940628904884219474354321359961769732510400717025394070727854283983537487253418865639982932797596753128444057527277887510587943317049549776374294220549005147630210881429540894484304963225933035031812858569296630437716927124657121511751917816801373163992671291174062638396276017563554909185203917982432550994657815035825232720170948508448801661477124181454560986930443103046576481094451263981286599394508035887618670548003721664190580360790958701816584390493876351130452397602461199786364671402322381245300353446217892450035749228070317063556844129414244306751602910184909475075087924775673008435769795021431592347098166894447845080300426955638874384643907272788063197396124344548372603052388907498335359695223536729527747378379755339170686083360119352790735489890334090467016929245629953068697437739638866393272039084489243016259204831661421647363039247897354249463223728787510498835319040253958640278002237942355088974532579748378803800555855500194974333396868277422619901103820917175494433849814663986204794880394774683361059137903833405401439022888371383012771177038487636099538889271233881098705444074178667420102673808035937320195131607605622233525944257807952319608532501597435060995607283439366085599781555811255041544895215096665678638798479163232476790180957779817288329864288174916401463756921742516753918012379367239921542182344237102230552043266588402773742230227096428370452879469528093799287981400777591227857333428120885854138623204079169949217299568321459093828663946148759985167839966053506153841902291094697537701286889173878753444869642798323531416883746223001107698399385394241239096375324220339823487539445887545574277913522469056712489521732759229436069306895731173497251802940469883320988740504837698704201965886320002526916104882070504163227529090067505022794089074102433532195692482410994190337433419357033445789930508647440184797828023317558539069215256093676631897357320952516714555243537488794231101919282634603404667116944721017203286548450193260410819166423701712198765606280051615672688301986455132836287702273086368138650888102597101420634067240661144531048054745011626066275754830439674871291120922249263106047028566546721871204048578769424967387943857734738910065986959055834630309844656028958609084687485516419675201616686009031388087390107754707594183530351448796014870071819825446053818645544917168089448230168115456020547859291645529010301943278093535298588931643935284584872590886734514650803586820665725435337759105664084886481301731489214004695436385156261191346747947395007337875277451711645853321605095034681544947909613028130838513529593137522998319683541830738353150179084299030152500180585785423696349515161084944514687768066910035204854773929376877968657018352584524097316280718148653704131751095735214887145692479326053202509933241145544076178990440021079891261058493539356037363819500419254671409123163106113652245665910077670970101732167810100152937593469192789777709361453336573737368767126882111955335436701518233578999336517191163607698118077366119063810664156560729262912939323805462103780023436799254949082874765980658325693138308518963728613867089174001156258159749387390239649077115702672512560280180535115716165181087611213252827523697133576769990749972225538349263669667874291159949940059556480526146805255271808652393978434202235382611369994584187724406912868687637702478238722518062527938373799780900876714787733611197026828974270559462632553469968153544504614475018257266828595428813651967669161847721851138477008380066655688359545813100493295657823587469048987225952712097456548161228211968295797091886679323405594250113878673660206821171619360901688112599625874942151822433655696720038131809219249575658792254330574299694162043041881542717229581755017533768124732513426792953946801354043953537484499485098323333379966391576117283117857664112642718639300320639080150323990559825720869478295946529855735276711749700480017046734966439225062393944298654284209733602915033708607864702730093610887676908106961597064670014770045797694086959913228290056160415047796906011978866609205547256363716274905200954631420221349127859569982977386505971354432677904699010038110533734570625112166796024870716355610309076234133660384504549815270564904014240887735246671710653365235335776208356696607415061522945304766706634301656491513718489575972936119502302401722161944329470253740296071061332330179950286620026799438173082513704559611896860287529100537760542811066409797151072769590859748422457954888463761483222164841982150010576458451302923150361473151155547925335663001144192282117361190510859666865964475623540979304238262780207150341369216270223348376088634777543948600586556611446954023459335378670579694068013879422135124567060674772603601764665329527271096215979791261452599234743617201448293912019882121106700396379520412436421818621895599603477659120944418431626564513614603165039310065653768595536454859077870196960637817568293154464089677491785444873424534464369953835624608153111432692504926583746444335465977907311184052474183485992496581039665592942000165882897158801240315665747252760792891599780370770776631764323983733706350318725799458525501177563346579630179770376571723412755562241442421700869597696667078918466679849688198771419426541760776816541336003725491056692123476454734056353518975761053338237658320863155302925498092744324015783475112238987870377629915299555790904589965127306885599804759639059764544752921016163492255842745774356179650861549472183092583583385816105471788720068176094891234738596107687251008529503561025501698843218039166447817428664382770886440427362659670382239710971882544364666185695688502593049590888592002347578595159119496245714411050783853459490522560905843606944707519560307436528085675134950433715063150286839593117762215806029305674696254153665870142694886908761315890922442595837645472970532870435860520109659241608918516129122695638491945489220420169639442226950703427391060324514502174324947504082007295344837668216341537004556704202101800882712323066152730565819285117739470049941129180374393189017045156802886465924016345910206294666037108835778162764255549913407271358607875908088210262073485572421346927198006621692030182358796471907336324357270617379434357497109553738421594385049980342911741563617971231531093776629602392274785387040845169397696324018725326107556057559221474860994575685688076004741256585448256715530809210465405478809112658292751628091660865214828640990425402659167937964592112362286555948725920738209720935693916594624252822898020955857374674023386602908979218556586661944578177141378089367100021965353532968939232054612636993763558619977816972549881722354659796977586729533812344498687278871060138447878058112787779389083608059799160530667915767712904171711179856645633809354105025861902677513771204030885454568917538097236644022317239289615662765862062092802346829791587507352473069955582836750024959811070647539863109772100279764486838441610474674599624670479235524891209748679951167477785550910682321675115747417737529750136163596438048710322140777563335598429805042889415923167332517819625516948685480878505874244917288192102810549316323888183977633866507129321417747322446868354251400008397456344064390487659812330952193606752590235205181375529324295117289690939679200809324182953359838264790164807330008866580497083538555893804477956743605282247355422680295102810407191654784481026758243455487980920819710736216997451233504448326894441280388249530431005040173704539060856239079266306872834666477642462216681554422346065624550794449639377182696968113007313175956699820272438907959246542198036646308469254458087856234187980914987295550050009634961424153937449985461260875572474415595998111741669473399498184240984215503254380672354361268627100060084543228191760327461475843368855041109125571378370469991712814158093619819097672108544807305323322421217616791344898732823337415423798820802498235072401214416831308838484399810581926350834735729916934182427197592092577887001475590743967489730171814106530276633503663638135040122514006824759970877978925787594293529532645328191879487862701396333873525271174477581860386119341927515535431839200746605350507852532502577530895575895490438292242092152338643596702940224840385966999185393971110932795162607411309708448035062940081787109103760144540604629050424653031421074604962041964116554447344770234939730406404643417627453584012152837770457737426672569232878933442332826091792252873819443308820088087890775273601250941973413379981681195883072844583409817419543816565272932029243898426489147456398250799686540589414476007239438142501180703290759868077438890193167191820420222617797171216029229714842661574882607371625868881317473712628535515840989608732949413884529617147516707024040757909483923543951591500164773544313343061969696947606098403946088836779182277496527463417879509612340585921284408954449349671216459633260525604621136423310260959540112146964090812169407011578243170970195117668319584418178663170051638295870528646791565516114474488679830790697915969770918156967712048314342137418416601988463520632695571409133929144363653988776961484440662445442572595300282823476266803887517565402943573071637622194942068525214537803541224586318434717437436590759498676483294579915045807510901232555353949747415278645801945846765544072499422938811653983952293130588517774227392541932207615063202697800115536558766111177730076157394369933354241601290980821747072379708781044422079538106005069723321492064896805513207494986882706814310975975721687987598116738294877679568675604111590611200030972081896165205765199677068551056743645542569537316248861721347084058449653569455483761695643560569149881863461155013143819445538593225378448779676297261032310295952431737605396996039410738770565337317472976299125436073757009491119343595179194127265746538548453392781262789307769046001540058524118664933232015905650016404000446610065884023356224619337178817053703766657171478027905728468293638822420142804423277335244658075800101485599512827108139459645910221641806914965323698165810892990492416988693940887255868478259675630808960758231199255533707008452358949191231670738766110212855868740418531245389566996278180748332994247848686852749290502697009035032233719936814731706887850699536288839830253203513118849251595893638567763076604737447884930315945666258974675044246884956432220924192063826621039950015543840770777116310610141537096049667780316753563830077812795788528061777359007829560043573537765233657193181202429011419379486550309632471919292148266328200262816514439178369264161148989874874064588616443810102261581287360509428712928331953153366564217465404368039338184873812008656919064718058988530540632635789673170482481268940957473186225494664905867438908359071305164927092408129918008672420878329604022142733672829049608174987300467502903932866054555194391141062320950259925542096601536430311963415435607572817930737719016525878809209987875752948514404767803503440620032030556436098183441966800820452348947597209320436107282352351729125403554074699616026461163123802088385638244383990093662291655820087688690952398320948594281630091391491812297484824119046987621227932888897270464173280493434700615325819122903489097242520759972511019626279924379387707964718549652555751326006721013986048600462205405856067735452457294697360083954505469465605215876571201841651467985884100861477508028657336862238333986967504988976507733495701401423749973103271143977331971073995397261150230175685384404981296627069381029282555942473293198117944171882535798390229348824535564720768719812753755075449691119270118796658762551971957169108339056202619735033395052640595217037008412759609250074991651307417322064662253475845781480931099024238560245399798654193314131498944681194349251944119933830473142714712047991051609595927080364345022694713358897327631256125230454093579673810018040477482733957556081383702389255876542242580213680787235396116824410515403118454320888209053023157533411732990429179520591826340860966024727023208929747166749630307260763524798073378885670189745973949874727655245538305521689172120991476138288124576349167046191020203218379876834799882419829032024022725833736873034591305093170318541544182880819730981555702768642805749788922511267842923817338607451852709724604576146165471600153154245528535813725927641858610798819001205181085445740382824909661377184713995881165619414601869239167437719535754691776703567404079587485815660310467382042784008794879653641893293118686607451303025815482787833631386914518874607507260896698644419105350956799099099507767004671578810008159082731588489484703871892091532832980298188036055144308541596040833416589095667051452644658143831401342125718841070649062386792218737371827892180713219057002069119406813042935995467548158569099116975595510452724347482913417858509587012652405737461841681226140794073052775214040510721528098963881160029557038271253385401520963361477645456232802292860387259841437189814509622499172032750045662641377756860212782927620944259571608412780596684148797917160688805709156481274034668570852675854055653042505460239011873745961069090772358750881261137778202791485087810426233080078094910959444633128617482611940002170852295685660850389153107828396377043508648599654741259841484406501422476369526654469304252559949114500632349343273973313857662948170982584492971276226106020915276054963996920063243554178514490463085533659155302340055603764656443193728029544619458054607612487901588111419034584788537008390586522106876557972184824711896673596662161485819889986183581507143721627705002265939067484424435953674663918355044475674911371318600496426384870265417098322457134933318745331247518845220424669053589265343664488323461503984898079495203759315638994733508456685419203529910051822076863437261970409211614765738995213500888352114508379263270636488830943017800327755798888291258741802695788587924817258916512970615633038265225599789800148710530918873846768309890367018815426249852826534866566364276569341298297463266103053699088103976983142371833694893474284228925011526010344070363257635630333082596604615999792848411565900144676020139079399703182391975033654729965024114495661764582080914455110464885774358780530091036454681741945062321897933486367046808243135216849213165562504396531651673149082696897811035779891228762795144975254190988807748075452180167972805037535176843547542443618039782143320002002305000237726908025878300969305602861491136820976761423135328230493620821359185232187846957237196949121487513832999455801709257906642698273246364192276708246570417123608975543083411949563888220931157238997914134662969768924885319824189068876745607096610677187552589095242950683146857361202032025126714883344028750436296290375145583584771642869651907203817958256032031098839257144431046400077701128235566774425729270068810047358866722610587819726335713973103056916890167616948943812511487700272578055346750092828257721154114090841999144643080046046858047866454241327351516283228846766776461684877142425999942549122615334384764140333800334096438754355874913558212865540334693619331104851579668866677786929987372395899561074399549899435223029266094527460897666295931534197078918748515585521815562972243628139911132107961207137418737864182875402688389880482782549949288700843629024772422732551347344179956960493734215541803845894434460271992849687913894714188032540959533187499805952596889965828593991380923759212937909713920279019848842818467374855197895699887872711805103450147092414245760147051427466492873523886788938650477254159879463287186669502137387043794127685563892276975463828045654810054747553805019312326369410331016032260622060196661787999223518549244208657508913838000584209430715850026452224147904704847256135371548697166034533549445372818122793624118687905501555147411489737022430378814739781461341792705151141277980104097786158942256363579215228462308611535903537735085378232519886729955271934352092832812551223998906844860851524262780065061775645196080854230146351210022314586550849116381500644936639278357751425505039001226613295840722407148358194981602176834708991053181079180050256901248569594076719649711979987127317063908106460686300854415262794127839529527029930454286464613541684571247866369983769436972019077805415731532826443587332557801607168191305927075524009395688886752143459111026403819843031003280370720916588108071796021721156434662571554967969520275577142107810290813347846120323071986787333245401237777420529104352636776950390044431602627790458712632678204512520028954778048729564529598699869326290534869310617739074236220249002134424947207783530639854609678850141905219526253606236291112820851604802214446050549315497381148352549089150887842149605205757238591935245713676742322692372409514295238750822527470294258768017317746390055233136538793274991290890009060102367033585406726921673264880590287699507876586485785679959006990153940396966078486067006516275594340483229425153264012197983980650504026737727711163838941034818824161235038425141225807682632878960082754463577272115857323783481075514875677361373944503388580819637507665306117072824629985310419808670249255926877995594463334119223138362177109043814043792006796172051709281223500715625276965420320003666579234812331050469235539076632233185762078186593693785357784420404971123887405960521220209104506432788899805337778644586688757436740133067747221935344757262436441315500902857231718855033117611345824289666479504555390277290067864519107353572057567579291903454700322849732117834965856831541987107075473522653076492397939916619867408756781847391871224773101212955357495943734376632094810052608992099664924915220545731852318988112915216676125730296790927391424619483121890001225117442596501179957918703783213221596284630750979069620171177175395964687975700784528384664307238584099965473820810902237390185764291049752300693825322714077878276138584930645417235606324948006237664948836324405223093132849406434800462403484062534325876778099812741932512738191305245533161493540988106006277841035279923113779139626290369927015341958137896822715864999851821095233066470037704034389770803061288537980264255505460631700038154967828839071384675906511455215698756588030843651765228855809659238316706654755916644815939560350997768735350014508900554577281969157501009638030127206786329060258269178021805001547000612814589566136057103662084129970645945551166083543453914513242169071954436445226977590079386940311825648179234430905632509828563489213596580184754883163232722006156312224625841527249808554860390645761811368738304663742648532068357155994621184040774774779357262738283042324532646627446235205777382308637539388686719200965808075746460433093356815998437285689501464734840216902068734922673886353926342123883382208592928457561019511194707573817869067684190471822397118606850146531808011632047782265250497736765932752479023129727061513148026561319688644521808916673403189094519335466206724731410263824763477414714392441599813955079044860368438652194921873845185429715274246329884750356314139269649151171090961653657682175428556878282521227919432868623235236677671995604877874981135035958872308007358459232701048712448262374071641613111679706481437516301126405161467418609945585447844497416808593331585159868293487327606542755030168558389969431320387672377985630739992249148091318972874275840530875208138836463416803215259107121253955270232306770856135983305643166428307103764722262665559420335948058164818413506714552024587710111184720245823442484975183387825813144328039188022442055349950985296311632229918571979879220008694166000626222087622766155213093046986926181306420593391374923921638924148588252573621203295307953011857766642588488139939052556443296887800216141285751538289620248092491613254226199681996402649477986947636546436178242417993445883556221418004307504773002100082357589749003895049855886150572924848617494069247842830709627930779098579655969953626976022590754317949778810068937800875194411324194073625087878487168547673909425285321458310857998437103168653110822858139301726586830694495070361922439162674195470769350095845397962840979303513411191950676247661355447012121340797139718528442056233566607774752052126374817353123571715917620938657415342078633887128226663981706948960387176939625980954800535997803983425758508443233786871447415105667628484621362418557138811591074098103841337758615611708753737028736665002927156312669497546475778049369058679707686145652320008848762331589572621947511510301158032069454136450860959265314041001836742519362690571394274196711393783436091661184352084233398482362405766569369047429419013609230323931792412214458765062624976415224027934778359126321328233071655199911808422860304171295574418760852247128922571457082420275500800794304630772751836673789892749969696900945756465133461901248009307890908952634185673221239562409440046288045528063369774480477550470573609492105506410314873249205802661120807358588208678902046036016471686935633994755339333201188828314990567410422238289176775295699745245647248125128026914067722116003240877317324727545468995473404062924440700749667122479642901111909604941677448581777965821500118173260109163979133566425962725150500214815996358606303093593726919391506052879035114410011514936843528601518671567948041751731144060675826010880526405500487579934759802123803108753681777882619835465881583619669296983464244033470676196358755264266767595068531861236201950700378750869516239223527691169128783241873324328972375615972570748703528865934484160364693481681781632075823306023410958867326340999885303095082542983307388270781767491787207274947085118216906063435576365083174092296811974558180006287208021547244483232293507296291917574257123813727894118721030863444880145021283454896718883589770456412744998527267317376395320074164844795173472667243192587248036959309631108723540502671828403952127014850208462062332005834313123343473308618201314354407376196829202529679127737441015151795296385436736755410516625838055143396814542495833148882468308369110251550486298039864535553646413410244875970825367260473281571678122531896839053926575298473855445740502535479538712885909127324528792431582324830809464591691616253194770680623959821337607857583436503798801452808456508563409752874362413826813845626821745074881567426516805278654677974548883645072789754143931142878893513543681138648820476036807673309119320800885499521050068320851943047665871527071337448371072440234513550077933227528994167824213742936837244706336219245536991668349182403476852744419460784308327165022426197439218901670543823313250338621692268399713818818995132598438518438613056946052021801459241981058000016724445653607411568503572721905433597021602175112228872031577584898555979902806605413185840245433621550230968272585031815678184653505764062216122148499178334914588874737269542341160464898232935611301467910595984989268721400502739466376988818466945967200624763284051109441429122709315416416688019773722253164069089955590929789489771274196432335719453545767583014724813019366558826736215853383639094101376957301634902806838576032671057519738249470058403859073586771488745536685639504813261322776413699893692645935035656156484365584212505557222805621662006812866934338039059050551553291197490515460696132571722404282641673868982275874691266277871583962461796884760088331188375567245556432012790081470575549388089588314400636778381218202387930876438265332349454093750170591608353685676041629705753747303788189437236837516370929437593619262589344658910242143799144217880381102610870645519076855925038251253778570713268669198529546430678537228571742476111254725660741419854407104029450256982088872761485675561428345390654113747570858298905776885525353457540246902175816246112672987649399640948611624213990696992117322755678795844911886349859819485726349301775918251806845733962694527257774607641024652973734192038233360563902705622958167301131758073817435682301461272320240935947344964102067834265889056282327210122998173343031110703948580480202596325143977893159997635408902026999114142359102654276086529733423184336555799028305997755470726658993560694890738876851423377072142789879811100518005198183984450571594832623426039548426864198005748965758095962769656637098529746545223029908835886956234505983635159620461690643613763678556529711764703432713833184784223150439535867571931817163719628268153226050013517027971144830247061900024972366863542582856379172332192114307589719439012494912481874705881627156551501270084827439222904104827631033360789054877747951007611166670931860016483953259919715957824528420996835711503309380973218499953511839720150721631812567610898120878941572226656757103527774406874940997308936777305547942245122711918953000625667573750809745667247273411485670370559736034068196601255406266403724055163839135966853382805632385938296470574041011345883305000519537084595861598377858928337188746849681595658624827267675962039994079124174987338500613192109896283438741677710278070027779827027195319357696823992580914439908432532145713729203323083992495673420337543619938594571502930707856047230644708499754369168239962015931601655008595324566630867743411954752739952540656258190960820651120390314602650992087608891072926696528475884338510984815101018813814448265006183119117974801143306721494238567095343306534898594762038924674454118890131863998325553912396698978898385890592011975063570651311551042368538000760412685694828767558966885954762803258028806917411804521263117141493670016214760577027515646828961104285346665493255266402565225041904907358521642948123569173421246102196332973492092752761863264495907810012313610939949270299439667941325622142148721392789916265629814833881726146818538428052366882266745310546618758087999620018246171017684140980211447938263555824345143288620955937646063617044497549438104009671888475530056148351238944195436168680481619778552283761128081403403166675581499419481380900626610300909829562106946184036967683196800314758832101947297267228934551170000416660898281784800079117839161894998096209604512164662912421282913991689394607479788802485289737547751630799459279621853797195775790623362939389808102116106220631463641521709714032628566283748966211209129011281585567324482469795200961095338024246621135214303686279442391576049334690459945200678148652314313942003908511971459055614832072047963452434164254542219033683306155758628556563249125552534986374131207982479952802174817694769866203430763957242284890640287312905039680438956704315585961601216181429518334023203064182143676775175282943709577833664703629747132924820209811024917124314602565118747880190193603605533835908052234906439144515868376844424292921483994202571486017583917729970181784511835146456136889140031815253037237390849498093726650475127785984271992836182983012615214946362008947802167613466900279084504261297096926809091397263983089619962896304258737933531116222763450320650247879659863898884228383234399828179141892491263105503886251437566413786682446412011089063658413152158890329361583254730010176180921418803199115555435801898235766484326358322340733488068427740483370084104222534251287825299184505431333681309314420484830444509878224752168319983819620662790097639107745513967893584917784402291936436109922668783582595698093973020449511391524604315607567315668378838098907523856278904026040741679194231520037078559515221481642295020425712864643363208106337797058869873019043140301683084456130879866310440043399630753955508183627382330844491326495452170934589421836289376938454504177772853713729362000783800377883619879370447882726205758166771190053893526865933219916080172447983894395562012531040859712523074654907818065080676292351220849603841251684937227382415926270777503661383324334410251888062786865247337151140456688597012910726542733436859178285511757362702673665440816845533594642229553685500931719395270657109096555527007658546602596066911020772619561948010011260623500075834832668820377566725045455350651829196042683757663235277694682456099771369587285969579022274419676095522018546403638111639748466914397237000546517014170472444973519399622165353769987772322929779614568273747668712754949435293521024037315754341306819957062480674900335509760042115490499136425371464471667207565908970321381255685701245592443321985129115379777655018071562467777848966527281362193737197053367226506663917253342171354938823302560634740864533453273697585648639470464703506925879681937860434737362456580174478144802440780591965276006531417042548500409086370093535099561000759222513677541044954147605814466842112091964375964912956401915782360906779398966347616319652187063742809029586395960814305842388703924762186632031763415743884944453258561253140801262485720163465841609109292126712888957553240079403367940528915420868871300396743238055587249798900729266794947321343829078040183249344973465001353661582141598841376277321785124703561352878208773061570524538791120638553482781843802601214136113026432785368648361130889012296041065000525946125507834885395291468554753319499128538509665357552217430786218686503744734696179432607533082654099021197693523496276690261113992191641998727874019496720377211683842406686895223896532090218377256918593545246931648094257785655187948131920896092342279420995789098232589073956468152740236617708661362809004346081739048701389795541169219598145439882125092353349546540627620572343649948838384136382942954055960253176879111641443691826000992364462275194363539138353770465136552699065189153280101152221832804629196608359700586215622348287351436318580192390164406257806190661366996168857400257932331799243432016214241129331144441757875731216519416208448558265888054922631155868391965539330304645391894973218877260072289042447669255963084169251770686260743112746235983797231524901865337965324263780166531112558484952755513112090290559488196542392745532487287775656874506077504768640711420576926400330490528014552612501748098295146477502763320511373060156573197545537791814731371370640702980205405347097744500301103665460316802378608573942599277110715895381393491416737147979634750961979336692035607472282756631715818208299267553314049055604228490956037799007185709263488205886517418522293033466119134033717789599505287104105591138996565688871743534120585847357342961840821562528249856075347544199077741469917628496308926641056996069303473253897357542666271598951552070480856752266927567010337288240900073117319634193314601042238229218096732338452690400342656078100421423626794607708761995884134516559541622438895609157010119011322689997659747222091606335308758832172566572938808370838030295541307754479516219421616905211758963012926510392620142535232500629811842845361632921887580401075178448430898009469697688010527998425260846768359465281087651111938872599910191615010543339945863205534418888606566970698494614451306479766642561260173257655527612984415406933941063310588610129105267830388977835610850269499492579802251005528205998285469270737535149380340504999299125583593519662894610402388855783290327186708048764761031923073649144296020645401848853240475623529267025734582462554134509509736920073944656388523336881523607976369505103143190246192775612989436368153240646410260315679592398851417173336891519738567805341965678866755627125488110145665951896223172749467619951297319112134274375909397562526929538273285326000557337292384050032691782120335116369988397214619570228469572652696348289833284291643676619434375029354535725530597588309234720136299123270630404461302151719469025371616864708713210938886463172834483671907355777580776329201485585037193524832306804156931147310868376862601381851875764106682266079629337284999606006863388432809318821386272574710760613625631728281286506204078379262174984248707149963336862614077135636650132945928912664695681745799796511647017319559341568098910661333939345959935615931869208669317577452592074885415589969636215456338004520925642266195654337608128875350115003601434666743402384871201290662979006986029529431544094471959990261027694182572119282475226015661059276689550209421923468767054324629576886441666397354295072144537826985768142099841200237186612662154477401408436867322788476696001946886765945032253749370557089485778314993241795884351989298291196491993831869347072272678773052729638897604822397195324917189157210734624558157401659438265123296030932347271517010358583815403752087368120733902812645697306601537496950127681877316231069010942610202239759031714136751650810401344024688504687765684472223802064825728420201383906039359192994473551723653404659777535505726119324606779547702419769808889925951152947619084157729669981365972235314088574283600750613421021065439187885196805700227402559518904059271627943408551395118560503454861328099446915224340481947888343489125967721796417945280231649357053366437572016602679418101408224454302687056682079026715147761337997208536603777947012666202343035434696144449481481194591173247151394679034400883994705623615036720460387815682545716387558635411900040858691150033801514559658859638998512012727351960719731704718897533666767111690244994263674811632321640259487538295732509852393601151395373586334330286758361412429941670785616777272800874875340575590291882645758954722680203777211205579676836849940287885683765376341288847737903635085808696902415275078095033253366967456296806979348623159642175225982889609358857330611926877823689229715849632658874535157900613884558967889442380285125100391944991228950333519568540847588591811249321563698637858085388623978001929365435639416052495825560916015119949195245301613718427653712187956061384458203365071684843912119531759097182884826997227934782479667841606126376245704077407651902315044964765727591825866825604408586532069278931811871217002212054615840246932602421814392106390209780136499393515965997489186454015177656607345949897777298562041494935061835845460022088520292331355113437576372623866421175474018049534625838018575000474195563909853946649514916796389405056138826551895491175896347825416150778708305903439839075780486562651841540349263284732193714913248854728087459358357789774390964936523651093588061423921009195951742356308794478394019217173629666708587331371602980325481098199061391947742163139856215013996525615827586904178027803087075327074855995695816972144795674299457392692323356565345750357944346242867888532513983267872147000352741325783565648131119435044338848405832050806423682768483426552267010071856199462417628802713584184951111961375127738170248802921209863611272877819968924512941394985380461323366789165700203375218745621404776741655763617800548188113397134186215082046404324282006210134500102279719325279122463427144266227001269186568101882798752210096679737711501539887235158482935900191573028945413914288379132967385527551879998494989984936889206215412588576006291461399158608998608924953638128002792831912285598371219374654526164779686510658156485859198514370715104872093073513216731641685388283630061649514669281071975650011494014547155706042403252875745311259168230727299452879619984641406848523599392567655687143435752197333624533087501711051543925082150704539476263078265844412777515743378871157989615137834017244713318680364886542265995373046235087213601513935807243130128461322914561627621458436275759193776641756533320734750301516971966070130303443039263610209128072546749642973505417845056959370530304921409097826400313403890851334033522230109604426243040854411443917026571138208213028814660984026932107617912316386312133769553513414109960935295664140471163959517230581858535093925837838863746553879996105551685693916226129220572862044317116777098675636519541845313951817514352754004923949258247733053997063417952441115776566883966728184274269197742583932967808807237579966477543505701929434068751067110830303821774363212682501536988557616631040104996187790558576455812274503889523344412075062402925688426864602656168949511316810777653617463179665514578958277172998568533004976185149196636371379341322447644696757632000921287190745048346312790799224780697798797964620677990927174099365357616723233048170465412508920669756028086771947951892467033113398712236609901595050401268762626281207967994144658639375757924932857692504977844958751167179158249713622770097358082798077557218440253955520055311073624278418079233034066008666152419713306321861612968456267432716746851569003595906302643649631645695448882718543730667501161837709359744789703909820102526921592231464800699100024090155539197756803468722087748893979531932891922733316091702579930178658743412055567248132979928011639325252364144947851104061863289972719289752525682760683575755474188739526266406464410382112775485102248020958049533792360753614399004315898454462610710055474747945568145873140206573028196971178863280480166422243155077616278073681383682167214784371657135613219267074327552234748323310986338951519979218580294169257635928058434900571623822896125597619426747693801107596777613883237401264372269230758395078884335319599836568671359248913481004431234204645151033620568534993911435787389816154286398051799164678055877215816888691197143283376257180037160762077137307298647098604014243618504913748553392915885566535556081273081098266092643681103933001057377292529748137554252964904066578763322623455509956490134138915448263302095907929187967668311567371915230100691350180309379936359003196011065940620180181270616305657735837360146124190354082964231666124245515869036100656184101084770228193277677413617164219773521549243144115190992582020240662807856568096141526413963053052642226799261603981871710079371794248772673025960140687752526542100281048450713624026116933012475447897728803063308725627120859104272794275029125640319006708419762734739113778975002409515238631316453648489487603229477845361276709519861048125435199408680762273780526080094717720735988873313592201252945465165865570857305649609048757212378115519864953638557491565304958557545401049112859506220459205443360320112875626317809919036208329955393946530780341988391085845953996991546022282838741580334975203778029926054149351547654373450398780190188841778615398668877903528868030783819633251921679326288322860409152185036216354264657967768182705434334380405769958513195409755838073702913972215913831474927768152645498859959210192423455730845559758946944775379991608063686739658770356049381683377828853906058759432465051764174203766289235794159543216596252225047436985808085742711611690587360442380948720284023082368909625364139399026884258620903399644085735476947785793243094826422185910779841792593484706260953848959824416157032906675219833849602179965960522529594294253456757763844137375305861433750503440844499541705282352842131987764441653504984381164219934794780681827437440246472818854693535205922149694709429929226997836162802255586078107476769990324154235530544549282074227408440852184966366821611064746631861559616075154430352799219050395607740588561084610486201243743925592233515689944205010380627647219962252535488512746107791870343651164917529943832060150013429977992063871187069605863642204319957083854443101710273194742758625178108969493778711257597958696339029678318473896763893138173726129918868723070595150576371960532186946297836171584180207332982371022710581111989100171378292320943543563502860515610835037175197617705366740720945543757287012137285824178189660405410641767499486395944018853784472042815038193625500469740952701107781559474809109447885555448667501645274530699811565630074396575731423268201554451728084831058273140838345566686476132274149342337936702271578607185069272039994404593307608315377065810612971278419496301989754666117310644607613871645096243600204652621560424787768384516127078011657066658373497156966223570465629950050496188967925377630046273692274889798347596122551483649586589453972414285496932401367981098248313948963288025938910594911900995570781618104101053505252060397691327139572762605341956706742712364487537608043386508200175149444661534537526673699295138581466092006686681472554334688988761070430843218306089310111422426885050710210785948398238823015651090104842752968461166503954486782182825686565982968648965533632562629654878696961688852927894141046600569256206069951566411708733822284383335736534091306341388709566274759075782134844301835288546289688233358608320514031652601072800157889220848353235936627500618626166663831279709911992732718312478425478412846674345822167333682027965321824502205301799403927498756841507618350415541775770134573027917958152808428939682610842053424225492414761641934202693043420655817460783893519742651323097573885878046847622383013916363524915692872537944590054649829322503033570016879466993705327214710416890591335958374406479141982061856665352869284868597557990782892627025898202722860906325119447112301451602085354372405589024008806232653727644925007297973631043307378463673440162033750937926718434817455127838574140461734814413825633390043682405051684696633667034709333925925275013893553796755242532027680111056908409365445705724502461205939148779472629012287878272646684415324437428576810184867027603678390939562115827062591422989398389005773845299433287250865554371471919597007079132311863804002447270591544303400430701806141782517278975721339097904612746357441013082918847726085748347571976626054742038518802583584767746576068239269015778897573349752584380345771304531248666998246582438345700077642139859025032170621656939025210382155726016948022427382946512177377484518858010643110578369210418090664134803202425198595294853875953527359354640789927071737647954886461958481406461110774186709760360969642856200218223180835860154379068034484707630283784934415686370836267278886601689440592791408197277698710934124302242363028639005553297406313758828840550148781571704794366529490470460004504329614269171670315360405648844680877579761886448557551684301708473284626940954070222442049907346612075417355060201403286678013312448172273893164177988614613136401724049930534119091294752671930592776332328142812707891531179305625740212803033114557024456187130471145149813523638653781963216132879457687848820511621630537704947826908740931356243262840796162725554598792638958048703690194909934305637017318043293327612118096256357706828361500961085316301226081684270288858535281907961429456841376253653011543134778585413909871395358200823224992994526874360458377122902292395220015967202233734051558776145205020785125125063773816304126936835993749236159694713375447825462979568196678325772706884554998644461533931761112934437591133733677914257423599407144808262677317874652518887430194086254570026107994706066583008174596926693576027556913384920705044926201685391377245399949776477397506756618101641487443441225572673238838899884400223676574876924215262216081039337254796579445982800868058415664922427275384961673930697588383986715745919250327810165242684487200848726107730183349249187609635793693696561258320446393426557754571003448874132429721230004355005141887655035128339461378367309383356643739250750964108972947149967307214591573837746979186882058439122333356041751933337808205508174404612420881754895805558585054797498316089139008756897821630391073802988442109285245403156807662212534577478456453390568084155443588428407202301062589591615929050009025870066419544567987298552532124474377940747675917928446388497648939651130505503400820016419092061532642572793018423098497133638309557289285557602767668311486502599236077235007014838762704406859689053991720329144517750130823975491199735221059725683168356468122274764449098966114339384892615943130421731308260196315006217802810731785498676084568134768695849880516960313431125147419215169506420464751024212254271379726773799574582312621156927042240708128003600921895333660488260382476811368371712361682870799972378294889784991610516496631285964309988944757445013920875195257905922436203784275309317726947245425601576551523173332783478070426418625306045388051601763328743069762610423631629786362521307769798486567053473187087381029727342593529725584008776408081525615911680843087414513926515415229507607972493100313573649701544475403028767686948974351626916616390748223671561034608752501887320239682738372619442334277572545763436516757974979909615484803404948088342477832479068558287600386952787567845140209562990145275501745316583925672774400704028528031930528760577592219096151325499121692154024824903054990876587982961205145661738168817670110887756853589260815601349830964069083905223231266451173982080828807958705775805377251446578135980318927675670867620173776991190484457125254816536996986579139706644234503814014731066294136065070229816441750290882130494274953689336432498372269796539587373100082993117497685286634641126625123660348479385108217101879954324520213777383141998330862523302726469259506821979248023489601886490949380485791137619430278842765221402629951993973040037194762899269345854458324002082738832506162595447762464074120220197265420662974974834756145780944785986670476107732188213884302302972160044473312759359588012749861265804432570108055772112973164460974322426702844509659043080791689327819605714558004782354664193458668610739604634663565759655131761764952045175143380097777967557700427908601086237158775801780850556975059624929758887646128898022602811637301205436473148416741223525976180397692345249435037778313887458544609859790432569192473560465264744973002826797593037407304613367823575851696746549327002693787682940185356224514545323467585474517481674265648337213450383005013557268601959558402852704677839285202708160715681061821460934842438710915332988746479046386822533175726870020982537559421102288171529725795730978523281200051372199114346292635903725350328228829825204535712913398945388220448463129292679770358898096781075298527146255190783436409027953640327486439169995459371206160637202022014707996335412180616186206141975937061466183909972974336114564921951916378063954020277074338262244478345805543005602509354456667087487565588096537075846558480623660422208304361118275245550932500296893075077424311740220841112477779054249534883453743836956807735666527444052610927401910722980712860194039135699242097673077333376938552207511453763531315059396609345428462702498089411689417271002413691861971231798694433158967316223513573775747030972960895887059728914156192591514499712211651396180801517716980543406483045795129562182354367242896992695759955511075987150780281604834932343058803901742976101435144677541104453639583460326995622167850404502743050240458163660180133434734044090169738086070772865913151120188180351250846730599090159855238286912677765682419539280274577614640952790678394455901107031063938919743174380060244825491642544779338938002689080269713842578717584888259707745775202484160191978066623464585191720515867520985109450393337966209560365932110450508813462800604870804110032442489232583900039419468093591246904724822368747731298676488631080121190117278765153396104363924921581913878553556381936781711348532719201227289012682421742488743565055221726910260186638496740842132900084071159320803645426640416903113633728560956761407480200182671258140543682368440557167056406156409143031192861456217910323371866568063646299389461096232082541872768625389294865451364120088210552562894159118896902003771209812721977965146753390049903764142305105480588619470963841864961421068752546643800199000296965166668600346583980239839214050429670369288002620844677242515551578577773621723843997289891903784825822629287711089329110810232084020607189797061571122455075289115555398236958476715616011252948256567291753304021646431919913665656280425583817744921676522006615426512763126305367451679164361294645111465484510335172354180840565402909437318189122079403014388800537290476225578508892295239339109433304323111222264619342720832126977196014889175513234994849726312973353532688707349547757140683386349862118587417561145315105954229122897053335484845786352190284240760865821879424559622402405369560837609632735299268720486556424126485663323370196296951556135066961383209504966034120840334883390838167421123224291556882225528368142347677863956364505582463984468776842487762670650806971199856998627867599094418638053690897421708701161915897913636746319323248098643590270268726388566819761943486526768025260104242298938654719136110504380765148543682836267695542670739729317552196710035915731367275855307473047948274441960302418621928631373773984236295977125851468371433200281030170637463592429695729549214758098545359035183303247354105290765229250856743556548240817096595612853031959365474058094229671804359995289895241500389950862049210856673875137791846971448946094394086599198584712215644344043110511640396946113859291609151707192125522475616694713722179531443506941524606276379671983811827072114165379697888486018417291777841942220823962884098529165450317200055936575122706958032059898529614575442173500275696091026799401329370148213515934778977519764210679635315884634256542687884868804808594500876776206083239076181296274751092884588282818852633160216295793640940129599616381688159632213818074071553778401493574892177669070453399754017826746767397700130149779960208748282514916216926577552671710573093517295591685387916582499438579476811459894954048994353676040443317616405223992356564201393591489135210699792296032104038963379297758445729647144884352994248121472408833317125007002568412919496369642272482321336047640173566196405331078038924126665630532136865699519120009610745298051858096887786388880266822448825630312126734974018746036682412551083069542934562003902703847055238600894791981016369310120871187698534873067606022030965327905327078382221740140374746511944216036113598634717227129816104543317103137394604015358467145396776637956683511618677831941927720455949548741252424122906779176916124965200773645698408686794204383621093973811098396277129752596451468695344479154858740431189502014078432560003357074246771499611496487869557372042093172190762088547066861205034449792370139756024522140672786573265982598290441181460790352143650491254572474275169332806992268115165827821215668958183222643907224464994166594848436569870798296575479259042912350276591755366807879428403956527621589257808727415195986993911689107712108716792457376794925282755984425664583527092376783165153157861066452613022988303852645571111452519874510185873670172042576289098230035362861046620117135889517338917047472720104819241527859454123282900466676990074796549590259419972627405201432134526567288101097427457497116764137348145291067211828790288580897272141734061998378366104331391711635563300442502374292977124271346175670124029138398636808031238284659261425469720533248596342071724191733563245227122181537616640452779958743283672951016774443861034151314115666537754507053776149399194636021998656382700920457631043029259549470933851090652218155232134315423586761563585516898946057269258043978598395988290151617458191139044668355805132310367989788762881035012704687327971155704877712729872355578639761599574848187866167827379365481079563814878894842132085337700891895114740217455414322608717646676825808380032943526440274013671882312319341744200796089594697337896864682854283911008736918926793427950085392179104381373923090987083018118923598193241545684796055112270084855383349465778920489300303349755805733600270571012619833073830709175521021810407703733509567711630896139656153609754779881986887772243415551389290931398586217596514237894687869359949584336527955275934267240182672545358319216942216875067059828214831824345288936071517345802217649518945545526592340451313164473264520780566900133356426984631892083051622159117142311347532515343420548474521220098687240563897804966828372869622624886585197694698438801031199770768625456843244163439542629209325839005370688537519388891347482058162765020602577848972872785237215129840947597650855496628884103624585656630012333155835270984711394775303219935408339253041627794111249372942159148390903170046352382771491697596600686365280170599294751693902413393970116054615260406851956811693553854779222156514928606709374144593740971961110534905131850402717125261604258631799499979627599546488590281083178818303011741781700815061290228982597926397196995600657273172152661947796181254031157279245050778613722863083586391082109805007899058502835601002664272564600281870150930857278976869965681855525664600750268482239184222638788926978090460998403774519381644160987386604355652532423993344126035354441778964880069021005809344677534981466696104832669125028491589967573675311445089384863028703721972127771106332500544959030757638321461118637418409885772567463340388340885569069834499731411753260555442146419075736345262096007940042460186918832175484440622219025152616803825606435201851084066176683947430222075387154841591197369241993773355760026286791491141102289351953918971268709894402665047941147842289316335471911660736367958895655118712177763969222751170408817554199053452820201617294268045197450548234713706425521423995210119144089397343771888257784106849560793838693291934691183318459756388231577351042602390462069888420655492017118664740345515427598209949393804472940877337450915147302784966891531147545131521925657478272445078139947970817850167537662919787265913645441983947002100640445820461653874254349925335069461069737384171012844825172495944449334396633057350944986164244724173222512298007458255217899542885754121446353865958961745563973463428714606764291446182702045328414586984162489915575745173640303401904630208184227518386890046918768203445039058243009085832618970215872650471138802223594910431650283602373489139808692063442470741292014505450030445739111887877833814875991990974667813089611917610328209568483899767735619188406455778593530850085158406161230855486094113717377339315443620811011732483058952908949496461562997924774557302945416083253283305927734623371066059562751751186675312983071834447408698699651078776437075361798798044268536399039652987928517954994692670030995307547870425875274605747978361873076634686215587003093303679856755285540874362706903944594170103020146888325774369317251431807167957840788456803067216117098680637097663041087396572380536502157696731276212892668807632594240965262834699206393094968683362795786222737861307467705450031589696062916027522846604021600732728465506388885018617758879022777155148811688310627950295694102888900456094216879312294422975447758568522632760078620742104921570379894499493312200086310531008263198818693188902049711559543216215998423576595515673286903418097515140311424594645870179050979408611374588195125494760314083164633180366261242277852030964198008863435707105682222153543254544511355746506523869572026501599541339892871915293744894781313241500288906264152866514226193531767128586397927753337171944286835624287746136520406285450406894678546427906169913237414923399082940762339770976380315559692651008557776156266431656252197438298559500136033391001240119077387498934658005544764675008990713859017615425641293032176927541439863287901391430808743974697860905184798011748290050749094252686670444035675092291193162458950248281932222105889228770263676202936685360608788821945500717561938100534657397873705680513931907340270299793258185700776213354110864240606144393895659270269588826168419070121498588426388297644999627418053099384087713106345882069039086967744023102881326280528772024140753558729355698235670607803869042367678421088094079732004558720366347041049875694582924911611463599497745441246688190463441184494553735081058213082213467857204599041883537595031230419865912806734746308997866792153048494235221408444407147269254213718680061449416311555293300533465886797856923023646652322537250351421860981607650323017091156418780331353079887988408563390047268574246490510992621310983293729794134123298248198267506257565597465198572824365229001871931637661132274974248239819934419572967990899069004153969458588225325385813721624975553206345175559780045791895430873158871834362519297958448066780793977767846795414121650904088489218819820502874855185889224298170934683456989324590966591918875038450300445710916121545639766823876969483971646705343877269013307387535382567270361815753158715707608884614459875188310615787797377893507999609650561607718552080167231815566408885860715612363315998207477333372535134163400088038023882995641532648612606647115148037740636747941544039492017036847285793267750985924073238185459240503043316807040478144583915707956967160468215190187385746741956097491434991217070222098136716228384854672153092341683876753051768239217331846043046476051148722266945979904775883474084280543993854216483028639684329535403261717966786281880534685583954017635573644330407813042958452892793060245952361904465351872133336855857196825512045213644415602674110160134285900913376312560418562353231896348231278773710088879855722214140820441209548412877086516724431427099634254841615108205435325456345614739805116582544877101372599154398817412598485477614959597729037562664091403232587572841202962246247712249403582493089773676004517966168863443779558875178659656491571575783529798674906694384666873251496547454333847460732015077787371633983255836792284412112577307052544225583339715873175536217680658078923005528153686271628506310328304844447723493397536642272895689957372205946460519432136126725108238916669331480426220414096414494209816287424726662119684596336832897008297151437205354125698346653682317510487940914072044635537236062724020312327336985888733510943078984072007657853248849324857513897905272846591700469626264675419496465455589145647566432397951048553910389459172061727757682611935749387813617249605051604401523403119271394988197420792294520367378633746853204878661954446320872074587277185579315074749769724684647079551797806201056529660152328280545804621607604348673439604867145305635302000902736244776183521860887132104223527859256141805417674915501665395877107943469494215889988925600923696837544566619097766274292798181022077867401879686403447812268706485420680487861683801768277816654616705380075094371359472191633738212971465425276089686740110397125846950839886809890697768762463915591271278360571209829172905266054453455116107391411208532264967592197652633652456045270598997841370277922232208239511416498966875055137781209030026140031797298059162045899215541741766947201772856284048083957345661693963144922797055695557334323662938410665536983679496763905464426597651796036667092964831644715776563633025269651055713141052985479720260186088117595166477019854874109503262316511160456720599757686950244948680759998114923958727256030463004901797981451924341138456926918239774258544558818566388804181542661878517986268758204861853276813567421307651344778984969240565098128956261350012852529867305266885807819510049062626972433553663896916217949055946048969121381635421219096057412158429630482176558502407610568396568893965455911984507779501156142179340935037202881004795320457993222447361506174495712755793399794945204335207980054047912838576380468163071441706972379739308602664409115275727517804773604624982453891631585449936899873097458012735872174087219300803720579665665343601788499914602763698959833093386079637985203313352253735099619389460378758557882007982226473399754192203766751207553217525343775955044593962425732925016465212818701653425296410589973802252352162577981927282422878025016547974571546189470916866945005157500438962653846675250077440818455165808087508296691362319188781939082027043619227008972486329661475071234445392738740833141572721992654684835533412551632130815616321378023715046876483419771023054415401103299172034744714852175899105784645868584188095241444000835050108874179118977916165973482351751938047063181899262667389270022785815892093009826363465360035311287297031714179553239996611778277375154662487091070108990715293254707199631770277185453719332220269359058573328795780992445027075808141145768914393256924949743256552470854672374003842942642437426174329317915394783878454504540550539952900860753619139616510279254791539880268543166745062289521115311753183649287232779621598240978060403183157941181079028339113867717045629580924174501765615326603664652632756579964164158442226628434809486203409878634403621900981968382374480810161704329573754874460633084807959080067218325494900338722464687119380144911930068655795637110633840633654576552778259987814886923015696572095239495383547896442493099413138421485477309071645418844603507837382510744280461978586175380314779872325937065275045744287467303541970376983617760349170643853943240977331658195599057953159853586877752857827494958611473451861531990189104181962498705464595641953653535320623689134730958931981287878041025267495098992720479274197516374916299045588874218304308549889033332062376468802920176898063406782779182989038288761436767231370795033990377871827926056345399270479180214220029110257585970934366312492105249642245847377423384264147466078953780205969856889189824101203249203614330942327838920601284012403372021195009755177292406503070439265498840047298022442858872384571454905809790429838222073898728708673646631055217709971213049274807463695080444556401900506274010513912916976326898064818448638123126048984309745683901262083830355096272992155735270928106592202773545841911770237124249553454033285667575116242295800709010017911573849619858221812766403981071344000822539128413094825223369542500253884945465888776558698344221577891697256444380091964876851087968313820619150870295477933997868778001348539842117623774510650467439220168384731903221534268092989592940483749542201263821998017164142008976538031363797198246891699328384663765143787795498625053770316022534132970972470026236990054010259208547033509599037867558552739007497431237011747380637366060769791284738834851719861515927002836486248183190635625916827258408217866133500813406159339544335522670987130979109660819263511630578032571106654755611483119303334158404458895553180696769838763109329236887770841635980810614544803150324551518370038625331928613008336358379374398857896747419843710343057294966230961732792298828252785091816647301144568744087258260021390131643070656239437065050507715469976038099729159820875629411188443609794242520363982101526548942580305044600834117241611112689633216905066039857267424261711829966389918513169882544319326333264292448191943089415786217070856175112706297206677276203048681209226801409254749928312091907028930015934247271504006875672200986910654717904464704244425174117117549461841689261708520949061161818481140994466157096602716464488340507462886808352205649790733694815497136352332768632445055434980580828343096515590707355928583550453512740378146866851656972253717737724451410242185542885930138635211632856811645161517729824467749950186282672413088982877494461455742289704456967765455477021748008473016835551602373842521758654014310002269178520603224452731706203474997482101814474914671786235702339959060835606140948379589256865038411166134420455220338448798618814347028791614852361292610551628798514816123074726685006446896254799901514695439345197533677796624195758217161715567432633951548084119777430981384401952468145516231554262041953950783944440040001226687102588501861518584045520045005887004080593329145199904190206559161494545402508122869058154120828329223763942245715801123099896790678631509371761239220095745521865358501081386663314099112871008148451407595223720340706721016898088682841644389111392872702832406563230856839294237100465034760657225408955582182705975848091139209666798411392965961913695319692181354701575188782811944565861827913483337368350667024121995630951358674053464573915378449804512979651438201170897908791036598426444792524319956292482818462324842318350146530034985566040097711448603670920365943858010110126099818728688387362197444318171172060286591076529715594429353434933113416192598351176729664567181992186408685843511608851033456949196727410648490560198356487892986969090562711739774611485357625569480016210381878993654147471043749471048427798446580816946797177741057649213648405238749016291322603166603466214110481871195603901064087318351695268200209419029081922821470397865216083780488944096797566730968102255819975532794789251874672452607987283551450396854721227525302057426188246963632563685524637496190201451570976658948721355462278099852636092940303918663454257493343825409014592145958753390026306689134341555219329384280607518736622149247624219412946159205060016430373141750552386797277230674287180844725028888564985954866060391259256765483879009094899820074512297164556131363334584005238910056276540063052785761976346563215880118597985254526187454614989873683990875152173077926275011263636249176153732359706343968740389319251372880819911591695420913849475684170030559605589011091952806494542064570097995249934375931896186011004720679118280627168389273441050432052778375078768785106131096528437846839459108154845740025795747269741856292350322434158560332415143570335875632100223703052208257856476041324294228521431007167197143124329613837104457565243932266371635845152351418902977737298485897998846594419210030556494633639955644050019165065319710610530695253369392962578475547792717952617575321774908825788306969885701735196636444271705624507361755594729712818810473106495510645062733591350892664109907648443127769031944654896439967010503652574496187651065625947484538592245004231905150703462205093326178556976076258332287011410722197318678037397679970160125560955844443281974432135289030909953560518755920038882372809010434767798155454447470471055216516561221704330396185313941390754359001034636994328645379724060538699057756269854803545838617365096255195572877796430169045555892053499957079418042503473906183259037006000527090899940178818986671933387237185820548203575220802818608117627141915984896420618963818497637997170861462124872456778153268460869444461673358338425587152724871628198083247161691065257813811278367163477488397135855642872424458671077539733808882729510640921705098142424634578715785866672011220923954209195095107223911554502134051270322195937789460777567262884687444215540529249356160913968599783933012685428021052334211933132589997979621074831107320508809942445011875140599352719263409902902523518560676556488899551973497717689573075088103442288854252858708711791956908748291356346534041582664838618138146222075192775323686269623655986239090344995111110840276550349551847655855778403065014225855506368893117625054808064233878868795460070734296076649686157313643722763840430385524130725893924640783555333348912042376555769929626152767768515160276496995704483321884737999674003053204095556005246238294458474272775060227524870962691705460074438219200383764513061905448313089882105300449611392038550834328177704157840596954170168954749270211489934209182371665554347840393869026891279397672956003350958664752585001999392853450335940346759681481654976616883229455084965466035974213452429653333735537054869716888035400657063822643143228826525037273829215709050194707559034254769960894358255440102492253985619985403953721981405312142498977303617749391720247110880949986003789944965070337380239060688754488738602461975653342409833221502134009560331513608342431515356775790723805157557952908687317643799692507859520054934203267239404119003325796455828297502610501071712605896283005806170859005106085202714033457604629930917891769527771120688847905696941144966910885931103572868836107403931660280433522043764479538875441358022715828817355880811045328370344515981772339140101396232334891509694083234280666030017934619823201039021472236483986890737014712563926833951783067924517709981270046168445288377947500312895953777664283051745573831336187696264287602467191174352667886625996910804041991306797380153492420716227719438592833034343884902747257278483088530694817800412457627983839935077066084805717629571580128735640650144709554070631672209695815306791074710588712849411344427957241516037630181591550529920436622371888833571566553900636024284336513766377873191105819552488562035319518680410165266094584394958320477649495636003285624015259859300485522587075192148689231433771671299092810494720933684453848847798144845406756666124550551630471095686183690346600420675291236801095434721717070218872017170641064813909853150054972308139394311294078887137328406720633167731154735351148844559209182632725985369522493305708802230951183460114020947801840934328354176634880952596534797