Created
February 7, 2019 04:47
-
-
Save bhargavkulk/aa15acfd3f0052432f2b397d30d58c3a to your computer and use it in GitHub Desktop.
numeber
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14705552760839308761649229845696490592492052618819281574893684426720863149297551455607458017408812436619571030340346348097573407249789726917261282033141166587344537181547819245488223505582415010165333363916181218786230043196823585313182638248159695723775642471367697172866180431418520091975170637471247131580744702711244175407992753574378392168407010151960834173463519367950260153068131334922996786176279669029993990413378938565850211793479047347439326229490281755217468752940232710626121850750852182144502080203291457837501036966754749770483716292051783255528922433945948947954564543844334119402225049302785330772651184411951953956346733107842018937904115211231656703077599451310977689539352563100711018853375468681584864160238669010924484174302814040236404660267476214650819306894711298666307988776387543890372319790041765529519035047185886185206402829352917941673962711873768676046969998715219714732154844488620330467764197349164327641420514473328236481064836150750118032232992666888975390569711723084069837606258513619942371804143358997486112320699959758118412730552413607515581677429020736299074786456300384510273523180889866887378485699631351133882763644576774836032463759232660609168647169056141738617889243004454338972767469892989810994337742288526036051576651303624574815112929752136973205928910763398432024421438608340283291447480289953124027396645708138753643336794481815649800423768949971252245823575605873401831388867339330976993858806880665249374913425026249322112379310158881265430851319776255128927923625069293066964629855148445342137344905903445858552834029241167226870038769158598678003654939757036292674937115211102669766719659304489065178542809689343619989829448994736078284740746603403785622062067181665846739987589889671250082665331777018140186235577304817369359101138252688390907284465467186122346320420437374094699712443104482084696199389564972967416506549298220225829250571642642758326313080279372450433778755313899078188184600490952323598759293502933562666132157834623697595892828282156239936262810361877062521452112015618264349343492968851431970304346395398389522136155881764622080300855706208600566163373008448779067794466586665146177489577831960721218027258604296532646381138630757425870416519751851204315455249010181946305389509271639368730069175859484334473978848864792503984207524010120234144936831503996163473736476189159142541745628204418430540078725176824103761917347209681685072602830545674985119427199595369217467225565496910659717477503790378921395787275702960861881398233427478166265882818271999695350005233914562102888418937167887675781182689560276137787209041483095584388130646609765474710474863298707039795550032488646410714144309509481826495222000735221825566717620987756550026421857133267663302863114842738926388436938495657614620481472577618089139434482506447484548117567863816312981429283876860268984048934090839562154555698525213011823345696067523968678481368310468044352571877792340167801216123852142100393918378373702057181459929201558509356443815114456523853616537740720908970519679491563137833019662090053720409723332114236209000892739445410242468868746375786944915356423660510788087834760989399330351917806971879644611368465913078328218160064101957853654774882012171988574315488163692038142831263185764596702953491979989685781568803660724244006511363458140908810965088414147654442244187300964603748236471830893123792324440972631028496103425978635651200734162875768096328742498033865338844692527142505889868023466109610136306481776143605383028476571243529903213492363161054155008247822137941897312924872974258511340584147168437100282347283564515804542072283641341509532991519305331307423320384075033893463152560212687530946970269225186519529328474579508439163137778504336757511835603066899269180471160022620427520738701534506751098368311286533722815788767274878710360401107814062370699397245587415342217422028794554520553833025268705518858342172002747848366756522630173903025296521070469085228926593877141673298314169038039182380842476206140045493490374389113826110770979275255836509487774069995915550200669952779213993935704237505304240995095155681596271672177010413148572261465742376224022150883136417846694467449181248541857517086764850396275501359763754225822861915147194558144359223423871124356261784156418701150452290982325904167202699001157901627145125192074945013218336728053858032750937432481660331587818427415069143759323707326500820816143052361860632379108108152678668975851943676803037423764337151626764320053547659781312170875959670544238987032471420459112414940517683288850401127480784356843015652035344169684024493141439372189737958656338935697078950994017690810386530244866770575763312920242287092544447407120091845455761378186606790161837225572611869012181529195591923647987017232123114689662608274500573181179374334622411655907672572932260288843114621049481777501914954211526095323516406408678942723241642830066534796140575545677703552287591779712779192354478515272648689654888791482627907168109298989999658924880320478577354908849900101974516278054866789469731493536002753874998304305852226351038473007174696554408468472043554660008734087210021515413434749016825609700898275465067449602394048056401005796385430710229881685629061584773663133559789276218755694920804055456540206922046633754134532723425980625255299069623845771823660020986101153136331810261332541054566967768758541291283098540209740345638234006932581526976699573352130437134457088891002898168844114410612670173195456033112755828566307602133387214176568890729408169529059180552388905159659347336365555162384243176762080438308250376520477682405112753291228138502954712234782565434582381908549432830094713982054324086919146234155073942677864653738412019686805434817128082761388744982689798108452836068556402181786439639534396986670799691011272785270345188049867183293617983978478026957097600542350392924178364924736837470425161060260516035974637563207602240149569551936039714337033885925385368306886134125110848676182258667630335432262854522963063697639572323215680592868773290543838924579924391366217551346005892545150193092198393398383115513922060072384879917475511380433826400202138764726836616760852946178535874774359512190822521317301975683367866512518634866504091588790290687371977383004327018563241296350345669141818252166080039128772925239484426683815010312277955530349486220705550590309728775762696725781935266440545378958640138554225315808647217101672310499027028454460194208245342511446091709451534281246139869141725610356674111049491067550766390867750669001976013523074524191618646564480550885401757920254986714073384788212268365315446189675950352603036451402109863884715375481177005724252798126332061776659803607316234026469034444422657557198860912095572376632081293968134054455579111085715567351224439188217481605734255192160707969550547789930581889750941912100674147281156342777022984383364907757528499533736741338574039125127350259190342334434472318777183961842219956307034251912273422763984646609635443708979594503031306214784611893771164565401197202292549594409494646179666995482521852901211036706976671308964658808858577058527791216738520224667501294023722801745146158410579587734065767210932355545740106919623909615492781237776125880605253574770798736940771655812754566631957332057057486071603527893215676429048355277889461924047570421935076782851483305961168814590270385130139705438555870938504985574493742142728212094780702937743274197609481089374982982322239963514324770261669398588846883215757406348967026255565439134545626287366488209162184036347984377008485941936891827726974125311803202729229361371426526494320093461315055728994413628378871120494852416965053447010949103066733083834046291229325799734038507707465771861886042390735299385244384387464242460365281997964576701944509456357998901781796928364028122349501038303870169348989472106252198083718476694021299051617645661054227671106983603711680707767948172860474676844722731208688924937741525341174069865743528785527528299493669713902678412963093922418476895564899702357657177383291995472537360971156460901037454261976031014481129969379717264328956128837997264782824181544241380730669408371037724625858979423104280433694005744247405985285034054396971489845548700065231687244899762843815413374816270263623856020670590276688209953790206853127069737123608740451353486971756159865229626972013841269271561859964831233688113031446027408598050747516687085182597953497005485276521881070944439951324323482762346413233316521098541544278519320709888048390534946929546317772922811890451926269580000230935319134446340775667394354888870275139444702475569108283518193987639474836782565041279803476940823127513850808925619788080971671658760607232412428299199240916559628171223369099246742699117360503149353785751749284292408803722756817952497954015515286658781671816573538519906254990993265016068486475263665454975529869001256054018998222815737561434207030839624349188837410330394006561025393143428844652765767897898419148058607006311310359243244524218538707354719800482081434612019160457386133470905923627220535350237875386901852442217457354502092566024268418952832187719738963205659946770084682874818771627523888792223174030605984184858902850874405999429579381054750369058748743798502645176522555953106689682212059090739876374140249950634265440413283023235879300099223271015466507368301130695920037053938510092829283005496995712120507614775825878987489159726023099740870923371502208825628583834041065080534291221444231183142489991749842456766838384670933670208993442242267894546847715983356505083130948318228216504506271327518933978704537427333679538747555784911513938259038433436908880538612103055971939380918125813019913022467586260076719955352449699675481548139778065781303381566265533699436870262485652981547232308738879469389972486156598902173367333990532720663174168345785816433325226792857902934461685490182988070436088208020105357141165451097433336906899534231135795408888043440549772746996192936479438885165447231911667783260343260588539217509623274278277904500597659359413351801707074452659114988664886322993533271898567785196390695775295709355203576983506585277725251185894183602334670666412952337467200260891207228290487566299686236126983965859522766875864411897927200601823116901450973673692199456174140446762207774882805388657928346982163486364075856047477497970106087525731582077955364958285576952326656875656983771772563170551325179486391742191325023995171421621350443330593544128694740460129249395716693723379187271983005612966307993181135243601013123632166689584904010664533883154663307062400836796180440563354077388102298871739579261810665374240063699522904973514015738654021511662942404826860561312353931761163945406206232974606415294154477413227259878534699166505871412151313200481736108806188506123012834478824785358917536420519164020783274799485946714399686840516672071600726199875251295521283191594859847485236007189773429284305357215511502154876689675082072012626145221874126600704100928271818912038727956169712971755814131851309220640436255158531995704647066602699495074441952573728038066242800180442468000226978745758282478869519297999051633449673609301909124593368614460849506850542458807722420039468275714514417196275126658440915874887136704124603921003833503679717795029116469157461648868236610204387699397031298904739901235497702763759674965425157351743805192323721374842724802612112538933654277181519447335932229339081734633316227534763018112806192764094342307132605662271537330690623080830962886097649008675680364738438293331999521436944096440023601029398080228810253049829867666428270157076912549234018261701915609127985251071395413433954998850201054425188887227664340709907457693508555094796716892074369718829566442226326308866714646688190508818283433469112207822484018282047918118850217416335888264314846260892981803700250714066299244736107162547123550076286683583334384506292595838889042769585588545703446493964804625659131436291481223428389819748214153038446705666808482121610480809135223015517361245720791149337409370195084465039347459794396231688387978037097607147549840483609568895833697266285510715107966422664041239876326190040070668309040584989961312067926368937219567119187925918853229777946733988456436909569122871276834391578858632416444861126999583258727421920318589833409925269177779916882618358376826515886053482604386795793594455773009973560898753387172853734711478248925815503044828379066158929899458826085756433081316721866752968519235157063843335721181340766512112179150671028985181893159608002741924445835099455714518571774155739406511457088248855008578881081037726166431371817579096237502607214957946652623061025556317929436306627034085785595055899052986982419252297254095474049769740208490902828346512320917122322107689982760153254455857900491315118875121018637581220977375243808119668175153404019842253336581491755310857709454547048452150715598845693470571456365585960959125733003790838169238446671995537380460227241333986121766804155268267223459225697585475758028594422641996291451052346429852522997366075409632917382814689646024031141833127015809704902795837519668035001408084609401132595153302701284040326004376915744387042381298067354386775782828013777840054372596158556300182606160194879987428786901223593479908051920806634755145879881640446061023770478499444448552699604224780887996042600278036536455200235823149286755012870762805436063014271297344401555267720033188663835912812394903405834716531801976005563533177239350214784116851482404622640979796943038798309250644223776300604729674397527193079093210432767298254498806464117026127372397666644150135016985517676128369826547021787531818694122766214043353352026684672122279606134766049586896270329652043982021969515181516756342791443105702352559503044661279947221047374787531771775562731851720161960763871657636985656189381610293893106098735861643857077304485495262982909662938631603264958918934229091418338593715303590234261257305202201335651250040226243705132442712185807928780939915062732173369572983451796384231962502621696914146276598325070553792705432639092616695129690576658554929741290361101694229805016302391396577521935295729792045780134996987940740406453585200563142209486955433188387958351556972388131641052636816401179566964869368824813552027172342744583289560794282467047739941988246077462081074052787014682924696332033436579000953172745143137024334305218141373153464932540172210501531924360555439912327248695130511893761996672803983381987017386656597422196870883055831241024540392923126518845123034170288884105013632828346524047697062292526471697473580053161795556563385615349902479883544673373341371052996760429353961659042028331392293079024467170468574555426278804028465108283179232637805064163944547404077435048508238201421381602286915870391337656592212314946630946946649298112658416876778768990774994426577199688526811071344851190834339471559289468025341421053762903847899277599684820192994998330691917411689088210174788256140815436750813161298245633249790340854903998277077587523397504049519389384601728775064856369337595795914649333789622009816288128102128838285611878049229896973170525747117094334210582101348187303166031986828495133094548163076979431044202645832646342662188868156650756924506814221063944446118034850112675479230649181076336621248510149562184943397172023965565965854009935558336626264042021437450651950655579845010765622366028933685077448935654788884675504064566809880791118435409974447349146354810591756025909993212671302654327379286638894526924981820422485064620170143760910222479716460590718890918645627776857335983629154161316521424989754173211312463063175299221524905895904345546331599330889533121961964660128794874848598898963525612090931241177941947203691276333703607908702878146813278808906905921167311785855667801128436743635812112745514059483092502828741857878468127528942213177873547534150724832057650622315444752437046529849809533358134108899082566370928904873272945426551350571622335273494844762400209219863183598249830694918412827336382448352103063648390681489866396286106159698488097769353376315320360574745165612120308400307009327612695490392109837612022225400343556975658111785307693354359690669875747890573637619765611056107026573469919810487769372073645630828123077846574294039842344253917764181860034301879978599904029670057485020544250897296737745606082371076288876131385275415443984402697225745088397534432584250512159055608822774362222071207259952601820902735328555335986552583276918158046132963289951923700464601788442825609867963293980809872030390090306129512815309684398684270265328420026205738789195583223295782197733603752937588650654720707062682885612756482170233916252208411804851251575332918151742942455088255926193537013067310779391377696077062222640679468469950229311059825859244198900535442848987870824091581561449334016280999781762192592460103741971134384781856357508993987219082537152788147192739328266033086343503815741898663723806580733804918352285958529194404670570732292161540213789862418414353491748813788415098020991987451764669274476699200795112067925146339145077200790633557350997778820958728008347201186138013194576898877627452798743559577896198412172452262532791285263662709618749729687033360682300013918953543030627105648557249197520131921664638252000384969612116512735540861179338212626006822751953993608850961395235992221438566378827303825151358017261543027938378677026626424871875837406698257475115764971868734396395148555845398737574142294893953460913228292396958861670869909421566118108191038037638213218311407116216687754828660596462708033370718227403886514039555115183448948154726224361798254532384249698594170066073331901937970093407699227383079396768454207270570871913090579651899175928652528417995418558973677987629998695277073762005931076083609406420933366304516960441955604174378342646129814247288897923001987024339357986656321178227324887589059281429679272439655024872791259373719697231884424215196118811866099831348364356708197065595531053775457394746169075479671797487740278526264869960112629860606225511984322192212243890065748633492345129149640765624259433383259048871068300166784792944963724979634114887195848238297182074380505453709202306116554218169881851240608849528825889603430093477503564631235856167736212392283041526890017345578686523673651148823602457346737041690961502741203191979644691524866416433966231768186504291436618985176131474095816492818826231845429390065325631564469932270271343799167727047047365854162123029478457400034585277960049478044546735909630824518743010992041825976482336922539693252010471032337446185583275967596240243491833359183813460336422786827097314041191191168771012145933097902914646098981717719017876084011465164475513156318782909321791113094805352301678603361904523647710857701823837023243571265390485715618408702102923924512594009076866560943025316658774535042088329124720796025294725351730370794227475064786976039366538233403453261513864633419382728493886888760506707558605922144273557226030159124639389951864852627828138498951493832399081549278820822221342274494504294348288601952088220453846943905872692588082025758801589253783425066544185380804352077954619636752230083545653933828840566732667551524017434476454905080657559309731142778171757214101356572841381231103627096697781874791432215762252960712968125785405653338473640455340905089582317280675056140559904550992262342820917614245086603684721704874943339470493817457262771125673070216769144478183132158408686278305042262714124201412650518242786912376981433799003793936262728720236387742894007471853940740889342613880105251637201904076782022144880944031437145219595683768033246939136960632374784284064517416169897681091076549675367809515014265140288994092942993432614937473364311650249489234787421498234538013882810789106134810316726586495849681326928688160659850051532690855420166448974479085078744559115483917840081825863740972452057151888763053906525198304515328557154859530471519951518158403562677073896355233538624176212706690313485352207765243189755948994185985884913559088515554077010173118261060966883941501800339562521444252932722187686804590067086532856474709124746591689732969901921302849709754064463752828478734385291214473418770682571904739258207667617052423933530300023704280701859738952704305943823382432146896886484526155015643300088631502997081029114014737775469303268170548195525573092089480638294096748469184248677498301179614461382067107837067814631417806340434536816558119989376496479407652609793842819149317561130986584290205657564473995010044868370670838705779153636698508306101040603473792180385421960568360790560391756999017793893024610806306249257340248241214042949901891653787678183681817539111954793868062083754886719177172762459014803936376515767244469550063967218716630711048590758665471533485954383654856620110563504193730771783414806391442243068176819452404507692827717857381833238413017950342121289856593248160999370133241656411059182623248071599927123768468473999311677028063993918554393385057181183151728501316733851036074005956212006921450964753140595636492285616664308801316320542660804462251877317065568573694496964774818341395441588281414003456034515122215686898302938925347443294243088318032916654067381127871545891886745464046204578957884654109003464659380948422870067522011690348851022105697206493275437586021156471843870037131778562569789169673744764199635278624952094263288938649870070218816980515899454326025323850582206225021951729168706400865649163248275654298214862501358817522744904156550743954511403314083022554612367863234896956427770850523686003664513397219981443190238479478827886673145479583846531377867669772168143546336589518704115929116094676872496849923099390029050701942232656071388905894814138249327032022425712822373379447038273162566990348625202851418326243416258061132271809032039323230800176941431195501724881368590255422579497709633453429767091621899161128621671159627021046287685913150979398048940974540996663129376284448401016471457875586076691553377484099663467646643667136515924856657139789482471107818409687568217129551081798332094693966019612314929550866202606411630982699743758179914328240475563963730441023615692896654898505094319545606793063703076930605705605303646580804640520535155041828213298364415178420718703317791585478528924852919353391730056215851660968088188042107170981830940094051940752063926223561552704838493266588353342997600937646761277462462348486733161457433158078473656115939689002555598013245860339019727298433930042066524434722917154854918465321759502371373673803575990759594446776947838753410585026209419411480626778979368930149199771990623230772797839027570561712141377900800600496687216809257638832378440401833378411971807419690310652531675384754454551285978079569087346096840680005058384475443389777978340490510484935185438148593788629886700981946648873030219024405220819007844880864821519990962320958312350848506924672112989441650527932531070201717619405632894213080737582925747849621750741220686580793342082587472039422534387850667486570055835438550282077988632476939291428469928441853318455328005459104900293545417801118824065395295092293354113462518631969148236751940084710571527501283502462871268274958017933658579888895525705815669803637184931358151055139174055377679851380812327118482137537024080234220812946002632438786181556154413720802748173196003369372197346611142611454799624528564979216097710204103802711840778460814681866672654519298016354799983707569212907553393937133483674079969357010231455891728751493500458121964776032054468029015407349715841047047390932755110623035198618066980341459837726411928528175404025149026494452836747777761558758625258310257292035216204165299410319918648445754902943354194883114255630630130202242132412349356499423934643706412486957529133963381661601535421360264907159134851449994803846553065369833033505749552804360622741753369219156397134116252749277765061720487614090921824368024616240097345272722707599998608287752765106718764198305057494460068517084233841858328133290795078887032612182132143031284297707819728453061321439147918860229128374677420766311170569806447950146447849763436571086805215224039585864337247548624167901934301779045944185026908813405277246554318919411724190117730656232886206716816299684449124084733517577053066571158684904231770303989118208948292886900880075867775917159241983017172716551886694769623675511629415384141832482308490845136735463075554588317342055751366081867962971322618748326005645723003680764509004255809387821467240027091197824215018205584715117652241327882789408793524174129938544180963339869252601779841138701022900280794283985001162335560392511282850139000586555756853341440701234270780246933569483376490848462080218722368964954217446577381068209905626941840536968551135006300449146767647269190983399125933786614969608080009905390461749641072434748536454000616143732959448079720652108445877830549289606796883866810489210160169450259725962574035912305676285820369632366832542317954374729701945706569096219859496674695098239243902355402762066747557911864810283898330338869127864844237608841838653433999040668773577077323345148622689250073931567396451767741798640901012711313749987875959757033147622093300667537209089828602789610884901215104690778275497811311776551858167335435122325306334001012818231689540407390039369329000463693697785179434553141049030959604222181358993664170961883281727027366090010897068565516748175553176916645637830038417661096109843087810240515347717047298088291601220105487095592268451308181429666999647057999124886565116635803971591555701729211823099197779187377495017915143935404121724450784756989647695072709990238710092205877422305761246701914253563590422466871794076652160001163007907673256068193326702772191792240067513503800020136906681854699452561906323914740080511202307930265256149062024721355458413796930455526542538817472907632143130774004370002883605361242491583414279825535534816836680686405588030777868759529324019606558323337502819964051437893987599495919044817493471881543909540299042728950325415565832075750201364274841437437025776192235097638428849433352656599795417975537651803187612692037570260190795513432790829681887349634136129489350777464199373110080801696795567626871492435211679870646635866420207357863721729357561029500164749498393682083910683368458613952252589366167890342722153810089583402658833947609414744871487411819636736753959977507184000895793688429532992025267602962040957015114822223047882870523718007696566722370076818610410660327454635814965771491016935079431728944840167999897991495588008319498315130943897310971935586759215954879123357220801941473611910061939712428082523422227420483097336244396078930303731959062359256125853558924963985867690105557684666993119292696255906575798056644921080533071441576597089221717791044015960931409049590907993347036873604355105716828617243749513438211178960959268682967300180254679706659955292545055768659810555542343428539172706450935936373205353987630217835591019679856873457146576177192460080141650018093847972600841339552193468516848943111121120101474482968962864576849397941298038371361686738821509429169055206055647275452718311890415495833770902056935843251857847283028142384694352126827611674131510953539859625458558826001846940883522318069627266815270008147445269218951193388512412449962726420355065499450615956019746586196770830096854068888415300255231094496709220458157664682952637288730547408350278366683265530718447945352524676445998675706085857091358445752369321395252051016633512739660579713492263593000870763743205541517167550531707077778720320316397945333321297367618561740666538398750018643127596347361114715914990087385730099025890605662604714475498126438278620952838056902333744250338121915361983987533245137750756116805051047719805427025084676107963421261939712995534181410994182498785837214897011670361655678428915033267962714495670498027665644160096267410709887131927046167392453263204600711614522454905474327621373939501143231427815114208296119251373670884561372168421018449278177800570679871142543262012320408885375385445228268714638100218229278939494144983300878385103760432185406110307837870253360568726392850177300433268918324569052462193129162091654039100719430962162255479957127085270238957712415787570072534387776368830408136797977509658929227454421876228311472903055635233051788097180199210256845522473344603487417069321141228414714384265207138155839681037640331685748713729224481578719497232325415420014058169578456029245619522240051792495305218011730636480103944684530391680832756866803740312277526491537731042515513050192991593616220524135818202693963398012081989958885247396532563413405842224982122768519523437213436075773609338325983509863176002970051385903415482920688143953861052303786820040712304901881363804912962919193889751777556602120757860167040746525506019752204250287752257765570478920085805853420177710509967490690892339014371049788661826233836047511789132287867710888355721722956422527864838810488539516403948182181691675445398184226362901327731920919913853885551247889138288790183982883095603208997454433765558274765302786067863589095021151414397950604469779488368834758232469667546698168880834370321299356263651145476729152136719085209356391671715524149766019682713012097677879476951589857536618555324633551086057998809155837137262885331356346709518504822873261035018881986932080243349010801669067664006799850537459651577459072536103877605629554899317133820831749966913786750474461720972237916663577483864013780976216557818360050550442475806619386214142756941100923892466115320136427932227674803116783079257182207266652281577187830500326452358811553866575894914295397298087954398887216054749083488725019227868519208274758714581331220940906051301938931755473707430461481746920938772680849234322206046613496806327055246469125345292891478119474631253480985943609110928518135812738991617351295776145437476073477605844512275834594612019396320993874526862960542064813277288663262592858432959484666431431362499280000848211247652151992526026997701086366624725181299299981126141917788612965361558600356667449632844571821113709992070854085109391869279444303875143188396511434524354997570705808788865929404771623147710794674349883039507372994646777815743879941000148112889742160022207612522665589319286541163594049362139084823848795984699738597870125690648734022497096012337088273110699734380255117332867995513750127295898591325839822137756892523475156039883109675231810458221269704034139046925968332682945552776459834203024765593060651101608895739296022972036621120583414470084199357379619486523435405006353063917576771859151453673392774839183597241717788877894447923114249038701661926331946969541851565751806558713981284517408932554172804715274480467611241465834258889999926853558583033198621904574131487447622194839901820750417619815603900137389633205961961605893205553719047144003271799302627268675169922919603230444306584935008314450849838699367011987939230906236522532953363082414248691612317060662742665401722220829519298675942928028874790085893017457343734045594091610091466857703053207846303066528921905408655604774982338803478277292800044006298949188523697349486125284404752781488310856131382742140798388259004243602855109369748120018335625803514909281023875949494426151219545070522416322879472228460092042266019069501521127031151003372410665786200073625403004052578890439913754652732503184958798163428274013648494597658122577028622184019487314271844860205726937073452429041597706515482674249940899461923352565633091815023923146477451855880124457888575347991885312825663712860089747590757128316785970694857909135489981360778357930238149132746112392817798867932726056458920319696204729403084549171631410701888548194190287753557084161745216157530089157001904026458289621016960532262425001297938323080099001117834953865267720420241723391943197725394773060989579012222196186956087118939346740541109323989517594722788036023920699708568946347347107377745041829713747225127008507560623822074438897224930261155367056455740521966320149626427961770951765161695171050334484699276942561914196082043267369274780037579766906431512375522717128600030208370327220455740202154219066618378865024842729032107827340235089186028481560509199312079688596629591115073897061647645444892282449495484746795057661825101554451393304297170193454905740296354562516957184502161989171112108235326394747038948068934362785081164586995795994859911680788780015782735389861193276127698219550532960438256947679135273900250660646414684376427733714113608934400030656691208882938892485107915944435566914545000946403436985544954344871787096076539200717887250873386226794706955398768647091474219029063524498129236471641667181605071483850671856459647003501001982190572460792086339073570453216396386789393892099264154121109747276474027575441335311296915319350113601257667238450053143862950208389078883056344504002155236723495660464068487847655427752637466302399450606661330207807518689205699116394482757668366602144574296601122833915603877205336279846414812186640927836881785710821539554937971380727595373536505412877692607501589818211939978938038582754521000284578918943999834865986313063737120969329685666813671686546936506210357851585321891983047699722752081881604099317948181109644470599013293548374539279699394045616317875002600862063188685063733804730729181344132209232330943004460148244586458636283014448791864316437553819739291087700503862268108369867661829627297741687830612531090387133748010740383141210599235219054707596077644379757439216098623098815228419336775465652127128591593596489651016077176858113716048285600188006568767996539268843383834965519705922341417446389573125446725876235538035800009150539442790264482561322120163286366010428204857946238311470151097156617697909903594547536979643591273844587414212431783029524017650684205944126564671522734389155821961506742268004198846488279445318960862915594782219871370321793322415932211433899164438291694307575595270159107248218832432567019487373329609166276176587466860481033668889374440908489713837319232225029782058627071786280005885512170696052710566366478487654634897666726890346730639940035872266685508441473739679335266732932260674343025162555934061785924371006481644460168291970476856633810869210052834856766969342277107249498305123915844324719308937664412216475257125873764102449215889916175656887163007371548266919149410487905875936155365530808664788434513202423438288244245586062888828559491039588955993420387323318996892566040696935538230843912524610090574867961576597923270784099098463445876606111212852425384634016676232128132449856519189892146794013527465634592410150927825628948022145051997678790792058583215740063215343297372399030637843773311096549895068405224719763960405728528954728842343161625976816574865472856230668969722890332934060920242158636851060211577559646740726481588299087763625788654440029434760904743706528351780545868555240656118037313200930166360322991356323389095259733132903625555336942667420402166728448870874467756126855661913543387348339501108108405540316582239942601640737901934145635250597859453397897105956636569382127500580981848072032806483552183369854073392027784029294739389059935214884093143362519919022866295046325493864141629070961853698934526875398528219271100640046834078200302196841001899415904523753108638097375756597647193832030958347183695000964977004992211776020052333396595435510353040540564971528556115490387566223276270731024768231222841855053246481511885884231469714497480529785164064025578520635641126306284734295403060149647410311935372444962179830652687037015424340545193633840706531561830112334111501611739491154475070108197873932762405503362602966015557552199120489101903708064134485134204636060929505912584143059990511180519378510193597136309285585418433224237649738335197722807385814604773055823516709505353896087333562730596487834617632815564863552537529270523580323977820620140089984452016364727248255302329833337470006411022305442508463465698824626122303258870748766134822526578786737479440218787297563896243183174672827709395245708941635340785541969762317170593305710019940285760837428364310570834308419351554905574912710219847521125986188766792139511156747283533690393721805598900944048612967391049667207445738614692376257712681104295002301717511890190181873876131827690596995094142852530188804243762419405858367923437551327915401123119546497829745011070581928976298848672349523742158570526567700716148564628183548040049324136460902551824578882266339144613487534636587092259699813869313301635534293950264670928961150035783003482088652706455825281477804346507105033804297408159633036474484060478719363078331908830268635777340426765113982123977207470556688302014679806475697618413096849426054875393524990198436057377454962955409989475984642954990675223713247035842258492592721771065522288937610475366177739764664719105350386791636365629755984169627779155958579133008805769995576018963332157111508614427492658710266690589147202396344607522495251738828183375312445923590569038554832672916053036542536187404405360092101011966879911199017108122257647978930187703233818504851868581550879617507700875966377383481844592946012417077951019805299154194491681819305428396808264352961516095755899892636101887556779017188262609125010044842605318001660566019884328167767155804064375941298169685767004317765307806200838243693905521337758751064150924510153378290882998939903561523299773773133537176297952332434641145671980950592922637063703278984070987404974423996141936689148195784449012354558446052125056917476709849078493616639251205578005685747308797732452202203612344965179143315199024873230934643272298133584398737367513891910029338644228368288848199800731614131516840057340142172782645064708817291420081789521924123653108946858769041652358957217867394902142303619348430038921339404474341438008014322671624934288738274146481885252512320188745250841694890119091366546098795771506805517420370312836572269207134502293354898979315108669872411581607982884127570340191543764639727013571543461906548934489937521452314814511341689462835534108589152674473306928249973673815973109204853407031277460465577092228939814235998458985453662576162880456570589858572546629251275051918773918965568500961566218658362601215162596685186996740805700903600287438183862940151198376092952227472367272444281011876566078263754272516956827312126939698665708719075332361834570761860273870014667902456330498899603493687794618898886684350869479700860131244382591048830203165088804557830407475594643389772124675012400141012034759860953118489342258677185559436569015182747218981489588938004640568202237135922631525789769545469497664234507895533162543800548911558393348172899280905536433331347165396992592250743502582186547427239795885581647347066603509586602979420382107917215587310042503022421475620608461900246794880069665616025825388788169945603744485223659697783467551558067541970729674235307585715942007457612782754338030708626205044317785664293494616718110093918927920829523309494617641701562697337275372949165156000208385724065889875581034873319370458478797044348395621916897502615726229016014376513406330818613986996324311454921838537290992577512082820953507658973645086082043798832255598501840267987834037653735240491856921556506281856713772967464741066194167032534833175770631061159844415311463760113543258737951352992664121732872578366326962512008557660019555326791298075627052347348713841666458794124870260984973348461276203053572768706696455619312766403363572185572589740761407418421124557509164214127975494140520741097120987891086355899231762328105707802385133352116210964470707839279062003714258863771244671292794772931427302986068526026292704074694301999196427932494698405380146933525553982661800403243618708025298236412400308988850640308288174106997118456188522938029919889378400819785653655574080934627794437402046539933992190266075456763687457910420111102684757301490033753531109501386576489622725239592650439097133779189403811153284785811105922182706594815827038308345655002190428561410204193514321858918857613284724164884554661261613348522646653632115649254728302124175217017730778426650939397160511876784586847278590450579768909763046041992740364233843306851777551780771983388161228217348389254582552997430004721949522684144240711545250281388656426847376125586773898804797904702515204652663960473793250419400728465260032001129334397707322387489114451982825009631456226943364873339278560420607333342931661110747442175900713257404405950199316035345583892923752815656783758621235348761826971398636580468092761224368419301026938540084662370839533111183910939537316967922042733847756100929911435487785047953429912357043787468757246580765081917979116395614983889001609679368884054430775494234604219731186944105962689517760588624163547326272962739338083082172154394994069634881387270531582216497319471714457028539296134592091943661546229283207383292659818070644541501615360513178406638844338492419576845385113733218389311411608153347428434261116502999449520677202638994212990234151818630938879139477372761996773905944808816434904947675806008882335558231233570046004645801499301450987897493243817297499437910843735628485769280424633937414747627940229052549295853870515271193216493559412909074144303440614487174645480372061844478729814452495375156031748895449746257146077979478848115138321661493344317839760071481440664706326673206373929506298901741415792962049028719930133974325503222673005603654108896656299332590647623825169693894982772941530956983201207473312649912415444136197110794250888930511685332660671155188516312518453314862356719960350001636640130141652291829881920036072719773385854827300741726529941887019190296835327955224054137534403138032514767474115413035775094906788722864877924409177391455259109191498592310605552620011469437079850528885966444662016937871340953871124794534278133835218456655598866866561777324087920612431479999595100413387365418923488295679046263088517556186487816630466426301706817984592282904612593689912555107327488588632180703478480300589261470311226117378333230298262744814031476826009252413893058380266485165197613085709357983073590368717431218627171745248739255482835974488944031026145375366221233771708068020974577545142011909040045306903848817762879592721471286565951620466463105181369892387063711139271362594504767036071376694742891616360885260085761119511131622131702545355441486950059403777273618218378816009123379546612252412870255232758885804717959412729186141169134146973804375815585259711959632633516028239406366874034512864253489676441024409434889925243334931724923189890333673852878749580308642006736032448555058338738109021408739721131205592987820731246633862216141900568517643971234263487523450722440296495874209877643346468575333269504864443751150282950004433509489018888873235402423063129381661549205506352575650753533970639744755669074543683157389081465688451685180191303414587385107405626967938511355122767771665323877573501316396094261191080953215811379003613444851410866613720854795588280816037080975474960498217847104481518333801881182416434575784018566595001688484238899767047791872519257719723562600256537350939696023243906561106422140226094548271046483908169551268051333727495958743492780510866573489109077323412560102852939475304158391157087367483125517048483319599553372001918968827738657261095591699319656230332518522317220141930145603886434889184275340884427966711164530869940391246995547097657400770693562176328573522623971749958647351324969519992584832119351945977522672460286926293273890786671817202932913329394758780495394044398361050637768050231363371159137581163736665596144064246867810538340607550422987089016361990980541548194300258599264826511971300133577090248298491686905150477465127320371593177160763099894525255686338562123848526447444084374640350482316454504899676290455097090041682910632927153835993791697087324547823987554669678273503472166098428139145779772010521863876022833411109155406944062053973708172361552255387403486859774049367950561079919304575879619120846573803794795257117887303924310225304098099927581662605004316951974043596794716593990283251385793521580877020474691774967864691336121312608102792336048665781574047885782424689208682482599988121338151188495325886293443377819102664102319720160999833167972380691705729580648262681671783130470742146040888019963920564320037165109271687718449245697664692810304320016442476240349266450527630971414264854257715804303592889313709449437448646350843495686059353295667576059768693734338136718739066676173913221256005989191148567088398008989970563826072159192372145026822698812512536862570885219671081802131664794033869027447874230781448265652182836975754855311830294415392851178310115713312441383412560624217584170536604097125641394049897483984516091049308514250677037326038413433977644420545563379679857538207291804063240423316696477603195041701321917210252246765005147685063472561647788194352034740077666313479178196196972371939988520188367120715920855278689175744697521851692548161974924280432771128292663529208517860620934937872278061967712615539544528491900001726024871641223817832968678695857608437411655535982792828485184782187761690237551837992401254486650730731718091101843665283677214555882088261894309465634189132019606998610975103163175688057307054614361501152894416089968743587314949975791399746654957839951880882840687525526963202779959531073236156116579434382208875681408499115190108901859711229719483875657296476238894315522440757011498514144737525108906557768899000849125986010376467893809169441461579835287943814250657894558106644697418814803842326382890609849687440447738064271919417854215356637338338054928234564329644554436715347293027416148549297270960390483182811209729792813629109183897501539401600806639438791313736904328421749973512100005095116302269013224854795251792760962881182745232833667950374236892674609612509409457732141308164515035130126411390231011455462245645829840092695332351331731373461847078801710676605212875521366664236304844229062994136863037732672871596358392949840544710185997044408863370541061366304463025602685576322793535165993653401350039533014801328243478019136831642525171037582405205062402206442145746349178932393555616751821751080653186679717600041633758392447472998946261205832709621506714971987465134313383642515475466510671978110552596656238608119283728528557870619090022350746348222256603007534460279449817408758416313054735486801966321062693296964163910263929383725237681961570860837032623176447210759422597867244764422098397867672201735490512175375683780533147842777623461079770583637509730209370175873216725965411121871646214060817861896398123684708118041762693792956821029825471113382725982286317451987847276693231652785264038589526811736665793506044339023653797318032718476194249524929073570673570606189358484747519919976174613590820944875226733454145187964772290914930923711430648172502120114565916479888242474547130059279441335396434732543443799142538142923394767982109523520911028409378305803962052996957424877951196916190924056448178841296854733572987273599712474742093265163575665798195830479164648459515242211664818833221669443266975764271686305720631666454044189885170149326628076065999959468859614459726706173736287533835350791014699793777525613798560469226322122122705568969135268413936857656337189809527643995860224778933545529084672117055639121410396478878248815345316344155244752712753588452241605564277789843665803339711141201151515009017087140609455990171100913744445667781865331058343145402754556371435873587803760102375186673963169052655928028322933634656166679864714435130402687457184411657346787599019632056379337267272679715565271720184842809942021780359378081036127408059512681055332607552066392164577070624554088058128823874068061565500087233541956912646566314661241596236226086275988738462639149401726108267363046828940251245188182148325294039699776100495320925312475994215254028232821580050106286937071883043362581439527816933677238493470057760077792400973760907458926890715591628572942233853082013758028307752050741055403147143300576412640771380998627268825677141774654874607696587459940761039269053951081220969471517210888149024584085458543989808758483573816665726232160440156793396518466022617816568040187218086916299684738553307946726644422451138296342477805209218139454517227772946104658754376822670151869517095551995468293178689784645753343501912730700869526790820235983938433199109002242285250475822362426686151182945043514116699685746977757502920474023386188918014773262984349516335293991874300011386736956839866110667062603415336711017294901181380622696803036905533899947068105879090197740461478456649636881502100989484900811166948915008243462538684212382314963534723755187040762171729450115406733809293171767315450128390012595430010505803494532057129972092640724550635829583571345296395913101956011505455546201372354142329447308229127670621430879567606426389272166215000368674144455140690805600933863027101231354150506817587650024569781875470838163307822534654151274438065766115512679459522496528916826045776931118010832678642885291106926907541779108178473109224240438982006714136954018944904766760783708112304654585954554979470593559424705901374515578749296610428194323623695289906763842711341360308961898209249102461840094965699961134666887819702462155648384634166518300970214468934271242976684154024078083554957610829799241399513373228267307148383130233946805257463835675099656520638472880113283497372499795527386660078426857858153470143111929138004514364845296747729026413941188088012745759540182462573980898374297545547599598500068888727158634430469013500554662131269886238073062995121487484854356669624238489422998558740365697792125011505723723459392029050720157942767777719288050117419755656322946810972670573274538939974044897690985111287179938910523299305322723462603208569652117739394134691332130353988903809253099984791743006269159138779624288051203159807957563978116701885082067177049533832942963970068414853294971946782111330905778852579834865402364268833007003966194769133059419934663316976699774761135082299315994559498530842924909423805130858668018530233048159023272795671002847162499382517202749550239959115139628658827569902188951524372577896237591162404395088774490485120319061707045509889131051147738586129368448945159409257135090636858953445709020994513365362072058853105039954934052164800812743346418244907720334813969632357334788635604302079716318418591724508216938418109553986803169458339581652240996857008898164292674860671068770794694938884775173478454065518732021398313570324801989125754062861766520104546723572017574719248551580322986245055764796976978640947484183664762405585942182470432700060130964104904428264373445414097500549748501936535550857119233663085212643741183440193158806523320513253380304136985231092469933821248461294498962442879780972149407053823108375778138243590225026547237556203813692887218512239306291405774615829316267795110040126766634008000958335824900380863677766380491709440324911058460521001407731332145558652224704120173276265738615143498684459153879721299092547521403313900678361179499671086858478869480751155470029349719847738113582180346930802721608526188493111130923377761065186376203916654316594793264613507292697926777868005174785729015855971577771750889172743946682524175766689055651610314231784159145816761909158873689450363283105907854845680029459989711831482468008307823638308643546625428392838019741066816326534551833713375192889901668369995786715574650362139703269037462823510278101419986147440680896371663917367358579520307408733278897632947070426319419552219391911537034629136583853650974429829777575441707141616332740388320933718597497145704404230796148869428497314613096078953052998259585650613412288744154852091690940050112231224358979204481906766623249298999278628350855576145537449734808067517655757326263946464988595086204807902868526380000484616309998480538779531275799161921406762844780900911619913736268565478001918940515893080343208926671653547074923018586561622491410053262093540902282828195066881968463769096563295241022600303773945971891485405629481616411921199911741212052393021339684870530847864414734213796244773655537402187276229649809752028163549594702064987201709812326439079587621501869175409940474376578017490169782645597443676663385989668383679355776047860886862761708498342922436157282278555356949886528827207057667559765077765162638794903758722860532379893066758890963399269966229780463982059836136709481640935328722910183493731731719885491754079250838060629807778396219417081129228714126372587011549823674835805856508838828651633597333269312712064678965376795433153372831006759436936218950480553318437540659032705401932911236745105452236997269556975934373663046073711669800351143936716018574053110086576239921350583687439238172348603466250552901972266483221190958293294028483704234636444715796828038779326286349114170894683508344047251706124324157122947873036872223021707103690097829211323276931312100052703533364602708472374357532802461272452184585511480166994472632449045121659164919444747629994688052562879694238473700979205467894141005380215740933010854196691360784471040841142239236166488648828091610642675769900158593794838208571517658753620563841766727994641701062136705990771109893356961318500377659617017914761891814550511222434713902702616876427018665506011367223626084420308636027261076899046801471879466243280759474694077824761200541542680509099949173181363283279710746546907947245310422648848603164719842971078345370946072426940792814631565441342099895631068762529915396414105209812105576703550041297164047838221341309298051088757274120504196965882504707262133762230459946284082657730133557001401949615112890877725832714211181850172267811149857324907702817972912060703258148239239482991633547177537344439736893021146660934129452605929701118843543697709192948682319632741535691411994892513540647045406013433821595552505434523915880557158704827784583636069586450476822114497459028322093849288350430270842826425775796631676080076409334950114207476444517150052292830946983263672470831243263955227795808643765249663048415504912867038109140726270359266380307910466215727230423752325158758905670153706338277381731455005041360530301951661074612931016238321077386633369541856272227645813961703419678830111034646372790490280402743910648470895613445808682827861760097265800573883300300486905053596269605124076758995430623589025125811799079215812851231094913967567963783516452296285588501405524589307791679619719149047675060859638088028012017754804985200798540848012819853003019743494376603082825503119436798458531008005958363636629156600390496287234930137138037215991068566547046452320623457378421412018175597960153080875281996328025136049358328803702754558870302145579183672210367737373260964294429782619644574970462866131052061775456377571006949545519976028834236584599117686600384086193577528620250450712718259524628746565363156344373997627592266532168571909218683974685385492642198192085260325957996316801767141774454433468658074573329632862645566985726065320033343849735697143062117019857969961146568789914327508775871005248888535467862753528590060617535620061549481925662506790875272773989221243195480358056448116527150754709809341162704612681228137241769750524520305210386956589891425983658843643061684675773075377640380505533129790305511784768482332073717822831591381402352153314748531017966695018488153751453186877178904800930561486419123841442743576952075783108291204932288725621920449459549727195103389278707698006427872463516695682514048646007246326125496381487788807721948511227031367108778252973867968843840731259630788621562095928733856635821349805727280178517233191080691391827227625719829500639387589518295537930758856471857502112896922360868191520582685567394589771299889248599797717101862268656167681232674331193656292574038923756671246921482079497316699415149888192968770472818672727393882988274777399971566055780006890006559253381803704039410147507985352774380191597143317766344276720856204216118121194237661702468736502362862260540080710957390726900262235066316592157056491331914757384365881037995904161261356684033705053032666148401079517902623701277931584785449219673399076345409706530365537576080247553915950229732504412902059635894213327505315475820926144912626557392866331598975300382544235665163592628936508942397889664676628061870917394963962679517343681036598536971735894098735339795367543874787615269497145986322900293962599641577408862046281036270368305550523484027131124870639214395252257149750306963566406917705387583562644351300726912962313083870293562476992129271536214141642578823898973117514340890784782589591087688818599953440016500872974680536309874981922033770488335277140143655742100998917536607675316826801519145373503954828806271831687395446463560252960611724861378252665418648380904179143149931920391291049031582296414371512632287488109740832314677049546703299096068271788598189871022787472593468103764433072099361898217369124982518987652387741458429475687870719504413333189131961806613809947122965128573602610586671483265075753711580349755216385700833432909440804247454731023354219565092789110528119499301536092103520895823825450106004692736270974818406370622973896263938571715707401931034423349406000403709561797441825325406803451494117941636591774930528461329500160536496681761471386591876836637584686973499826478205434687940341207943942796271275221490345840688503116308647387013950528861985525605124274152533381946628239128185070079089783758634490914325320681823403543925051902380574187880420663047424731738829169300574717805832790027184391112830036010815769642076499741260914929681650918378952466583265074935891491559054523967120320404539593482314034900264600944673358556146917051446957229229081040595011876722215040267580871517871602751855174663388281135060730008159955606518972672823786810793988636529474215462497339185592745716260544856328362633833350404810623732768390661292114607393145878358264570867979620708211873044753299780520660958041237464398687870101062143172345160137566159675304543072250370113259473606362239907174445404412748628441656154082308597914136989956914030685550943213282620550842362259348153950946979331388929701917739986953088106303823780213494895481286688040122914183159030556273659505852521691719724463632424021059094159707193539961133715392775003127694105651217944480160135647196335962715669601943073112965433159240479930800195870890422498884275189777312169172925344234306166521821082103261912513366449614284746697198842104889817713187784672157622178280741558644566866565003806641262276181363634390305842367576653171962091476030822021417980798679352044009207981245330901676476834199117967573291661851244396198951379359423779475892754415704363414320621411227743708342284247113314814838797893831222922343059714544067425820114297433931640156640098193414659812472962408232499363498085482270604686143744451274195812447576590112232289707125919314604386449923490908167317266078269979862044979527227064037300786376677859079864560026025754059798045963127322121158450949065634156518020136777425186847683537753032723173906144797355314846312819497984832339957546344439315447413437254805379248717718159071169808636267890925357022869683085899996533556306144571490485378535296142112855999008674312947959674076381794343184827826697003357989008983468084174445353605435257220386445254726476241999521753524384585731046333391024954262156159156302964831343627764856737160394095850335863409181671045731035375956950672268470001743814018310149053252808071518362436534822691981479895531082525561381279107132847866506405077514797254928101771670319874510931454680333425957972999330495673544997194821946654047254266839203455711340518814561016031247607270763327370992174749891936679406768416402375285870490903834747251803986447750289313435478503246149458786973535839987399253481162278844050774765321906576594611787383117616263757569598494541951959189397190490654120439449013566947658588486879025552518688637252498952295979322604240810543648623199367237225438886481224209966310202564333889885429347352589070931670502829766842203110739711768414959939013756642133922425075378815205628564740824790160735211084825183382069152370139569458308542541644846690271479016576938121867283605663276533024944120372584002450984963115857922807061607782741030769073986248211214144650303887175708306373962914063074155444114895327724829748461481700261604329341206595311571394474062935390257572516615080471105752204997689340737968439668806411722556159289217909388887435357222437475113373443439921868888357888267012079036361744157728928379082675598707488489055199117312794514478055295783463846418458901248869145312859161299095597821755129521638371884069043800173928168020122059904180522024915368581450765644712887553250501396332649191432320996913697860074696444611442571461732649629901603160185136259933870860512003097698554149931414946720486026877771868507292677923889470039327112064998741584357636673201432260483729041308108786595726387600718425410860535477287956014870141288005166887524020327813821500335777491112624423428756608360676593512449677772938948101599915838031796943800904565301288753871358074547143140037339489619640475369627220163840600011810749865697865519983549832087848371067639266173530528164694931616546012325302027558624957990082968007412938360745142944847934842742620396918159670426319652555157815757238477714569635322458436310999446263857148678795285096740824715449973996488137015120800219817481654573239703702532189928015850583732243985810458879638788391141746123964313399069222222814288743219519969816398221460082721281064731159469729891025758502192684208093808727139259749220389889012065445481123753157748876352268531834603008070326039184442102585210433838147712757263060741622900983171817302303105374120452264791788516175304911947966723237225877111236869446553279390651709732388625712893013379625323065338598824090240684406803591023839390338280137665935719178729915938671996433843621640928665133454444214550393656058035213402856370132381001996134113541719543577224181253128832185604368814966932611234869146129012200185777339432716257208251320041887854412968153290087965993052674076126749273810032790681170673784111177460782801285425898728250889145694904527796150649485496748229905867792786860908505708170629358713940822856373710946684024673868247070660203134885361341848940356889505403517914841132470430594596813867100247586173136043345673847628997015619941187164193534570088876264034375443590648329057535688572220263805199771496677960160924806344361966777845933663733981182693120486881365317592394037140086876083337760226026048723844654930333758159298748089288251593389461792111841775289043192693823727217903926765905963897317290860147212670468802678385438469881991088788628270236163741071008384452518640209596318421361769522479413664563341278307675061242763144911461791792001614233300964425100419990519363377321764355330328916912137816382395854462747769842144642717270730379210837594296522572451720470404346396047768436471725277328532064312116158362779399149455034042434179316820941233236122418380269640949253437425048252193546820921431800891423696572026979372656943942934656876342143234141442532919451547555002465069415517901255415578988567765554423632283254015927507069519949454470531524539919361593332860188726465243809671370038948742117957742981177854289245110182866957114051157509720300111792383074202085486735807647990113323804697842633334390495432597151305198892197472878115510561993605589122746509006017848124955983163520962589232437950688203157137021260700436053644176148621376347285581132300415250572503062981459343123651426545530931117366519496099732911592500982705805473065352855529556662207218128753366272103106115897164692968965043885910291637324055551891211329721257268491328744189931630896146872713391560660626581593071656394701037716660668739804240874000759987175219991251237880174677467231256711186997425459873887895482041168547073901036734765763559096015004524718258235196082646046294732354341688077006331419522438004546217832243433500731239475135084548737663984453680324589163309392392392802851608876101123714548658819995973681385870901081892668459183750321122051446112920459137443238527293116047551350007387955976932785315178236452435683917566401642713656101587774531358972511818954510915611965586946456821881799668439192263650565502160212865015851496981991939028124674560371932862118885911179534190324888651693686781883930167732458983618428978973164206169682502123365949013324258464213783880510811965850686741137689436654940904004393573806280876306628026501368384251503408444417564697230208635612414352791226908396820612107525615884414940300348144924088535730735201934509725236079433976722330571158980252620712650762886748167846035538482890594342506872000928888157956582201110318877851197723641881510144940540899207343128940182240768226619322475909263604679304707405610212795810212745597528774627865498926486007377344376929654485702983998244439418076056144728686848006768789752368246131083236885615571721936066780548119718311263866090803757062347550934222147080540192429586951670003034069849363551202735059714993588077528522664773635496362977028439355430650167778825028785980769881246561301993636842472256824078117663264721868054183610633151587923856357957366979071506998120886200253506188091287145274884591306439925249330421367275071191551062213679293640654459537218627175411295834599196405798221184180888387170913778957666312275644998437440392845741441367733584286264692531838138664012050802094308872255147181062884264260333652639492460522456774441071991413174843116641435049726176854726401091887177488170487996319535397184030243893631980724655638321455668169807197491042713348683616012420008272400499416958775496397826133239322981286515899027735770047097823220879456425351047153136856520419708189360268789799171931574160108044119637549827579521320161668812462243981268739221571854705146791450812411496024647663512217529529846052789473472677264188784051855860122563976202358398921338552357328070117206585552743087864186819152358505658889149470960701530011112198224741911027177637469702354399054274358272354539534543705488391768508427855637871437061883186135450776094313061754078718605805710622627936857008799089451455935995982966209812152354484303983899508938975042632412360091615125769654657372010063704900993958228094895837470621473400790475599223475008833482555737663677214051974950996679133764711238703984198757922768873022768454951834582411706735964208598148479122473053089368119743748003724740614762211262006749647945386313117940960634078172062872909886297506140711475124570443262932962508383296117284172805458579746172458502563854507597836575263412288668175651498137608784712992701569542527398236010598894701928852633008978709786255694567722369427131212710430411163459679560025252536853450921130104567213529112256203885598939258320377504894242424674122545678107290026020024227122284134358572523718502359077162222512974562879154716435152966944423735539550437648855740445212344147604875273631267985089422007612338086144430916709056057028924022879213863421654016434777436084995132873843813011994456624813428306550997060289578970697355694888992691494605981171154443918405152057609291603248763711117716068721433166601657895344009237134622408135352279372511658942810872944409722922041429854329050866354013316902591657389841737256070896563615151022838223944697880150291882120231345935980037031758543950735219145400137152274217526142759028733866574288541472441194792105650338057747631670934989235289358612160054674630951021423834728798505056285374361212582807408966163332776470756554056155390237511161374191108305858229751023478352854828800775771263949184484953105314044214104201409389009646722528220075224623269227919428204215837844585293814244955811577979624717269026192165941665183665209062855505820095236715913065359192866665592467745192963942585841675896004200520220733026288665060810760952689616110414302651419434460594815775614411206033331879427821974735499376194111282849668919319065461990970482508455356616335192621710960080100594225700823699549185749200187428713037696937204829091535464028043129059283212661491715813736549158653686814092189221201195098610992696514377056071611507300257769822236120643785674385541117904917709550648981251368863614771540718595745862602041741084614802676722072502786022395357827571643367179327168854920203562135084965973356184053835674411176093704256498445561792859659464985744721752917837073447326789758670717535494782491516314187411432482748462054457360133453120906263868577136780860470644203638522322845380697282042665266609423354554140968672936145710566426955969090724196611591174837216143671007821335593682548905743330196543017530433462958124623778188200289693305919486657252903142637353692805284333380143263262342290597940296460816896521404530655526066094904753572106852923204155049936683309603780523381772818731069942235394368529331622829384442185127635603070105011354247147174648162166904202096229084965994566287524591720935073218717440189331195885729865869270196843498412305248544917885174344011420560061468130038735542316276139584777675676391648653475324764676295116318487346768990368950416557212215735204959424341247064949335311462118111776680282655305024019104918524652210273829853336291707640069561364826470581757344631974948486931898585846671057079879202692159728329265472690223959755129873541380585458913321684095059406616314858698548992979272150353660444503801956439215301996821528353069522933828602689666480605901061181736985125831950282484750399231242971485264922284362282286432868260354635343305047519806146211157258133438848534410948474836426085021358560197529544077459826328518397138471180174006078039052707052757074485824121131119190530601823421085020894062613570982491188830967257035986506933753925854825288578091380730393260309326567157131518465035997811201418317012885597866031690445721396616126579075552484749752132345393453363444910521678439730731520864597076952893601818054132594383422497296224101752772444318706300421337264094748256730038961576496463802917894373434468772638337870003715913835804303967772689102322107799989613092230118119214123089798477991514207733060919818861173046610123351309328792047842476628410631496602291544641862315468978083038909110859643722104653510179165604373740871819116405099009215449964860704479752565135519216163457164489249580395356926331840267149775270897034464254770680932726421135182608905627013424945188599729981622194730989170249942737428843152350496374920069715756380212068855413528571628055825197134780664721492228688133770922370114848284961257183082446848943402192932530564103144997008220636329687505128963711206012383177185501853464528025720714851756390191791859485676534935998818914211302780156379199946508602466592884107113036686978535786160169382643192217608701977619173450540485898191361891338203923534655672675764182070993949333666282104546071654269560380430268272102889890705104391464664600071151450378507494177568244314152560507311662173943614239419805014280453904986234513605491766071848979919279852577941594014432738065568995137994204520381246114092646990929869625275132545078630814647419893197763478330269907987971950755029570876514306735895492525824294281010375882741124655453610748525910921654489568318148325485177942418842777212391020642097331316460273305084001475071058888520994257165807129159079528309860850816272362596588738838415182190888082857416643034727411216090393454484370780055463647110354199086023340111753808686997972638262515649253961815465639094097126042720737282012235821065744334565579307752459240357538449390401752346270278783332266031673372681217894654061027062036900269320452677557931689590390666167400731864800718452163014164648072061013194756400168143796062879542091407860268895640534870811853711789629459196616978308640575397255969495803455307153540160954950359292758886547169805796554644758906343322672460554133967932816730887361770612250277579695756516242516613742055462383608877376662786203656651957540143982855749052531646515855227350450157569513936242817318812829931852526662799452408878777298936805421407468922407522622757938827505668995635277502116273582125022260943681425592429835527493186501570071781971645372831924114515541611020793129413224053239514395084491017101846790083531881536405518495884451341193315969783513418188633519155269998618729639713500472597841157410975242997584696798509554178708735865859687949028623905462773280418448996080158201590053632218121908363038164640335906112351769623900832875652079700003336880543741681038311610467096691439169871145887094465378483168370766162453313663174792754047512236107759467591066385756155185402773591415203270645595204824861928997448310705302087629038832685185946258559435250378808215757132685526436986178670708491337711016982100761053604161648255064157299652508938958394298086866415348534195193029387089495249582780528088010042756816278688296042962306011873679536026391255338284399573886105710480619905808530360202592829934382786866332756187289354479561805887211336541386639612814647543580263336296463761611592277770468815546090165225020681772923597870333672530731521495484363353820244806999647068923932685504581921927531088340338562714804519889078591736423188644881497562286653547241293502235956444244048010980609024876649678127279266339382656301390290463330436275926464632283531272190350533016278579375734577001643208469734395958677806513803777479896954556230857080167509772162344159684483692844182736703808649746334913443422148593384896473307868711069120608279757701364163976488913982767723679404762157403036777282729374248229914815466136719093557444835885430204423949244167280522845396553437391692071448612721203472201104155422702530458947735467751115343286522300965051772846080025498735267848283970955042148472483137989503660324033711205862269008702543668546036393472862345476324776460627621347591552672285345006888076867583848274885331803377749872806999360548155044748338888148970041536360055317465578481441824704733277264418585533890686673108055929564947325499025188567491842209239978101161018517878759232268937141244267850566308532437672914819863152225107633168995734366405904327600955456231313329487378944716314303054367330782429579860994292981550839940079730103439147847264042047730248085092961297451065464609131291937361405845661249790892632993215947696024392128826129645033451502473552793946473704975595904513743903375292426862926623223150472478177795390275441556329312263656574729865005159492072822240025181009384341497284379142091668473224455418853067190083485476232393698105158962527282731453154257480385418322953966912100453992927317416879798960520246156497360963424426287795318204483829941813954392338077613898667295411786596747481946997611063365574263549586899372641501114909226134341380625271363649496303108608726524324389781308416925542418999576929283464037085195246803613326404696300565168344149964719630960873554800482452329196503752158847989100848525319686881608809899790668410098923331685901296386086259100009631098382197807059413467384156569929910164504712540432573486737810499956737904190811217965340244593683279694329901507465238386001667714454195679571629970144384118661153500561424649033661161439976618667177973036838318635719195051010140670084853171731283373516357915328274726527628586475214105935256706329145985206423340616837946650642255080838744582862406740180600031705622519659299467147413947672805645551277054861629229379532328207134736850358344265832810006682410251779801959246141203411192414483404644178070104619183371945841902318936174275012531874107569222144379331670707104242368437514913929757949915252694927542681672956231982992488313467479875528519792148433196090988616281305049700867767578327230851885196055305506547304441787074701842990140594988579795711830191056493005167588882569311032507380234063103569131845440150503764421196012131663763685273004816227340321233103740920903341220425151781445452141359683283962086120233809689436606029632587483974050809850767147142886776323799075495700765338680384786627942897187794512269488260173639816315983699468011592959788871914897144439023899659351111337049977939350972228340277536066511229177693267722371448757900808542468268552230935226754148497403231478270499309811542432076982683693891677237242759813139941404570315658141732545759986230922466612100195131543065762226281005635117683003100180035812437933293364347866923867284363333839575109258713941222749844758788382693908808312924114466152851078436323268370459977572620420348937570925365848250242162621441882327811185066501696993780626153014411463838589426048984478302500735591572555897565950166712770484446324060593945314974449124129753154202620150662249187616184841837002145564475816788861049240369674967391865299658353232359897101609354555721958747291364347449108166201564017312612433390718629311497057783107048885977896497315063143297430130545257634410818669973877175165970179652958860492866438244502136268116084675369008919237688000252558459008573100851686652922444948417887715479537532094242860837115895059763221121067087023034141055335725362704124309752642360700361981866809889206853927335652753762426177518967883367587359399533069071525806918944718474109332758617570687358152445249257894347689504166886872591159375782372497857733497098264144651211011671505437252070577649616533542112520653790296183287328119782116963285315247071128628795532982629516407996782174267214954413639365376359197032663306778618831068415107223464588171668521593703406470597211817471068988350152166044861865492830776333501198060788039797384265871721665063429559308024449950526454113772711800886154978063499939575256891221754692543161888910334699985493917278513269298722851179627658348877283474438851545159451072771026803622236649771641145414498199877332630707887468705543405887632070766050363732406241253867437231658618803124577787983016465918469932135406903832837725298302758594603527879878598484057484923136537511304201835404978426691598872998378424740437809721082513970080479924699208540152414928332600570845756954995102780051641963417797802463895267608149785684856455232215136599622776048958388960994328238902739122251182808172456571257661323619794996787285851341691198818682740574749894250280682209169552326637390576012293424255631328357095723910697862248931105990036561337253670211114789192127518886791935197626720074431633040737682817821129573960044813741862727714418010126533534883060192320496904391522117046588092032270218426277941353262979555975753373679144448236614742379829535485167029954852258104003238905166348135162789672130363182935098806806184873828695446894659251712778514549311711427950472482946379582394850667213366133157621223482948757263317750545816324547319048141778861943472258674300354099985804785595420732899690903473082418491743526128025359188025591408122425792660474797634302386904927897947731075456933585386471442719395506729452297336015779870865670132633838737214355422251895268597621318677728808074365567476101762005955389703168801379814097257389242130116676870858714405139689363074278429400152991531950226467950258146402248988194738391387338488635669393343036530215943172261529362541092502519936166884670001803841114985288646603953291270806787408679787638771734136774131450248984300933064237693030937904905395290451388058053355243683047800709992057595628830341252373151033043886809336939164671408129173837510218604127615697367426054478592745639643337714028731625368798655727277861791926320302976617954960682657833505278375883842607101411310064786495611550668605983889883832720775803840869500053583697543308022331938101514055340806875985904202509242891800708137795528720406986931090541905626400997514813802076523713625152868182483364172146036392306287342560142294117710171235994816594755972826595276179042823935255518610653412347382265862201630299816590052923124143409311166034426932027558418855683542269272729432653017081713254123370079955591716891483876615421858592464465623293982818301818242273492653170299442975699634330958771590140866040411419798025701602975633749890927936384958281181743811150933632381410694481827657762175108627515875755880367202635616614217176978856232430367158979459160166946749665648592480702449607785198527674724000572501539777594941238093641520203575564268513603263853898700538046008405076255464173875256333321057436732462845225512344492255225926535113993328968119119358281678627159048444636851791988772529256814989950039450360129851653250317793763675065502354009948370371334214648236116833532974395847834427628376534621689243112256123763243523441790876947385067949367223626387790215022139351995819622141875426089183829742100033204533436882469104070267077659392846723295676366798766504561822925296279116368156829518939022213237938220562358948943465976792499307880089629661265510433770855760837731506156793809321987229720909767647734098374470604561246101591591344811832805924517639124716166084592097456997677917325095861913046022143702632661995332338478234145071707841600086393701169006644287874461140514088706063493967329252552631445034331804816744582748696120623372083895442578492351748814290495037572363788640545391272578860391399695192768511184731056268727699494680013801191677901398642762093268347379027704102284738866544807822637377668818554849933276732504585471655158071073664830181210386846926278884870617086171150856805514244250420045282417403250618955631719143283531341522403250453725721241880547527075843761561720835795073755649259284918185963712141717892217449420612853106506315396201358132586276531050189879469153511848551285236464177302008097669905266749884705268281605335777210301500357854949842778871235327910303546250032049033560620038411193649807760662751792648708685375667203960661226922547756371356495421421983054438562125088730031938375398948517720477213783333576198393739875733683586619864966918794335346908795793806449561581557535574837995714818908506013333594051273340570768891807490055583489830232681903875289886220684967165372369512148379915448313226398679578708709488704616773309343081236819602388338520174584227973196572386731624334329872336588458018987886790183171467946696421864298680232313698526887500124411287886253060024303641651472644235884007694068209482139203022142915869255830657519590996579600820420278452809646000955745499003194089133500765266313622871377351634999970378954986551127616157699781663217793837592516786656276027187788953542492902795552805385308716483098241786140810755590835030724001861604791216038520790631106533836913101723002271059083453015288279117555946828981971925673785351522797956587263146156876891765755396048957212384779742537214926613861902951639365071158946597819702159887114355695102739954288905684348459872100772408583994355928524648346542596421683614604204923229735479100072072261655483697953787962872101982251269991321243830108813889691631402189747345438679156852522422639621314962874813825419265091006907897285735183924314643469340478173698602691885958701301344383622542044974521359045526161275660432974652274239207067842709942542647102040960775192108093726200623506206580817447163785355868784669903308455948741692192834402333998912674094484502887703799008298663614423057109057935091990535266903714441696457901210795683137991607726623436906095210029017680902848059179041020351729484657328635629698609265908837477810725501995176734227885862244880857158920641816975644744365072175192130179798448344725602876895145749481911828253057123633412810030865780993168331472610947041600698627314834872264168313185086998881374164870161932280390464711350626338839223128770315592816314684120316938008045679366067911160957188414320511911439301113344467972025149448912890436069711754330279547362546698993573539629197168188569422902967923710644052459840143129128455232443123783966387639337412111653068537971719275500671522950647325795377405843660813109662164995868022588163037614496100363603268200220143516422894892028293657237089806384188322773786457681612634537613500059299711649871662466199007188894942642997414840995592759818190709524860753116829763935783281691483628022916013241355753065079361580246381874983135283711317961485816092797407360342871202648871381912868435915125919575148549175511442615875443447088026439510914066338547520453496078623959778320095189884208863360040653782218151118100083645109640498137776975973341427017677078990897113050559132970270108712798097005978146659923282779451542972381135842134291839156215057598648556845683430521100622116451464871874826890311527044490658173739119423016661150082035949761084285809344988401092719243056271299575315755733824702368479046614092717075772372345461510451758587849468199070587019561201457610169566601216373397742625540730292714468074714681894789297874939267603517357269893948842511155998386528132700112489180087714896489342057099316586568730462280529446380553906842326123295135853084792226172559769045523727250986831984842436326649014031516803015513662313973130375042564990241110009921980263835925224993798593577759769100788116676370799116394936381264371945754869641702249013698141363913441124958002063926858029117543426279522769989310371982207868994757309855133494436209962009816100283111144085286498998933323963026503774986136616295208098870197293732762567420226230506489998672898630561426689134056791751278839335840962512394363103677378244246311438299201559665637864695687893954648305024973448028609624421134269077958002429368247473317700807084699253952610010378800150209480200422099597555897377399691917562750192224260226646111674710594807833214123472011248670052011116319807848282795996043239592980055084186238162101938920594282919469104762844990694951227539859436417829204369299119025343058143575464508074309018098896075579217028894338974754750880431450995551473601156859166812963182583044918399516157079426767655888166089688091112038676427663775729037801895861481660243577628282109568693331402718646212401239706888160580403262884962533196559466689199974114890896079788508204344666253210643793638212648474574174596336578722129967240002205345588760001943784700198413366972242207345004725013146104849564739778355593376219126664603454393799676408116544463411556866308713044707696769235344510313183865787338762376983267881503859814320236821595507173721534474290702061479222887727206458118555626477764350978354755679190946584266303956706003508653207976516627898200525237116313856999477952748413477607658030884800752239450337750237012949462546280123961206219630894367072025042500922085339148965286873968309105377330087042600153043238588774406279277060803039364925180598813041519434797030778376303262006244641461833635144891381208076585719922336977278020414505757634821354159249307764494794953446120568983297700014290958776948817118696761854118194036673342131519332446705910398542784927554085679761656019253519922652110747572124632550795005348747469515566710974407570328862764103213461159128821333222125246419955436356484078391116436442141655976040453425734746445695945076376647540328555968864148003804224328311778898898084298372760666651043871831754584170945832421546910299382518487906773858227584812351260278332743259794197641979217838715833172823143554515311383538430641495850420256427373506239420224465525928858428105803290710372510085223085777653445906108800736166997904823481886483995672739214806589610815132838211211690157002722601319492421578044358455556481788125440495604151184089529320832178336824625850990553448192094030285525661718410132434586393551722753853988308701711552245334625592320783237173529811464622962491941134729852819319625949692469258267946678633460817351703493911622087164684632863476599454127201221672779063979171069535039141646411547437165276736689936996155193195111034619077350746501253777764015408146300374856849193866932396000043571912856087305850654291960897628899468458872717410906094241499271695130810567460991586842964779915788986469565508768894561752529330830335641454342382430173501144523673279909304032344177842608639866317618528387981692500974259402199012761843236827706681354969579754409300831113182886833619580485951602917605699918324266854235704168198892011476303436673470682261252008250271311497797367639564512541732808119154966504429065331623666257724504303081379753690257515060928162630518189651397211808662775963544974033156521861191621550682962978302463036168805256185860972642806098680557046473426208060313472271695735352079290107750428243789410159159382517040317883687502610199477122111659536440897963477998700478003116725525725818316847493704734480799179678835430193050649931392801973924695268693736988737829680383929733430914054717519947917682111213065198692400012237674825415411767578276931526682430789688630907199711278588894404339902665664183450174587801831523779480231280240173856009353378323406877631964761469554969717071175805288275337237825486480565964893357349641614578496230004382035018598829558540814764065682707416374876286604691899921070995163858791775062339329302293773596335891265884223722733165157718713892813431508451033926508449670763298121831314119205069000244356101187528579314916797150872236288782633082940737743206770068798479894101858850623771035470419722609959162426216706906347146127923213298449037258817997438923756741392704107007356555566896537986474113946923085045843169124806067476906559723391555518503200062903150504789383161320422643668304305232791459304146327018109001079966336015809171964655149446407231747770382289486581619676126378568824568864333974106681044068633115863548972176574884954553328883286725502310009852658757695983247646438339461174263712361313199772704873958771630200224485695834884692654801123991766444711160576255272766651691957324626036750074219252013128704822931755159737301385629443531858566215804797437740878941611635756066503061268602790705538988778270421319473177695825891228673561323327341655376720798532929017810058301731053106289386532413900251636095066285068826701720281868026465168535418879066431814904240810151017085931131511391039780851197842154188326481136132117499041438155016639762588665024136399563732031234136418426929585668246282682613415011433191276984296949244456320655992923878525334149583514569702544142894341827890743916371960252394113911155434649356293588374784894132529674265620363481747781114273221406520943575431569630145065361198155856722863689114705033009435008679241993040904511217428049274622816405076889637514112086961159193504394561420663540592932987210219804804548784219715418337060825053445550251046786409054651754494968195186115833599636183533534050702832027926391575539076255660512167206797979848618977247800314678472878923380768822409297913954751460094919774821772909822193804792028610763287345429483474270826638839741279194179207109170806453709637515273759464283746187137436986584166552985635784838068602918864723439822797395100631747226028600902828780760178222245222382222283956523743676749928060586577219539518587783054402166214780156708460665874283686668543038651254841625540305187497223386203170507458843508389143325308727597981733950848062446371785027110726434188741619099038843304284723593837854073645683138599935711057580716687534387154057656608332741979827168549707140210866004144645717919742580978244992604706557055811379534845364648887461988663860161306761009148621498720587671901345670484377929580727098468679972947229903870145121103879092442786926000524937964858133190816997068802216551346308997085342561099689581125354624229310866397617979428562937193973211332311841646863197040884427078915603202075069696838319462287378031181532161249831112097058011791069100859693314489935362003891832117921044758135884816259834252229064319497998652935990907729505579975004618995033789660906637506080500131213634619148486990869904255914722389907088676109544219384777043517915062180969325141405548621169152495832860428738241063558237652940978543929085421319163760785650073833967712110071125752303821712155758369408103108382110151649466859244130782159878327899520183337051429183015672092047363278171497780054786308730532348663243423822440548623021778725787271646386711766045517514664962691275719217258602415522771738110986573514935317631685608739226853106591875449493445723086269273627389937110969897129493661328353615478631408707788483112949598808657611827830006760004041870146606772977895617192805277815754343770751667163229670481999805713360508775743372873091075881483168590608142373190825155170185965781824519745996552536613981792394396632602171067419205203655131795477658404226268881469650717220655729001473675819393654700128774078379874244486922451012863293911080255375676069786045861960849069479017890497702801138688329971222294967220234806927960120308894514174680409586931043610449347123259874188502586123233345869312340884341970575308813762020471793722032074487780904699390676442672505476165043785494879861422852918504314231713723185945326005869322244528258819543464605058973481260252402441812839070681201459767192282263690683213070336333957986549438255240037054746659994058512550637680131643649517246277909152661737486837741277092342023727358333119350287280397803945072847999083043484068367759708719359003804315244116648433150308210330641634448331471124206428533964381364208268195233625408923424401017266112225267643980331638160133450182013864188937617912332053248898610144900590646913191987469118099341178553695395427400465332906427745455334528630058301049426281089345296479943714004114870016697921476326453916901938651290100507343325209938182481836318933398678708383236276089186994706248208815387774778713222577382110421732451743724144874583932112936972130476707604024617815047114880032456990289839518188848380655668696831090140122321900890071931905255587981368612602297922284675048882933376661873463636111487327878751944254615925252211961126501861901237179569956417741564612125884582010085292030092152437661503831459186633008224243113263451409250349966744951597215892980092889642671315120846491125672782494742545991788312050182807673217921055833945153287968883027423518737573283085668278598614563084354523555743899117856250259452180767506020098362836288215746428892535647309363388376516472988527187654047232790410416321081635367177563791833360865771900057284155619963342818010922035449877545583833836802711528862837656724348858336714023914459330826631001910182466825459465821636091154450686068527689558418713917306570473228557901754179615592135387333464327034798994045492412354411796782417996513091589124173125559101586887136828613862795896469255636752420298718232231755623553887377637678537263798250480339015166322478971972974848873704623398361904233529349799812522409785249405272217753699980179815507520855495148394038374744082149959389988346899185135039477597171120674215258707464012474898733464574563878685437540137782807731661021481173133680869107463220928021619674556205180697946011691485842244354285321036270320512226811236422926056867225619796266251608331512883203805674517722206900599955592362534486870062875706286191515407670095321733300972717225731947990422797398109773259065913328730214539764350277340142201054416521130422386833878182747248091103977676982322819632453693997983235911703680431164744533311743955804000388366260954825723796647228438969824324328975209285946011687360281062725487569634704963751150938626089294385267387701479006788453518585063857937752919998408601579221737141061496816674333067298082721996796665959439191064654042997886728797823735542942537440343280188480324594484765477695730944638069243180712895906886900755140391363344477168569583042097753533041202256186896553327295306109656507077887198759659916199569910635858516307597950514291366964280419103988600536075305217157329279565816247655476216661373292866186752819465604444999651054814406305279587209877281061587962920132048988346567146420670400633355408227216655844122838562908694661688826269284409160961684250517424378093116534382118134623227158414867404126698365670387858263348126273473697210351224875915374279111573787342025038291196675465945383313264672538639352173272783437758495475222419860004678270287101985376089473255871973691165136965679596843202260115679410590677319404397531190057540100104943490362581255490618808178827274726494793157073876072546257586817144127301036612600528875898025582044449970527104101255402798242401873047199661592663013841369184319410713589029963340322483333613493306442810998182896360592883731468776723037626865322330770398312251842513734069581866835916637060728158280980057504165263719945673778506573495001790264668519632205673858651480699893165637545874447469444518138224620804110277499662773674497746501786424570112933419684156481906669069993385248834567599991894711902712241844397530773593150996380963796763725475060059641594020502417074733651752555699238805794551891992088912438648649449264050684202853211758882298159094610109040613459807487283003762359685222589553893677342885662491547200454658618679242476077850913099998172371130514608678374154570642193237399737480183780615238860432430843226273791311628542607377998995229425257768577420307025831687578865764848432709955600360064165058841918791938299622031118706204539984933127651580616781647990692247475299047239090771591376086682876498919563127532593663278191305054444490644790239983553694584606556772412427653389694043452463330144633149919989628308954838711219795389763429231105358051705934034626577062734040299789794394923029749718389602043762044898544673423970962749381242136429937955006656898533440599197276426345355318685088730173269422416183527267081474133291815181218573748369286248737302898399112818553972765150894507409056672277628249841807105725001252541725655002838374329681734908565034322394253692589671666543532621968156390287177481092701960640631649639086901724758233201590407552843761222668549181436773550570582984632039721161837350811008345715102156048231050516171864051919752528731683665610224001783563999146032350969814045358918276649811091826043303060630822694350122579020359823646970132411799485256868803964523982223065731797591661433016733880355908387528799708043470932281137074707710359568639424604881883625038649027076528761573227896555502098855970876356671321920748208753862782537673184151685347968326094367892149954954471961498539591626145826791121744796168389652469754443780551715209413980479791246421945513990644525502282134591096616099287772992986119736898331805985598894157777710023075767374162388702900321477114103857124691114453528312589618055201165889316354470993496502391625953820029710447756390227902078489191516825490350054799192385109276678412780735973703439630183873140723154912698714665320710943073737796894444273572539461160213626591649249048259180433844091693771833976772428136671524009771794265441250962786588204220301890538247812872961004991531126737461094971008295253897044772748421550105816808004604714743524657875966305818944488497345480067636023098427175252294117859034552708943345117800021096655903086755133784290294386878293088548564186392714549723613315622582409396129667853167576519963509576420913447318852583958939667457207436568787010420961396860292711756133191020724087188224253452464561162260144816192456689842301797754154269078481010953240464711185083335834440729909245221133898976341488798274214685811391439202255802590777259501757399830852390874930941577011875869618105818133877952387710699135237410796597646831565371189251538700185185711476739017029493461384044638587661069491104784500402731182188023870281590459524269719390245964147286376902287569271248536675839252331637031253400117957152180052582621007250919365558947005249615953463030456039911613218362932284992326090514804370629430954434026671786172519900228960278002452953689021588143271691365656314381898484289132894359928846952471119108327837775556153100115468023919701043740864440089830475335667630101026579279434680890437083838769816953171971657664411544266449722988065907895899429854562921548720082819406099240127360066461570260824454849174720512533634148420896128600369988495141817623021630290473938942969950657109563823625040998015613196785575529908376969825286558778373960473964841502837186050043249676630509354198157256026623895455259403559210356467803941858939365380707504627523820085389196188387309575690861031426962385269204983914786590805066635509450419671811451498568066636713525048609403231477264010460217732265145573885873596519377975227565890592081900348445328523331756503604345008482179548354603381014004121474517841747165916378149882437034479963992964361494810567475492751969932162235912468998924348370101354939875796778428346508191616954009400452621017575479343781433908116336138853950249450297092445500475602082819540821517620661949030722014316386083525599193905375423649431652687018318610278596599609547239358956280616442416804304909054023100433316979551504373316453878167287793751635649964697012560728473529330787520722882622232717275807889410679289238026649065456995833876864583377208577021404390328841519945356440635243585665108812094095641982509956183005639158956121266092444821772312567267887350744182928203508403264243262904951420287486038162209344494933878190241265084346349315020162813434923101212910316739669186742956382863043133857754074355211513425707109203332756183812018449104647251270172986033352348886096567779118951299973064036799798652666463041579210244719937377900338092699886687697589475725419250404445122723132767862073461894587521935668127003358117964722773359429207171461037939406225564526012926609257682434079560121005145403753486448940003070224643520223878790047459701040921198601055562174330258091301688587044843300428744783195239902106772425713668623424994755406310948488252492997839182006758321682045365907169377930443659031386159502439412224479001549715585538434907944332195383896393401002612192586192880523930330056624895101050753682572711323392841504394698511683150451205545784998192183572259632562412993033782006787681676863006087458874509814316558309094421032318843146306623260287200036006078361920347881737342337476261212084871445703971621394660916145422670645752068659902183968340054081752052898654969576187824107469745616764213386974076881808148690062328645476448572615191233093165618614860028230852518921681657389723037303707868502771386126017687372541957153975886104080547483607214205254650102060753370259009585361617053428637068398645978388539814858227245106406924181760030835717194533068646664678440803234700698308423442121106016744334050455226461673547655543272761762428252782824519949693521389095735536128532423413651683419918590026691079554961335514283198810336217216459031733910849103608722296657233098865456946261720729622247015176098696875481476338930262037501591412885350792019623828244799663664169218507642040706218112735650366466057993887667373356581202833850628637856007800028073088708003287678311980900529193095468590367330126767200102022555322959289046920767825477368944581463592536791964265032737331071937474921947772104606538389332463600663501400591027917535104939205544703378428438759352498810026126925673536358011787671387223727239991126416728646852743236764657815807594403631578837655508072868794880372496332205467008193739346883924850570593027105191817915036311374527100888030785982096488047378558885343497834929354391482165336817178115020653628962373161060220355339778561162838941324943112404564878677600723718251155957018796947417756321774075428835547978731298746034056039846010488802064004751736081812531097185555774016336128571790111781388937188900039846076843716831842969784021836528770456344133133462328731503510251565073894086100009547768569190440277078509938599365611610013579273212421302541276777381987704344486567514535356439416286677802185434081379690540320687708082334306754358126796400717025167731292565821820679310297821469566255011601674017149843547742192447431115115249725650737650007373769050102636647253340646470612659852240446936419821177161763862383557767825739190527074183552653912178492767598545581497707587236089911736767015041209929683785174591009736194449535714941283349067841461787863069813731563438302648719118869938383801335870056646827399357567009853407970565701391501213574205801770460980869050170365770526796983243003889833771214982657991042131265093264361386119605180573407489626927511386920567359007007214692505083774075533176463931056158909910337824596888435959494561842483362288338765609427243185187818594905484570114339781134539688340701084595351824024739491955150558213640993658377154892382752541707774339495685102962338278083954043894041073318015898871708057602463229821174014128806574806210196349427869219539083227302811440018085941937465965473125533546103865463197783244377308188046539465792947586278274091340923652882021981289945750473446652594941166315298715711851994510386939709913995071868419888462149823261717114569874333833614872177447431073463202716306077860025295412235476078268362563092162519987827233385891597425422732275636911573393506322290024804897292012494095568812109088257934718220620735283784103932876280758541091452065980298286895356934385097009974101415588573482432377519044738397559187891021708260164475831943191911549023057559413845385966918423675236771395605161743391673481588097207673946987402875621220259916783698675851845762857783997750515041565209643648138882501743059464615399498970408015683088094518362420203838138020205465532137746262129128267144570731279325860153781951813693499480199958911754128170324899989083370026834965489261152720711468688596982093773838942986862136645943440420824949386419269123259012242581656638642163822407944675496779284353894720092578267367623123239924025365291962298466385788732997511753337999306318123941610827948982208140610778230500441247031596436787055860105599527429388455451402883594914747544163098538639344068727047655730546485015444782975173367872138138905307410551099049159050163851906659827197033692799981872156849911159653306463488751131161007249558448338969042824157785753480240079574381817679454483326611248670710831437329982740350795217547114653346133891295811146598927882752126640088587578129796441260296312662914446367773463561019601467331118832302261176996770456468725236717356232531727048280636333523080633651616142332175497025867570222685828573900852879237691395130253999295292214184341008437979742948622786542920182019427096784592564145570638027795256122727929767081939451190929909005631948673873750273409343451928321844799082592978941989030624788836060923717343463688479434852206315255326725983297201864368147495781364484182060621894917232103818628834056617118400723333751802825658032983275161653557169570123431204524758870608657475540044998738009100116052754995357709410351891001654099637006832112332134359148422069479411915355602218667764883904995559619447744896146028979218274021625979439110230913616160118246332632856078351953539982343678312496250470587791700228184416484649044314353088295130608287771569024244555580428961798987758899057550677542140231935719190008004871803558889943984476605767269429883572401085296774278488372444124931813568398085314318940829547164061285530033179887956706740055157631718813720826803873866150689778050970486947915803670727193327956742711538045074832226392358398992779908470776296050963254516346751531510998289451792206969712100771221036103166156140005676121566037043301977561788862647759158753032228827698749786106925812864426873121190862650021316026196829679762876278997010918496451295240102208699727073848137421261266741971847625903191261678027762822533790490977081093674496713281685301867131557745207710631141899093068187499654037297212423872262259957594521521362049189476824248035833405608649564584408348597100827651240185863162384438542679016869810120230610987869264532005542565829979544658966449239734046377474561296598906754899730296416037630924672743712666213618132731748345191467443747799514389584257899484877635219001347813937112952156218430921267745981760765484507696409503256126617984720248060187618441164590561640358515186623249929868525537557444727854709247566209856295457510783844510109537150244771162647818105212017161690875678025316357663769470144306712383641662001209180531611696406132206542290132832376928605507616256299311954299611835801160449328652343757118559654866057781634539543226855987513987710826083517107356262887870368234804542492879174790762215812570159143274649523569592800677439939252524457762626425466036070617162845739078513543490862125053784014639148734644967958104920758032837841786072272952239902186809600051459653192783969086699713777262192337884377295967325670621965657155959834162950321254144592800243597590117675020528353654882889156443403338078326971287913122728673168456458625351595545331235857934986662099346189618939837830901802720084652946601121553561309735981154595076669018019460495637735373280855694551897673260934783701939718180609365006433877800322920660269534188340466488827172297623879952941735864022711679321216261486262048015076064802975652001090853056675812762001676718230242884281548761492496118737219325004543420899209136237448703725057761198796656486612803070506500161747960016632991348067636006161195843752265725357125061041811146266162767093903240213164142019935347618874116469607119430020297169471904359893742674951891229132751167382307593188341931771068157186612334877851529161607855360501840436788370858517436135918299962525630687537252492795296651045282745120788198491276830829357444617675372026825349147071646967359351794245682607414197310493757369690932809484593929015362059665999163601217717590403689126432941793641192302435702682267064291729699468249670786792491884750454266769771099883154081971717179736140120110671529111725721375094253835365858078263718141982010548701304846144727746022233311342191588185575492403521647360223774824783686033919779494245709927373019423924648927929256941587506579405096103677910244812669637551893226401166470297157183314395051973279602256332293744537020334871009604581096552127471026770496652144249395504338905810586619259177312875249142633074641287083377317669887854690810418462250176453561643735730106787862609660881132969097417281776259484428764955537750874722958576854584441398838643594137468807677237498614040258510593770381345720738796557699496648564189619464494285466598091143466531984752982631217381383766657701621018260678310540979861164447776190005438546371201502610186603991765039082762139027926608334542582560734516871897418588810753162815070354721997726875631347459079645190991569667013732210840268763657774397145705929985156765703669647392532039572006360040956849869238958018601251735271087587140836277500955034205156020125117447420023470568087741220750967073987073760686592329399980340166443346082443189523279511712391175882829832707789320292833074675625022371144252394073053613207006418109879117361824274688475485766954132365004890000123274617273251713901801755080532790850587381544007081674235107674256223522992267095444788041101782619833020319468770331236376532440077396345093867583201786005564644488226787371368251777909731576039718287357254259878234630285008910561422866210606051703605223541115565126763417019761254551889594560179076385245567815741660213441093335816208098110667638106683985264812200384907340497790243493559207640851271158000760267465991350042894885046505209009430308948236908317059450593906716974314840813738255197193273735104267946065268751105561179060944059835970704080739144009691404710184110780990746348966176811941528269061281805962847831232863918607008961709751551236387236136187460528359185687948481191054199654051237833084011892225287313810271409805291538577256375808596885690568384018733510740332824455121800932738800425635938700253399855730753942233475832434522078315392410658551053586592589467212760610356176984642020829217580698328979271301109446194999154603619328976974094985350859841952070303876642743424324709012763629849346816485920893404616977602848513785198440208727152231980640751045994571850004234076769711523875109059162665765804716064672748335012957702496790349339405786614815976068292701311752997766993050067794655227413453187606100725573236917357277347437965050898254955050367991372700674636402989393181372771506101318561561369719029818337016518341041974670401956006035447100326905431074240278601857527218308664143455901220813905873613325931986066193001740084984465257521632040541778001270590645082641432067034238985939949140438546454437301554296564968133678443581143451843901071617016160266088031275022670677809058657763395375604068600417150156956251547245372376733226292940266194214367687575003106189310533069902817926638157056858505397005380545405327641763048809233440130039853274275787760790577696345647048658130636230027109781791034120782567612465525622855984930337736594025918924403989619951349741214587446398917468924628449426799711556536365122893446243877828273984478486700718758682143579451844569372368534702152952811546332453879880065652340535192216868650275689172609027765815778491988071920545715819872961801851133916635481580963354944252419395395272403617457764620402714376673291850540679927261972036579452940720258017520597134299279276203193663233220795541246161344934911587573980858991667104340313719185462582838021808158829508351447060669073368392668055396163958193425345989408372582022907204638631483837255174095598616482179573839581789105115052090839075067920423922633189903729432753813566839091626765129667689377107892328946705825899503904415738194556945461633995920570830287649221968451488277733379811197401964581768179887430524838931669678180387468223674742250951349808478099845400460974749506562593163131449126327200025101800721019026999582918536637583445500391702523928036444731815156585639785197970196732965973577311949875905966768199778283899741686456079825684907846378342216484421257533576439067175156807651597823677293544504369089898537765463283138813763999261330646235913115549208074010759809873301468012974387416994108051333977974596921667128527899760772575880483693456187843966158638569315020828023972196394689911767464799766923852490978348613657107214667001492526390303008488440268918345346233653642069253669746335075868777890629836642066426387122238940089127617969665296383003188015564461923769248379819252976911936970242150590728750376507663154907602119869177611602038986985438343365204366389107287238594506651769365482954998864461547385931188087128698688166676220128678324003676219022175989504013768926143758710912485315601204646373235863097588577180950670451592430122820777027940120520975680668888275832303652058684663220079519748277060215638295170430466156222886762371423869347742789748403064580000835555857198256792536923717229400128983529582083886182657413228136856327703875449219367848543024198310602453990851561849701139460817797250970670403912992672481747464094930621920202512933793841080562427944921140181834543322326498976162090426996991199434139734423525470521773303295433515858187624824635201513300444209387243323994395771823901543378616039356602747839098010332647380751226087960321943296658320724476209256181740795521587615618589021686860501358503303738976393323094396784616180748547709430056399702183807348857237107904068431703101391119501057595149431100137667416522416989255719198352659556248887349453081654218916906678655688749575245112910370556521706746033768694928248237039057870440466172128219695985144916516932328825776969911913585887046319453149706496431684999759027718333546364192279481938040336211210922762977869009438495926502770374443261261937916328167183562105941741860193714901721391548053161762586672693848155339654130099256069912069619011871358731807333801047233478142567494824004876705754475480881168074125653557010598334506788688207029618876897793598846543836066329676315993258257007474943567780203468715019912112755353940928775178528668048886496805781841211856821373414095158718966954726082019513554231374173218042656719542529467782777519952190622440146681251532861470098603930388700479783147597215265456712369783105272264718821687616193147464491674743131323339464694933552164798132799371701613498783246096097149152306386587936318651436143117626688386803796165778856534582959176652422959491896541389192407179671061711767873765785957330698932953076949312492102421308685514106795009830403924276681828584821221866932971570588857859085843641477403601733801351679113711969418364937491596141115298580762226122556295279656571718650617137314183443422956311703406963317401257722867276537382228077875186235339358366564257381110649782913941444965663540337521016602891211371871576524998025730388783346892576474306231795602414664067171729287431079136739306566310739016160429577627187278061038941602455025276672168808809387021643558862236195346425439070153454079068117622007444535849334422929561403177692157337553401112208653712464419127270800632281459182763325103205977270487956988952628807055161487704967671447935124698987466855882944474890050980684691844314929677224777986815552788995299614327006779082834241876208129311937989224207652061357695039235420437853043080238730670023537346279015083376190223185624998646960503159746186083172734277904740662608650203407048276537204628837634609879779933235513095220011354035770318282958678399321963856764560533365520949814325774513225708077908490674505890364069590651149035164362532917596536170836827590797303336765475979934987695932326598723931219509095846309175213406368568454196711191121981758550643505581657126987673537261727742272433308796833394998844980940556952098048388860602908901926897050833149678817131999604751903699351107257762193169174544260892859561451674922377038540960134676028912234408438421074521056273707506705184374524844561946424295003033492715678049897092897837667483256488473271808000607186950666797423407351079122390595039817200703325337973711653207765612190725478652249424245244152381321783869988209681701990620329418918586570073088687374863831475543957396779922611894193484809478532850537754697121490296257585469309510066188504488754903517379382952024704845356204075036103913045140113025716814182708760916894164819737227904146043826020588550339258994563151894322277745539708283132342462948417649015832307189745578395704754656079168153551131606680054695492913469382127688978096924003596593330530492296424266012542301689166351240779293584226397379332487394494408970675041975388575082951756581827150828839528024686500329998873680663094179684639858866569097978095391049902254631915773203504740364145689417491770127757447654674910774436119024229454107947553102421769833283514857329355279540902518391753047007982494301557153643866120816468387124754600939107864809547742054530803433793035125311496608666221479011123877129937941834497066796754098906704616213384922428799536970156972891234739315540110350198578132057650737336324622209774376604725872120135806971409543477946712345324428454470588817249086326622269157647592931459156159372332558589908528964525705867251046119961873238133902955860996362184392172533854643987880941333517512572089837197106460657030875617854165060439732302193928367884153875380610908254760418806875889496610017622787869827304654585307717093093167021351994202741644163761112140799523477806730235230965571739081248389303815875143736014319978637681115191543583951433965910891042122782733359500661104044283753453511664648333037056065477562935924191919678128493942860632195947691631494713340530354569002469933360773902720099597377082370804173594113637352669445788000395259501915473529684806713223870163020846260513281109759854091809189343967535666134644432644495140359742433856510807910525724652489860474996079987536205989905196858622370545722429302229410306172412748933553370502214913645178698674800664852966712599369241877698514755750232997553572082089611693272440623539146460051314957869213110181687445043247899619744705286619937977235759594867373491772670368671042240624357672198664611711872346061934403433484350108847230296986899510613009489516012918981507014677967483594617385010813868241296924059306887245060077123630772786107909771195555173539042046127932713090787893113722262174099685810417759803337330360106913011195742093171223676833074417113309203569481137629689783953016706444586790314892064225060801370266540040346959787805214555683864242938878966731965446499310661907671736380900894160950132329957097690626580241643640485572708301914279676956854658665282982910848600009829223702543109938721331606595874723334304174996230344421850004493561622048117751800261456959432174187301038869959931134246704937592116351114026159809597859636512438997542374758436193917490598728054360587966649271938637914540604413369154139493185380675244603082407810413116678862044723625978375100583223920006065303284225685849952676208299539545030437298139151270989175370109186665096441677120207911124009497267531724447545058681779892759918304246395144856755044269203597191371887360313600516758850680059579352688225619439609800617568347786369449048793659851411581660531292908713203063662207803219182186629025224216466171373501725371772408811004884191353292996804118622747868870099924847931524124035285875570227299248824302291962553935102692162622556294056364504612315977256874271358314808277592134739534562420275393780512881718893069386692062346361072425684669931666658467434778952149452854098045223394129886271799108559959125532279107764175340193794327741711976126401525710155801679743080610335590338197389564350284820089516923166161218004206450235473790883285439422408040338384695233132863840354696573172185158400202483553691371637405535145581618641390749520229913675356495710570072080796010310546798047606618844390730950389516549417145982925426690554151871734811285756235391127774244823289470625517948149974421951448885353275645793798544784424038443734652893736341188871030335891586613084663026947206462268557820887126432322260700737554213759599854204320486249796605360570959246781056876643991118721328965873351588911230531805229906148743038331843672414077307318747673921547044256960711785271700983662841506687336563799722263124401395567510539458158847107777371136875863530806403630566392914038923893737201980005881581415663201653545734282072810941057596948296873191368884235696555493751932744426579852542978983640984588023808266348397233251412651106187849929610073083121342574346017205168730517772045603369755832210917547908859134386796077177048032546065969836064644772061193723746576443246827988381251131615443935218113548570138982255414676073952995809315365188496651182434984815173839372048265842865680493734702241001722545878126556809953280223341862542828084113332997047311990677005202302791474824819360372450396875286379537497739793831350549252796241065989467538936445648273999578700089871831682502471478150983726210730371696939090190819714426743741656455280242132681475935958313402565202196771651976256726647870593362196900733910323159598534157410089012576839724744761355911077030693106398851524480589518689325872012999277085525312977272642067772996712566742068321683614881924004733710672097291032932808122209215645803612823510656918880191640846705505287371600829297794906560687928900077877880431074788083770427338922077683387752015075267793217221412488294923943345743327175955126878913863015638694135642009198818604607823789660340806740130411822380283586636988873304984518188096275133276110214974561322700710146460121807343694058653372806789599252336306524188237224168881304751746339728923405432817739415173653340534751084317099022185530946245344255309328762913175338026854975608341158186728977303515572144839732898195517669796697927838852658348429996679069224456305451124675936949153685765557765565758796827519813986209180995964400526173039415942273835361739206082250425257627502707977459051300863857119058882978478671559143272954655464421134744406883905651578025600968839589351442619155800951815070936641950973744001212683635518865007968406341530423817545580440216204688325356389596572011482957178385375145023300531881434261722338318782072895402996281890560652121513616689373222781320496395892114259783349239201586927121065522425150262489406854832687106078494155362824920884564373955815655837287304092391425236521396239823234495394691712408990425386380400005921993252562519108422967231751889805482878764576459890910873184267954604963328972053724398739266441646359818040341540380564757874647040972526073793013825841962714347138834704981524281558649396498141599509959807286959726904104559093256146778051597479986734102739471510494659058102066134504863950898058711403550676499559494966164092481299562611229909239038302520451956055419416445205915030816151102210563769088946483746373162133688179673454119118742659471707350321140183359490424246381115301236488433528566959069386545444133594793367095776188993518030620169536007987946927465317402821729312448447196246267432393320479169956045371662412026982117652325211999550401994316041138688462700564422150292663233384361047961345519596236235325736414012077674489390521578029944525268856820525571607528507789636648923137204236187737924610007697858974409725108197059647020926534111718746657492063222208491895989945231329675960002259237224014984675901656476795695352307386384600057299502693831660485183574786457614730919223091609688115830049486291750368991056160961583787421546135540083997260880438343108932196041199539605742713944268814531189082114433411396108514088038454995680146394308274623355634001439915234038541237340341423965248793953818505806566626968678567761555739791798496739856640963540227677884667620133428296277725597910009734449877249547004889627140810626973417984512198582057502100920191001602634560571755402296370863463050676810373972170754144280804978719396793517036693538396319528711436427534555102082236390098477453143677734634728678362864982873342804095982898089525624259972255634735123001260129519020770060800585200167567344037290693882758856820571515267216224097366954426555016643379985997904974864642517868605264828644062421923348371579770843443427132338165084126044951557223064357122448819253830770143630763717249232981656850262348218614329642597428049828360245639541133733829660499701682816201104153668773144941697063900493422122803575741535999617017975739107127689162028467530069253375428490457242444070837251532648893983123243653039720003157122116643374409060724466282526173979305779368018208154691619716308823620716828005807808913446698806096494848964058887491157427495699909173372834498421777228778297793440845095162218592069482791958936794266966403952673561965917330543355950990440844113244690687555738263270424098449190994294326287605413042902817274232518825207313362419071475280906178430693080732886276084421741223234171618710103592598823775074169672604022897614532220433612795247977263154075139524813846966362780581319800919248131408115454232230862832432939601774887181959556174655189564922036164637733763856150386150184952336744716109410829709267370589051781471819595756572479040380032250297405279289437550252455459427812066319179966485659678443151856027142672959245475313787189481600123225957211825706008034300268491373171403593100516948162123824206988377496974333426517401711762673604834821566812162860647237684033659733721869619643195802062530619487846705431220891233707367477986317949306564040228704978202165851614136897330686662897535941160100616651430402977618166302305021131516026617864244935924178230628510023254463758445833979302835181992429702881322636548286206153715163941763369448657540203531033607579194785224464011296119954317668118411374253472021381723497573846780821996529607736814089608104119139722631714862413501732319834091633545924794790243891389046521921422329039056437752095098334138328274573951789305486169333752629630113556263177540940100135490272756629664784885819894008189011154463247552547047062576410147296792596293310741216147496170549073221835533283060608903176843760369736706852183885550819902886428525983813849801614169756758460276157871915636412806124425736584191624269565437550773341143019852946173155596827697628263276288112588571260265178689189086928374619372228168174713140499613424404489626061769658882879982324109934583850322970601566950090101506643682600346109619888341322318276889778289439357591009333298877314758042313528319602654367203276355750779327695855387278495874176764751500112903218331321701318698574421610686151588432135566224714807851729540202101234821799045666112696141845808877044680022401598361610138371289265372743517549202567768742129639367375018809366404887508828844632755860293083031725733398773319722531440480371299559883136811990174210375334978265133385921693532298716243161589655201188051171069977481175265195886728348962184197731582024165821165021704008604452841172339907172154355755475970967608421177116245892905460471677906111249437990749593243572083815442635263703548087627886955335461675782537889283761432564830944813138708383899345442024572358925235341554084798552387189484358604928475997705910228270319655523101703339547972317678361839678486706190889205807847149544574606615107993772038770066376358133405210273187796927371595792187396468927042323082337232317405404594543171502034492476955682295246224117969306522640608300105573788271480093094761978924972737938064390831495505858691600703066505442977146832680285397505069456057598622807489703048498850580063743749907535203963656599460783790196381181102865597032521427145770041222364380119965456224904968902143770645188076593061674208712721373321870163129426655360815549789164536538048842669425548627213770662455230749299219724629924405734157026504901290742564725094268512309975948942406683621077108160288037266675312716753990485711553587347251412591963991478446393419034592845508881860217552284858446797498173059223326792293543666224733600665000491818356782548548510910000458902919767270862445601812620214407200047374471148028724567691584970953463861236167184546983645873076526502742372598740856719142963847574160991465165449359705940396886144967864241325961866828169644488355684466245298257142093898502464074732779792676024076828680283174890768660664707013894588980564477226472815770718952979840777173775187591738932949195295317734998423422596616069969138252398005150556978474812464997574230549724176285626088429403984398749580957021206023129497943228278716975120267068709622535856635186818378331460172865414318205226717641816650534559736139344980750751202922279403348620571740333677671219224179269492887848641195514926146895486529205207833669344808739155133593701764416894851728443538701964027164122615021838280241390926691113460787088207117315110954348119023530453690073427459134302872606493362933219480308944749383705647329379409429093351027089806528997811196875619266851515081847542255054128088549837139686078823028237409980509363077866937236285843189251145479865294855748722795688582462297501844912919438984876698117592895775034716186178062182223820703204302763477490543159188927303035692486678423379896282574153696471040257240898402519644713925603566781148531391445266265267928961807637268783614738224982775595208205755843317930599422569290939705478974305857706211185527994531212257089480751358723610761774441486838738003081030249898762231927632879823026556002806189767207842870676323946502344303855735731176868083389127650951071769105175487274572103740661682534689870483728596651878046161717742039397024399948281038186842010550405740930463239652124091493235494034014437079337963637469320542703969608544116745233754815452632132791596001015836998712613676618006430750849714199810550643129840611230443308276286608343136124183312046710886216521909046423316452632861508477758798087856228001402369013159929786706690369088917779933772445833771690510342054678984682231199106918297035907552011095275833506044372968713992799119014985967290455370179062444546713291341317275609214106051307236861556104520598915456175058050128655207531858296796382994178711473917724534657935043791574639308142726448909433948010878172322080181235081457176546065389254653970944978069750242635366779586015718600120049984543446255500680871996231174070993174028332712272264156677742190734268944755589211022122727896323439283538693862905031747928048682426291293316648634556578458303954558508282111800236026544112584180121533445942075047166593902338308285589051796715965940068757097505992476640277462962654420577031299471356914882027561753403214237471136857523843985234554565223267681324613620936698510691303361071154353299054557714408126426402865040380365597191669999537408466702016199112733411841625132977592066403409043979894970005860400800199763368497416479097234423848199726645348928749723617216509753278129598806543733537205851042486984974005257340889601785207890715828248944910104050789590056099127129843679953575441905577558397331050690093015847743503558944359524334446316680760274214227580945302390146002875598823566305665839045639019396628081978019150083607596342709565672205958974294192808781466731186834975725177131604463077135724555568631487282655519943462944353575093132815648264709339752954744512701905438123116252644676937723636075501784233155681766868628559523422352795108307139802900448208421471639394581468760231782468712273649790517110556184808627362980161753790153109503587189096706958509206832985853520705046402246128361766377152685337819600099366142166539595946750474600651284613487965248459224400590988536031287137171629601174872584100197916657281542943778920343409104161134595395351988776991111892289086198800081960337139816178644418168431140792426277502749289368786046054694094677623297833364456330472538749721534979260642265418487752966544971975053658543041901946613777753575866327973732825215715136739949853396663758632985662745896739700496534837882807732155200227422578340873454381455943871959510585358141332229607713198132748436262098854738930537776763856710347299300435917747797219951045986240234515447907473515435848453853840641099829035468155702123822490525983923404058645375779770497288994135475923194676300876574058752893468351121971137958065404096556947947453190789790423803264174362947113193528753681469829819102405096564806823642480019202534225873242964466069594797400112829534085423904481244485302886407071814908323076193474150183876471262063722908185622409582772519490326443688631108401580199997366148784616207519165005050842312020399064760247541893011292019548489869069172786485081980722745164145429807844897327215687063672150382413495936291449677490027677333283608228186223196581067860775438705784316524096708390696376918285433581611619182621556705005517409372333623866904206615842607178654207247363438859196722054091007942561318906681152776254719855338502841297143077763357789615317699029896899748689310922871182814356158625549395890913185976994717593154385544652861462356783020354165499103385771776176610774957705496184195053609230700999480284141910021815557619382327021373154498509599027668975935931576696178424476087879718543467050399683586704654347722198447370033395277096711191958678023444395014186586942356626143828628188162357611368084340379438386254701012983789326258554177773550682578690552898515539119634349294036244718796469102142832606397645877037845905406369116073389710796811566403276535608031235385114241733687845869935682394350626394963570169611571065694262832279197433573891856842417959740635665902328526505146785118198016534753881367297083327664218574178125211584751841797701994044560591134063708701077799997084635670223502264117884951870542054952471282273718631028368996725392225170784510807252647667434483562017536516921072466839758967886929204475636504872519533041610489675334533533486639828960139022352701949605987212189572594485426238168327149342971519007059197829502184445721660039991652217321244431806715590484124602255857663088053098688870218865921199594452564491293051615655766630874161171040990923282954757383370897692752660256502431166730579125757325877044192819621535091760936220193520079087610092226871168250481039801981248790682265293172838460061686060746345820210822776566706170831613157563611280026132860743826460036325108025713814332220872023969315379566475662026959034847033352546432090989799460702737316284350959325869779648255945695811702311940799710107255638966421425498080179660502574069831373548642806339475703242050762617328633936977886632757071510803666549062459747566859892181704664763652193124958116440448699457407732189957291748642681439038942235739048938077202364991043288858003735589358349065783842244364188338086427584708518506695735949355792637323806360674913888857692652192272688553308106840436616372750061694359661946525572059660147343644941768020851080690556697027929461954090813664495397760477585404411962610439089506053278216391161541233307497225357061937113931991818348452248013194492487844633469181154752449497390873424246263713191909986491640029955879852838711407944486712410189370124094383181178482780741019507126474058226858437997134241493471348031917482497841414295794488264241672074533156323257315531414938093852695720041645713888638695576331670600735389309231054706890066097200929008461046323403677024161833656678087935552295205295951522683232416394219212289001998720771810740552597463687827099284739297275126886517888676097210034116690281156951716918861488099769664137489722488185400896469402490664412783508575830573486397949635775973603213494024706417895279216180498535399666944418680250732609435913803082465818486531127146438400755486895619443898973463895249223859623895262812721817431318090368387688171239375217532608695721851802347552223892662041455746499199431530952723784341931270258212328361619144378604053438603666135485152425681738140571403585079797465666927620402070942707717197607630429425971309991255318153646168578344930770992575473874152488945421796140798002449541561007924060492425660602759114840167269970972433071602691039613859623845178561313055374036350491648066124310783257566084605388983912645349828073046718365470044661315249838059233003871994551920877072244616880843177236135741585479683866594831458952191562387040916975958297280741428134387378908387001023863885595545171479758992394798347359028709617701740668699011543235211585631505888014335690310607294966162666453396545059854257154388873647276846385300779131511958559538466027354316766210581891769662284810896755993549114676341196983270147026319443416748228163130268377310345100313959702403639204366777082198369134662682779405373447853649184134385388902970723583712224559097498054915098734701660395986062452045452439339318856151290922428992701070313766062176423100131191383222495357198028866125903798954453673975137103114832005065266712343256572603346036413554557331074647682451354251443881075985961294356621518558494848280225065644282391364314813659459711663304778931420070993642233485575781769356632476077135928573389640968565711345359110513000259062874498488481958318432948815828582711684731091317856382010766732213204472658589647576843145964921424591122658729647274470370831277804845251343540043188807677547525871465096372631605935591709888155933920664539999310833409149982746862656395590814612957210379669886443042717877562619981610622809266510981860319777855950619384825291708703893224939840931246873201331806560437566805106951866297402658716689506281341574102123235259553798636956591924451347261864607233174170865597283131984688588416968484305114443697709816086069887469570720763554210022643919479825020077111550375041519307028665363889581306292205311280422833206692225321371241155207033988090294190145545669924475730904116437604607806707310686177518226782849844130329994375260785413576108595604007415155430563581719286688407930657543827944067821512557562542498281326173692088013886475415926268096878384354393784543254664623290152690713086432920464232567171808632304100376603230170839098138208618175602508341287813407006853674007025811557233740152614345667020830032805644383920988154857357900282042214727331528974817763783639619625440540519479684825358922307241026255955550430913538750485543317196580226191533342657529228001448352712893255693294324948035838898329823420956234616552801973009218805791833132201039036212194676540960400532248078591234483910349347849468714639480673358718179243605597693081101121967483034047578965582718333215144160479830281701719271868764571539677772409379399258059339784422520178167155416859023768433943672582389442900538077933362758520656535316627046893405597954801752680471766245000927998885310532318972362398330365528573091296870244710976539609962013300319964048608499778828884018244967383153316723409152139320513089622427970387866151086652166792651339547251961799431302639859525504518459374771023108412624568709805342253689205099776001026379645957009692174630726101472223604027231357360167240665539184461619318426617503047841061658489643166100149705504810518596110573907659230567943010340260480004945014059980589950305441741475713032569678061059575089565832307225424788047895568172397501014985725688235119773725895204982567079841332182298147136694363918178365721966137288182342129662916357007311043340873503151768017818640912899177739929268792711040149611604592143322807972465177483522937348217501496770293317443325327502050341017144442361227515176795128558880988705071327421213290102348460678330245608832963817833255663175239552415611268646654877364047725568624392685221956597502919841532404031459681711061890422260045781938472259429980509112824895555231811069253185902865195508337097802632007903408532525897023218464320768076069283732085330645677236018305151981237779072191130725288678658405872546222436885245853400690307036400070914063796610473999699510529445387023465069679302996653066651894788245268870358984852616735914243650785698424042675837643052508619175993193209917156240717844019110957419180964012311591372791649081928376533673467888147019253200124129922331926839125965073778644661658450979779825457610600698284065076094831191383322165802036144634716302460256107255127130399774849795110050239021552243352480704031012901606691611630666265536621621389887482801501737547039370196773456161487640016495455570421019270766083694429062020836253243089401778004850499756413961653740126485877368547292983723258811136864948959130111816026821933096223983114962913334778883125400513925616502177847351712581347386331441769949886498893389177363186453544515123513125170973974340746468074738919236596196820431084126155906571446354735890956033870105144872955127462432624869163261878613529395187924530512854740726655848592869183351481290316557084435487390836018195663499584563825326494910270758360984622726197957579881814818510892703951957470175759631511453132429588108469681134228382699537552576354247506039634753700493633411847930410041795115870288967286786561709447535167217819080796958203816277990043156069274125685079024274987571431878468484019357163073091987876361486492264142865262460703689977169475970687720997613119303969658164371089349187730340204775300511735749050721052014607531470829882853384140147824406043872247353414760276051390578516555300098681659089842922584727447905245372811759958613781773368985207353340179542546185800420277114677918608780793725095544513566336872535389106574278912323222413960839175140649014382015779343810342151887829953091260405950929128880678665819949596483931088199263024137903641575906834460429423942822774608768200349297318055404204777383146339718552583533608405044714961426388396498344928206940661309121039938723177274150258814793178423637899405826952600989808455127803592721522436864116283768098547148965455313052979356906528630913023560756106337328030548720991346473717012567559825570252839125670246485684424108688174784685552560732329374254863652930450787789643045321898219356437417255378537010775960825174025451371066130563782001531027557938583985192256847788494845802845020049482112959664005984525854883064319360605471094044555245350170485100433562437291950191222912161729911909243434852556652600715424492926878140144252601569043820825183363509488754767090034332474819673719253833998067201486778025635292992545724354063288249321239340636345858319913919511860806243540346661360029505218911972662269134390265800585552552544490591891574261052317610741671544114255721014950045119079991559692687927408921512610194100438022071999683752994523650884142224207591316928237286775890997658455916989681994197900341252656641075252367596860351724653355118401026220462662361986944609213105217497274164681951639942022358473472431334651890154037435255271924165249222184016076656041163898296298033569469078042499394974598868189168726518810883897226273202612850655252813580814872109481123993381069665269298080762267784272065760827200689775798180306278800992283073784976286481248865109583584656761981802738386196280807297363963974142617105720631244986231202913290142007887134541343359525901817035290552736910144479732860960342349772264255928160400749207444732315724424002133661380960607165916046603494618453351218477896130204752480478323626911471328938870248287589650188127837935163258456136282970292763981245428231873376281173989329945060868741458452087361334567837740167566562059030629164532586212767838560455750030908943671559982325276078526447675297089573289293102643218074866030152653068609786456670600365032649797470268535632234517101194223682594730850573866251103000353020182795794759704274726380281580870813859608555445290827235798450634842267867170248902932719093850255897076767555073798413799873661588370696326572898114446043203939726299322203227126784762371423009830292769942269823806529875219424401531448603284265073429677070634010140745656744008338474805843488690271640458213418925083983135742580426603700814932357004017429546227581663505242802337860259616701438187856098779274627986764168565220584689366240145709428202756369480265572210920749212631353060782476454790902821500200764000311856713600172239747084116186518457294623562004098807926016094669969376294818998818818313895397141815940171915519876463411722767909079121053608825920635154996411439135439409540032123010742942930350869235446124846433642331436969513366960078659710130907496855685134950183259094352405012198933525380572061163661811824432310691396286242056041201560974688116663633564583502990279275908737223945846553041738695123444574854407515416271491958781842504705567745337397172777383590899833138616202513012389376554025506223666956834781196704098350832378420338448371323488711837008869881279037946267696444697971327005751625192552711463496476871692487021620768233592173097333587503881688375145181224085852117031809083786595135939113790081178872854525751468363415249085528878042925531703186056475078139266027878262722576698714988035937048719263310883225994167016735829776393126661504603169626507684854842603477026607506972202580346158811477015360754941350060590939159139102488652872035105100830916130954715478061335006379350778551056335465050876560648492034133926467072895842786914912864872046393640195277907546965418300583293063972681472416850164847122882996422917327582097539644044102788322112656279606263665465258943219491328408905599453411597171629846858791761016588335645553847362955596401280828131440159621882612908926763364375771919406255280679847171416417433483491561755419436683415429822595472285267411305178615277498968798797232933337153648223602772276875815599804249043955121020607721042298214345983797228149822535841409421138210579455810744894357209548796631388242056410327624337476813412047327802107431631221701508342925573418823158706583679387645719628107049211476638514393496069451135453107401289496104582760245544067010929910440055548115221550719708401642253258595229270849530174608878392537037742181138776871841056456988051630923507089775032822277019550593834575790722061670468505692944074236599708451923535778967503401610180591016768987879077097070846698968219654988090741179460425344894180927537119822139151145979293789907986833683780322782375009674809975920621562496886083036039279981231383150892497707022262977740587038183143110795517959644701417565081454589309951917165739462124784305920935547361136619781190229645729255724562430370910701913660357886325703282840549113061011843026983980662426174078729662749043325700199506886566873171942899308950537870668676629515484743295000079253810110616979283180887729112677008393277531877408153782477713394460698821584004720270155498246380968741785340252753934238726996597539238008613820857673523831145127900291017615155529493249738040977544280728110232245228478989072426240661628611949097211252181994037803693787613701326153420556323602769440512960568059985842554394821951047311374346397774000522999899657695164297672367734221551228714280261266491204206304132236622682149144294308804231457130883931889322832077486541073549521010943585632006864488165410200429388752571663819459271650488966880847871904079636003625533016035546086584412247062783423850374296582855568902846290652108819821600528838035236332997456428403154113653652932893923303642698669425701000795575233492958395908836249391825975124289904841211416688004741708689268803716062261373923981877344155007294384012073715732461353896593577494661584532381867621674038748698303373509291998156416295750353690512622952819638138541763446550261912223983735056720379138960473265450091445249550169608335730030752685887083824641194225949607864700988238200563282259741130269674917108586026190394635531985348281761039455674828581228125336638272963820952216527967506715759292565430199720334036070160560645749786712949146152793712824009012478648809080194177511879894941442277030268755287614338904940652096882408588909646833067127201499493977774477501406505936927052238981519560294110500730859116003899092023087191675694402143568428042971213322129111836481727998138900659232765776024864062929846482582430819922057707509707526001176599280862473239070463148479304911015644165619005154212481570985396912862044719425421694892333408460899833264496008437093846267234623110712464183343882693237806074231858865125333981799877969528225010495253546295545898136220189406097249220006509320260150074497554085855183572998030618999739718712523757239162294491451431616661433326400852616328842419419175558175245772192000150279403959917420831300696201604789804669555055584202384233173304744546179982173964295062919217176678230803397689103270083187501058889853235860374857319153004422859416135133328037885743469082988286463200433959615059330020018040073130486540115110123893058528594246025058488324804284881097772143060333513730782488850470448516819447252683617401860293358359681879622660744496578678302024645051132056416006430759505939581282646293087120628694689339805356825665130194145582738503384402906191362027011131633232853013030630672892290637627043889827290579479001760336017429627387800880263236787653041676590221106967743271158367120281742633275704501122024045860823300949773137173286577091443670224372824902774393277168093157151576138984591416425534506317273081478631525106053576568770143102416988031731849586822415615482162726242588037879854385747575121213451432671480152370333330491555527756833511682741430310643805551800190675734239112493153753126977195097279093984050405516836311705439152178634062234034009697693130607022796271522315525444517432259900873763559583092432370632252487368163279085668262511686513543917958657099220642695010455264118057116958077867786337922366846799523999452810458715969483292407062506543014968345148991086243034728126432002120816078915630051326093446435154543757750394377214425354411288020682359718158416425941414969689254887763407860745044349580026398062274408917057747248805336704768707006346058997577219201476783732197152016034526300741336649421834212464913147650008639929863181037574916946802953482840288685135325639706819903899188267044081054617093169176813374085295912373986480050371624931248345344593311333089521759466952263090590528272452308173009163282502693829224129803457910624609271191141249195814592552278088299160001516098447652946885593759133124429250120286883579034650766831063258451009104544931930941981288745120475753158375835666031864046695319381127150148317346285730379981758918413006090475331379763628315109497452358694694597463626885243452813909052175279974922545177640706254286257751153804121020684788250409212071496337013824096888465668741449277542718602558190342960537608925156653068400218482464024100536407365106281434103399573886476288955774075988841653858928836554924644270204975039721486744810542318377324743609511164417400002146288949151355787063642029963913777989528866416791752151075918911649703119865705536056249150324901841450460074349049518905588061848319037917923762844295725777611800051116729157033557982986882205433583521486839282650960555888073648934867837547541398066945185197052432988952578728880333889069083563445779823976392208644439802176927534844249622147706558409589888604882310138145592715118472692512077091597247851280028422198228479465667059003200315467360084535407387990764708089349415693091130714304180773747394633669342509105877743230555817835124720024519677607728994753510853142005275942076923548412829731141849301087850290687820969443615249073542173202589969993052733201396837296204485752649514425580569764503332122195190651368033598724714655797253562352916963517960789991189131270765197824512056313576687733066015733068774963090201867924614380150355288628317306950378881121153659174330972948503246897481214773165573582013715318070465134574316034064870692928770676902441694720474018495642525720517828863141883471338286818202379189272273675743628454193765082636804722804221232639938636693996707825913134778070100224604186541471570312747436383146479717587857423227874346943544408073084840503334941557536964772475853984611707341842520851665139232362446324351726700212905658861962641162126299078340464628384961836504363728633941636105044575666329440861457587216181550902878762195420512282724721509681909033577478231651977422427595615277120422690169896728379058596361786817087273671356343048471547725838012353554264107957831842494148577134600660051832747866601371105824019382728801122798198131474166791133226925596087522650049598325640453118500539010996952921944360605157674818676483881469226394550669725391000204658234094010772519471965366526808029742841526705216540194134233902767482774872213683352549415401282049534743031811236418569462426825824761153701825603205975558127193985438952819194016688838370704380637367281321218683639957056122566457871140284624850151063897689987470247355092570753163980722442310072694147106265600255962027100202725760530011597003525906165014788025663565638819262248425398314213637131174557584374403918941586978238410376124630071333990834327808340571297548762347671079889968284396191155792103410770979569217947663956677668007393280301787583513819583088957579035818339715344017821844608557504382453304606735599300572105836800878486958710848781454078420993452307089729179315922862555256721212251068486105076970247563523096751123455521360756094515042991520641207472921232878914282816078949792653137603430519501750543466586442284843055913301594216280508339392211762711153878925954095745749582349023398815066747431287997869596487894121629820064276534719034600988780779028489321103175965987434677036819427286038047610971165662971653226543949493939752021699763324947741703865440359745275852805243962958364812808152383875684820581986417505871915877586953698940147892856523638029010106906748746367864429362385911402475376201545550082122904589794477327500684180280369723060480239952079902208411725866544989196913888358531398150375634470249900856611996104016476174667368480725510419416261175694137768946872473557843115671006396215491867421814208598450818310114863673295857941102521019685453380144883163238939738722449615290025417799588826538831954057053583158548521122031384790776700887000190053440972819458938279458212777784436528328250976730705612217774297885445485665345547183284927491784299751711627247076837039530496737490589071572075770801942101254378079117397177575839886117738257151931385053763395733480575408981607905188417504355264541539891376766711681343879823214771504172428574331965818001213113624279418989344347453269367279164984454589155322194261577764105071646464814581257314274941079801606920865765409825638195312944754749445388727299139818521448216260321686934193178901945674850541548507550558545281789499834265228482661775838567204633999930217591718846038083489150127375476950745163894726747761925493374938333413105497668561329509442411449656465730238847317583157502317479470928526121419446594472753372001645206386261096506129557937690022125204893350702101479942509742976575840865984416691572792436993457663980305658413915998685688997978920888460795377252440146578133628756977447852317327901234604194640049381127779473922118100875974665870430924209204943054647730362997983941669268429757681498563566033343820688636355400319836500202835067888015579702925846775232624754181099467792970734903523103419709581145530761858144661691848932224169534018671047316199351557590103494292007049388197176512262347755490797680792679891335919720017372295146465100492569457271323935540353283172854389015722038912164872414194149089696865064097408069887587782163448246932889854766276814224146621970612354954104176421124546567606150848285536100168971892719589468461328113195111236846348542030137110774927995615212815136021169272331781369786426728230685567421739813080691270380310542815370760395527583888009908499936869943083825743822099190819633218740053930225937817745135754690822610198720652989986352655919362962434057852173513576322319939212747859594786934452631486852844097998870692527008304545559902131552629027636292992886600225360682020883139588798529095954371210724729695669700574326130248987364127132858681335871826464504117847071435009789440208991579798051770489454074093223363326868246162068982988617035117001245377963701232762816888280061720723355235849935017361481470625375976676364930738414467759561996426183979329913709722596051251012813913924915337771728958548296907863040263841079777095414589464245856383918469463870426306376382493710481486763262928460613633320549796541350425231424168930430422659176834441850887910877545758024087918526453266058330249010132479355365870648404944830174092635340428419715799925470704206353045206625132792529474875226411510171572342205583403901645512485089256216722879102621238221679628132161161136528432028487694443010428674383035059469739132372945202085242597717522787617633375996183638708706606198501686586573769611748874166369249189779582262952574334823105862560715661491272045529352859575849675534824646163535244420313727675283377264639701130236184904353868384162133609418482418184055783616926699812476722226905486628068903886577080186967695466870847749051280769300027682270165806873898916745288781940759394183882949688772934893423582139934767667893348705879845422306634867328437897158575772931700469902204469961835890273868391985779476780937436653924900096525792916175034818920932273746629428304023149313582815845868553582591076012328190348724974040201330767701587634455623902343649628430962116222902200714017081788081711571603410123933074114300700530504062435652043819416776934258051952392403456699539070510799622645531570197731009213558957724896346088946968251319100484527996215650742996391669319686907488121051837631956173698700636683874611925718889675459481468908654454772264793954833218804050774025694433192097050673053333353122208585369199936516647214111180141340214562629697015365309935935603731835064600785892386149148024348962559350808386934089543811207393080919191382129543239179732757165002153986263019035503387104842482695374407147673804947024309297532198206982670365829595488336075292777775169794160156332967551678937123086326313584369327503258045003560276934616549258424102931118554209058424562313613640107371350296233509058200883216070989354114353740999023467463706846267926887942288986625324262047826078484211764168682708554077217059408982289840320138486634213674825595966395755911578852593663657055295089724646233413340687152847856663450654947267659269885171760223899161384794126186992646210894579070744520765306813705203212648678973715322660263005574063020158778347307469708079214524095177292021383626225409106976021987977882759810325390463889901182131229053961809944397156048274451557479971456321339867105075606524650904735460329494948852745614235796850265826540633936468639973191654140232628015949284563549432751303695969352245280204416457233589874641437800837326967116437995716480584738105139002572359136162190617474535009728717205659700049262808435242257833958777490482294321879676638920459993933934657774617313875714221856614764894414939676061810407796386191368456396754871822467798681393680689116298747206420192531017257886615679798284104731906351617824519906208262941930046360068358294480477097172730193504923901713280929106595900324034388263801576813762822590605796583092099735056425230638299931217516227948601583234816274882779062302655353667564648777670472622190722257671027775332827576217459855196644366390117368486503976434957630540384182191622383299033328995417279391788954958501538478401651672273781468570769491144758004600003403447442500321447998178597293942761963240575351190902010834004159842800019810646851335597072204206626680002364963203529702144353791987778034488074459590150966406313227038551599582131134402553655647018703853557560002113497125310923927636538074685531463009288176995344704197370184656652822471259655422005318425690985855256756177784027340423550413265566870718721981195845816499811690091551884464085150499442027099001627569936571086138421509001520226551024812583106365003719318162263490325888995586543369287999112727889749517781557752421119351058239430530630120293693988198354861847549309285092203189656524469882221828796752491510969905793935320873967127400484480705492689444538357749179544931987689763202746779322388049854353253307040525475193873096471206346701454457951043093485151496498286209452490467811655501612166370611019668795748001537259088963913154471718095248243892311301289113059368424320247120265590728698308844694653425548264988907726119494599867130383192043962904768728701340923865769773959191088969129574426826623483144705912098113001921524059419836510042782556672346872547985548383756282540640845200697714418756946507366550942238408653934896994079758733648392752145228973836011183528195200940844057969981655196078339747248081667022831450692604342528113228653265770519437403755714814748942128674463520067694210911133543138620053013816455358958545074796380173551215972366688781412880407740730640710922661905121114430293387360047968314854219737221014810842408942072782411244840042359743906922727943345558404129732306628479066008806388442738669862372811706456998309937899661429731532896426201466536213305065741595791110117986247288613975990616561278202554350797901650665478404467972299465077202684082265148075738780792965459200394855462876918969182961194494090680582502095813546786954208579703685731460309500784095928636838924866465238459662376018709464828707174711082221292741443840974987964191385419000215276673070341979792601436058403663545483770320466598664895508825406755536842864088378558109804538072261788627318604315694505244520822425533850567288696566398205930885642041787273594360706648068430590786514717293872616655315147094751543909017632192243180519027597783390177699646932054687307491609339681548816832333021951224892502738839462960147208366494059907097257150225162743020260785967723235432682918755104780038536511365514933180031583721229516445750681794436443271823142099449076000438625528264362713164908426834746911178535045913119341355139226951608352239465948275768428410644808336189536665037963411694605866042939210173583342581964388073545917255617428669670776998471331940254338157994324011162839131664103974448058651795840077677073416920870530365847242104547535158315011327562364751830844666006705171114047588811739305214393244774852673857519698574399367893848143880408809265726439198288154369536842124024533990713248950534676067880644036456849086838349807990332631977957136683630241778361079177120529107131175591004435727566372578530040192383496062433045032473651609038325589579810897853334700606981928976781256638913483912432805103751831045979661117852327626605221155378234185651444799647779464711976444694009380566624411812062070471662161672130084724700312216996504407105227998814315758579179378572714354066167017532207946563858515929269957100622554143901342448552225165699626579428984897456697539994773892384449565121091714182109243229812579417185326849171501400607310484291478270045664853321538802467053854788193573113088419068415196889028344433511142456033515907424441860402636903623267596177070097950488527759753872567986611190189005748504758242865498892169265582406124851389904101643404682343507440016470943928891360197450245598190625797617263282657471574659528387120136863976838762488319682938407794458365187421943591386574781043758417338262724207859454979168853583959813199806217811054002983794091176022874220926037901988614422602264243163282009394820957537055803056688691003781459577900127876090516211495360555278416611076053734362144375791902160692888161389331913115880860309915811269766727040992131789720389942482609026844591308777018468190575519440228391475330110553373609758563406532244500274276368863948216704080300667974764359681192581731306054899921538416256846577270335864115072059839695421423163278485457865567695561879793729507308878334264499611943965872473996365319010409230807232715242429886619006499080195322341113147184746695127342397561678544103215621007547310148739609292249279613075651955671166637957658677689440860299922697709579481791870759071425374426084526037090106842222163534023564678688284766054903178293643184247924128005594323068336522394663580570381141416376991287222087645549427825136101729377324584240220244711799302000000008166762849680623506231806533220620777797498713503540227006624730852837458491759696184686566128013870965186906252978933765682821363299301875680915317113046683644298840694843912182404572823691711249537034634042251536795903774532882569966328245749486838135386592374765692582378140141830199995335432564708285011652143171710929802008389532076625510083464348718075796857859421956049241755430031839146374678190352110257576766014158497310098598314093562842331157718648522463345047519495025787224705397693109864929340655067569554863930668543929837566970669395259943659943423114915909030027517295005147992332548865692294622610927267210940023416640158747278629752628657450649007545715086548268899049565829280603588200422397866030425202411673529597512274581551935789100758192615172669510978981633852716207318406956129730492949751815327011000172738993337855264976509547795764415562730441269116502808926459425490932852180790187023267397673504485064568266682817823832317574695874508721030926149593086567056602456010558233564784131880641259041007109505618774828679566044117756633398091043991744993919829952929626106574537248269748021758188610574052946237347714979345986691878887944345708484783237363511908133148248120151184070141351312524345647043533699493781448488885868438679622196422740738004044482047975537327692191071021019461798855164669497741469423537356023998349164578845867040560232946044935144986337528487383694291132563386139079338237182945161741085942478970656077930034277588346770849987963816563289709041943823064714597403032766383967283566529703242250332398588945568690312401419367238098300988070596017487056986671873567925957990929460757302959820833483048304087372226492716984133145121679769261060708975066242852661460205900782389422338514641122986734238944999631941269794791205932648041460561600836868892719369854424994254740649833677978981062410909327802041197403028727321350379803086616288474901027428907271548127364468416605288980120032335662549773165234629324304066617023903659358097167220331438454964611200105972395314892824950417098917354891853238371532020858599980938785887005148110885441456059156649584278339351806547425562788899981474904255591285904842618756563178432940508207566108334271453479040928718668010598530904592015869443474650218435720213619863928370110712177405137555596854168276586499286769102224449846283140558014999791685341700896654181100956508176631476961271444289342935719944939643426375473328610023075168056903334046795198054468678656783687475018525810536357629311655605073831270544990494385794458809497613199019875553963854058067027113869751889734517383796339375321275790753736128114924215924742621080023393706733747729736400599129313338169304645479767997027351146307615469043318200888294559398208138693368503190355819292833950959041579400578460618340453913443360354544758366329761563008924305631348973102707123398763403871583193495980860169151895701796590166106885651139895761144982795829335969425875569132198976097508672210829200419784294893032517807783022493522294854246409809643212494925701892828266295819709293716079891524221142731811120015347591141141555490796937325225569159242800754619990787135766855273846189651141679338572604786581589605547488790001861665035267231146538741993821493112510639118109144012871399403396760606752643803871493174452875372495983744856731928768312140282707855216592739378481067554990683481309545354480255177844419906619168036048668988114826440791135407570684233879066421811642187676944043371073789933069869750140918159073604375453388004824525334626521663442692383493359127149952476261785783303775654658938555768436937056929734212854655594395722008187737157970095670097302398889472041093212761523528413569798338314963666144767439174460326477818844564538900762749434276671060152414363495442372935113086302839634318898303512188536474128432276761241113761512854607990974325500172461742246766876701732999717789279656635641285893699693011553816371372977240860543720367256393744027091992191652645926159904375907629240321765789633990333038079763175620668571875429055590502267874478045303606221234851497197853609489949111208256672853504024899027965982770703585798950738524805742486111301101746635446009936789297504930046754536646488585480289060054889050193159762459125930908918843590216202302870260892608739119788781623887918554796874487521930714434022639483102390797354150952658101673549964679735305226364684258220230777727990660625833012146310057512452005641841391411747242205540623636014807643183237679631992388068133331728460455976315307087972017540029491312171959180887955019419160114834548645868791543083699149570559378175603618857490415087663225484277475443908859031847458760151718928654351399069804961287468108896385209554159735744101383173407001153155802457994752128330005896830641609685354701243434418014446554767284399404709363960101234423319720292620392532971731286894057422403742194577417031028370721375277564927120616562388413770158584842513995256981824934561128185931345260401486047777230464151348369546829764607616915727605344711715990176510108102966671482655447567400852557733223042926750296806833079080227989808025321008942108466350628725612780681962959852066821876511363433621615439464132854904060806065701253328757773039392309305766969559937096165409526786776086426043110185869488960975105750957726641963342408401841370142573607388561357674231415917064629947418619127254655538487997447264174686229259671905467046305279032548815841898094475125507994386162084761349399388226643761646842530587225010684756873906894392008588681800479759076359650877989487290287287366331018488162615368950482113483036589518305380905252346890614208528354306803909723907279553260510324298846414668054340416007010405456698167489721737632071945466575060329648886879683598163325104247495242191744776360630194411330544519535459586374748514106889602637062635367413747380676783010851575156974333479229952197396943432418541293250575250196572919642773166042434229773559185766845478496476454520901525564523376380563885456749766760654734776831404789247257430133564634601397785303722164321808382238340400426822069407561064637353472540787323503512862432612472685329111914231208143671497556377001560987679893978681354385117831701124263397726997772682173456620507107183744239479777591603595196784297062432112159907880236786608640902978926052763759214551640041607178159961491385951788007519447023857268716698004494369322663861609921704758326240367469794788176885814379099869593314075574964392611165440142885345561393888200021310128051761385118096790191711071023175533721871344027461801948733109279706360021975560322278485327063052613227719415774417628785868214200285190660557420670919682562177060327193955970344681878285837166443932957551041010173546170842641989885826423105134117085283691120832492481812576974227445883441899399689585414587612516545806068896370225367266768619708659312616821112771514456844054661173812802859477350787700086156752963588900020968648500858588456139368471476226067302411780271336663320904486566114231530825988445019943682641857226913089055174213921151391667265176226922524586237018887779622013079182624683466944516741155581423888233974794321405820057343830859946672352154538328071979441638530185554716436991812372997592760177238750091400165886229016007926117614744439135248498385565854800291576322879910825886297701738441025063314965187364503304843757054541108348724441375308538644075514573777089436596923292085140850431791432233497482222801181051650154630131131708761781039137675223620318130797285379803588917616736630142329203178759453623175960773864354366690614608257477895904977132939404465957319096970395452253771466868483587951900765464298471955269802562053698404049195366152938167407734262753142915042669997228155696565774862665516332860830269166336470033665928036220229007066661142571339632088616845555545751286041949768917036691962285660487202307717665528958966976486621718640389460717069035637037631087061010578088363654593980299714765596061878898177230958441538593350571729905723181073833828666991916982972086759833780748933571606673319898190571509484017610550402058463196645949156274967960222533734123208288377327517551282541065582987234087889226413335026272406464544724668690991187077814782955573252560434759803219416703045738268752858167177809585048760529917630201701130618618851828715326636597143074093028629355527131601804621288233299091774715490556074527016715554993337180639399760467845405993050521519175700366438671169697126574266889759505319933231439651678361807671527775323162880307812425749980428112213904342769046919866912747652939383232036199665301601206865498195525713341605711248820089779360258005003251264163790296416554575500099019857068764137276218444535920747995029033645676554332831646437247622307834297811237073036283620393446754598798441056706305730450480808640141042597339290067417464540830975166391154788956538551365436451445627222140271536880025037396221996575375734154027243272464786573946282009390563455502790197104137511959433639159658943914178292727511197945300756565081705258301948267909844913903911316678119016036304983090455637608250739614725157822449127078316922376548993883125377659496250901755482353881718489897741221666159406202859800873130954931268022672751507857037243311625775454042224618047657109043942162148031634301166745766878198343092535622457162898522664583619876224058019897486637666321805173067033627085601587047524442452308309729495729135628598004454785463606451713579728976012726678362399936565566956087147892902985450792985539048055896117527635135798222995319633263890755697762960471985914523761628078009687574430380524556915295802738283822749807474734980176856947543245979699929515320127862424700219285247315528666236307687705190431770144770332066866847442938602715594824737100590110472120642854667448395557165216484457723261948958023181899649046342616157194394443179179010990197980814733707944551317475998803103975507199848874137445708079458697667735742854292920061611308652983432761810702273652524202199557774493230149877159654156221108652032885812924385199450964669738474201909636173618886455886113903456776581325230046339676968424935978881540867527699312326787082117547065466613739966387444933384787596200607201843094686774370597380449593159325972275254339756097426034365306768158026425721130047935123330781849623830626310715357776233982664904761866005291267362475100123263830268625532116032150332063029419442819672956426308089950692114782117283118379755705107628740696854168804307500643030629922526589451229903161592556189761517823361226797498308369368728783550536316661379452893705323885119487909094675177104037956065866456246309146383438851962222725546427626906945907254242885572398939638530681430170843942418775659376777903882393212078615209065616633217356250033047203810035849570084352691193488895951978480747521751249722035406463637405315400551865691254449276187196167081024695094142062374065287409105857649525234384028755588150625837721175139340826730079477490205445552715463135081767800043672809523097862094605070816846961524352481769788688799229585819283139813800706396983713461075446422716368374526080422190478571923865646660301095862947792657569164083963493563287662280112009840423772776274769397828960207803730333499271228175828952497218967379375261090014587313549770434110544739894569477837299135561957514248930464646074070516006746740205231498858054112257495201093060493264814792521371128155308881603770508639159375986779922497294835578568877347044304342581050844392128307970175029382840138383796065172705657093643583460547187392382753725997170652801974207699961288631171460218621446912176878918067836721076593677253370386292462120532461784659483531357192232166399602559323360698776314560523697351909607128567775335832980919877571677964631047607975768634012350762095112782696601023044317020055535199045553328145451570288183251668897800308898639112822692735751343587185701726659062654950143444308143920192948731935889748866672438602492819394441256668417706433264883564818738585721192744294710056565998389234599817246039888367645247377979202951155787952648268441025548730694807820417978849516365389600516768884387122465570896114372395148007397913940225511169831580064833123138814042205014796219062867877517344979793265743324296148274706197982559056410187111672762076175812312870456591097139482544432909116823271400463314465146457568256527871601211386581673827187602643997517899505363853023243828398684201379307249711177845495475835147219536051942051367464419006949108186605345553541069305585187038072724263186758739682637550169058633392072852324656067508473149453948714428545836133937545636390416972678424634939017272684093806943745773160400121782758800397272209725584203300967096781834550244317461441305981086798992964571996911841853290570678522976826538264390467972816343729347302730851186198542963847080057477347711131463217272104713354256950244305925544665946967392196900839312106983862473604934420547586319914115007782723641075443493990681352910716369558873719942312746764138916730364634489787429330909255947012908369231106471038827373431050464144264487737983265975293285432491744652594361053685131495935482115419470526856117306080505110678410808876142995102300397690100323866827184541392364128073088471059200800944128710273417373808030106324410747246564908805476874031501161763581429190126788625923032141245744238036062660260241245268672644804147181490790376533445514916228433398264169946990089279357040077582075702494038542600818281446554855029177852446878306696512344883614587798873518356832658443883673860490988150203317554721078194391526211030930941665139369654756309525539155886254653962071789573741866130345178725492926811134820570381303815207745041569675777778261046504512483797824959271020455190093779273861117611848342152671844245431651953215856176931163756054330496098489173424586552722855893574306144516760125849872638102032572600933111672256549819168899702213893060219648437829434422337424448754906054755649848128108543397276775927935581743637409896555755643758783359702407861722185526396154638149601709566897117090871809799983416981171729033895744628873913238723040710196746434853991787368033981480287578241070364993238077554360106532654536327721464008246023994540954441143678524260071233069709276176816137680204183906922209321191546471366833313017254572469169534248542481948787320072830510715490714034237266463974265697775905808497778952980907092613783065914305165170607323188116944408423111458247674285614553627846081636544268412599259307809245921951911186368588547725073748832064474423632992433275854844124810367484535839326952887313522607045813590845031525029778351167868288405795069476143286626331971548001233351269470368122933069865180898033450131004676902217771413307220333713867545968082095379382440713585948854822682193689849785573133914437107746424330746429697932116465488330554764522932447567986970515856923431199293417811842328820040200496979237796324518458141237939797853233469811566469249357336085731485978599490943194705998455903245260912059065759793485706096315400594596131920150015809531306871352378905217030148980092439663074444052913460642538339695429911557662457074743828063772655818161472545887883566997000722936782951095187585424627495696657493972599927000940266631069694827275676174371284845559590974245220544056875559708176724126000465403852901819121778963478309539087608429233484637272359555478821554676309099262531499495015024971274131130739227802989624979172461859188954631129579887360498940694135448169465712595808316015257968882073268265157418868250785159504047021542616235380987485094612780418560417854736490627531109219777213503426437999582302107898456774262088045103425102419695800720871505187811829827475898369734090831526039503504116333624947211369350013406401038565400628144876000195530000504079520172194407907916779120317587517377968900522298143831980126108931227816140941134761593659256292567364674289981025765510440387841820312730523791633563993091414454655209383960674656460486383680942678391140997240660248914028733373531170253455617098202016763355220924383733675357810992684381512804178696120539421130474937637690175658402197935176331613895861854103262802436774688240432168393761446467471358296008767016554301951886444245995140917243320919194889186736938263837764590137758036707744679268887820270562826597231877584826725202453054269402310981383447104464487641491394482015419836651903404635775522518721184015599659953754391406793283328155805225357255907329869546410163703973620994511650784406367676069281430577796005442734622731504846341303988605406322480515389453063150794061213005106526068863963429373515220076256182314326941893065761915488752430367255010478362285691658113332890634411297230753755824909034982304161245794601179318184931273659394897680605206495196502967380444002070667401077421195036396626125828532537757069964910836146415901020752070644200117033389807438871399245038016967567791425340515912738425597226480353004134870432857298406582641842063587294538584965933964986021169542381975417413532891286835310682319318685646916659538058090658802491916510691770366768518649260844738438991767648964536875549251352974377794269214205788294994784875673611424643358161056316136953074400050657054029306411346511329111660944789580033822750789066978378605122535833505765186012980273020991982024257584521185734420875216377723960032605280884127734362081145577107897301116799961090919693609023556079295223642499747719808411195822807758162209413210301167173600248312673261726704366294256535950609012375371545357464138275441051095526262712681008339818389823132240584083767740847212506759564087870214035867129488779660296348663718594261204569072048285689787672663738690412694300136963401424767659134773240687506326360431336166467027781625705825169923622764011849988289389540571922510565811883158008674792162975754232880610346446851726206109321692439179490785866569277262017023648364478317417959183779239206240806443079750599990097183443322677421751804729657051555597773692970358411028636203962645347429457288838177275293529533598695788438946961189642942129839463089519657343549554066148130918811508430472673750258444277379086354969183526180637243012478043802263259519238165557697273011713817677673402422294760191124875497382248676236635141060062078419578340833687423771172471524218116369225859960281390048696680936098156073771568599132589331497564458250962105273597323513250001161813630741095508654485461984078002491624854345109416701350242896880619136256987558079182341961111061450740679279382831102514397085414790754453875913636683090866820126201351023448494406143590111087041839004424563620358895014415616349980517200084228288679687023817141771403776466363514403590792112832770669939551825205973116318755166758541619697281898645668327112080184985142901611846687981388465322877013585172307896694810079988527378630991152733408244817741184653622118093409895389334176737119246443919321713698757195373550724885821818577249648890901923548359003475850684513715063635715710139982928842551861278307734899030880216438394955883809020027487910371674913553862497368516300602521682287510896094554030536586863059164810869079296264357220796906844309429020176167880926495193079513281181212570675101818324948717048776553923537472099463107093601893071516237159954763699951348133236805826988730530856205393221437400860230777679981360310466484902572741608963417956207929499268449487704074434369912648843486953161742346844220140145113671454630606344183016685748412196050352158354508540160528375457296269050544599224526077250327576984917975486895832820450311236209164232790782715619721545319272945111540755317049943771654002287433176209840708084697669350703752029558084623734823623518969235665729343187437028264370637377044756093586151185930184044500632007063004070216725012948144266125094810511513724626936870370754260381634485709133525268988249240328180639289899708603277889378679563141003645067838687952149197420156182540631799036792573547512837690312539373923560289704308619118437499883455449287932275994549872382353627168207180677881637971283311706775582005914855739953641891904972072992101423970298185775756684112852398255657426820928836924933669042119436318137831259665548499684311221813301827938093358243824972746522184699320738597197770367664833061374535110774192167130441513207029027843164647248262906004442073619057443076895557736402483009078150297084511041723362971489987604319897702790346791767546091864732030470406614804767585158873836429684419045379209828140057365023381348064506518133521619147855314349329367926016466145578346472622982406020467798300554668236042060415741577895885485854447825552560783185874215689536434784320907973591070432372130035387685407930003480226368796648598600505127409204715507554836869463198399116444281504486054676674296286381917508193644723699688615727740005531014399853387930862224738799509377134443036457896764100195281465623083260022639885851305957940183893464946644080750666833960271648224006456782061997860710961715704752612094393478434405703360937928484317130870130499409915378553537418635137291626755872589920289317417593589689782215414518250144715182771101612252114923168977748915896737402346155796966677913012428383038284054584370349308062439900359496250517693171553761251742424637999142000867168762994552378785547452563451559856988033861517395542016062083276060187213601912159968848084160358127124461600193303753844272443497389092121465730752309709731542547024803198710977391904079316598567266962218704823442396888282793686484091047343899800185424439963153179344142790522840492566225874908723787782441217701579040557380755909544950212787560311466269370168412712935427377944271651862605596649858105909121247910743866193414456512107000454665195172030425695219548629902294520547593889094689449805066443025174605179856816671419597070991972833664090835977988471714844968229197153425657141696281146124167963387344096738689607937419624919317917567922847538465842856198335985991883126217619270807329466765899732292030922102079444589060470334593744471910205559985857322871671648324976388712981488393314977380116526371866346499319127116846079922589396414566411212571530425490658600781051721920149947387357869873084510530012538994278652003782815629616535226585802721181218681838242416783939877692434540969516356470132134400039898612785533789234103778931588006799613373447678535007622814286984447680651689859714118532916152536825106517066689044721483797318958327125797672015653068402161459647618063820178054482665041811191018498444062248749187114997546883797408644969668319054312306717248292822451911568180309557012997741542455901338283203330734294425389399539955594275333791905166644560341733332501133240453862689489537878047659809310735415827315632729031993135720018729845999343902322849277715553472706324288770933079179403683775444966580125794897784371827025217558409964001605588688366051936531198667315696315002935252939348163804481034627945234077325776421494679634561256641357345521971707873032580564616339050882060361668705625313719231655842476259544089832934853169264261869630197723235126518235738640926060514206610251208881576984171140848014093996228560204576323460500377660227259974473155239242008136469148503313009178842031558103900661631338829225766109504256880887094444833994286029326141218804660239263213314979438676898994190101342625396604752815831072659202444206349255049402752046013281029750278491969128392992297541413779707184144767497094040029362861092868175357090258196453919646428249594592402642087064830647858883897029152461016631105242432023542679258153723037916207393550864605185181226912267024564486303612366567462256401019758676820615469557730998246266110806152485343492428660909790856300425583329933860124720049894879899348646829875565477788455045729659110206199510273804235740847219702018598946841893714061117215663195750154476142765917655160051339967179956291243645416200485080558007048811199894513209168275558406234882004677363353894631804928889285890134493135700587670351440063473252363846949460331332393475854267743330313883550399577992976176640855773072266705146887410059365384811632206704778144264566098749968062038362531466524443184579060866815166062794843368952359141753694520019968849827464226583856086623489266877164391962757053673792583403781859435670433174328908829659767490010466211190476909073669340164926555064806448859451920437352780557405987378206839537979967631880654288955725269845553908710905013129883595645024655988844454660062120037465577283073092561981911227968379407136443224438901468513671268430640344339630250282791873209559901179505940024586507368822354719764480436229402808062688381085048526038236878261909099888477240261083571118462142798864797975076453572729324750646156173439974402569558364861793468112173194448255165197336335580300955121661072683574239484244755499238483968256273906471626072508071817234943328315857768334286203827308020154841181458658247454046661198998127197203591391446488135726122510196107404379174938567003725649362871709709460084809577329694154048416651854997809737864270435387309268080324492850038540867642900879552449539627590710689777902240527098769740205818174564382678988514749189020795100868544692561567833389557598496349585297438386887014001241633491905760231090490059951428430965722404478365629068409526951539035398010617538807582042673290710082012200896723017523006023424651688632047566692221572864947764987670992232589176569937149681599637468796615265799181392179058270323892150004115442919790236194202854173684317419213132580900282743071116714471698706356132016055474894911480587450833303559002739335468914274378321797176291582579207416770902461418228521832241519204010409602180382224189126333712126700337626103021489178224805939828817015826414814549200278695300347459368769795014958168323563482573856860686531171969369949472420718626715116298610806182227007720660530841339939428862099969532296985037058336612350334641535328555586481608576896507057966882134117453135360659341798369533645033934658623242194133787469995856888725531780919216909707389816573823746111332068688350798609180351775891551162729440236805314077910761712311755117401861933363123260596101420597740020972857256353469138102261799066095571419687786589341104974448731792031485632747671137196549779215362585112848151306936370333639423418776547579770200753754742399749083518539274154185077045885348315293416985108743455742864585704800682147589118335666572109269292733680076184775004949799140038730440348903208015945286842972255718067519204773175266087493936770574522025742040996168943366615449812396025514526303127908733069219494646125086125187144723455783372757606777366362369814892579482354275239198317428379427858804436568102708701343590921283677132058421249406126348841932291843427184708695316327721325745898934397413033319041161833737236676403463887302918881022315771141551812442163299732524018987009030470245637237411474900994259323375835128417031216822961606517500557492071214518102017434487390650591808388723374676666640097894281924673964469654217910533102073926345513328359493913363272381800839133971392144753060964661923996689354377242896415153454965278629611848168930749575208869265461873467665481137132313271525795543749908608220979997905731350999473987130639837019463875880472796966107305377921128403759963262838265573585195444114506065258336483690159783638528865046599165506948568234444269634768335143675745916524435163041068056664182638185085076526226293304791895619875879885496806605665418884596461062668852446517987325229643222564525639960507604829461505361152219827034433891409428566679536705874042732296705511986010993890397968923990774342067145011746908184606526166674335428744880487654227601455983999999943558786583517116950011343593024537169111380439230040187556993061317147142944120209642730675706365058250489890865316541242551641381390456799993560214179922965495045592786406439977027933337975062383272021251127952113046349159259218679770978935573009255508222400517505608615723905011722073482547748796933894010582844714721137389693991787389359419813518067674075436910666933942791830975756603213685872985359467813065865723337655989424865232666258734211041911193040218848911840660941414888434436751892819426856922494125686200678050808971842102363229102480016435483546582824446238181113221286005952119957213274300350461033718011177518150750532293978188981062673217103215467512498496813555099612940593664428775557626288847286476654396454263826402050294503691387176851834920239251172619093222122674466776700870434978058456979613071214055666249274500789604423979966173942627743120456540573909581962984777754477258862712643328221250002860498178182598452617278048400546896717143723054072305267927297565425018557179664501694977001227113245929330754184868148460455223030757973995442757553440886912284565140613680352240495996971890078133181679922611294821088364324563175595295093199251567370626829746666170515987102912748036483133433346791856907701030841907605741290988080102535881463097288742912585738493591894029469891806780730231520242542593950470697781719980320693558887686351476761862940915985224562555392261950609492013521048770947823186377509106774554246512558448623873553200951350632414547848792257184618406905996619550484145548142074207963945323015856625010197547235277073484619396259585603825181904600308955164362124894245260458321873312149084005945751256110105443661522112499102782644659027756946195821612985325073337511977641537271096399407725356125801894406915575704870652348656538095636454047589052180318312585324959277422300016549021666822112100627399827783749332851103199051098274072767508080290685747801052716064505357481030693521365478718720999539497290470656417249363082523834465912486820872740109031166196977580074666394096362482260424964505822868495059055846785522840588518864065939071304922973155847178589133807587458184762976074961306695377164628397033935823220496238723379477278717578343786049929893661255164832915865012347466603683285265469915470718852588208715135173753031133225958969361630900375137836642549858332948389659639000790576731270642117872577146500586189720042518173741107802593453358195281870873188929990474930410207008715592502500612517556612008561093696760552226801255733269571413035711530933428150012496138561744922706067137444222304825439885557898376957550363896049696352639619629444452975218864953018264503547126189750545123237531661681033053406150322482049208300129001669720621261717997180055230198244202600990800184266020253819482160647207077275701984715781615992684403143953562609849512727182858373815264946833539013373097422464774411386510013624599136385248402167725970668289446184099679994056584941099523008585291373221395579914497529798971733134784519384642978745078531288129278692868648546113008780262121382614629111061526502443600874096870156814827428169887203863027107433806009406021027252292170844285287171729428616316342470574605846449171205124746962209289480204037419119500148605357444031743214340596909485221041783102277289398411047136652499457092727635794726679855329638322153665470735977271887197134779436530007937283516567561408283132240453611936572107262776111179600916185592593470593871111018135391008060216842097440452228221297183567442476115328624776242088602715805046539737145230197590837436260196894175423755054567022977271033982292872290237920382606149933161534072838736398824646050908214156309751713659013539841125577312892517023801034011310207728506675391029712079712475985890864071452354873296044165209868698774612022848343443280954605814816419894796994054989172899748664385422201570110818939525789623801875277124466375765182186711929868478962690346670455642338141654809026967727464683784016297608923145130487010603988343204420102519768172009572689094412725705611309830790455716873676041742321419338047480682116599300571076406443130164869112913463340552180792678265484688232663432396599678363698724701602067873381080469884769022124604903153484185039146527556059166995820169045018215742110601041927527753250849807179122484942584491704945691903738305485259688377276288045114690798459120592755831738330434379246828440189362460041163355053875213215000868523482308877304819070541127344114196213508478436816010119124319441897860203180584767579066419784895313097998872605892617084885016247643779841783822463112955320580793754506773624189623337803222233954294310172424430264837236188099232219204786287392294580971986467077733111859445191921156803062100745860389613279789633083052981235891378697504922741302745165435624348081996080510159661500654135798571528619505705870732725503821000479475982805745508479504105621238397945456707960624209533924216473909045408817905077398939623174888178059931217174427912260826921459915799623696776680428863188212920058235584445597685768631241804962365860457864267901100534923327111331596534341530178745851220277621783530184625395208942742133834903365742273513352637711476524830715139373893401591161956079686059518723221006123430330657742379197665298292010588438429522288909217325395761358801010774888104059066772139371905671165356679309134474927496767576513731541884859550106504473507392217475335780554644784256290863987671891936483467535911138342090280959711924818961767998559895339026816998928892252740391131999666751757462572771078316949905871823452604221918695488071787637110060018723950584375037188439910953852730666766642715272525733690095867504409238880601121561539734428689050199881275758555940493334153044658483110350585617981882239911536530630876812945649213600558533110139309152779277950093894386739560392380314130952706054708503709729853084283969005164683745007338623887299410910706596178437883074420392347534780410850211095393340032888179286640666328377889489145838186874136818003550718797123095203488830208333632092791600033076532174726659401998334815251743372299259068626163083449169541429454116138576740945078400349711898096855886487540320439819644626730838532113580414045680875497003327899254259263580092047253771244604550030615116284764177263893799313163526891427847210994289469274090257352074193168064913677219171397345724700330121289118088405922343952214424901907584595094959383642268415615461274098818980473739348996512828619602486617267329068650404710925845194423593769483579160129046206032496921008243518909616700016147432754336207648350781448655048816065303290342963401327042936256681938443654251644986492592299819689580591390356575756844036931066011593134563201440958384692819798134402932517349241629418364653659786171719485754461472363843506906840239672917695573834739345840860967239024767007644169424180070922059868344156129969745084857281901748833055755729754957513778694975017143034590658172413670238439431526939989522765950276748005085440040169070755578876900127979225371433209109290639948501406218200058879811233771901740030183932191106479627362394504187720778752624147516863551910912395788134656540946869352732750286232177262349710958826839179062895880681453957037662105493550685788195051592294141564852359806782654479531935115013720828659236852878449108432632003507097446219930865855363774246811906356231909646171376131034492744863563115998803137040020924746254385863354264111351642355329874755103588813820057934575351372804151515132924039829793734952753409183132952146234388086271393158811854580070171051683862594495576272917254600558449003618936121530240076911452167513504841280272708254238684388697086432038309967790998113796620875892658415214651581026148330117364821569528923248631881271931943863400344160670001151140907458630088850566159365565882387682382391964377923456463989132477202141327984327546595308060356538639654295149768237432446811488121607304630287084874958016328477541028799912145789825644233318871285966990989316137420348011762204988147537593990919365628164676335935790865220900235713188615817154159294890237114031046944850205512405172556439384516954704591108048980312394698003651867676308049123659365709303795387904297432284650447024472934253474148203861039829366259623404305568438228975025979114568183149635322123825891078858412294814900763381515500040016251592884401647622265293378564699784322929029192781642091636540702848090844219448490531904009839608745265978038723525603027647146921662445635611492042328548179386949415296770823345136038430615094606902045577982195719548798740437875643328198258837932015826056484629113396047519400889012943140791820188627455284776397502600544637661958830130007067878371689601299384997035698046471992160891058372911267827380492789453111035520677907566712173729977109404977270212693045836581686648120275883302859559493745345409845885643021305555352450320989658494579062000967490855900662350187456965911880357429064007782599819038166602042799275884175802314078134732250687826498818998788375197310683274814729783405210922024122014999821871775903035931660249967648454537238949238399119967785383362754289707238696968237427386069176151067132670428202721291301750803336371829443896481199241002736442841179981181205086210040959447222381319792063549098422071428997530372081531403660426754210590099145382604383477803618691710908491336537479063692768417493994668058280562073083178338989319664269538950622247632748780044924823812247210117560276275620400532539835593928364140085059889708152629633054551475398304807108172998151141054597758298819024621616264110525481809939245748586611848641481271525385062255738514522215735846737510844920664331518924421781899007952043515636185695404205607525662856535963926269563328635729124197388191216712421410330931232790692724007922651044857800945209442618975472402629648780904063027446818553302890524945099481340422027483642382141115278986787955062939442983792599425821365141224661680237762800089573956924061364166323656887865409734958370200670330536694871856482775364047229589809302141333002443063173839149249357999445017362095370197608780513704535214711405493442968957932062961188947562658789382989154685254251344212710805646161300038772859713851934102404305383139484513681585064304863145765637813948412398897392300952350467938268582975146066873408909981653483942049622990639158068706650159008085695528983923300628294835618987169895438947822283002227930762721938424110648195751196975632979829297360172748793278296476239053416753405357806636025565741652508918546722474389407012154529659800168679675473321571039061397055873575821025023572106254722368569206398417425437767032697146390125764076542715828191040904175957487847859154734155469548157383005271716386956710692932559010104145638731543958389436418049133223275460205529226415774320398322598076234250211570180973827479080515848451818383027743058461349416870607543284222254089936249531155291906613832092378893586070757684171775744967095945762794988371149604740739894404585488291354602209121976272459334777634033166611045136687772898386205634850184310354256041168843982399592517317416596785653988495312638756445662292555613309737800622133095006527816200566954160256247933276083280901586544914649714973903842863556174660239678385776774959474857999466254812637336767556075896111691878155770378934984747315149983852623494073172687386015746924813202211750607784830110569540560443070036149746583852586678348272437755379810399282060545655915055216294807698330297179707441971859587100761570508645875422648990420035205908155034480374708242716597898575294602602291319138171359617864876527292493777841111836052287648667146159671216874068933404695961538323656369918231391183966943518269477299239748735944710140520545966499914986339969707020155172547616478136842867885305375061064729154618584954235652332267932235176471349625299161921472378250133804061416408915341839387153589173290795784436562955964682675485567110986763752319646761483177516376529005794085667986121544476190583055436228957888155667601137277770204072855009668733055013525312894264736770473296580861249813529184955633012036306638376802899705996269723141015531444302996834221780866061093592024565492638308619437407180585027802757038840139476301627732843122147887653145007697749827881201547465799565635946509077021251235156003318262613125919182302413240484928023029270093002690527933653217975823283887917075413817114765368534934331368262045774913949242772371153012491647035940835048464774957512533635873290228279709235627336992218380165104286732228403156267546956542188241296789560066337659090931234221888289569914487597334070299684286960607210322445576222279460367294531319434105687107879414702284635666553372754549645627227811808477900146799379466265361800020143379137990387176013495209936176012409619049561195218875147196161107856766555851966898866386655512537372276280492304174161903410221179291197367656256876314055711503291570091075330632703953923020394577423276934186964293857870481575310875326878892366105929347032174618400924162197938117539137058439476608101625885135341714208181728015745617480891581541247026272454611968122007286724694063080591216407682903121499371713870294487347978917054905252615173389564927060743336747231799512160467425219298419513436171002005773166361959311195123529811276900912022585318207600962238302612308014423964389368404839532571460599171740817734752722070321884980608369239304828120144915874098039104452731250501924152253922318972442001760477706804519044714577868142631129110992932718500365046504190758589574684292770310099149021325564863541297991622697221663556074127636305762534113118817692100324350640199767035187722755384607107325755927670362309875682061026987936938470452700807944139206226839654987763732731318650025397123468782735396028881387097010554124473172291907851864683432220939969124859496075962385712378140416222546779979987689097736528816708737167338702978693579910937958157796853422163480348618020851134770995859509561310901618830161116527684143640430563876163586473442514197410692464757122227206056570814196906968616328117425675830846145147038474511649172818521033601942109542693255676535738249636001226500411581161881839868696008906822356571073573207014723316493168362290289915005140495471725324292633902369099352611039846866367713314187568431149409027571674235475186096093588441035553634097821630997475304196845242168656564743776556365943057380033040738043461600439128209629312298447895373911300330246385295091699512993308249091347841944016901110732904183113150496848216748260483096104772979889822409408943956323463251657785927791094809001395937482787682075524042598802818317673927909761829249460188358725195380406013564241282335937685465592506717535268828115244189109762542107911555846808448783638159418603250528101665773336432316347506659841589633557096282351284708496880940662675370243353094066602475615887553044950163477464124580208206747572123464463279625108650989447902599910374865823145875270990403434285639580266134197135459012608570551798769381521035694731689033323201158726347156753816288505287196282545234243381026523928263578941371259491365966109098919183104243893317248353401076975222635045313564578245118018569609900534642950130946523024586036170156032605867060353638735864067824251952548534565665731954948807982466825789236662269142363242430437990418772243946147982969641605895184825675953924064566778624924283405729343668178289269591037035495949120270963147111350049540997106478054544020134077677666723343501575433887185893633116674174979565158782813034811266991205112286262411826139729298049953189791173340271755171953829182546478149807431006812411564790126009914713600071518606388277987715907832327695430030829979603439716976198025185192839034698009261715572580017046705603553671970659555832492283112969914427386738033518019085414304881538014460932089375009090447000543505488822645999325208532152045668484792740966559354549569908283119545217573805270844329640316318990707939140837383793644690945357383097475895081193505493599120663434543098671150703792047669299620783067647207426067731634625065606146409896888566726052146727227246432505093154533747839908964425880680540452708270918243158132176433569138743273397556407228849808974076065817184567295821985069532590161541337460799658381524294580707112382609729123888742818744851816997022023790441385087102086029663048105701302670200360259869319425088719536434908019651171693770204382112976730415316023870214747775767557342978764539440418111782259882930059289005790812374567608025965062464564346608019389799847038455158146788799575321751693119812179359894975792304669502270229142873152002731303713623512811123819998559928894269059181919951228147115770459983154284502280687001414244526601088049783978423759548901014493106109377032071947118316174368818521636791445798752036197017189577507685236778284837109721227966481166292309458927825594801498110037020443548051321810451544523101047627114229442729982363213501687789843228029816430896613797341308860662870967365624562757187075840868139018202822542917936950306059261208549253316821943654591304483364534384374463363322149008549507283467865071650729280412281157284143262929741790578579728609301982843054117493142329782198510445516322565817793285760755914568994602057012734674285310042470555679439745096755608357929847257269684463962226704651383561880535788252189491349305021094578765805666308498748537565169471000891671468834592982866938738546440228564293350631760762493839906425690342045715636208352026221472543321908932888559974072937217599213319005862394111344726663256314903037905485659787782635414807466240862465393971735280096933457643447171729687747848587071387810515226838936081842005662349141785437809547134280928638086706405104314772654524640251934497988106349420255359694981613482499136556090431824123711745806520959829942605625190713060175836305900463316801352267230524889839084098479007609865364510892673448474885622400629057535652005898968320239538059524590839972705981290045187257444226055914459197072817372690792406044142337420440094407530673979369750456919879016569032861597627565638194166686968341297145065542265218847415969999900346263992022824064603721675472399271494509013874960988859707187073361114135146820154535523198605089503331364569891194268264975247860933907099424507155445723789685236227117215501966872538424924694159063927886362324511203234860415143409788563603483945055368838735804977863930808882989640629356335611408820271247134371287694233154041099986535954172127364394293760562899578250654501110674717434716936971567774037901072774174548050414144479611264124872969274691628718151784077464565034650279850637635396133633882083366418923867364689706648402907673502018022038192526233225920788279464419091327026729298821020241818534162739803826002448542705174812924187439494732029822028203276340805344090060831408714715143157555697245413540960830819108465770730260056969148602146355991969781558791234768052611113058476827794581819300615955689416732560162337629735327581769810832918003161625252744423956786363638195236950103178003556978821001452120472886136354305305820649720629708958233169698563839666769268273140830768490432390915332262035425537093894624505772744403146295130072998565217851145812103186669954621345927571003910192426542294093066003307499518457639823728430720047923712009840495276857595969163634955351469765770239822597684573094114288227483529857144866031878047884167516391552575183508464837908845782996036829579707505777664169979635788795773344831343808871643960193576222528815830025752855474999017967337562992201704411619696132918418705823567021565857795812307402389060648962572888359917885342336523465126638360012942049176508856619116328258744792425898855338790189253104499673415569778719764969330915245579339911700239759770341669042706718766231942895285296623330850653637313177918321119723903257225856536988808963575665358479420277499519407308720620681352003218675237111833428826713256887659165228141180992167074522074883868210669184776588000680508609541195212813784833806654874783883627725866613065003911971847734682543241919011228386618150320296207681812587309803182132990609042900759148919779374943043651550774991211588407998896943860046468968745288584150886047194730457824214813211659056147310464511773404076471946519311859928263535739099640965805380773868933668829125855212335790357625510226434676874413765790336362227998962576950305870234862740264071225674509502511672217727122848059119319547930567442409324404099997046783636385140182445256812013812948495612674588885397537287975453065287081053993353727196689381731094979991951798306420406517477046503966492904914177011463542572516569897208344595095633182130467212392724543901726569807806589592602120609271183890631718604131641739609264162729099370918962613058195001940135687169642821165388134123289832646306355189835079391310964129670291285043865669150620383512322783753518972499746984543245220451836939381083834447592155766336759515038165196878561569107148451478059000696745885237798442584919922009672537910383688306197562005921006351076240280331683235307650549738700793209840644664885881117548782218041295513096488886279128961143755849661437635622175002658905155834245981140559878968418671352508117542337140263804259754012233853274202161069704154474243410580400625643689169693725338678288371142055262114470716043453919541722289777169555518462537908896396935743470067201626012097024427717305760689275528186016530536157719685912513079649140478480933510256159306889039821007401452235337588370517217583602493440333147614572310525421399370249802737562279535318384311193070942710230561952063498903917675680162939777701144128808389553899748953368542283936375441496068444593120233437011159665261853859494220643508083767959102303833492871325881246835207738206997279321075262516766989987903863411729481340787275093230029186430504169295745512509781134568467131568800067596685132849041001554689792886276440726374615674448164291292667417589792618861920791561118640289981192363106570906566608426358289903311990137010921571951046981134423309599111988412522858584889749061157380331868293513251784363298669639848224093601192002092272669457028861369689915676118642771062955955169277287274148208117102947763953673988863573995772410737593973667097922377361063440775519371231916238427721476945757369254604118787441922177625372723074412241509611628763671605993981953249663013942440734444857189695272923911462234312768226395064514185813995844763542973404051762164210260191595085953831935267646167019906169224163182436683221584849162208798191669089369716125213001799435370566944223407262626424564741765511913023693793091760934612426993508294187990659364121166891003751872419145037925367091928516969551838278759750657078334002427003117328107405912588253394914538981430764978945753307489159962387664062198086882124467537326933272209442257992080688893310746006388361376204282388354825323329452939653368715362375459124790154565300872459564288245515770628353387260296841465064293717676075940057878418291570462077285385784843560531141886553689139897944042219749030439073786810249774257613877398610101619876344407944419377563473405500531170090675048019175533918890667288918108469063906748264209527585179051497615044057044951361382795830941239161779157370770625107600556327644088136519413772728337667983945962768951624417608018562551024752352724680169646457858337364752057349100570701707899978854681383939239909399232734575407030776525981153058831382011633139264595226402591504838222171169678729540308205798717036138311366760582736082355519881386043301164493336456061659981056317799803685738342192658529842436081299612786556784578232531044765406882974329038836157170251107329546767774463650853545668310128159384198990921750254800002784542098168625018106362956298639629016832202812512852693484556286825981545593335056608622203612526846896899150144982545633611287823824704715397969422939538114745010418248874175587884769304024054819590810038012353143143099054488753225098126436505370889756848726726651630416882727428801618845237392244093579439251401610805318060296457088852834635080142876409772676973279344925625598079661984163548355713253861455911227498454178892891571239930631535226678979341424066525736031940466258365418822744253223008882544433502573995316026483409909772112779092223002540266765459208717224107421758298700639491780033427058720200866094291460335761176084218071018106806915232206461466101791213701934515730385953738106480260621761342516430431019776639734033529474126407177814492542163305077965245054772991694103867886856364912158340494047860945839148252288417499153353559931831074460310595384734712634780760183249683850174140149514424403465829007919489370663973207979811240983184415564203841591364802185482456328388643904674465588911234700473692295041744524501491703334733402361732090261086519195030423131484674615441557570979973480156780441208806005821826869761623597366805610359096985322105227704757756340663223506347901306082228785985410769188888764534367385370375619201845339921328278418740130030411302307360284359044334762244406570370570651163614602486995403089836185388435638576616789508993523660669448369005509991796251480133900967038122928698746477622804384517811354737761088182324891423215786468401014749915869434953518945759103062793989425523887827854338769063239044737797250225689728414386252245723737422212254902733984180936604321373638014495103006598650938780311777611494164745552074746450346237701494301846987337564685659060611292333974551534200896105909849058958553389479440942713820780734806566083800998096825515734374968254594168177976461808348551426458287265804679500870809844335909419363039659958071415047573784587080176404794891510446491784343783292118735560000914034505964824018969453405076269157842344411549951705412994357631145628903200123204864060422563937530618149774455630613181480337184307799345600820396621159442652482477723121707485060671533427897451806995789028966317346742837578004501218253672607800688489979628592872582952332630990600228059474053912633817745331614384626694694730528156702610794259318179233155839348622680612822207683113628445911135987369142185218358853300422119336541015694001409852049986937291719590035302356605553836422067700188491470336838937014797217720583188773012787085144841680600772909220757602670821528371924983388541276679409887799579387496020555853496953681391759074541216462979952174553317735070364147406057884047765412779401087027657558569636254930604915016637425068981479375536534742866589589122268772858718256255169319534736074591403290409707702260624566882619813404870480050792073742913149859050092270581935885809225698205356853195019811520255105945312700402480377015884477773102994778139259734668138396160098865128100869291759084007055088768258123474786005365994737538771833266990519628720194029039231229442318811267496233995528883196699922879208002269758694817888812544003086647731968020369506578666701542995050969515554868018139986066990563893037492345349187969438297369446084047315877810873405812952102838168562221878070982132911668597157879846458543848627360662144481541369750549159422606897821421433003859740944796927726903375571545710371234062129411622616998678533465450581076701522684818731116029439664872180907860332473091637584255714057548227050666884711140355600624026410233485048878649717449106031256359759380594508460020930830282229481807824265226183632313410010215590894623256919109683924355901514569639939807626523805706171808714831680128975864167346180908077734967491615870509560866095207688342733539631603952983854797352792705443279164637706692361803407636730074787306694360113034726458024825985912776236990842704041299901049636071833314658749236838418473393392498322772013541956784553739873515637899054621721447492548377029304882600663192056469469541415795140082705104718444625128288336174619552040329283475607589727433701981551283951030830058190256518317846218727810718659053701276684771771317529512873898682685639545408793116383524975084625091449128660862699180653893026308502865983665939116500565179663230645361290686425271150599435059764761895831579109356110663430494603087809334722655571937786694993675241085840017573403281096398805189739712821043654844674824524750137940795575632236214415877105281842397030841545108887803237893086359128073711946301542425209556495648054082737158387350611448895792104813835663971666553824372191962777247795241986262712513923285558701374621884926026481791583976015743491588394936592364822081108223355085573991268015756695238859977562682297192413859033901977473721730578527615063744046068452495503658866536777417570245170388439424145267299705705994021765370149965611608528203592101351873264732455862045394985120613837365528344948875649837246088150245579984611785230593430153448729582638254891592362090356946341397715849026146072132803354508823234643971282482497233584895810779903598946478412554459427516747654071283281980532681669828793690789349017595621174539019065014865682455962662914347607674890293265083243587535316269003291815021784560886484851552539385304556011243062421273007133925243268912243447562678223950522109815767702833972273534406456773537350551062584529277097290471101906614474549937527428103319727606164209534867103215985885739914748494736161389446235670374990600752511080066489358594579684524735825147367514715429882465777961018367991849908097069023399823944458991446464132964066175054937439583419579095901550054412124928495789002415000583287460958042305967312999184681913214574264993693533910062294045912909077777945755262900456420347251099131868917979177424119150713675225055120364574606291121461704709598526382485535389785980053775350044822897358501211105751238616433322724532281976889199108040828064566351042375693898967058631203443702579436106309375926349293315409045473843005809136089089854569422640502446473331022187729029003532203596752014890558728170112087642843335794108518014184353816090256261221650842211760145087898468828073922344894909937471191802438352574494134083677832274633793069493346936487960233064811151263609558390607107741707110224585085122316260917621294218259523919429949021748162206424756575620875018457384960970627216380513424408273347647628670627309967126899907422032348601857358302433311133143092540325580573297736811022836402285453165758502005477323071433090551549507822008824213233054806622759371795229236161737475561107333410628994036570634097368721170162210196812781963033796059111270484412201121253522641546319492569311072589875549474681547228874066228210782665165013595626178953690356952677511942653124601421597141512405116003638138254441346968746887661677545878870683761312033769079380162184275067141055551074257491852053138198048409082077567964503458664794616862744309633997710861133567325993277160241744388302183453433591512567883466788018117067492912058542578285286887044374037761001742863981334939121155911225884629302829976523906666200361980875178983964687596143613765817776002124765363977065174804410277286826881305981027994993445024316438126902516951141802246096987588082945633250535436175281413942590774823852299006815818320823918829217854935832805805761702071065213852808253243318259144055029649422294035519406004345264202648618756360594814742291053034111936905286154928065180968287264038801774867378794464338009164037575201951410243823633547693949483118506907807011933069354737802052319049898847545598518704906770475246603629271734979950180402228867261893810526603610641996935577222877552475520710413406798848249954602509614542769104068133101559852902576053685867108344873386926356793755764278479052477348158550272030506898965552800719578819326281735391235099644059137172510032051853015503911934878365431808937064225245199101636377309465243865057919211019914879258629722559597729687514367691795092108605224017972632981505919344242819718422942572528554931164280345161424077164669721461617568211290663644964732841724933672153629501357327607860640971666290528180503486534367308205213808402603305328903544080103064967728102379374952342881907042409919356071402649600207197510906497826589725199343157191797708130318904892488786119978865026787240915823063619339731062330549690229195550272911656652031551891884865366850330378804612055014493811832584788435743814832259757957253373430318391706543169895506699015262155797606812440525067370515949921604242597731314361417437211883975342587474546129021076875853189509083461381381784124864042796090370491360435305196937229137650607517497790272107970809446386737101315947457125710451736198656789637964251853552879030472710096854405893505189627076381834135540822125424262784747381069344674987739251291831523729037639122141892502986187557889908766203012936740786920104676736242207151823847433556838905801764200399793233595084432882046306527086821906809685613624903045166183376899896348438170704450488013346949750386559093333636315109832831862581061382556255365180184473236238983470961625511721217020798595413205110576295972009877994900807288216877995500184740527004396045223804634426934563763523128192225368534348924421542672257533875552336535044613668239113997464875451761318121644861897420559775760295801456663135446624225176738783231836968008737502701512130621727265338095021408411230900330812980945029920723117271559502058969889695251882685059872225647631594244600232094589450236143616559775111023690233684526538431767906012351914625243590326776027421441770260718197480006173733753427044991520411104079762389075016662243390850431504421196877174738055454772278490115417529169972198032610811621937094659245461253279578940734866203640471519175906389971433850156854828920592702443048760973939077960271961668123253493190896130002775996338981359314979012322380273044397755473677005701067843699422242200413441855735045314292501985639487001277804803132462896193411766867236824616460703208025482210123910051661408016396813067281005593723374654590160727728795313861882906388717366281197432550346116865570363329619613718954271263656311359937397574490023570110107537790450196674594547608186602386626999502142339410336570003879374008099560429519689209739905534061039307778761377170299359178732171655004110183163576755643583562975309957899257162944128768488890443599542060224697699423014174379471855592313554980410698733621469844586541963126084811450144370185226130342202583466141196170044579766752311685489110948679000651160205027620726049074933480813659874478480396816491741629846640622900914012286986141958250708253418055936272178700843507294509191942266294001246250297054446371391853081286802429697523665395618441437039083092157421463500734847646486536408426837863394867898870920550319213967356843016946513405937779262420649822053378110458295423855042020533288358428116837815859172427248899845085788948594714530051194483080452947948858275084699796364917444553939399167071094977084471508002575481962433248261091187028341338793009044307176394266055294644751820850475600093468066973361683695753283257384830968809552413256570609711552844802751099676924956789258388936083890049679254577999065971188090877686431015730260239155920622343108436200183974428728835261418986925816533229337834031264767328078879253032926815952168953265997821969841519024305347356219462271069492375830481739514666838462812567289028634093171199679933199440177087281787551005547317526040441653560870915399975056701496283811638855024794742495586784678788300947323233929406360779600351203594687752154307710399579640465680289583738777245389648133124777422933889967283242359780207165797579319116365976289279023502594029904037070719799135417169267346008754226682476920592917622061320486221128783276433084358163003035548850538551592847918821317781309026303426145890811773734544632272606559567594923824241323376231377838745911781281503659150972322234733954761397303921267430954365565586716286002451681284791390232171979732250343968523041535775240861780807155271228951384945275475203132860145417704372553626434418957908312205885946897994812007533352056297058133542357131422159035689378638752227319040748250944728201523463943186986804831744000385368237762286327143665621847027152011858174684126572864565697683369126105904169302628981335086096768772097229468494398220700498774605246965832010817886425810236146200130306790782487653899277267981879346555805272267635345960053636713680437282899622490248115519552766591526790469507066991650524861355041403683770826379538866032834994879727151559740179715873089513204160189069246923376936943911844265966338261109036044921207172329731245478203911333475005298313540114343970363969874916594403938299489546392306812171780682825102125506863268433558353466488075230206786960941168695280349933802947121395246473938564808913868962736780095873725093334497784563599772150277441546699470462995849711498365766954932529471418486176277262019766030105084275787440443056305746040714360604224377799530429441043750067592705003875134101592799030720298089051382652146874784264278460173952278254895761154946174895840953180804387283651392576320245627377225833574144174751298429554915323584391168443236647292812238309782671531831282105532577600452024522558518872469791394874719746346908247967528249586165842081416629924758574438136972596719742396169527129844494252699707787401726608618315784206629865662104029721850578021034183314539727142025010045675699707229264877130050193028595373278701574159684074734583210452854216916985472211434574694671422489856520494273746009271880595135988670259766539417783611443891645562061556600144234707469688864616146232617272130969609976596130414602142142165436346442822119657408954345393999423245661393273035434160308724537839752306738840389991473964017899467135559653439091675891453403682541959997090561198372413498796729065516736905558193609175119876092809266629381597886929128811759687513951952798900962549921765116853666878317034342387192027243716695601578405617722859459936509470806757690278057015732350108509713225116853786545987075531684466615421860264605031220726142236058873395543453925282107920665154080569565745576664498076118276843742808338975449838363781189124203322655390383630178065263601979877498327952314163244924213682708298663269691179463364376382229577587814281109076223173169554179351645320873663589370891125055730014669687328437418441830503714959167597584667271047437746808096472597020811305986524995319474620082994379717188534793250268687247626064255470604210628675091122572960619676281872346881134972384584910082937468091622593469888507846523078009273807720233714827680715531779943542987262572616308073066613311757962695221050028198159595870699752903512943779119118722849989198436064900318631091391281178842498155378200589276244013637071871641375260562159329180611434209024023639253036199424226889454909948116180209738821446282677322097798169426851467384357056372826575899088666119116310054661915318776957854266971430136189128280137876928099500537661664836467879198947331526703214341632555405337592130942414828654376212749398488970546019537690034796578447431559484691158449658277060268975682253333589322399841775819543117544409764607720072811463518645689290600603065449119683439073885104572411299331471834461247115628606593797091184335415994429846864279407036699567242937823155186424358964448534597903905207119065430539388032563438078544865797522902610549850358654627536233066727718415430117264124136886052949705685417505953637616092592861598217387397102534494815722280960673622016370555753493862652835455084946121645710422736435961834902764654745465952086555001852480910827552400436003544140624268230891072619586487033462596089258509152175574682371502421256823787380586183157291271512965255946949440187331455134960180838151740184592823696973586794548643529214486129654546747448543078585946086042053342888955270389661234295700993130025735575129222096973889965761115801789584798211673651709325395957257368349509144131103377425219707577977696590755390237009759824903325859603638461637916561753174206727808930696693627341540729244259762067040332408752129493517110071504495163986190897666228086376878850936147798787081819213386758709405384430792267412305642401713741159208695127876265178036312278755687113475254468696685437912020981475935447443359541872720214166826521815853123778242101140819250512895766138088107133199575173207680349687080782521183624319514681569403709835753525284802230245316887475527480898408348284855235011632980951588367981185201712741733204415847776888633745916148763606181558732204220622968272450761824810613154421560459068972162857809289177547869655581807603083003068824691749577553360531010212630973024398969103235156138115923331414725807586012274594518778902706700567881327566102380324837912333135026682312996686778920760825663889007826476620219127817316247128029276673836191414046017514201182826961815934533102059579984289849243252893001995404520007230974248056371172448053492891191833112543338140676088593514848916834277870571407739381716218275565419236141723368249778257521951753813241439067693737354911188666067063837651769794093210883816402620656427420328199534087256335998689859372196910153844230631743389947437006501093204842002931407061626124417605046048447735786722453232465451825768316955997344834185774981195873556730777703765400092540301679830737279439045604655678310227857758790352730060251672804217599685436362059314101207825061539246631479176241066775799783160352598324940186968122784665971977620450627056256200735561903344334740565024060994398068941358319543458537079440786258482285860766599406981423239465029105089508639578540915930475297528582557051882445666020240789971757444119586601714841088421563177352045694651282204634892832364040877870398889331549075985942443845945391831580131220175083131330195177967185127326414216080804266359667410926216109870501543592314692625280732455132356012360387728150368522344759682597613678561097379790308949200524535230244350793988650627850697284657438255002627218404955976514393191785218629570078241569847170618954018930403794315849586963732921184897237396460308987592307741499725445867441690506530592041241629197522963801561191296782249304991733264816523466444030514701540786465287891013794800871646132828635579408315109156344774634770482695047891778540890986401058383244776859106284814246875554288806621173447767317542386332439515419838028734167093245915660756987174051942383325804563805257196038377638377088010565986808202958180748996732240781442190457521339525601655286864716493690122622579057546822492366617648169185841025429606680196602930120336618669627558771993580319578302324910250673796661339906411761219937350210363377767663499819859126831010099062117382527379540913415766379553009646151340969378552358912599445511580548037434668415851246473009655806568165839085508094513233117086293777198624187462209829549489575849715640264476095678793812397233290513466398644824268236853175578193643317807884160566769163437390044163963899382144088911608457876959280151973484669042739112469464715275429291185339299423920136856524903646816202243887189140671352892208640731196958282191806025240242345623025829115566980289009517233766395014015465028481779969268232166230648442793467499193937435232676471967232443061635845557554152199043248363731462549003660917759850937304013605286084376242602738846883872216180410283753748349052132212754327870060596417387894526461289502533030059674385814658963264062137708063565429031981169518464140898008363811416704026029255442584623685681987029952538226589624942095351891202291021821676432300138672622060822219333680749876502318857992174802156323639320965958497437270080352063637264385987019633262053293073528222986768371551486643244085526578197015266566175323101448152150376653506597897396276553915801831885682342688176739766653380065505251304559673772211690012819892808453087106843705842250629892973866434708445340737506831952482406970438215037294913660036938623795260847357854767170188541316025103445891967659343677497322685336891473748708727068915451744252568244441300498295726410812149909992427078267704833898104718915767809571546292366937470652843419773298214044564116815292491720145221409158501127572157876747449837794768949711860710932467001881552553626489872601468882866296261960415955436524211874856860400810408383248542717124080554581063866074744553362274336749288737867698056726551646375692378685920179288385139764814724229547739995031917182915626014004115898659155617972350922588921539610870453745869024351652555681578300458891821723732788560836649185178661535748520703904076642846166398803023558796319150549176923534186643137676967235780990173841640733963461523021254772943054915933993164457143345525446008791229898937700811679511736579481008585747276587325685872999148323109973298028539448042627086350132124443522780017922004447460225634048807749130412621500278192266810785499890263081044029399948844804994145295864997867926396642591443350187215176833684969227301809969745094770962379421368833260413793338115228174231693429339342785039724263850536115809726364936050139606359000251588223015548651822456140655655115480948826464641061793085138223282358599531827544970668228685372670809043565565668959310769791684993803661246188162291709717136445696179757651396245011031591435236101520735943500809735513501937208021527707505825717803692949551613887629783743526010900375377770006611746973080103769701526411580232870289052913198001919112751244978877076587306884736336246772356034724562764313347073798062152380922057740834486174786284183140842352909797582199700761371965119346776907968088990664752397204521776898728360711844191461417274778424529067236133217942131485363543976867511088035063866891815961577637153884581760456751964516852711566536901620765220706969903327060217626220735296399410755751840544599184234593628351683208911765050918105539114185682243823424277624324665444672912015091256439233464518770727172270048966077795424754593601673047199405884651769280235147442826780155811156383070531511815326630204181592129395409897611907669377742567416356134495362586644702746736998996972195758868988054865209777142428055427108541281167534535263082280282452938610714365012462313006202601088515198702057026516595549255942341761619544327108571234968132125178973600586222477425401450436237145003937612299570077196182502466552803707311620162070460598561820099861678503917465431728934974695341880851845938657312558658996722023036151713604088013935132639962075417870967326735377128739828364474095128824640879828553694449279234512643799494311585361804769891502300422261542442667304181001443710247294179237021745918653701723072734289450995339394065065424432126896494945808554373503324881627748753061716494944120623383301437040832737239684182184220690528605778975756254711345628978276944870077120160645961438899740767140465558767644873178683396046202482775389207624616999541653400156791204473668889377872892434775165939507873015779088249274503728220711039084127626696298855996103050028238519987699239068167406744165518293061686548917228191122360629789453648932157994095482849411947352206438417418195369631613418732363727620532973233459840386736530557610481749010672071912233096007511802275580286708109118371439687845922509623582000173632023489102808543892307886581306851507527307527523654460017606032675148453998824142206169762973343991552409808162605462959194281383290861511177774407036830272628183693380910712491029976439096960941789229904242182064689229666436852655568357195775615254597705818306894753440281630468914987531217277455984030408328513322544309862877887259916545811633303492199587456941066093973390912453452906397288400586201222190775603830304937103135726236967280049780532241910283217333046045685199777309770217292284941586498953579437048233405708530295311549808480849005548998594474770666219498653745358482610425718727244657794125897511875623156917382347797972677233056712321000454336931878430942764894673109081302323812141495491143826184198439478670205187573732106959928075760665561178026838313395164138225174326456380299108344092453053751742648236780563472139259361596775790512386815347222558464894329672714988759213724785398125844176145858195180510987484097170937036646823010546476562757567851337101022148132126856234874124953309957838574654619402761988611975109884632379849986810142832362483544093202227500928173537945243233672478047729855162674454995296468884640899879246865939954168344641953222481881716175610081186429544974648244470090153577681684579478779583802678228795570874700336402877323750087143300359266260365871687894173362424809415327093010700872406063976239108227085576502339105513027206202062844580547334213039962884210165089023626954932854320490857032037204837893182921543397650711431040051551739296728652375550605100204557167003270444208951129573469111642749811401407439542647734981491094895988431040132258687066364212948175545148611925305953145125456095415591633854890859813809682699446402838867367142375250301613521954543019983651249697501129043280363639580963979831498439959849305025061026207868440703322354174442339298456694783519520725639555092141952799496567908451878043131766099827466350916608147336550306152135888909842632686218758150384237599035818618269226780071505663204957458599292074006914408041329450982934631736033292839827924212243307713809638719254551510955870096560549221997200152939966030541241246403585249594842958776384154321835369647917390011759032879425670923110608935224263754679489643501971780408158462478008406181770604902393228830407889613699546906464151253631292392566378163321306337181138156976831875755616422135474422282892010362956132445537848717625292364612888506924615534323792249859626948458671819650878695347236497659029656330271124456699552837339013005398882251300017616572453420954052798014053656886382149897218725252520615615877315907783845257420592088479042221344824681872499701107667760850011608068783129760733565472487693569381950109534175214283718268751918874589927190765426015482518488464754967217998744797160929516078863742022962028630747748969351214354069153902093003133469452447847956806861085126323786131762676107191934341473755006115841135023712618731104015307968575986191856818078593972641792634568099614782678516854443377083182201006008131089309907712234924709471083068461072987664573663955273795098683073083720322850215651257034433599859480914231432242261511369361999015245118524354138854631016920784916053892627854261202488970532169434012204835930396469388299314762674655073900631363988169707989367069160678528881804046200346284393850265455973822425610609079113082248946345973284805327219711653739944640612505904633263059176744878987003890191720753541007965631199087835636018332711116959408747265073165016087024821105098966227368644587738529815717122582058512361709024603233558012601844321574268259327203525137717854690815173671723635249709075995820138118900271056113159142827160723458716796606536533622920288951395545556542399993297542959429292047724927974933267807926097575182921650267163024835610930239185640867981345322654144510784307474400923604351361937863974852229384601047045326578960182631735737424676679161081286572654715505528021927893128176863661439434243789947388275956279238685684883520921455537980392779967479564886680147233268402508623200844414355652213132903007789361831106552597509565415021321730770011163535851886671049699667310860052484871640588501852972974364782258734252804397835454176776746717394081096195487868584768885561815476206551406731147171057343571067017031210909972908778279591091931539379798383293347302674618315929052798422822080227821558652099175976252853118532466772615723126053706153404405598103593346291429392773712719853950021153254361365946386186177481814603270354061759262154521460703584154688200462037994815157707286803160012990822443374614407800718208890706661195363847992312948594484966575197717268082863278751850074819095008708428037628101197381896920969494430278032363025694027002791166488786878628991526499466103959229645157036186017032149894149118379368790458781998370994296844412913566957369242905003779700420350943422543508696771306726804123899617672648354556608820867753448356606451316000320160147599361764556151544836778083531320733400967234732070697913538456532823098550842153582227033546466872768328074889961534442391576449824182265105316301795323491121722659453271544140443398479760809796091398500165248283835850543759091189540995961335128249754628849631217790364981059245940959801049257667190986070622260068052771979569126069086494909550770716795661042120330621950638736815192535384872971143191845062123229312225760137944118920209589217629495597451088427982693408154350597503493358339066185354265034856072104264858038947999368143535004755691185058614756482970884062031240555785176736991318094049050684054615741673460339953045567224582118854215146145008589514753343961217190017892859986117736398838541353531896341477458145922598922225451927639087266804998646548989070165644986728426212051548599703562555795958512890211296581473349833423422778078876722466470407276799575063282942803634195422685232899341706555805471036387047984762606058276320803972053519442339949243105504670162187699174969600432467251809362102958183782599453123494182379645632321206404696230755581639451264340771337275534749774611079181109846326446254457371753711857769145755870446899042463602711022150964183350318416623118490626114497144104452129823892538400710626778510298690633886078541066220270389203674504038323218708175267044410434402717135370829066143273541958788125286107628295693142281919296442477310796320391347327833599949420916259006524525702746227009301402236265080830891804422963150113270722149372588239933473784431183367754816839143841040753376264018990198040638693827850657047480352062460661655307494802459859867952278713980530580679672097455243612927031178497118316941455382019789549987247815811085962833588868736518170757707198203705132716105769917457823252316428915197998059368872631036785668598058368845770015203053560996740158477667518527700340501919475668040310631268030230575434266439805563077065581187972076547775573443561029419366117917080069710034198062908920660216357256440102009829943506853049564352593268109392077082896083502972675040566602829470971401110638839028993012454476476251276809976819978259983510317039666705912076239482348425252684292542942365525497574326059525693749139511147402660827049647773337455686099142071918497788595950073755005134241453788688280772651774163823175077843484662107202868051753867764238061581329238421491881682165048994387600096866914624899375900718499170957483575164133744543226222096862438676214848694105059550692188515132645335894884888711656736583843390484504837528215858859984103444397094793157101147629602576599754037269918723370205525894696134990616281435843148106523920933364861112460766456390985254228194423485577207987349126367603953569050266601893730978746165113878722349503007703712680667228347552237645515656051764989961350843769100775438522960804022698756635993757510331065698254281102403380966282879239238943850109203401799220434825197556512801283020513662464193623863635693855994828488866701564750710213729801944242392889556318091076736603812420009201566549881998948849666314011913204133532562816647830986235906721213349702976795024311089045920278424084627171969709318050695559098621590745723396117268886658795029549573338583515015982509143773887543845343131246081416464018268436685013088183053652975931942306435039121106602736600172210218394645630595032558284742580744699069642041801083946881694018629399860952272085423800919767010515152832083195103736751150373088869143540177929415110161000720525056550936931277818757787858445143164326806754593993416790915344900172960927777471049439225970028662402210381620507086286966347122256609373166935816856329839924522989442222155632533160926375465710396818301448043918202349325421173987567146953819763776817762833629972663717654134060111155632517429114657095536175375589347218790376289287788747445840252216339906296532299637009338734049762217162951662271149371576847400534833695638066833510094433910801786227663280590022539522475462874769868446189150080541071984803748429619921069688211278159689452843900968245724607565428285786955514106793483175942907595423384301685216745764339830857426036188620926755259417868436881322559081087863725393651631098945329047248141313475021490269019186673776523631337740054320748349347124946176273515214793337473782846297253745331697345437822677360608273735000627232840736086963197203159374142311261248423509270660247672386488820189062088948470906770266066725579137266153924787181091191144531739035385224278951971999938104769498765952799835679873905859772076372301464852519688782264254930626758940158073091134219609820367664479858947367506174713218544341339792256372829446418242459727094413387654773535184984665693046409529160034147603771128396198343448257405915725818957955397139896932766375957174810799785894528077932223095611838631127184113698508258835798041925623775666444005941878628975522271278797899167010049237306756528187737480950459607733079690657274488294797017645923693735574499587754073112910399945380396786442239139387764269147402928977705507718148974504727369194020500330141114718417887633827828397464346999049456426066126667484750190604010405930172633357390315585666577650215014310134964236508960515894275943759343203596313289400008688590516240315779316200878521289707372866537610570766378965096159748600269480762436030582921892376596014430953959063685682975979943310005739982059455612655355774652051477940556231962804722837248998016637017782535949837457060507297127880099747945524401219100530708519785731812559150048284972538315673236659712885921841206762365786721908901106152876702190890769997787880864596971218072361096963656574167472761100120699869280252194926216959788775619431417540029595558587199504859758636085976668257119405516125013365530703646956698327099987123992802967601747001479144798608067473463929680787900303365338807332527614150803731514578754824791634097509085300609383690839772475805309117824440516921842578164166406241104556367023513991988508179447444302808485520266933223990924640084623777840622044712149828771129549320227449271087915409341638217584231523563417459343425263577899604403215740304856035220330611418627095523654120731417940681694388710260421557724940895270354965994215986116338503852677687018690448565824078402637926452992887010246040332679011140626713355530602639909533554263735685039616544057984163539032583211310992402066723181986624207705859055768442816205258224143084538244729775641890801260313417760904075337583852612689494015639409924915147838964319126324552474053389836711281951768237940792387391882491954094140806973819418794966063823665707503248648685235914480721132813626997706113296412201109941104179208987231914868151701217926328568659209019185342760448764692569105122696291873759684440698841905595045967779263836303459486258857545809052406616751277019201716899674150023054736157555398139023686717224165390001833259596795189013572259958890284859814020261678988713923165820056684915748301992018757128470784575146690962123868595639632467743225872367467957914266397467650619076743154719893298339107572485004007785180170548359800923657886669990027000534960126568732363027913328834895557039202657490067744193034362387903530711822091948363347296406852470977986840502276952450013698421172508018099332742214953941275771130139454066287449344470181769071351498687605212699466943518556343014430060630748451068008479976156296911900487940421098418033075436140721592808840432789835179842898908643570972427973687097457363566096459210576925262019853864181534394964420636072587223544176289624551486257956513948650071894314515524147392676297091299636143535232607285672319757475579127830431200605628364118351351199946911647747461303481097040986247264745458647145298931025302881674840328461780293238953814308895817864277332672285210173645227554331052655220048163792214077432904860576607947560524019643895493852268337794035581941688790133006950671985732571984769250507651469275562422345359989169868903196485431309959934332971168899442938961341201160244513500013169150724508423681250376140003792884635260070531137779860839930513494892784808805147141766858026741224460198657405153341261559883269019179710764664636436090445911115587470021401829721353300880152982473882303520607029246381689608593860229971853362671326353065412196154913271013451230187268105553839581238361784107801854664018989817653091624268746185378684197549617772128135202495107552661339621342650748003676750081278026931127701856735267368126291096286837181152728956627815525847035245643533725554440032319747311848010838324790874889038264048274895752454860031946719972445053342419757660168774131782285949716093237372304540646447324821497984741715519207084162791709717083968244368409418770121515239506328686356252242424496831675619666334371026156298178956327678717496266497331207309925299665308176064740874700311839807236577464829677264246992577209517199291509117172106381022211827988669847743067975473753557853824997331509536851620264828212826553886893959431380653788596188098561839378366680882072560601358436441420751290238190147587967805319641066703036892687352967708567342383873792487469174698132256792203105171460761586438913067103111087881079679654127055123002234448695965444901953186314606231009448688699716777255357884453905223828348764950947254965585332932173243213745356024215385777599938798111732437645326606289378738978897447895256527773657041324439537960274413207661598757573710552933731398088997709630928259638532245156009852665762527659869569411999777537125600029049574180234729057268099166393105086915871375396635400160501331687154335947418062153672915919340728550681937940963163766806796213257377839705597859909565018993677395901129119293999961048037868810528781460497915216592270358870730203044762702972961378602313014270538240614358976864014796327169151770175157043268972890558830622847577740267548611326519175136284168455760464059635806449220051554278431570422721090251238017084757077477586235513127903190491856571703742027438372251122044868584546722919438107536489346864713755390349650679168275614898047439904218535691108683019975950864942592239114697111596505554737270943486528722077096266726233437003595103521273504251887411681151683795604365346085291767946948839395972785110102787695111667781443767876718066161535216605639814256408177141700407117042081580085826671389474694939074333628474632383285604024726567688897707314134276067040393040661110044457532089224204034254111541927400597500527172183733551537856352422766088791928485124478235473668619502683661490313275669734691908046362134563685127357086877125185672123013965727734635296805316368513846474571054145156325022933663324552482178081901399774382807053680009073383144513607785794783001166584267311266975421182699560928499745131914520587244703544929097170855281450130076279306135805429308615655300605804544303162722542092026637273529639128685856324786836741492442073808105028964856500200518647826507831055708818849924267384390170058464372548253113201359098113646467200920181994479486229324598505141068621683318160661144708162914858081004489893091577622342135467218049597528367230618499412480059893393880455075747818107834253091545284599113929322311425110462658030983437250753237052379125567143279870459596163934367068012277668567406116799285524818473382220220475933184412928977581136128019297568636353512475994201951989962568659436324017715213634547740735173620948379313830053866084312401657664496436035084775258536985913183815889071086902419827866130708659785131795732105112621180572484916217259270850955066873731972002457541209710950174611133797871530994487326704674916620451798371828037920279772554501356064673205841799370961902447700205387993509504919603494395913722574544191743208089616548054299840659926193072982574388056557103479091465289879660358397893644195563720383119962869268667413218991611446690373341990862473309876480756097035720715266875155176444163743728062729787506314388577757444471170736783965655200972644316471533752683430853068584767697134162694603330570174626030521667479348704489453660796905355242249233074576132084213956241817399276178229818626283107341501903827511566443586589090002031629809206740326960652728174505918611889556147379264106165007390165968886795768294930864626746332604216095637945371732262695476051621866417855024262267014862126013711755165328726667229684481594672067052182525462416346038270945821595633374304144300586064059771892003091009459585310176843656338918960548210074288513058978350206254187695097069614658646984042038833111803956610089099207203378663419626855848824802331784517180303393731158051392050110302758746772273573503595550899974002028576526109799808968327273112874755821414096282937965038613320635879386620242161301559752421004282414345719656257536692983082529037948582909937938535171881667552899812150587681934078032787573543503375761425025182086473533340528532465882914812811833777738487424068648002072756472275364143576840942128189732146005272238582929325093723920160276398748265409906503879702417929775762725963626057439319678403585873627053122233979935308118692681535639957122543679621551634956945446475224563996242200161183916257120210305589949812437691239092698259776052433698948442274808001227078189294836688125806262479855324936862503539533100895031469466236234664038730937254064692418648294046144750666078365729251353012667166145795150697028962581962585750028340546061938173375715431435412310378204822436222887581098753128120273314899445290461971852997756971360580181018408033187657739033569853102048796253713838015769095609706670746887224990420339517802907985242161577299638585913870640569221735445517704875111888444382200887509459727619740568562253165974194966065358465703583913071704627797270325204096200023209726495892617227693827159198678578277096768927759910681225279483922247836268426450155899052272332648282332900031461274534429861517317956417875311252696265647245063567773379203480863459606479187319740355359847309361994329241943287306205438915530283876744704284420049757754033983220526211596195835527914528508948478213114758307480937535592829426961779330228989860019327223669577521877433906950664782316744983345054669770180079778020219155957627696333245167157991909826026615493085768933221864436744257162080798609448700045777542825009834735091162545053479248347916027674403620785933413573805054657104898989842786477404424038712771878618539919367601238340617957370974546870647487542496115471483034786441517806217739421041039277371253505052124810476122277241552316639138618428268815054451019459102566436937077780524103915676217319501572289105953159625329369080825856751701569422586706657094563177369497341161520539669340166565071482847885386074288727523939167037423634397680503988590743819065830941700571409442302513624599796660832840615014182089802010675776845754107035533481910988721872237741975805371478220060145445584722609983379164708369774598154915772472873527954305308408533262708337688114087117552837805428982687164272896715789959264280833960302845197293348069984017980917178602367764425252222452477596122882407884069215201495916334906239446286170577436879456297475216722166533022084686371955986100086884546907003261668513025276369113947732937113214528024922981587111496354170030967384996590958226789609997543019177814758595277102468052388216474959849487914482937008339819200580403400532156282194286980971264929550384480296199545040850632055597905365928032675472609584582578071023745190904130195092699703143873286077188622098267064583011682542035344566485550203559137320311692473508597340180551937734421526948052495865115724968527325379752489585173316572361426277766008142389612378886717432416260520531533962824747218243106416173562326722934827014290576360074360070227530294638174703108168771550336261972147351737368257996167302546377287596228659830834927227641457780522477582991738373633201144217556883708623865245381334173080187227236971977054847345170784390858744599693082296708598907077000895941404371630876864011253138791553547682218679211518776928423222816352550545854950835376935568154858782727029570848545093525475581030432488208474614887273619705072162935066194528393186193107004438840920375931644219710309086080991224015920033365365737417503510297981487457563987552561200274806263803628470919717719653673055475132510752883296905085663425526826799467627709621934780685423268247810948901089139970833709742020182852810640213957093496401835807511979452922265901861480754183206268851323600093532220855878724313250287552291956919766868847947255602865239525600392464741115136036448737443457400805222345841868708663592685097059192685770694485678257084392734924704915029365625613324851160821365254986164778173739589481929955883567960246646252192359604113434057032553060216404250154340418577501099677447513341185524569002322295382014104705411545496013507960875334215281280995108300632435611488611455453961422073787301655777492424778466677045171407055417798030697794601016704025938790893114917896412034342837945355037185306456971939636583777240951102860748665958255069016875507820744884324121704879028563646968000251492646501975462427102792068043236876536451949594867991688895681059386238172135484497747836037274579518901752076486570873424270022245157880949624008506041639174021967697348426458142754420155513055672253168363736243101828043122964169481827311395375203019353190417624471078082765809915782867568719160569841131041743643342654857674960070767611439013643573750731674314298643188035688285411835966128452979635591674308137577230914234147163224698869390765954545077983721222071411003758150154845717916269984439830309835222561078299488208979355056000990155861565069714310824998412869907793022251541183685731763037503036136099195851658538028360714288779361190586894290134923879661210351242648086372822025346471007643914835590992892235717640451646416059395289316160801746315282353050043227982496077274098630164276209408634659824810333025892470581265162802945016040300337106823518032811427482921452758059071968367327018889187413590224430070201854282778161214185687080375960592188414800191667315431575531433221676842545991433452691200447471891238712889452727795235119480754878931023308070778125265777545311705108403479913055189221813640211789574356054257033987714147338766693785914979822136480416985642609736529739669269921798074405505492723654733721323573877733087655573487855153382238843861422612124878601982276116743370150261510970683109373954248731023670339547110572953192817587699155539200024603830299685108704782874268396232481978527217413566654029310754131975361549825148912114487849364661122999926599760507519801623839985868890065645678346986171602639306866482502945439673309984390355521066475025311316156974417211899494335406334448307257266638787718133974528856068349317205628298434949853534748369690166519331191243411551634423775400414590829780335731797941526436038039161843177834147963241334725978820949445902303934448906297271068169691306592586905614015479324118048657011083761428979621293496011479994084606553186414777648447744679827060135900404920766736733707308786769910584160038995554267749665795576847379624534928244539840922254374405091460990082492311162177925291404957178790644274335025026844630615429793730248959181262038555371787842629809037209764841084258278489901507027490340699297643730584730641768289068990595937578104027046854369295692157963156101233966453547531139512250349331690711583844929625987745615954568743398544311121420299188756250465521596035054526654744509456902739968212487093952721572079323813408498969063372720454397356273999645197323755775589396972345878422140757910320978397304354298974329934188256001577244531200415786626600321894341581611390415397309178672820247852005096897035071971447431882589487250461439750981671210071504117490364756167745989444168295493163228558779134832776802797882128996652570047236661440288564851863932927873026388423620342544519169276461889629387438095548433869942271423555867458837837305138484506856173987104073466669262073172820349129428259869096289623165125126418370139394087687696423895249171538044917008741244703267292182079044269035230853884628774895934714332966565241847769151706413532201516776243456997026950465678634206735348973340984358958755220158519983893506671202072214305186514722913646441506544015344024919034687658582572984818363514350634956041080535275770203783318055871734133996054993383425617302969914778313233336780574001315981316064782647266670085982869843522559459442281871525342150281173155247277398299999798568329609477839830757178110789245443561118943098715489176847181442001792084691596697814289329703116591169769926441480003820460073136257677436613999040903270548545506022032986814799499216871900840725805426934407099968233112094582652590956910244777273762521974039504843814057710545559219103586411647813384640806767801466420860146305670651692714915355299705218826954480672437895470941164654051013036006109703725524209388733613169317443026363357477184775276186608566902467257679379168116687046703309689763644421175168885410808780200618119946305368022601761542347479347411963337565977160487833383207523189006601307645815943829634405141465998128617919548592362672158594194003430970917544794758755247318657786541630562508862043512891435395845633468882415603261399966108708146096546539703312134952719714414104863169227220106362892851063886270719559579408146670401790654773523581111485404384842449502209303947863127141466284140964811099938067671878033758242318988417957871059691241795392477666790275941705764514239111066762698498450156542847741659203587948879624733446359840968616893631879166219561593120267011927289898979074982994762337834950277866385055790764665200042877887568136539777085107963271583078112867412503285159843165707636257966870295580516921834147991210026100027306960441835387831143170910866971967498890482709223931191726034628254681554393834753695090879000053310674544275080324837060994813476767245763464998250277825977408188544029573642540657176926905630901485344361863168692435500626148978620760963776553266812996140940625208423728124991881995297549764560377608488132847151491748973280527654516866656823525353504080455360972578465943685275825427187682882313101603244289772929967360282089977012499256074114088826620258472762647417992977122266917226228290291032812860865481807814424935154246324569905376347237753761406665329869998573359991213927995238307014208163924709809069125886287538104071473048818413850429015251881974897478659505845957154300603613701730979379555820440122339967651029491066094760112859782443216352375785816993033277899695328783039358132811601128068855475105989287490593184456263340966667907882773925348423018518076321488061368492919074412456275845615757596085000166293001425080118465226053113856190983788553444635845977794886559751281230055312804441718706579024059296703353149721243619690405993255911114706707314243322836437910294800774688874904226124628515523003761268459256469722996311435074534828660095859961477050325575310589817975942074041736657190402749522005800429606191618780971315849560813961616414637732988867197957270964013360957198443584796608920193474875255402464395557072232235386817112291312509556049153696985013144675139653545636070664699622911787631581167873797236552422967468184909294074704065455420241256555411299971763834267530023070659597871188148266501809180002329863599761321388356214400257807741022405380016687728795399276454324403661181298631158374665929959694775051754427408875504655914521654555379483952592555619449796111541901489009928494618584525744169574741923102976242589697413021745990585725786193105390443232603488547987202294526564639553749214547009503838670955346136071381883647637679324232390234655323652390528473781522987111472444861819470856778918051124409292981389410752589252388446331615804081639287468663864877373129996747819190584100183514637705019155990113360305909399058824249895061967627236900414299333205642341504510463907515356327070610096044021400588696691923125997783845643761861682957838353862282248926969696214938713548632246754376138169932074336579868725739640335360396455875260914205773186256901833100511947778510969502006207621272431619215518409590277820129899278781214014583939074203766021067992906397613384580705344954643581653955974858904002032718597876805171791500532696086442636128382521268141142433340003790868398451861089480632720144267274316848351430795641393331383824919775266217305741349604396339911879161531522266750194646857143256429554761359201420910754911219881888860031744103921882300173598993953052172292084879585860773293021844776382607165521591128300231284325658159063384392883660014952275829192321715378746959626478935797718259722258335738663548729407847882659556991803499545905204901693132467255899369460564932110055570274972522037314206770295875682641302930054988366111427408706411410035948028992252436715966990317136428522396448831483839223355185726105582713076977030329765697464016987788105443483181655145949222606436306020345687174289641993317604684673178210953605533762057627811845449987121097032472027260700201450408442954603566396921215074508448460451088282713200181745051383153624545701812419553821844725771077897709052634877574851602620802914316401152494334080322960708405196232655520929999731629838819893710713838277328517754852765287702073331164186526236804313610863260046817844600843480324666248347618338233851035244685915245625707039452979430087209375985741974072648792398543965403655519002793313440571789163972864168068009777864149963350206539712286323013149369178413536752275567686423485799458693169776714140468697808121623088845062515700016320453137616382798020348571990229270070874816507396536609636740790039306836683850163895405982430361871584076640346619635309350159609177856210573723592529559256300807858178037522427669808248743343565647269563524931494965374432103304512292456762236457127435721111901237206268880664329933326023165465399829880081524587464682123806040970606444189676566673316411376828291633686374768791232166795503013313309102122617203072319377875722819321168828523067313245246005963365837805041819380069183491352001740358758637630168168792381586445666434098571342843482946948126526850778241102503867171150560196046673696481344816840131630587390755575138870316520872947121553530651083224403690840791885231651570430367764576762904678229206443495735173402785763222302372852436529965579986626399579506138214632503420512892502547957618867905642539953186103219425129737339662008775822155008339128092418622343574901663939633445558994002804521571559699410650912461795238802590382454798849417336629647214378014705693540736829500192697493271999821822531178603667963616202301010223299943402290871255854851182647951180653029920528511594791266541382399271122247710250211053388807928119910135176427728562282150796439539469686731489900347417951442784920723340597618397453806297034970938421173078946026964080967232967546665076083480146912734871631171646699056875111612657972425141869018001564372909367106932369786575174052501177000275626365661626299442852108138812371844893501391187454717595702507527630075606281453885462279784847878465039544473493043713711715236470776893376841090511483089978392471592554840275884656811847953280062075510734069523715005921048628061202871477519411556625503412027600638308963421927071885161558500901127435897072278973461644288150269999959818098816014928680847885800343254528582101404257441889039701380473374076029867427553107843152071242032486333265482259913500739072064057749930114893204077449964611515363499054128072612113454983289122790284473639806241515206920610272644707565180635340946583706714098048614436120463913643479068545382899058459518968969366367246500920279625707434371570369828490227159504976948432245566858947265251161087503033386170554182161529742169780837657793535868907607624946273872637908873992704249047356958512112580430064206877808203667401509920671932571074266177068380085927529021753216031981436009759359588270701795066345639087149560123123825643407467995044053277218800325625987737828190822298475435327108864216070365504859384928996482676288068708979282618924940738462863169952072435213530741878857052150883853120731547164128618253618067082558422764022061032292295859685950317009576852440522124354393048565703806710054311555771698064627733624328797980913607859041280449483798195348796994976058798568080651726231312031995413136077542893052803818178254748792037940435381870061683815318346928205076170096881549485187671300704505972797902685846776481263167018917207423848106781446748393156784652743968170817978701692789491228716782742528363674340730006208806850955958705441221358503265565899419949176958056002331429035537604971379551673229091487416345066268082918994423315874652895113105607709298694125156046937398107220479608807143251956296012551500294763735797067190486539071496747791052048391395608081835176028102160790365870492005849109135849473609136134376988883868681797550934392916073200681907657584297515406797668170166251938560564770734318720321287806068617899251924600308723549314871279174546195709669116549450806643681528947342272840582014487601020346241416928983202157675964084334982417760405053525265743005813098329429120983740463662210798410594096503893219016218037975013095104731033076238463743211728685867422910854919727844983250167984141592640748254526507198906915860746737001811387144096418424713944124056915795781701683792743523558012000513911144726820424629529856744143790064402731654516372321827147624036480345495904816125776344046986037985508026308455218076390131611614010300031130215315267655436897459141256115852443553127680394807894988142987106357239036258967088689475513376523511250978198086687940059445131034362033760878996962644654379301017915672987021444983909535440051564826307195847539340742982176387228168021045219633842640716648743854859009934581097073158769403752055883255609246010702262768860642259592098558640497458986293994926010655743583302290513019099090893950888390323977270732138846649550012007389194715126457860685665051841035019517174304289374493149730484628263138494014460272732841103273065041889770784979457435124705487536762928153367795371595257534456864848090409142994090941326065632942517747984153000458525557969110954057615867503105949955610625400176747258931953793741563610104493437754293414351623621809591629286660011617401965031450340394699596029425991079797925752186024866281148790457495920172977239947926457748084825855942641346347204294851653607164109419229307708218419197853058426164369994455551299705683437361804714495870544421702536932645090254912761209969014904236583458374736483338104089582761391053594054312891993600386115006877417903022191213452743827303045574334809473655866210441623704942644184472126073625110336948903470023413413857753577042572592951406610626028168323381702772742612568470931529893062519353991911501041694283171407104896114211707852630022623849282199716775796203214625872605240160999103516256476685395324288936498540759391198643245696712343368365703908309191542818645261782961740964728285210489450814508803814466580616777089702725178614669057652459211025330310414669928902103448766527589961496900205102691507312096261937187717301231904499975055694427108318173110226892352671112970476169603183571227959426562505089701031972924235884006636472554556374326243996053373937759167001354182719978954711577958548045381789051451738148600845335619736263605673556613966165403106547847210337995412414857904785620576259015381959639241430099448336216938680855860966005710976205379111729663774425705183864397339607120213059803876475437963143825671859961744534280192487130574546982219261763901500501402069190770511378745738432775537895260686240215849044186330552793842289232627012888583495646555608455122112315198160068119630918615003020208691199471599119601554407059483221253640576096472705113111378264699681971304971346707921417164650905070186942579676514186695051965401574530973562893417194761422689713176172318431289399304671597406913781362673481744657007860651558560118791662392720974222245650764507299795069801585641503239943545256352761728524825364165137814025167227685615062874895472783330272624727333616100418913609209565179087062703666734769292065521562713507225946026209303839500440305899344609053581270654553790219448092563815859627688487888495705943569280198468629374084704293151772277773438437418713233871004093461041340474289078834990192317881638616586114783237868003093414596469917627694887544225725312716011765581248692697850221492752200413274746904745167397007424828095883686592789543272918480897130655010248281260647339068169253041768759960017780423261305090620893736187708595632568177975858399407810869903823983698548234929491801983407237481402003326975685912439998246910549080548911928554973313880847152608486742415017031540544349985669705664308950369546703929391868995734716375507294440563726783775687547150368314089694420887075518564039954389125721594656749493199778432558580719728553883348025033020638603761107070889005586579247490306322528596956857960016213146233883776995092394933478940651931317971515138917483559680346739292175926595054017698443753718940439830457317730937991743631954072016840319958073594522552017013392774655522306315354909489568202285515258518874936925427729323336123475179389240769275914658690681641676983325842255430944324626729357738198734729288776437334761931662547904897812065377912606592502283162959949475558181027045411529014602547951313636233034810701851980446591545582984180178190111861481451912643205703591698065655396506513954829882740645599968692074744997012540974062499589652777796729104140998699969688888256762847781666105136397156217896674682346199060743234218269330360087121132204429037825603634303544331920889157542098102229687701526318534516458488026065078806403385574549356543542632605078763931746780652601656726531845100479283037605904094140206381857274735917268575614385445449184011735192618565887823245487554859237485101186667246074267704478139539527652122770588836949933937408793523039129860658301315679611704763634891621621230275318066689139977255697133972114624600951328603358348350510852898423108078356093134236125732681771786353848087703058820904869725582957098570752886546342455190683139821306246018676080197874392008717048780361359791415104065474932972050387986863815227493914363276936825480247211898849061985006848850591372158231081426340760853776264935281421024740856347733618220473414665515285864955754507283815255980542737294801069592869857134368197246269727400000788492316018115699158716156212758296412234752643156827587256249473837830481546680681242183277170468933181812233542333322649284163130799590453431375645990552160745959053094065779901867186430112080958835199777905092983426096674037526865923457544914170023854762359187620578894467704628852020646861862667432341996756548564358508000648607887277384316551266975234217680589856028280311599420036417578292913133577868680984246416006830320707818615670493509919668278171503092673328743297271407370731617717234210849864433446339571842709850921311053151356119503301567006179001127399452815551270915083706359612724432138130039375751540239359386247428219942698010513150799797887700994109845992056704460095496579786223502775088086179196273714895883503602759134186652876163634323390013607777913831171327959490166300381474749084437868648590990571459194090037716637515348252955311882988641694846373058450934728915088389198556342806778164691765106757626180931856801119913066810041843084539304880291594095168210796437563607869261731156268594731464695303358866288220796123177694691154344046747474053583292678266535548258953957319457969026142002106789549227058944007755193119271577085034697164463314193609780076989938486295954130311464002405971426187082402070265620244291500091839223875250449680197514551624318047911033658601144659745003248518319023537553126660307940898172361729215748439934576052940813535894563218146890139676753983544996937262780700133420017485429212887567054243930875446679818345825196989515439692173633189256492734940896059044926654790398881079530754747947286459340441753481836437929609259191345397771283336750007246884021302901354880238267846260402256326978643368578511448178971676716194464563236266963148653749570246176943696349568069979338834430941112567411453706140165255301249776367163401658994991520398045713411727062348280895174892647131239952091058661462314005345897212872433506549759905004527228167865437974691306375358379826646962977411599295779011808581335261410870103999401041016110927877611028965433631800207145913082174698428255556864628585012707875263150092476789094222512315261126975158063874768623925743485918415724636018287854277313840998546748734175816515372203853910042774282097600402267327881434731846936137622667001217857155840911592940349908977282775133425131829068088171887071985840907504771738514602505549784385921596522449139272289959381074182619762208218736106815839744058166452995843822720474471433396523471518846378593433314342834668745291855814720459653352582520825636281379960773619636053954622684659837038845022927852551618052602269084404071825520372421548707081375508186958372760051861900682214659034568602483435772104447105777503202717318575826346929472737460144030438833234902674711602714262749032463730173056195834986572936248786213462503477217258094276065655509655069303723025243403261941266703932235397459417461798623863319564619675655355532547283132656813175848960784498453178241922395889162144323172120975958605631470784361871002585750259527233482065851915483494570866261718501799150511625732288628339817463462189548910486922436474249489584713529714763445718319186538095042476146693968145365175347767664215790302598995426272315476293152237486931992089436767129947323910423933405579500971458787957995449989532799811507676606942381448491267036119052767965937129507243663239793167799375008747641217852204168172086994122930955626584144198461955005302183087961208990718368773510277893469054928414641334033338049868008152052646777820044137945853664938407153715018618276110356062702483148916241219787941983692702990058925941563731338507446497677910027346271650016066784190844590107500627259184514097293543052357588405492802884772770899198398778517536751432444500788085212904254033474099043116185989063169764613651811178904884292510996005349734498471498881348139279346636584226252664909188335282379217564290810751290478948676403116570662195690126607380373103002696020007400810870587587263579082472652931038429499689833181071355789014144825148667657142766426968577083371142031713620843795213264520317954330019502666712815788757115122115192927939024246962167500192076583593283492686286698564668539860486895802358936594690646336925392643441807893312681920069864488403513514354577514756696083257155591968010035676777639343856237424589405831969986164425121034280807209523015652196917054916462234692070760336769361217093133940213276091921869407884757661572166381744968800055065032221179947049373678985898614182748600489878696824243101513295688201985411214586067957572295726690538632637306109222241944663132939416982190574749541199303424636104710855272537953919072514344197153540762222201348881321862352372785101542318597473512233344207522080592986040783970803954808790920026203150643255495339583751398676598347143547995878917974694571254474056547820908342075767168729815727795579442728486296295412720590686106349525170401849177567437898942854347929133724740920017736701634501674844828091250701801725359569746771476757820648859471140043032257720907702318943161192741256407518703686962005194332127070971336269313693911810929926123875652764503388635075235125489698288468445675439730740445827449136238656915639365265832812756949324539660308606738407679752711024114577127123409252033332362752443148022345548433904402483085666545079987591956116792214655687350673780986321355219365689491085698911605036218365505451352985288455393670333105716198960433639705447518310409717850842040691338085645157607655015103881812435409410259863722457868366026465112871670522071903484989167116847258061946385265455683220807360327738781753746200049540336643872113843230475466343161931459607551784474226821619998085188595263202561057601056782108045544250566970229312690897714872065569125488537471635134327324440042059461381137512097456116507854509186705955478214240455625426019587380872846398154928226205176121754875877964757153583764745811279329623211570752273783119606728394551767567199479154268510898792435001180356252746485272589965190035390818361982340300245987600591466317654898895483182758086889849435364698825976228486095531711540096581083741589087521880354772517578555368916368554084752215393203390926995755698050358505224935988235803142252692283283615487038206346219563705801292703308193067736240206867285359532248189170783992224438042456411153524188180226597749875352342831285015970664136925925768133566065108731833280605046645655147575218681706768002650979129338329624139113301795350012424221341110378984944959526251792422525589026223909210156334417612701893561690049867022988865257769604493041610261089752992853229082127027778721742858988832431044389316590348084382045527396852688674565729324363331375827709730966580364195195988184685070809542965861849048146690528774665409296190200980304321348031050392573741346395885226907580246747711644117403733389163701049741735787513275184293547797265105019694875253633062122556875009543675412158373191976549083386140427350302747129441803579162856265198939889708302698807694110655094973983620743733968763053152095957550995867862630340321617066537242729086096585328418146910212726659608455051219960586330125514490074203731211813907648212263816592362650583521067123105762936167410049982727726094140351642728509205823392045541764170889088675854018547201089759699395493205894953942253530495139297017297237670376893277486698774831468187931383792075772365867232102504733551021542493844126155415216181866053146096554463042821389654431383856913095859509306474477976723118472123671668595297635618437878616957665454065741118473972755638480246292443813988709142619154680842714695742282388047482822308787626510879791264473949100898832013484590944475431682077034658219887778850809429928386773039573194324011521239704904828308747306104508793030207146114295380537503651189849854108198890225353148265064777895278700931113913069224316196245990247860402902740180357045966093058133445669186947142793624883863353085310089117307637551057296956000807343215023404269625520686074825927116823212820769169577631936765919501852364341401897020529904283801674575075501117525703521960036712934704340612798329888139241462402328053279810096374262746342973427244873017969376535367740147086539175240666506581726189984151704138655394737806210170957318592386707190326152011208627823217489442772605269564217867845997308394342183658218551902178259010788783525492709367609396715054029412793506271722312720371062934059359894683660867970501200164118763991659251967188959628209138125132599067333975149851872961597066495304178124378012369872269733039255026038046885338900381050077316632745779817910196354157540645557176772380843876632020024594873643859548233505476563056044244001164365760952499073717410443260463520550527871733100165869802922549340908386429128327469198975203855548402159121126485066735270968039782964167919774570954098742925619570532937609691261072524214630667309332718542826187779267474864644329134838414557835431694729462854261898241768505306559859837064468746425469484796147978158081542038167017618570269677748390208985365364505952758495660546375709978310624889222686252713827203292788582943624792201515721688756676373321170191312000575295229776325102059057126784125799146374329702596619597167506596817924520626950680038847787535601247093472768945283753422087589968257377357793377242691236795196137556857635092035149064000015786741022061357739240163372263142613081071408976585559080187731063123795112494244379261724354298497270892162930442031383689177853877040791401931079936481757202601735525672700268279456450218956922129317344250567798182599311387497476554982708538445347476642651544229267027919952276589198526291684675400310804161357372524596638409118536711391101545070242344025092755771831496141884598085201547760972128380622693740691318123277547065391463192957323992029838002107380129052830163516208271206449617376234661854890727175633146591154906640643576474087215505555883551433231041328668736458243964872722948828153612287510767335414343544638096866996995193872965582520021868217615193289195748541409644749059649199030143995417184232694460203424881106801241550689983604780335912884866021362397607766749655667572566791130786023549615105362039062862514800904204584163631172148058372963564489718158417677382708818413491546906057736300424608684288673976246190848446368942835085977783060083114558869691928284939167601258454699945505260608051112539567536793168188522281126244622150204073061242629092104422432669936106403514083029939256005713156439493118490023283227180158891401550805597268851912115725247844931584839766982811853642105771415072059621567246062737104777068116422947807007733287434039522693462742189667967983647696913666331158341345737838637816408402399907503697521674478353247830188197533032199673556444262830289352850823348291159622114665085560960082485290707474010268273564876855751124738624254827469207796220377944331944157384733767407944817383838726148928100302062071066816952133110340263183792598313055754611938474392712630763726014646232025791526089742307500639932062666189305806340691644625944567182925759830780587632477589028199641231551370824338261831342538482483182804287284884300955300938167768580793361311456987722293464551311075739863792231514481604618271963979100998798904601575189833458715008149064183992543993399708159618772712529261177717010623584790571289468130214398281921253081955210983264567321234457029448134399369883278186333006865733325143825988936304537429504060029139063159209106980273953877192373515884946307278363082464181841214237263391380828337741538802333276817226230641886508807152290899385548563555448034103601539151345133387958785910344474915424916939219442418161332396164546396175758450788149059018906400962211825463095260095249949972719943239077519892517257243631082827092580527077818728302479282230399834169019725722648875989562064931142352946493449668386338062505972674781204601202666692856056959334981105681135084514740112447524780149332746423561366783412990589292882920405442298787814100484213317231702260463904783575509907324476334410557813542821506239667430135880634403062893922309965932560666273549491906895004566888358978948977744497024113135661105033688002470069618280443122133889865566714515864649665157330441268993795937212273305190355014167282070889460096182417977697727114994825100405583144810291886569815309022597732944069988849577521837479238092078231686127064185480296370546258584338407632975284483288834435560087077325518492764060597700288429345336772410415845600801962291516561633078862720810473644818120035639749759505384446608707027826456778905358712605836318327091051248470699967878916075267147455045765374549798726176814208342438393529719221460573021656743009153907019938692148990626249878052341737276962703464082270309158269526191785872800314765300797058624743991217500107060785992494445141195627022746973701309213482392949140923471562512739673026399507707581740612639650322190745047673342844857831289378483199740910560989681521891697777685109309638828250392273787983902408672963285442795504832510030218212084099758284892794559529786572543850631519823539945381043743483102343548819486338626128682576438447023191105404834189494376868822739383523857170040150187879320300528368122884548538125759353661924726424564734861737938180698145078898992192639120763726718480682504314987034797390246414381895502373291182596100022297276061284306745585640708971220188919525657655825872456550034617898686898614507276775268846812131134947874004691523836571841936802359798950968155339546034676307204390396491552644937988983265017741548518207282225753995749570897289280907660491036684700101909455421360671698871215842901049385898431160675728819898142941321982522226359504107470946351103101046874878782986767999971695358590587975665242598406712952756397003540049061862920674675788547892501828309556509682988754686041432252049150041793455916963771241541163749871520794505031375543685651212987377220255366277937990112894732404341334436087269264954477269613435809731932492871772815624114836922368014100759589418023148035619368579270687759158614399625305010274476156148316946673809258498996135200771463969710866044652800078287976607569155993592209617513859092969510684914575788051353357726421943184385599932253245299175002366966803631819544467264805211623649541747073399025928495977444023438696509805154292660553353324859856763218750073168401577408932016310012065176712691657223393257503187174854698267824026196812303139215774372860390376886482219179078358149793411084211824346387003529287998139920700952738888480253023814574121893433441211292362714404833478495937493081237258115105662122628177159529615784634747263476032657337237295160019588040028319626486471028449593451169901732202094874006068724083006980808358603047561813003151532104213208297168691453492968176596278379622282072551741656611239996687984106933954716392947376919007667903374970357782443530037045173915468679511845837942207490546298654902662301747357558294125405742860531533224544919581253471141134821946470651171016859750598725952186849366249413526187074023584644545114830811207290051516432598647113421488327088197603828107399282276449488411754159216613825692608026125455302134572976795121627729950134389402193365303200674092138077263642733886590399989432125619563955536538366949491486300298374226927798408385743734571526405143003118041731515408007802240453897189800824182604100439996441888289510145525348708646083237111460062737533098784711613755221833035265104500476205847855349948596075948463697521286548360795459744534411041603741371541534345856203909084417294692758668335349226917899783256585479566260108917877657532852018574316714987003094285697355810045979002761940155133781768265982670808579333527907793260778231291417408480508673091882444950711381729116348011928345932567288505113676050259588802355809114772603145432909523774356383460225556271432391215859603146033724196045220797390999748424166312046108893375242823466997356510766521504936409763757037452381435193390291991426805888821544223531910745124297329130340712352035934230660532542057987330041024810392773157822246029906557962981150631250150381221007652762516695465555420125404710603470548659584772911985103631324772057821839740574903020161495062785635507713353711607004816446429531162228588529779478380558684149056821381992738737510057129450066107331909012386643280609449315183559390142512926935471376639604915880642542073355445938986099061008013517413311195785325354307451945305283531523850920855858342678910777543546794551971554960157937936169821491956770811069094007962612042938667968797024513678040559702188000237921350823774944078742000383714087085262851070515219853490417628440861591433618907834528923168654208642030535566340697021988299824446346062993735026937043104529461012586280340840078709030892318994385400552897749280717828033664207179960855684819111652022822434909472611645944527694887194068866930311928780563408173776616499947951683505208913358521545482445932696005469295004227909920739488897075050132630631334053537216113099052234487693753099677580973940976776649779153532680429902158332473850245012437512470690800813958314573469257219996372439080417601396177225995479322385682404479024619329396033918046350628448322506968636847046157138027307825619953601322240462603996463067705481090632957517715978844950541193091550262776483165179319318816035905768762865066071607024528082972657989970419767458030198267425961041111345185040350481647424900587742116093328940940875579275037195264047498431279961848610699384597575728439533407587003098674635975680855490250048870876641281189952535255696876844050491984388508399505900580434104371297872039968022721221524047259818869581333755427296658195956472150434357259416309252061581308851762070947746404376860679983412228897622602999441311604055745365359536525131140549202881928578196862606739685109045917100799719768180736496132682035313627606653910835323580109753342022113788459465298630895680027126355864395860497380046010615865781956346316783586351306954592690627931385108608444055484506694480231325185903151237567566905754488662579222803202658572800669384822717140583488383792114522669568105133327943008312359697306901458095461361453969768971323174960075135006705143159198539223404367731249380656073184894314758254576519377578871846691038411725434553253780909231577754789729184336809476690586937943532257063531165907601802821746605122398670264871006226219277901547227797168308006780789289273754355711717254702429372082636111105879501735012235566822906438757672111290773933962298003365014995953098687944074887443568955613178298173250966767130641732600701695697835283476584051531171079032658718411073828535031030251712059935956391806795699063088077018603178704401439487517229189470537509441674457976201315548857111437286635360921051243049610131272968350685897242346833685838169542455957595636855256678061939543404252611656777014925287080546746280263035251579490707283399722674460630202317013320560596471358546048016221239452735769969827365829296968995180214108697327660624118783176499906508919930556392181438344212751008597809417705114860402580126664013485611026981337260736683338016805100955867563406665176533134507020794969932501990514628607005989776446612393394268219056382487877853599244541043034639972285816716487021398770478371101341961797513281541843541756390911410442026326689787147248554933971634451584484032146197812625743815646818983595764407495511468588339384631880771399015149000322479055858254536492312308215215082383720125987804157792006693009577610276928971996937652234471227349626794087442690028297069019831992391563961451792540757471899728988971185404586713958024072676170003072157256699036762399735392482915177245991300056875245609512618957209086189664147568144976628019415509368087934392361291897041449936081589684112618017025653044245361884508150729764313322860039141919820187323480196393215104510578454306374883825546037823866507085965616317973540875236985032943315266846562583716555545831924334331646925694779027242629310557109071936855718076664147735711215209948336053923138610906191429561851342123396323840572343638146224631326813637171801283113584965855729710543705482866150776902241109292365964293609753387527720321442532727139191760435262098614404591339193721323025991461934840412927216424640607504002135593616181614786828088781526785401918218697731400494400248577861172858609895841959112259664478309743176783346347343108587134549732361684880470978887108532193456020462202831381389254812887936678418717165527688751555144182710917750803273840559414677806256209676362962270754352878110498024466925749898153819417392922170545964070240355248014824373335977172743500117501747046777255270296873261809901756741881722457531309354429848108243983083846308271920997958540435385119817209325390959523601013856844516113958353322601761699832894601749628128197793881511976464511706554736173399207942444273743395779417648806568097969784030949306424264030502343614406810815238217065131495397918135682142795848548115410991255368582190498072834761459950823957396486730874492357160782771593969298837220582535494188537848357442650429820805019633507918532738685469558494652908886290827707256607379933379855182403023245109276682102356568182325045916301325597667653125317190347611738974693628806226646667841245170931644299323340348455900876939182449897780287661356325019269404264083205650451498021155495593525244153018513678549533897880700870847095755854776620324744876978502587502981422920064650625224453077542739193444995468511351086090668728286324211216719506661430880912442130323470972234668341973613736199360325666604868018874050505653108341487592705766532755377975760461212339911572840278623599517476313496342469365952902542318264153720201491867614092654786390327003993183019488266973930404959123633167660158414219008424495555563488440502208339586136998365161028382842200287140575115577215946401399086954332583259154412209949821925653655946843572819131093039470750891535408498295900566819008639680198008904833908746711484706489907438988493766431285428440009911897427935852770919045986481134024258607847253682736155510341232244059093436322820414291288169396781816935027765463953356053379462605159654840564595296619621477036900283155200924753077916302922306005238161585511956058177769130086409784293685737048539840255718323796045612103212147313758097048758462655041755553014728402218853399538057071682179273107404270059681679828268774517544526533038911109171055946245565298344318051080152811490616167488010399945031918870695645617586940681712254679901294181386240621160180225921815117346703188172108465737010591708738356263265301100516295430340210724848157645069617824367736370084303913237111329265740891537140619829636185699423240548367289721794031727893212602142201384113125865787736894392666230008834183023427940431016729994111521090810930030573152146348279557094837503752173887700105269433098096928606826021213100550398167095491802736684168212050088934067339216830460608139081581166890372128011205720134215710848902393158895578588445677293741724348923192859380202526502123831410301873054769374793088584803966472689191535536047620392588672733668484001060200843926337711788833180839525728462199245321637747846347656823446884006666324959328130633800921539619511053114435469555137219635283559569355349949648319327243044529678561502525925014080374802074834069876248401845024254074521174883100587552796873471316229291064243159683408567629335634367938809630161363459750412620961157973605111395035872530998053157881887552148608549875503128313964666418985596734416787688864375861527638007410681724269498144185731046480245315667300320351599318175259108440415574838418992950728439641818221570106738116131371329801360233703886952833547398657069216263777312301111830417419624454304812449240120954545721953987811591963106337898045256943700768843651978846726979442009913574434419507956622711984542066181797079520674091024869838423536191931858328727221001551803191310200061381030431272959376055558378978177831398307637271866779392334612462967308938670772340528922474798348297899384028994171183166568082621059902188657808447265647004471922530244641882683585321830340224464614686325815771710981447382574741350462519111522712036705424140761841543729851296867031853611269332291857381396398998762937595292446109064898628724703142906979450433163706712360276606911599165589632067602809582524836279509320433743107654888171287589749953431229084681988750007580072742685949456581636574709542476733713922596583925931414484932495374164921601648526730717210521338170840863649519096223735622263944014489266050847575844493849046178864782064627774028884571678224919203966278242878298334981145009302600965384678488183874696681447396859426137791021329767787855170876087616967396300474969343371344928468110594424951192315540990733848589262477848599106087181186240048298280940500463926196016412841246973914309521807171602408429534750241156228039197587122648113091012744583790026982890490097217609926477316806508315193854998881368273338666585771271136234042785927547827596199847662832414232155784267316639865145007762373863902894313982532127738738996433787520014267238080381034647750364124561476676186140561314438815793183266602080315024559178703170847050175612292873640755408533772366625963141282032138973447401822001082739296161613261231238517642818941022760026044999988789980691145667898744000440081128806419233976714777253003077716977158953592207881763298083488467900146755907496627215539797242709029552070738279109026003820617569438898905393072922573202682959259326459357110097622702492190812549303930130421133982305229933990385344640505325323919709820335815858555413378196693000735455159006435545217460370738226792206777923430202526794837435328113048181920841968380465606487884662932592695014023967233456420066154473671798506520766449500943689318413263415703546514689710902925967954027987615744895191641863982493420216318576680537892992008022033399493017151971903909627066719805266223812946242510757239734413906410459535594225377368182675282663933249253827515846208854722432584827277630985578459635980099562544596993643209038346493400929760095340462873735462810720232997574277930865566221174617435176464454085045042288304729925620959853621859834139147556462034882508044187449427365138246615305370446526013393073099683550213013839446402775400725703678650535070417323189390754445941866520217259939780602642677797392696238362004593205563699353892013748692578486515638257562045295434664736266253947305911146602524467227759266414088859705060266623868093889409188009058422082287000091795359401076298544801363294811807667501864839637957031184401564607527594628787040653663729558516506443787324708311652214341670222148680971264422224770306316904937431054069539368733390154912976135887597855018327702819733810718702415603585109465770715858532973921008305012459850437851697472709272271102565153044669940785731477193117233265966438206941805411429549960933063114771380441482095571649219198750587516968276545023604457410378343559263376527111945990181631570674712648198060441916463287137188808803893307892967072231841770079644395744516833168051192489075588432577664951668362287478056682539809987381028152493457490410965584118062416244443128731092573034894266643269546342217407211112535588263811886565067934863870305693186017210037238211371933203815773819714825209761915190922389380736155087051643376191085698626501311257329611330531917004556685041557973538283938400356676655198811151119813693713533794898685496027481625406200540313876493424754019905773499008770796226884063766060136620709949360606179063591718907616619428190799549171403058804524134278258938675385759265847790515617058565523770582334910943845375862553463014808824292105437910889558908593646116816125810564995829616285847422161429089642867989203763261635728293451800433087450915173207244163398209321566058814825918689848627450964868614932638207477676819071474808581352647386502529648753227502861304977261529737307538597614426041274719709580384445084930336623803896500005291218144321461502340692929716066356774904343637303105347851499105411912268816785900041369326357406442073000774099919096467724670581983565368224602789820541284171658223899060735654288519432542444408799935999755877164967227192020322788789188484199573212170589867796537781599231702212234795667920187465223701269071766169918416995703583279685552516106654510064292100801705887762283769690637787350944006606995860570829657612791037670961937637860037308197648408375657341373407508818399539263964467910533519052492303852917455667143078059614492983597203500642908979845647757631490860583942101809366893127263196812552703941770897018326105939584400271625968937979327157343673407214850107775309657781760893894420492208566646258086773176091028438335316129715193379435218992392928644487250814509947291931511099421282982895560401393964876460173822562755359450965695057447562239580509445157624177967318806371587799651156166694426309163844348188928891093821019065457843869043111182611760598431156199627188514398241995293133115356458822390195205758918248977475827083570335333969255642598431623155632244202266695021615567322890855335484023989761298542583448808590066053522237507807517309649176273663431314614730472792390434237798445937011901383502593658985152076057498954610736123908959568487609453084801247520937525136084154108447164639074161633109895335449823696515564717902748658861501232883051154567883925602291055530206236592983157090591968989788850055180567057816152537669812230961699328036005817414619399092606219796385869241987755782353974333502206367728803289693806122188114165095339460357084071546119845127515788844269474986399210984625792686807977732978204624693370858982339462954422381900596337305467589584207593640193705426003581803523610386612114470007241316486819113084129075864006533050211133550078780090018812781644140513434612911543447876468615526218457570941211197222787853209421665940972216872460884020054520957373488164398364696812557273788727113915205828658307163413413759339853696159488539104002570049869208681664805974601157279840756001843531160277038893929682640563980910757868761793467040002530028085345591110242128824375479509192789824720814960587977774277162843576525903308886788963673235855601750521646449989796042313693612670908260711259583794395166799659255761381826263829032175142235795818023505995967909494253994261043214087219575913804405726589191279421488353416671184350290964917224404290899646686529157116266581143804901563299419526832488327565992017577064553185037522347410253898684307717737937809528882884696195175001861173502473316324745246237047210007242121198325827910594753668570628273032371922521971435456947534932308679054448167967846828137656630634422277086811497567677265086460952658347726478870193446605737489894654609876606238479880871190188400135310292266739525799385385044826431798157723518969120037236442833210562209985098116336429297556974720479391683098780666715207440360137612801213827145305994017557900265756489040920031741889899105887042203918712686864156164517106849692978076421330111001553668870615942584934792386731812083112227251307545233623984836751029676298595984518884266769939804427490364925974384595331825725512652895928665682453915504264293644157945846134975433543172650125118902398758205267101390127848100266418655054146942434961266442500830594317988686576072959459937185930977955026506388659948370184497166773797890216578075604207509587422904682945600184734351012859705319292425646980106599210913472146755859224144282333515606114530262812107257023474301407143611723264628319092829184073073092868075348464094584369376012597338357299428457395211480875772681890375259546377639030224028714747584990455423672419276299869832377896762428000064666441562393620342605700999458938856458225799114581028080485863144241508693219843637267286309946560426287917642071778179947004393660587030421341002087680157054176704743996701142897573474820448559236658105562668482909355015852273266866952909730261540434305613013734965683674195995048567108493832978155896636234305170517672485831144252467377181130831600528289819938643523868912965034728894386890942980637913103247075294499537353154233078113523184168010324215218942421659170619722184382455857650027272485445521381253910423352928451234500974005844336156000268334273698215926928953058479807973901281145674026383465011740254799555736869761502661090383500728067254605365140843128092621546283501254768756352073400912937999016351174184309369706669067077308206303059980761344216736475834606419658476669727151328231601017711162919335304728956165919922106126891751543395867356383385415928010990677320807357971836645149834248206294155994274164364584906867207673700757171585608173419031151170518812363157286341264583231451989800475727377317448363434010872340108198869616036575498510569121365391761094106897799096754166524371446915181379072694952572689508133127394825262634803707611008075534241412632824139916529916764583438120962515597355826300437825057876331553362799050702308151831821009815407407550040856980670903346395030510679933565677528575973626280469437798187254942159163073301846052045383196991037785917537915804413657847074767011347493127289902031291535272619085812914191474194024382500568465469320053978564330541939385507182843377927078569078205788705192181539235122485185326093115767648675945859270946954322118502108748486171107847802810631704260506727153234193432480371270636469242205606668402783955425498141077390832142746765357537487244901971892685877779829144186592060114643033403953379920755187815230156576747983301319308843691170760701793040569576687016294436969026575287894671507099987386917498594249952461648205200717150841899590172602355708636269278584742064984619303860636560912357198007166613884314552170453939967463230315185008973932215647128309963232428197417761625488229223812284956820712862095946484507003516156345151484134063104415504397461227606836934677154687240984656336866958327598181375007238650317979149982538528623896845845585569622585215849682425419549028400932897052947222971983535719165312589654419877325564982000717307617564142654382129479235602372226515507074446535075765453156865593194329952294582509336817518042166427980292769370710980478005508664172643090839604987020392004986424159723432673570232219270559605154583264934128874047288775857262850917330977316141696458828987988276935504803239791157516523174537006952503920274237958820018781671135986850258608857573703248124068674852569485398246987192344551233079845940966677598098757354181940896891095852032264414825455934756104997042505413809531639981928463057640984238306772912402747934309975305247942288902995757452442213282858661888618861487286008895588763784374572477141016322554576002272366952316340764625676644437344702763846909549555305956093243630716125286611208131947322617342815763176667073283843323567343408485431491106160615572084646213692755845378613565698735631513834503531992719846692074735476395336290058468117349609247757446660028560879547580414659462113933648394667744856270931949184776772343017963496300025703836535293683705358403634905154517543743294205792195843920216456560315998311978916861982760358696159181053040267797751752890803946811149332804649185900051402414995110260472071924091662150266332501076548290156481963545407856691125240308968350453154152997217454638986615106285065496849343386371591601486682129095525897631917346369456046074494964970189575278018987825667070499522073363609103820845626454686106892142104102244107802560686614639781465324967400192618033675719547116763203731976262409192348495398891344417994505496269534949132191900346301360175693923970324392090589329387173550659784477658442545047615003510263114381273059692887481543345224379041345463452775271366296226456600517686574912768934883321483107881558550311041814681105577762313435670556345524234128168133105531011483412932196903374108999502624307273411458568238198695239290823789185000799359283871582324407280427401084802868271040538344463222484676286904025806823174635922938313974437951653913516740170504788986614091555964535110035303618347189985418603179206694977483995609117205551524370484018354445921419517632580258346370794795179118510423214101646939509708663916206223498633619914089581615930774156760810095814916455411677702729749442399804986676943542018708179596778207191848033668517951901348595225208749808247266099337184005475056562082450377162420175817047430448449394930203840032333551139002326414457015695876121070946165515542737858253121328931541214878585634712951000001484181762687530948636961564033028062413899286488259393271430731616411102327143577909937298697953370775641371220681821291327065599666015821035496356849510987796951079785412266007843542858117144854155471537401556377953434339396830601518758723926816196627430577834881768182602234941487960190555767053795145097588667282477624307999677560309324474248335986780200719333376351536709062530056810022626942702595776478735231926408203256389499153837454092423040067095489968111181549546613888779133353406026980030651664272197804388415623032349838867693976705296108241882257104476069109244689493552373246876889328261635976270824002930831992035484703267046465308583489184512410746490534280159700305995626253326343678489297189990406821772193074988145687822464630425109506475802887930055999401556228703176818946189035297862700593795074877219647797005874192157406337208620177118860187523950421764864848326485143709218246736218570760303456451848942922839893829830560604354598063083132830729282380949244515342576349618982254806105354920980936291078699304683012048318981506134472925612869917701508850044931997431426891954365115337165818025430944664625723384565589877057729201034017008675583262887551786963418424953024388905506992658772949326548096490911416326069224676677140101348631677887323612514027765509007875317983588638945075778036200574073561177476799956413272821123326647106047782783970542710570426107171172858529005395605751131067701352465920229552031234924766495597481959995212344281066886026138793915675215279695195072569646837085907538767582905219572665875309034052287952091450160564297564786983532717672326666338589864389072504373508597875155290122754375036775396967667959848344961722362886969525406348964420858734407165414035560596055685388883322127379705067966802380642955626960970402630786320728276314934350011596453638985893978332425123561941586479287096413247282027480028355995851556376925617097114050178879646779602564442795368731032622598141978428657091070000389100367055713483812107903340682682963408329816345742333820811884851478164094079144656137375278624540258389205541448579748968215394866567695967563179824351738447713134314323084823397770042920423493411087860527813480001980169172247717799547955384431510174572909133083686498109455861317583539408524469391451268302866701236873063106579733007994879542139123404707777918034809323359095324918590212903016618228945636479496032232947845953761229040195308699247375158459138138309698486766577363981057032699714514919923989183636009404314709338069978532278012923854006190400548008700948191198595752188611209980092450687176302334188800396674415521874744934898932346497195902282058827024504322560044686544879060502837521918192879201546743758705423079027011643690934211230469558750232368453939454666255257049996909179894269352975885246955796283235657549130273246602959112088564782252171663705362699554995043219315622004696438802974187331217600948491668526843475975235044150384686765398417114922940555242287622403901080226945744054082907536464065250065953906305807653376602979108807296139713927587984588865619535797826849888730212694595817460282361017268408999928371967761497479681642540248409337635819648848664646132763056556332886341276652746589973938697639336769635806199286748629804374772324556255719023937825618784947839843746736565917922428630627916297021087915897892006905566265428132724955975709654390038000657442225626439946242927720816618224292774818704487026829876989676114482783504670482827766734946452378683554193906321763859230599734926901035381042489620505478924209056655203264413948501257808301951678227604870111051582564994618807875805958797490934953527985259426050328688609171041773463298511199902076762015854350883519973397385916083150379946079070393419857675410422141431696585281507642319464814145398780848423867142111219717798852025771554757245499411783899498496402682509668822607178831416156486985901702013970676191982693822487304744015831692865715992208644828922677413070550855683861286944118466401704893562038527366538934498693336696946244784106462738396809119286664175130754615358247195882398928673610479935075591722494201116723083627745838761952792782418537329098019800406190916698931272130347624502335980083856351437833428450490861906155086977479486327963997506900854229322160194459344080457175562705281174095715121665214259651856395679162431595848625849822810317113389163852014920542909274093249716785353460167681684209736271186046534841872205444720489088331685393581474861641572789630944889794801978641307459746677134150325215971568840778488767861564862437902892674590519437206679551889352043901304685543473876822581663692598943936730880256246074290149915205191101321994895949268281682306148237292468505061866075291390855757723620776480674501240819692361808181087006218805568317894289419436747760059464586587725997293046816565745045434947494949018346361501882773987313024689607390818046133569099273008074127539941295215644231041952709469944791910205104337442663448579061010297439997642990899731733020190035680789144700071522461716054618339091283683351810239967734027171201965506305813843374398607656247632986124239263110978277629858129230450598166714824404990721811426130344654855946477355845288690926389633897760905173359661312422128391207979701276575164189773558530689358484132186642262253275234793738676154789025225414555376316450748036434943080620386146309710446282656424713348766352472392066654411536826619776378771342927899470136224924541164008059941063286708448640052428914086488076781181639946011432886018176480348950171659427742510608600104292863033904776222316095459384758031165871429873949888501705277571298176418761455237248995273600708727889261116144208803289307527022801737677444298518731926647505063347816761844729473263660108922269157328708127953209298817140172750538723578336008227848518586489967915133099027536491308721998974140519723699788884721883834489799601098876357166489312467559368434467327273152165916969927185301149046797613084891577835776187314659820658234303814418378003715200707556467894461187972191855162943859632532986603968740558324516157710128881523773622116393726308638670914697104546344934792290011018826643405241656138052005248662155854251756350278552871025760312399662278362055791064579708229508581944619419831957652566057778464685925892046580552559328650005813292043457058927739235782989985943517096417706990628178883161438275694800801675378716983770330385414107853335809567169829573311762895329228135797996655064665741328984934471886698760385427800884734612233248416168928415064368608476723237214955492728694975930341321354036654813747919483194753148638219348644840792003040923975629500870682100065419196960123396790948387795658845341382300042708455899653436773759092021842546111260192852196343084616612624741239550309125124168952818009283140249860827353889646922154133005684565858396961397292818769960964061590741430965105959116251107773275031528469205090558144404841259154490186227135047223754999497242306901761390647713141719553025290952129272891300691740805667162566529556459843326828620222131705984281856326937760395186608062619709417584925695011485679726721282923588341314182273566003454897843335414873226809104485525638306531384138745345395943996067322398407557882921095116170645832671417739526260100918065333314028144125174884772848206075982921490231453690809903139046841634733702113075898943602612687309997142176607502917020246335563221206357507499896098320022130395044750212686233011563129651057831023508627991754221474550097267057659054720972123203285432979003573732326353385408066779078563505839293711758113645354726050410491235452467190151006133535945328598899318255827421845052829486297902603124093522107902033509024474129994001494992409040701783911473942212179390981224282305976032433321066743059690929355532665765199826042970549178323511752428560035216490746630390543052259283550610344598299081428343025689949540639296104515158867400888170584919775974271602317050596814590757961768183967475657346040077111868117799441714500806104830782543823888721496359153644113302960480215346781677213572256050848505369635596877669665906156432377550002365509482462654111777716010728793892838623616178619226877507415069341630885941368256899332096960732852401231599210097528114881816953712162662966455920221710289964097778934246223809519539241492408231871851376760703647966224063726142645709764848806065933504418592855711314072433929570475005155342080404281265095183528693171715631003094291350740054527150818549137399713015273224853482778163062727717263726061269500470460104987379158804917116263516676553262084195669437166919563116611618712457269384231818883075483574347998875631940795760465649581150295477065706226912491310729827290516329354983169580179275004627044181695553897146043546987807765968294946220688786036603017021899164096820726894031729116809730429805883261918764739050867375808867324521728785891903938450811405626902248070965129608430078388893069246646786348047814822979113750952687380796419592843466655824658965230749730919220653706011375262281252918761440555341974715227842433667924942180649005968264951804592310603792752730795657810526010100668813410983033934588116878835175432950337053652516138930004454823278867386332748941452013637986257565643829344597601343518998276444550105444218012941978282848667850951590055652983112764915720187673170078095679752006465708513710023355666423879596555176412484998505156737026575982014012291887788457051947338878594318016721587629605651265032867669225693766933669762402638706618344328414762196876718608482142321854980206652468098471211588318136036177715381193459832805631089671796177237137273886268699436862629084965828291930275388467586511547236138487052309073164420909499245451336614959050920872908763676639614233204960743574003069627356961548338073498902139677570995096558933622506003658604650754752328569177813932022021028878683351746797410212675266446104402252496647117760666667045452611669532919367190192202650345965038154664829097124815333182963599607130933112196286112334778631480206342233027427543738545223370774669827425470463580240534272518568283981081856162711579691647887395104617043863156888028606536752725711141810689713624829073209130629522338940201067036236177195529645858916003698698632913996871560100024473309559586354483105151061302312120034949161848930388288878918627486833929866182201298648667148293034312425719417223297004722724221383761041933448846584128878369295073873623641489206648936180995033811451359123203486044726336880912361734119872549228670881481925767005914868662921600794982710085473143250533526756577771769161089974101231662003441048983114625077169606583013346591311258387342112473362070457985917083329159040105043806567039653608989919669856826475882732294031333544188162243134860992352664440287150500330351100513305227926494344546627241162834883221285565996718751238577716395079133536487025923308512919784256488913256164194743838231258868841818735375338630576896562874163945728789655155703619495893077813295138724057591250204597030028200268866027830136964865795721007114223671536845868090013423715247630600594283681989152393763268835933716517950000115513350448176734834483218731444411800228239730389814595652687871337428973269043044781661059211309844644253750097040243973439057744307070811296354028886477192307498211867110089380828849467913287591238355223088766453725897904078115311736441192221457191158874425861978109928277074922479094930030568094854274869233113034439897304000144701349191318213739872165837672521291570740912074341667655091977975621538332094205193665797314002664738656106710253199212491345393541741084908099788044491962096544734242520536374466303765591141974603148325250998560345776782913125810918840783306169047259986354647394909542766432200121622257339266979637285114869025465846087641841103691738468947686223403591995153036508460404268904910058721136983050821582763528378292729427836064617089199602524619018464268814899502076049386092609671560087971983583604009464576452656992654270552713920737788105752944794696987466381089604521558257962896050271594911090025864732679919444898412589121308087739079984596622936410538374194394672980092479600147872133503106760552755324862810661695788778789843924418010126390265153874794240682870550335739234141630400135654964312050728615030632014253766162732048735167259440409285543104506445562055496234531671974693701979168176359667706950206098470672831239353144117820644055822362337783392757986213877600302210760637831754255593087902171048869529728108602693456067829514165794870594797994350301722106036408365612535728669261380094400652612185568927956596194684465212058455580525878493831947865454907190614763129093125975848642189240981394541753574328729629200247585070188176602927222861779751967520551365488387343250293217554613281391152435275095916397602813753761736750397368030927708482754062794090019144319477675822319778895101409373286545130898601166423889142893813919227941169123959177075043070540269514685620146725124160885065675341738326685826585115419935664587705842296776117923594871652625089957039668840373003366409756563641455950277666918523147540784650536368993293997559235497994329677716558845323113887437438879974535267498681890742447636803291757076898309139620775992806966138953805184262330650315403813718491035544879362897913622366045748673411810785936907846885083384309921035160175323213632778487032323841538991713673391296254241408206010643224208989813095284319260700664742266722738065367442381896046211399607330124740779926940765417864946821677688952868103880251205797645501952245504890331940674410503135865706014430455462302284082446397814240108169908498864717350777762448546992368709570972111277345417150271862632169030498320368544334851907146161336400207322106952867768004428820072071221772689094765049149567546047141002170980963734953365772185970056121101113164575758709619226842824670724418128540288554483092750704259413161592412336583550703151746715235646695394239376918987021943089368763366572286882145445619516778752019420577227438438368048603339902853778235842576359704436337762293519428871230919981043230555203618462482835422680091437318170018282768774467923517584298174090566619775277040459347906385303580601955101940240949497459321126752523925158061320108966456331458194870246526397531445654754686664633686856866361642498995663093097515217835918927560742025390812211069149497319988140687464151597845021675313195873923758520046021411014475650863194661260075346115306924524964869484957281798626240797489016280596923905011438543054223419104413661599192631468305181547762898075184956953107981428855592272834801956107766977980829966710964234469607840946604362681966516302684694771137576354991683688233017193564999138268990894501683736718036860693717354482117668219712725544972013167854724946216865798990951215768913490826433493850377717377929905592443163282729352179992857091734420479515346791391302786019897318381286826595372070374546039129813363218304903789821241284619990479333070337723997642504591047800516327563111862313669503282236085536658777370095574153109789904852312454971909374928416907112851110808167771377017304531745019688804046892514206530874019884940219966624251055364081581829098325152152095240820407696984724336348890623626406400085677318899565529033013817044958615664863539066461719746897986519540833890513123566884627122579509146257310825252178029713024300994171545176584559819412513887606527800297398714708295417301056585021365209224665677272045549327697112009056566015754894714009433039076703303472663289381770010790423128477903268750491756909496066382397658888065657537597964880121018416140835123327822838455703528590727660365109801686642893758710179539725348671876044969927208171614148029332069046015417500894646603798507291378024666601968675173792417688187904677080752663077401619856796014851639949183748399693860549325802913546008760266147092978728910257336697934334706596792495828157181726782343598546189626526992428458657048721001338136987633421611602968002395898596016956164714715764331811423024318482616579041128678077345982628299146086211170743476291068526214712992983740782665839908797756722639373907714494404467156479787986684237255271331114828254737470004866184990744496257362139983809080635958628142624121478046970538132555053461412378206462151702823701372369344835811053324305763100917791792444570691407225249460243229566909065318719196057721838804661055965422903303018747456760611845006674943926965580423285207928440015762451762684834662539364365546018216519895530195267067820714931623805822231261536319325451953624168992574942397113584137340319894478407325453250263230921777661323844585168036580858437426771309060420735618605523562959246299892650195176626594961422679964786333452351271418161198867488407119510455375641340397839287528411358031341707366727193738227812462859861228928412164430812145125139525079091028813414207535575607859424411663785815957041515226110217327644443923554971037298442518908540627609011332679838917047580318376258683616949598286382933341721283192950449838753849743584561379689514365105076246034167642691956567294139901151380159029140434716731876073617452041034873912779728746993511342429995113708477054164819638839188830709505055978432097573218175078904449032743597394923494061784365163485295848953129097324425115720334425966469758444417291988407924773243285475220931265462103959996721197990838057072939625391034443718086053448077561978404367947669392338887424808592946806943141358399371689808609943624308320057492604166823753404211225855639182097844381469641149003200236197259599968176386807127585478627119707937496415336160502355633705236616189449828419435666795575920475897518560069704264378181312022216010481614683438723948255894484125073338694935902111750112106120468569948351934416018570983915985843226287562477835021013590632668989189682154834705314947718162633426995427184256645417975194599169592593567560861730036691253048044127704599894464337479261871174428491738194287857493853724151807703740979924950873010802541626740659559934644171072908647826186634943278877024926774093282818082451459604757248608400818602592558425170281214850682670615941295995008067693286848862115955084485760105163872022933221922735394735765665292912759048379977001035905536163401999981428455822272998696703826251025525120256545786208766697143090774932145383298128548164773351147253827862061467677660768727882687485694360204350854260230896358334774197978790209797952286173460085595587650088866206190785129164939243637405714561966294034976218094297139659628295767331330629569798950972486014066032903042153185626210814616503600939161801956817381482645929296108146591920976324237444863020780645801322209570065694643341097667525729910227615078432329128954843591123572504585710104394977531876132417053219567410745752464016750397603678551723089022395381730887516427927378929762761625663819791320030055682322781137154762129754107049151814006023935124306319645749705214679796490167014162964403468068897786456607014873227858288163267649175016462910328498507999803314091049197556987966298753724900493230307474302518711184118873182701340511051065884409639566366711654718190236189812144635687985604480520562917440287393705560285386747898329208844206877310870387988705461248535004083973427295337093920193200923400992518123407727531589243850653457538082182461388195216145632947500209747996197845489838344872553600600125158465261515391299730437498640521567010807539068438638004566863438426772406759653603294728028722471501213258664084382488975444675028809685826396105399545531621366590451528608668844453166723352068026665583641771573637391452411797987395968514717202362797187469010788683232735026838782033847460870536121603863136406058163190181160055360192237801129439778307844662360697741818745922339805197893143806258407812267952036532973933817211111773133519265901024499971643492124716901747552326004865322774855415391171729956152481901559758586181408776305121205714778808994670822609327972219805162698846148549014414994272233582050789905713749042796567659384097933810963842221709489266104466947539895939048190682673800734244205896939380396931077000380255888053648232907539915819504379045996634537703230207294775139104700147276687943980927448411994860249959743558045840107013938314398694146353363435773520418587987628631507288008373373634784676878989547792209613693076445017345536253800719985598466158462220510676102829755968869976971876207411395416404009625062831190919215971112968412458468890265007074008911776319547342976405327281832972861825059758966091178223783424600920476420195423163511196289481203105367209522806586548169620026550267214112824235701161629665565238204944059241297618020359826095091367777991333300614999260487277901618708633872190050093417666463246551450031652167335024032507744835736339527440587561941947833483420971241494049920534535900628322978315093831625995758611720586906246348516002908006654867736127311077091953824175187321727487175876291822118561392709668204032976387671717692781247522379460727089132226960934266904568078788849367429939477518305428832812443268524782389491870124876125450982392007477262172932967688129186364594959000004918224016691543295548550423758843315438858305292927437808849438680017017374294251862096412437346360948248610759246452370574166196333608741561314467709243429519702657425341186147561065698144739940858054403464476049186168385619984391333643067992370794000290269989561595825399058385179085614553787414765868484259091681800414704870317305798407170945809443178107669637849668750679013541537961564694572557869504471404007960825574819365620788087383746559578576590202494251049751108386985160968480154351432166986042420297415977640623725210392451384470702611270458684128228332552806715441166138298176965044099883546181170737365356841743601363101541817561088131728804571356538826562517947319990726850181787611621358602598463230440786724047707099849141683932820405826543082615100001834574615984993907925554898952521799456038529124369607165338094777045870624649659651255205978004186347026322450527001445905265410158729487573328003702885673156280603032175879536209013442796034165225654979610822209075271425682794629147644325647822475436114775024280873172490599027869079715874715516892590998216926365829998941173022645191950067751172477028782418778404276777391351649772018530910862600365275072644648176771303328132131258065465803243709718564488428673839389419304585786871731739995911577704234357994788829674801623556497105475217875482622889091350953492557082730070762787524570174006883992568405843567526239474365111985682463277227661092199644681359610378959601751437572274306031305301939822511645785825824393215094012032190492526035004729348723582057986553028191707912362385053488946465252821424587299660144972077007888318651002237120347575281407788010849331878295329641800259845569561868279626275909359426999691815779653132873153149618957287260721201070839651169799679093857776560124524630417002768239571933913545583598616704052955956572670943384289594018354461612006766987185114916998625408408011408258104955651704735696794292826258749169803139519431810089600898188436888112589583612966189111743996987581294605706735880821505352576859614754043401178922233688887107796565549498914441820686709138014684924673072854402072404170970558386535245763578760108172660597199581218041542120708247782903053853690806402958476693961684311949512090936598544668607859062264719454850885021808775480408562293425017900118687121631476373164371576671008855649879818815353998814038999542484051114208801815376136117123352220185812243271369310696820032031352331271695452219993035581694128551640277652691571982604869442679827782121076516195768225722431172850363254643708908265448364400490367414551397512297900020905728521928746402641095355640791843345583956097833162611687576654872336293310165150756943826957298509739757290488650179863109986332807895569232336625274894015405046301200169475623286326084797424574768874393900288065668375279384871110766816741797196917863253126351887556680579527734640542235456265904610420311303659756111805843897141044538714900479866507005240618928901651674108075691300299522573664789448927345202142014847316588796261198890101335833124981892186249907913097515118454756082995063272251338146149939311318495614055858782355695702475837577769359966506243632946580008409047816194614184189731063262303044946513469318813546975941933513073395726076761027636800292422576838369075837252117728162786616253363510417508190272885752912313690690441436322219452846566259610982341630085035437977226334581401215841236369007410842179221057234631816041392174031406669309753906755417385070178015888549282959898020775494121125422770406621873896373896213711903456306492768277945715575015744136131140229664560786404515130505909935039427654346885676564667252408362463180530252434371045757508711412344546652824231098329646431848346685913283845065002646930025864728432747447609732307942520646132852385172782436554672739492824467252208524184481351477752908480245864625340548667319088075267948103985145079035811627557400831251861859746339850638469686723523158653521630501884172827290019347152330502561665167328233088797978573360134171235012838348512965409562072773789409497502135224397517473909806924805394285492839765027987133783994498125663075413478870416335148763944129819048932379439817971521914541189434996980625154747815497392052864829135031012961166327652794763194518421896613409572040105669548454980427068204318285573806667099119733631323702657481800549398389924483896137068432178260088117107968042693938187371238346131575277097544064149540513867614619692614471090031502018011131338285911266686560306045353391937206111171861938637458453521749728643430066868685482818424529625615222579722765309909901698375828226504466020605364689605709802701112695252624925668876529350892897382878379978442128435402336028591513027004256662683448613218269578948214532956653747120764443379274609676405013270259738908714906406900813668974987104705835348310783235161372799481389047103651904308439584934877647909108528929376189557270073944040986060031398303663969332990736069327195554583312727920867616540526975415313227102513037546938506313497367366198716479020478539189109389723125303644193958525405418992367800112028312278823627396026060985158219764690556548179362725288767631623691419182190241637821370841944559726197415785350372469922623700586723184434977595672471159501135354313412973483936142160916985438366070425723369060441777619836681388920483808197051016759797892570384539118004872912009698959978377717215742415392336336865553176142229940814963685617117846652131220123044108514047633929240180602576777696045490053252417713196389679517895126158985900416712295184373573803942157541238154516646937532210013646859852085819498075476911851502630832497096188789266782074737728508604477061423181789942942970850987584138540277918238205888390393394400303505223577899824394261250075146776342790940690570124725470785322968603428076867346435473373908088342410329305852450291018372818293790976973318199447447854218361320400617488835697565827199719640384107035026214391382063068187967709698449030764504851953505822169680940742152894847530855505495904158844517737170645194379809141258443373179179209537743284422704763369810841210435747270068783152205116914451057555331587349142076225735321694800580273198550079020256292165971792801900313726373747711094527693219283056539002716206001424250246169252578027594910579073628342907872514231174357847515201668485746631057684482588852993141354467054103350950456676436652916323462401864871260420023721924458398049985340643005815575057919175824202700308588382454996010402769894707625431608984985474522239861993302269447818691125402767695478230158633774205729843924168847395752738985279380710327558335481738970584220336300651318379602427934500492251810868659037124952572340398846749858140659460137453715906044812836427934118180589090550254449102084618833824468802547733816817893270974627690513910761604164783111191646222487356132706296421171196268798333958935164964542379044376906443948561506205245461627554122649384659739585715615708629972460160882431746616910263199742970732735222123130535008622927038764788913456488923215604432953821732141303269582712115717965240235571427280125864801243632643478801318730958603163175540283675089631100926425608736444536067255638789237360573687755142699422976869437579384037901557144166039836942602603831716678367994650550356369221765174500359106820671266577719699164146092893724462517440200441842501023009546431040384310519652153047668170280914093285701428689513910400141752054747068105597946791274880239163816820926806316866545029534305047265264642120769239397486655716311177590273109870292716377446042323246914803625971161186207187606873437100140407716997225582768777490233497774693079543728741389263999130333541192317160779816648200903680839202432448970778798011665822016804957264396735558450556847966014195447368633708792732937029728618242138262263929980255919692459407591224590699670113669691193038194688081956806860703761071761234357427560981186473978225793229360911897510302355784761794894658406454894449478806784940464737128050753896996787505157085247972463090303926331963953597106271920781319824330307197520501816965727611110868071235014352801393944939820426980381948225394190986658259528841909455167550873331615563922911474473184041619016503836868679401989810041760652366593044699585568825678098645147068494606664927982446572754230904073220027920818825363118074601323630114287222253865977227816179095101959891389336766247512864396736463017423773754106558882899881870943217056870593472988108883656171887041558290089958329026053022372331832321661737506891936340353941672387096835973765203434072523101869800375438974048356465113763035977406927146515779566450819091096172497425925850524550107336150520566272131284852119980758426443737400907730124178572374820716006153181443612650284038456254875390800501138750554665594571542829439603896259874418167941181117984102634462069613121733705253674118325765412590075487114329326430109478694759903504837802745757769531431019143169427786784802821440436755937408090687365880195258955564774791279167462082598765596937649755633616306586171079539690957447530129416534595999979887408125367723769029973120245529434068811262305084443758649680590762238606052925378048874467781809279239144184873346926897620586074842027452924106796400531265441934579581365076548089734901674383110904366820592902609034515669206572847965560472639195167965859583955166833960944833652946618238471279300877630104457912430386788233227800557708900005146261603040396139972275064688789699429499369417034795807360042071636600261856615656597912678030617612050685865179405684474443978546457661489880262324188307990693479119939483719719829257049372535543124781874237931510052545381610719575901869696030773149587308469083106215336227848298978010436464830782644407534584029764974527661162143045332277137679883661262006495881797135293055799485900077192973522044128274159719843482183474459773098306225854950090439008671688174971619041865736314289495437033040317482176283145887826359667785002948601192863343512944123393657605000479529919589654784841903325318290995077238709511630494754842474739727234119688083602670075630123527651145041287621999973244155011227061537579324523364500172313369126672038638271134357621481099382526240764741209404157250525110796665041328441716269950959301781019653585516844271355119711717015509971058847535973437983691102598916461661294832999889095068061789145186378006219631590980685550051068326329121649474458610199702653645244255367297291757340884953151089929842267622205053062627870319101529007369570648274655999600471683025966877166947665052981766443543351783639977603274158386703018085410172361777138549908792621490158100610952865863970047782453808600548859137097653781519324972718877732687160903814304925707580820130810012505262546178771938224013584148979089908947353714835205260872008182668170844231014800207558607293363794869695582657840999814388865345102365447296903997585871740281301779065128363327892626170840551124215151853844768149419109420566708625217876203400591113725446219907422219435147165303714192801615537675173868822795807611908955440922704530950977677166024641039656181305471133953928648607745704686498252111512737401315713982939577998784590820666976224917505224340584233866178506082311761769169171795509661261882041627126562349089523842148024875051707758571623228874628101364255478478936750605031131764235586670300985588019941953834016960017356453560847574509235449205240326136342341604777148253909686632008118670178685634104282283828103231919458984956456186774194411139976752648385899879674198395207343153985251719526218623552597669476203094271503364443028743925693638986241250545063094347735945199456481070500090583664831934715119455461412045975395159561029502578343229423981210817087868312256191646108109797500346612580406122732805915892850041022528796645594079441381325537771364163822465250870370938224880486234300657836837482150382552271983198096899864317662817673801675539698652670104582601132642303784654786192259503023013831017960599420156647341090578783754124006194922714845574828772281123275052988792790148907339469265232730995455034425829825131945497572064904691607810453990574573160798402512450159760306430074336841572245087211286559577252802204958914607517553173096563044941284788458687875862613343231449972240953719270542981435620010262563620925679446487733856984549055979136391219409574646907261190494174436632506647248087176345877918204259764661834589562227225901635452246742384824412805091370793624867481867936810877371015175026004606637357888471388996003802890649786553881840505151025085535176772241101261666428286277194981060142642720369244253474324939320731459803414936636111091904724274207578114507223972119202871919037513353040004121947409763043186219558579432177347253720053976028924634578787258860840776570044821286028819629877552459993235782103061212978479177298029513125744786879082686392581774430281804291827348314541430477967600091089097190588500337342732112914341202168816882868716780806088004556055898180749989314452399663383029254143572964852245933669308191707425891074030801690960932821546775339225512508113219406406323266100771416764386502021416671357201661516232602723430437904655787154976238935544157631103473886291207346333594373353837720159209629006144549831925489424646847343262459892902247722382507555342507093097417363071854367837909907856497895366823650027775921267530907112286932912719512404513710296943843595148976327825525688271159986731116532195699266004479226819678743465850321138005364688530432537610281956447824064124977100348884902701184905056890779545971601026252143410379925241813790706408204552131187149085837114214798829437888146483122312886668806769413474677769532070006284747252582385977550503155163067945926444700415306142169055752058694842443975102535188704373161586921546491386623242660230856479606626323399421203420258722098423098549022562296876263377763403322910757378473325541464164145718228478413685084304755536631113506918899612887875998787637324306538901186432599704988810088157442783170844024942594584427062269320854178585376478260071806158589443516042489353199340880554902966751801569969878818035241657803444401322689907606928674888641497639690337017110728626102254800376395724874132772472920636118143342621147803141040355559319047951069117749944948890612887138509837938578419821670043042942517315316993326404240362760135811456049357756167686574602329809080637789365104606015918864304311601629976560748431434953768456932525110711009882800863400904345760472710314424771216638665543034305038398344718024086057551693535658896490584987641680047426282229892479252538579619101316099961905553672329738792372168506988925905979510675505776237348536842636027353294054091769532910493410816423057909842140216182463685281464049669324568197756910000083834780343325072492118832200717200021357220748945038307182022479534890918272382051559215364465917191914152766666257498526876209052567609386930256016017249489883638878875601061515354060795001870722680072032103568841918433498137624079760893960802077662354459413757137630896654622804419244705503941734946908093691522174527067966431341702161342444914992264002654576545203535726058870905877763157885947078237735380003349118196442869640179063524607573093950722528076461214136015463463800452910633434356373012953709084689416051844152962915771496054459676117868226783565357182923262101236474621811205245901490538511947003480745025284634268493318025601673983574819408301159787496175858235566543992581905115444175389127115694886536587722501001253388804721187869221466280354358403600980901715496747136529619798341622660498693056537904179909565468198079148417142142863033196680456109909551703519044592115239970241917145964595742522780944266399445350248488715328770072806535543689892942457763010318942204638010316945752884560773111395690813815836835366166646421587729487199104120461503633562287030657039168487199702093951746532802704525902695894987803740421225744069576461717670885822647696197810839345327734122385065550668638245926356176297091901828895521841889673476181182641416605055817108639780440035668105471962240238800556927775912669903856420195437659449011199951373155560244980245741731551813504297166222245007663389457031857856892657669870409887435362725175106908410468812769292584297276371217973207747023580384361594304025158849347072986191745698147480152306796840220088857224211577858737376203165774907630716262744468273257410958372094795804688923793956395550873882244875401653605815871921589215950798141616689488192525105075035821412015696009698642070062755707701928378909566606522674413749310607856900376853097424534928839648285374103674861349636409700034065168139152699120008666657942396494966999326725129403705904821040224455166636106006246371039570524666351433046157233788610720237287129197200777111625858135936154830229006354024155412228283266650718010366364658331743256519882098943524466823283772212412692686216042034681870495090870156670843447024802297479759000064129482824381914663838949132937633791843414212052460850126775640766645523975744904016414297969796225125031734072497948464671678279688240274468023400622271868323240839557265520739311296699079886221067896583157917036480532352448559713694145291466055174022502785473972141957473850469744304589103532801030580198648875089194903123446215899091199420882953017047315732326291836401973826464997933143176095717662063321271447518157341881610498727998112017738229606075144805650997896815521156794872245523643077298719260683945741224383538599143206598632167505634837750770479927110625307941592940880645816736802339315679520465134532800621036670338705385594138165241566974122719883519597008492721284497473198411198690858846527295725777184767540623609959246696507774317520834029316800032064250776471145838457694163801694553065646384986603377297271225850320464002531955107190753201903715355623972110563116902773825833845293054984861317444500774976798443251256724632393366055179698870853618172380813673175659629669079140053215239433968099721367566563333832190922863651808447665385492841059126651988651448958317768285635557423823843770206000158306182660257310289955526552647539268215237031642995326601045457743615040496752465876358304490442950449327168127382891256061854017708788816866599548893645671833378806363060588332598303596923645713825388408841682948905809309120713275612670391689555002195656655070622309423768094703294016657474943046342423199492405624635811780791375937473223179469780251656173462767835221546548097724450427590519286838722728835339360587208420248186316985597282985106190580244207262158170070731255452093868023882187201678999441184382770721387405775915652972824615079871229805098894327555205976325112329196250875356940784177065874883939466163905570357378302273304225882198166793556044769860162456322533785908047226358859680593501421074869199393752193686464117557826779924137961149549767895862277767391374908872921849198374224307624417387323544152138897012022506031585209818196574060230368570324705411031157186074026673214152572493101605739656702951456248564968441928676322620075316565415850761892112571813474094575559831829872702507108293755648224985003525182056560242008940721933023220698251447590728298801033342588329242757003753275157369235886029676597736637172442214369787905654805896737876212344951837083766767520869943797487925768505213489388575123317256696566857787148758095115275984024444197178351537562243384384810540505396081428566069567056293091517226202669761965932994192263192010221841052642956006318521694638044543569964590332526745421787168243838445674674339122572634258021534370174550864939117732114058443684740376016459584141254449544423616592440725654054474834870975925971722398242748636534286472543635570396891115375954753009291293678074940412747681939783970756752864932820921376907741910242983756753369248022178739696746112053234861509288634394302472667199441570168042443438039509054362408881422199518540976899794074236937996987091736030761172016757936984797640430363875803250494755645388827264726603412886377760685305889779571835419558799106966545968318397011700616760693727964507155564961700915772660941892127551191787347655824312192685971440666644306908648037889177107746238586687331056059594593827966494399795507170120032271524039657656609956532718842439198348956937314971379754778441996229511290073969374287820155120986083802591968326683588338006783141239818654737806968342513318081172648591091423983615067504158182718612246356944749109666068929543634849642916946746037770301407733431468350148820768996307757525920100094985557246792653476558846267215757770600174931716141903075567220977655973067478145484924485894406516217946912947302408125745724546032364114201808851641313195640346816746696429994833269702973266734606942860717219893840189185494795431742242953412345665774525555396771195611293122622053853247179382386666478798443986403361163879441443048111899313050720301952134873648139012576987222533825284329951462689786603673752318180176493863281240587921978029921760990647295451403549930773852344786419846482568361225340421741104054349821714020171496727445157465524490317924170998110769894650874080262028087117207529523683250394570702463159084774703731189026534141648875078043002289435084404231079415432601124247677823467497750118806717935013837350646448055994467795707199723261457039249180489680971807632204958342288287390273928543241103434867546832405919928459772930250408864043169796134507198984696116456354198824816029615839373821573761105023411140320871075987187562812330354605103034508816730711594974012973619059857238675191953463682091593876099195394170814094956136468550479399419752780976974404728161067611778290439702453206837371530887833162393930978821741367702182586625670048587156231783872209359164953938033750686720900121371949544343314278052787634894592957920959396437804040395454249387815551548854185929319561838890781226179115762055117539808824810237756666203700771465050054403463600601258015605018594360603501420525684562307718914388092433448156956711951545615465184567485735889705973918500471086241928832281005355573204034756175580721879681759937716001282836856601699444372846841413760180726700548983050851011905318221605881022217031085745327396943388801851047484728827535114816733240696619356349527928759762862670075573019344322721426347628373622456169596368761006767758818508525782657104126738374280446423355168253487429723254119928717857709600104979134119231421315239676165474456036804823329323389383786640530921521041853912571317250292542673648429372188667438408743238655971863345005911001072644477014825627436993635232318073494610390528477212785287365776665298543030900196713724275343294911570780814714877338218169248439516734192678732647879656416394442684718033174970992133605150966636829404019967975197271801336032604561435601252515247661620633612918329048906691557040818004129155060589695604939502445829019632054555681138155406000596776084192714740035855874458651276415381084779990205703381189466820901286531397324436177605875031161978936763781741788081513999206160007172666197904707731243568112310530351077319585710570213048546694365588748708530307224462955510246586311652367940253480861327863379617780307970403831247949747287799300637591336948583393462979701736673573289131708083573711859464941069544021526364615279556957387435795354283581850894967814248808537626542458848203479788447904615044523487865225823095883693075894833666980002457290757034045122207322541058740507775588145582176265767427425476167721750421763268323997911350751948531053961974753039988007936355576029312071157698607122129707684877207854325653418893976843658295307043474243116797021258201784029915662142980558232815245727214717223254917784271312237151454963129463681792515287060353515288533696849942156094503193861262556499915059476195063075153784767927644542349046974231892973339649233164121780616072235956268909773610095572553971823582383739399766822613540961417150144908034526674226587888720195841746570320839362853623931410230378933400455421439514445166637117508767038631530631257273740020769355567371183234023943634894752384419634061569657261596668084876466222988458881589378958134831987411439413729961461544848040383301242513678696238550770299772818536932639169824139439694518163052088900815908109568883798775422405326860422262281490446429352880187254789274481890520895870846450701560766033044517058002293125343106404868536075590396160240604078566765950996670588638137446709916022956091528443513606781407033388520979943446070605945124794707640134462200961944957572999405968739002180596393713581990557492172083101926912493160126321936769124200301421286724395993218747792900452283138086410715798845697675712912297836299988940908571044470319408795160665588224702609348532533323968674801533669040589880761751695109378475030262620388973044664337044116827355606343788607204291321375985518523978542056371436348620684781640504870782818094365733937313353616409618230123386772018688931270092850514339228712195880684861281775313827030696500706531971817925238527319003166421993701786959927791806155383228219510278445782508819193261261647282936285770845368785378899876874656342914921680001362966611298721009773866395360750550959810681184764729520715786150923396517793324021810208212255131185640105538294356943499986024696704819039472616307269370828961128180911609096547168741866401209987850085306074154468388806519993941303240178958731670569948043516528919422036133940175489871507735251355576463507067860594543756554029565579921329335180051781321306595269880732256905036963047720288794168726510938729185184957953298799065044021345928499686492994637047502020187885956759910841559592051188959825021261995084546085957318964798950600701452252373480932057145100022560968149177748163471434336483325143042766346898529556891593908194941244301404737575187398241444939366339654531443100721470416741142609908315523755516921682211962108700365533451013748968050546735198156464898336559481069046397656502882960545070624191725027137736495669568492352478604169336351229536849473702181800974265900682974548827367110353459036846137045164234505883932484243381715889086493885237090131520605929332926513845256293571867634162046433650715666071434390048798605540967924985444177318014200789109279122113795979426150415339254047075461029455948318546542763103840329464294980095884201318717235876656714234623118372873002147583886874031943904321487266068622141943267005577803329258591622284027311081218499371003838559409269299171112983307666957493080975636428259723271296723349058408300694027986872838214204913320736425669390414127389530437783925728121157914767292724866858019067630308739950953032049233594298851084460643987039217133958907075827618264490788178491745056954032211647593578377483138413737470826096238035086867657178019863072744354840609680838129185417536840981154976046437894783034635102132813382936599586802793450487476218944266553278942458108746713619894299423319726473847937111909065709521947653164625048037844872398080955084091308808094471159669228737481010913465030500530398293119990773778973890082729066131350441898841200945104619754882127041991951825725717576917668086138917615983846846111439822103345425488864343161575087814971741260939908724798575589678830041682504937412464777842194388994153003362647362285231741767904547315198442911689287866182363929295375010572746594430907032058399691507907259985216197715717418121678399660622656389576799307556392263719820532159856212553084572420129531605047528171424630944797672035826184869111801919395449830684899477294086339812612401411011089784254349122569987153495526761203549363017594123448625328623817922916133013883810497705869681146355329239223538088414951630445335956137719780990757690955282177136268865979362468521161853690322410814477545146815082441657704113790288561669820402521321124095691189486167216957591043904633896535114248886196009038622804497563471274370230148664511048700940359953624871309627523152604504942447117815067442535914528569118645177530960721951138224799044879213050506421227239846927246263084337161604808889434581462859931744995470053049545919067006664595191172561077100313867471576401074514995759799359109912662440591236672512102777166830191035331056925773039500356426810113711932403908793406510004906758118109862743859096932427151701206869721414959636075210496099271696806228761781195468044400992775933929250421441986530643384463340883853794631717377108247084398454142178175411214858592226940908069335741990467818090355196219276968313147692687391176775324181440891342422832952973042039953786510124520122633809939332103113829410234438511561828037605662903196774398747595513629354832194642360228832536410990521558073904383893488329308175921206287361982802050058926547815941911580341987386970704120395162615841979655247970317235771812284371853672272688883781273951707229546799143912877157639966270001233975649950203485381825018597403176672237324029932249907013207757457552832424536356660506711228135745603733107304965396802041116008518212480553028452114226672846200571641913694031482630988807504956220074832061745542486101546239499189777897973715182517859110028616518610431720276693029991536059529642670265652483758001051406895186789008569171373438022979185690144815033163777196820813674774330689377815698507424751978874816823687467378410819784546362747387935962412421693967960927371600306307450698949572009938797184609004929733611407406845867122161142890247286232865086849766082055380322767329363919444407620150270600119548253283352582281814565862100569089640297719101846957305614982921446962833259651048107338834883309593708594625116836851001199088168778737624356395358204488169105725055017806466633059207369166016250514513199963327323080650130343314621181255116641146759788070127546065861989693098037539106119038992974821636422478822226534775084655528030802711967634631341026384416337779481263685718154724896608113173237987493823661567875890457178632663991268238608275437230143172220264151508954507620343529799488110161059109916608130045040799154635898081657876800942420122214499460096485649566271690177810048354797164444899914555229491192919064453677223295179204846346071261756176782604535637460959039903276525858671579029932589626919575429760127328927303624440173627534188405322842641734769130349008398164735379736319571878441082906055559989466810726643992696443795388142967426229093336786983575895955930123783200802032664266783071873900034290010582197087387902766789770261567283212071559682140821771773264260143127342690403014025638562137972416518449024476617710448569817527425495365274593762226231657269011050216944304072572484433631979372877155450334399969216924375088266061734572316047445559730305788851924190438042093374862815098491023905267691288251204499066193131669901921851728959028393834253670686708487224893335314864857319631332006043577970010118864066685225894640206989936533210091849047135010418667097164285697157252168408491525798748824658268862853398998238262819037044876072201619174685621952882085741878376558167025883300227879816779191166211432282543931814055634770381444248056302993497298045050587748807296594581070931763964878814153399659545535148868416291837455432211071704463594786027684300906208227229209088048475474139964645669692539127767327864267487458567730037498274342527004093167782592208096226982675434290378666261147774719534998399075073372422366211656688530420191251009001991659174931844429859046048375881739676551101844297424489037025912997410125717867915172097672958260218948042885104694642057014881379472005124382916742395904594486995565778183852066375039104438111212901103930020044113464745579845707392861070071127197588353918908999494011825724218010653279193926710658569221240090653492114390699163364572185856353830615029803878576118202597894871271895484689649296830865698404194036962583845089396733960570897071133112898088030512310055497369060249205606184443812555202865954409603563012215663371150301154856818944064518580297035121874956363237995565773591940859878808250291114389943213617594943686909860596376715321584570073165147539998381124072311164604492232173321493439997486836234378795727845245904752232976666479102789036667351633337739962187758501637216359791608970848606641491047218579656715425271989905045368449307197319459970007181435783588872221451362369109679339224374758689258928860954644793360845907859822534756974117190772098231127053990753064128658149842821307388792580594460899938154567886527640336674019165506920975247479937149366990701156222006706474688879700496415350676147114089946126325685267765932461398158690199840333534441299643004706093498685951281386492512427109456507179515125833878980121670264878839166610134814360353880782684793752484798378273506956309607807622851171079523296790115652039788755244858346049842528317682710094258088344177398065970675991452434555956582303173384771822467988052169975585169489222776532901812878657997206943267869460762679404294417832773516907861858604311492966495526604150108315623108149309424115419874120918618970122654749008047111398544232437532182776011249291509099268791816063441068846134350642187451793864201680043278848804234940073149193284801054675546106751210424949484527333494241054750920323636002625771902537778640335944853648635276988410469342603506641979972909038029779952063350252210583175152110816150496592548530454772998363696557199425235036448959597765293679659110181573041128849700529006938290113886761154163055306469111388609776158834096644890432316969206654385994185516034417057254277029251879992875653969403902183126040526448868519497277522934646632481553811243558589041640906221432871477700989528127714308609014118526476014075971431571541440588043573007664075672889329132820808903764509404605338369909297753316971541730192099074606107040316881850709837590882547237530437390039295298517996298512317105337998651843889753101359869464905314761925405192239047489129003484094519414429920035187573637729229282355152232167950549873103490197320298719998928167520854948372881573713508400069288430096210951331266031395000041008623402397579987233076434049860322927073181477936758461562943824291058757691983530694138810136055488949855110349041961681172434796043070085036227999383430863701124261700378245784636469197918751075858337297973840621473193639690620561724907599230177328178579081179379690841336239848892183769844604239311231394910739822732368426089671476300443453788569611189256049141139675134534731964931578256141742350901356638798012610782085082007797295091984156699082296471273994176168220295056205742269116127484150230959878524176328117054855963589035415221385141526356310916865110561212190586556640773882753441254300602376122686760672945367732390767443456791711782821916493994051585755935043159495853066124184772969780374870812313242490340723641854282518113530511787712157259638215414862324821821323746763008616598790389687038783557875763505009328973264885744754882299656318305728837809304729654565234861512860666782634617098237110053465632672596453823554305923888751567427847458231436468455071578600802874750064811150632956716434181141212643853073172730887088892454808831684278836494864693987226169231748297491382843268621570962303504759111945593095021427268340017243461676978120659234032995760675974666513465499648229630088013961930457431657027729646370854758688929714152361151428233958465861181366473337181006713217065619901546743778347679514166865499296624639886212378959011887791354368396332672876254556353009180636812532017594444440510916438415546045099181389784444680989601467855905348452498373095499069532693351795648533961224069299541281162674450147970224127860031365896152101135112742279278853842331217988599217303677307881237861428162843453677729582598233434752321143230814284475949398496738721393777781574002414519176561609350296662604876861448037017058644961527948155971990211010620660802748472191063332372997232503062731069343321538759283223314985489636295679100113611718118797380977020694381557579739402886367555655168199967476480144051305856903521591311952715576865504572061607624726699951105719495115482564532589941538438661118814713904636274833034866658139879568392686069314454548494004290065424270002540089716128019976113847281395164455556304472842395670832085237387417611049196602865458824495117453503530485671980706808032325617831537620028714206997239718599610811445102938633070784642904547077617286068663379641109643171654429648168264992446925633774347105685692881544533667725660668720276209483185096003596456893694320034710528935483593675901874489645407600328492006726819558108035099737707724485961476002338189025215835980212109200906524616188394911106451385778089925556129126862991813067449491519603526331875265355394698518086877243748530524103768433785615974940325063006624364781193908351017183521232710113417752632966607675635004772140264188833864101038202362257621314463082490458113267877827204982802078921874792356577217838487983469994520338261858918179758389801845686865516617373485354791645058918783460891025185845692706897258793896380286413696440237330059081916770704715213513867382248074668777358636043019190779499695555902400900478831694143037694684860724439725091449648328932987063723307024830279410388523749429029980387479589366106593839462848330863541610835575235115529350171582901420505058115916757685184377989225980655680031951260816622761277974257123817914982454207662291566816776365909317284235244880986313819272646324964910367310175531970395503103249291470654148106505163676084979786361328254921688003923277719462260726321396126304485028775087381054838885565005484959455101007714396814307517198978239247445882400309603431026473057710519796556110905405847538557887770199431336748310065772984042555272780687584615297173190915077278320258200335451753757751249241532761022500385262776138109229716056200783953839779072852965702390651130377463503475220791033171494023925719111773377202101180407121440419926843738248979702492589552989291376126994504422146187147031637043036058332418490814313325883563079534546932280287608012147090557879889833261792783879026156440101995152362427673463140383876868744536043718902969731027246761771494902019700908517421726991533965924839363724196619970479071036090539788852537304649189883525215526422980488689255141002625930538592864636561116126006313873434927020831851765468004593952629700250667959504977849112797372736627636986977969796672496181850374747104111000871300436519742778297996992127667595799484055761810581621846592323050079665461312792942289075989446335824767480970117294844896675846662392755062273357493021077430559779553115378864935134063678763403988691441425445692636417048534080227930378420592213933571011358191646771876564733747041873466636396654086183245838967050999254085359573489041482978847068292009264716734533378147248563685707437868502108965023136666125181581392273109918331822422426698685090418850522660467418192409863556618291616134286056035723447680010640673333571728990862810825037817598457903806458744204513166957493248857821258852909134508573090923240889303316915043799230301004340237113607591349171150084004790415301173984085109906271273039671011218429952360135703351387296546185907782107210483578182037766918120331292677397897509634040776024063841731885238239708780785302292817295432267832122866492172641332705448095449036061057911072475102827897565753583274908460395895201004085756226996405483838765914683640930106644636164092621899502726498500582325297933730810075406105935772652115139481207302940236703962065486980699181044289289167262607379207704470929406341449696680640634660539888021381228351603228390868284743718390924334607509288061964642826057822787453240315967943170729767173539044276393384508746514439075715200036718534318961564651049133590909504240333343357953244731351501132328884256262516174149403084297859644152461451206601623951760052995022551722661868969554566290541581451564506768288286765022889113410340978900751869468124578013970069578214697988675045864766994661178853814133085504504741920516139299946269151079937794435724400326123549380007567662618573937553941572315105851879712051095862120678140637733916529952710020997691653263959157437450304779411620353143468861047182333263412128112597530950465172102261773207362928203811821079774982312647146857309455305748081257835865213508918959131169598362334549335935232043522296110789434635349457824109907894813792306852662114101117089283302224433003990403944900979749145057906473888795524260272336093093265909543549219774079893326572704570007754078035902615860901566234394022551170030072824090684693640469805329263683360432718291451246110782834239830281371156527375737003168289468746252750364336010719406172658639374802639558476776680824452321594013373970340318234593834584071506740944731172564941348687265093441743242973907684363536817791807856541423413466848923747654182893289383276440278618253771746578846245946521647023487115039433777618602580811638153381701518584342953094974504869461470439811860166709061108000606796695381520236672430040674398113949892787592687804998607317729834133509022476776266040134505518248271033301590211800152259115396963481508362781752770308786863140857425696189575247237393625732407278918351060138409206320200302765702792009250084293711498060917989944345025033443025425035760559847579055939876561528205409568300891022984961831126628662660416560527911537783539228839743672908332469733425081014750950577045229238785007093722705324928344668474606027807678953381910282138022670109401424207430933758526434421061044368200904926361656141838902012114220994507962279413985723228803088299717985613360778690934186053461348516014089021425454094027356217720505635111899495050877014424350565263132928285721143333840238051366395279107626897950878002417841015273308391394355069593663587557213569071940985069221053223480482403266741246952392338305583193358172704528110046340437054050301456494370552832947894806940469267652640787447897541763922612365144758201779617855074733957346851936027671575477799938768416578247420822277872249895332876888621299989127857117274480749323045051086384262597190961366453762934962001249277934235514888593056766137004709734830696522650632453542093777214048786807578121704476078926954727094209529512160220472040569055338717096392282383517415789392650550541087605685254891692483014733595525429215964808530482216296823300744396571547321883068341126522353614556921178189907418461668113723113649053092987245817441225330138003063471133453713518461254796293798349347641438975756726702873954391435289364086492841408508852358503173279324346279436940208894071675980421025738761370935945412788356139069922866603086209434682021892065398426014233307136288392367499464929495309780174742623396558246662766737550278013470570087907810770880356573148018870265252859886522608045737177370089449504664079560087589232547668165920350772139116384573797254817378732960568241453943690081940381085268231742779997660166101769130921154488726475345639730005615340674922484555346405598340706500562596090104782469715357923816574230121663747705668446127417091307633556030897286130818793535822239716511836007616076915211760147197934046310152056310994304463043783622037983423646081419693856445025453154508431101255659728430926647458229908485045179400883346731541027530981147107239872556109574878130570923324304685152418628545723869278295801356239377417355841576817511451641146608264033983665199665584523015618479610419228680811843226646602950143547062777966180413513070295855607676243443537665952943807003278826159105572467563302797267695189580253869262213566529051828493331549690390500200268545667563845523530771618749633284044316965399667995352246527241010969269081866888517659408989117917325520448175563746688562047670674325044473711643951200316777286987756132270240881070740777919465630599600393713493527345541574968159471350821896397127925741141552693660172867005715309074692573466969368236736218080883405661639692079782544766678870189073487871049820667332984984830630031977713359238760973625605358079708622774391996265456946819107895361458623603269205536909902279801404598490033602928399535281234726025001771243154939214419010650804692753462391782138199350844550098330800614496123258095776560999792336605015943535702571778855302913373985883925118358182126601304665408368623708475838152100442493096272841929708496654252138397467138852055872893543664280171518073026673246483001320825072342099963677459209301676977927441057058842802414313590126452655769170710239880366547076191680165476617167534773744862546794091646393936792384348635423426568067962657851549288173553358077399750521208368296540250076215778639474052891540319747800355751479896603247341936923572894394937520315674759220395350316986223082067358316998589061005145036261692967815519351165779895346132101873713820859929486685151007220539115205057645630697589388133182486364154720968875810108525983735742247657782022084765038021187723399992750235070388855441007225727070632638337942538368708730779348539527210090377923071603172516274500305999660262343452205871889563104596695001133724649040847383764254544648964419555603297527304505176660062152523899194232732317522632968007972896506288164211159371023890660538233507668900939740508956763712535766930140326507031766635885557896896311289433108393391890567983920604060321884883377938713829545714780290825148138000736137495842374649428651876242514621611268729178492410613179065717475583964445606892264787184400022855573458102204328950499745771496653958125506792378479037193488333092328988262137284026093181426134067558752202062698038257766561003315141804523702960718517453929652066731302585326194681312381848005278628920123989475913819032208607707032527048125345815506210077566741878423220846707556679753189275154732240870244817016700927923717828675287709919162437125094149922872751206887886605160486238534514610977262472452120966940884459165643579810068348100109568293514140611128618235852976279804719018256669426684273116456920463894886394260270353969292002097995607495383088883790166918375210859530370026004866776113849403785115831503523044719490145542167865616766260397459724083761899747760476767591733934511759254826377309570519358543689073373965048531220499240927719009048217259340197206765816042530867715862397291596738298214503549479560110693393383408166956024900118542205863575364930405675779032874651372385902428393660825443797382467575231921557333768167482382500121656060760720099073842028901655687767040281117500388369369122871259016600037764417397495959427661290404331107638168719913784607521621321624541177853912935842729274417553592111474224147426126699559763810529709715568953761681082250232961603150316479203629300048830514570620979781445026305026648693830886003778822650939179483538257273211104465858874909882221321941318754668570766467259636213326348218978851160391958781264757906717396123928684565991195036766462722764362437518716035255162043879160196836873524115753115276471742616428613985964473116563571197964951341465584850515542692604678085101296719727080654009099991886153713726801248441904929444316660643306176165097480932425942682798565765635432831703935749660797434519344589926943114247625346021194925144104452070692059299770931473257357716373282637120514095713809010430167486014810961613311582674802263136568834062737893616146883642792183032655921282329691936973846651207651738286994853403180728318033259810472292127106515582538141483190180933830411013010863353687197564899142842587694353201069878613743873471811069582762344338092246688451810021749085879557141586026861137493864248387693252052953874255090018584427540026678977163691172678368804887151380334919161747508459030890056207319305783791108077305469769368118066741528010322244899491195289553556812236442222324947483436856196031616510236457038475897683286716773691888275805555228776799389859528638663165105135811142301360974906330378009155376459015053282523199684906248755685065011558160797761350688314604223587087706178732823038103630522353038521631550943067492859902349004538559756067723260174518722982275737527893543764877882195187196415493627262748595961972478147979493649830216637564581852347216689263736751065938701953415748595951335803521743029036502782718514098989833011070902082030429092777716766594170095524431439753083084811686636515434882976063583927914503666619335624522509945377254200110869624561267389752579541332898238886590281933920437868216803362835297313052729178173459404004170406957919047803510548595736530016753755455519693361476038839912667673487981740035622776226347773320135344173884605242331315880169575568202590318985126444402224933483157988148003692658311254506424365922207505001804046567612979165239991996339190701321625297767773419874879978173622477794911344851770636169446259586303706815775325967620526009630756288348585686687373346905362304084343677045420564608700085012231324527883434325168910264557813475787501428607281204899089106113268012408793980154693985340240691906154918023021106721879917841442341445607689499899077609962726356087681076362618527033654488677390044930506977258595463329315676834894287432893624702080773912558436463566820729560425186005722882845193212507761774551902425836501933646871799621083708001997169968177619816988790884464774300369015851214026401000544494099452737145974247359525187006297388835268450790468635223364293790107301262644429825473408985734721308267024681010610645961524601982755976337734073847031413309723600708722940533995510810821609942352590765816778472361256440755390690263910933406812570829314582773891755444234818582350730662469761575128399985515004344678879707076364862741612792811943111242929793473477304000261505700912823311692683804350250222905069454552274359659869193963309075217338294426369742835245878151537164378090707134261862394483368482437493032329484760831923129042780522601214724509454202920322976848846577564072788932555634442858470578957798377498436233858917959292556988038517702502578119793814379716371380066764499434686008051220504985346617093559670778229584480987555109037786454325307703989217541701110801921423942491178183392931980837141601234845496683347737623247121408900511141376590414494304821409302371028373251645004071196053988466709530373700383349205638790835804645358184038654889561105306790706244139570586712274427189382322736104183481150626864214115490623864573851795754268907890933071427104452471573618595534649840431617702041486213707721417199731011380370326157200749445131714945838845342138109247499332798892651795380386308658325287801345706846763248395158870566956107476814425676804549306001228596968341669476852205272314968492599121125228741635119032000673632849180497814009424484805591257773428121147164893752399170278563606496130636117269366425015966245176856578188310861523550878283611286798077049422552047060162197525030420393571828637258322861784580950106781207681447864521680783279466931261389526558122343554749736379109923846035237836691230018155913836898245729049135412137710996877097339335798745747527960720739074922459556087190062838458204536485583387933236544585614064522560230992102152382293732328729364614451167973649301732495075828018745283187821401485041309228122751584404502129464866135926830120012803374050581187262630713646621561378993509478956219948682992203610739857891578635492291143691103381042910872505339633609018112908147039500585992684144575117348426488095975517898693404277635858609278456778350488461791581450725102093457252073053175406536469155212213004177173903708812708498836177962079416205957685017450727967676419260197129719763648780085029370953470323392682280369205005387545201529655802014607564348088346282406966043758122498463481803435586041209336241724860028095518507778863297842242306010173882686698476739702414332035675482028965536275464186565500580491936752207035609763696981519681787112218949843166142671569268099946295833036520008137961107808462756929245320616770292537085314073870910432416925446189130254399000697336024669823785912857583978032190157947053190681190319332002077556909440477389720952376452432206081935972167292641366189429443480283631324259944555269900286397883084704788670641106463211034818070985951567738905589385834833083616148118691830474083675780934826640837461575850799432753138099036318871707250464246090168951667557199691563215736705025255780763925845406325366768902952803785538201073700279961997696989748182956563756933458731762608297159705182485295702195880694213656158269271713314179129719148643589384599436144424844861279805988600793112637018899197132932953357846391675052281185150184086748752921079364112695188130958094335127231644804721442630432440776715207788196056737206651911800325911749687356623192240619028043393915659347948468208549772340499541484552833805376999007603322986978236305778227415542985068203400598439791583495325221144183103336509350920966168575797826429771648826340432201399845422213387711696609363532302019428765046706112304855580262425655293587270160855386640054346277959488074103817027614293378444437823993201235469687281000011176199448023129412427248710603729764858976958227860064217878255170142346510993408236619347865172153238653694904710164129076227162528036731516076444720570680525987146303442251480938904327956592354783042927702382498908357189901026397860945421153602045809676222299766610278697819271971866163154612391488620715663193334647447244252534627903152519818850280346994158760719863261488802166184421558297145668137638917318761644924412177312763969661195661016638951622605708853416733378266573295421860658462082015157027730305308374026769816451112552353612142612815967540113754562983625663029991283330304006868664119694229484351317442227055455749452834942290883804217989948996873397120394883130970400162140771438709874532195070801118604915784362267819874908609642016574636806704471656944266071558418602691421846433527685890218396970714360408257440007383780326417940202997427902058734439757385760004650929947416565860947003803895884531840017631316932948533593237679591339876109603983438011862682047603424423094496467034350720495353011534914767824285412661137239147931022213693303183835097164500727708806664804719289695290942351561864020861516642948114884982594514750116923587158395236365300466144275839727837033628201571132335627045724213455968834858886016823966069538568370764255631534509622448533330400609645793858064599915486004587237402798592570399860015717627416850275862785508490349401285487827488353778856226214196552403362610859965366843355380663977983938922770070012679084312866748611624611991065318432942082694469702085854797755853577222507570248267961379936441053897446408351591470003643151310218928146176085766791248377083804323893909916963766238833921470607648842464065363100298875229257185840557070586163981749200651144341963160591369767857208029922902830657646899015210795587189325118970067582531656567015731650671944034895500377218918352394885796600443342089084152553613074215900877600891641177937880054758826586613134933391802436634184220009638601134668778736720351634712445224440933895443805652971105507603434722995833622313703724451968986721657921510985565144802471514110513792150678730696634532750870309667353598032261379619200079618758597920353001749812303913945752528490868690088485994152600208220835921883880329750189301640585943506155464778851372837678077749645285276817763114874202412607474196614790992277945801204654231516219820549395386209541849712935399819824397595662318481535283895943416661385902423413231393607909930167843952743592107032532915496153940156345100837355652467442267524407154734499249703637680072603207644307304494182155896655888036733489517355032824842677923958823987492025502268663360988843347852216654926244680221717481685359450704403478637869892898077686666054344090603537290007449316967279374256029170931007029406313377969717892261200721611343496796927445533805349458147909597024210083251159536060759312649209806808087049442673188500436010012277442298626463335405067052801032357924827433068854839435248648984302363530003300944650652048079909157905157953371520391211911120110935525931247479760890397528137880038157583565930520534319150518239908381234636698827753716359659613434800296973569234639812470685084112672198111985785126162618924642951688673532289243185485858577699558958808496953304739645057233206768758011769038022859897041818930335225939405869706583222819889526985770457287126885909131852502273321724010097637440630277698608068817271332951866185283527170000596984791930229036732557724739019832120447335440221857487002319640472545248679307348126063209139674358050792411356349915927425977526786183935940213073869895919679779741520702059398673097658949111409396417948209259345441628358799173421515005567323166679549961347289135575476793148811381366100547065619541017441670380125105820238967869433217071465008303925419098860888506599261388562238618228581545902647753271314556911505468334064595120956240551290824312343161014710106777473246035265495323383490690651670487363481458542110363404637336143817232397814761671984070935101123887428134786300721839363089879678957545869853317887991519680210678611827968478719079866675647292818795622581837536996742310413684658142228500539621070910607357485228851460633054150643515668216825741934521050152616802624554674952773278817226136886224030569975563738079144770269176688786776531232425389965155243344029409560818552778555281965093445266327268138768851186688197074472533348403151985229169094117765687943684944462399372029684975581508785002943238931711249383482545823414397837222873018871997994650959200175586263910065162942063293596164625913247240767822591140745420984688969405408187377779869498566535063795094596034932745864742143447251394836407567761810764726104970191766804269498691082925123445956334751765580653186842433699815942424054320921002111187618898196821828523997343836064327523051780617549655894373525989091408766989878183569000125607765011312541038514850841893659803153691144861168778449486805559196795494906555028087560884005099137482329306152390051015498066350969176878500956728184126864921698888714766752243579284738047076075024703589013119774876029783491071309343861829078649042886583786687853260545411947363852028273090470860947635811115105669076584261438354552143634095088015822214431705780719243885273157241529377042534637177871397929971036482223862479132879775736473812541870874882818547009408729347394464063628849103170683209227461209093295839559853556794647728933010842229818455446728531689153950096157140432592317112520739959446195268600051578467706764584343114447970401891486209049504228490951101001765426204681534727787702642034205185008080664199660280037034693288266999718352308259879203386770246255587381537223134723317394325917271080850558865929930929105257664544890992053886476221173502121800113706622607069025064053710003469185981007622922840924048419106237767580263015361319919467381455914540196943858531684852046452710409274954641049961510721164186870390280490355348901479702796017321659974265354479823340031909816375718658370712171172746101145721159829968489415321593553790679864795673240004007040614248874900275535227408064782068446000448150091644744500856234457033771852351068732823834851273958930308665059404549460073507498189416828943339341831186601180219478384407055699865279410721662983943662926734436256872391802739863677355719352415034241669165362964357294208666850409645855902332336039459910310295238768177750328276804292190664904901369811092323104538115069029834115208485279801618925078954393397575091322417809438140537605618218946939895835524394619137597152625388164830690450135650110081754006283999061531478548687118931552400204481392434844128081192673041029291934606684601791662642862603204453765170773250985740475639731528057634625870528747758555458939860272981255107609184921099552491216433208524572487294530569341676522114300387329727362159115941308083019322531385916965739520259429040037777866642471373120102745013636617365835673680886545502259570972355230900482926158055713901571776451212287107682509865036430144489873467568498282702663674808293300451843106998210222991072505286758951742304483216019779192739978328520034336245612555729685895414623131451061908990837147181446683920875126841164787278584769681080786909813901647294475167983159278077337731620030921819854401812979786846839783872146763938163208924353221425803083558953019930098939905971011453097085623187319508902156051187889766961304238748214586244707808306428262443018188443348407976175071261612504673930549388219223691309346838356088520361611093086300759326555559403410917242645389611212641660165597576245736775143576232103643078881390496839997817365508406992793665851195169952735194080707825208018557862341972026049740790228732335957114501705974278129894559171418776602165813801547842023580333608124351598277842369524870780400620069645430930026599609216244872597265560455686004869863538882898041524913131940160429353779018396844205648706937091552038950413015742529579662942158907800772254716030377838781979983417478857526615267168994483330243318824317758290014871132844085539195487095891598380277018336535697744335913849412352899400171200266101076198050169172208290643068556650969330290341850915925441148310398184331861401752528993484943658112053130513215503091733838841568081808213817205409003846085725273437009916688371855067489715461331062910701449255288411676939449077296322927721837803360571359728147679721933195290785778224144595861832258180898875918797945561019559393328042163981189366589252096202748044321486715887536266986108210821170433372809824968611934715011040344680520820671686830380956242800898522233952612585108282382708119872651185189139110817798337736345940100326763465820254669118472337380422040300369931819709196435312973874968569588978110839869381758488088401961820685376150412459697758320456388163386096039460531794477844478234245440564105346933256007481445875499900613510281505196318970768425604147186843900868814433959702838286525343842185090423048796370856237031199254563463554730869442119083397090975312858421234677950790772498469588296915915810981958787451201933375707957891125225633198882505838980359691672037718778982432177265807497915564325710493394089237246795171883953216238566608967109226970005636687314041795311191639266341091174731990539978554908954323091496263905251559189320485221269516111624102823396094571013593980718000582667502722382016170169637666682440041858748161236954842988589747352968583074610043037274917355447558208461880915637304702214590339700687964287609816717149180274420708537845537883374402285403511655973931595458003727187910925348022034488277869967879538149828322249741458942829779162958140065672390051105849541314199021608866827536254612344099030365660795012814721935132260040865942859471823676434901325644574367813878908194562793549570501560744703429016884185119475448390512915831502285918649249207656225873334888474100272428281476376912973296290379821179563962843798587315975212171567022493413702277416727886932152624848450591559628897807216948513034374828009145035150708438315212844737370456773675792026546300007948222382041119217716471721642604710941287589642792430951795700410513705856145128080194418617634965687940269814891480764076491136591389880723836717173487783265231387709817298267867480096042000993341081920576850761587361172616951939278020428396765595097641323664875087621734208166646097762603218064332616083838239529573987478282679056083442902973509663651784816667123971982797892972443407870533018523485980766955548499279846630178559874527069414589630800921140390936781137632212118983908913784382726625533902432979505954578625275874805651821293079018611084971677025001065137870825581273027809642799704162747387077859493804573901891037223121636016301844382039759526410095977943074780100961654422429120102765271095499711879282199937683213326075875791886680376614649928420620548411666248836593478226135291439540194218430615399960544651029913412566790634523132062488387628536861167539382430014818742972814755975900148893059346455261561600602008278288671090501766093138475719814580882302163220820258913900914185466865909129816920030865353098986994363975415975931341329365217444084200419614790422547881303304588496354063000166930139577670030487534148574741307803616752231758954228197831002390820692534632496585440470398936748156245543981581206534105179215484930286339429542810990923145138514164200860440605981377473690278323969382789176671464309486606593642800772066665020704761327234510582050067563805300120227512698042321269100623787687714347888761000359147238792834222661339467906228874808924772107940610401904078136286095302039780157708328295772254742532391367029140580941711954971988644747945033915166546144725845486916945192955570492973805028491775920980849944668731571097124408668168847829971661792223086204893031269880112902229413983442771342052961518471815741535225642420204885618025582660236810513429379235734396916140165110123782369763854935063857312864382852967410127981359062933039108553069366615431274708118700496846119609434983969942602515454715975192108688513341551955293744010582617998526223629927060802424861562787795351980968992518026468673887121803163627284289574046119578018622581504961799201885770911900655791765813444295533844742327168270607036972883897262177024803874984322948545932919165942949292242053856269956498547628566107518507686738769087294809346063080957139432365245264278228696168842768581845442730847409584432039990941705680762416431375413814047112533617392855393507346509103270420308995493722043620549638182865254902668116420029616085531028726490015438620967761942276447867169460234710244002868702082516990040608264940978088245023893217646647097971965894800851282963246616771170449487339060318917543500144041857962961376464502036106519836622961540834055599653036075679204989551876372558125024062124572795625398441440795993682165707754549126140196869104287206503464192703097459513190861439103502482431341524449849779290678517399340343513487072587952487574108897786330547937385951000532623993135033299117000996960544985244473478338740109690880296641549889324492299359628163802978983190217957023547054379677467725921877482482760394866859166571350055707353331900222398357560662137895076923318094014027712787206970796580322303177128571607797076727520201158912439679374779374823612907912134824518132662003249373984789607846161822858004288668579833997553396225640507175289059370930162963462346327683171722350921149292923998888205268620338864772274657610668847972685930043548205538464067484827400593899835169631006491529058253360207297697568735466354190563890838640566993542770104241508582536747962608622670161357304043590004377182588957338006774716922432381167083387269276315048264580659206640205168535311855972930133039255864451971965338730250125988387493658340470157639216950606189741009602424918938057951463468253704185077230198329094209657327964791988706621179453516486248414056594997545320239484283137278613111557428240043582781795588914954348789562772277601633806363481778355865604705810175572220445681549286484861937581324160193100318992549390815396949531027853682894802792514845841869291879440966240451854892351422876311465725111932166974773622534124847977631481462392964042468018161637707511438560020007390808085347124145323656935950825592518578900932860772936508997854648246957353949344993721424665409572436376771387954584791885143108159785020633494398754645497036887197164769106316801817771104458405111017782876766513218326944008959156474467521645212881349508263036133334067293411597038281684247479131017544841220963250353770792370909159599806215898985132717767319585100741184004450553406403903022703465635312836091592041755819782035658627304694446145244809849761465410502108208457555068644737804490126733105397970421797114765366815175308755553271700654597986503575787679230703589256843254154360317247809363176051030547315649621313597259614823842426534223716782391481814169373342776361272678151743836298554056783991847644805672593938612915282583206665909532719130139440647532088118645670335667808416556926604737161715690704307443926546826343588906693311757125183755525654631395823988827162638241857454356897531594433488917704868973512551080994514814907466011760743394960042432514263988240685356564556360301127430034156035654620657635455030269670524063226756446571475000576340026633324014328542936103876483229256699643889266290377409764566458754482824600693581133035827116385305313603209787181925777689432655495506725948697541094402819347192543151455800190758416362397044217193237633825024145584251274590480028395817100286988053964179231994401486838033218005900063986886677345511372042513202404590310754143138757139100675554002506456098432199616754193071701081715166644655211089267845872676292858912129671653008666768236847926387052786072119724257162318840180054877372243241169332428223738205713237505744362037051087048952723037115489437706218821434330236588688461728487113277111234982887303331877920506698100272131289368611385935858427964703393639484544623370304783413516200172573651166231208159190118512956071297505647066131766241329094265903076564174288673345165958389699084293332460312648462516066871732892576952304169498650128529949840060589884280603404498544979684097026932993095550316184528770352581599021318032638591749436978275764353861048894973107638806545394515564332694971979975780588423279536741184933275417999489286682067698045745865827300484820023337347231718057631508143073544925102970560844715687314743367951419080353808724870673909859885008145530765435617840691152702636141801403156518594242998004457928127664570314180372614831038940756281036693811082095148124979116448945124715967958976735656586201389748199605295649686651245992524682169525135298438571318404359367950343809765233412701571516568488802794526667361281677955241150577105729769807166889505449220603122138453297838638202385856587824122076729398389954648557471470291618271263301450854469073758343318287054024463687659600815996762806687997535167894947591560692707161561107307305686771291697335986802444854846674776490897115955860663589589772195832593646585382222477078058086671010648450216306540975467751256711607940799849742524514383347618108622393758830288112748644499278056342036833227794007878880152892448515211980600420362284384300426696755512368345669807332860677118854127536405502038211821637544068998833866548948719025523183811816836443606255767795679713081428727438797053147833853603283431919489453392978398133955169860961505971234342673690084209651524150738776679012946117130792184355149598757620634494065182104065513724717588778496519294932178452431055301635332077740835644433387233533316717007878585348554239773444412604570528460491112200500376942390796058941073468555139252453982144032056055004917812411765535957959118149403156014566774971208664841469049412576433925309157548431682726394665530699955595389067293471806068979369729947373764559323863076939931727896949238322749879301607197786778394523723119912157772353066675798348721382378074575376996796600869549101789776020605355014668360275654467841528073552893751286605422298246354796932289608393183278667607046473812908653321075368539798138990305139299812532196297201758262302006349958246158873155396847802286283927690712918375866069780544358622955158103655188393230127802579622610650134314093814110538017625049088735084165766119696102589346509477650937740300135616592865849022804171042723167769631141394436003339479163533294374593659254069846319047640597858939240281899000321435584647630018651076118915585837123904228095228364101887524013870515082407263216667181841076016205500207492910480980277181013493085141827245699266650911793847189685500692529365029250222408678669893330415811009819539665190277665390421231749782524725872386184063853169230997880061392324351829845246171139827883224022714301855584805976858550149730628774425580023743160132850645354342473778384448834103713340022614936468057167761415276345726031996246154745590398719187807820515166598874655167054667258862164679760836830610481928453671583443581984030428879107385988350633317826707433099018699267087336235688401963886806316456037174077596842749550396010024584936214081803423590647526557712252224508306312139570637545503501116755272465264456402606254917890747881771173556826607984468337599213350416389724275318522259204687356394234853308574738016305495825458761600773493066626949783357171654650375161566497843559769118785699957280944222158860829011182484683929639552573262091439254078321793188610907776833988540356506168784672851956716229174381684293663282042562300041370586185489164434529468223297384306827351293382966354839011076471020380910071705584048093661700361001136678332107582967646132036828891077127502731393119532308483520179974893993413306665164514139307866149247129994444571933743596607744961254632723763087228981362616741989286026243114761867483781212586263814420229047843815695498283581377643049114015489452996608773445400959509950049299108056538999462364291068155653220641561865282483329797025651581766861789113125010649656968937633828376461565296282699213757903754469620799656279357233196429612834965049238129619095647583851498846487246496811591704763510338522140325074398403523767907288335878593115761267905565241443630178082803472044199464668253705001233903938533893640348078095224606291560695392580922261654176404061403208271663290739710626254005455500758892891867349351153076602835816723034354124023351602849603598523271827975533313320732529360582560679099582807476897223178324030767090910463571629325134371458749813621159729715678086799419547541813719197123363931192455491947591772806788714917825300376356463458346853894912966521453179104436783801278105867891653307720876834203838737729985649257006525917474245821526297173940227503034553106085095450237600254469763743289537240409813883950184683526590262864740232913485864145344179861340548662560197903922457741292010599821559357056771051862547909961584866003878748753728456850165021947828664207119742021134241875415745829525614378985766603694235434815428932278493106927474238580480407673740606626077531679310513865350822490087756628935052820407889448240774083738252623243754025135001693996575365104796709229171827968611995152666859173746894284244490997614511769222141261704777484551277190794609557861408748917368774103962562868134274996263572313110010185632444746578356840230234677980613263087370770184710995560072626897409729603693547656340509245520595334767694471555622124643572456297545698819827258544429226785355590085950504879348972939466836079668632010226917020629892065432155145185293950082145449326844585284774430809854446008076989761812614285261367228195712589279776836057437278966914188741371641436993009175272939226030298038865791479504951820425209633745074073320426923307905480546646414774817362977236937630743195480807696632579707796218111957798777380573337429191423292676744620994612724607914891941263080691334154720537522379183597516671751719794112807703565473131335382102966698771550526842477302860845957545302889023535522083484213698181858573494556925535262574945819919295366627619492331610791320842020546268293966882638301384612934486728494896251284337545787780865643403271983075451633224482223072844670161948902719894330514918915320964475718482685291295291583646483724210969010338507066695436756352994269048298999227857855794826632355986646584363371789167360902401874876496851886462325299447714059576722131908617052368208159883729596495481242560257915914519303351114545379478326004385741789487883915613963145661838804075914516805801532693115505918865468921464613963269307238557678858945863283970496879411079739495791425386652186648584813130252045123075089678829261688766006707185037255133736662138812322318270710620326177719400819150660746395434057451974263624596103716765025877956969007592692376126100164989771728701984372089042333362542800161681706961919984281962816956787236678137793445378903223398783937423215299393406203270178947014290115464576749286074761717703061352405332142538588062227752639138291496835035282013434248675464110201952315777392260280062181545744006361334356035631995736657273539810223111450462767930466139784087376444708628665161652670983508039434960920282195582644324255922081832116125970552075448392932460341664323014190705264759354232947233663228903168290164473482580573994702313340533802875769921943341665452497655016415762712742556369334836037153981444810229119030108464789180403843182731716243728053442316280776090644140944403476776861649167584587212371848029407540927166953564567334005995946426679983374871456559565953488955960825020499526366833241106779242434831240663666704285607469833047109394703640211501453516401903472910538713439658314360391598514057714515374123314657113983779366475083476072593693452558144842068575859665626957677441172012984289791651928562387182519323458115154745033096410657154721494040196554613349872903138128073235943730570282096486133374973290020651205363186511619176855906159585717721830475481490939691113829764379007509892406500745428519266696931375804660621107950619795643034471004103992666534161793010881809198499153206692685321219929372526553762283435567648206413135422472038580840432327539961655110387345673874373601442175606149831755721090153243709624046244534689484574762615553851477710590103842075515551620932659938639473960681925902434411314386718484510018971085792603224890026426984034913296181868783340213287471708911540990719331397803505389520996221103461480230256192737095411537168785035001486211770906251593300959121857984730758341547521103627655668738022893770991739069665163671732385459200363876235194732209466930471104432545823169571325212212145454384893193814110589300379959431118604912048015916710930054383480371314048142694123376432174881579624995519703117044298428502432339297686521596061454729575372777865032840462526062164236989900606847460493348336620465256793795453753081226506356991732961334155096637946769196138806180971431822428534731985601403456345243123785036428393187884084076845920770106215788728247090030680088557856861467227867449436532907503688114338065674814494842023847390360121500552062620872160837529079885026233025683036496815396460827789342211206038679444850823980309238711506911491822034567587280138324976866816496271331462760779517320784527757522401291303622360430795342149632827116862908884162335183738849745388783210281164110002956995471984679961489781105133220674984722401384472056461777959791096832954413797169964812122952132014094062025889172968858460011009155869533356526583872186042688155281007715817730380988483731161072462506262987060092198060443924070736131630389244752405987604946595051565630851143747603531026333093868005355794703921764461428481559648977589559676980351027146783073486152100945749208883164624255541364573210037030702900955233122030933431937494789592953402808812586685674086430415756266863364810806595390779283840906141104437988798274106473015156400875257710651158618706261751178130808616711376966990459587446817533178921542558755801860061642719200655606794068293720912883757850185728586963335949904261378130027978999347595151498692536543706218576355501179073938161613459344495749783770294420754690433176441678520855991012904869445724360939607108720743903731628750366315143338904094117385112632746869825793073077264431554737210329204529578892328878550691483171876255934826548383482819364077498305307176744683229886166856672828569707134173970920644020918867919976374128964404754986148119605416949275373731924856028409169786984654529208454466511280068961967697183215041696682589224898486036963776979818123604882027324133413390328357699711103868674637446139767679627278010086137115400971692117753188566977882791192727723650918604958536684108270515152217132398744999614666683370221236912080247425157952426548848878429058457878853992346012065693240237930770047961674698022549936145825263307986367342714401196635804395109312372163596888991229841746347025662137042614536233327643214202673994407050338180044273830324111540212985402128516162572045461526700552052754400408435484560373369774410941186747164481376677848872569352576469577986293419517419459191221266804133632264201008852362910254281972348257562345700312230641815209869369823664373614759848122196066985700025404856005290608982807962926194215340760455432914206303041366495443389017297981157495735663931961982164287175530743658033247804706362925679335032863116199521483020083388174784057162012633210075359826904249198267512306037184134745914370550684043496768567975065080569033551766839355726361177893047261596827462361581069056630313024887934442570238077391420782459495029144798347857846591867450095790806261039057266635918481964355154435755505933887313513474770936393911488249953802776053885079650110186734670333138570975238274364472187598435744189296323218615229652072689692590377682484453393586798168547288443512462218539372654235408879140555910901847831663252055228919614146038270406798464603001679330876123229499283930204987648984615456304733713530225750501928298207002860515087940197559068268606468465796348621112242769244174693234458963544813915724910899918849099479998459767504323231250937638605982206073205378932924871187875674164800116772356240283435948104646417352153843061784501639169520130209810548601030326321391473773318247283419229217629992483149520412502904302861861548342861680719188068708992450154680019264623149627536770490866011710877904413712952119600881064505416094342595922537553113983124295460437760383369107546540558107405065529712922600276981878692591438423496316593066698028511687966447254528022621646437187749350665269083499729582380326015166099533611175602490422577028899957951555771319979870590455347435783132363326198139298283002806350718506507902736941747485907006412840242896348785928629709491971770615575111890535754418286902244713879088874137615185130844820208100917455968884261956504661172391706622867380151829014027861099663555578578141432380490166192343157905284331266965645323280035506291379603563571102256796603755403578480620582300651628471257880187586135827915426717347400474751030607039450877100345983176963497211712856897799924390909064233417810808030804748584544285337767551591561490453557897588140848804254102245054786015437177065382540452048053889594993076600395367979709673399121962689445708667753563811381782827613071284777441041029207873658345609975115209669138866663672255599486823774889473416823212967549857498489027772406691622826938666207117938070137354788970999283859956042920283982635575172976184581438852993124004073182713901668544419759461853885945447070114014502749298197904391878702434899208490991512208760341244022516447955454853661044820379739848826911592144522995293378939979703766088714256049960713867839013185385839266817681930870209166193421182368635717324161342152926264718686172463528987706663080296270355020850349741956641272723619492057528122173461484702577029322247740237012810835014919315943222891672205278554468919698951636982831589740159383503643968836401271541812490009210757741946982001670682625530024288691869042159362115718960510836846399918212641304926424946279408311469023353162012165970117913365265068031437393056925026038941581911374200264647352669425501407566055534133654034038147243991265568940936451663633506867291227951170217663731280784394127548290325149384814993399315921562773158628136961177178272275207869780486381351030518958823086183002796096220118993556645689760062433908989294392257169135742117592203015843105058815246173360452221138161497428154705322029268599908755898755792040803968897872587100067996257707260825928452330924164597582208922133410974351770204613309347749439002879929165437761745940541770296578011760571076903669378300810062049601703318448778359747273979733524333622528489223795868732115773135267833058896100270224853731876196508990724771978466749684069899227686170048589251041687536868302008374660952293673690499232608718990893487653613866263585514840763675738175183425784800916512595430559987308788366165267183473125470227246695292591939159760808854909997332332624710532596150399474679723058309078543414757688884855747192516729984784621327458868786292846438492646998591376676644303794637288780917589676338698186656825814697913442473931609498286410280262927900141529295022989005992986614058389326740515925123231999701355113041318639992625891990871759426115362487322564424085948855052476115747704266346423845780106418525739654628995450475207945020257679445970731748511526379825446725816949930148444420451213105480298532207693051345638257526525870298491027177386372144660472017932014464019960226181068452882619130665282897209769999003971491155736991811835533694785932220998275050321964494836917308329378434381369563989127501883030819852010268457462434100265138545824852701420686471066034472877551544014754302737703837236518385343774596412485728887022864558452332858578679345226538936229987199873789233662550332556042433536350997862158239160788163611159430515420107735190987682298019806593482821989143578468005946673372722176080132592106683523923776538596156428626927106367903688219985113170420604964699756650734530288386955833219107220917657826268123286710759741346312235932910206330692456057282743703009281020741874603459078525157157923601751224050457305456536473815326054031010702449667000717619629402870326602997351431976541397674251608026710177957443722470819151295443053654090295148380740865321569510400098168246107369795118842172734103525237747182296217704204600873126768605419559156780432815075584306730875821536313758327282296639925821422276787355223850565624767477496143936466958442629206519021474439455506273442202985521406485928965188044546996823892980682146565528045062119240583133175202614743052226877532644752957903529102377709696858546529291410935777428325874196953305339067119584182248466244424490743728620664330002051678426308946170710474529269621612801479260191891347255868136486542604517263764945027175623590368529342805321088939835627835849776263589917931557541874394634356001419694576552840515217452256598998865174086838303848037376637855130095517080856348316751682942367608237498382158072742272465982563190412169000159184788680746898181648183452185113817572772506334164393736395778894668243103639335369155458630785517415706697735429303459282533240225271206428636805295853739261800355657171144500667063737024701618331267990105610738622973371610356158102324982720376708581278543705451521581466216657231139618330344540933143402511761830345886484255807275435903185388101346507012362415088957440919804378270421799513135769845193542042604484876772793675587841632068948356261649643914727464073549491340864829744689694824937169854571179391741720285745903908694718347283754931362718081571185436416314660088179855385008436848463334488600357021266786576755716840679411688256926930750213965496188239149346058888934479093656421929577317111262833697856220320937511014443798101020958207701710589363875981253345900336817797900370940615313307481255781615512175440296277424037034097697206044876327755471560314446446039203608606414862434666035866259056874144780979058436687875344843840524272740373344319949915663830385010243328597804636427058233534399729904926892881664737835684354367333354717917170578979635152084691428212220355673961889310059641890722689948733240491143635355882554121968237206732960374325901364954884757937448378487464055920209953217855327612303374959884827733577370893164176073535814758832813843625294365577909041078679995024723218513037670216884344434234115228248359460860861064931906037424992165355134900090995488265135502389642155844059622537303107348851024042447933530869747858525378325097708653251387898676920742487012933697567014368120908055381603077572226171810829851239368860835758192676529389028689467799703025625927261397001422431543330697091488604254263422323019960673090974807442995512679594443947782965660314445297355845540007366685183510414114403760896750975564817338759706612891741992102112772930390526991815311810047525956472517586688738672220117864994062285676308123607701313504814731583674122771946185662371499865887462689724515214710795910224788602380687991253230946272874632098763273497154125197769520453863867374430572026453236331734112676074097157489068349576985404413996077722752238509621507226733244879326974870902313058160187040522940047883374307944373480315174929898604001706220334329227130288264829348254495296805784855190821362585132206864898421114836176313689533464232655263482810099912143200784273331656855089808598032091712770520532350415636947825292606261937019360749823844151247991764018108815534138159986004340000586051941453330678720472189707659373301772242664445866447258842805563347803460327470857426289380712915072839922266511574346998134908755286118353322253673542649204538942648796185501710420100066900364029866615165837768046260508586922332467991283401511071802638403646769074040521703731342158769331913965246923619266272838499663762118571401587606222598935367981913557566406894646412224432162019103626658919062345440967573481738204848945784005282088771102263211588298138053316553785712435092457991761629701234908671779386100721975291212813851059965430338519239046599663193597490095983927919286033272969900167726966045160133132204564632826351374198255937302402855083009186403421949740566532797592454035650355031218147841214530275758283100292771905055846096463338389354022099579409970150649646131653905486004773589283226130045954541460075083195344588095630825430521247091370653675255590479005093601059888904923953482231281410751134291776279363271202769473145946913920668589390488782176054937655150159709490613388520152742950986708622941736577453599821175241261312483322770745131781051464872884407376634734292975562840924321448592276435432560750673053411011323911232912258730006987617891796900560405845140720294129602589082995218073740173952637819038618379498576436199480745009002861069577300444750202885313161616764198792220947448282307577168143595422837752553480062065564836416911991927072353801885340043824117893695390586547798900815601391326616285189378216990644913389324784480464784531148766673656022759773957029330951851220906848405543854118287372890560322472886730039664170644907878504918011230561853125179940475736517765381054046088173975275511577520677804955594199889816406383859793418235201456102573533445413703813556253740070091093140331097834675354291962924587947031500757405692502990630829801500913129099580504714268313937129910120776793782324819054256046694185477408936898291487331391087818794265187942959552749566238017564844404062132686574607354335579968493967622917348279679687647665367141827174723971208072470297714317250700931578945685313814469997989570210071264410087024309737671709198763579473213649292199445037272608436227384888016051193692573481667575136130614270891873290594649544858943028502857572125541012468649091394052099757800018383232948535122359103654116390996847609307633428454174543074984032249571973574947018195717865834342793082610011926303239838773988498775689296515183704205768110005047413613826157860514688503556513545751865877936617764635165472922145314148000269039640965197135692356363170404189656486067319038038492843320314658413250699916029719409398441589144048113423318348575106703132732281976142931568335632161914239547473142943787537252596040402649982544302934386553842628972420614389110933670790072069642225128308890569761678640634068878315016678222549024246890427126226810339253265765149624850636874912017108453718742165888887424058530810126091787696808332795762820866196963067894349183821467714641569903243215371110733292272105801165961443937452311297260333030673341019160882601012139823827469026906525341770237205893599011609613720220245511659844976462420233320036501674516886128621615554754683282206297532523728665741071115976176783626343194190268034892493873527030712143405119725796866863436736129880656177208942148003207558201051202275185321189677252150141339142462017395955476831951661987426398420112485797409580989097113594265793698789677853779446013616579491860326026984143359713592080203974751437212978031768266756143119700083303912778673338160890575534319474744970513393798852936579530143013468559495493337583493414477684529680505260000035957614747906809985602063009391719778022124361871887498855084605441317752549933105332347157470293013915412818638156637701740182447065351275321552090295597548835315169010110636947948287503993458439949928255070757068765816065019873880527133646497072511353829169346820807584293957551208608053883986152972726941049602909377479420957345435896270316680205427472663759171391311688920113968069118862282388639630061963807246191999974153389787622218581666557657863789598892731055188580041376166179484219540095463910605003992413037435874632070369914892070540083137542751664442111132380676970150941396304044706703524551287053870426409857703111811892375156563823352579052879468288106612834516536690901137259594452000326222192265743203889095518190727971650815036991783598338849382568293505535083380337464574862964012327627992323324944423356060894758349030532266028878339974518122298029514172916575489413596066616888479514244848356616180291723873235662846250063964218748988235643755436793338231241152835400729336990581606622495037928160903748970139415468524427161357992029483802180444051061792215085062527967636274945093197197302043863225390395618547756099901580807134106359987653492995018841311762544419354898787437695474623218477399164937896209328615144638238575633960383067972440154923213409439590425020981829554632266156771888014282962055316823094148415493415307828237023509378607522568598934330053363911582338216949666394517580085839728530391109439264906167429409521117185598492821251746278186905376720735390646231361420711828202886160972585559559727126337056462527850323253050501827863897014450209236516453293030203327481404327201155085771010123409818398969302135339205043642074659445175694701276501745656248346968470511892187311497718476214421450121691022824502383176630412790165081268582374463838675255606087844272876148728441247803428307884519814056796949746035950316149406003779445737003528470059192048574453564360131314388287971402438784588964733578409329474020280301874656350210713849592349118119136423604279022068558360476272022247229286235355320298204487788431088937071087615754952793186790369622795829198419602407648526322107300238362524686217453623139204524476151456575623859637260063808384360685586020215400970615301923040331063529009958756394254962249378213573439290498671748525799419597478581787953642725327289219266403414455948683665239677491843596711384215854451195437998270952558794271413628792821657773121930360037836356312289110049903740609023441262460319767186128620645737425116431950876226030313927343592612928350593068635662608830398331471578932340884037444971020901077643335208708525014166370450846098303357677828534125681517374916623757577032561325354380184820074196190269250154406867627990947356295351349342555796512242625937782821743827822373091471464962076346154481897582957470832278149430958513887916217047174325609999965144600062782889244394222575143876126218954568871270259788378026352654972863797546914917528825925152223809578288505661838035182991730828266996481369275368418976666856022800391019921941562483023797843749071177133562502905781665159469717108856108474157684235890308060218658115505807197241798328312198074481221114441958638110644736046256074305780444102847453768271986955036117930182266744513648455029492997893020542468447190769146268833000477236722361100854274319544235185943788028322303284018008689981129769085030456377007126264760313486949878817322199758463593558658018674338767987885620512619681863650798304281492178396126607293629964715592163183581099651261764391529276423798199180477942867057204781870665317906780498830009785811890298476501340614318520330345503613483917626952289634695583452290763026782959033328977423809411645183946728291640400821506062868996564760902130202594780811143599205977171673561929322541488816172552102921102139681810547509055847532799907959018963392767464746123769240553465761882185443655005578851907776427698877878724704692155076801575118158929415586548579254252365145412701569148890465224057218519389397247516017029046689615632243350480800671552987950776738643367332968947516803352761870735940362731447408602744535405040585152783806874026507724528949427323838637074602096824021415754201582800330763247930957552023719232396716937693201663091167948732393226002286713861946453587262881501466332398946095648045867703928075787265353281617409110951860762677560887216291390518847043816323329585408902510189994277867485489495101568006102919253975304720107644715779272562541333544171159268098499317714696933276233096845165028579060484705246608893923022475660009448386947415421883866129362880100942123531243505850291323037214021182898954892958514755365287588720210341316741894906459947312690798447927010757557647470595217358395117825763905710253053763868274868627295414544427608783713014373576645322538804695577496702586283845337856688064075267983036596021740201697226009174742575322328967298285000186671646407103180758065997858874658873193830320874145115860049706840584139183604127736644565402109004824462568719514333466684117620819460824441238063919981026187803529996461586127651592547516241827333893193442270863969515130910503886700009657105909211587993986489219472622600113019696797579293562764426066217315397563249803778400416282408183122932993263118013468516781741884923714581057408678111528399144972637073820961015616597001986455417433752838419171467562249371356597249538474811850108729035590889805470480401506788412730385104659461728662491308348471947959285106586511821313942525947665858674524461866313976397905809918920921201802665409931865918174715349742009270439894822331357922610297758368393648903366619221745021657424325359219585938722972947349886798020683811518084380114490208054750804591636768745223876516799101659994024759625767203404068209774131302379878868501938787492713038070011670162066102822555153657329732154126135020261358899796652069170998437872711385818222057866982817608171384843716104966368789939220117552231434468549687122255421974316045853878215651389957940618804837865897561332111890551985201526749857249498944004770495524610039924890359183867426919567205537008741148374581075862687659448570495139001778748900825284307519328249874685878568560455072483348364408440021082539603786773163728861739048663486489261957640926279043812784606921852937785077946453212507060097478796854888236241649981159474814160349309078870310023035760143797990489638806552332131444927495272844761190128147562987906074547637402948944734891206900923705257293482854072036548502256494658549760479089754926659861824130308617593882241143902054452730598673863845234460480864744364242146177092908140674350935359128287160569769739986312550882833402973503130570484144511697379787679018348253083984489950354198372204574801754227507520755178555372690992855450205945338389316442352365429477110598096195910438650666991631520444182643252877757946787664925003622454089110832886223489354818168356657882321869800593789175512925602209230297250986485034619560981838589471243635502044255952202988068274570296242301176055980573246141659466470353366224844908674880255087367315423272267148173729860040682242449771604196001884211047302023063001034486203327885388107033050563980592734900827548230915201162938240588178049821977585927190319292253785136368838533048383949615668774263996287605340422612890848201922326181380268072837774571648389454580202957342917146492019351421369280144494536271704682405493764062186750640826784753963694338690 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment